Fink

移植 - 5. 10.3 に向けて

5.1 Perl

OS X 10.2 では, /usr/bin/perl は perl 5.6.0 であり, architecture 文字列は "darwin" でした. OS X 10.3 では, /usr/bin/perl は perl 5.8.1 にアップグレードされ, architecture 文字列が "darwin-thread-multi-2level" に変更されました. この変更は, それぞれの perl 実行ファイルはモジュールを探す場所を知っているので,パッケージ作成時に perl 実行ファイルを使用する分にはおそらく影響がないでしょう. perl モジュール ("-pm") パッケージのメンテナは,Perl モジュールのパッケージ化ポリシーに従い,CompileScriptInstallScript が適切に作成されるようにしてください。

5.2 新しいシンボル定義

Mac OS X 10.3 より,常に socklen_t タイプの完全な定義があります. この typpedef 定義を知るには,プログラムに以下を追加する必要があるかもしれません:

#include <sys/types.h>
#include <sys/socket.h>
  

5.3 新しいシステムのライブラリ

Mac OS X 10.3 には,これまでのシステムでは提供していないために fink パッケージとして提供していたものがあります:

FieldValue
libpoll

/usr/lib/libpoll.dylib/usr/include/poll.h というファイルが含まれています.しかし,OS X によるライブラリは不完全です. もしこれで十分であれば, Fink "libpoll" への依存性を削除することもできます. ライブラリのコードは,実際は libSystem に統合されているため,自動的にリンクされます. つまり, OS X のものを使用する際には -lpoll も不要となります. OS X は libpoll.dylib も提供しているため, -lpoll をすると Fink "libpoll" パッケージがインストールされているかいないかで結果が変わることには注意をしてください.

libdl

/usr/lib/libdl.dylib/usr/include/dlfcn.h というファイルが含まれています.このため,Fink の "dlcompat", "dlcompat-dev", "dlcompat-shlibs" パッケージは不要となります. ライブラリのコードは,実際は libSystem に統合されているため,自動的にリンクされます. つまり, OS X のものを使用する際には -ldl も不要となります (あっても影響はありません).

GNU getopt

このライブラリは, getopt_long() 関数を含めて, libSystem と /usr/include/getopt.h に統合されました. このため, Fink の"libgnugetopt" と "libgnugetopt-shlibs" を使用する必要はありません. libSystem は自動的にリンクされ, /usr/include も自動的に検索されるため, Fink の "libgnugetopt" へアクセスするために手動で追加していた -lgnugetopt-I/opt/sw/include/gnugetopt を削除することができます.

OS X 10.3 へパッケージを投入する際には,これらのパッケージは将来的に削除されるので,上述の不要となった依存性を削除してください. このため,それぞれのツリー用に別々のパッケージ記述ファイルを用意する必要があります. Revision は通常通りあげる必要があります. この方法で,OS X 10.2 から 10.3 へアップグレードするユーザーは,10.2 用のパッケージより 10.3 用のパッケージの方が"より新しい"と認識することができます. 低い方のツリーでの変更があるかもしれないので,その時にリビジョンをあげられるよう Revision は 10 あげてください.

10.3 へ統合されるパッケージをテストする際は, BuildDepends から削除したパッケージをアンインストールしてください. そうでないと Fink が提供するライブラリにリンクする可能性があります.

次: 6. 10.4 に向けて