INSTALLS_SHLIB= yes LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar
第6章 特別な配慮
目次
port を作成する場合、 考慮しなくてはいけないことが他にもいくつかあります。 このセクションでは、それらのうちでも特によくあることについて説明します。
6.1. 共有ライブラリ
その port が共有ライブラリのインストールを行なう場合、 make 変数 INSTALLS_SHLIB
を定義してください。 これにより、bsd.port.mk が post-install
ターゲットの実行時に新しいライブラリがインストールされたディレクトリ (通常は PREFIX/lib) に ${LDCONFIG} -m
を実行し、 共有ライブラリキャッシュへの登録が行なわれるようになります。 また、この変数が定義されている場合、共有ライブラリを インストールしたユーザが それをすぐに使い始められるように、 また、削除の際には そのライブラリが まだ存在していると システムに誤認されないように、 適切な @exec /sbin/ldconfig -m
と @unexec /sbin/ldconfig -R
のペアが pkg-plist ファイルに 指定されているように扱われます。
必要であれば、 共有ライブラリがインストールされるディレクトリのリストを格納する make 変数 LDCONFIG_DIRS
を定義することにより、 新しいライブラリがインストールされるデフォルトの位置を上書きすることも可能です。 例えば、その port が共有ライブラリを PREFIX/lib/foo と PREFIX/lib/bar に インストールする場合、Makefile で以下の記述を使用することができます:
pkg-plist の他の部分と同様に、 LDCONFIG_DIRS
の内容も sed(1) による処理が行なわれるため、ここでも PLIST_SUB
に指定した置換が行なわれることに注意してください。 PREFIX
には %%PREFIX%%
を、 LOCALBASE
には %%LOCALBASE%%
, X11BASE
には %%X11BASE%%
を使用することを推奨します。
6.2. 配布制限がある ports
ライセンスにはさまざまなものがあり、なかには、 アプリケーションをパッケージ化するやり方、営利目的で販売できるか、 といったことに制限をかけているものがあります。
port 作成者として、あなたには、使用許諾条件をよく読み、 FTP/HTTP または CD-ROM で再配布してはいけないソースコードやコンパイルされたバイナリを配布してしまい、 その責任が FreeBSD プロジェクトにかかってくることのないよう注意する義務があります。 疑わしい場合には FreeBSD ports メーリングリスト で聞いてみてください。 |
そのような場合、次の節で説明されている変数が設定できます。
|
6.2.1. NO_PACKAGE
この変数が設定されていたら、 このアプリケーションのバイナリパッケージを作成してはいけないということです。 ただし、この port の DISTFILES
は自由に配布できます。
また、NO_PACKAGE
は、バイナリパッケージが汎用的ではなく、 いつもアプリケーションをソースコードからコンパイルすべき場合にも利用すべきです。 たとえば、アプリケーションにサイト特有の設定情報がコンパイル時にハードコードされるような場合には、 NO_PACKAGE
を設定してください。
NO_PACKAGE
には、 パッケージを作成すべきではない理由を述べた文字列を設定すべきです。
6.2.2. NO_CDROM
この変数は、バイナリパッケージの作成は許可されていますが、 その package や port の DISTFILES
を販売用の CD-ROM (や DVD-ROM) に載せるのは許されていないことを表します。なんにせよ、 バイナリパッケージと port の DISTFILES
は、FTP/HTTP で入手できます。
NO_CDROM
には、その port が何故 CD-ROM で再配布できないか説明する文字列を設定するべきです。 これはたとえば、その port のライセンスが"非商用" 利用に限っている場合に使うべきです。
6.2.3. RESTRICTED
アプリケーションのライセンスが、FTP/HTTP で、そのアプリケーションの DISTFILES
をミラーすることや、 バイナリパッケージを配布することを禁じていたら、 この変数を設定してください。
RESTRICTED
には、その port が何故再配布できないか説明する文字列を設定するべきです。 典型的な場合としては、その port がプロプライエタリなソフトウェアを含んでいて、 DISTFILES
を、おそらくソフトウェアに関する登録を行ったり、 EULA を承諾した後で、 手動でダウンロードしなければならないことを表します。
6.2.4. RESTRICTED_FILES
RESTRICTED
や NO_CDROM
が設定されている時は、この変数はデフォルトで ${DISTFILES} ${PATCHFILES}
になります。それ以外は空です。 一部の配布ファイルだけに制限がかかっていたら、 この変数にそのファイルのリストを設定してください。
port committer は、設定した配布ファイル毎に /usr/ports/LEGAL に制限の内容を説明する項目を追加すべきことに注意してください。
6.3. perl
の利用
変数 | 意味 |
---|---|
| その port のビルドと実行に |
| その port をビルドするのに |
| その port を実行するのに |
| システムまたは port からインストールされた |
| Perl の MakeMaker を使ってコンフィグレーションを行います。暗黙のうちに |
6.4. X11 の利用
| その port は |
| その port は X ライブラリを使用します。 |
| その port は Motif ツールキットを使用します。 |
| その port は |
|
|
6.5. automake
, autoconf
および libtool
の利用
変数 | 意味 |
---|---|
| その port は |
|
|
| その port は |
|
|
|
|
| GNU |
| GNU |
| GNU |
| その port が |
| その port が |
| GNU |
|
|
| この変数で指定された |
| GNU |
| GNU |
| GNU |
| GNU |
| その port は |
|
|
|
|
|
|
6.6. GNOME の利用
FreeBSD/GNOME プロジェクトは、ある特定の port が使っている GNOME コンポーネントを特定するために 独自の変数群を使っています。 FreeBSD/GNOME プロジェクトのページに その変数のわかりやすい一覧 があります。
6.7. KDE の利用
| その port は Qt ツールキットを使用します。 設定できる値は、 |
| その port は KDE ライブラリを使用します。 設定できる値は、 |
| その port は KDE base を使用します。 設定できる値は、 |
|
|
| Qt のコードを処理する際の |
6.8. Bison の利用
この節はまだ書かれていません。
6.9. Java の利用
あなたが作成している port の構築、実行、 または配布ファイルの展開に Java™ 開発キット (JDK) が必要なら、USE_JAVA
を定義してください。
Ports Collection には、さまざまなベンダの JDK のいろいろなバージョンがあります。 あなたが作成している port がその中のいずれかのバージョンを使わなければならないなら、 どれを使うか指定できます。最新のバージョンは、 java/jdk14 です。
変数 | 意味 |
---|---|
| この後の変数を有効にするには、 この変数を定義しなければなりません。 |
| スペースで区切られた、適合する Java のバージョン一覧。 |
| スペースで区切られた、その port に適合する JDK port の OS 一覧。(使える値は、 |
| スペースで区切られた、その port に適合する JDK port のベンダの一覧。(使える値は、 |
| この変数が設定されていると、選択した JDK を、その port の構築依存性に追加します。 |
| この変数が設定されていると、選択した JDK を、その port の実行依存性に追加します。 |
| この変数が設定されていると、選択した JDK を、その port の展開依存性に追加します。 |
| その port の構築に |
以下は、USE_JAVA
を設定した port で行われる設定の一覧です。
変数 | 値 |
---|---|
| JDK port の名称 (例: |
| JDK の完全なバージョン (例: |
| JDK port が利用する OS (例: |
| JDK port のベンダ (例: |
| JDK port が利用する OS の説明 (例: |
| JDK port のベンダの説明 (例: |
| JDK がインストールされているディレクトリのパス (例: '/usr/local/jdk1.3.1')。 |
| 使用する Java コンパイラのパス (例: '/usr/local/jdk1.1.8/bin/javac' または '/usr/local/bin/jikes')。 |
| 使用する |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| RMI スタブ/スケルトンジェネレータ |
| RMI レジストリプログラム |
| RMI デーモンプログラム |
| JDK クラスファイルが入っているアーカイブへのパス。 JDK 1.2 以降では、これは ${JAVA_HOME}/jre/lib/rt.jar です。 それより前の JDK は、 ${JAVA_HOME}/lib/classes.zip を使います。 |
Port のデバッグ情報を得るのに、 java-debug
make ターゲットが使えます。 これは、前述の変数の多くについて値を表示します。
6.10. Python の利用
この節はまだ書かれていません。
6.11. Emacs の利用
この節はまだ書かれていません。
6.12. Ruby の利用
この節はまだ書かれていません。
6.13. SDL の利用
USE_SDL
変数は、 devel/sdl12 や x11-toolkits/sdl_gui など、SDL ベースの ports への依存を自動設定するのに使われます。
今のところ、次の SDL ライブラリが認識されます。
sdl: devel/sdl12
gfx: graphics/sdl_gfx
gui: x11-toolkits/sdl_gui
image: graphics/sdl_image
ldbad: devel/sdl_ldbad
mixer: audio/sdl_mixer
mm: devel/sdlmm
net: net/sdl_net
sound: audio/sdl_sound
ttf: graphics/sdl_ttf
したがって、ある port が net/sdl_net と audio/sdl_mixer に依存していたら、構文は次のようになります。
USE_SDL= net mixer
net/sdl_net と audio/sdl_mixer が必要とする devel/sdl12 の依存も自動的に追加されます。
USE_SDL
を使うと、以下のことが自動的に行われます。
BUILD_DEPENDS
に sdl11-config への依存を追加します。CONFIGURE_ENV
にSDL_CONFIG
変数を追加します。LIB_DEPENDS
に選択したライブラリへの依存を追加します。
SDL ライブラリが利用できるかどうか調べるためには、 WANT_SDL
変数を使ってください。
WANT_SDL=yes .include <bsd.port.pre.mk> .if ${HAVE_SDL:Mmixer}!="" USE_SDL+= mixer .endif .include <bsd.port.post.mk>
最終更新日: 2021年12月11日 by Sergio Carlavilla Delgado