2008年11月22日土曜日

出直し。

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
rpmbuild時のログ(一部)

Provides: libexpat.so.1()(64bit) libexpat.so.1.5.2.debug()(64bit)
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: /bin/sh libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libexpat.so.1()(64bit) rtld(GNU_HASH)
Processing files: expat-debuginfo-2.0.1-1
Provides: libexpat.so.1.5.2.debug()(64bit)
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1


yum update失敗時のログ(一部)

--> Processing Dependency: libexpat.so.0()(64bit) for package: elinks
--> Processing Dependency: libexpat.so.0()(64bit) for package: fontconfig
--> Finished Dependency Resolution
Error: Missing Dependency: libexpat.so.0()(64bit) is needed by package git
Error: Missing Dependency: libexpat.so.0()(64bit) is needed by package wxBase
Error: Missing Dependency: libexpat.so.0()(64bit) is needed by package avahi


libexpat.so.1とlibexpat.so.0は、名前が言うところでは「APIが違うので互換性が無い」。3. 共有ライブラリの「3.1.1. 共有ライブラリ名」を参照。


soname は、「lib」というプレフィックス、ライブラリの名前、「.so」という語句で構成され、さらに後ろに、ピリオドと、インターフェース変更時に必ず増加するバージョン番号、が続きます


fedora掲示板のなんかをみると同じといっている人がいるがねぇ。(おいらは違うとおもうが)

まあ、ソースコードを追えばわかりますが、所詮expatのみの例外だろう。2.0.1からとまっているし。メンテはされているようだが。

で・・・どうすっかなぁ。

ひとつには、expat 2.0.1のyum/rpmのpackage名がexpatであること自体が間違い。so.0なlibraryのpackageがso.1のそれで上書きされてしまう。expat2とか言う名前にしないといけない。仮にそうしたところで、cElementTreeをbuildするときにso.1を使うようにしなけれなならない。expatのpackage名問題をcleanに解決したところでcElementTree側の問題はまったく解決しない。
so.1をso.0としてインストールするdirtyな解決はリスクがでかい。

やはりcElementTreeのbuildの過程がどうおかしいのか追跡する必要がある。

しかしなぁ、状態が悪いとくだらないことも気づかないものだ。

0 件のコメント: