Part II. pkgsrc 開発者向けの手引き

この部では、パッケージの作成や変更を扱います。 新しいパッケージを作る HOWTO 的な手引きから始めます。 その後の章は、 pkgsrc のリファレンスマニュアルに近いものになっています。

Table of Contents

10. 新しいパッケージを一から作る
10.1. ありがちな種類のパッケージ
10.1.1. Perl モジュール
10.1.2. KDE アプリケーション
10.1.3. Python モジュールおよびプログラム
10.2. 例
10.2.1. www/nvu パッケージはいかに pkgsrc に追加されたか
11. パッケージコンポーネント - ファイル、ディレクトリー、およびコンテンツ
11.1. Makefile
11.2. distinfo
11.3. patches/*
11.3.1. 個々のパッチファイルの構造
11.3.2. パッチファイルを作成する
11.3.3. パッチファイルの出どころ
11.3.4. パッチ作成の指針
11.3.5. 作者へのフィードバック
11.4. その他の必須のファイル
11.5. オプションのファイル
11.5.1. バイナリーパッケージに影響をおよぼすファイル
11.5.2. 構築の過程に影響をおよぼすファイル
11.5.3. 何の影響もおよぼさないファイル
11.6. work*
11.7. files/*
12. Makefile におけるプログラミング
12.1. 警告
12.2. Makefile 変数
12.2.1. 命名規約
12.3. コードの断片
12.3.1. リストに要素を追加する
12.3.2. 内部リストを外部リストに変換する
12.3.3. シェルコマンドに値を渡す
12.3.4. クォートの指針
12.3.5. BSD Make のバグの回避方法
13. PLIST 問題
13.1. RCS ID
13.2. PLIST の半自動生成
13.3. make print-PLIST の出力を細工する
13.4. PLIST における各種の置換
13.5. マニュアルページの圧縮
13.6. PLIST_SRC を使って PLIST のソースを変更する
13.7. プラットフォーム別に異なるPLIST
13.8. 複数のパッケージでディレクトリーを共有する
14. buildlink 方法論
14.1. パッケージを変換して buildlink3 を使うようにする
14.2. buildlink3.mk ファイルを書く
14.2.1. buildlink3.mk ファイルの分析
14.2.2. buildlink3.mk ファイルの BUILDLINK_API_DEPENDS.pkg を更新する
14.3. builtin.mk ファイルを書く
14.3.1. builtin.mk ファイルの分析
14.3.2. ネイティブおよび pkgsrc のソフトウェアの選択に関する、大域的な設定
15. pkginstall の枠組
15.1. インストール用のプレフィックス以外の場所にあるファイルとディレクトリー
15.1.1. ディレクトリーの操作
15.1.2. ファイルの操作
15.2. 設定ファイル
15.2.1. PKG_SYSCONFDIR はどのように設定されるか
15.2.2. ソフトウェアに設定ファイルの置き場所を教える
15.2.3. インストールの過程を修正する
15.2.4. 設定ファイルの処理をしないようにする
15.3. システム起動スクリプト
15.3.1. システム起動スクリプトの処理をしないようにする
15.4. システムユーザーとグループ
15.5. システムシェル
15.5.1. シェルの登録をしないようにする
15.6. フォント
15.6.1. フォントデータベースの自動更新をしないようにする
16. オプションの扱い
16.1. 標準の大域的なオプション
16.2. パッケージを変換して bsd.options.mk を使うようにする
16.3. オプション名
16.4. 依存パッケージのオプションを判別する
17. 構築の手順
17.1. 序
17.2. プログラムの場所
17.3. 構築の過程で使われるディレクトリー
17.4. 相の実行
17.5. fetch
17.5.1. 何を、どこから取得するか
17.5.2. ファイルの取得はどのようにおこなわれるか?
17.6. checksum
17.7. extract
17.8. patch
17.9. tools
17.10. wrapper
17.11. configure
17.12. build
17.13. test
17.14. install
17.15. package
17.16. 掃除をする
17.17. 他の役に立つターゲット
18. 構築や実行のために必要なツール
18.1. pkgsrc 構築用のツール
18.2. パッケージが必要とするツール
18.3. プラットフォーム附属のツール
18.4. ツールに関する質問
19. パッケージを動くようにする
19.1. 一般的な操作
19.1.1. パッケージの移植性
19.1.2. mk.conf から利用者が設定可能な変数を捕まえる方法
19.1.3. ユーザーとの対話
19.1.4. ライセンスの処理
19.1.5. 制限つきパッケージ
19.1.6. 依存性の処理
19.1.7. 他のパッケージとの衝突の処理
19.1.8. 構築することができない、あるいはすべきでないパッケージ
19.1.9. 一旦インストールしたら削除すべきでないパッケージ
19.1.10. セキュリティー問題を持つパッケージへの対処
19.1.11. 既存パッケージ修正時に、バージョンを上げるにはどうするか
19.1.12. パッケージのファイル中の各種テキストを置換する (SUBST の枠組)
19.2. fetch 相での問題を修正する
19.2.1. distfileのダウンロードが単純にできないパッケージ
19.2.2. '古い'名前のまま更新されたdistfileの取り扱い
19.3. configure 相での問題を修正する
19.3.1. 共有ライブラリー - libtool
19.3.2. すでにlibtoolをサポートしているGNUパッケージでlibtoolを使う
19.3.3. GNU Autoconf/Automake
19.4. プログラミング言語
19.4.1. C, C++ および Fortran
19.4.2. Java
19.4.3. perl スクリプトを含むパッケージ
19.4.4. 他のプログラミング言語
19.5. build 相での問題を修正する
19.5.1. C および C++ のコードの条件つきコンパイル
19.5.2. コンパイラーのバグへの対処方法
19.5.3. undefined reference to ...
19.5.4. メモリーが不足する
19.6. install 相での問題を修正する
19.6.1. 必要なディレクトリーを作成する
19.6.2. ドキュメンテーションのインストール場所
19.6.3. 最高得点ファイルをインストールする
19.6.4. パッケージを DESTDIR に対応させる
19.6.5. その他のインタープリターへのパスがハードコードされているパッケージ
19.6.6. perl モジュールをインストールするパッケージ
19.6.7. infoファイルをインストールするパッケージ
19.6.8. マニュアルページをインストールするパッケージ
19.6.9. GConf のデータファイルをインストールするパッケージ
19.6.10. scrollkeeper/rarian のデータファイルをインストールするパッケージ
19.6.11. X11 のフォントをインストールするパッケージ
19.6.12. GTK2 のモジュールをインストールするパッケージ
19.6.13. SGML または XML のデータをインストールするパッケージ
19.6.14. MIME データベースの拡張をインストールするパッケージ
19.6.15. intltool を使うパッケージ
19.6.16. 起動スクリプトをインストールするパッケージ
19.6.17. TeX モジュールをインストールするパッケージ
19.6.18. エミュレーションによるバイナリーの実行に対応したパッケージ
19.6.19. ハイカラーテーマのアイコンをインストールするパッケージ
19.6.20. デスクトップファイルをインストールするパッケージ
19.7. パッケージに問題があるという印をつける
20. デバッグ
21. 提出およびコミット
21.1. バイナリーパッケージの提出
21.2. ソースパッケージの提出 (NetBSD 開発者以外の方向け)
21.3. パッケージを追加・更新・削除する際の一般的な覚書
21.4. コミット: パッケージのCVSへのインポート
21.5. パッケージを新しいバージョンに更新する
21.6. pkgsrc のパッケージの名前を変更する
21.7. pkgsrcのパッケージを移動する
22. よくある質問
23. GNOME のパッケージングおよび移植
23.1. メタパッケージ
23.2. GNOME アプリケーションをパッケージングする
23.3. GNOME を新バージョンに更新する
23.4. 修正の指針