トップ «前の日記(2011-12-19) 最新 次の日記(2011-12-21)» 編集

毎日が反省会

rss
2007|04|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|10|11|12|
2012|01|02|03|06|07|08|09|10|11|12|
2013|02|03|04|07|08|09|10|11|12|
2014|04|07|10|
2016|10|

2011-12-20

_ [Debian/Ubuntu JP Advent Calendar 2011][Debian] ABIやAPIの変更に伴い、新しいパッケージ依存に移行中のパッケージをチェックする

バイナリベースディストリビューションである Debian はあるライブラリのABIが変わるとそのライブラリにリンクしているパッケージは再ビルドされる必要があります。これはABIが変わるので、最ビルドしないとライブラリとリンクできないからです。

例えばopenssl 0.9.8 では libssl0.9.8 パッケージで libssl.so.0.9.8 を提供しています。 libssl0.9.8 パッケージに依存している(libssl.so.0.9.8 にリンクしている)パッケージがあったとして、 Debian の openssl パッケージが openssl 1.0.0 (libssl.so.1.0.0)に移行したとします。 libssl0.9.8 パッケージに依存している パッケージは libssl.so.0.9.8 がなくなってしまうのでライブラリをさがすことができず、動作しなくなるわけです。 よって再ビルドして、libssl.so.1.0.0 とリンクできるようにします。

Debianではこれらの移行作業は自動的に行われており、リリースチームがコントロールしています。移行に必要なパッケージがある場合には移行したい旨をBTSに登録し、リリースチームの判断を仰ぎます。依存しているパッケージが問題なく(再ビルドのみで)移行できるかなどのチェックが行われます。問題ない場合にはリリースチームが unstable へのアップロードを許可するので、アップロードされることをトリガーにして、依存しているパッケージの再ビルドが行われます。これはbinNMU と言われ、binNMU されたパッケージは +b1 や +b2 などがDebianバージョンに付加されます。

この移行状況がどうなっているのか確認するためのページがあり、http://release.debian.org/transitions/にあります。パッケージ、アーキテクチャ毎に進行状況が分かります。また、移行申請が出ているパッケージは user がusers=release.debian.org@packages.debian.org で、transition タグの付いたバグで検索できます。 ライブラリパッケージのメンテナンスをしている人にとっては重要なページなので覚えておくと良いと思います。