本日の emerge world

revdep-rebuild -L libssl.so.0.9.8 で悩む

久々に emerge world したら openssl にアップデートがかかって dev/libs-openssl-1.0.0a-r3 なんてものが入った。コンパイルが終わったあとポストインストのログを見るとこんなことが書いてある。

WARN: postinst
Old versions of installed libraries were detected on your system.
In order to avoid breaking packages that depend on these old libs,
the libraries are not being removed.  You need to run revdep-rebuild
in order to remove these old dependencies.  If you do not have this
helper program, simply emerge the 'gentoolkit' package.

  # revdep-rebuild --library libcrypto.so.0.9.8
  # revdep-rebuild --library libssl.so.0.9.8

Once you've finished running revdep-rebuild, it should be safe to
delete the old libraries.  Here is a copy & paste for the lazy:
  # rm '/usr/lib64/libcrypto.so.0.9.8'
  # rm '/usr/lib64/libssl.so.0.9.8'


ライブラリが新しくなったので見に行ってるパッケージも更新しとけよ、みたいな感じだろう。やっておく。

$ revdep-rebuild --library libcrypto.so.0.9.8 -pv
()
 * Collecting system binaries and libraries
 * Generated new 1_files.rr
 * Checking dynamic linking
[ 34% ]  *   found /usr/lib32/libssl.so.0.9.8
[ 100% ]
 * Generated new 3_broken.rr
 * Assigning files to packages
 *   /usr/lib32/libssl.so.0.9.8 -> app-emulation/emul-linux-x86-baselibs


依存しているパッケージは結構あり、それらは無事にリコンパイルされた。

のでもう一度行なってみると…上の /usr/lib32/libssl.so.0.9.8 に関するものだけは何度やっても消えない。同様のエラーは libssl.so.0.9.8 について revdep-rebuild したときも出る。よくみると 32bit のライブラリであり、自前でコンパイルしたものじゃなくて emul-linux-x86 の一部のようだ…いったいどうすりゃいいんだ。
# うちの Gentooamd64 です

$ qfile /usr/lib32/libssl.so.0.9.8
app-emulation/emul-linux-x86-baselibs (/usr/lib32/libssl.so.0.9.8)


openssl のバージョンが 1.0.0a-r3 になっているのでコンパイルした openssl (64bit) には 0.9.8 なんてものは存在しないんだが、 32bit ライブラリには含まれてるってことのようだ。 app-emulation/emul-linux-x86-baselibs のバージョンを最新にしてみたけど解決しないし、あまり気にしなくていいのかなぁ?


てことで、この lib32 のエラーについては放置した。

media-gfx/splashutils のコンパイルでこける

そして他にも何か無いかと revdep-rebuild したところいくつか引っかかった。基本的には順調にリコンパイルされたのだが、 splashutils のコンパイルで lcms が無いよみたいなエラーでこけた。コンパイルエラーでこけるのは久々である。とりあえず lcms で何かあったかなぁと思ってみてみる。

$ eix lcms
[U] media-libs/lcms
     Available versions:
        (0)     1.19
        (2)     2.0a!t
        {jpeg python static-libs tiff zlib}
     Installed versions:  1.19(05:57:48 09/29/10)(jpeg python tiff zlib -static-libs)
     Homepage:            http://www.littlecms.com/
     Description:         A lightweight, speed optimized color management engine


media-libs/lcms は先程 emerge world した際に新しくなっているらしい。

何が新しくなっているのかというと、チェンジログを見る限り static-libs のフラグをデフォルトで OFF にするように変わったらしい。勘で static-libs を有効にしてコンパイルしなおしてから splashutils をコンパイルしたところ無事に通った。

てことは

DEPEND=
    >=media-libs/lcms:0[static-libs]


みたいに依存関係に use フラグを書いた一文がないとダメなような気がする。どっちかというと splashutils の ebuild のバグなのかな。 media-libs/jpeg についてはそうなるように修正されたんで、こっちも多分そのうちなおるんでしょう。