[Momonga-devel.ja:03465] Re: libjpeg.la の取り扱い


中井です。

On Wed, 4 Apr 2007 05:00:06 +0900 (JST)
zunda <zunda616e@xxxxxxxxxxx> wrote:

> 今、trunk(r.15343)でavahi(0.6.17-1m)を作ると、
>   /bin/sed: can't read /usr/lib/libjpeg.la: No such file or directory
>   libtool: link: `/usr/lib/libjpeg.la' is not a valid libtool archive
>   make[3]: *** [libavahi-qt3.la] Error 1
> と言われて、パッケージの作成が
>   RPM build errors:
>     File not found: /var/tmp/avahi-0.6.17-root/usr/lib/libavahi-qt3.a
> と失敗します。
> 
手元では問題なく avahi-0.6.17-1m をビルドできています。
zunda さんのマシンでビルドできないのは、
/usr/lib 以下に libjpeg.la が書かれた *.la なファイルが存在するからだと
思われます。
libjpeg.la が削除された後、libjpeg に依存するパッケージの rebuild が、
不完全だと、そのような状態になります。

> いっぽう、libjpeg(6b-30m)では、%install内で、
>   find %{buildroot} -name "*.la" -delete
> として、.laファイルを消しています。
> 
> これは、libtool libraryの削除
>   http://developer.momonga-linux.org/wiki/?Autotools#l7

wiki のこのページの、
「trunkでhoge.laが無いためビルドできない場合」
の方法で対処してください。

$ cd /usr/lib
$ rpm -qf `grep -l libjpeg.la.la *.la` | sort -u

出力されたパッケージをリビルド。
avahi がビルド可能な私のマシンでは、何も出力されません。
場合によっては /usr/lib だけでなく、/lib 以下でも、
検索する必要があります。

また、

find %{buildroot} -name "*.la" -delete

この処理を入れた *.spec で、release を上げ忘れ、そのパッケージが
rpm -Uvh --force されると、パッケージ管理されない *.la が、
ゴミとして /usr/lib/ に残り、同じ状態になります。
探し出して rm してください。

> に沿った処理だと思いますが、avahiが作れないのは困るので、
> libjpeg(6b-31m)として、libjpeg.laを残すようにしたspecをr.15344に
> commitしました。
> 

というわけで、avahi は作成できるので、libjpeg.spec を戻していただけると、
助かります。
libjpeg.la があると、未だ la を持っている KDE 関係のビルドにも、
支障を来しますので。
よろしくお願いします。

-- 
Ichiro Nakai
ichiro@xxxxxxxxxxxxx