[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Debian JP master SVN www commits (rev.1621)
=======================================================
Repository: /org/svn.debian.or.jp/repos
Revision: 1621
Commiter: iwamatsu
Date: 2014-07-03 12:35:58 +0900 (木, 03 7月 2014)
=======================================================
Log:
Update debian-policy-ja to 3.9.5.0
Translated by Seiji Kaneko <skaneko@xxxxxxxxxxxx>. Thanks!
X-ML-Name: debian-doc
X-Mail-Count: 07931
=======================================================
Changed:
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-alternatives.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-binarypkg.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-conffiles.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-diversions.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-scope.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-sourcepkg.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-archive.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-binary.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-controlfields.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-customized-programs.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-docs.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-files.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-maintainerscripts.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-opersys.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-relationships.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-scope.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-sharedlibs.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-source.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/footnotes.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/index.tt2
U www/trunk/src/community/devel/debian-policy-ja/policy.ja.sgml
U www/trunk/src/community/devel/debian-policy-ja/version.ent
U www/trunk/src/community/devel/debian-policy-ja/version.ja.ent
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-alternatives.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-alternatives.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-alternatives.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -37,7 +37,7 @@
<hr>
<p>
-複数のパッケージが、同じプログラム名やファイル名を持つ異なるバージョンを提供している場合、デフォルトで使用するプログラムをシステムで選択できると便利です。
+複数のパッケージが、同じ名称のプログラムやファイルの異なる版を提供している場合、デフォルトで使用するプログラムをシステムで選択できると便利です。
ただ、もちろんシステム管理者による変更は出来なくてはいけませんし、その判断は尊重されなければいけません。
</p>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-binarypkg.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-binarypkg.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-binarypkg.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -37,31 +37,19 @@
<hr>
<p>
-バイナリパッケージは大きく分けて2つの部分からなります。 最初の部分には
-<code>dpkg</code>
-がインストールや削除に使う様々な制御情報ファイルやスクリプトが入っています。 <a
+<code>deb(5)</code> マニュアルページ、および本マニュアルの <a
href="#s-pkg-controlarea">パッケージ制御情報ファイル, Section B.2</a>
を見てください。
</p>
-<p>
-二つめの部分はインストールされるファイルやディレクトリを含んだアーカイブです。
-</p>
-
-<p>
-将来、他にもチェックサムや電子署名などがバイナリパッケージに含まれるようになるでしょう。
-アーカイブのフォーマットについてはマニュアル <code>deb(5)</code> の man
-ページに完全な記述があります。
-</p>
-
<hr>
<h2 id="s-pkg-bincreating">B.1 パッケージファイルの作成 - <code>dpkg-deb</code></h3>
<p>
バイナリパッケージファイルの操作はすべて <code>dpkg-deb</code>
-で行ないます。この <code>dpkg-deb</code>
-はパッケージフォーマットを理解する唯一のプログラムです。 (<code>dpkg-deb</code>
+で行ないます。この <code>dpkg-deb</code> はこの (バイナリ)
+パッケージフォーマットを理解する唯一のプログラムです。 (<code>dpkg-deb</code>
は必要に応じて <code>dpkg</code> から呼び出されます。<code>dpkg</code>
は依頼されたオプションが <code>dpkg-deb</code>
に適切なものかどうかを見分け、同じ引数で代わりに <code>dpkg-deb</code>
@@ -153,7 +141,7 @@
<p>
パッケージ制御情報ファイルエリアにそれ以外のファイルを入れることはできますが、あまりいい考えではありません
-(もっとも、それらは通常無視されますが)。
+(もっとも、それらは多くの場合無視されますが)。
</p>
<p>
@@ -174,9 +162,9 @@
</p>
<p>
-このファイルは通常 <code>dpkg-shlibdeps</code> を補助として使い
-<code>dpkg-gencontrol</code> がソースパッケージ内の情報から自動的に作ります。
-<a
+このファイルは、通常 <code>dpkg-gencontrol</code>
+がソースパッケージ内の情報から自動的に作ります。その際
+<code>dpkg-shlibdeps</code> が補助として使われます。 <a
href="ap-pkg-sourcepkg.html#s-pkg-sourcetools">ソースパッケージを処理するためのツール,
Section C.1</a> を見て下さい。
</p>
@@ -197,7 +185,7 @@
</p>
<p>
-これらのスクリプトに「常に同じ効き目」を持たせておくことは非常に重要です。 <a
+これらのスクリプトに「再入結果の同一性」を持たせておくことは非常に重要です。 <a
href="ch-maintainerscripts.html#s-idempotency">メンテナスクリプトの再入結果の同一性,
Section 6.2</a> を参照ください。
</p>
@@ -215,7 +203,7 @@
<dd>
<p>
このファイルには <code>dpkg</code>
-により自動的に扱われなければならない設定ファイルのリストが含まれます (<a
+により自動的に扱うことが意図された設定ファイルのリストが含まれます (<a
href="ap-pkg-conffiles.html">設定ファイルの取り扱い (旧 Packaging Manual より),
Appendix E</a> を参照)。
すべての設定ファイルをここに書く必要はないことに注意して下さい。
@@ -227,11 +215,11 @@
<dd>
<p>
このファイルにはパッケージが提供する共有ライブラリのリストが、それぞれの依存関係の詳細と共に含まれます。
-このファイルは <code>dpkg-shlibdeps</code>
-がパッケージコントロールファイルで、どの依存関係が必要かを決める時に使用します。
+このファイルは <code>dpkg-shlibdeps</code> により利用され、
+パッケージコントロールファイルでどの依存関係が必要かを決めるために使われます。
<code>shlibs</code> ファイルの書式については <a
href="ch-sharedlibs.html#s-shlibs"><code>shlibs</code> ファイルフォーマット,
-Section 8.6.3</a> に記述があります。
+Section 8.6.4.2</a> に記述があります。
</p>
</dd>
</dl>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-conffiles.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-conffiles.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-conffiles.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -110,15 +110,15 @@
<p>
けれども、<code>dpkg</code>
-は、ユーザまたはスクリプトによって削除された設定ファイルを上書きすることは
-<em>ありません</em>。
+は、ユーザまたはスクリプトによって削除された設定ファイル
+(<samp>conffile</samp>) を置き換えることは <em>ありません</em>。
いくつかのプログラムにおいては、ある設定ファイルが存在しないことによって、他の方法では代替できないような効果をねらっているものがあります。
したがって、もしユーザがそうしたのであれば、削除されたファイルはそのままにしておく必要があります。
</p>
<p>
パッケージは、パッケージ管理スクリプトの中では、<code>dpkg</code>
-によって操作されるconffile を変更することは <em>できません</em>。
+によって操作される conffile を変更することは <em>できません</em>。
もし、これを行った場合、パッケージのアップデートのとき、 <code>dpkg</code>
は、ユーザを混乱させる、また潜在的に危険なオプションを与えることになります。
</p>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-diversions.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-diversions.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-diversions.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -43,7 +43,7 @@
<p>
この方法は、あるパッケージに含まれるファイルをローカルに入れ替える場合や、あるパッケージが別のパッケージに含まれるファイルを置きかえる
-(または、そのプログラムのラッパーを 提供する) 場合に利用できます。
+(または、そのプログラムのラッパーを提供する) 場合に利用できます。
</p>
<p>
@@ -139,6 +139,11 @@
が新しいバージョンをインストールするまでの間、そのファイルが存在しないタイミングがあるのです。
</p>
+<p>
+<samp>conffile</samp> に待避バージョンを用いようとはしないでください。
+このような指定を行った場合、<code>dpkg</code> は適切に処理できません。
+</p>
+
<hr>
<p>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-scope.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-scope.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-scope.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -62,14 +62,14 @@
</p>
<p>
-以下のパッケージングマニュアルのうち一部は、ポリシーマニュアルに統合済みで、付録から削除されています。
+以下のパッケージングマニュアルのうち一部はポリシーマニュアルに統合済みで、付録から削除されています。
元の場所から新しい場所に対してリンクが作成されています。
</p>
<p>
<code>dpkg</code> はバイナリファイルを作成し、Unix
システムにそれをインストールしたり削除したりするための一群のプログラム [<a
-href="footnotes.html#f113" name="fr113">113</a>]です。
+href="footnotes.html#f123" name="fr123">123</a>]です。
</p>
<p>
@@ -86,20 +86,13 @@
</p>
<p>
-このマニュアルは、<code>dselect</code>
-のコア部分とアクセスメソッドスクリプトの間のやり取り、新しいアクセスメソッドの作成方法についても言及します。
-アクセスメソッドスクリプトは、選択したパッケージの実際のインストールを担当します。
-</p>
-
-<p>
このマニュアルでは、パッケージ作成ツールやインストールツールのオプションや使い方についての詳しい説明は行ないません。
それらのプログラムの man ページと一緒に読んで下さい。
</p>
<p>
-<code>dpkg</code> と一緒に提供される <code>update-rc.d</code> や
-<code>install-info</code>
-といった様々なシステム設定を行なうユーティリティプログラムについての詳細もここでは触れません。
+<code>dpkg</code>
+と一緒に提供されるユーティリティプログラムについての詳細もここでは触れません。
これらについても、それぞれの man ページを見て下さい。
</p>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-sourcepkg.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-sourcepkg.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ap-pkg-sourcepkg.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -113,54 +113,9 @@
<h3 id="s-pkg-dpkg-buildpackage">C.1.2 <code>dpkg-buildpackage</code> - 全体的なパッケージ構築の制御スクリプト</h4>
<p>
-<code>dpkg-buildpackage</code> は、<code>dpkg-source</code>、
-<code>debian/rules</code> の <samp>clean</samp>、<samp>build</samp>、
-<samp>binary</samp> の各ターゲット、<code>dpkg-genchanges</code>
-を呼びだし、最後に <code>gpg</code> (または <code>pgp</code>)
-を呼んで署名済のソースパッケージおよびバイナリパッケージを作成しアップロードします。
+<code>dpkg-buildpackage(1)</code> マニュアルページを参照ください。
</p>
-<p>
-このコマンドは、通常、すでに構築されている、あるいは未構築のソースディレクトリのトップレベルで手動で実行します。
-引数なしで呼び出してもかまいません。よく使う引数は次の通りです。
-</p>
-<dl>
-<dt><samp>-uc</samp>, <samp>-us</samp></dt>
-<dd>
-<p>
-それぞれ、<code>.changes</code> ファイル、ソースパッケージの <code>.dsc</code>
-ファイルにサインをしないという指示です。
-</p>
-</dd>
-<dt><samp>-p<var>sign-command</var></samp></dt>
-<dd>
-<p>
-<var>sign-command</var> を <code>PATH</code> で見つかる <samp>gpg</samp> または
-<samp>pgp</samp> の代わりに呼び出します。 <var>sign-command</var> は
-<samp>gpg</samp> または <code>pgp</code> と全く同じ動作をしなくてはなりません。
-</p>
-</dd>
-<dt><samp>-r<var>root-command</var></samp></dt>
-<dd>
-<p>
-root 特権が必要な時、<var>root-command</var>
-というコマンドを呼び出します。<var>root-command</var> は第 1
-引数をコマンドとして、必要ならば <code>PATH</code> から呼び出し、第 2
-引数以降を呼び出したコマンドに渡さなければいけません。 <var>root-command</var>
-が与えられなかった場合は、 <var>dpkg-buildpackage</var> は
-<code>fakeroot</code> コマンドを使用します。これは、実際に root
-特権を取得せずにパッケージをビルドするのに殆どの場合は十分なはずです。
-</p>
-</dd>
-<dt><samp>-b</samp>, <samp>-B</samp></dt>
-<dd>
-<p>
-2 種類の、バイナリのみの構築とアップロード - <code>dpkg-source(1)</code>
-を見て下さい。
-</p>
-</dd>
-</dl>
-
<hr>
<h3 id="s-pkg-dpkg-gencontrol">C.1.3 <code>dpkg-gencontrol</code> - バイナリパッケージコントロールファイルの生成</h4>
@@ -173,8 +128,8 @@
<p>
これは通常、パッケージが構築されている一時的なディレクトリツリー中のファイルやディレクトリの許可属性や所有権を設定したあと、パッケージが
-<code>dpkg-deb</code> を用いて構築される直前に [<a href="footnotes.html#f114"
-name="fr114">114</a>] 行なわれます
+<code>dpkg-deb</code> を用いて構築される直前に [<a href="footnotes.html#f124"
+name="fr124">124</a>] 行なわれます
</p>
<p>
@@ -214,7 +169,7 @@
<p>
<code>dpkg-gencontrol</code> は (例えば) <code>dpkg-genchanges</code>
を将来呼び出すときのために <code>debian/files</code>
-中のファイルのリストに情報を加えることもします。
+中のファイルのリストに情報を加えることも行います。
</p>
<hr>
@@ -222,72 +177,9 @@
<h3 id="s-pkg-dpkg-shlibdeps">C.1.4 <code>dpkg-shlibdeps</code> - 共有ライブラリの依存関係の算定</h4>
<p>
-通常、このプログラムは <code>dpkg-gencontrol</code> (<a
-href="#s-pkg-sourcetree">Debian パッケージソースツリー, Section C.2</a> を参照)
-の直前に、ソースツリーのトップレベルで <code>debian/rules</code>
-から呼ばれます。
+<code>dpkg-shlibdeps(1)</code> を参照ください。
</p>
-<p>
-このプログラムの引数は、バイナリパッケージのコントロールファイルに共有ライブラリの依存関係を含める必要のある実行形式および共有ライブラリ
-[<a href="footnotes.html#f115" name="fr115">115</a>] です。
-</p>
-
-<p>
-検索された共有ライブラリが <samp>Recommends</samp> や <samp>Suggests</samp>
-のみを保証すべき場合や、<samp>Pre-Depends</samp> を保証すべき場合は、
-それらの実行形式の前に <samp>-d<var>dependency-field</var></samp>
-オプションをつけてこれを指示しなければなりません (各 <samp>-d</samp>
-オプションは次の <samp>-d</samp> が現れるまで有効です)。
-</p>
-
-<p>
-<code>dpkg-shlibdeps</code>
-は出力されるコントロールファイルを直接修正することはしません。
-代わりに、デフォルトでは <samp>shlibs:Depends</samp> の様な変数の設定を
-<code>debian/substvars</code> というファイルに加えます。
-ソースコントロールファイルにはバイナリパッケージ毎にセクションがありますが、
-これらの変数の設定は適切なセクションの依存関係フィールドから参照しなければなりません。
-</p>
-
-<p>
-例えば、依存関係を必要 (depend) とする主要部と、依存関係として
-"Recommendation"
-のみを必要とするオプション部を生成するパッケージでは、これらの二種類の依存関係を二つの異なったフィールドとして分離します
-[<a href="footnotes.html#f116"
-name="fr116">116</a>]。この場合、<code>debian/rules</code>
-では以下のように書きます。
-</p>
-
-<pre>
- dpkg-shlibdeps -dDepends <var>プログラム 他のプログラム ...</var> \
- -dRecommends <var>オプション部 他のオプション部</var>
-</pre>
-
-<p>
-そしてメインコントロールファイル <code>debian/control</code>
-で次のように書きます。
-</p>
-
-<pre>
- <var>...</var>
- Depends: ${shlibs:Depends}
- Recommends: ${shlibs:Recommends}
- <var>...</var>
-</pre>
-
-<p>
-あるソースが提供する (複数の)
-バイナリパッケージが共有ライブラリに対して異なった依存要求を持つ場合は、
-<samp>-p<var>varnameprefix</var></samp> オプションを利用することが出来ます。
-このオプションはデフォルトの <samp>shlibs:</samp> プレフィックスを上書きします
-(このオプションを設定する毎に <code>dpkg-shlibdeps</code>
-を一回実行します)。それによって、
-<samp><var>varnameprefix</var>:<var>dependencyfield</var></samp>
-という形式で依存変数の集合を幾つか作ることが出来ます。
-これはバイナリパッケージコントロールファイルで適宜参照されます。
-</p>
-
<hr>
<h3 id="s-pkg-dpkg-distaddfile">C.1.5 <code>dpkg-distaddfile</code> - <code>debian/files</code> へのファイルの追加</h4>
@@ -331,25 +223,15 @@
<h3 id="s-pkg-dpkg-genchanges">C.1.6 <code>dpkg-genchanges</code> - アップロードコントロールファイル <code>.changes</code> の生成</h4>
<p>
-通常、このプログラムはパッケージに依存しない <code>dpkg-buildpackage</code>
-の様な自動構築スクリプトから呼び出されますが、手動で呼びだすこともあります。
+<code>dpkg-genchanges(1)</code> のマニュアルページを参照ください。
</p>
-<p>
-このプログラムは通常、構築されたソースツリーのトップレベルで呼び出されます。
-引数をつけずに呼び出した場合は、ソースパッケージの変更履歴ファイル、コントロールファイルの情報と、構築されているバイナリパッケージ、ソースパッケージの情報に基づいて、簡単な
-<code>.changes</code> ファイルを書きだします。
-</p>
-
<hr>
<h3 id="s-pkg-dpkg-parsechangelog">C.1.7 <code>dpkg-parsechangelog</code> - changelog の解析結果の生成</h4>
<p>
-このプログラムは <code>dpkg-source</code> などで内部的に用いられます。
-<code>debian/rules</code> や他の場所で使われるかもしれません。 変更履歴
-(デフォルトでは <code>debian/changelog</code>)
-を解析し、そこに含まれる情報をコントロールファイル形式の表現で標準出力に出力します。
+<code>dpkg-parsechangelog(1)</code> のマニュアルページを参照ください。
</p>
<hr>
@@ -357,11 +239,7 @@
<h3 id="s-pkg-dpkg-architecture">C.1.8 <code>dpkg-architecture</code> - パッケージを構築するシステム、あるいはホストシステムについての情報</h4>
<p>
-このプログラムは手動で使用することもできますが、 <samp>dpkg-buildpackage</samp>
-や <code>debian/rules</code> によっても起動されます。
-そこでは、パッケージを構築するマシンのアーキテクチャ、あるいはホストのアーキテクチャを示す環境変数や
-make 変数を設定します。
-これらの変数は、パッケージ構築過程において必要なものです。
+<code>dpkg-architecture(1)</code> のマニュアルページを参照ください。
</p>
<hr>
@@ -503,11 +381,11 @@
</dl>
<p>
-オリジナルのソースコードがない場合 - 例えば、パッケージが Debian
-のために特別に用意されたものだったり、Debian maintainer が上流の maintainer
-でもある場合- は、 構成が少し違います。 diff ファイルは無く、tar ファイルは
-<code><var>package</var>_<var>version</var>.tar.gz</code> という名前で
-<code><var>package</var>-<var>version</var></code>
+「オリジナル」のソースコード (に相当する物) がない場合 - 例えば、パッケージが
+Debian のために特別に用意されたものだったり、Debian maintainer が上流の
+maintainer でもある場合 - は、 構成が少し違います。 diff ファイルは無く、tar
+ファイルは <code><var>package</var>_<var>version</var>.tar.gz</code>
+という名前で <code><var>package</var>-<var>version</var></code>
というディレクトリを含むものになります。
</p>
@@ -561,10 +439,10 @@
<h3 id="sC.4.1">C.4.1 ソースパッケージに含まれるものに対する制限</h4>
<p>
-ソースパッケージには、ハードリンク [<a href="footnotes.html#f117"
-name="fr117">117</a>] [<a href="footnotes.html#f118" name="fr118">118</a>]
+ソースパッケージには、ハードリンク [<a href="footnotes.html#f125"
+name="fr125">125</a>] [<a href="footnotes.html#f126" name="fr126">126</a>]
デバイスファイル、ソケットファイル、及び setuid や setgid されたファイル [<a
-href="footnotes.html#f119" name="fr119">119</a>] が含まれていてはいけません。
+href="footnotes.html#f127" name="fr127">127</a>] が含まれていてはいけません。
</p>
<p>
@@ -601,13 +479,13 @@
<p>
ソースパッケージを構築する時に、<code>dpkg-source</code>
-警告を表示し、処理は継続するような問題のある変更は次の通りです。
+警告が表示されるものも、処理は継続されるような問題のある変更は次の通りです。
</p>
<ul>
<li>
<p>
-ファイル、ディレクトリ、シンボリックリンクの削除 [<a href="footnotes.html#f120"
-name="fr120">120</a>] 。
+ファイル、ディレクトリ、シンボリックリンクの削除 [<a href="footnotes.html#f128"
+name="fr128">128</a>] 。
</p>
</li>
<li>
@@ -619,7 +497,7 @@
</ul>
<p>
-変更が指摘されないが、<code>dpkg-source</code>
+変更が指摘されず、<code>dpkg-source</code>
によって検出もされない変更は次の通りです。
</p>
<ul>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-archive.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-archive.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-archive.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -39,7 +39,7 @@
<p>
Debian システムは <em>パッケージ</em> の集合体として
-管理、配布されています。Debian には非常に数多くの (現在優に 15000 個以上の)
+管理、配布されています。Debian には非常に数多くの (現在 15000 個を優に上回る)
パッケージが含まれますので、取り扱いを簡略化するためパッケージは
<em>セクション</em> と <em>プライオリティ</em> によって分類されています。
</p>
@@ -79,7 +79,7 @@
<p>
<em>Debian ディストリビューション</em> とは <em>main</em>
-アーカイブエリアのことです。
+アーカイブエリアからなります。
</p>
<p>
@@ -293,7 +293,7 @@
<hr>
-<h3 id="s-non-free">2.2.3 non-free アーカイブエリア</h4>
+<h3 id="s-non-free">2.2.3 non-free (非フリー) アーカイブエリア</h4>
<p>
<em>non-free</em> アーカイブエリアには、Debian
@@ -439,21 +439,15 @@
<p>
Debian アーカイブメンテナがセクションの公式リストを提供します。
-現時点では、それらは下記の通りです。 <em>admin</em>, <em>cli-mono</em>,
-<em>comm</em>, <em>database</em>, <em>devel</em>, <em>debug</em>, <em>doc</em>,
-<em>editors</em>, <em>education</em>, <em>electronics</em>, <em>embedded</em>,
-<em>fonts</em>, <em>games</em>, <em>gnome</em>, <em>graphics</em>,
-<em>gnu-r</em>, <em>gnustep</em>, <em>hamradio</em>, <em>haskell</em>,
-<em>httpd</em>, <em>interpreters</em>, <em>introspection</em>, <em>java</em>,
-<em>kde</em>, <em>kernel</em>, <em>libs</em>, <em>libdevel</em>, <em>lisp</em>,
-<em>localization</em>, <em>mail</em>, <em>math</em>, <em>metapackages</em>,
-<em>misc</em>, <em>net</em>, <em>news</em>, <em>ocaml</em>, <em>oldlibs</em>,
-<em>otherosfs</em>, <em>perl</em>, <em>php</em>, <em>python</em>,
-<em>ruby</em>, <em>science</em>, <em>shells</em>, <em>sound</em>, <em>tex</em>,
-<em>text</em>, <em>utils</em>, <em>vcs</em>, <em>video</em>, <em>web</em>,
-<em>x11</em>, <em>xfce</em>, <em>zope</em> さらに追加の
-<em>debian-installer</em> セクションがあり、そこにはインストーラで利用し通常の
-Debian パッケージでは使わないような、特殊なパッケージが収録されています。
+現時点では、それらは下記の通りです。 admin, cli-mono, comm, database, debug,
+devel, doc, editors, education, electronics, embedded, fonts, games, gnome,
+gnu-r, gnustep, graphics, hamradio, haskell, httpd, interpreters,
+introspection, java, kde, kernel, libdevel, libs, lisp, localization, mail,
+math, metapackages, misc, net, news, ocaml, oldlibs, otherosfs, perl, php,
+python, ruby, science, shells, sound, tasks, tex, text, utils, vcs, video, web,
+x11, xfce, zope. さらに追加の <em>debian-installer</em>
+セクションがあり、そこにはインストーラで利用し通常の Debian
+パッケージでは使わないような、特殊なパッケージが収録されています。
</p>
<p>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-binary.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-binary.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-binary.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -53,7 +53,9 @@
ファイル、パッケージのコントロールフィールドを収録した <a
href="ch-controlfields.html#s-binarycontrolfiles">バイナリパッケージコントロールファイル</a>
などがあります。その他の制御情報ファイルには、共有ライブラリの依存情報を格納するのに用いる
-<a href="ch-sharedlibs.html#s-sharedlibs-shlibdeps"><code>shlibs</code>
+<a href="ch-sharedlibs.html#s-sharedlibs-symbols"><code>symbols</code>
+ファイル</a> と <a
+href="ch-sharedlibs.html#s-sharedlibs-shlibdeps"><code>shlibs</code>
ファイル</a> や、パッケージ設定ファイルを列挙した <code>conffiles</code> (<a
href="ch-files.html#s-config-files">設定ファイル, Section 10.7</a> で詳説)
などがあります。
@@ -367,7 +369,7 @@
<h2 id="s-essential">3.8 Essential パッケージ</h3>
<p>
-Essential は、パッケージ群が展開されてはいるが未設定な状態でも、
+Essential は、パッケージ群が展開状態 (Unpacked) でも、
システム上で提供され使用できなければならない最小の機能の集合として定義されています。
そのようなパッケージには <samp>Essential</samp> コントロールフィールドで
<samp>Essential</samp> 指定が付加されています。<samp>Essential</samp>
@@ -389,7 +391,7 @@
パッケージが未設定な状態でも他のパッケージのアップグレードを止めることはありませんので、
<samp>Essential</samp>
パッケージはすべて、未設定状態でも基本機能はすべて提供している必要があります。
-あるパッケージがこの条件を満たせない場合にはこのパッケージに
+あるパッケージがこの条件を満たせない場合には、そのパッケージに
<samp>Essential</samp>
指定を行ってはいけませんし、そのパッケージに依存する他のパッケージは明示的に適切な依存関係フィールドを与えなければいけません。
</p>
@@ -418,8 +420,8 @@
<p>
パッケージのインストールスクリプトでは、ユーザにとって見る必要がない情報を出力することを避けるべきです。
また、大量のパッケージをインストールする際にユーザが退屈するのを避けるのも、<code>dpkg</code>
-に任せておくべきです。 中でも、<code>install-info</code> を使うときは
-<samp>--quiet</samp> オプションを使いましょう。
+に任せておくべきです。 中でも、<code>update-alternatives</code> に
+<samp>--verbose</samp> オプションを渡さないようにしましょう。
</p>
<p>
@@ -444,7 +446,7 @@
の具体的な実装を提供するすべてのパッケージは <code>update-alternatives</code>
を使って同時に (複数の実装が) インストールできるようにすべきです。 (まだ)
<code>update-alternatives</code>
-を使っていない場合、このような共有コマンド名を提供する他のパッケージを強制的にインストール解除するためには
+を使っていない場合、このような共有コマンド名を提供する他のパッケージの削除を保証するために
<samp>Conflicts</samp> を使わなければいけません (この場合に限って、以前の
<code>update-alternatives</code> を使っていなかったバージョンに対する Conflict
を指定してもかまいません。
@@ -480,10 +482,10 @@
と <samp>templates</samp> ファイルを含めることができます。 <code>config</code>
ファイルはパッケージ設定のための追加のメンテナスクリプトで、
<code>templates</code> にはユーザ問い合わせ用のテンプレートが収録されています。
-<code>config</code> は、<code>preinst</code>
-の前、かつパッケージがアンパックされる前、かつ 依存関係 (dependency)
-および先行依存関係 (pre-dependency) が満たされる前に走ることがありますので、
-<em>Essential</em> パッケージに属するツールのみを [<a href="footnotes.html#f12"
+<code>config</code> は、<code>preinst</code> の前、かつパッケージが展開
+(Unpacked) される前、かつ 依存関係 (dependency) および先行依存関係
+(pre-dependency) が満たされる前に走ることがありますので、 <em>Essential</em>
+パッケージに属するツールのみを [<a href="footnotes.html#f12"
name="fr12">12</a>] 使う必要があります。
</p>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-controlfields.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-controlfields.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-controlfields.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -65,7 +65,8 @@
個々のフィールドは、名前とそれに続くコロンとデータ/値によって構成されます。
フィールド名は制御文字、空白とコロンを除く ASCII 文字から構成されます
(つまり、33-57 または 59-126 までの間でなければいけません)。
-フィールド名は、コメント文字 <samp>#</samp> で始まってはいけません。
+フィールド名は、コメント文字 <samp>#</samp> やハイフン文字 <samp>-</samp>
+で始まってはいけません。
</p>
<p>
@@ -195,11 +196,6 @@
</li>
<li>
<p>
-<a href="#s-f-DM-Upload-Allowed"><samp>DM-Upload-Allowed</samp></a>
-</p>
-</li>
-<li>
-<p>
<a href="#s-f-Section"><samp>Section</samp></a> (推奨)
</p>
</li>
@@ -224,6 +220,12 @@
<a href="#s-f-Homepage"><samp>Homepage</samp></a>
</p>
</li>
+<li>
+<p>
+<a href="#s-f-VCS-fields"><samp>Vcs-Browser</samp>, <samp>Vcs-Git</samp>
+ほか</a>
+</p>
+</li>
</ul>
<p>
@@ -270,6 +272,16 @@
<a href="#s-f-Homepage"><samp>Homepage</samp></a>
</p>
</li>
+<li>
+<p>
+<a href="ch-relationships.html#s-built-using"><samp>Built-Using</samp></a>
+</p>
+</li>
+<li>
+<p>
+<a href="#s-f-Package-Type"><samp>Package-Type</samp></a>
+</p>
+</li>
</ul>
<p>
@@ -372,6 +384,11 @@
<a href="#s-f-Homepage"><samp>Homepage</samp></a>
</p>
</li>
+<li>
+<p>
+<a href="ch-relationships.html#s-built-using"><samp>Built-Using</samp></a>
+</p>
+</li>
</ul>
<hr>
@@ -422,16 +439,22 @@
</li>
<li>
<p>
-<a href="#s-f-DM-Upload-Allowed"><samp>DM-Upload-Allowed</samp></a>
+<a href="#s-f-Homepage"><samp>Homepage</samp></a>
</p>
</li>
<li>
<p>
-<a href="#s-f-Homepage"><samp>Homepage</samp></a>
+<a href="#s-f-VCS-fields"><samp>Vcs-Browser</samp>, <samp>Vcs-Git</samp>
+ほか</a>
</p>
</li>
<li>
<p>
+<a href="#s-f-Dgit"><samp>Dgit</samp></a>
+</p>
+</li>
+<li>
+<p>
<a href="#s-f-Standards-Version"><samp>Standards-Version</samp></a>(推奨)
</p>
</li>
@@ -443,8 +466,13 @@
</li>
<li>
<p>
+<a href="#s-f-Package-List"><samp>Package-List</samp></a> (推奨)
+</p>
+</li>
+<li>
+<p>
<a href="#s-f-Checksums"><samp>Checksums-Sha1</samp> および
-<samp>Checksums-Sha256</samp></a> (推奨)
+<samp>Checksums-Sha256</samp></a> (必須)
</p>
</li>
<li>
@@ -552,7 +580,7 @@
<li>
<p>
<a href="#s-f-Checksums"><samp>Checksums-Sha1</samp> および
-<samp>Checksums-Sha256</samp></a> (推奨)
+<samp>Checksums-Sha256</samp></a> (必須)
</p>
</li>
<li>
@@ -1391,32 +1419,110 @@
<p>
<code>.dsc</code>
-ファイルには、これらのフィールドにはソースパッケージを構成する全てのファイルを列挙すべきです。
+ファイルには、これらのフィールドにはソースパッケージを構成する全てのファイルを列挙します。
<code>.changes</code>
-ファイルには、これらのフィールドにはアップロードしようとする全てのファイルを列挙すべきです。
+ファイルには、これらのフィールドにはアップロードしようとする全てのファイルを列挙します。
これらのフィールド中のファイルのリストは、<samp>Files</samp>
フィールドのファイルのリストと一致している必要があります。
</p>
<hr>
-<h3 id="s-f-DM-Upload-Allowed">5.6.25 <samp>DM-Upload-Allowed</samp></h4>
+<h3 id="s5.6.25">5.6.25 <samp>DM-Upload-Allowed</samp></h4>
<p>
-Debian メンテナに、対象パッケージを Debian
-アーカイブにアップロードして良いことを指示します。 このフィールドの有効な値は
-<samp>yes</samp> のみです。
-もし、不安定版または実験版中のパッケージの最新版で、フィールド
-<samp>DM-Upload-Allowed:yes</samp>
-がソースコントロールファイルのソースセクションに存在する場合は、 Debian
-メンテナキーリング内の鍵で署名されたアップロードを Debian
-アーカイブは受け入れます。 この件の詳細は、一般決議 <code><a
-href="http://www.debian.org/vote/2007/vote_003">Endorse the concept of Debian
-Maintainers (Debian メンテナの考え方を裏書する)</a></code> を参照ください。
+廃止になりました。<a href="#s-f-DM-Upload-Allowed">以下を</a>参照ください。
</p>
<hr>
+<h3 id="s-f-VCS-fields">5.6.26 バージョンコントロールシステム(VCS) フィールド</h4>
+
+<p>
+VCS を使って開発される Debian ソースパッケージが増えてきています。
+以下のフィールドは、Debian
+ソースパッケージの開発が行われている一般からアクセス可能なリポジトリを示すために用いられます。
+</p>
+<dl>
+<dt><samp>Vcs-Browser</samp></dt>
+<dd>
+<p>
+リボジトリのブラウズのためのウェブインターフェースの URL です。
+</p>
+</dd>
+</dl>
+<dl>
+<dt><samp>Vcs-Arch</samp>, <samp>Vcs-Bzr</samp> (Bazaar), <samp>Vcs-Cvs</samp>, <samp>Vcs-Darcs</samp>, <samp>Vcs-Git</samp>, <samp>Vcs-Hg</samp> (Mercurial), <samp>Vcs-Mtn</samp> (Monotone), <samp>Vcs-Svn</samp> (Subversion)</dt>
+<dd>
+<p>
+フィールド名で VCS の種別を識別します。
+フィールドの値は各バージョンコントロールシステムで一般的なリポジトリの位置を示す書式で、パッケージングのためのリポジトリの位置を決めるのに十分な値にすべきです。
+理想的には、この値は Debian
+パッケージの新版の開発で用いているブランチの位置も示しているのが望ましいです。
+</p>
+
+<p>
+Git の場合、この値は URL からなり、オプションとして <samp>-b</samp>
+という語と、示されたレポジトリのブランチ名が続きます。これは <samp>git
+clone</samp> コマンドの書式に沿ったものです。
+ブランチが指定されない場合、パッケージングは既定のブランチで行われているべきです。
+</p>
+
+<p>
+ひとつのパッケージで、ひとつ以上の VCS を指定しても構いません。
+</p>
+</dd>
+</dl>
+
+<hr>
+
+<h3 id="s-f-Package-List">5.6.27 <samp>Package-List</samp></h4>
+
+<p>
+このフィールドは複数行を許す書式で、当該ソースパッケージから作成されるすべてのパッケージを、すべてのアーキテクチャを考慮して列挙します。
+このフィールドの最初の行の値は空です。
+次の行からは順に各行に一つのバイナリパッケージが、名前、タイプ、セクション、プライオリティの順に空白区切りで列挙されます。
+5
+番目、およびそれ以降の空白区切りの要素を記載可能で、このフィールドのパーザはそれを許すようにしなければいけません。
+パッケージタイプについては <a href="#s-f-Package-Type">Package-Type</a>
+フィールドを参照してください。
+</p>
+
+<hr>
+
+<h3 id="s-f-Package-Type">5.6.28 <samp>Package-Type</samp></h4>
+
+<p>
+1 語からなる単純なフィールドで、パッケージのタイプを記載します。
+バイナリパッケージに対しては <samp>deb</samp>
+を、マイクロバイナリパッケージには <samp>udeb</samp> を指定します。
+ここで定義されていない他のタイプも記載可能です。
+ソースパッケージコントロールファイルでは、<samp>Package-Type</samp> には
+<samp>deb</samp> を指定せず、省略すべきです。
+これは、このフィールドを省略した場合、<samp>deb</samp> とみなされるためです。
+</p>
+
+<hr>
+
+<h3 id="s-f-Dgit">5.6.29 <samp>Dgit</samp></h4>
+
+<p>
+折り返しされるフィールドで、git のコミットハッシュ (full 形式) 1
+つに、将来の拡張時に定義される予定の空白区切りのデータが続きます。
+</p>
+
+<p>
+ソースパッケージが、<em>dgit-repos</em> という名称の基準となる場所で提供される
+Git
+リポジトリにて、ここで記載されたコミットと正確に一致しているということを宣言します。
+上記の場所は、Debian アーカイブと Git との間の双方向ゲートウェイで、
+<code>dgit</code> で利用されます。 当該コミットは、名称が
+<samp>refs/dgit/*</samp> に一致する一参照から (少なくとも) 到達可能です。詳細は
+<code>dgit</code> のマニュアルを参照ください。
+</p>
+
+<hr>
+
<h2 id="s5.7">5.7 ユーザ定義フィールド</h3>
<p>
@@ -1460,7 +1566,29 @@
<hr>
+<h2 id="s-obsolete-control-data-fields">5.8 廃止になったフィールド</h3>
+
<p>
+以下のフィールドは廃止になっており、ポリシィの以前の版に対応したパッケージで指定されているかもしれません。
+</p>
+
+<hr>
+
+<h3 id="s-f-DM-Upload-Allowed">5.8.1 <samp>DM-Upload-Allowed</samp></h4>
+
+<p>
+Debian メンテナに、対象パッケージを Debian
+アーカイブにアップロードして良いことを指示します。 このフィールドの有効な値は
+<samp>yes</samp> のみです。 このフィールドは Debian
+メンテナの行うアップロードを調整するために使われていました。
+この件の詳細は、一般決議 <code><a
+href="http://www.debian.org/vote/2007/vote_003">Endorse the concept of Debian
+Maintainers (Debian メンテナの考え方を裏書する)</a></code> を参照ください。
+</p>
+
+<hr>
+
+<p>
[ <a href="ch-source.html">previous</a> ]
[ <a href="index.html#contents">Contents</a> ]
[ <a href="ch-scope.html">1</a> ]
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-customized-programs.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-customized-programs.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-customized-programs.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -63,8 +63,8 @@
パッケージは、アーキテクチャワイルドカードを指定することができます。
アーキテクチャワイルドカードは、<samp>ant</samp>
(全アーキテクチャにマッチします)、 <samp><var>os</var></samp>-any, または
-any-<samp><var>cpu</var></samp> の形式 [<a href="footnotes.html#f89"
-name="fr89">89</a>] をとります。
+any-<samp><var>cpu</var></samp> の形式 [<a href="footnotes.html#f100"
+name="fr100">100</a>] をとります。
</p>
<hr>
@@ -171,7 +171,7 @@
<p>
パッケージは <samp>editor</samp> や <samp>pager</samp> に依存する必要はなく [<a
-href="footnotes.html#f90" name="fr90">90</a>]
+href="footnotes.html#f101" name="fr101">101</a>]
、パッケージからこの二つの仮想パッケージを提供する必要もありません。
</p>
@@ -210,24 +210,8 @@
<ol type="1" start="2" >
<li>
<p>
-HTML 文書へのアクセス
+(削除)
</p>
-
-<p>
-各パッケージの HTML 形式の文書は <code>/usr/share/doc/<var>package</var></code>
-に置きます。 また、次のようにして参照することができるようにしてください。
-</p>
-<pre>
- http://localhost/doc/<var>package</var>/<var>filename</var>
-</pre>
-
-<p>
-web
-サーバは文書ツリーに対するアクセスを、そのホストのクライアントのみがおこなえるように制限をかけるべきです。
-もし web サーバがそのようなアクセス制御機能を持たないなら、
-全くアクセスを許さないようにするか、
-インストール時にアクセスを許すかどうかを問い合わせてください。
-</p>
</li>
</ol>
<ol type="1" start="3" >
@@ -327,16 +311,16 @@
によるロックはドットファイルによるロックと併用しなければなりません。
デッドロックを避けるため、プログラムではまず <samp>fcntl()</samp>
を使って、その次にドットファイルロックを使うか、二つのロックをブロックしないやり方
-[<a href="footnotes.html#f91" name="fr91">91</a>] で使うべきです。
-<samp>liblockfile*</samp>パッケージ [<a href="footnotes.html#f92"
-name="fr92">92</a>] に含まれる <samp>maillock</samp> と <samp>mailunlock</samp>
-を使うのが上記を実現するお勧めのやり方です。
+[<a href="footnotes.html#f102" name="fr102">102</a>] で使うべきです。
+<samp>liblockfile*</samp>パッケージ [<a href="footnotes.html#f103"
+name="fr103">103</a>] に含まれる <samp>maillock</samp> と
+<samp>mailunlock</samp> を使うのが上記を実現するお勧めのやり方です。
</p>
<p>
メールボックスは、通常は <var>user</var> 所有でモード 600
か、<samp><var>user</var>:mail</samp> 所有でモード 660 のいずれかとします [<a
-href="footnotes.html#f93" name="fr93">93</a>]。
+href="footnotes.html#f104" name="fr104">104</a>]。
ローカルのシステム管理者は、これと異なったパーミッション手法をとることができます。
このため、パッケージは特定の要求 (例えば新規にメールボックスを作成するなど)
がない限り、メールボックスのパーミッションと所有者について仮定を置くべきではありません。
@@ -474,8 +458,8 @@
X
サーバを提供するパッケージ、言い換えると直接または間接に実際の入力機器と表示ハードウェアを操作するパッケージは
<samp>Provides</samp> コントロールフィールド中に仮想パッケージ
-<samp>xserver</samp>を提供することを [<a href="footnotes.html#f94"
-name="fr94">94</a>] 宣言すべきです。
+<samp>xserver</samp>を提供することを [<a href="footnotes.html#f105"
+name="fr105">105</a>] 宣言すべきです。
</p>
<hr>
@@ -507,8 +491,8 @@
<li>
<p>
コマンド行オプション <samp>-e <var>command</var></samp>
-によって、新しいターミナルウィンドウを作成でき [<a href="footnotes.html#f95"
-name="fr95">95</a>] 、その上で指定の<var>コマンド</var>を、<samp>xterm</samp>
+によって、新しいターミナルウィンドウを作成でき [<a href="footnotes.html#f106"
+name="fr106">106</a>] 、その上で指定の<var>コマンド</var>を、<samp>xterm</samp>
と同様にコマンドラインの残りの部分を exec
に渡すことで解釈実行させることができること。
</p>
@@ -576,8 +560,8 @@
<h3 id="s11.8.5">11.8.5 フォントを提供するパッケージ</h4>
<p>
-X ウィンドウシステムのフォント [<a href="footnotes.html#f96"
-name="fr96">96</a>] を提供するパッケージでは X
+X ウィンドウシステムのフォント [<a href="footnotes.html#f107"
+name="fr107">107</a>] を提供するパッケージでは X
およびフォントサーバの変更なしにそれが有効になるように、また自分自身の情報を登録する際に他のフォントパッケージの情報を壊さないようにするため、いくつかの作業を行う必要があります。
</p>
<ol type="1" start="1" >
@@ -592,7 +576,7 @@
Recommended を、単に拡張機能を提供するだけなら Suggests
を問題のフォントパッケージに指定してください。
パッケージからフォントパッケージに対して Depend を指定してはいけません [<a
-href="footnotes.html#f97" name="fr97">97</a>] 。
+href="footnotes.html#f108" name="fr108">108</a>] 。
</p>
</li>
</ol>
@@ -779,7 +763,7 @@
<p>
X リソースを使ったプログラムの設定も <code>/etc/X11/Xresources/</code>
に置くパッケージと同じ名前のファイルを用意することで [<a
-href="footnotes.html#f98" name="fr98">98</a>]
+href="footnotes.html#f109" name="fr109">109</a>]
サポートされています。このファイルは、<samp>conffile</samp>
であるとの属性を設定するか、設定ファイルとして扱わなければいけません。
</p>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-docs.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-docs.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-docs.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -57,7 +57,7 @@
バグトラッキングシステムにバグとして報告すべきです
(自分で報告しておく、という処理でもかまいません)。
適切なマニュアルが収録されるまではバグ報告を閉じないでください。 [<a
-href="footnotes.html#f99" name="fr99">99</a>]
+href="footnotes.html#f110" name="fr110">110</a>]
</p>
<p>
@@ -75,8 +75,8 @@
<p>
一つのマニュアルページを複数の名前で参照する必要がある場合は、 <code>.so</code>
機能を使うよりもシンボリックリンクを使う方が望ましいやり方です。
-ただ、上流のソースが <code>.so</code> [<a href="footnotes.html#f100"
-name="fr100">100</a>]
+ただ、上流のソースが <code>.so</code> [<a href="footnotes.html#f111"
+name="fr111">111</a>]
を使っている場合、それをあえてシンボリックリンクへ変更する必要はありません。
それがよほど簡単でないかぎり行わないでください。 man
のディレクトリではハードリンクを作成すべきではありません。
@@ -88,7 +88,7 @@
<samp>.so</samp> コマンド)
をファイルシステム中で使っていない場合、<code>man</code> があなたの man
ページの別名を man ページのヘッダだけの情報から見つけることを [<a
-href="footnotes.html#f101" name="fr101">101</a>] 期待するべきではありません。
+href="footnotes.html#f112" name="fr112">112</a>] 期待するべきではありません。
</p>
<p>
@@ -99,14 +99,14 @@
にその言語関連の最短のロカール名が記載されているもの)
を使用することができます。 例えば、<code>/usr/share/man/fr</code>
のページは、UTF-8 と ISO-8859-1 のいずれかを使用することができます [<a
-href="footnotes.html#f102" name="fr102">102</a>]。
+href="footnotes.html#f113" name="fr113">113</a>]。
</p>
<p>
国名 (<samp>de_DE</samp> の <samp>DE</samp>)
は、言語に対して大きな違いを示す場合でなければ、サブディレクトリ名に使用してはいけません。
これは、他の国のその言語を利用者を除外することになるからです [<a
-href="footnotes.html#f103" name="fr103">103</a>]。
+href="footnotes.html#f114" name="fr114">114</a>]。
</p>
<p>
@@ -124,16 +124,27 @@
</p>
<p>
-<code>install-info</code> プログラムが info の読み手のため
+<code>install-info</code> プログラムが info リーダープログラムのため
<code>/usr/share/info/dir</code> にインストールされた info
-ドキュメントの管理を行います[<a href="footnotes.html#f104"
-name="fr104">104</a>]。このファイルはパッケージに含めてはいけません。info
-文書を含むパッケージは <samp>dpkg (>= 1.15.4) | install-info</samp>
-に依存関係を宣言し、ディレクトリファイルが確実に Debian 5.0 (lenny)
-およびそれ以前のリリースからの部分アップグレードで再ビルドされるようにすべきです。
+ドキュメントの管理を行います。 このファイルは、<code>install-info</code>
+以外のパッケージに含めてはいけません。
</p>
<p>
+<code>install-info</code> は dpkg
+からのトリガを受けて、適切なタイミングで自動的に起動されます。
+<code>install-info</code> 以外のパッケージでは、 <code>install-info</code>
+を直接<em>起動すべきではなく</em> 、またこの起動の目的で
+<code>install-info</code> に依存関係 (依存 (Depend)、推奨 (Recommend)、示唆
+(Suggest)) を<em>指定すべきではありません</em>。
+</p>
+
+<p>
+<code>/usr/share/info/dir</code> ファイルを必要とする Info
+リーダーは、<code>install-info</code> に依存関係を指定しなければいけません。
+</p>
+
+<p>
info 文書は、<code>install-info</code>
で利用できるよう、文書中にセクションとディレクトリエントリ情報を含むようにすべきです。
セクションは <samp>INFO-DIR-SECTION</samp>
@@ -153,7 +164,7 @@
どのセクションを使うべきかについては、自分のシステムの
<code>/usr/share/info/dir</code> を調べて最も関係の深そうなものを
(現状に適切なものがない場合には、新規に作成して) 選択してください [<a
-href="footnotes.html#f105" name="fr105">105</a>]。
+href="footnotes.html#f115" name="fr115">115</a>]。
</p>
<hr>
@@ -184,7 +195,7 @@
<p>
パッケージは、動作のために <code>/usr/share/doc/</code>
以下のファイルが存在することを要求していてはいけません。 [<a
-href="footnotes.html#f106" name="fr106">106</a>]
+href="footnotes.html#f116" name="fr116">116</a>]
プログラムから参照されるが、同時に単独のドキュメントとしても役に立つようなファイルは
<code>/usr/share/<var>package</var>/</code> 以下にインストールして、
<code>/usr/share/doc/<var>package</var></code>
@@ -195,8 +206,8 @@
<code>/usr/share/doc/<var>package</var></code> が、 <code>/usr/share/doc</code>
以下に置かれている他のディレクトリへのシンボリックリンクとすることは、
この両方のパッケージが同じソースから作成されたもので、かつ前者から後者へ
-Depends が指定されているときのみ許されています [<a href="footnotes.html#f107"
-name="fr107">107</a>]。
+Depends が指定されているときのみ許されています [<a href="footnotes.html#f117"
+name="fr117">117</a>]。
</p>
<p>
@@ -205,7 +216,7 @@
<code>/usr/share/doc/<var>package</var></code>
に変更になっており、パッケージはディレクトリ
<code>/usr/doc/<var>package</var></code> に文書を置いてはいけません [<a
-href="footnotes.html#f108" name="fr108">108</a>]。
+href="footnotes.html#f118" name="fr118">118</a>]。
</p>
<hr>
@@ -218,7 +229,7 @@
<p>
パッケージに各種書式に変換可能なマークアップ形式の詳細文書が付属している場合は、バイナリパッケージには可能なかぎり
-HTML 形式のものを [<a href="footnotes.html#f109" name="fr109">109</a>]
+HTML 形式のものを [<a href="footnotes.html#f119" name="fr119">119</a>]
<code>/usr/share/doc/<var>appropriate-package</var></code>、
およびそのサブディレクトリにインストールしてください。
</p>
@@ -236,7 +247,7 @@
<code>/usr/share/doc/<var>package</var>/copyright</code>
に収録されていなければいけません。
このファイルは圧縮されていたり、シンボリックリンクであったりしてはいけません
-[<a href="footnotes.html#f110" name="fr110">110</a>]。
+[<a href="footnotes.html#f120" name="fr120">120</a>]。
</p>
<p>
@@ -270,7 +281,7 @@
(version 1、2 または 3), GNU LGPL (versions 2, 2.1, または 3) または the GNU
FDL (version 1.2 または 1.3) に基づいて配布されている場合には、copyright
ファイルで引用するのではなく、<code>/usr/share/common-licenses</code>
-以下の各ファイル[<a href="footnotes.html#f111" name="fr111">111</a>]
+以下の各ファイル[<a href="footnotes.html#f121" name="fr121">121</a>]
を参照するようにしてください。カリフォルニア大 BSD ライセンスも、
<code>base-files</code> に <code>/usr/share/common-licenses/BSD</code>
として収録されていますが、ライセンスが簡潔なこと、明示的に著作権を Regents of
@@ -286,6 +297,10 @@
<code>README.Debian</code> やその他の適切な場所にインストールされるべきです。
</p>
+<p>
+copyright ファイルは UTF-8 でエンコードされていなければいけません。
+</p>
+
<hr>
<h3 id="s-copyrightformat">12.5.1 機械可読な著作権情報</h4>
@@ -344,8 +359,8 @@
としてアクセスできるようにすべきです。 changelog ファイルが HTML
形式で配布されているならば
<code>/usr/share/doc/<var>package</var>/changelog.html.gz</code>
-という名称で参照できるようにすべきで [<a href="footnotes.html#f112"
-name="fr112">112</a>] 、<code>changelog.gz</code>
+という名称で参照できるようにすべきで [<a href="footnotes.html#f122"
+name="fr122">122</a>] 、<code>changelog.gz</code>
はプレーンテキスト形式として、例えば <samp>lynx -dump -nolist</samp> で HTML
ファイルから作成すべきです。 上流の changelog
ファイルがここで書いている命名規則に沿っていない場合での、ファイル名を変更する、
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-files.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-files.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-files.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -104,14 +104,14 @@
となっている場合には、共有ライブラリのコンパイルとリンクフラグには
<samp>-fPIC</samp> を含めなければいけません。
さもなければ、一部のサポートされているアーキテクチャでビルドに失敗します [<a
-href="footnotes.html#f74" name="fr74">74</a>] 。この規則の例外は必ず
+href="footnotes.html#f84" name="fr84">84</a>] 。この規則の例外は必ず
<em>debian-devel@lists.debian.org</em>
メーリングリストで議論して、一応の合意を得ておく必要があります。
<samp>-fPIC</samp> フラグを使わないでコンパイルした理由は必ず
<samp>README.Debian</samp> ファイルに記載をしなければいけませんし、
同時にアーキテクチャを制限するか、必要なアーキテクチャでは <samp>-fPIC</samp>
-を用いるようにするケアを行わなければいけません [<a href="footnotes.html#f75"
-name="fr75">75</a>]。
+を用いるようにするケアを行わなければいけません [<a href="footnotes.html#f85"
+name="fr85">85</a>]。
</p>
<p>
@@ -124,6 +124,17 @@
</p>
<p>
+ビルドツールで強制されているわけではありませんが、共有ライブラリはバイナリ同様、含まれるシンボルを用いる全てのライブラリにリンクするようビルドされていなければいけません。
+これにより、<a href="ch-sharedlibs.html#s-sharedlibs-symbols">symbols</a> と <a
+href="ch-sharedlibs.html#s-sharedlibs-shlibdeps">shlibs</a>
+システムの正しい動作と、全てのライブラリが <samp>dlopen()</samp>
+により安全に開くことができることが保証されます。
+パッケージメンテナは、共有ライブラリ作成の際に gcc オプション
+<samp>-Wl,-z,defs</samp> を使いたいかもしれません。
+これらのオプションはビルド時のシンボル解決を強制するため、ライブラリの参照関係の抜けは致命的なビルドエラーとして早いうちに捕まえることが可能です。
+</p>
+
+<p>
インストールされる共有ライブラリは次のようにして strip されているべきです。
</p>
<pre>
@@ -135,7 +146,7 @@
にリロケーション処理に必要のないシンボルのみを削除するように指示します)
ダイナミックリンクの際に使用するシンボルは別の ELF
オブジェクトにあるので、共有ライブラリは strip されても完全に機能 [<a
-href="footnotes.html#f76" name="fr76">76</a>] します。
+href="footnotes.html#f86" name="fr86">86</a>] します。
</p>
<p>
@@ -152,8 +163,8 @@
ディレクトリのサブディレクトリにインストールすべきです。
このようなファイルは通常の共有ライブラリに適用される規則に沿わなくともかまいませんが、
実行可能ビットを立ててインストールしてはいけないこと、及び strip
-すべきこと、の二つの規則は守る必要があります [<a href="footnotes.html#f77"
-name="fr77">77</a>]。
+すべきこと、の二つの規則は守る必要があります [<a href="footnotes.html#f87"
+name="fr87">87</a>]。
</p>
<p>
@@ -164,7 +175,7 @@
パッケージには通常は収録すべきではありません。
これは、このファイルに含まれる情報は、Debian
では共有ライブラリとリンクする際に必要ではなく、さらに他のプログラムやライブラリへの不要な依存関係を追加してしまうためです[<a
-href="footnotes.html#f78" name="fr78">78</a>]。 ライブラリに <code>.la</code>
+href="footnotes.html#f88" name="fr88">88</a>]。 ライブラリに <code>.la</code>
ファイルが必要な場合 (例えば、 メタ情報が必要となるやり方で
<samp>libltdl</samp> よりロードされる場合など) <code>.la</code> ファイルの
<samp>dependency_libs</samp> 設定には、通常は空文字列をセットすべきです。
@@ -248,10 +259,10 @@
</p>
<p>
-スクリプトは、SUSv3 Shell Command Language 規定[<a href="footnotes.html#f79"
-name="fr79">79</a>]の仕様に沿っており、かつ SUSv3
-で必須とはされていない以下の機能 [<a href="footnotes.html#f80"
-name="fr80">80</a>] をもつような <code>/bin/sh</code>
+スクリプトは、SUSv3 Shell Command Language 規定[<a href="footnotes.html#f89"
+name="fr89">89</a>]の仕様に沿っており、かつ SUSv3
+で必須とはされていない以下の機能 [<a href="footnotes.html#f90"
+name="fr90">90</a>] をもつような <code>/bin/sh</code>
の実装であることを仮定してかまいません。
</p>
<ul>
@@ -371,8 +382,8 @@
例えば、<code>/usr/lib/foo</code> から <code>/usr/share/bar</code>
へのシンボリックリンクは相対参照とすべき (<code>../share/bar</code>) ですが、
<code>/var/run</code> から <code>/run</code>
-へのシンボリックリンクは絶対参照とすべきです [<a href="footnotes.html#f81"
-name="fr81">81</a>]。
+へのシンボリックリンクは絶対参照とすべきです [<a href="footnotes.html#f91"
+name="fr91">91</a>]。
</p>
<p>
@@ -401,7 +412,9 @@
</pre>
<p>
-圧縮されたファイルを参照するシンボリックリンクは、対象ファイルと同じ拡張子を持つようにしてください。
+圧縮されたファイルを参照するシンボリックリンク (<code>unzip</code> または
+<code>zless</code> などで伸長することを意図したもの)
+は、対象ファイルと同じ拡張子を持つようにすべきです。
例えば、<code>foo.gz</code>
をシンボリックリンクで参照する場合、リンクのファイル名も同様に
"<code>.gz</code>" で終わる、<code>bar.gz</code>
@@ -420,8 +433,8 @@
パッケージが base
システムに含まれていない特殊なデバイスファイルを必要とする場合には、
<code>postinst</code> スクリプト中でユーザに許可を問い合わせた後
-<code>MAKEDEV</code> を呼び出してください[<a href="footnotes.html#f82"
-name="fr82">82</a>] 。
+<code>MAKEDEV</code> を呼び出してください[<a href="footnotes.html#f92"
+name="fr92">92</a>] 。
</p>
<p>
@@ -438,8 +451,8 @@
<p>
パッケージで必要な名前付きパイプは、<code>postinst</code>
-スクリプトで作成しなければいけません [<a href="footnotes.html#f83"
-name="fr83">83</a>]。また、必要に応じて <code>prerm</code> または
+スクリプトで作成しなければいけません [<a href="footnotes.html#f93"
+name="fr93">93</a>]。また、必要に応じて <code>prerm</code> または
<code>postrm</code> スクリプトで削除しなければいけません。
</p>
@@ -531,7 +544,8 @@
</ul>
<p>
-ローカルでの修正の無い、廃止になった設定ファイルはアップグレードの際に削除しても構いません。
+ローカルでの修正の無い、廃止になった設定ファイルはアップグレードの際に削除しても構いません[<a
+href="footnotes.html#f94" name="fr94">94</a>]。
</p>
<p>
@@ -546,7 +560,7 @@
<p>
パッケージの conffile
にハードリンクを張ることは、ローカルで加えた変更を正しく残せなくなるため、許されていません
-[<a href="footnotes.html#f84" name="fr84">84</a>]。
+[<a href="footnotes.html#f95" name="fr95">95</a>]。
</p>
<p>
@@ -728,8 +742,8 @@
これを実現する最良の方法は、<code>/etc/logrotate.d</code>
ディレクトリにログ循環設定ファイル (通常、
<code>/etc/logrotate.d/<var>package</var></code> という名前です)
-を置き、logrotate の提供する機能を使うやり方 [<a href="footnotes.html#f85"
-name="fr85">85</a>] です。 次に logrotate の設定ファイルのいい例を挙げましょう
+を置き、logrotate の提供する機能を使うやり方 [<a href="footnotes.html#f96"
+name="fr96">96</a>] です。 次に logrotate の設定ファイルのいい例を挙げましょう
(詳しくは <code>logrotate(8)</code> を見てください)。
</p>
<pre>
@@ -784,7 +798,7 @@
にすべきです。ディレクトリの所有者は パーミッションに合わせてください。
つまりディレクトリのパーミッションが 2775
であれば、そこに書き込む必要のあるグループのユーザを所有者に設定してください
-[<a href="footnotes.html#f86" name="fr86">86</a>]。
+[<a href="footnotes.html#f97" name="fr97">97</a>]。
</p>
<p>
@@ -816,7 +830,7 @@
システム管理者がローカルなセキュリティの方針に合わせるため、
各バイナリのパーミッションを変えてパッケージを再設定する枠組にしてもかまいません。
その場合は、以下で記載の通り <code>dpkg-statoverride</code> [<a
-href="footnotes.html#f87" name="fr87">87</a>] を使うことができます。
+href="footnotes.html#f98" name="fr98">98</a>] を使うことができます。
もう一つの方法として、例えばプログラムを利用することができるグループを作り、
setuid
した実行ファイルはそのグループだけが実行できるような設定とすることもできます。
@@ -848,8 +862,8 @@
<p>
第二の方法は、プログラムが実行時にグループ名から uid、gid
-を決定するようにするもので、ID は動的に [<a href="footnotes.html#f88"
-name="fr88">88</a>] 割り当てられます。この場合、<code>debian-devel</code>
+を決定するようにするもので、ID は動的に [<a href="footnotes.html#f99"
+name="fr99">99</a>] 割り当てられます。この場合、<code>debian-devel</code>
で討議を行ない、また <code>base-passwd</code>
のメンテナにその名前が一意であること、静的に ID
を割り当てたほうが望ましいということがないか、の二点を問い合わせて、その後適切なユーザ名あるいはグループ名を選ぶべきです。
@@ -934,7 +948,24 @@
<hr>
+<h2 id="s-filenames">10.10 ファイル名</h3>
+
<p>
+システムの PATH (具体的には <samp>/bin</samp>, <samp>/sbin</samp>,
+<samp>/usr/bin</samp>, <samp>/usr/sbin</samp> および <samp>/usr/games</samp>)
+にバイナリパッケージからインストールするファイル名は ASCII
+エンコーディングを用いなければいけません。
+</p>
+
+<p>
+システム PATH 外にバイナリパッケージからインストールするファイル名は UTF-8
+でエンコーディングしなければいけません。 また、可能な限り ASCII
+範囲内に制限するべきです。
+</p>
+
+<hr>
+
+<p>
[ <a href="ch-opersys.html">previous</a> ]
[ <a href="index.html#contents">Contents</a> ]
[ <a href="ch-scope.html">1</a> ]
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-maintainerscripts.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-maintainerscripts.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-maintainerscripts.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -89,9 +89,8 @@
<p>
管理スクリプトから呼ばれるプログラムは、通常そのスクリプトにおいてプログラムの前にパスをつけて呼び出すべきではありません。
インストールが始まる前に、パッケージ管理システムは
-<code>ldconfig</code>、<code>start-stop-daemon</code>、
-<code>install-info</code> や <code>update-rc.d</code>
-などのプログラムが指定された <samp>PATH</samp>
+<code>ldconfig</code>、<code>start-stop-daemon</code>、 や
+<code>update-rc.d</code> などのプログラムが指定された <samp>PATH</samp>
環境変数から発見できるかどうかをチェックします。
ですから、これらのプログラムや、<samp>PATH</samp>
にあることを期待してもいいようなプログラムについては、絶対パス名をつけずに呼び出すべきです。
@@ -178,8 +177,8 @@
(<samp>Pre-Depends</samp>)
を指定したパッケージが提供されていることは期待してもかまいません。
先行依存されたパッケージは少なくとも一回は設定されていますが、ただし
-<code>preinst</code> が呼ばれた時点では単に展開された直後か、
-"Half-Configured" 状態である可能性があります。
+<code>preinst</code> が呼ばれた時点では単に展開状態 (Unpacked) か、
+設定途中状態 (Half-Configured) 状態である可能性があります。
この状況は、先行依存を指定したパッケージの旧版がきちんと設定されていて、その後削除されていなかった場合に起きます。
</p>
</dd>
@@ -193,9 +192,9 @@
展開されたファイルは一部が新しい版に置き換わっていたり、一部が削除されている可能性があるため、
パッケージに含まれるファイルに依存することはできません。
パッケージの依存関係は満たされていないかもしれません。 先行依存
-(pre-dependencies)
-関係については、展開については上記と同じ考え方ですが、先行依存関係の更新に失敗した場合
-"Half-Installed" 状態までに留まります [<a href="footnotes.html#f47"
+(pre-dependencies) 関係については、展開状態 (Unpacked)
+については上記と同じ考え方ですが、先行依存関係の更新に失敗した場合 設定途中状態
+(Half-Installed) までに留まります [<a href="footnotes.html#f47"
name="fr47">47</a>]。
</p>
</dd>
@@ -209,7 +208,7 @@
<dd>
<p>
パッケージに収録されたファイルは展開されます。
-依存するパッケージも少なくとも展開されています。
+依存するパッケージも少なくとも展開状態 (Unpacked) になっています。
巡回依存関係がない限り、依存するパッケージは設定状態となります。
巡回依存関係がある場合の挙動は、<a
href="ch-relationships.html#s-binarydeps">バイナリの依存関係 -
@@ -226,9 +225,9 @@
<dt><var>deconfigured's-postinst</var> <samp>abort-deconfigure</samp> <samp>in-favour</samp> <var>failed-install-package</var> <var>version</var> [<samp>removing</samp> <var>conflicting-package</var> <var>version</var>]</dt>
<dd>
<p>
-パッケージに収録されたファイルは展開されます。 依存するパッケージも少なくとも
-"Half-Installed"
-状態ではあり、その場合は以前に設定されていて削除されていない状態になっています。
+パッケージに収録されたファイルは展開されます。
+依存するパッケージも少なくとも設定途中状態 (Half-Installed)
+ではあり、その場合は以前に設定されていて削除されていない状態になっています。
ただし、依存関係にあるパッケージは設定状態ではないかもしれず、またエラーが起きている場合は展開に失敗している可能性もあります
[<a href="footnotes.html#f48" name="fr48">48</a>]。
その場合でも、<code>postinst</code>
@@ -251,13 +250,14 @@
<dt><var>deconfigured's-prerm</var> <samp>deconfigure</samp> <samp>in-favour</samp> <var>package-being-installed</var> <var>version</var> [<samp>removing</samp> <var>conflicting-package</var> <var>version</var>]</dt>
<dd>
<p>
-内部の <code>prerm</code> が呼ばれるパッケージは、少なくとも
-"Half-Installed" 状態です。すべての依存関係のパッケージは少なくとも
-"Half-Installed"
+内部の <code>prerm</code> が呼ばれるパッケージは、少なくとも 設定途中状態
+(Half-Installed) 状態です。
+すべての依存関係にあるパッケージも少なくとも設定途中状態 (Half-Installed)
状態で、その場合は以前に設定されており、削除されていない状態です。
-これら処理が呼ばれる際には、すべての依存関係のパッケージはもしエラーがない場合には少なくとも展開状態ですが、
-エラーがある場合は部分アップグレードに伴う "Half-Installed"
-状態になっており、更に様々なエラー状態の発生下で呼ばれます。
+これら処理が呼ばれる際には、すべての依存関係のパッケージはもしエラーがない場合には少なくとも展開状態
+(Unpacked) になっていますが、
+さらにエラーがある場合は部分アップグレードに伴い、設定途中状態 (Half-Installed)
+状態の様々なエラー状態の発生下で呼ばれます。
</p>
</dd>
</dl>
@@ -284,8 +284,8 @@
<p>
<code>postrm</code> スクリプトは、
パッケージのファイルが削除あるいは置き換えられたあとに呼ばれます。
-<code>postrm</code>
-が呼ばれたパッケージは、以前に設定解除され、展開されただけである可能性もあります。
+<code>postrm</code> が呼ばれたパッケージは、以前に設定解除され、展開状態
+(Unpacked) である可能性もあります。
この時点で、以降のパッケージの変更では依存関係は考慮されません。
このため、すべての <code>postrm</code> 処理は "essential"
パッケージのみに依存し、パッケージの依存関係が必要な処理はすべて、依存関係が満たされない場合に丁寧に処理を飛ばすようにしなければいけません
@@ -300,8 +300,8 @@
古いパッケージの <samp>postrm upgrade</samp> 処理が失敗した場合に呼ばれます。
新しいパッケージは展開されていますが、"essential"
パッケージと先行依存パッケージのみへの依存が可能です。
-先行依存したパッケージは設定されているか、"Unpacked" または
-以前に設定されてそれ以降削除されていない "Half-Configured" 状態です。
+先行依存したパッケージは設定されているか、展開状態 (Unpacked) または
+以前に設定されてそれ以降削除されていない設定途中状態 (Half-Configured) です。
</p>
</dd>
</dl>
@@ -337,7 +337,7 @@
<li>
<p>
対象となるパッケージの、あるバージョンが既に
-インストールされている場合は次の呼び出しをします。
+インストール状態である場合は次の呼び出しをします。
</p>
<pre>
<var>old-prerm</var> upgrade <var>new-version</var>
@@ -364,8 +364,8 @@
<p>
これが正常動作するなら、"old-version"
-がインストールされています。正常動作しないなら、 "old-version" は
-"Half-Configured" 状態になっています。
+がインストールされています。正常動作しないなら、 "old-version"
+は設定途中状態 (Half-Configured) 状態になっています。
</p>
</li>
</ol>
@@ -491,15 +491,15 @@
<p>
を呼びます。更にこれが正常終了する場合、旧バージョンは "Installed"
-状態になっており、正常終了しない場合は "Unpacked"
-状態のままになっています。
+状態になっており、正常終了しない場合は 展開状態 (Unpacked)
+のままになっています。
</p>
</li>
</ol>
<ol type="1" start="2" >
<li>
<p>
-これが失敗した場合、旧バージョンは "Half-Installed"
+これが失敗した場合、旧バージョンは設定途中状態 (Half-Installed)
状態で残っています。
</p>
</li>
@@ -525,8 +525,8 @@
</pre>
<p>
-です。これが正常終了しない場合、パッケージは "Half-Installed"
-状態で残っており、この修正には再インストールが必要になります。
+です。これが正常終了しない場合、パッケージは 設定途中状態 (Half-Installed)
+で残っており、この修正には再インストールが必要になります。
正常終了した場合には、パッケージは "Config-Files"
状態になっています。
</p>
@@ -550,9 +550,10 @@
</pre>
<p>
-です。これが正常終了しない場合、パッケージは "Half-Installed"
-状態で残っており、この修正には再インストールが必要になります。
-正常終了した場合には、パッケージは未インストール 状態になっています。
+です。これが正常終了しない場合、パッケージは 設定途中状態 (Half-Installed)
+で残っており、この修正には再インストールが必要になります。
+正常終了した場合には、パッケージはインストールされていない (Not-Installed)
+状態になっています。
</p>
</li>
</ol>
@@ -628,24 +629,24 @@
</pre>
<p>
-です。これが失敗した場合、パッケージは "Half-Installed"
-状態で残っています。これが正常終了した場合、dpkg は次に、
+です。これが失敗した場合、パッケージは設定途中状態 (Half-Installed)
+状態で残っています。 これが正常終了した場合、dpkg は次に、
</p>
<pre>
<var>new-postrm</var> abort-upgrade <var>old-version</var>
</pre>
<p>
-を実行します。これが失敗した場合、パッケージは "Half-Installed"
-状態で残っています。 これが正常終了した場合、dpkg は次に、
+を実行します。これが失敗した場合、パッケージは 設定途中状態 (Half-Installed)
+で残っています。 これが正常終了した場合、dpkg は次に、
</p>
<pre>
<var>old-postinst</var> abort-upgrade <var>new-version</var>
</pre>
<p>
-を実行します。これが失敗した場合、旧バージョンは "Unpacked"
-状態になっています。
+を実行します。これが失敗した場合、旧バージョンは 展開状態 (Unpacked)
+になっています。
</p>
</li>
</ol>
@@ -707,10 +708,12 @@
<ol type="1" start="3" >
<li>
<p>
-パッケージ状態のデータベースには、正常な状態、つまりインストールされていないものとして記録されます
-(そのパッケージが持っていた設定ファイルがあれば、それは <code>dpkg</code>
-によって削除されるのではなく、無視されます)。 <code>dpkg</code>
-は前もって、そのパッケージが削除されそうなのかどうかを知らないので、
+パッケージ状態のデータベースには、正常な状態、
+具体的にはインストールされていない状態 (Not-Installed) として記録されます
+(そのパッケージが持っていた <code>conffiles</code> があれば、それは
+<code>dpkg</code> によって削除されるのではなく、無視されます)。
+<code>dpkg</code>
+は、そのパッケージが削除されそうなのかどうかは前もっては分からないので、
削除されるパッケージの `prerm' は 呼び出されないということに注意してください。
</p>
</li>
@@ -735,8 +738,8 @@
<ol type="1" start="12" >
<li>
<p>
-新しいパッケージの状態は、今では正常になっていますので、「展開
-(unpacked)」として記録されます。
+新しいパッケージの状態は、今では正常になっていますので、展開状態 (Unpacked)
+として記録されます。
</p>
<p>
@@ -771,8 +774,9 @@
</pre>
<p>
-設定中にエラーが起こった後、回復は行われません。設定に失敗した場合、パッケージは
-"Failed Config" 状態になっており、エラーメッセージが作成されます。
+設定中にエラーが起こった後、回復は行われません。
+設定に失敗した場合、パッケージは設定途中状態 (Half-Configured)
+になっており、エラーメッセージが作成されます。
</p>
<p>
@@ -813,7 +817,7 @@
</p>
<p>
-これが正常終了しない場合、パッケージは "Half-Configured"
+これが正常終了しない場合、パッケージは設定途中状態 (Half-Configured)
状態か、"Installed" 状態のままのいずれかになります。
</p>
</li>
@@ -832,8 +836,8 @@
</pre>
<p>
-失敗した場合にエラーを巻き戻す方法はありません。パッケージは
-"Half-Installed" 状態となっています。
+失敗した場合にエラーを巻き戻す方法はありません。パッケージは 設定途中状態
+(Half-Installed) 状態となっています。
</p>
</li>
</ol>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-opersys.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-opersys.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-opersys.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -84,7 +84,7 @@
例えば、<samp>Architecture: amd64</samp> であるパッケージに 32-bit x86
向けライブラリが含まれている場合、 それらのライブラリを
<code>/usr/lib/i386-linux-gnu</code> にインストールすることは許されません [<a
-href="footnotes.html#f70" name="fr70">70</a>]。
+href="footnotes.html#f79" name="fr79">79</a>]。
</p>
<p>
@@ -139,14 +139,21 @@
に従っていなければいけません。<code>/run</code>
にあるファイルおよびディレクトリは、一時ファイルシステムに格納されているべきです。
</p>
+
+<p>
+パッケージは、<code>/run</code> ディレクトリの存在を仮定してはならず、さらに
+Debian の安定版が <code>/run</code> をサポートするまでは <samp>initscripts
+(>= 2.88dsf-13.3)</samp> への依存の宣言なしに <code>/run</code>
+ティレクトリが利用可能であることも仮定してはいけません。
+</p>
</li>
</ol>
<ol type="1" start="8" >
<li>
<p>
-root ファイルシステムで、<code>/sys</code> と <code>/selinux</code>
-ディレクトリが追加で許されるようになりました[<a href="footnotes.html#f71"
-name="fr71">71</a>]。
+root ファイルシステムで、<code>/sys</code>
+ディレクトリが追加で許されるようになりました[<a href="footnotes.html#f80"
+name="fr80">80</a>]。
</p>
</li>
</ol>
@@ -155,7 +162,7 @@
<p>
GNU/Hurd システムでは、<code>/hurd</code> と <code>/servers</code> の 2
ディレクトリも、追加で root ファイルシステムに置くことが許されます [<a
-href="footnotes.html#f72" name="fr72">72</a>]。
+href="footnotes.html#f81" name="fr81">81</a>]。
</p>
</li>
</ol>
@@ -595,8 +602,8 @@
スクリプトでは、デーモンが既に実行されていた、
またはすでに異常終了ではなく停止していたなどの様々な異常終了状態を受け付ける必要があり、共通に使われる
<code>init.d</code> 関数ライブラリは、<samp>set -e</samp>
-を付けた安全な呼び出しが行えない [<a href="footnotes.html#f73"
-name="fr73">73</a>] 可能性があります。<samp>init.d</samp>
+を付けた安全な呼び出しが行えない [<a href="footnotes.html#f82"
+name="fr82">82</a>] 可能性があります。<samp>init.d</samp>
スクリプトでは、多くの場合 <samp>set -e</samp>
を使わずに個々のコマンドの結果を別々にチェックするほうが容易です。
</p>
@@ -1259,33 +1266,22 @@
<p>
ある種の MIME タイプを表示/閲覧/再生/合成/編集や印刷する機能を もつプログラムは
-<samp>debian-policy</samp> パッケージに <samp>mime-policy</samp>
-ファイルとして同梱された現在の MIME
-サポートポリシーに従って登録を行う必要があります。
+<code>mailcap(5)</code> フォーマット (RFC 1524) を用いてディレクトリ
+<code>/usr/lib/mime/packages/</code>
+にファイルを置くことにより登録を行う必要があります。
+ここでのファイル名はバイナリパッケージ名です。
</p>
<p>
-MIME
-タイプを表示、作成、編集、印刷するプログラムをパッケージから登録するためのプログラム
-<code>update-mime</code> は <code>mime-support</code>
-パッケージが提供しています。
+<code>mime-support</code> パッケージが <code>update-mime</code>
+プログラムを提供しています。このプログラムが <code>/etc/mailcap</code>
+ファイル中の上記の登録情報を dpkg からのトリガで統合します[<a
+href="footnotes.html#f83" name="fr83">83</a>]。
+この機能を用いるパッケージは、<code>mime-support</code> に対する依存
+(depend)、推奨 (recommend), 推奨 (suggest) 等を宣言する
+<em>べきではありません</em>。
</p>
-<p>
-MIME タイプを扱うプログラムを収録するパッケージは、そのようなプログラムを
-<code>update-mime(8)</code> 説明文書に従って <code>update-mime</code>
-により登録しなければいけません。これらのプログラムは、<code>mime-support</code>
-に対して depend、recommend、suggest を指定すべきではありません。
-代わりに、それらのパッケージでは <samp>postinst</samp> および
-<samp>postrm</samp> スクリプトに以下の例のような処理を含めるべきです。
-</p>
-
-<pre>
- if [ -x /usr/sbin/update-mime ]; then
- update-mime
- fi
-</pre>
-
<hr>
<h2 id="s9.8">9.8 キーボード設定</h3>
@@ -1522,7 +1518,80 @@
<hr>
+<h2 id="s-alternateinit">9.11 代替 init システム</h3>
+
<p>
+<code>sysvinit</code> パッケージの代替として利用できる init システムが現在
+Debian でいくつか提供されています。 この代替となる init 実装は、互換性のため <a
+href="#s-sysvinit">システムランレベルと <code>init.d</code> スクリプト, Section
+9.3</a> で文書化された SysV init
+スクリプトの実行をサポートしなければいけません。
+</p>
+
+<p>
+パッケージは、これらの代替 init
+システムに実装依存の設定情報を統合して提供しても構いません。
+この設定情報には、サービスをスタートする方法とタイミング、ブート時に特定のタスクを実行する順番などが含まれます。
+但し、他の init システムを統合するパッケージでは、init 関連のジョブに対して
+sys-V 書式の同等の機能を提供する init
+スクリプトを後方互換性のために提供しなければいけません。 これは sys-V
+書式が、全ての init
+実装でサポートされていることが保証された唯一の書式であるためです。
+この規則の例外は、init
+実装そのもので提供されているスクリプトやジョブで、このようなジョブは
+<code>/etc/rcS.d/</code>
+の実装依存の互換機能を提供するために必要になる場合があり、init スクリプトと 1
+対 1 の関係を持たないかもしれないためです。
+</p>
+
+<hr>
+
+<h3 id="s-upstart">9.11.1 upstart によるイベントベースのブート</h4>
+
+<p>
+パッケージは、<code>/etc/init</code>
+ディレクトリにジョブファイルを配置することにより、
+イベントベースのブートシステム <code>upstart</code> と統合することも可能です。
+Upstart と同等の機能を提供する SysV init スクリプトの側では、 <code>initctl
+version</code> コマンドの結果に <samp>upstart</samp>
+という文字列の有無を確認して、upstart
+ネイティヴのジョブとの重複実行を避けなければいけません。
+テストは以下のように行います。
+</p>
+<pre>
+ if [ "$1" = start ] && which initctl >/dev/null && initctl version | grep -q upstart
+ then
+ exit 1
+ fi
+</pre>
+
+<p>
+upstart 向けのジョブを含んだパッケージを upstart
+を用いていないシステムにインストールしても構わないため、メンテナスクリプトでは共通の
+<code>update-rc.d</code> と <code>invoke-rc.d</code>
+インターフェースを用いてランレベルの設定や、サービスの開始と停止を行わなければいけません。
+このようなメンテナスクリプトでは、upstart の <code>start</code>、
+<code>restart</code>、<code>reload</code>、<code>stop</code>
+の各インターフェースを直接呼び出してはいけません。
+代わりに、<code>invoke-rc.d</code> の実装で upstart
+が実行されているかどうかを検出し、upstart のジョブと同じ名前の init
+スクリプトが存在する場合には、init スクリプトではなく upstart
+ジョブを用いて要求された動作を行わなければいけません。
+</p>
+
+<p>
+SysV init スクリプト向けの依存関係ベースのブートマネージャ (例えば
+<code>startpar</code>) は、相当する upstart
+ジョブが存在する場合には、何もしない init スクリプトでの不要な fork
+を避けるために、与えられた init スクリプトの実行を全く行わなくとも構いません。
+この場合には、ブートマネージャは、いつ依存関係が満たされたかを確認するために、対象となる
+upstart ジョブが実行中か停止中かの判定を行うことができるよう、upstart
+と統合すべきです。
+</p>
+
+<hr>
+
+<p>
[ <a href="ch-sharedlibs.html">previous</a> ]
[ <a href="index.html#contents">Contents</a> ]
[ <a href="ch-scope.html">1</a> ]
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-relationships.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-relationships.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-relationships.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -52,7 +52,7 @@
内に記述するパッケージ名は、代替パッケージ名の一覧でもかまいません。
代替パッケージ名は、 垂直バーシンボル <samp>|</samp> (パイプシンボル)
で区切って書きます。
-この場合、任意の代替パッケージの一つがインストールされていれば、この部分の依存関係は満たされているものと判断されます。
+この場合、代替パッケージの任意の一つにより、この部分の依存関係を満たすことができます。
</p>
<p>
@@ -70,11 +70,11 @@
<samp>>></samp>
で、順に「より小さい」「以下」「等しい」「以上」「より大きい」
を意味しています。既に廃止になった記号の書式 <samp><</samp> と
-<samp>></samp> はそれぞれ「以下」「以上」
-という意味であって、「より小さい」または「より大きい」
-という意味ではありません。新しいパッケージでは、 <samp><</samp> と
-<samp>></samp> は使うべきではありません (<code>dpkg</code>
-はまだこの書式をサポートしてはいます)。
+<samp>></samp> はそれぞれ「より小さい」または「より大きい」
+の意味ではなく、「以下」「以上」という意味として使われ混乱のもととなっていたため、
+新しいパッケージでは、 <samp><</samp> と <samp>></samp>
+は使ってはいけません (<code>dpkg</code>
+はまだこの書式を警告付きでサポートしてはいます)。
</p>
<p>
@@ -139,7 +139,8 @@
</p>
<p>
-バイナリの依存関係を示すフィールドについては、アーキテクチャによる制限書式はソースパッケージコントロールファイル
+バイナリの依存関係を示すフィールドと <samp>Built-Using</samp>
+フィールドについては、アーキテクチャによる制限書式はソースパッケージコントロールファイル
<code>debian/control</code> でのみサポートされます。
対応したバイナリパッケージコントロールファイルが作成される際、依存関係は省かれるか、そのバイナリパッケージのアーキテクチャに基づいてアーキテクチャ制限部を削除した形で収録されます。
つまり、アーキテクチャ制限は、アーキテクチャ非依存のパッケージ
@@ -297,10 +298,10 @@
<samp>postinst configure</samp>
の場合は、依存されたパッケージはまず展開され、設定されます
(巡回依存関係に両方のパッケージが含まれる場合、事は期待通りには進みません。
-数節前の説明を参照ください)。<code>prerm</code> と、これいがいの
+数節前の説明を参照ください)。 <code>prerm</code> と、これ以外の
<code>postinst</code>
操作時には、依存パッケージは通常少なくとも展開されていますが、その依存関係にあるパッケージの以前のアップグレードが失敗していた場合、
-"Half-Installed" 状態でとどまっている可能性があります。
+設定途中状態 (Half-Installed) でとどまっている可能性があります。
</p>
<p>
@@ -364,11 +365,11 @@
しようとする際、先行依存関係は依存されたパッケージがきちんと設定されている場合、そして先行依存されているパッケージ
(群)
が、過去のある時点できちんと設定され、以後削除も部分的削除もされていない場合には、
-そのパッケージが現時点で展開中や "Half-Configured" 状態で
+そのパッケージが現時点で展開状態 (Unpacked) や設定途中状態 (Half-Configured) で
<em>あっても</em> 満たされます。
-この場合は、以前に設定されていたパッケージのバージョンと、現在展開のみされた、または
-"Half-Configured"
-状態のバージョンとの両方が、<samp>Pre-Depends</samp>
+この場合は、以前に設定されていたパッケージのバージョンと、現在展開状態
+(Unpacked) または設定途中状態 (Half-Configured)
+のバージョンとの両方が、<samp>Pre-Depends</samp>
フィールドのバージョン部分を満たしている必要があります。
</p>
@@ -427,7 +428,7 @@
<p>
パッケージは、設定ファイルがインストールされているだけの状態で、壊されるとは見なされません。
-少なくとも "Half-Installed" 以上の状態である必要があります。
+少なくとも設定途中状態 (Half-Installed) 以上の状態である必要があります。
</p>
<p>
@@ -473,8 +474,8 @@
フィールドを使って宣言している場合、 <code>dpkg</code>
は、そのシステム上でそれら二つのパッケージを同時に展開することを拒否します。
これは、<samp>Breaks</samp> より強い制約です。 <samp>Breaks</samp>
-では、<samp>Breaks</samp>
-を指定したパッケージの展開後には「壊された」パッケージの再設定は妨げられますが、両方のパッケージを展開することは可能なためです。
+では、<samp>Breaks</samp> を指定したパッケージが展開状態 (Unpacked)
+の際に「壊された」パッケージの再設定は妨げられますが、両方のパッケージを展開することは可能なためです。
</p>
<p>
@@ -494,8 +495,8 @@
<p>
あるパッケージが、単に設定ファイルのみがまだインストールされている場合に競合関係をひきおこすことはありません。
-競合関係にあるためには最低でも "Half-Installed"
-の状態でなければいけません。
+競合関係にあるためには最低でも設定途中状態 (Half-Installed)
+でなければいけません。
</p>
<p>
@@ -717,9 +718,9 @@
このようにして、パッケージが完全に置きかえられてしまったときは、
<code>dpkg</code> はそのパッケージが持っているファイルが無く、
『消えてしまった』と考えます。この場合、「必要とされていない」
-(削除の選択がされた) および「インストールされていない」
-とのマークを古いパッケージに付けます。 そのパッケージの <samp>conffile</samp>
-関係の詳細は無視されます。
+(削除の選択がされた) および「インストールされていない状態
+(Not-Installed)」とのマークを古いパッケージに付けます。 そのパッケージの
+<samp>conffile</samp> 関係の詳細は無視されます。
これは、新しいパッケージによって引き継がれているだろうからです。
最終的な大掃除が必要であれば、そのパッケージの <code>postrm</code>
スクリプトを必要に応じて実行することになるでしょう。 <a
@@ -823,7 +824,42 @@
<hr>
+<h2 id="s-built-using">7.8 バイナリをビルドする際の追加ソースパッケージ - <samp>Built-Using</samp></h3>
+
<p>
+一部のバイナリパッケージは、依存関係を持たない他のパッケージの一部をビルド時に統合しています。
+例として、静的ライブラリのリンクや、他のパッケージのソースコードのビルド時の統合などがあります。
+この場合、これらの他のパッケージのソースパッケージが完全なソースの必要な一部ということになります
+(バイナリパッケージはそれなしでは再作成できません)。
+</p>
+
+<p>
+<samp>Built-Using</samp>
+フィールドには、そのようなバイナリパッケージがビルド時に統合する関連ソースパッケージ名を、バイナリパッケージのビルド時に使ったものに正確に一致する
+("=") バージョン関連性を指定して列挙しなければいけません [<a
+href="footnotes.html#f57" name="fr57">57</a>] [<a href="footnotes.html#f58"
+name="fr58">58</a>]。
+</p>
+
+<p>
+gcc-4.6 ソースパッケージからビルドされる gcc-4.6-source
+バイナリパッケージのソースコードを利用するパッケージは、コントロールファイル中のこのフィールドに以下のように記載します。
+</p>
+<pre>
+ Built-Using: gcc-4.6 (= 4.6.0-11)
+</pre>
+
+<p>
+grub2 と loadlin
+からのバイナリを含むパッケージは、コントロールファイル中のこのフィールドに以下のように記載します。
+</p>
+<pre>
+ Built-Using: grub2 (= 1.99-9), loadlin (= 1.6e-1)
+</pre>
+
+<hr>
+
+<p>
[ <a href="ch-maintainerscripts.html">previous</a> ]
[ <a href="index.html#contents">Contents</a> ]
[ <a href="ch-scope.html">1</a> ]
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-scope.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-scope.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-scope.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -95,6 +95,13 @@
あるいはお手元で使うだけで配布はしないといったパッケージを作成する際にも役に立つでしょう。
</p>
+<p>
+udebs (Debian インストーラで用いる機能限定版のバイナリパッケージ)
+は、以下で説明されている要求事項に必ずしも従っていません。詳細は <code><a
+href="http://d-i.alioth.debian.org/doc/internals/ch03.html">Debian Installer
+internals manual</a></code> を参照してください。
+</p>
+
<hr>
<h2 id="s1.2">1.2 この文書の新しい版</h3>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-sharedlibs.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-sharedlibs.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-sharedlibs.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -64,7 +64,7 @@
シンボリックリンクはパッケージ側で提供しなければいけません。
これを行う方法については、<a
href="#s-sharedlibs-runtime">ランタイム共有ライブラリ, Section 8.1</a>
-を参照ください [<a href="footnotes.html#f57" name="fr57">57</a>]。
+を参照ください [<a href="footnotes.html#f59" name="fr59">59</a>]。
</p>
<p>
@@ -105,8 +105,6 @@
シンボリックリンクは、 <code><var>libraryname</var><var>soversion</var></code>
という名称のパッケージに収録すべきです。ここで、<var>soversion</var>
は、共有ライブラリの <samp>SONAME</samp> 中のバージョン番号です。
-バージョンの判定方法の詳細は、<a href="#s-shlibs"><code>shlibs</code>
-ファイルフォーマット, Section 8.6.3</a> を参照ください。
または、<var>libraryname</var> に <var>soversion</var>
を直接付加すると混乱する場合 (例えば、 <var>libraryname</var>
自体が数字で終わっている場合など) には、
@@ -115,6 +113,18 @@
</p>
<p>
+<var>soversion</var> を調べるには、ELF <samp>SONAME</samp>
+アトリビュートに格納されているライブラリの <samp>SONAME</samp>
+を見て下さい。これは通常
+<samp><var>name</var>.so.<var>major-version</var></samp> のような形式 (例えば
+<samp>libz.so.1</samp>) です。バージョン部は、<samp>.so.</samp>
+に続く部分で、上記の例では <samp>1</samp> です。soname は
+<samp><var>name</var>-<var>major-version</var>.so</samp> の形式の場合もあり
+(例えば <samp>libdb-5.1.so</samp>)、この場合のライブラリ名は <samp>libdb</samp>
+で、バージョンは <samp>5.1</samp> です。
+</p>
+
+<p>
一つのソースツリーから複数の共有ライブラリをビルドする場合には、すべての
<samp>SONAME</samp>
名を常に一括して変えるようにすることで、複数の共有ライブラリを一つのパッケージにまとめられます。
@@ -140,9 +150,8 @@
名とバイナリパッケージ名は変更する必要はありませんし、変更すべきでもありません。
これは、このような変更は旧共有ライブラリにリンクしていたバイナリを壊すことがないためです。
新しいインターフェースを用いるバイナリでの、新しい共有ライブラリとの正しい依存関係に対するバージョン付けは、
-<a href="#s-sharedlibs-shlibdeps"><samp>shlibs</samp> system</a>
-またはシンボルファイルを使って (<code>deb-symbols(5)</code> 参照)
-管理されます。
+<a href="#s-sharedlibs-depends"><samp>シンボル</samp> または
+<samp>shlibs</samp> system</a> を使って管理されます。
</p>
<p>
@@ -172,7 +181,7 @@
<code>ldconfig</code> が実行されるまでの間にダイナミックリンカ
(例えば、<code>ld.so</code> や <code>ld-linux.so.*</code>)
がそのライブラリを見つけることができるようにするため [<a
-href="footnotes.html#f58" name="fr58">58</a>] です。
+href="footnotes.html#f60" name="fr60">60</a>] です。
</p>
<hr>
@@ -182,7 +191,7 @@
<p>
ダイナミックリンカの標準のディレクトリ (現在は <code>/usr/lib</code> と
<code>/lib</code> です)、または <code>/etc/ld.so.conf</code>
-に列挙されたディレクトリ [<a href="footnotes.html#f59" name="fr59">59</a>]
+に列挙されたディレクトリ [<a href="footnotes.html#f61" name="fr61">61</a>]
にライブラリをインストールするパッケージは、
共有ライブラリシステムをアップデートするために <code>ldconfig</code>
を使わなければいけません。
@@ -211,7 +220,7 @@
</ul>
<p>
-[<a href="footnotes.html#f60" name="fr60">60</a>]
+[<a href="footnotes.html#f62" name="fr62">62</a>]
</p>
<hr>
@@ -245,7 +254,7 @@
<p>
ファイルとサポートプログラムで、ライブラリを使うプログラムのコンパイル時にのみ有用なものは、ライブラリの開発用パッケージに含めてください
-[<a href="footnotes.html#f61" name="fr61">61</a>]。
+[<a href="footnotes.html#f63" name="fr63">63</a>]。
</p>
<hr>
@@ -298,7 +307,7 @@
<code><var>libraryname</var>-dev</code>
という名前のパッケージを作成して収録する必要があります。
この開発用のパッケージをインストールすることにより、対象共有ライブラリを使ってプログラムをコンパイルするのに必要な全ての開発用ファイルがインストールされなければいけません[<a
-href="footnotes.html#f62" name="fr62">62</a>]。
+href="footnotes.html#f64" name="fr64">64</a>]。
</p>
<p>
@@ -333,45 +342,528 @@
<p>
通常、開発用バージョンは、コンパイルとリンクを正しく行うため、ランタイムライブラリに対して正確な依存関係を持たせるべきです。
<samp>${binary:Version}</samp> による変数置換がこの目的には便利です [<a
-href="footnotes.html#f63" name="fr63">63</a>]。
+href="footnotes.html#f65" name="fr65">65</a>]。
</p>
<hr>
-<h2 id="s-sharedlibs-shlibdeps">8.6 ライブラリと他のパッケージとの依存関係の扱い - <samp>shlibs</samp> システム</h3>
+<h2 id="s-sharedlibs-depends">8.6 ライブラリと他のパッケージとの依存関係の扱い</h3>
<p>
-パッケージが共有ライブラリとリンクしたバイナリやライブラリを含む場合、
-パッケージをシステムにインストールする際に、必要なすべてのライブラリも共にインストールされるようにする必要があります。
-この要求から、<samp>shlibs</samp> システムが作られました。
-これは設計上は非常に簡単なものです。共有ライブラリを <em>提供する</em>
-パッケージはすべて、
-そのライブラリの動作を保証するために必要なパッケージ依存関係の情報を提供しなければならず、
-また共有ライブラリを <em>使用する</em> パッケージは、
-その共有ライブラリが必要とする依存関係を判断するためにこの情報を使います。
-共有ライブラリから必要な依存関係の情報への対応を保持するファイルは
-<code>shlibs</code> ファイルと呼ばれます。
+パッケージが共有ライブラリとリンクしたバイナリやライブラリを含む場合には、
+パッケージをシステムにインストールする際に、必要なすべてのライブラリも共にインストールされていることを保証する必要があります。
+この依存関係は、バイナリのソースコードに何の変更がなくともバイナリまたはライブラリのリンクの際に元にした共有ライブラリのバージョンによって変化するため
+(例えばシンボルのバージョン変更、マクロが関数に変更された、またはその逆、
+さらにバイナリパッケージがコンパイル時に新しいライブラリインターフェースが提供されており、利用できると判断したなど)
+バイナリパッケージのビルド時に追加される必要があります。
+この依存関係を構築するために、共有ライブラリは <code>symbols</code>
+ファイルか、<code>shlibs</code> ファイルのいずれかを提供しなければなりません。
+これらのパッケージの依存関係として提供される情報は、ライブラリの提供するインターフェースが存在することを保証するために必要です。
+共有ライブラリにリンクを行うバイナリまたはライブラリを収録するパッケージは、これらのファイルを用いてビルド時に必要な依存関係を判断しなければいけません。
+共有ライブラリを用いるその他のパッケージ (例えば <samp>dlopen()</samp>
+を使うもの)
+も、ビルド時にこれらのファイルを使って適切な依存関係を同様に計算すべきです。
</p>
<p>
-共有ライブラリを含むパッケージをビルドする際には、他のパッケージが使えるよう
-<code>shlibs</code> を提供しなければいけません。
-また、共有ライブラリやコンパイルされたバイナリを含むパッケージでは、
-それらに対して <a
+この2つのメカニズムは、提供機能の詳細レベルでは異なります。<code>symbols</code>
+ファイルは、ライブラリからエクスポートされる各シンボルと、そのシンボルを用いるバイナリが最低限必要とする当該パッケージのバージョンを記述します。
+このバージョンとは、普通はそのシンボルが導入されたパッケージのバージョンを指します。
+この情報は、特定のパッケージで用いるシンボルの詳細な分析と正確な依存関係の構築を可能としますが、その一方パッケージメンテナは共有ライブラリについてのより多くの情報を把握して置かなければいけません。
+</p>
+
+<p>
+それに対して <code>shlibs</code> ファイルには、ライブラリ ABI
+に何らかの変更が最後にあった時点のみが記述されています。
+このファイルには、各々のシンボルではなく、ライブラリ丸ごとでの情報のみが提供されているのです。
+パッケージが共有ライブラリを用いてビルドされる場合には <code>shlibs</code>
+ファイルのみが用いられ、生成された依存関係は ABI
+変更が行われた最後の時点でのバージョンか、それより新しいものを要求するものとなります。
+このことにより、もしパッケージの用いているシンボルに変更がない場合には、<code>symbols</code>
+ファイルによる方法に比べ、不必要に制限の強い依存関係が生成されることになります。
+また一方、古い版の共有ライブラリを持つシステムでのパッケージの利用が不必要に制限され、アップグレードの際に不必要に複雑な処理を強いられるでしょう。
+</p>
+
+<p>
+また、<code>shlibs</code> ファイルはライブラリの SONAME
+の限られた範囲のみをサポートしているため、一般的ではない用途の一部では
+<code>shlibs</code> ファイルを用いるのは困難です[<a href="footnotes.html#f66"
+name="fr66">66</a>]。
+</p>
+
+<p>
+このため、ほとんどの共有ライブラリパッケージでは、より正確な依存関係を提供する
+<code>symbols</code> の方を薦めます。 ほとんどの C
+ライブラリでは、<code>symbols</code>
+ファイルで必要となる追加情報を維持するのはそれほど難しくはありません。
+ただし、C++ ライブラリで網羅的なシンボル情報を維持するのは大変な作業なので、
+C++ ライブラリの場合はほとんどの場合には <code>shlibs</code>
+のほうがより適切です。udeb と関連付けられたライブラリでは、<code>shlibs</code>
+を提供しなければいけません。これは udeb インフラストラクチャでは
+<code>symbols</code> ファイルを用いていないためです。
+</p>
+
+<hr>
+
+<h3 id="s-dpkg-shlibdeps">8.6.1 共有ライブラリでの依存関係の作成</h4>
+
+<p>
+共有ライブラリやコンパイル済みのバイナリを含むパッケージをビルドする際には、
+各共有ライブラリとコンパイルされるバイナリに対して <a
href="ap-pkg-sourcepkg.html#s-pkg-dpkg-shlibdeps"><code>dpkg-shlibdeps</code></a>
-を実行して、それらが使っているライブラリと、その使用に伴ってそのパッケージで必要になる依存関係を判断できるようにしなければいけません
-[<a href="footnotes.html#f64" name="fr64">64</a>]。
+を実行して、使っているライブラリと、その使用に伴ってそのパッケージで必要になる依存関係を判断できるようにしなければいけません
+[<a href="footnotes.html#f67" name="fr67">67</a>]。
+これをおこなうため、ソースパッケージの <code>debian/rules</code> に
+<code>dpkg-shlibdeps</code> への呼び出しを置いてください。
+また、パッケージ内のコンパイル済みのバイナリ、ライブラリ、ローダブルモジュールを全て列挙してください[<a
+href="footnotes.html#f68" name="fr68">68</a>]。 <code>dpkg-shlibdeps</code>
+は、共有ライブラリがインストールした <code>symbols</code> や
+<code>shlibs</code> ファイルを用いて依存関係情報を構築します。
+そして、パッケージは作成された依存関係情報を置くための代替変数を下記のように提供しなければいけません。
</p>
<p>
+もし、Debian インストーラで用いる udeb を作成しているならば、
+<code>dpkg-shlibdeps</code> に <samp>-tudeb</samp> オプションを加えて
+<samp>udeb</samp>
+タイプの依存関係記述行をもちいるべきであることを指定する必要があるでしょう [<a
+href="footnotes.html#f69" name="fr69">69</a>]。 <code>shlibs</code>
+ファイル内に <samp>udeb</samp> タイプの依存関係指定行がない場合、
+<code>dpkg-shlibdeps</code> は通常の依存関係が指定されたものとして処理します。
+</p>
+
+<p>
+<code>dpkg-shlibdeps</code> は依存関係情報を、既定では
+<code>debian/substvars</code> ファイルに格納し、その情報は
+<code>dpkg-gencontrol</code> で用いられます。
+このため、作業しているソースパッケージからビルドされる、コンパイル済みバイナリ、ライブラリ、ローダブルモジュールを含む全てのパッケージのコントロールファイル中の
+<samp>Depends</samp> フィールドに、<samp>${shlibs:Depends}</samp>
+変数を置く必要があるでしょう。また、生成されるバイナリパッケージが複数ある場合、
+コンパイル済みライブラリまたはバイナリの各々に対して
+<code>dpkg-shlibdeps</code> を呼びださなければいけません。
+例えば、<samp>dpkg</samp> ユーティリティに対して <samp>-T</samp>
+を用い、各バイナリパッケージに対して異なった <code>substvars</code>
+ファイルを指定することもできます [<a href="footnotes.html#f70"
+name="fr70">70</a>]
+</p>
+
+<p>
+<code>dpkg-shlibdeps</code> の詳しい説明は、 <code>dpkg-shlibdeps(1)</code>
+を参照ください。
+</p>
+
+<p>
+ここで、バイナリはこのライブラリを <em>直接的に</em> 使っているとは、バイナリ
+<samp>foo</samp> がライブラリ <samp>libbar</samp>
+に明示的にリンクされている場合 (すなわち、リンクの段階で <samp>-lbar</samp>
+フラグを使って、ライブラリが ELF <samp>NEEDED</samp>
+アトリビュート付きでリストされている場合) のことです。 <samp>libbar</samp>
+が必要とするその他のライブラリは <samp>foo</samp> に <em>間接的に</em>
+リンクされており、ダイナミックリンカは <samp>libbar</samp>
+をロードする際に自動的にそれらのライブラリをロードします。
+間接的に使われているライブラリへの依存関係は自動的にダイナミックリンカによりロードされるため、
+パッケージが依存関係を指定すべきなのは直接リンクしているライブラリだけです。
+<code>dpkg-shlibdeps</code>
+がこの論理を自動的に処理しますが、自動処理結果を何らかの理由で上書きしたい場合にはパッケージメンテナがこの直接・間接の区別を意識する必要があります
+[<a href="footnotes.html#f71" name="fr71">71</a>]。
+</p>
+
+<hr>
+
+<h3 id="s-sharedlibs-updates">8.6.2 共有ライブラリの ABI の変更</h4>
+
+<p>
+共有ライブラリを <code>symbols</code> または <code>shlibs</code>
+ファイルを使って維持管理するためには、共有ライブラリの外部に提供する ABI
+とその何らかの変更の有無を意識する必要があります。<code>symbols</code>
+ファイルと <code>shlibs</code> ファイルのいずれもが共有ライブラリの ABI
+の全ての変更を記録しますが、<code>symbols</code>
+は公開されたシンボルに対してのみ記録するのに対し、<code>shlibs</code>
+ファイルはライブラリ全体での最後の変更についてのみ記録するという違いがあります。
+</p>
+
+<p>
+ABI の変更は、後方互換性を維持したものとそうでないものの二種類に分けられます。
+ABI
+の変更が後方互換性を維持しているとは、以前のバージョンの共有ライブラリにリンクしている通常のプログラムが、新しいバージョンの共有ライブラリで引き続き動作できることを意味します[<a
+href="footnotes.html#f72" name="fr72">72</a>]。
+共有ライブラリに新しいシンボルを加えることは後方互換性を持った変更です。
+共有ライブラリからシンボルを削除することは後方互換性を持ちません。
+シンボルの挙動を変更することによる後方互換性の有無は、変更の内容によります。
+例えば、関数で以前に使っていなかった新しい enum
+定数を受け付けるような変更は通常は後方互換性を持ちますが、
+ライブラリ関数に渡す構造体のメンバを変更する場合は、旧バージョンのデータ構造を受け付けるような特別の対処が行われていない限り、一般的には非互換です。
+</p>
+
+<p>
+後方互換性を持たない ABI 変更では、通常ライブラリの <samp>SONAME</samp>
+の変更、すなわち共有ライブラリパッケージ名の変更が必要になり、
+それにともなって新しいバージョンの共有ライブラリを用いることができるようにするため、共有ライブラリを利用しているすべてのパッケージの再ビルドが強制されます。
+この処理の詳細については <a
+href="#s-sharedlibs-runtime">ランタイム共有ライブラリ, Section 8.1</a>
+を参照ください。
+この節での以降の部分では後方互換性を持つ変更について説明します。
+</p>
+
+<p>
+後方互換性を持つ変更では、<code>symbols</code> ファイル中にシンボルファイルの
+<var>minimal-version (最小バージョン)</var>
+の更新または記録を行うか、<code>shlibs</code> ファイル中の
+<var>dependencies</var> フィールドの更新が必要になります。
+この2つのフォーマットでこの処理をどのように行うかの詳細は、各々 <a
+href="#s-symbols"><code>symbols</code> ファイルフォーマット, Section
+8.6.3.2</a> と <a href="#s-shlibs"><code>shlibs</code> ファイルフォーマット,
+Section 8.6.4.2</a> を参照ください。
+以下は両方のファイルで適用される一般的な規則です。
+</p>
+
+<p>
+簡単な場合は、公開シンボルの追加です。
+該当のシンボルの追加されたバージョン番号を <code>symbols</code>
+ファイルに追加するか、<code>shlibs</code>
+ファイルでの依存するバージョンを更新してください。
+一方公開シンボルの挙動が変化した場合の、依存するバージョンの更新については特段の配慮を行うべきです。
+このような変更の有無を自動的に判定する手段が無いため、このような処理は抜けやすいものですが、
+この場合にバージョンの更新が行われないことによってバイナリパッケージに弱すぎる依存関係が提供され、実行時にセキュリティ上の脆弱性となる方法でプログラムが落ちる結果となる場合があります。
+パッケージメンテナが、シンボルの挙動の変更があるかもしれないが確かではないと考える場合は、
+変更しないよりバージョンを更新するほうが安全です。
+これにより不必要に厳しい依存関係となる可能性はありますが、パッケージの依存関係を満たすパッケージが正しく動作することは保証できます。
+</p>
+
+<p>
+依存するバージョンの変更が必要となる典型的例は、関数がどのような処理を行うかを指示する引数として
+enum 値または構造体を取る場合です。例えば
+</p>
+
+<pre>
+ enum library_op { OP_FOO, OP_BAR };
+ int library_do_operation(enum library_op);
+</pre>
+
+<p>
+もし新しい処理 <samp>OP_BAZ</samp> が追加された場合、 (<code>symbols</code>
+ファイルの) <samp>library_do_operation</samp> の
+<var>minimal-version</var>、または (<code>shlibs</code> ファイルの)
+共有ライブラリの「依存するバージョン」の指定は、<samp>OP_BAZ</samp>
+が導入されたバージョンに増加させなければいけません。
+さもなければ、ライブラリの新バージョンを用いてビルドされた
+(コンパイル時にライブラリが <samp>OP_BAZ</samp>
+がサポートされていることを検出した) バイナリが <samp>OP_BAZ</samp>
+をサポートしていないライブラリ環境でインストールされ、この関数に
+<samp>OP_BAZ</samp> を渡そうとして実行時に落ちることになるでしょう。
+</p>
+
+<p>
+<code>symbols</code> または <code>shlibs</code>
+ファイルで指定された依存するバージョンは、通常はパッケージの Debian
+レビジョンを含むべきではありません。
+これは、ライブラリの挙動は上流の特定のバージョンで通常修正され、Debian
+パッケージはそれと同じ挙動となるからです。まれには特定の Debian
+レビジョンでライブラリの挙動が変更されることがあり、その場合にはバージョン末尾に
+<samp>~</samp> を追加して Debian レビジョンを含めることを推奨します。
+これにより共有ライブラリのバックポート時に、依存関係を満足させるようにするための通常のバックポートバージョン付けのやり方が使えるためです。
+</p>
+
+<hr>
+
+<h3 id="s-sharedlibs-symbols">8.6.3 <samp>symbols</samp> システム</h4>
+
+<p>
+以下の節では、まず様々な <code>symbols</code> ファイルを置く場所を説明し、次に
+<code>symbols</code>
+ファイルフォーマットの説明、最後に共有ライブラリを持つパッケージでどのようにして
+<code>symbols</code> を作成するかを説明します。
+</p>
+
+<hr>
+
+<h4 id="s-symbols-paths">8.6.3.1 現在のシステムに存在する <code>symbols</code> ファイル</h5>
+
+<p>
+共有ライブラリの <code>symbols</code>
+ファイルは、通常は共有ライブラリパッケージの制御ファイルとして提供されます。
+ただし、情報が正しくなかったり欠けていた場合に上書きする手段がいくつか有り、まずそちらをチェックします。
+以下のリストは、<code>dpkg-shlibdeps</code>
+が読み取る順を示したものであり、最初に見つかった必要な情報を提供するものが使われます。
+</p>
+<ul>
+<li>
+<p>
+<code>debian/*/DEBIAN/symbols</code>
+</p>
+
+<p>
+パッケージビルドの際に、パッケージに <code>symbols</code>
+ファイルを持つ共有ライブラリが含まれている場合、そのライブラリは
+<code>dpkg-gensymbols</code> によって上記の作業用ディレクトリ内に作成されます
+(<a href="#s-providing-symbols"><code>symbols</code> ファイルを用意する,
+Section 8.6.3.3</a> 参照)。ビルドツリー内で見つかった <code>symbols</code>
+は、他のバイナリパッケージ由来の <code>symbols</code> ファイルに優先されます。
+</p>
+
+<p>
+これらのファイルは、<code>dpkg-shlibdeps</code> が走る前になければいけません。
+さもなければ、あるソースパッケージから生成されるバイナリ及びライブラリからの、同じソースパッケージから生成される
+(共有) ライブラリに対する依存関係が正しく作成されません。
+実務上は、この条件はバッケージビルド中に <code>dpkg-gensymbols</code> を
+<code>dpkg-shlibdeps</code> より前に走らせなければならないことを意味します [<a
+href="footnotes.html#f73" name="fr73">73</a>]。
+</p>
+</li>
+</ul>
+<ul>
+<li>
+<p>
+<code>/etc/dpkg/symbols/<var>package</var>.symbols.<var>arch</var></code> と
+<code>/etc/dpkg/symbols/<var>package</var>.symbols</code>
+</p>
+
+<p>
+システム毎での共有ライブラリ依存関係を上書きします。
+これらのファイルは通常存在しません。
+これらのファイルはローカルのシステム管理者が管理し、Debian
+パッケージから作成することは許されません。
+</p>
+</li>
+</ul>
+<ul>
+<li>
+<p>
+システムにインストール済みのパッケージの <code>symbols</code>
+コントロールファイル
+</p>
+
+<p>
+現在対象システムにインストールされているパッケージ全ての <code>symbols</code>
+コントロールファイルが最後に検索されます。
+ここが、共有ライブラリの依存関係情報の最も普通の置き場所です。
+このファイル群は通常 <code>/var/lib/dpkg/info/*.symbols</code>
+にありますが、パッケージはこのパス指定に依存すべきではなく、
+何らかの理由でこれらファイルを検索する必要が出た場合には、代わりに
+<samp>dpkg-query --control-path <var>package</var> symbols</samp>
+を使ってください。
+</p>
+</li>
+</ul>
+
+<p>
+ソースパッケージに <code>debian/shlibs.local</code>
+が含まれている場合は注意してください。このファイルは <code>symbols</code>
+を上書きします。このような上書きが <code>symbols</code>
+ファイルが存在する場合にも <code>shlibs</code> が使われる唯一の場合です。
+詳しくは <a href="#s-shlibs-paths">システムに存在する <code>shlibs</code>
+ファイル, Section 8.6.4.1</a> と <a
+href="#s-sharedlibs-shlibdeps"><samp>shlibs</samp> システム, Section 8.6.4</a>
+を参照ください。
+</p>
+
+<hr>
+
+<h4 id="s-symbols">8.6.3.2 <code>symbols</code> ファイルフォーマット</h5>
+
+<p>
+以下の文書は、バイナリパッケージに収録される <code>symbols</code>
+コントロールファイルの書式を記載したものです。
+これらのファイルは、ソースパッケージ中のテンプレートとなる <code>symbols</code>
+から <code>dpkg-gensymbols</code>
+によってビルドされます。テンプレートファイルは更に詳細指定可能な書式を持っており、管理する
+<code>dpkg-gensymbols</code> が <code>symbols</code>
+ファイル管理に伴う面倒な作業の一部 (C++
+のシンボルの管理や、特定アーキテクチャで存在しないようなオプションのシンボルの管理など)
+を行えるようになっています。 共有ライブラリパッケージの <code>symbols</code>
+ファイルを書く場合は、ここで述べた詳細指定可能な書式の内容について
+<code>dpkg-gensymbols(1)</code> を参照ください。
+</p>
+
+<p>
+<code>symbols</code> は一つないし複数のエントリで、各エントリはその
+<code>symbols</code>
+に対応するパッケージに収録された共有ライブラリの各々に対応します。
+各エントリのフォーマットは以下の通りです。
+</p>
+
+<pre>
+ <var>library-soname</var> <var>main-dependency-template</var>
+ [| <var>alternative-dependency-template</var>]
+ [...]
+ [* <var>field-name</var>: <var>field-value</var>]
+ [...]
+ <var>symbol</var> <var>minimal-version</var>[ <var>id-of-dependency-template</var> ]
+</pre>
+
+<p>
+このフォーマットの説明では、例として <samp>zlib1g</samp>
+パッケージを用いましょう。 この文書記載時点では、このパッケージは共有ライブラリ
+<code>/usr/lib/libz.so.1.2.3.4</code> をインストールします。
+まず記載必須の行について説明し、そのあとでオプションの行を説明します。
+</p>
+
+<p>
+<var>library-soname</var> には共有ライブラリの ELF <samp>SONAME</samp>
+アトリビュートの正確な値が記載されていなければいけません。ここでの例では、これは
+<samp>libz.so.1</samp>[<a href="footnotes.html#f74" name="fr74">74</a>] です。
+</p>
+
+<p>
+<var>main-dependency-template</var> は、
+バイナリパッケージコントロールファイルの依存関係フィールドと同様の書式ですが、文字列
+<samp>#MINVER#</samp> は <samp>(>= <var>バージョン</var>)</samp>
+のようなバージョンの制限条件で置き換えるか、特にバージョン無指定で十分と考えられる場合は何も指定しません。
+ここでのバージョンの制限条件は、共有ライブラリから参照されるシンボルと、そのシンボルが導入されたバージョンに基づいて決められます
+(以下参照)。 ほとんどすべての場合、<var>main-dependency-template</var> は
+<samp><var>package</var> #MINVER#</samp> という記述となります。ここで
+<var>package</var> は該当共有ライブラリを含むバイナリパッケージの名前です。
+これにより、共有ライブラリパッケージに対する単純で、恐らく妥当なバージョン依存関係を指定できます。
+特別の場合、例えば複数のパッケージが同じ共有ライブラリ ABI
+を提供しているような場合には、
+依存関係のテンプレートはもっと複雑なものになります。
+</p>
+
+<p>
+ここでの例では、<samp>zlib1g</samp> の <code>symbols</code> の最初の行は
+</p>
+<pre>
+ libz.so.1 zlib1g #MINVER#
+</pre>
+
+<p>
+となるでしょう。
+</p>
+
+<p>
+共有ライブラリからエクスポートされる公開シンボルの各々に対して、対応する symbol
+行の指定が必要です。これは、空白一文字でインデントされます。 <var>symbol</var>
+行はエクスポートされたシンボル (C++ では、マングルされたシンボルです) に続いて
+<samp>@</samp>
+とシンボルのバージョン、またはシンボルバージョンがない場合は文字列
+<samp>Base</samp> が置かれます。<var>minimal-version</var>
+は、そのシンボルの挙動が最後に変更された (追加または関数の仕様の変更、例えば
+引数の追加削除や型の変更、戻り型の変更など)、
+または呼び出し元に見える形で動作が最後に変更された、共有ライブラリのバージョンです。
+<var>id-of-dependency-template</var> はオプションのフィールドで、
+<var>alternative-dependency-template</var> を参照します。
+詳しい説明は以下を参照ください。
+</p>
+
+<p>
+例えば、<samp>libz.so.1</samp> には <samp>compress</samp> と
+<samp>compressBound</samp> シンボルが含まれています。<samp>compress</samp>
+にはシンボルバージョンの指定がなく、上流で最後に挙動が変更されたのはバージョン
+<samp>1:1.1.4</samp> の際です。<samp>compressBound</samp>
+にはシンボルバージョン <samp>ZLIB_1.2.0</samp>
+が指定されており、それ以降の挙動の変更はありません。 したがって、ここでの
+<code>symbols</code> には以下の行が含まれます。
+</p>
+<pre>
+ compress@Base 1:1.1.4
+ compressBound@ZLIB_1.2.0 1:1.2.0
+</pre>
+
+<p>
+<samp>compress</samp> だけを用いるパッケージは、ここから <samp>zlib1g (>=
+1:1.1.4)</samp> という依存関係を得ますが、 <samp>compressBound</samp>
+を用いるパッケージの依存関係は <samp>zlib1g (>= 1:1.2.0)</samp> になります。
+</p>
+
+<p>
+一つないしは複数の <var>alternative-dependency-template</var>
+行を指定可能です。
+この行は共有ライブラリの一部のシンボルが他のシンボルと異なったテンプレートを使うべきであるばあいに指定されます。
+代替依存関係テンプレートは、シンボル行に <var>id-of-dependency-template</var>
+行が含まれる場合にのみ使われます。最初の代替依存関係テンプレートには番号 1
+が、以下順に番号 2、3 と続きます [<a href="footnotes.html#f75"
+name="fr75">75</a>]。
+</p>
+
+<p>
+最後に、ライブラリに対応するエントリには、一つないし複数のメタデータフィールドを含めることができます。
+現時点では、サポートされている <var>フィールド名 (field-name)</var> は
+<samp>Build-Depends-Package</samp>
+だけで、このフィールドの値は、このパッケージを使うパッケージがビルド時の依存関係を宣言すべき
+<a href="#s-sharedlibs-dev">ライブラリ開発用パッケージ名</a> を列挙します。
+このフィールドが存在する場合、このフィールドの値を <code>dpkg-shlibdeps</code>
+が利用し 結果として生成されるバイナリパッケージの共有ライブラリへの依存関係が、
+共有ライブラリ開発用パッケージに対するソースパッケージの依存関係より少なくとも同等か厳しい物になるよう保証します
+[<a href="footnotes.html#f76" name="fr76">76</a>]。
+ここでの例では、<samp>zlib1g</samp> の <code>symbols</code>
+には以下の行が含まれます。
+</p>
+<pre>
+ * Build-Depends-Package: zlib1g-dev
+</pre>
+
+<p>
+また、<code>deb-symbols(5)</code> も参照ください。
+</p>
+
+<hr>
+
+<h4 id="s-providing-symbols">8.6.3.3 <code>symbols</code> ファイルを用意する</h5>
+
+<p>
+作成したパッケージに共有ライブラリが含まれる場合、上記フォーマットに従った
+<code>symbols</code>
+コントロールファイルをパッケージに含めるよう用意すべきです。
+また、<code>symbols</code> コントロールファイルか、<code>shlibs</code>
+コントロールファイルのいずれかは含めなければいけません。
+</p>
+
+<p>
+通常は、この容易はソースパッケージに <code>symbols</code> ファイルを
+<code>debian/<var>package</var>.symbols</code> という名前か、あるいは
+<code>debian/symbols</code> という名称で作成することによって行われます。
+シンボル情報がアーキテクチャによって異なる場合には、上記の名称に
+<code>.<var>arch</var></code> が付け加えられます。
+このファイルは、<code>dpkg-gensymbols(1)</code>
+で文書化された拡張書式を利用可能です。このファイルの作成後、
+パッケージビルド処理の一環として <code>dpkg-gensymbols</code>
+を呼ぶことにより、ステージング領域内のバイナリと共有ライブラリ、およびこのソースパッケージの
+<code>symbols</code> ファイルから、パッケージのステージング領域に
+<code>symbols</code> が作成されます[<a href="footnotes.html#f77"
+name="fr77">77</a>]。
+</p>
+
+<p>
+<code>symbols</code> ファイルを提供するパッケージは、そのパッケージの)
+共有ライブラリを用いるパッケージが正しい依存関係を得られるよう、そのファイルを最新にしていなければなりません。
+つまり、<code>symbols</code>
+ファイルは新しい公開シンボルが追加された場合には更新され、
+シンボルの挙動やシグナチャが後方互換性を保つやり方で変更された場合には
+<var>minimal-version</var> を更新し (<a
+href="#s-sharedlibs-updates">共有ライブラリの ABI の変更, Section 8.6.2</a>
+参照) ライブラリの <samp>SONAME</samp>
+が変更された場合には、<var>library-soname</var> と
+<var>main-dependency-template</var>、加えて恐らく <var>minimal-version</var>
+フィールドの全エントリを更新します。 ライブラリからのシンボルの削除に伴って
+<code>symbols</code>
+ファイルからパブリックシンボルを削除する場合には、通常ライブラリの
+<samp>SONAME</samp> の変更が必要になります。<samp>SONAME</samp>
+についての詳細は、<a href="#s-sharedlibs-runtime">ランタイム共有ライブラリ,
+Section 8.1</a> を参照ください。
+</p>
+
+<hr>
+
+<h3 id="s-sharedlibs-shlibdeps">8.6.4 <samp>shlibs</samp> システム</h4>
+
+<p>
+<samp>shlibs</samp> システムは 共有ライブラリの依存関係制限を行うための
+<samp>symbols</samp> システムのより単純な代替です。 C++
+ライブラリなどの場合で、個々のシンボルの追跡が困難な場合に適しています。
+また、<samp>symbols</samp>
+システムより古くから用いられているため、古いパッケージでよく見られます。
+また、<samp>symbols</samp> をサポートしていない udeb で必要となります。
+</p>
+
+<p>
以下の節では、まず各 <samp>shlibs</samp> を探すべき場所について記載し、次に
<code>dpkg-shlibdeps</code> の使い方について、最後に <samp>shlibs</samp>
-ファイルフォーマットと、あなたのパッケージが共有ライブラリを含む際にこのファイルをどう作るのかについて説明していきます。
+ファイルフォーマットと、その作成方法について説明していきます。
</p>
<hr>
-<h3 id="s8.6.1">8.6.1 システム中の <samp>shlibs</samp> ファイル</h4>
+<h4 id="s-shlibs-paths">8.6.4.1 システムに存在する <code>shlibs</code> ファイル</h5>
<p>
<samp>shlibs</samp> を探すべき場所は幾つかあります。以下は <a
@@ -389,7 +881,8 @@
これはこのパッケージの情報を上書き変更するために使います。
このファイルは通常は使うべきではありませんが、他のパッケージのバグを回避するための特別な場合や、
インストールされているライブラリに対する <code>shlibs</code>
-の通常の宣言されている依存関係を使うことができないような特別の場合などに一時的に必要になる場合があります。
+の、通常の方法で宣言されている依存関係を使うことができないような特別の場合などに一時的に必要になる場合があります。
+このファイルは他のすべてのソースからの情報を上書きします。
</p>
</li>
</ul>
@@ -412,23 +905,25 @@
</p>
<p>
-パッケージをビルドしようとする際、各 <code>debian/shlibs</code>
-ファイルは一時的に作成されたビルドディレクトリ中のコントロールファイル領域ににコピーされ、
-<code>shlibs</code> という名が付けられます。
+これらのファイルはパッケージビルド処理の一環で作成され、作成中のバイナリパッケージのコントロールファイルとして収録するよう作業用ディレクトリに格納されます。
これらのファイルは、そのパッケージに含まれる共有ライブラリの詳細情報を提供します
-[<a href="footnotes.html#f65" name="fr65">65</a>]。
</p>
</li>
</ul>
<ul>
<li>
<p>
-<code>/var/lib/dpkg/info/*.shlibs</code>
+システムにインストール済みのパッケージの <code>shlibs</code>
+コントロールファイル
</p>
<p>
-ここの <code>shlibs</code>
-ファイルはシステムにインストールされている全パッケージに対するもので、各パッケージのメンテナによって管理されています。
+この <code>shlibs</code>
+ファイルはシステムにインストールされている全パッケージに対するものです。
+このファイル群は通常 <code>/var/lib/dpkg/info/*.shlibs</code>
+に置かれますが、パッケージはこのパス位置に依存すべきではなく、何らかの理由でこのファイルを調べる必要がある場合には代わりに
+<samp>dpkg-query --control-path <var>package</var> shlibs</samp>
+を使ってください。
</p>
</li>
</ul>
@@ -448,63 +943,18 @@
</li>
</ul>
-<hr>
-
-<h3 id="s8.6.2">8.6.2 <code>dpkg-shlibdeps</code> と <code>shlibs</code> の使い方</h4>
-
<p>
-<code>debian/rules</code> ファイル中に <a
-href="ap-pkg-sourcepkg.html#s-pkg-dpkg-shlibdeps"><code>dpkg-shlibdeps</code></a>
-への呼び出し処理を置いてください。バイナリだけを含んだパッケージ
-(つまり、スクリプトを含まない) の場合、次のコマンドが使えます。
+共有ライブラリで <code>symbols</code> ファイルが提供されている場合、
+<code>dpkg-shlibdeps</code> は <code>debian/shlibs.local</code>
+を例外として、それ以外は常に <code>shlibs</code> より <code>symbols</code>
+を優先して用います。<code>debian/shlibs.local</code> は、全ての他の
+<code>shlibs</code> ファイルと <code>symbols</code>
+ファイルの内容を上書きします。
</p>
-<pre>
- dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \
- debian/tmp/usr/lib/*
-</pre>
-<p>
-それ以外の場合には、コンパイルされるバイナリとライブラリを明示的に列挙する [<a
-href="footnotes.html#f66" name="fr66">66</a>] 必要があります。
-</p>
-
-<p>
-このコマンドは <code>debian/substvars</code>
-ファイル中に依存関係の情報を挿入します。 この情報は後で
-<code>dpkg-gencontrol</code> が使います。
-これが正しく処理されるよう、<samp>Depends</samp> フィールドに
-<samp>${shlibs:Depends}</samp> 変数を置かなければならないでしょう。
-</p>
-
-<p>
-複数のバイナリパッケージを生成する場合には、 <code>dpkg-shlibdeps</code>
-をコンパイルされたバイナリ及び共有ファイルを含むパッケージ毎に実行する必要があります。
-この場合、個別の <code>substvars</code> ファイルを指定するため
-<samp>dpkg</samp> ユーティリティの <samp>-T</samp>
-オプションを使う必要が出てくるでしょう。 このオプションについての詳細は
-<code>dpkg-shlibdeps(1)</code> を見てください。
-</p>
-
-<p>
-Debian Installer 中で使用するために udeb を作成する場合には、
-<code>dpkg-shlibdeps</code> が <samp>udeb</samp>
-タイプに対する依存指定行を用いるように、 <samp>-tudeb</samp> オプション[<a
-href="footnotes.html#f67" name="fr67">67</a>]
-を追加する指定を行なう必要があるでしょう。<code>shlibs</code> ファイル中に
-<samp>udeb</samp> タイプに対する依存関係の指定行がない場合、
-<code>dpkg-shlibdeps</code> は標準の依存関係指定行を用います。
-</p>
-
-<p>
-<code>dpkg-shlibdeps</code> について更に詳しく知りたい場合には、 <a
-href="ap-pkg-sourcepkg.html#s-pkg-dpkg-shlibdeps"><code>dpkg-shlibdeps</code> -
-共有ライブラリの依存関係の算定, Section C.1.4</a> と
-<code>dpkg-shlibdeps(1)</code> をご覧ください。
-</p>
-
<hr>
-<h3 id="s-shlibs">8.6.3 <code>shlibs</code> ファイルフォーマット</h4>
+<h4 id="s-shlibs">8.6.4.2 <code>shlibs</code> ファイルフォーマット</h5>
<p>
各 <code>shlibs</code> は同じフォーマットを使います。<samp>#</samp>
@@ -512,61 +962,59 @@
それぞれの行はつぎのものから構成されます。
</p>
<pre>
- [<var>type</var>: ]<var>library-name</var> <var>soname-version</var> <var>dependencies ...</var>
+ [<var>type</var>: ]<var>library-name</var> <var>soname-version</var> <var>dependencies ...</var>
</pre>
<p>
<samp>zlib1g</samp> パッケージを例に取り説明していきます。 このパッケージは
-(これを書いている時点では) 共有ライブラリ <code>/usr/lib/libz.so.1.1.3</code>
+(これを書いている時点では) 共有ライブラリ <code>/usr/lib/libz.so.1.2.3.4</code>
をインストールします。
</p>
<p>
-<var>type</var> はオプションとなる要素であり、
-その行が有効なパッケージのタイプを示します。
+<var>type</var>
+はオプションとなる要素であり、その行が有効なパッケージのタイプを示します。
現在使われている唯一のタイプは、<samp>udeb</samp> です。
タイプの後には、コロンと空白が必要です。
</p>
<p>
<var>library-name</var> は、共有ライブラリの名前です。
-この場合には、<samp>libz</samp> です (これは共有ライブラリの .so
-ファイル名の部分と一致していなければいけません。以下参照のこと)。
+この場合には、<samp>libz</samp> です (これは共有ライブラリ soname
+のファイル名部分と一致していなければいけません。以下参照のこと)。
</p>
<p>
-<var>soname-version</var> はライブラリの .so
-ファイル名のバージョンの部分です。soname
-にはダイナミックリンカに認識されるライブラリ名と厳密に一致した名前を与えなければいけません。
-これは通常、<samp><var>name</var>.so.<var>major-version</var></samp>
-という形式で、ここでの例では <samp>libz.so.1</samp> [<a
-href="footnotes.html#f68" name="fr68">68</a>] です。 バージョン部は
-<samp>.so.</samp> の後に来ている部分で、ここの例では <samp>1</samp>
-です。soname 部は <samp>libdb-4.8.so</samp> のように
-<samp><var>name</var>-<var>major-version</var>.so</samp>
-とすることもでき、この場合はライブラリ名が <samp>libdb</samp>
-で、バージョン番号が <samp>4.8</samp> になります。
+<var>soname-version</var> はライブラリの ELF <samp>SONAME</samp>
+アトリビュートのバージョンの部分で、推奨共有ライブラリのパッケージ名の
+<var>soversion</var> 要素の判定と同じ規則に従います。 詳細は <a
+href="#s-sharedlibs-runtime">ランタイム共有ライブラリ, Section 8.1</a>
+を参照ください。
</p>
<p>
-<var>dependencies</var> は、バイナリパッケージのコントロールファイル中の
-依存関係フィールドと同じ書式です。
-ここには、そのパッケージに含まれるライブラリでビルドしたバイナリが動作するためにどのパッケージが必要になるかに関する詳細を記述しておくべきです。
-詳しくは <a href="ch-relationships.html#s-depsyntax">関係性フィールドの書式,
-Section 7.1</a> を参照ください。
+<var>dependencies</var>
+は、バイナリパッケージのコントロールファイル中の依存関係フィールドと同じ書式です。
+ここには、そのパッケージに含まれるライブラリを用いるようにビルドしたバイナリが動作するために、どのパッケージが必要になるかに関する詳細を記述しておくべきです。
+書式の詳細については <a
+href="ch-relationships.html#s-depsyntax">関係性フィールドの書式, Section
+7.1</a> を、依存バージョンの管理方法の詳細については <a
+href="#s-sharedlibs-updates">共有ライブラリの ABI の変更, Section 8.6.2</a>
+を参照ください。
</p>
<p>
ここの例では、<samp>zlib1g</samp> パッケージで、少なくとも <samp>1.3</samp>
-以降のマイナーバージョン番号を持つ最初のバージョンは <var>1:1.1.3-1</var>
-ですので、このライブラリの <samp>shlibs</samp> にはこう書きます。
+以降のマイナーバージョン番号を持つ最初のバージョンは
+<samp>1:1.2.3.3.dfsg-1</samp> ですので、このライブラリの <samp>shlibs</samp>
+にはこう書きます。
</p>
<pre>
- libz 1 zlib1g (>= 1:1.1.3)
+ libz 1 zlib1g (>= 1:1.2.3.3.dfsg)
</pre>
<p>
-バージョン指定の依存関係は、古い共有ライブラリを新しいバイナリと共に使った場合、ダイナミックリンカが出す警告メッセージを避けるためのものです。
+このバージョンの制限は、ライブラリの現在のバージョンを用いてビルドしたバイナリが、このファイルで指定した依存関係を満たす任意の共有ライブラリで動作できるよう十分に新しいものでなければいけません。
</p>
<p>
@@ -574,47 +1022,28 @@
を提供するため、更に二行目が付加されています。
</p>
<pre>
- udeb: libz 1 zlib1g-udeb (>= 1:1.1.3)
+ udeb: libz 1 zlib1g-udeb (>= 1:1.2.3.3.dfsg)
</pre>
<hr>
-<h3 id="s8.6.4">8.6.4 <code>shlibs</code> ファイルを提供する</h4>
+<h4 id="s8.6.4.3">8.6.4.3 <code>shlibs</code> ファイルを提供する</h5>
<p>
-パッケージが共有ライブラリを提供する場合、上記のフォーマットで
-<code>shlibs</code> ファイルを作成する必要があります。 普通は
-<code>debian/shlibs</code> という名前にします
-(もし複数のバイナリパッケージを作成する場合には、
-<code>debian/shlibs.<var>package</var></code>
-としたほうがいい場合もあります)。次に、<code>debian/rules</code>
-でそれを制御情報ファイル領域にインストールしてください。
+共有ライブラリバイナリパッケージに対して <code>shlibs</code>
+を提供するには、以下のフォーマットで <code>shlibs</code>
+を作成して、ビルド時に該当パッケージの <code>DEBIAN</code>
+ディレクトリに置いてください。
+このファイルがパッケージのコントロールファイルとしてパッケージに収録されます[<a
+href="footnotes.html#f78" name="fr78">78</a>]。
</p>
-<pre>
- install -m644 debian/shlibs debian/tmp/DEBIAN
-</pre>
<p>
-または、複数のバイナリパッケージの場合には、次のコマンドとします。
-</p>
-<pre>
- install -m644 debian/shlibs.<var>package</var> debian/<var>package</var>/DEBIAN/shlibs
-</pre>
-
-<p>
-もう一つの方法として、<code>debian/rules</code> から制御情報ファイル領域に、
-<code>debian/shlibs</code> をまったく使わずに <code>shlibs</code>
-を直接作成するやり方 [<a href="footnotes.html#f69" name="fr69">69</a>]
-もあります。 これは、<code>dpkg-shlibdeps</code> からは
-<code>debian/shlibs</code> ファイル自体は無視されるためです。
-</p>
-
-<p>
<code>dpkg-shlibdeps</code>
はソースパッケージから作成するすべてのバイナリパッケージに対して
<code>DEBIAN/shlibs</code> ファイルを読むため、すべての
-<code>DEBIAN/shlibs</code> はどれかのバイナリパッケージに対して
-<code>dpkg-shlibdeps</code> を実行するより前にインストールしておくべきです。
+<code>DEBIAN/shlibs</code> は、<code>dpkg-shlibdeps</code>
+をどのバイナリパッケージに対して実行するより前にインストールしておくべきです。
</p>
<hr>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-source.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-source.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/ch-source.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -386,7 +386,7 @@
以下のターゲットは、<code>debian/rules</code>
に必要で、実装されていなければいけません。 - <samp>clean</samp>,
<samp>binary</samp>, <samp>binary-arch</samp>, <samp>binary-indep</samp>,
-および <samp>build</samp>。
+<samp>build</samp> <samp>build-arch</samp> および <samp>build-indep</samp>。
これらのターゲットは、<code>dpkg-buildpackage</code> から呼ばれます。
</p>
@@ -442,40 +442,24 @@
</dd>
</dl>
<dl>
-<dt><samp>build-arch</samp> (オプション) <samp>build-indep</samp> (オプション)</dt>
+<dt><samp>build-arch</samp> (必須) <samp>build-indep</samp> (必須)</dt>
<dd>
<p>
-パッケージは <samp>build-arch</samp> と <samp>build-indep</samp>
-の一方あるいは両方のターゲットを指定することが出来ます。
-<samp>build-arch</samp>
-ターゲットが指定された場合、これはアーキテクチャ依存のバイナリパッケージ
+<samp>build-arch</samp> ターゲットでは、アーキテクチャ依存のバイナリパッケージ
(これらのパッケージには、<samp>debian/control</samp> の
<samp>Architecture</samp> フィールドに <samp>all</samp> 以外が指定されています)
-を作成するのに必要なすべての非対話型の処理を実行します。 同様に
-<samp>build-indep</samp>
-ターゲットが指定された場合、これはアーキテクチャ非依存のバイナリパッケージ
+を作成するのに必要なすべての設定とコンパイル処理を実行しなければいけません。
+同様に <samp>build-indep</samp>
+ターゲットは、アーキテクチャ非依存のバイナリパッケージ
(これらのパッケージでは、<samp>debian/control</samp> の
<samp>Architecture</samp> フィールドの値は <samp>all</samp> です)
-を作成するのに必要なすべての非対話型の処理を実行します。
-</p>
-
-<p>
-<samp>build-arch</samp> または <samp>build-indep</samp> が rules
-ファイルに指定されている場合、<samp>build</samp>
-ターゲットは、それらに依存関係を指定するか、
-それらのターゲットを呼んだ時に行われる動作に対応した何らかの処理を行うべきです[<a
+を作成するのに必要なすべての設定とコンパイル処理を実行しなければいけません。
+<samp>build</samp> ターゲットは、それらのターゲットに依存関係を指定するか、
+それらのターゲットを呼んだ時に行われる動作と同じ処理を行うべきです[<a
href="footnotes.html#f25" name="fr25">25</a>]。
</p>
<p>
-<samp>build-arch</samp> と <samp>build-indep</samp>
-の一方あるいはいずれも指定されていない場合、 <code>debian/rules</code>
-を存在しないターゲットを指定して起動した際にはステータスコード 2
-を返すべきです。 通常、make
-はターゲットが存在しない場合、自動的に上記の結果を返します。
-</p>
-
-<p>
<samp>build-arch</samp> と <samp>build-indep</samp> では、root
権限が必要なことを行ってはいけません。
</p>
@@ -596,9 +580,8 @@
<p>
パッケージを実際にビルドするマシンや、インストールの対象となるマシンのアーキテクチャは、
-<a
-href="ap-pkg-sourcepkg.html#s-pkg-dpkg-architecture"><code>dpkg-architecture</code></a>
-を使って <code>make</code> 変数を設定することによって決定されます。
+<code>dpkg-architecture</code> ユーティリティを使って <code>make</code>
+変数を設定することによって決定されます。
これにより、ホストアーキテクチャだけでなくパッケージのビルドをするマシン
アーキテクチャの Debian 形式のアーキテクチャ指定文字列と GNU
形式のアーキテクチャ指定文字列を得ることができます。
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/footnotes.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/footnotes.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/footnotes.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -25,7 +25,7 @@
<dt>選ばれた取り決め</dt>
<dd>
<p>
-いくつか技術的に取り得る選択肢があり、相互互換性のためそのうちの一つを選ばなければならない場合です。
+技術的には取り得る選択肢はいくつかありますが、相互互換性のためそのうちの一つを選ばなければならない場合です。
バージョン番号の形式などがその例です。
</p>
</dd>
@@ -212,7 +212,7 @@
<p>
列挙された一つまたは複数のバグ番号は、changelog エントリの <var>version</var>
-を使ってアーカイブメンテナスクリプト (<code>katie</code>) で閉じられます。
+を使ってアーカイブメンテナソフトウェア (<code>dak</code>) で閉じられます。
</p>
<h3><a href="ch-source.html#fr19" name="f19">19</a></h3>
@@ -279,13 +279,10 @@
<h3><a href="ch-source.html#fr25" name="f25">25</a></h3>
<p>
-この分割の意図は、バイナリのみのビルド時に <samp>build-indep</samp>
-ターゲットで必要になる依存パッケージのインストールを行わなくてよいようにするためです。
-但し、この条件はまだ実運用に入っていません。それは <samp>dpkg-buildpackage
--B</samp> が、そしてオートビルダがオプションの <samp>build-arch</samp>
-ターゲットが存在するかどうかの難しい判定を回避するため、
-<samp>build-arch</samp> ではなく <samp>build</samp>
-を呼ぶようになっているためです。
+この分割により、バイナリのみのビルド時に <samp>build-indep</samp>
+ターゲットで必要になる依存パッケージのインストールを行わなくてよく、
+またアーキテクチャに独立のバイナリパッケージをビルドする際にのみ必要な、
+リソースを多量に消費するビルドタスクを省けるようになります。
</p>
<h3><a href="ch-source.html#fr26" name="f26">26</a></h3>
@@ -481,12 +478,11 @@
<h3><a href="ch-maintainerscripts.html#fr48" name="f48">48</a></h3>
<p>
-例えば、パッケージ foo と bar があり、foo は bar に依存し、foo
-をインストールしようとしているとします。bar
-のアップグレードが開始後異常終了し、その後 foo の削除が foo の
-<code>prerm</code> スクリプトが失敗したために失敗したとします。 この場合、foo
-の <samp>postinst abort-remove</samp> が bar が "Half-Installed"
-の状態で呼ばれます。
+例えば、パッケージ foo と bar がインストール状態であり、foo は bar
+に依存しているとします。bar のアップグレードが開始後異常終了し、その後 foo
+の削除が foo の <code>prerm</code> スクリプトが失敗したために失敗したとします。
+この場合、foo の <samp>postinst abort-remove</samp> が bar が設定途中状態
+(Half-Installed) で呼ばれます。
</p>
<h3><a href="ch-maintainerscripts.html#fr49" name="f49">49</a></h3>
@@ -594,9 +590,22 @@
の分離なしでは、これは意味をなしません。
</p>
-<h3><a href="ch-sharedlibs.html#fr57" name="f57">57</a></h3>
+<h3><a href="ch-relationships.html#fr57" name="f57">57</a></h3>
<p>
+ソースパッケージの <samp>Build-Depends</samp> はこの目的には不向きです。
+これは、(本来の目的から) ビルド時に使った正確なバージョンを記録しないためです。
+</p>
+
+<h3><a href="ch-relationships.html#fr58" name="f58">58</a></h3>
+
+<p>
+存在しないソースを参照していた場合、アーカイブソフトウェアからパッケージを拒否されるかもしれません。
+</p>
+
+<h3><a href="ch-sharedlibs.html#fr59" name="f59">59</a></h3>
+
+<p>
これは共有ライブラリのバージョン付けの慣行であり、要求事項ではありません。
一部のライブラリでは、<samp>SONAME</samp> をライブラリ名として使っており、
シンボリックリンクを必要としません。但し、大多数の共有ライブラリでは、
@@ -607,7 +616,7 @@
8.1</a> を参照ください。
</p>
-<h3><a href="ch-sharedlibs.html#fr58" name="f58">58</a></h3>
+<h3><a href="ch-sharedlibs.html#fr60" name="f60">60</a></h3>
<p>
パッケージ管理システムでは、<code>.deb</code>
@@ -625,7 +634,7 @@
が自動的にファイルそれ自身を並び換えるようになるので、このファイルを作る順序に配慮するという件は重要ではなくなっています。
</p>
-<h3><a href="ch-sharedlibs.html#fr59" name="f59">59</a></h3>
+<h3><a href="ch-sharedlibs.html#fr61" name="f61">61</a></h3>
<p>
これは、現在 <code>/usr/local/lib</code> および <code>/lib</code> と
@@ -633,7 +642,7 @@
以下のシステムアーキテクチャに対応した多アーキテクチャ三つ組み文字に対応したディレクトリです。
</p>
-<h3><a href="ch-sharedlibs.html#fr60" name="f60">60</a></h3>
+<h3><a href="ch-sharedlibs.html#fr62" name="f62">62</a></h3>
<p>
インストールまたはアップグレードの際には、preinst
@@ -678,14 +687,14 @@
共有ライブラリは一時的な名称でディスク上にあるかもしれません。
</p>
-<h3><a href="ch-sharedlibs.html#fr61" name="f61">61</a></h3>
+<h3><a href="ch-sharedlibs.html#fr63" name="f63">63</a></h3>
<p>
例えば、<code><var>package-name</var>-config</code> スクリプトや
<code>pkg-config</code> 設定ファイルのようなものです。
</p>
-<h3><a href="ch-sharedlibs.html#fr62" name="f62">62</a></h3>
+<h3><a href="ch-sharedlibs.html#fr64" name="f64">64</a></h3>
<p>
この規定では、開発用のファイルが例えばアーキテクチャに依存して
@@ -694,114 +703,194 @@
その場合、開発用パッケージを必要な全ての追加パッケージに依存させなければいけません。
</p>
-<h3><a href="ch-sharedlibs.html#fr63" name="f63">63</a></h3>
+<h3><a href="ch-sharedlibs.html#fr65" name="f65">65</a></h3>
<p>
以前は <samp>${Source-Version}</samp> が使用されていましたが、
この名称は混乱を招くため dpkg 1.13.19 からは非推奨となりました。
</p>
-<h3><a href="ch-sharedlibs.html#fr64" name="f64">64</a></h3>
+<h3><a href="ch-sharedlibs.html#fr66" name="f66">66</a></h3>
<p>
+<code>shlibs</code> ファイルは SONAME を実際の SONAME
+ではなく、ライブラリ名とバージョン番号で、 つまり <samp>libfoo VERSION</samp>
+という形式で代表させ、記録しています。 SONAME が期待される二種の書式
+(<samp>libfoo-VERSION.so</samp> または <samp>libfoo.so.VERSION</samp>)
+でなかった場合、この代表処理が行えません。
+</p>
+
+<h3><a href="ch-sharedlibs.html#fr67" name="f67">67</a></h3>
+
+<p>
<code>dpkg-shlibdeps</code> は <code>objdump</code> や <code>readelf</code>
-を利用して、対象パッケージのバイナリおよび共有ライブラリで直接必要なディレクトリを探索します。
+を利用して、対象パッケージのバイナリおよび共有ライブラリで直接必要な、ライブラリまたはライブラリ内のシンボルを探索します。
</p>
+<h3><a href="ch-sharedlibs.html#fr68" name="f68">68</a></h3>
+
<p>
-ここで、バイナリはこのライブラリを <em>直接</em> 使っているとは、バイナリ
-<samp>foo</samp> がライブラリ <samp>libbar</samp> にリンクされている場合
-(すなわち、リンクの段階で <samp>-lbar</samp> フラグを使って、ライブラリが ELF
-<samp>NEEDED</samp> アトリビュート付きでリストされている場合) のことです。
-<samp>libbar</samp> が必要とするその他のライブラリは <samp>foo</samp> に
-<em>間接的に</em> リンクされており、ダイナミックリンカは <samp>libbar</samp>
-をロードする際に自動的にそれらのライブラリをロードします。
-間接的に使われているライブラリへの依存関係は自動的にロードしてこられるため、
-パッケージが依存関係を指定すべきなのは直接リンクしているライブラリだけです。
+<code>dpkg-shlibdeps</code> を正しく呼び出す一番簡単な方法は、
+<code>debhelper</code>
+のようなパッケージヘルパーフレームワークを用いることです。
+<code>debhelper</code> を用いているなら、 <code>dh_shlibdeps</code>
+が必要な作業をおこなってくれます。
+また、複数のバイナリを持つパッケージも正しく扱われます。
</p>
+<h3><a href="ch-sharedlibs.html#fr69" name="f69">69</a></h3>
+
<p>
-<code>ldd</code>
-では、直接呼ばれるライブラリだけでなく間接的に呼ばれるライブラリも表示してしまうという問題があり、
-その結果直接の依存関係と間接的な依存関係の両方が抽出されていました。
-<code>objdump</code>
-は、直接使うライブラリだけを抽出するようにしてこの問題を回避します。
+<samp>debhelper</samp> フレームワークの <code>dh_shlibdeps</code> は、 udeb
+を処理していると判断した場合、このオプションを自動的に付加します。
</p>
+<h3><a href="ch-sharedlibs.html#fr70" name="f70">70</a></h3>
+
<p>
+繰り返しますが、<code>debhelper</code> フレームワークの
+<code>dh_shlibdeps</code> と <code>dh_gencontrol</code>
+は、コントロールファイルに変数を追加する以外のことは何でもやってくれます。
+例えば、各バイナリパッケージに対して別々の <code>substvars</code>
+ファイルを作成し、適切なフラグで <code>dpkg-gencontrol</code>
+を呼ぶことは自動で処理されます。
+</p>
+
+<h3><a href="ch-sharedlibs.html#fr71" name="f71">71</a></h3>
+
+<p>
これがなぜ役に立つのかを示す良い例として、<samp>libimlib</samp> を
(メジャーバージョン番号をそのままにしつつ) dgf
-という新しいグラフィックフォーマットに対応し、<samp>libdgf</samp>
-に依存した新しいバージョンに更新する場合を考えます。 もし、<code>ldd</code>
+という新しい版のグラフィックフォーマットに対応し、<samp>libdgf</samp>
+に依存した新しいバージョンに更新する場合を考えます。もし、<code>ldd</code>
を使って直接あるいは間接的にバイナリにリンクする全てのパッケージへの依存関係を加えた場合、
-<samp>libimlib</samp> を用いる全てのパッケージも <samp>libdgf</samp>
-に依存するよう再コンパイルが必要になります。
-再コンパイルを行わないとシンボル不足で実行できなくなるためです。 依存関係を ELF
-の <samp>NEEDED</samp> アトリビュートのみに基づいて追加すれば、
+古い <code>libdgf3</code> を引退させ <samp>libdgf4</samp>
+に依存させるためには、 <samp>libimlib</samp>
+を用いる全てのパッケージの再コンパイルが必要になります。 依存関係を ELF の
+<samp>NEEDED</samp> アトリビュートのみに基づいて追加すれば、
<samp>libimlib</samp> を使っているパッケージは <samp>libimlib</samp> の
<samp>libdgf</samp>
への依存関係指定に任せることができ、再ビルドする必要がありません。
</p>
-<h3><a href="ch-sharedlibs.html#fr65" name="f65">65</a></h3>
+<h3><a href="ch-sharedlibs.html#fr72" name="f72">72</a></h3>
<p>
+ここで、「通常」でないプログラムとは、内部で使用するとして文書化されており、サポートされていないライブラリインターフェースを用いるプログラムのことです。
+もし、共有プログラムの変更に対して影響を受けるプログラムやライブラリが「通常でない」
+ものだけである場合には、他の手法、例えば影響を受けるパッケージに対して
+<samp>Breaks</samp>
+の依存関係を指定したり、影響を受けるパッケージに対して、ライブラリの使い方に対するバグを報告する、などが
+SONAME を変更するより、より適切な対処でしょう。 ただし、標準的な方法は、ABI
+の変更によりプログラムが動作しなくなる場合は SONAME を変更する、です。
+</p>
+
+<h3><a href="ch-sharedlibs.html#fr73" name="f73">73</a></h3>
+
+<p>
+An example may clarify. Suppose the source package <samp>foo</samp> generates
+two binary packages, <samp>libfoo2</samp> and <samp>foo-runtime</samp>. When
+building the binary packages, the contents of the packages are staged in the
+directories <code>debian/libfoo2</code> and <code>debian/foo-runtime</code>
+respectively. (<code>debian/tmp</code> could be used instead of one of these.)
+Since <samp>libfoo2</samp> provides the <samp>libfoo</samp> shared library, it
+will contain a <samp>symbols</samp> file, which will be installed in
+<code>debian/libfoo2/DEBIAN/symbols</code>, eventually to be included as a
+control file in that package. When <code>dpkg-shlibdeps</code> is run on the
+executable <code>debian/foo-runtime/usr/bin/foo-prog</code>, it will examine
+the <code>debian/libfoo2/DEBIAN/symbols</code> file to determine whether
+<samp>foo-prog</samp>'s library dependencies are satisfied by any of the
+libraries provided by <samp>libfoo2</samp>. Since those binaries were linked
+against the just-built shared library as part of the build process, the
+<code>symbols</code> file for the newly-built <samp>libfoo2</samp> must take
+precedence over a <code>symbols</code> file for any other <samp>libfoo2</samp>
+package already installed on the system.-->
理解の助けになるよう例を挙げておきます。ソースパッケージ <samp>foo</samp>
から二つのバイナリパッケージ <samp>libfoo2</samp> と <samp>foo-runtime</samp>
が作られるとします。 バイナリパッケージのビルドの際、二つのパッケージは順に
<code>debian/libfoo2</code> と <code>debian/foo-runtime</code>
-ディレクトリに作られます (うち一方の代わりに <code>debian/tmp</code>
+作業用ディレクトリに作られます (そのうち一方の代わりに <code>debian/tmp</code>
が使えます)。<samp>libfoo2</samp> は <samp>libfoo</samp>
-を提供するので、<samp>shlibs</samp> ファイルを用意する必要があり、これは
-<code>debian/libfoo2/DEBIAN/shlibs</code> にインストールされます。これがこの後
-<code>/var/lib/dpkg/info/libfoo2.shlibs</code> になったとします。 次に
-<code>dpkg-shlibdeps</code> は実行ファイル
-<code>debian/foo-runtime/usr/bin/foo-prog</code>
-に対して実行され、<code>debian/libfoo2/DEBIAN/shlibs</code>
-ファイルが調べられ、 <samp>foo-prog</samp> のライブラリ依存関係が
-<samp>libfoo2</samp>
+共有ライブラリを提供するため、<samp>symbols</samp> ファイルを含んでおり、それは
+<code>debian/libfoo2/DEBIAN/symbols</code>
+にインストールされ、後にそのパッケージのコントロールファイルとして収録されます。
+その後、<code>dpkg-shlibdeps</code> は実行ファイル
+<code>debian/foo-runtime/usr/bin/foo-prog</code> に対して実行された際には、
+<code>debian/libfoo2/DEBIAN/symbols</code> ファイルが調べられ、
+<samp>foo-prog</samp> のライブラリ依存関係が <samp>libfoo2</samp>
が提供するライブラリで満たされるかどうかの判定が行われます。
-このため、<code>dpkg-shlibdeps</code>
-はビルドディレクトリに個々のバイナリパッケージすべての <samp>shlibs</samp>
-ファイルがインストールされてから実行する必要があります。
+これらのバイナリは、ビルド処理の中で今ビルドしたての共有ライブラリに対してリンクされますので、
+新しく作成された <samp>libfoo2</samp> の <code>symbols</code>
+ファイルは、システムに既にインストール済みの、他の <samp>libfoo2</samp> の
+<code>symbols</code> ファイルより優先されなければならないのです。
</p>
-<h3><a href="ch-sharedlibs.html#fr66" name="f66">66</a></h3>
+<h3><a href="ch-sharedlibs.html#fr74" name="f74">74</a></h3>
<p>
-<samp>debhelper</samp> を使っているなら、これは <code>dh_shlibdeps</code>
-プログラムを使っておこなえます。
-このプログラムは複数のバイナリパッケージの場合でも正しく処理します。
+この値は以下のコマンドを使えば得られます。
</p>
+<pre>
+ readelf -d /usr/lib/libz.so.1.2.3.4 | grep SONAME
+</pre>
-<h3><a href="ch-sharedlibs.html#fr67" name="f67">67</a></h3>
+<h3><a href="ch-sharedlibs.html#fr75" name="f75">75</a></h3>
<p>
-<samp>debhelper</samp> プログラム群の <code>dh_shlibdeps</code>
-を用いることによって、udeb
-を使うという判定がなされればこのオプションが自動的に付加されます。
+libGL インターフェースを実装したライブラリでこれが必要になる例を示します。
+全ての GL 実装は基本インターフェースとして同じ ABI
+を提供し、さらに個々に追加の拡張インターフェースを提供しており、後者は特定の GL
+実装が必要なプログラムだけが利用します。 したがって、例えば、libgl1-mesa-glx
+では以下のような <code>symbols</code> ファイルを利用可能です。
</p>
-<h3><a href="ch-sharedlibs.html#fr68" name="f68">68</a></h3>
+<pre>
+ libGL.so.1 libgl1
+ | libgl1-mesa-glx #MINVER#
+ publicGlSymbol@Base 6.3-1
+ [...]
+ implementationSpecificSymbol@Base 6.5.2-7 1
+ [...]
+</pre>
<p>
-これは以下のコマンドで判定できます。
+バイナリまたは共有ライブラリで、<samp>publicGlSymbol</samp> だけを用いるものは
+<samp>libgl1</samp> だけに依存し
+(これは複数のパッケージから提供されている可能性があります)、
+<samp>implementationSpecificSymbol</samp> を使うものは <samp>libgl1-mesa-glx
+(>= 6.5.2-7)</samp> への依存関係を持つことになります。
</p>
-<pre>
- objdump -p /usr/lib/libz.so.1.1.3 | grep SONAME
-</pre>
-<h3><a href="ch-sharedlibs.html#fr69" name="f69">69</a></h3>
+<h3><a href="ch-sharedlibs.html#fr76" name="f76">76</a></h3>
<p>
+このフィールドは通常必要はありません。
+というのはもしシンボルの挙動が変化した場合、対応するシンボルの
+<var>minimal-version</var> を増やすべきだからです。
+しかしながら、例えばこの共有ライブラリを使うパッケージが、
+何らかの理由により特定のバージョンの共有ライブラリ開発用パッケージを指定して依存したい場合など、
+この機能がある方がシステムがより問題の少ないものとなります。
+</p>
+
+<h3><a href="ch-sharedlibs.html#fr77" name="f77">77</a></h3>
+
+<p>
+<samp>debhelper</samp> を使っている場合は、<code>dh_makeshlibs</code> が
+<code>dpkg-gensymbols</code> を呼ぶか、適切な <code>shlibs</code>
+ファイルを作成するかの面倒を見てくれます。
+</p>
+
+<h3><a href="ch-sharedlibs.html#fr78" name="f78">78</a></h3>
+
+<p>
これは <samp>debhelper</samp> ツール群の <code>dh_makeshlibs</code>
で行われている方法です。あなたのパッケージが共有ライブラリを提供する udeb
-を含む場合、<samp>--add-udeb</samp> オプションを使って udeb
+も含む場合、<samp>--add-udeb</samp> オプションを使って udeb
名を指定することにより、<code>dh_makeshlibs</code> を用いて自動的に
<samp>udeb:</samp> 行を生成することができます。
</p>
-<h3><a href="ch-opersys.html#fr70" name="f70">70</a></h3>
+<h3><a href="ch-opersys.html#fr79" name="f79">79</a></h3>
<p>
これは、<samp>multiarch</samp>
@@ -809,19 +898,19 @@
ディレクトリを確保するために必要となる制約です。
</p>
-<h3><a href="ch-opersys.html#fr71" name="f71">71</a></h3>
+<h3><a href="ch-opersys.html#fr80" name="f80">80</a></h3>
<p>
これらのディレクトリは、カーネル情報にアクセスするための仮想ファイルシステムのマウントポイントとして使われます。
</p>
-<h3><a href="ch-opersys.html#fr72" name="f72">72</a></h3>
+<h3><a href="ch-opersys.html#fr81" name="f81">81</a></h3>
<p>
これらのディレクトリはトランスレータの格納と、マウントポイントの標準名の格納に使われます。
</p>
-<h3><a href="ch-opersys.html#fr73" name="f73">73</a></h3>
+<h3><a href="ch-opersys.html#fr82" name="f82">82</a></h3>
<p>
例として、LSB 準拠の init スクリプトを書く補助となる
@@ -829,9 +918,19 @@
が有効で、コンソールへのエラー出力が行え無い場合、動かないかも知れません。
</p>
-<h3><a href="ch-files.html#fr74" name="f74">74</a></h3>
+<h3><a href="ch-opersys.html#fr83" name="f83">83</a></h3>
<p>
+メンテナスクリプトから <code>/usr/lib/mime/packages/</code>
+にファイルを作成、変更、削除してもこのトリガは起動されません。
+この場合、メンテナスクリプトから当該ファイルの作成、変更、削除の後、
+<samp>dpkg-trigger --no-await /usr/lib/mime/packages</samp>
+を実行することで明示的に起動してください。
+</p>
+
+<h3><a href="ch-files.html#fr84" name="f84">84</a></h3>
+
+<p>
GCC を使っている場合、<samp>-fPIC</samp>
は位置非依存の再配置可能なコードを吐きます。
これは多くのアーキテクチャで共有ライブラリを作るのに必要で、 i386
@@ -844,14 +943,14 @@
位置依存のコードを用いることができる一部のアーキテクチャでのメモリ消費とのトレードオフで考慮しなければなりません。
</p>
-<h3><a href="ch-files.html#fr75" name="f75">75</a></h3>
+<h3><a href="ch-files.html#fr85" name="f85">85</a></h3>
<p>
これが必要になる理由の一つとして、ライブラリに再配置不可の手書きのアセンブラコードが含まれていて、
これを使わない場合の計算主体の作業時の速度の低下が有意である、などの場合があります。
</p>
-<h3><a href="ch-files.html#fr76" name="f76">76</a></h3>
+<h3><a href="ch-files.html#fr86" name="f86">86</a></h3>
<p>
多分、これに加えて <samp>--remove-section=.comment</samp> と
@@ -860,7 +959,7 @@
をスタティックライブラリに指定することも検討に値するでしょう。
</p>
-<h3><a href="ch-files.html#fr77" name="f77">77</a></h3>
+<h3><a href="ch-files.html#fr87" name="f87">87</a></h3>
<p>
典型的な例は、いわゆる『プラグイン』
@@ -868,7 +967,7 @@
を使って動的に読み込まれるもの) です。
</p>
-<h3><a href="ch-files.html#fr78" name="f78">78</a></h3>
+<h3><a href="ch-files.html#fr88" name="f88">88</a></h3>
<p>
これらのファイルには、他の情報に加えて、共有ライブラリが依存する全てのライブラリの情報が格納されています。
@@ -880,7 +979,7 @@
への移行を複雑で管理困難としてしまいます。
</p>
-<h3><a href="ch-files.html#fr79" name="f79">79</a></h3>
+<h3><a href="ch-files.html#fr89" name="f89">89</a></h3>
<p>
Single UNIX Specification, version 3 です。これは IEEE 1003.1-2004(POSIX)
@@ -889,7 +988,7 @@
から入手できます。
</p>
-<h3><a href="ch-files.html#fr80" name="f80">80</a></h3>
+<h3><a href="ch-files.html#fr90" name="f90">90</a></h3>
<p>
これらの機能は Linux コミュニティで広く使用されており、bash, dash, ksh
@@ -897,7 +996,7 @@
として使いたいと思うような最も一般的なシェルのすべてで実装されています。
</p>
-<h3><a href="ch-files.html#fr81" name="f81">81</a></h3>
+<h3><a href="ch-files.html#fr91" name="f91">91</a></h3>
<p>
この規定は、トップレベルディレクトリにシンボリックリンクを置くために必要になります。
@@ -908,14 +1007,14 @@
は意図したものではない <code>/srv/run</code> を指してしまいます。
</p>
-<h3><a href="ch-files.html#fr82" name="f82">82</a></h3>
+<h3><a href="ch-files.html#fr92" name="f92">92</a></h3>
<p>
この問い合わせは (低プライオリティの) debconf メッセージまたは echo (printf)
文で行うことができます。
</p>
-<h3><a href="ch-files.html#fr83" name="f83">83</a></h3>
+<h3><a href="ch-files.html#fr93" name="f93">93</a></h3>
<p>
名前付きパイプを作成するには、<code>mknod</code> ではなく <code>mkfifo</code>
@@ -923,9 +1022,16 @@
を使ったデバイスファイルの誤作成をおこなっていないかの自動チェックでの誤検出を避けるためです。
</p>
-<h3><a href="ch-files.html#fr84" name="f84">84</a></h3>
+<h3><a href="ch-files.html#fr94" name="f94">94</a></h3>
<p>
+<code>dpkg</code> パッケージ収録の <code>dpkg-maintscript-helper</code>
+ツールがこの作業の助けになります。
+</p>
+
+<h3><a href="ch-files.html#fr95" name="f95">95</a></h3>
+
+<p>
原則の解説: ハードリンクには二つの問題があります。
まず第一にそのうちの一つのファイルを編集する際にリンクを切ってしまうエディタがあり、
知らない間に二つのファイルのリンクが切られ、別なものになってしまうことがあります。
@@ -933,7 +1039,7 @@
のアップグレード時にリンクを切ってしまうかもしれません。
</p>
-<h3><a href="ch-files.html#fr85" name="f85">85</a></h3>
+<h3><a href="ch-files.html#fr96" name="f96">96</a></h3>
<p>
従来のログファイルの扱いは、単純なスクリプトと cron
@@ -951,7 +1057,7 @@
(<code>/etc/logrotate.d</code>) の両方を備えています。
</p>
-<h3><a href="ch-files.html#fr86" name="f86">86</a></h3>
+<h3><a href="ch-files.html#fr97" name="f97">97</a></h3>
<p>
パッケージがアップグレードされる際に、パッケージに含まれるファイルのオーナやパーミッションが変更されていた場合には、dpkg
@@ -965,7 +1071,7 @@
この場合、ダウングレードを扱う場合の対処も行わなければいけません。
</p>
-<h3><a href="ch-files.html#fr87" name="f87">87</a></h3>
+<h3><a href="ch-files.html#fr98" name="f98">98</a></h3>
<p>
<code>dpkg</code> でインストールされる通常のファイルは (<samp>conffile</samp>
@@ -974,13 +1080,13 @@
但し、<code>dpkg-statoverride</code> を使えばこの動作を変更できます。
</p>
-<h3><a href="ch-files.html#fr88" name="f88">88</a></h3>
+<h3><a href="ch-files.html#fr99" name="f99">99</a></h3>
<p>
訳注:ここでの動的、はインストール時ホスト毎に、の意。
</p>
-<h3><a href="ch-customized-programs.html#fr89" name="f89">89</a></h3>
+<h3><a href="ch-customized-programs.html#fr100" name="f100">100</a></h3>
<p>
内部的には、パッケージシステムは GNU 三項識別子と Debian アーキテクチャを
@@ -992,27 +1098,27 @@
を元にパッケージシステムの内部で処理されます。
</p>
-<h3><a href="ch-customized-programs.html#fr90" name="f90">90</a></h3>
+<h3><a href="ch-customized-programs.html#fr101" name="f101">101</a></h3>
<p>
Debian 基本システムが editor と pager プログラムを提供しています。
</p>
-<h3><a href="ch-customized-programs.html#fr91" name="f91">91</a></h3>
+<h3><a href="ch-customized-programs.html#fr102" name="f102">102</a></h3>
<p>
二つのロックが取得できない場合には、システムは二つ目のロックが取得できるまで待つのではなく、
最初のロックを解放して、乱数で決定した時間だけ待ち、再度ロックの取得をおこなうようにしてください。
</p>
-<h3><a href="ch-customized-programs.html#fr92" name="f92">92</a></h3>
+<h3><a href="ch-customized-programs.html#fr103" name="f103">103</a></h3>
<p>
これらの関数を使うには、<samp>liblockfile1 (>>1.01)</samp>
への依存を指定する必要があります。
</p>
-<h3><a href="ch-customized-programs.html#fr93" name="f93">93</a></h3>
+<h3><a href="ch-customized-programs.html#fr104" name="f104">104</a></h3>
<p>
メールスプールに関しては、昔から使われている二つのパーミッション手法があります。
@@ -1026,7 +1132,7 @@
このため Debian Policy では両方の手法を許しています。
</p>
-<h3><a href="ch-customized-programs.html#fr94" name="f94">94</a></h3>
+<h3><a href="ch-customized-programs.html#fr105" name="f105">105</a></h3>
<p>
これは仮想パッケージリストにある <samp>xserver</samp>
@@ -1037,7 +1143,7 @@
<samp>Xprt</samp> のようなものは仮想パッケージを提供すべきではありません。
</p>
-<h3><a href="ch-customized-programs.html#fr95" name="f95">95</a></h3>
+<h3><a href="ch-customized-programs.html#fr106" name="f106">106</a></h3>
<p>
新しいターミナルウィンドウは、ウィンドウマネージャを親とする新しいトップレベルの
@@ -1046,7 +1152,7 @@
(MDI) での新しい "ビュー" であってもかまいません。
</p>
-<h3><a href="ch-customized-programs.html#fr96" name="f96">96</a></h3>
+<h3><a href="ch-customized-programs.html#fr107" name="f107">107</a></h3>
<p>
Debian Policy の目的上、ここで X
@@ -1058,7 +1164,7 @@
ウィンドウシステムで使えるようにするツールは、このフォントポリシーに従う必要があります。
</p>
-<h3><a href="ch-customized-programs.html#fr97" name="f97">97</a></h3>
+<h3><a href="ch-customized-programs.html#fr108" name="f108">108</a></h3>
<p>
これは X サーバはローカルのファイルシステムとネットワーク越しの X
@@ -1066,7 +1172,7 @@
パッケージシステムはローカルのファイルシステムを管理する能力しかありません。
</p>
-<h3><a href="ch-customized-programs.html#fr98" name="f98">98</a></h3>
+<h3><a href="ch-customized-programs.html#fr109" name="f109">109</a></h3>
<p>
この機構は app-defaults とは同じではないことに注意してください。 app-defaults
@@ -1074,7 +1180,7 @@
リソースは X サーバに格納され、すべての接続されるクライアントに適用されます。
</p>
-<h3><a href="ch-docs.html#fr99" name="f99">99</a></h3>
+<h3><a href="ch-docs.html#fr110" name="f110">110</a></h3>
<p>
マニュアルページを書くことはそんなに難しくありません。<code><a
@@ -1085,13 +1191,13 @@
ディレクトリも参考になります。
</p>
-<h3><a href="ch-docs.html#fr100" name="f100">100</a></h3>
+<h3><a href="ch-docs.html#fr111" name="f111">111</a></h3>
<p>
訳注:共有ライブラリとは関係がなく、nroff の .so コマンドのこと。
</p>
-<h3><a href="ch-docs.html#fr101" name="f101">101</a></h3>
+<h3><a href="ch-docs.html#fr112" name="f112">112</a></h3>
<p>
これを <code>man</code> でサポートすることは man
@@ -1101,14 +1207,14 @@
このため、このサポートは非推奨にして、将来削除します。
</p>
-<h3><a href="ch-docs.html#fr102" name="f102">102</a></h3>
+<h3><a href="ch-docs.html#fr113" name="f113">113</a></h3>
<p>
<code>man</code> は自動的に UTF-8 が使われているかどうかを判定します。
将来は、すべてのマニュアルページの UTF-8 の使用が必須になります。
</p>
-<h3><a href="ch-docs.html#fr103" name="f103">103</a></h3>
+<h3><a href="ch-docs.html#fr114" name="f114">114</a></h3>
<p>
これを書いた時点では、中国語とポルトガル語がそのような差違のある主な言語です。
@@ -1116,18 +1222,9 @@
がすべて許されています。
</p>
-<h3><a href="ch-docs.html#fr104" name="f104">104</a></h3>
+<h3><a href="ch-docs.html#fr115" name="f115">115</a></h3>
<p>
-以前は各パッケージでメンテナスクリプトから <code>install-info</code>
-を実行して文書をインストールする必要がありました。
-この処理はもう必要ありません。インストールシステムでは、dpkg
-をトリガーとするようになっています。
-</p>
-
-<h3><a href="ch-docs.html#fr105" name="f105">105</a></h3>
-
-<p>
通常は、info 文書は Texinfo ソースから作成されます。 これらの情報を作成された
info 文書に上手く含められない場合、以下のように文書の Texinfo
ソースに以下のコマンドを足して、パッケージビルド時にソースから info
@@ -1141,14 +1238,14 @@
@end direntry
</pre>
-<h3><a href="ch-docs.html#fr106" name="f106">106</a></h3>
+<h3><a href="ch-docs.html#fr116" name="f116">116</a></h3>
<p>
システム管理者が、プログラムが動かなくなることなく、
<code>/usr/share/doc</code> 中のファイルを消せるべきです。
</p>
-<h3><a href="ch-docs.html#fr107" name="f107">107</a></h3>
+<h3><a href="ch-docs.html#fr117" name="f117">117</a></h3>
<p>
この規定は以下に記載した changelog
@@ -1160,7 +1257,7 @@
(同じソースパッケージとバージョンのため) になるでしょう。
</p>
-<h3><a href="ch-docs.html#fr108" name="f108">108</a></h3>
+<h3><a href="ch-docs.html#fr118" name="f118">118</a></h3>
<p>
移行の現在の時点では、<code>/usr/doc/</code>
@@ -1168,7 +1265,7 @@
将来は、シンボリックリンクの作成はバグとなるようポリシーが変更されるでしょう。
</p>
-<h3><a href="ch-docs.html#fr109" name="f109">109</a></h3>
+<h3><a href="ch-docs.html#fr119" name="f119">119</a></h3>
<p>
原則の解説:ここで重要なことは、HTML 形式の文書が一連のパッケージの
@@ -1176,13 +1273,13 @@
主バイナリパッケージ自体に収録されている必要はありません。
</p>
-<h3><a href="ch-docs.html#fr110" name="f110">110</a></h3>
+<h3><a href="ch-docs.html#fr120" name="f120">120</a></h3>
<p>
訳注:本節後半の GPL ほかの項参照
</p>
-<h3><a href="ch-docs.html#fr111" name="f111">111</a></h3>
+<h3><a href="ch-docs.html#fr121" name="f121">121</a></h3>
<p>
具体的には <code>/usr/share/common-licenses/BSD</code>,
@@ -1198,61 +1295,46 @@
<code>/usr/share/common-licenses/GFDL-1.3</code> です。
</p>
-<h3><a href="ch-docs.html#fr112" name="f112">112</a></h3>
+<h3><a href="ch-docs.html#fr122" name="f122">122</a></h3>
<p>
原則の解説: 元が別の名前だからとか HTML 形式だからといって、上流の changelog
を参照するのに二カ所を見なければならないようにすべきではありません。
</p>
-<h3><a href="ap-pkg-scope.html#fr113" name="f113">113</a></h3>
+<h3><a href="ap-pkg-scope.html#fr123" name="f123">123</a></h3>
<p>
<code>dpkg</code> は第一に Debian
を対象として作られているものではありますが、他のシステムでの動作や移植は可能です。
</p>
-<h3><a href="ap-pkg-sourcepkg.html#fr114" name="f114">114</a></h3>
+<h3><a href="ap-pkg-sourcepkg.html#fr124" name="f124">124</a></h3>
<p>
これは、作成されるコントロールファイルが、正しい許可属性を持つようにするためです。
</p>
-<h3><a href="ap-pkg-sourcepkg.html#fr115" name="f115">115</a></h3>
+<h3><a href="ap-pkg-sourcepkg.html#fr125" name="f125">125</a></h3>
<p>
-引数となる実行可能ファイルには、それらの作られるソースツリーのある場所や、バイナリパッケージが作られる前に仮インストールされる構築ツリーのある場所を指定することもできます。
-</p>
-
-<h3><a href="ap-pkg-sourcepkg.html#fr116" name="f116">116</a></h3>
-
-<p>
-これを書いている時点で、このような例としては <code>xmms</code>
-パッケージがあります。xmms 実行形式には Depends が使われており、プラグインには
-Recommends が、また unzip が提供する更に必須性の薄い機能については Suggests
-が使われています。
-</p>
-
-<h3><a href="ap-pkg-sourcepkg.html#fr117" name="f117">117</a></h3>
-
-<p>
現在、ソースパッケージの構築中にハードリンクは検出されません。
ソースパッケージの展開時にのみ検出されます。
</p>
-<h3><a href="ap-pkg-sourcepkg.html#fr118" name="f118">118</a></h3>
+<h3><a href="ap-pkg-sourcepkg.html#fr126" name="f126">126</a></h3>
<p>
将来、ハードリンクが認められるかもしれませんが、それにはとても多くの作業が必要となります。
</p>
-<h3><a href="ap-pkg-sourcepkg.html#fr119" name="f119">119</a></h3>
+<h3><a href="ap-pkg-sourcepkg.html#fr127" name="f127">127</a></h3>
<p>
setgid されたディレクトリは認められています。
</p>
-<h3><a href="ap-pkg-sourcepkg.html#fr120" name="f120">120</a></h3>
+<h3><a href="ap-pkg-sourcepkg.html#fr128" name="f128">128</a></h3>
<p>
ファイル名の変更については特別扱いしません。
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/index.tt2
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/index.tt2 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.html/index.tt2 2014-07-03 03:35:58 UTC (rev 1621)
@@ -103,7 +103,7 @@
<ul>
<li><a href="ch-archive.html#s-main">2.2.1 main アーカイブエリア</a></li>
<li><a href="ch-archive.html#s-contrib">2.2.2 contrib アーカイブエリア</a></li>
- <li><a href="ch-archive.html#s-non-free">2.2.3 non-free アーカイブエリア</a>
+ <li><a href="ch-archive.html#s-non-free">2.2.3 non-free (非フリー) アーカイブエリア</a>
</ul></li>
<li><a href="ch-archive.html#s-pkgcopyright">2.3 著作権に関する考慮</a></li>
<li><a href="ch-archive.html#s-subsections">2.4 セクション</a></li>
@@ -184,9 +184,17 @@
<li><a href="ch-controlfields.html#s-f-Closes">5.6.22 <samp>Closes</samp></a></li>
<li><a href="ch-controlfields.html#s-f-Homepage">5.6.23 <samp>Homepage</samp></a></li>
<li><a href="ch-controlfields.html#s-f-Checksums">5.6.24 <samp>Checksums-Sha1</samp> および <samp>Checksums-Sha256</samp></a></li>
- <li><a href="ch-controlfields.html#s-f-DM-Upload-Allowed">5.6.25 <samp>DM-Upload-Allowed</samp></a>
+ <li><a href="ch-controlfields.html#s5.6.25">5.6.25 <samp>DM-Upload-Allowed</samp></a></li>
+ <li><a href="ch-controlfields.html#s-f-VCS-fields">5.6.26 バージョンコントロールシステム(VCS) フィールド</a></li>
+ <li><a href="ch-controlfields.html#s-f-Package-List">5.6.27 <samp>Package-List</samp></a></li>
+ <li><a href="ch-controlfields.html#s-f-Package-Type">5.6.28 <samp>Package-Type</samp></a></li>
+ <li><a href="ch-controlfields.html#s-f-Dgit">5.6.29 <samp>Dgit</samp></a>
</ul></li>
- <li><a href="ch-controlfields.html#s5.7">5.7 ユーザ定義フィールド</a>
+ <li><a href="ch-controlfields.html#s5.7">5.7 ユーザ定義フィールド</a></li>
+ <li><a href="ch-controlfields.html#s-obsolete-control-data-fields">5.8 廃止になったフィールド</a>
+ <ul>
+ <li><a href="ch-controlfields.html#s-f-DM-Upload-Allowed">5.8.1 <samp>DM-Upload-Allowed</samp></a>
+ </ul></li>
</ul></li>
<li><a href="ch-maintainerscripts.html">6 パッケージ管理スクリプトとインストールの手順</a>
<ul>
@@ -211,7 +219,8 @@
<li><a href="ch-relationships.html#s7.6.1">7.6.1 他のパッケージ中の一部のファイルを上書きする</a></li>
<li><a href="ch-relationships.html#s7.6.2">7.6.2 パッケージ全体の削除を伴う置換</a>
</ul></li>
- <li><a href="ch-relationships.html#s-sourcebinarydeps">7.7 ソースパッケージとバイナリパッケージ間の関連 - <samp>Build-Depends</samp>、<samp>Build-Depends-Indep</samp>、 <samp>Build-Conflicts</samp>、<samp>Build-Conflicts-Indep</samp></a>
+ <li><a href="ch-relationships.html#s-sourcebinarydeps">7.7 ソースパッケージとバイナリパッケージ間の関連 - <samp>Build-Depends</samp>、<samp>Build-Depends-Indep</samp>、 <samp>Build-Conflicts</samp>、<samp>Build-Conflicts-Indep</samp></a></li>
+ <li><a href="ch-relationships.html#s-built-using">7.8 バイナリをビルドする際の追加ソースパッケージ - <samp>Built-Using</samp></a>
</ul></li>
<li><a href="ch-sharedlibs.html">8 共有ライブラリ</a>
<ul>
@@ -223,12 +232,12 @@
<li><a href="ch-sharedlibs.html#s-sharedlibs-static">8.3 スタティックライブラリ</a></li>
<li><a href="ch-sharedlibs.html#s-sharedlibs-dev">8.4 開発用ファイル</a></li>
<li><a href="ch-sharedlibs.html#s-sharedlibs-intradeps">8.5 同一のライブラリのパッケージ間の依存関係</a></li>
- <li><a href="ch-sharedlibs.html#s-sharedlibs-shlibdeps">8.6 ライブラリと他のパッケージとの依存関係の扱い - <samp>shlibs</samp> システム</a>
+ <li><a href="ch-sharedlibs.html#s-sharedlibs-depends">8.6 ライブラリと他のパッケージとの依存関係の扱い</a>
<ul>
- <li><a href="ch-sharedlibs.html#s8.6.1">8.6.1 システム中の <samp>shlibs</samp> ファイル</a></li>
- <li><a href="ch-sharedlibs.html#s8.6.2">8.6.2 <code>dpkg-shlibdeps</code> と <code>shlibs</code> の使い方</a></li>
- <li><a href="ch-sharedlibs.html#s-shlibs">8.6.3 <code>shlibs</code> ファイルフォーマット</a></li>
- <li><a href="ch-sharedlibs.html#s8.6.4">8.6.4 <code>shlibs</code> ファイルを提供する</a>
+ <li><a href="ch-sharedlibs.html#s-dpkg-shlibdeps">8.6.1 共有ライブラリでの依存関係の作成</a></li>
+ <li><a href="ch-sharedlibs.html#s-sharedlibs-updates">8.6.2 共有ライブラリの ABI の変更</a></li>
+ <li><a href="ch-sharedlibs.html#s-sharedlibs-symbols">8.6.3 <samp>symbols</samp> システム</a></li>
+ <li><a href="ch-sharedlibs.html#s-sharedlibs-shlibdeps">8.6.4 <samp>shlibs</samp> システム</a>
</ul></li>
</ul></li>
<li><a href="ch-opersys.html">9 オペレーティングシステム</a>
@@ -262,7 +271,11 @@
<li><a href="ch-opersys.html#s-mime">9.7 マルチメディアハンドラ</a></li>
<li><a href="ch-opersys.html#s9.8">9.8 キーボード設定</a></li>
<li><a href="ch-opersys.html#s9.9">9.9 環境変数</a></li>
- <li><a href="ch-opersys.html#s-doc-base">9.10 doc-base を用いて文書を登録する</a>
+ <li><a href="ch-opersys.html#s-doc-base">9.10 doc-base を用いて文書を登録する</a></li>
+ <li><a href="ch-opersys.html#s-alternateinit">9.11 代替 init システム</a>
+ <ul>
+ <li><a href="ch-opersys.html#s-upstart">9.11.1 upstart によるイベントベースのブート</a>
+ </ul></li>
</ul></li>
<li><a href="ch-files.html">10 ファイル</a>
<ul>
@@ -285,6 +298,7 @@
<ul>
<li><a href="ch-files.html#s10.9.1">10.9.1 <code>dpkg-statoverride</code> の使い方</a>
</ul></li>
+ <li><a href="ch-files.html#s-filenames">10.10 ファイル名</a>
</ul></li>
<li><a href="ch-customized-programs.html">11 プログラムの個々の設定</a>
<ul>
Modified: www/trunk/src/community/devel/debian-policy-ja/policy.ja.sgml
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/policy.ja.sgml 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/policy.ja.sgml 2014-07-03 03:35:58 UTC (rev 1621)
@@ -2,7 +2,7 @@
<!-- include version information so we don't have to hard code it
within the document -->
<!-- 文書の中に直接書き込まなくても良いように、
- ここでバージョン情報を挿入する。現在 3.9.3.1 ベース-->
+ ここでバージョン情報を挿入する。現在 3.9.5.0 ベース-->
<!--
<!entity % versiondata SYSTEM "version.ent"> %versiondata;
-->
@@ -188,7 +188,7 @@
that can be made, but one needs to select one of
these options for inter-operability. The version
number format is one example.-->
- いくつか技術的に取り得る選択肢があり、相互互換性のためそのうちの一つを選ばなければならない場合です。
+ 技術的には取り得る選択肢はいくつかありますが、相互互換性のためそのうちの一つを選ばなければならない場合です。
バージョン番号の形式などがその例です。
</item>
</taglist>
@@ -280,7 +280,21 @@
アーカイブへの収録以外の方法で配布するような、
あるいはお手元で使うだけで配布はしないといったパッケージを作成する際にも役に立つでしょう。
</p>
+
+ <p><!--
+ udebs (stripped-down binary packages used by the Debian Installer) do
+ not comply with all of the requirements discussed here. See the
+ <url name="Debian Installer internals manual"
+ id="http://d-i.alioth.debian.org/doc/internals/ch03.html"> for more
+ information about them.-->
+ udebs (Debian インストーラで用いる機能限定版のバイナリパッケージ)
+ は、以下で説明されている要求事項に必ずしも従っていません。詳細は
+ <url name="Debian Installer internals manual"
+ id="http://d-i.alioth.debian.org/doc/internals/ch03.html">
+ を参照してください。
+ </p>
</sect>
+
<sect>
<!--
<heading>New versions of this document</heading>
@@ -450,7 +464,8 @@
belong in the Policy, such as best practices for developers.-->
これらポリシーの一部を担う文書とは別に、Debian Developer's Reference
があります。こちらの方の文書は Debian
- の開発者の手順とリソースについて記載されたものですが、規範となるものでは <em>ありません</em>。
+ の開発者の手順とリソースについて記載されたものですが、規範となるものでは
+ <em>ありません</em>。
むしろポリシーに含まれない内容、例えば好ましい開発者の作業例、などを記載したものです。
</p>
@@ -533,7 +548,7 @@
-->
Debian システムは <em>パッケージ</em> の集合体として
管理、配布されています。Debian には非常に数多くの
- (現在優に 15000 個以上の)
+ (現在 15000 個を優に上回る)
パッケージが含まれますので、取り扱いを簡略化するためパッケージは
<em>セクション</em> と <em>プライオリティ</em>
によって分類されています。
@@ -592,7 +607,7 @@
The <em>main</em> archive area forms the <em>Debian distribution</em>.
-->
<em>Debian ディストリビューション</em> とは <em>main</em>
- アーカイブエリアのことです。
+ アーカイブエリアからなります。
</p>
<p>
<!--
@@ -875,7 +890,8 @@
packages intended to work with the Debian distribution, but
which require software outside of the distribution to either
build or function.-->
- <em>contrib</em> アーカイブエリアには、Debian ディストリビューションで利用するための追加ソフトウェアで、ビルドや動作にディストリビューション外のソフトウェアを必要とするものが収録されます。
+ <em>contrib</em> アーカイブエリアには、Debian
+ ディストリビューションで利用するための追加ソフトウェアで、ビルドや動作にディストリビューション外のソフトウェアを必要とするものが収録されます。
</p>
<p>
@@ -942,7 +958,7 @@
<!--
<heading>The non-free archive area</heading>
-->
- <heading>non-free アーカイブエリア</heading>
+ <heading>non-free (非フリー) アーカイブエリア</heading>
<p><!--
The <em>non-free</em> archive area contains supplemental
@@ -1191,21 +1207,61 @@
list of sections. At present, they are:-->
Debian アーカイブメンテナがセクションの公式リストを提供します。
現時点では、それらは下記の通りです。
- <em>admin</em>, <em>cli-mono</em>, <em>comm</em>, <em>database</em>,
- <em>devel</em>, <em>debug</em>, <em>doc</em>, <em>editors</em>,
- <em>education</em>, <em>electronics</em>, <em>embedded</em>,
- <em>fonts</em>, <em>games</em>, <em>gnome</em>, <em>graphics</em>,
- <em>gnu-r</em>, <em>gnustep</em>, <em>hamradio</em>, <em>haskell</em>,
- <em>httpd</em>, <em>interpreters</em>, <em>introspection</em>,
- <em>java</em>, <em>kde</em>, <em>kernel</em>, <em>libs</em>,
- <em>libdevel</em>, <em>lisp</em>, <em>localization</em>,
- <em>mail</em>, <em>math</em>, <em>metapackages</em>, <em>misc</em>,
- <em>net</em>, <em>news</em>, <em>ocaml</em>, <em>oldlibs</em>,
- <em>otherosfs</em>, <em>perl</em>, <em>php</em>, <em>python</em>,
- <em>ruby</em>, <em>science</em>, <em>shells</em>, <em>sound</em>,
- <em>tex</em>, <em>text</em>, <em>utils</em>, <em>vcs</em>,
- <em>video</em>, <em>web</em>, <em>x11</em>, <em>xfce</em>,
- <em>zope</em>
+admin,
+cli-mono,
+comm,
+database,
+debug,
+devel,
+doc,
+editors,
+education,
+electronics,
+embedded,
+fonts,
+games,
+gnome,
+gnu-r,
+gnustep,
+graphics,
+hamradio,
+haskell,
+httpd,
+interpreters,
+introspection,
+java,
+kde,
+kernel,
+libdevel,
+libs,
+lisp,
+localization,
+mail,
+math,
+metapackages,
+misc,
+net,
+news,
+ocaml,
+oldlibs,
+otherosfs,
+perl,
+php,
+python,
+ruby,
+science,
+shells,
+sound,
+tasks,
+tex,
+text,
+utils,
+vcs,
+video,
+web,
+x11,
+xfce,
+zope.
<!--. The additional section <em>debian-installer</em>
contains special packages used by the installer and is not used
for normal Debian packages.-->
@@ -1404,10 +1460,11 @@
Among those files are the package maintainer scripts
and <file>control</file>, the <qref id="binarycontrolfiles">binary
package control file</qref> that contains the control fields for
- the package. Other control information files
- include <qref id="sharedlibs-shlibdeps">the <file>shlibs</file>
- file</qref> used to store shared library dependency information
- and the <file>conffiles</file> file that lists the package's
+ the package. Other control information files include
+ the <qref id="sharedlibs-symbols"><file>symbols</file> file</qref>
+ or <qref id="sharedlibs-shlibdeps"><file>shlibs</file> file</qref>
+ used to store shared library dependency information and
+ the <file>conffiles</file> file that lists the package's
configuration files (described in <ref id="config-files">).-->
<tt>.deb</tt> パッケージは二つのファイルの集合が含まれます。
パッケージインストールの際にシステムにインストールされる一連のファイル群と、
@@ -1417,6 +1474,7 @@
ファイル、パッケージのコントロールフィールドを収録した
<qref id="binarycontrolfiles">バイナリパッケージコントロールファイル</qref>
などがあります。その他の制御情報ファイルには、共有ライブラリの依存情報を格納するのに用いる
+ <qref id="sharedlibs-symbols"><file>symbols</file> ファイル</qref> と
<qref id="sharedlibs-shlibdeps"><file>shlibs</file> ファイル</qref>
や、パッケージ設定ファイルを列挙した <file>conffiles</file>
(<ref id="config-files"> で詳説) などがあります。
@@ -2004,13 +2062,13 @@
<!--
Essential is defined as the minimal set of functionality that
must be available and usable on the system at all times, even
- when packages are in an unconfigured (but unpacked) state.
+ when packages are in the "Unpacked" state.
Packages are tagged <tt>essential</tt> for a system using the
<tt>Essential</tt> control field. The format of the
<tt>Essential</tt> control field is described in <ref
id="f-Essential">.
-->
- Essential は、パッケージ群が展開されてはいるが未設定な状態でも、
+ Essential は、パッケージ群が展開状態 (Unpacked) でも、
システム上で提供され使用できなければならない最小の機能の集合として定義されています。
そのようなパッケージには <tt>Essential</tt> コントロールフィールドで
<tt>Essential</tt> 指定が付加されています。<tt>Essential</tt>
@@ -2047,7 +2105,7 @@
appropriate.-->
dpkg は <tt>Essential</tt> パッケージが未設定な状態でも他のパッケージのアップグレードを止めることはありませんので、
<tt>Essential</tt> パッケージはすべて、未設定状態でも基本機能はすべて提供している必要があります。
- あるパッケージがこの条件を満たせない場合にはこのパッケージに
+ あるパッケージがこの条件を満たせない場合には、そのパッケージに
<tt>Essential</tt> 指定を行ってはいけませんし、そのパッケージに依存する他のパッケージは明示的に適切な依存関係フィールドを与えなければいけません。
</p>
<p><!--
@@ -2092,15 +2150,15 @@
The package installation scripts should avoid producing
output which is unnecessary for the user to see and
should rely on <prgn>dpkg</prgn> to stave off boredom on
- the part of a user installing many packages. This means,
- amongst other things, using the <tt>--quiet</tt> option on
- <prgn>install-info</prgn>.
+ the part of a user installing many packages. This means,
+ amongst other things, not passing the <tt>--verbose</tt>
+ option to <prgn>update-alternatives</prgn>.
-->
パッケージのインストールスクリプトでは、ユーザにとって見る必要がない情報を出力することを避けるべきです。
また、大量のパッケージをインストールする際にユーザが退屈するのを避けるのも、<prgn>dpkg</prgn>
に任せておくべきです。
- 中でも、<prgn>install-info</prgn> を使うときは
- <tt>--quiet</tt> オプションを使いましょう。
+ 中でも、<prgn>update-alternatives</prgn> に
+ <tt>--verbose</tt> オプションを渡さないようにしましょう。
</p>
<p>
<!--
@@ -2134,24 +2192,25 @@
</p>
<p>
<!--
- All packages which supply an instance of a common command
- name (or, in general, filename) should generally use
- <prgn>update-alternatives</prgn>, so that they may be
- installed together. If <prgn>update-alternatives</prgn>
- is not used, then each package must use <tt>Conflicts</tt>
- to ensure that other packages are de-installed. (In this
- case, it may be appropriate to specify a conflict against
- earlier versions of something that previously did not use
- <prgn>update-alternatives</prgn>; this is an exception to
- the usual rule that versioned conflicts should be
- avoided.)
+ All packages which supply an instance of a common command
+ name (or, in general, filename) should generally use
+ <prgn>update-alternatives</prgn>, so that they may be
+ installed together. If <prgn>update-alternatives</prgn>
+ is not used, then each package must use
+ <tt>Conflicts</tt> to ensure that other packages are
+ removed. (In this case, it may be appropriate to
+ specify a conflict against earlier versions of something
+ that previously did not use
+ <prgn>update-alternatives</prgn>; this is an exception to
+ the usual rule that versioned conflicts should be
+ avoided.)
-->
「共通の」コマンド名 (あるいは、一般的にファイル名)
の具体的な実装を提供するすべてのパッケージは
<prgn>update-alternatives</prgn>
を使って同時に (複数の実装が) インストールできるようにすべきです。
(まだ) <prgn>update-alternatives</prgn>
- を使っていない場合、このような共有コマンド名を提供する他のパッケージを強制的にインストール解除するためには
+ を使っていない場合、このような共有コマンド名を提供する他のパッケージの削除を保証するために
<tt>Conflicts</tt> を使わなければいけません
(この場合に限って、以前の <prgn>update-alternatives</prgn>
を使っていなかったバージョンに対する Conflict
@@ -2215,7 +2274,7 @@
<file>config</file> ファイルはパッケージ設定のための追加のメンテナスクリプトで、
<file>templates</file> にはユーザ問い合わせ用のテンプレートが収録されています。
<prgn>config</prgn> は、<prgn>preinst</prgn>
- の前、かつパッケージがアンパックされる前、かつ
+ の前、かつパッケージが展開 (Unpacked) される前、かつ
依存関係 (dependency) および先行依存関係 (pre-dependency)
が満たされる前に走ることがありますので、
<em>Essential</em> パッケージに属するツールのみを
@@ -2571,7 +2630,7 @@
GNU-style <prgn>configure</prgn> scripts are used, you
should edit the <file>.in</file> files rather than editing the
<prgn>Makefile</prgn> directly. This allows the user to
- reconfigure the package if necessary. You should
+ reconfigure the package if necessary. You shou ld
<em>not</em> configure the package and edit the generated
<prgn>Makefile</prgn>! This makes it impossible for
someone else to later reconfigure the package without
@@ -2745,7 +2804,7 @@
/closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i
</example>
Then all of the bug numbers listed will be closed by the
- archive maintenance script (<prgn>katie</prgn>) using the
+ archive maintenance software (<prgn>dak</prgn>) using the
<var>version</var> of the changelog entry.
</footnote>
This information is conveyed via the <tt>Closes</tt> field
@@ -2760,8 +2819,8 @@
/closes:\s*(?:bug)?\#?\s?\d+(?:,\s*(?:bug)?\#?\s?\d+)*/i
</example>
列挙された一つまたは複数のバグ番号は、changelog エントリの
- <var>version</var> を使ってアーカイブメンテナスクリプト
- (<prgn>katie</prgn>) で閉じられます。
+ <var>version</var> を使ってアーカイブメンテナソフトウェア
+ (<prgn>dak</prgn>) で閉じられます。
</p></footnote>
の文字列を含めることで、パッケージが Debian
アーカイブに収録された時点でバグが自動的に閉じられます。
@@ -3058,11 +3117,13 @@
<p><!--
The following targets are required and must be implemented
by <file>debian/rules</file>: <tt>clean</tt>, <tt>binary</tt>,
- <tt>binary-arch</tt>, <tt>binary-indep</tt>, and <tt>build</tt>.
+ <tt>binary-arch</tt>, <tt>binary-indep</tt>, <tt>build</tt>,
+ <tt>build-arch</tt> and <tt>build-indep</tt>.
These are the targets called by <prgn>dpkg-buildpackage</prgn>.-->
以下のターゲットは、<file>debian/rules</file> に必要で、実装されていなければいけません。
- <tt>clean</tt>, <tt>binary</tt>,
- <tt>binary-arch</tt>, <tt>binary-indep</tt>, および <tt>build</tt>。
+ <tt>binary-arch</tt>, <tt>binary-indep</tt>, <tt>build</tt>
+ <tt>build-arch</tt> および <tt>build-indep</tt>。
これらのターゲットは、<prgn>dpkg-buildpackage</prgn> から呼ばれます。
</p>
@@ -3190,86 +3251,51 @@
</p>
</item>
- <tag><tt>build-arch</tt> <!--(optional),-->(オプション)
- <tt>build-indep</tt> <!--(optional)-->(オプション)
+ <tag><tt>build-arch</tt> <!--(required),-->(必須)
+ <tt>build-indep</tt> <!--(required)-->(必須)
</tag>
<item>
- <p>
- <!--
- A package may also provide one or both of the targets
- <tt>build-arch</tt> and <tt>build-indep</tt>.
- The <tt>build-arch</tt> target, if provided, should
+ <p><!--
+ The <tt>build-arch</tt> target must
perform all the configuration and compilation required for
producing all architecture-dependant binary packages
(those packages for which the body of the
<tt>Architecture</tt> field in <tt>debian/control</tt> is
not <tt>all</tt>). Similarly, the <tt>build-indep</tt>
- target, if provided, should perform all the configuration
+ target must perform all the configuration
and compilation required for producing all
architecture-independent binary packages (those packages
for which the body of the <tt>Architecture</tt> field
- in <tt>debian/control</tt> is <tt>all</tt>).-->
- パッケージは <tt>build-arch</tt> と <tt>build-indep</tt>
- の一方あるいは両方のターゲットを指定することが出来ます。
- <tt>build-arch</tt> ターゲットが指定された場合、これはアーキテクチャ依存のバイナリパッケージ
+ in <tt>debian/control</tt> is <tt>all</tt>).
+ The <tt>build</tt> target
+ should either depend on those targets or take the same
+ actions as invoking those targets would perform.<footnote>
+ This split allows binary-only builds to not install the
+ dependencies required for the <tt>build-indep</tt>
+ target and skip any resource-intensive build tasks that
+ are only required when building architecture-independent
+ binary packages.
+ </footnote>
+ -->
+ <tt>build-arch</tt> ターゲットでは、アーキテクチャ依存のバイナリパッケージ
(これらのパッケージには、<tt>debian/control</tt> の
<tt>Architecture</tt> フィールドに <tt>all</tt>
以外が指定されています)
- を作成するのに必要なすべての非対話型の処理を実行します。
- 同様に <tt>build-indep</tt> ターゲットが指定された場合、これはアーキテクチャ非依存のバイナリパッケージ
+ を作成するのに必要なすべての設定とコンパイル処理を実行しなければいけません。
+ 同様に <tt>build-indep</tt> ターゲットは、アーキテクチャ非依存のバイナリパッケージ
(これらのパッケージでは、<tt>debian/control</tt> の
<tt>Architecture</tt> フィールドの値は <tt>all</tt> です)
- を作成するのに必要なすべての非対話型の処理を実行します。
- </p>
-
- <p><!--
- If <tt>build-arch</tt> or <tt>build-indep</tt> targets are
- provided in the rules file, the <tt>build</tt> target
- should either depend on those targets or take the same
- actions as invoking those targets would perform.<footnote>
- The intent of this split is so that binary-only builds
- need not install the dependencies required for
- the <tt>build-indep</tt> target. However, this is not
- yet used in practice since <tt>dpkg-buildpackage
- -B</tt>, and therefore the autobuilders,
- invoke <tt>build</tt> rather than <tt>build-arch</tt>
- due to the difficulties in determining whether the
- optional <tt>build-arch</tt> target exists.
- </footnote>
- -->
- <tt>build-arch</tt> または <tt>build-indep</tt> が rules
- ファイルに指定されている場合、<tt>build</tt>
- ターゲットは、それらに依存関係を指定するか、
- それらのターゲットを呼んだ時に行われる動作に対応した何らかの処理を行うべきです<footnote>
- この分割の意図は、バイナリのみのビルド時に <tt>build-indep</tt>
- ターゲットで必要になる依存パッケージのインストールを行わなくてよいようにするためです。
- 但し、この条件はまだ実運用に入っていません。それは
- <tt>dpkg-buildpackage -B</tt> が、そしてオートビルダがオプションの
- <tt>build-arch</tt> ターゲットが存在するかどうかの難しい判定を回避するため、
- <tt>build-arch</tt> ではなく <tt>build</tt>
- を呼ぶようになっているためです。
+ を作成するのに必要なすべての設定とコンパイル処理を実行しなければいけません。
+ <tt>build</tt> ターゲットは、それらのターゲットに依存関係を指定するか、
+ それらのターゲットを呼んだ時に行われる動作と同じ処理を行うべきです<footnote>
+ この分割により、バイナリのみのビルド時に <tt>build-indep</tt>
+ ターゲットで必要になる依存パッケージのインストールを行わなくてよく、
+ またアーキテクチャに独立のバイナリパッケージをビルドする際にのみ必要な、
+ リソースを多量に消費するビルドタスクを省けるようになります。
</footnote>。
</p>
<p>
<!--
- If one or both of the targets <tt>build-arch</tt> and
- <tt>build-indep</tt> are not provided, then invoking
- <file>debian/rules</file> with one of the not-provided
- targets as arguments should produce a exit status code
- of 2. Usually this is provided automatically by make
- if the target is missing.
- -->
- <tt>build-arch</tt> と <tt>build-indep</tt>
- の一方あるいはいずれも指定されていない場合、
- <file>debian/rules</file>
- を存在しないターゲットを指定して起動した際にはステータスコード
- 2 を返すべきです。
- 通常、make
- はターゲットが存在しない場合、自動的に上記の結果を返します。
- </p>
-
- <p>
- <!--
The <tt>build-arch</tt> and <tt>build-indep</tt> targets
must not do anything that might require root privilege.
-->
@@ -3472,7 +3498,7 @@
<p><!--
The architectures we build on and build for are determined
by <prgn>make</prgn> variables using the
- utility <qref id="pkg-dpkg-architecture"><prgn>dpkg-architecture</prgn></qref>.
+ utility <prgn>dpkg-architecture</prgn>.
You can determine the Debian architecture and the GNU style
architecture specification string for the build architecture as
well as for the host architecture. The build architecture is
@@ -3484,8 +3510,8 @@
architecture on machines of a different architecture).
-->
パッケージを実際にビルドするマシンや、インストールの対象となるマシンのアーキテクチャは、
- <qref id="pkg-dpkg-architecture"><prgn>dpkg-architecture</prgn></qref>
- を使って <prgn>make</prgn> 変数を設定することによって決定されます。
+ <prgn>dpkg-architecture</prgn> ユーティリティを使って
+ <prgn>make</prgn> 変数を設定することによって決定されます。
これにより、ホストアーキテクチャだけでなくパッケージのビルドをするマシン
アーキテクチャの Debian 形式のアーキテクチャ指定文字列と
GNU 形式のアーキテクチャ指定文字列を得ることができます。
@@ -4035,12 +4061,14 @@
composed of US-ASCII characters excluding control characters,
space, and colon (i.e., characters in the ranges 33-57 and
59-126, inclusive). Field names must not begin with the comment
- character, <tt>#</tt>.-->
+ character, <tt>#</tt>, nor with the hyphen character, <tt>-</tt>.
+ -->
一つ一つの段落は、フィールドと値の連続したものです。
個々のフィールドは、名前とそれに続くコロンとデータ/値によって構成されます。
フィールド名は制御文字、空白とコロンを除く ASCII 文字から構成されます
(つまり、33-57 または 59-126 までの間でなければいけません)。
- フィールド名は、コメント文字 <tt>#</tt> で始まってはいけません。
+ フィールド名は、コメント文字 <tt>#</tt> やハイフン文字
+ <tt>-</tt> で始まってはいけません。
</p>
<p><!--
@@ -4206,7 +4234,6 @@
<item><qref id="f-Maintainer"><tt>Maintainer</tt></qref>
<!-- (mandatory)-->(必須)</item>
<item><qref id="f-Uploaders"><tt>Uploaders</tt></qref></item>
- <item><qref id="f-DM-Upload-Allowed"><tt>DM-Upload-Allowed</tt></qref></item>
<item><qref id="f-Section"><tt>Section</tt></qref>
<!-- (recommended)-->(推奨)</item>
<item><qref id="f-Priority"><tt>Priority</tt></qref>
@@ -4216,6 +4243,7 @@
<item><qref id="f-Standards-Version"><tt>Standards-Version</tt>
</qref><!-- (recommended)-->(推奨)</item>
<item><qref id="f-Homepage"><tt>Homepage</tt></qref></item>
+ <item><qref id="f-VCS-fields"><tt>Vcs-Browser</tt>, <tt>Vcs-Git</tt> <!--, et al.-->ほか</qref></item>
</list>
</p>
<p><!--
@@ -4236,6 +4264,8 @@
<item><qref id="f-Description"><tt>Description</tt></qref>
<!-- (mandatory)-->(必須)</item>
<item><qref id="f-Homepage"><tt>Homepage</tt></qref></item>
+ <item><qref id="built-using"><tt>Built-Using</tt></qref></item>
+ <item><qref id="f-Package-Type"><tt>Package-Type</tt></qref></item>
</list>
</p>
@@ -4319,6 +4349,7 @@
<item><qref id="f-Description"><tt>Description</tt></qref>
<!-- (mandatory)-->(必須)</item>
<item><qref id="f-Homepage"><tt>Homepage</tt></qref></item>
+ <item><qref id="built-using"><tt>Built-Using</tt></qref></item>
</list>
</p>
</sect>
@@ -4347,16 +4378,19 @@
<item><qref id="f-Maintainer"><tt>Maintainer</tt></qref>
<!-- (mandatory)-->(必須)</item>
<item><qref id="f-Uploaders"><tt>Uploaders</tt></qref></item>
- <item><qref id="f-DM-Upload-Allowed"><tt>DM-Upload-Allowed</tt></qref></item>
<item><qref id="f-Homepage"><tt>Homepage</tt></qref></item>
+ <item><qref id="f-VCS-fields"><tt>Vcs-Browser</tt>, <tt>Vcs-Git</tt> <!--, et al.-->ほか</qref></item>
+ <item><qref id="f-Dgit"><tt>Dgit</tt></qref></item>
<item><qref id="f-Standards-Version"><tt>Standards-Version</tt>
</qref><!-- (recommended)-->(推奨)</item>
<item><qref id="sourcebinarydeps"><tt>Build-Depends</tt>
<!-- et al-->
ほか</qref></item>
+ <item><qref id="f-Package-List"><tt>Package-List</tt></qref>
+ <!-- (recommended)-->(推奨)</item>
<item><qref id="f-Checksums"><tt>Checksums-Sha1</tt>
<!--and-->および <tt>Checksums-Sha256</tt></qref>
- <!-- (recommended)-->(推奨)</item>
+ <!-- (mandatory)-->(必須)</item>
<item><qref id="f-Files"><tt>Files</tt></qref>
<!-- (mandatory)-->(必須)</item>
</list>
@@ -4436,7 +4470,7 @@
<!-- (mandatory)-->(必須)</item>
<item><qref id="f-Checksums"><tt>Checksums-Sha1</tt>
および <tt>Checksums-Sha256</tt></qref>
- <!-- (recommended)-->(推奨)</item>
+ <!-- (mandatory)-->(必須)</item>
<item><qref id="f-Files"><tt>Files</tt></qref>
<!-- (mandatory)-->(必須)</item>
</list>
@@ -5812,45 +5846,171 @@
</p>
<p><!--
- In the <file>.dsc</file> file, these fields should list all
+ In the <file>.dsc</file> file, these fields list all
files that make up the source package. In
- the <file>.changes</file> file, these fields should list all
+ the <file>.changes</file> file, these fields list all
files being uploaded. The list of files in these fields
must match the list of files in the <tt>Files</tt> field.
-->
- <file>.dsc</file> ファイルには、これらのフィールドにはソースパッケージを構成する全てのファイルを列挙すべきです。
- <file>.changes</file> ファイルには、これらのフィールドにはアップロードしようとする全てのファイルを列挙すべきです。
+ <file>.dsc</file> ファイルには、これらのフィールドにはソースパッケージを構成する全てのファイルを列挙します。
+ <file>.changes</file> ファイルには、これらのフィールドにはアップロードしようとする全てのファイルを列挙します。
これらのフィールド中のファイルのリストは、<tt>Files</tt>
フィールドのファイルのリストと一致している必要があります。
</p>
</sect1>
- <sect1 id="f-DM-Upload-Allowed">
+ <sect1>
<heading><tt>DM-Upload-Allowed</tt></heading>
<p><!--
- Indicates that Debian Maintainers may upload this package to
- the Debian archive. The only valid value is <tt>yes</tt>. If
- the field <tt>DM-Upload-Allowed: yes</tt> is present in the
- source section of the source control file of the most recent
- version of a package in unstable or experimental, the Debian
- archive will accept uploads of this package signed with a key
- in the Debian Maintainer keyring. See the General
- Resolution <url id="http://www.debian.org/vote/2007/vote_003"
- name="Endorse the concept of Debian Maintainers"> for more
- details.-->
- Debian メンテナに、対象パッケージを Debian アーカイブにアップロードして良いことを指示します。
- このフィールドの有効な値は <tt>yes</tt> のみです。
- もし、不安定版または実験版中のパッケージの最新版で、フィールド
- <tt>DM-Upload-Allowed:yes</tt> がソースコントロールファイルのソースセクションに存在する場合は、
- Debian メンテナキーリング内の鍵で署名されたアップロードを
- Debian アーカイブは受け入れます。
- この件の詳細は、一般決議 <url id="http://www.debian.org/vote/2007/vote_003"
- name="Endorse the concept of Debian Maintainers (Debian メンテナの考え方を裏書する)">
- を参照ください。
+ Obsolete, see <qref id="f-DM-Upload-Allowed">below</qref>.
+ -->
+ 廃止になりました。<qref id="f-DM-Upload-Allowed">以下を</qref>参照ください。
</p>
</sect1>
+
+ <sect1 id="f-VCS-fields">
+ <!--<heading>Version Control System (VCS) fields</heading>-->
+ <heading>バージョンコントロールシステム(VCS) フィールド</heading>
+
+ <p><!--
+ Debian source packages are increasingly developed using VCSs. The
+ purpose of the following fields is to indicate a publicly accessible
+ repository where the Debian source package is developed.
+ -->
+ VCS を使って開発される Debian ソースパッケージが増えてきています。
+ 以下のフィールドは、Debian
+ ソースパッケージの開発が行われている一般からアクセス可能なリポジトリを示すために用いられます。
+
+ <taglist>
+ <tag><tt>Vcs-Browser</tt></tag>
+ <item>
+ <p><!--
+ URL of a web interface for browsing the repository.-->
+ リボジトリのブラウズのためのウェブインターフェースの URL です。
+ </p>
+ </item>
+
+ <tag>
+ <tt>Vcs-Arch</tt>, <tt>Vcs-Bzr</tt> (Bazaar), <tt>Vcs-Cvs</tt>,
+ <tt>Vcs-Darcs</tt>, <tt>Vcs-Git</tt>, <tt>Vcs-Hg</tt>
+ (Mercurial), <tt>Vcs-Mtn</tt> (Monotone), <tt>Vcs-Svn</tt>
+ (Subversion)
+ </tag>
+ <item>
+ <p><!--
+ The field name identifies the VCS. The field's value uses the
+ version control system's conventional syntax for describing
+ repository locations and should be sufficient to locate the
+ repository used for packaging. Ideally, it also locates the
+ branch used for development of new versions of the Debian
+ package.
+ -->
+ フィールド名で VCS の種別を識別します。
+ フィールドの値は各バージョンコントロールシステムで一般的なリポジトリの位置を示す書式で、パッケージングのためのリポジトリの位置を決めるのに十分な値にすべきです。
+ 理想的には、この値は Debian
+ パッケージの新版の開発で用いているブランチの位置も示しているのが望ましいです。
+ </p>
+ <p><!--
+ In the case of Git, the value consists of a URL, optionally
+ followed by the word <tt>-b</tt> and the name of a branch in
+ the indicated repository, following the syntax of the
+ <tt>git clone</tt> command. If no branch is specified, the
+ packaging should be on the default branch.
+ -->
+ Git の場合、この値は URL からなり、オプションとして <tt>-b</tt>
+ という語と、示されたレポジトリのブランチ名が続きます。これは <tt>git clone</tt>
+ コマンドの書式に沿ったものです。
+ ブランチが指定されない場合、パッケージングは既定のブランチで行われているべきです。
+ </p>
+ <p><!--
+ More than one different VCS may be specified for the same
+ package.
+ -->
+ ひとつのパッケージで、ひとつ以上の VCS を指定しても構いません。
+ </p>
+ </item>
+ </taglist>
+ </p>
+ </sect1>
+
+ <sect1 id="f-Package-List">
+ <heading><tt>Package-List</tt></heading>
+
+ <p><!--
+ Multiline field listing all the packages that can be built from
+ the source package, considering every architecture. The first line
+ of the field value is empty. Each one of the next lines describes
+ one binary package, by listing its name, type, section and priority
+ separated by spaces. Fifth and subsequent space-separated items
+ may be present and parsers must allow them. See the
+ <qref id="f-Package-Type">Package-Type</qref> field for a list of
+ package types.
+ -->
+ このフィールドは複数行を許す書式で、当該ソースパッケージから作成されるすべてのパッケージを、すべてのアーキテクチャを考慮して列挙します。
+ このフィールドの最初の行の値は空です。
+ 次の行からは順に各行に一つのバイナリパッケージが、名前、タイプ、セクション、プライオリティの順に空白区切りで列挙されます。
+ 5 番目、およびそれ以降の空白区切りの要素を記載可能で、このフィールドのパーザはそれを許すようにしなければいけません。
+ パッケージタイプについては <qref id="f-Package-Type">Package-Type</qref>
+ フィールドを参照してください。
+
+ </p>
+ </sect1>
+
+ <sect1 id="f-Package-Type">
+ <heading><tt>Package-Type</tt></heading>
+
+ <p><!--
+ Simple field containing a word indicating the type of package:
+ <tt>deb</tt> for binary packages and <tt>udeb</tt> for micro binary
+ packages. Other types not defined here may be indicated. In
+ source package control files, the <tt>Package-Type</tt> field
+ should be omitted instead of giving it a value of <tt>deb</tt>, as
+ this value is assumed for paragraphs lacking this field.
+ -->
+ 1 語からなる単純なフィールドで、パッケージのタイプを記載します。
+ バイナリパッケージに対しては <tt>deb</tt>
+ を、マイクロバイナリパッケージには <tt>udeb</tt> を指定します。
+ ここで定義されていない他のタイプも記載可能です。
+ ソースパッケージコントロールファイルでは、<tt>Package-Type</tt>
+ には <tt>deb</tt> を指定せず、省略すべきです。
+ これは、このフィールドを省略した場合、<tt>deb</tt>
+ とみなされるためです。
+ </p>
+ </sect1>
+
+ <sect1 id="f-Dgit">
+ <heading><tt>Dgit</tt></heading>
+
+ <p><!--
+ Folded field containing a single git commit hash, presented in
+ full, followed optionally by whitespace and other data to be
+ defined in future extensions.
+ -->
+ 折り返しされるフィールドで、git のコミットハッシュ (full 形式) 1
+ つに、将来の拡張時に定義される予定の空白区切りのデータが続きます。
+ </p>
+
+ <p><!--
+ Declares that the source package corresponds exactly to a
+ referenced commit in a Git repository available at the canonical
+ location called <em>dgit-repos</em>, used by <prgn>dgit</prgn>, a
+ bidirectional gateway between the Debian archive and Git. The
+ commit is reachable from at least one reference whose name matches
+ <tt>refs/dgit/*</tt>. See the manual page of <prgn>dgit</prgn> for
+ further details.-->
+ ソースパッケージが、<em>dgit-repos</em>
+ という名称の基準となる場所で提供される Git
+ リポジトリにて、ここで記載されたコミットと正確に一致しているということを宣言します。
+ 上記の場所は、Debian アーカイブと Git との間の双方向ゲートウェイで、
+ <prgn>dgit</prgn> で利用されます。
+ 当該コミットは、名称が <tt>refs/dgit/*</tt> に一致する一参照から
+ (少なくとも) 到達可能です。詳細は <prgn>dgit</prgn>
+ のマニュアルを参照ください。
+ </p>
+ </sect1>
+
</sect>
<sect>
@@ -5912,6 +6072,37 @@
</example>
</p>
</sect>
+
+ <sect id="obsolete-control-data-fields">
+ <heading><!--Obsolete fields-->廃止になったフィールド</heading>
+
+ <p><!--
+ The following fields have been obsoleted and may be found in packages
+ conforming with previous versions of the Policy.-->
+ 以下のフィールドは廃止になっており、ポリシィの以前の版に対応したパッケージで指定されているかもしれません。
+ </p>
+
+ <sect1 id="f-DM-Upload-Allowed">
+ <heading><tt>DM-Upload-Allowed</tt></heading>
+
+ <p><!--
+ Indicates that Debian Maintainers may upload this package to
+ the Debian archive. The only valid value is <tt>yes</tt>. This
+ field was used to regulate uploads by Debian Maintainers, See the
+ General Resolution <url id="http://www.debian.org/vote/2007/vote_003"
+ name="Endorse the concept of Debian Maintainers"> for more details.-->
+ Debian メンテナに、対象パッケージを Debian
+ アーカイブにアップロードして良いことを指示します。
+ このフィールドの有効な値は <tt>yes</tt> のみです。
+ このフィールドは Debian メンテナの行うアップロードを調整するために使われていました。
+ この件の詳細は、一般決議 <url id="http://www.debian.org/vote/2007/vote_003"
+ name="Endorse the concept of Debian Maintainers (Debian メンテナの考え方を裏書する)">
+ を参照ください。
+ </p>
+ </sect1>
+
+ </sect>
+
</chapt>
<!-- <chapt id="maintainerscripts"><heading>Package maintainer scripts
@@ -5958,8 +6149,7 @@
scripts this means that you <em>almost always</em> need to
use <tt>set -e</tt> (this is usually true when writing shell
scripts, in fact). It is also important, of course, that
- they exit with a zero status if everything went
- well.-->
+ they exit with a zero status if everything went well.-->
パッケージ管理システムはこれらのスクリプトからの終了ステータスを見ます。
パッケージ管理システムが手続きを止められるように、
エラーがあった場合にはスクリプトが 0
@@ -6007,8 +6197,7 @@
Programs called from maintainer scripts should not normally
have a path prepended to them. Before installation is
started, the package management system checks to see if the
- programs <prgn>ldconfig</prgn>,
- <prgn>start-stop-daemon</prgn>, <prgn>install-info</prgn>,
+ programs <prgn>ldconfig</prgn>, <prgn>start-stop-daemon</prgn>,
and <prgn>update-rc.d</prgn> can be found via the
<tt>PATH</tt> environment variable. Those programs, and any
other program that one would expect to be in the
@@ -6020,7 +6209,7 @@
管理スクリプトから呼ばれるプログラムは、通常そのスクリプトにおいてプログラムの前にパスをつけて呼び出すべきではありません。
インストールが始まる前に、パッケージ管理システムは
<prgn>ldconfig</prgn>、<prgn>start-stop-daemon</prgn>、
- <prgn>install-info</prgn> や <prgn>update-rc.d</prgn>
+ や <prgn>update-rc.d</prgn>
などのプログラムが指定された <tt>PATH</tt>
環境変数から発見できるかどうかをチェックします。
ですから、これらのプログラムや、<tt>PATH</tt>
@@ -6156,7 +6345,7 @@
pre-dependencies (<tt>Pre-Depends</tt>) may be assumed to be
available. Pre-dependencies will have been configured at
least once, but at the time the <prgn>preinst</prgn> is
- called they may only be in an unpacked or "Half-Configured"
+ called they may only be in an "Unpacked" or "Half-Configured"
state if a previous version of the pre-dependency was
completely configured and has not been removed since then.
-->
@@ -6165,8 +6354,8 @@
<tt>essential</tt> パッケージと、先行依存 (predependency)
(<tt>Pre-Depends</tt>) を指定したパッケージが提供されていることは期待してもかまいません。
先行依存されたパッケージは少なくとも一回は設定されていますが、ただし
- <prgn>preinst</prgn> が呼ばれた時点では単に展開された直後か、
- "Half-Configured" 状態である可能性があります。
+ <prgn>preinst</prgn> が呼ばれた時点では単に展開状態 (Unpacked) か、
+ 設定途中状態 (Half-Configured) 状態である可能性があります。
この状況は、先行依存を指定したパッケージの旧版がきちんと設定されていて、その後削除されていなかった場合に起きます。
</item>
@@ -6179,7 +6368,7 @@
partly from the new version or partly missing, so the script
cannot rely on files included in the package. Package
dependencies may not be available. Pre-dependencies will be
- at least unpacked following the same rules as above, except
+ at least "Unpacked" following the same rules as above, except
they may be only "Half-Installed" if an upgrade of the
pre-dependency failed.<footnote>
This can happen if the new version of the package no
@@ -6191,7 +6380,9 @@
展開されたファイルは一部が新しい版に置き換わっていたり、一部が削除されている可能性があるため、
パッケージに含まれるファイルに依存することはできません。
パッケージの依存関係は満たされていないかもしれません。
- 先行依存 (pre-dependencies) 関係については、展開については上記と同じ考え方ですが、先行依存関係の更新に失敗した場合 "Half-Installed" 状態までに留まります <footnote>
+ 先行依存 (pre-dependencies) 関係については、展開状態 (Unpacked)
+ については上記と同じ考え方ですが、先行依存関係の更新に失敗した場合
+ 設定途中状態 (Half-Installed) までに留まります <footnote>
この状況は、新版のパッケージが、この部分的に更新された先行依存対象のパッケージに対する先行依存関係を持たないよう変更された場合に発生します。
</footnote>。
</item>
@@ -6207,13 +6398,13 @@
<var>most-recently-configured-version</var></tag>
<item><!--
The files contained in the package will be unpacked. All
- package dependencies will at least be unpacked. If there
+ package dependencies will at least be "Unpacked". If there
are no circular dependencies involved, all package
dependencies will be configured. For behavior in the case
of circular dependencies, see the discussion
in <ref id="binarydeps">.-->
パッケージに収録されたファイルは展開されます。
- 依存するパッケージも少なくとも展開されています。
+ 依存するパッケージも少なくとも展開状態 (Unpacked) になっています。
巡回依存関係がない限り、依存するパッケージは設定状態となります。
巡回依存関係がある場合の挙動は、<ref id="binarydeps">
の解説を参照ください。
@@ -6237,22 +6428,22 @@
However, dependencies may not be configured or even fully
unpacked in some error situations.-->
パッケージに収録されたファイルは展開されます。
- 依存するパッケージも少なくとも "Half-Installed"
- 状態ではあり、その場合は以前に設定されていて削除されていない状態になっています。
+ 依存するパッケージも少なくとも設定途中状態 (Half-Installed)
+ ではあり、その場合は以前に設定されていて削除されていない状態になっています。
ただし、依存関係にあるパッケージは設定状態ではないかもしれず、またエラーが起きている場合は展開に失敗している可能性もあります
<footnote><!--
- For example, suppose packages foo and bar are installed
+ For example, suppose packages foo and bar are "Installed"
with foo depending on bar. If an upgrade of bar were
started and then aborted, and then an attempt to remove
foo failed because its <prgn>prerm</prgn> script failed,
foo's <tt>postinst abort-remove</tt> would be called with
bar only "Half-Installed".-->
- 例えば、パッケージ foo と bar があり、foo は bar に依存し、foo
- をインストールしようとしているとします。bar
+ 例えば、パッケージ foo と bar がインストール状態であり、foo は
+ bar に依存しているとします。bar
のアップグレードが開始後異常終了し、その後 foo の削除が foo
の <prgn>prerm</prgn> スクリプトが失敗したために失敗したとします。
この場合、foo の <tt>postinst abort-remove</tt> が
- bar が "Half-Installed" の状態で呼ばれます。
+ bar が設定途中状態 (Half-Installed) で呼ばれます。
</footnote>。<!--
The <prgn>postinst</prgn> should still attempt any actions
for which its dependencies are required, since they will
@@ -6290,15 +6481,16 @@
at least "Half-Installed". All package dependencies will at
least be "Half-Installed" and will have previously been
configured and not removed. If there was no error, all
- dependencies will at least be unpacked, but these actions
+ dependencies will at least be "Unpacked", but these actions
may be called in various error states where dependencies are
only "Half-Installed" due to a partial upgrade.-->
内部の <prgn>prerm</prgn> が呼ばれるパッケージは、少なくとも
- "Half-Installed" 状態です。すべての依存関係のパッケージは少なくとも
- "Half-Installed" 状態で、その場合は以前に設定されており、削除されていない状態です。
- これら処理が呼ばれる際には、すべての依存関係のパッケージはもしエラーがない場合には少なくとも展開状態ですが、
- エラーがある場合は部分アップグレードに伴う "Half-Installed"
- 状態になっており、更に様々なエラー状態の発生下で呼ばれます。
+ 設定途中状態 (Half-Installed) 状態です。
+ すべての依存関係にあるパッケージも少なくとも設定途中状態
+ (Half-Installed) 状態で、その場合は以前に設定されており、削除されていない状態です。
+ これら処理が呼ばれる際には、すべての依存関係のパッケージはもしエラーがない場合には少なくとも展開状態 (Unpacked) になっていますが、
+ さらにエラーがある場合は部分アップグレードに伴い、設定途中状態
+ (Half-Installed) 状態の様々なエラー状態の発生下で呼ばれます。
</item>
<tag><var>new-prerm</var> <tt>failed-upgrade</tt>
@@ -6329,7 +6521,7 @@
The <prgn>postrm</prgn> script is called after the package's
files have been removed or replaced. The package
whose <prgn>postrm</prgn> is being called may have
- previously been deconfigured and only be unpacked, at which
+ previously been deconfigured and only be "Unpacked", at which
point subsequent package changes do not consider its
dependencies. Therefore, all <prgn>postrm</prgn> actions
may only rely on essential packages and must gracefully skip
@@ -6338,7 +6530,8 @@
<prgn>postrm</prgn> スクリプトは、
パッケージのファイルが削除あるいは置き換えられたあとに呼ばれます。
<prgn>postrm</prgn>
- が呼ばれたパッケージは、以前に設定解除され、展開されただけである可能性もあります。
+ が呼ばれたパッケージは、以前に設定解除され、展開状態 (Unpacked)
+ である可能性もあります。
この時点で、以降のパッケージの変更では依存関係は考慮されません。
このため、すべての <prgn>postrm</prgn> 処理は "essential"
パッケージのみに依存し、パッケージの依存関係が必要な処理はすべて、依存関係が満たされない場合に丁寧に処理を飛ばすようにしなければいけません
@@ -6374,8 +6567,9 @@
古いパッケージの <tt>postrm upgrade</tt> 処理が失敗した場合に呼ばれます。
新しいパッケージは展開されていますが、"essential"
パッケージと先行依存パッケージのみへの依存が可能です。
- 先行依存したパッケージは設定されているか、"Unpacked" または
- 以前に設定されてそれ以降削除されていない "Half-Configured" 状態です。
+ 先行依存したパッケージは設定されているか、展開状態 (Unpacked) または
+ 以前に設定されてそれ以降削除されていない設定途中状態 (Half-Configured)
+ です。
</item>
<tag><var>new-postrm</var> <tt>abort-install</tt></tag>
@@ -6421,9 +6615,9 @@
<enumlist>
<item>
<!-- If a version of the package is already
- installed, call-->
+ "Installed", call-->
対象となるパッケージの、あるバージョンが既に
- インストールされている場合は次の呼び出しをします。
+ インストール状態である場合は次の呼び出しをします。
<example compact="compact">
<var>old-prerm</var> upgrade <var>new-version</var>
</example>
@@ -6452,7 +6646,7 @@
"Half-Configured" state.-->
これが正常動作するなら、"old-version"
がインストールされています。正常動作しないなら、
- "old-version" は "Half-Configured" 状態になっています。
+ "old-version" は設定途中状態 (Half-Configured) 状態になっています。
</item>
</enumlist>
</item>
@@ -6569,7 +6763,7 @@
-->
を呼びます。更にこれが正常終了する場合、旧バージョンは
"Installed" 状態になっており、正常終了しない場合は
- "Unpacked" 状態のままになっています。
+ 展開状態 (Unpacked) のままになっています。
</p>
</item>
<item>
@@ -6577,8 +6771,8 @@
If it fails, then the old version is left
in an "Half-Installed" state.
-->
- これが失敗した場合、旧バージョンは "Half-Installed"
- 状態で残っています。
+ これが失敗した場合、旧バージョンは設定途中状態
+ (Half-Installed) 状態で残っています。
</p>
</item>
</enumlist>
@@ -6604,7 +6798,8 @@
a "Config-Files" state.
-->
です。これが正常終了しない場合、パッケージは
- "Half-Installed" 状態で残っており、この修正には再インストールが必要になります。
+ 設定途中状態 (Half-Installed)
+ で残っており、この修正には再インストールが必要になります。
正常終了した場合には、パッケージは "Config-Files"
状態になっています。
<item>
@@ -6621,12 +6816,13 @@
If the error-unwind fails, the package is in a
"Half-Installed" phase, and requires a
reinstall. If the error unwind works, the
- package is in a not installed state.
+ package is in the "Not-Installed state.
-->
です。これが正常終了しない場合、パッケージは
- "Half-Installed" 状態で残っており、この修正には再インストールが必要になります。
- 正常終了した場合には、パッケージは未インストール
- 状態になっています。
+ 設定途中状態 (Half-Installed)
+ で残っており、この修正には再インストールが必要になります。
+ 正常終了した場合には、パッケージはインストールされていない
+ (Not-Installed) 状態になっています。
</item>
</enumlist>
</item>
@@ -6740,9 +6936,9 @@
If this fails, the old version is left in a
"Half-Installed" state. If it works, dpkg now
calls:-->
- です。これが失敗した場合、パッケージは "Half-Installed"
- 状態で残っています。これが正常終了した場合、dpkg
- は次に、
+ です。これが失敗した場合、パッケージは設定途中状態
+ (Half-Installed) 状態で残っています。
+ これが正常終了した場合、dpkg は次に、
<example compact="compact">
<var>new-postrm</var> abort-upgrade <var>old-version</var>
</example><!--
@@ -6750,7 +6946,7 @@
"Half-Installed" state. If it works, dpkg now
calls:-->
を実行します。これが失敗した場合、パッケージは
- "Half-Installed" 状態で残っています。
+ 設定途中状態 (Half-Installed) で残っています。
これが正常終了した場合、dpkg は次に、
<example compact="compact">
<var>old-postinst</var> abort-upgrade <var>new-version</var>
@@ -6759,7 +6955,7 @@
"Unpacked" state.
-->
を実行します。これが失敗した場合、旧バージョンは
- "Unpacked" 状態になっています。
+ 展開状態 (Unpacked) になっています。
</item>
</enumlist>
</p>
@@ -6818,18 +7014,22 @@
<item>
<!--
It is noted in the status database as being in a
- sane state, namely not installed (any conffiles
+ sane state, namely "Not-Installed" (any conffiles
it may have are ignored, rather than being
removed by <prgn>dpkg</prgn>). Note that
disappearing packages do not have their prerm
called, because <prgn>dpkg</prgn> doesn't know
in advance that the package is going to
vanish.-->
- パッケージ状態のデータベースには、正常な状態、つまりインストールされていないものとして記録されます
- (そのパッケージが持っていた設定ファイルがあれば、それは
+ パッケージ状態のデータベースには、正常な状態、
+ 具体的にはインストールされていない状態 (Not-Installed)
+ として記録されます
+ (そのパッケージが持っていた <file>conffiles</file>
+ があれば、それは
<prgn>dpkg</prgn> によって削除されるのではなく、無視されます)。
- <prgn>dpkg</prgn> は前もって、そのパッケージが削除されそうなのかどうかを知らないので、
- 削除されるパッケージの `prerm' は 呼び出されないということに注意してください。
+ <prgn>dpkg</prgn> は、そのパッケージが削除されそうなのかどうかは前もっては分からないので、
+ 削除されるパッケージの `prerm'
+ は 呼び出されないということに注意してください。
</item>
</enumlist>
</p>
@@ -6853,9 +7053,9 @@
<item>
<p><!--
The new package's status is now sane, and recorded as
- "unpacked".-->
- 新しいパッケージの状態は、今では正常になっていますので、「展開
- (unpacked)」として記録されます。
+ "Unpacked".-->
+ 新しいパッケージの状態は、今では正常になっていますので、展開状態
+ (Unpacked) として記録されます。
</p>
<p> <!--
@@ -6905,10 +7105,11 @@
<p> <!--
No attempt is made to unwind after errors during
configuration. If the configuration fails, the package is in
- a "Failed Config" state, and an error message is generated.
+ a "Half-Configured" state, and an error message is generated.
-->
- 設定中にエラーが起こった後、回復は行われません。設定に失敗した場合、パッケージは
- "Failed Config" 状態になっており、エラーメッセージが作成されます。
+ 設定中にエラーが起こった後、回復は行われません。
+ 設定に失敗した場合、パッケージは設定途中状態 (Half-Configured)
+ になっており、エラーメッセージが作成されます。
</p>
<p> <!--
@@ -6968,7 +7169,7 @@
<p><!--
If this fails, the package is in a "Half-Configured"
state, or else it remains "Installed".-->
- これが正常終了しない場合、パッケージは "Half-Configured"
+ これが正常終了しない場合、パッケージは設定途中状態 (Half-Configured)
状態か、"Installed" 状態のままのいずれかになります。
</p>
</item>
@@ -6988,7 +7189,7 @@
If it fails, there's no error unwind, and the package is in
an "Half-Installed" state.-->
失敗した場合にエラーを巻き戻す方法はありません。パッケージは
- "Half-Installed" 状態となっています。
+ 設定途中状態 (Half-Installed) 状態となっています。
</p>
</item>
<item>
@@ -7068,8 +7269,9 @@
dependencies on other packages, the package names listed may
also include lists of alternative package names, separated
by vertical bar (pipe) symbols <tt>|</tt>. In such a case,
- if any one of the alternative packages is installed, that
- part of the dependency is considered to be satisfied.-->
+ that part of the dependency can be satisfied by any one of
+ the alternative packages.
+ -->
パッケージの <tt>Depends</tt>、<tt>Recommends</tt>、
<tt>Suggests</tt>、<tt>Pre-Depends</tt>、<tt>Build-Depends</tt> 及び
<tt>Build-Depends-Indep</tt> の各コントロールフィールド
@@ -7077,7 +7279,7 @@
内に記述するパッケージ名は、代替パッケージ名の一覧でもかまいません。
代替パッケージ名は、 垂直バーシンボル <tt>|</tt> (パイプシンボル)
で区切って書きます。
- この場合、任意の代替パッケージの一つがインストールされていれば、この部分の依存関係は満たされているものと判断されます。
+ この場合、代替パッケージの任意の一つにより、この部分の依存関係を満たすことができます。
</p>
<p> <!--
@@ -7095,22 +7297,23 @@
<p> <!--
The relations allowed are <tt><<</tt>, <tt><=</tt>,
- <tt>=</tt>, <tt>>=</tt> and <tt>>></tt> for
- strictly earlier, earlier or equal, exactly equal, later or
- equal and strictly later, respectively. The deprecated
- forms <tt><</tt> and <tt>></tt> were used to mean
- earlier/later or equal, rather than strictly earlier/later,
- so they should not appear in new packages (though
- <prgn>dpkg</prgn> still supports them).-->
+ <tt>=</tt>, <tt>>=</tt> and <tt>>></tt> for strictly
+ earlier, earlier or equal, exactly equal, later or equal and
+ strictly later, respectively. The deprecated
+ forms <tt><</tt> and <tt>></tt> were confusingly used to
+ mean earlier/later or equal, rather than strictly earlier/later,
+ and must not appear in new packages (though <prgn>dpkg</prgn>
+ still supports them with a warning).
+ -->
バージョン番号の関係を示すために使用する記号は、<tt><<</tt>、
<tt><=</tt>、<tt>=</tt>、<tt>>=</tt> 及び <tt>>></tt>
で、順に「より小さい」「以下」「等しい」「以上」「より大きい」
を意味しています。既に廃止になった記号の書式
- <tt><</tt> と <tt>></tt> はそれぞれ「以下」「以上」
- という意味であって、「より小さい」または「より大きい」
- という意味ではありません。新しいパッケージでは、
- <tt><</tt> と <tt>></tt> は使うべきではありません
- (<prgn>dpkg</prgn> はまだこの書式をサポートしてはいます)。
+ <tt><</tt> と <tt>></tt> はそれぞれ「より小さい」または「より大きい」
+ の意味ではなく、「以下」「以上」という意味として使われ混乱のもととなっていたため、
+ 新しいパッケージでは、
+ <tt><</tt> と <tt>></tt> は使ってはいけません
+ (<prgn>dpkg</prgn> はまだこの書式を警告付きでサポートしてはいます)。
</p>
<p> <!--
@@ -7202,7 +7405,8 @@
</p>
<p><!--
- For binary relationship fields, the architecture restriction
+ For binary relationship fields and the <tt>Built-Using</tt>
+ field, the architecture restriction
syntax is only supported in the source package control
file <file>debian/control</file>. When the corresponding binary
package control file is generated, the relationship will either
@@ -7211,7 +7415,8 @@
that architecture restrictions must not be used in binary
relationship fields for architecture-independent packages
(<tt>Architecture: all</tt>).-->
- バイナリの依存関係を示すフィールドについては、アーキテクチャによる制限書式はソースパッケージコントロールファイル
+ バイナリの依存関係を示すフィールドと <tt>Built-Using</tt>
+ フィールドについては、アーキテクチャによる制限書式はソースパッケージコントロールファイル
<file>debian/control</file> でのみサポートされます。
対応したバイナリパッケージコントロールファイルが作成される際、依存関係は省かれるか、そのバイナリパッケージのアーキテクチャに基づいてアーキテクチャ制限部を削除した形で収録されます。
つまり、アーキテクチャ制限は、アーキテクチャ非依存のパッケージ
@@ -7484,9 +7689,10 @@
の各スクリプトを実行するために特定のパッケージが展開されているか、設定されていることが必要になる場合にも指定すべきです。
<tt>postinst configure</tt> の場合は、依存されたパッケージはまず展開され、設定されます
(巡回依存関係に両方のパッケージが含まれる場合、事は期待通りには進みません。
- 数節前の説明を参照ください)。<prgn>prerm</prgn> と、これいがいの <prgn>postinst</prgn>
+ 数節前の説明を参照ください)。
+ <prgn>prerm</prgn> と、これ以外の <prgn>postinst</prgn>
操作時には、依存パッケージは通常少なくとも展開されていますが、その依存関係にあるパッケージの以前のアップグレードが失敗していた場合、
- "Half-Installed" 状態でとどまっている可能性があります。
+ 設定途中状態 (Half-Installed) でとどまっている可能性があります。
</p>
<p><!--
@@ -7570,23 +7776,25 @@
be <em>unpacked</em> the pre-dependency can be
satisfied if the depended-on package is either fully
configured, <em>or even if</em> the depended-on
- package(s) are only unpacked or in the "Half-Configured"
+ package(s) are only in the "Unpacked" or in the "Half-Configured"
state, provided that they have been configured
correctly at some point in the past (and not removed
or partially removed since). In this case, both the
- previously-configured and currently unpacked or
+ previously-configured and currently "Unpacked" or
"Half-Configured" versions must satisfy any version
clause in the <tt>Pre-Depends</tt> field.
-->
先行依存を指定したパッケージを <em>展開</em>
しようとする際、先行依存関係は依存されたパッケージがきちんと設定されている場合、そして先行依存されているパッケージ
(群) が、過去のある時点できちんと設定され、以後削除も部分的削除もされていない場合には、
- そのパッケージが現時点で展開中や "Half-Configured" 状態で
- <em>あっても</em> 満たされます。
- この場合は、以前に設定されていたパッケージのバージョンと、現在展開のみされた、または
- "Half-Configured" 状態のバージョンとの両方が、<tt>Pre-Depends</tt>
+ そのパッケージが現時点で展開状態 (Unpacked) や設定途中状態
+ (Half-Configured) で <em>あっても</em> 満たされます。
+ この場合は、以前に設定されていたパッケージのバージョンと、現在展開状態
+ (Unpacked) または設定途中状態 (Half-Configured)
+ のバージョンとの両方が、<tt>Pre-Depends</tt>
フィールドのバージョン部分を満たしている必要があります。
</p>
+
<p><!--
When the package declaring a pre-dependency is about to
be <em>configured</em>, the pre-dependency will be treated
@@ -7679,7 +7887,7 @@
because its configuration files are still installed; it must
be at least "Half-Installed".-->
パッケージは、設定ファイルがインストールされているだけの状態で、壊されるとは見なされません。
- 少なくとも "Half-Installed" 以上の状態である必要があります。
+ 少なくとも設定途中状態 (Half-Installed) 以上の状態である必要があります。
</p>
<p><!--
@@ -7757,7 +7965,7 @@
は、そのシステム上でそれら二つのパッケージを同時に展開することを拒否します。
これは、<tt>Breaks</tt> より強い制約です。
<tt>Breaks</tt> では、<tt>Breaks</tt>
- を指定したパッケージの展開後には「壊された」パッケージの再設定は妨げられますが、両方のパッケージを展開することは可能なためです。
+ を指定したパッケージが展開状態 (Unpacked) の際に「壊された」パッケージの再設定は妨げられますが、両方のパッケージを展開することは可能なためです。
</p>
<p> <!--
@@ -7790,7 +7998,8 @@
configuration files are still installed; it must be at least
"Half-Installed".-->
あるパッケージが、単に設定ファイルのみがまだインストールされている場合に競合関係をひきおこすことはありません。
- 競合関係にあるためには最低でも "Half-Installed" の状態でなければいけません。
+ 競合関係にあるためには最低でも設定途中状態 (Half-Installed)
+ でなければいけません。
</p>
<p> <!--
@@ -8121,7 +8330,7 @@
<prgn>dpkg</prgn> does not know of any files it still
contains, it is considered to have "disappeared". It will
be marked as not wanted on the system (selected for
- removal) and not installed. Any <tt>conffile</tt>s
+ removal) and "Not-Installed". Any <tt>conffile</tt>s
details noted for the package will be ignored, as they
will have been taken over by the overwriting package. The
package's <prgn>postrm</prgn> script will be run with a
@@ -8136,8 +8345,8 @@
このようにして、パッケージが完全に置きかえられてしまったときは、
<prgn>dpkg</prgn> はそのパッケージが持っているファイルが無く、
『消えてしまった』と考えます。この場合、「必要とされていない」
- (削除の選択がされた) および「インストールされていない」
- とのマークを古いパッケージに付けます。
+ (削除の選択がされた) および「インストールされていない状態
+ (Not-Installed)」とのマークを古いパッケージに付けます。
そのパッケージの <tt>conffile</tt> 関係の詳細は無視されます。
これは、新しいパッケージによって引き継がれているだろうからです。
最終的な大掃除が必要であれば、そのパッケージの <prgn>postrm</prgn>
@@ -8318,8 +8527,75 @@
</taglist>
</p>
</sect>
- </chapt>
+ <sect id="built-using">
+<!-- <heading>Additional source packages used to build the binary
+ - <tt>Built-Using</tt>-->
+ <heading>バイナリをビルドする際の追加ソースパッケージ
+ - <tt>Built-Using</tt>
+ </heading>
+
+ <p><!--
+ Some binary packages incorporate parts of other packages when built
+ but do not have to depend on those packages. Examples include
+ linking with static libraries or incorporating source code from
+ another package during the build. In this case, the source packages
+ of those other packages are a required part of the complete source
+ (the binary package is not reproducible without them).
+ -->
+ 一部のバイナリパッケージは、依存関係を持たない他のパッケージの一部をビルド時に統合しています。
+ 例として、静的ライブラリのリンクや、他のパッケージのソースコードのビルド時の統合などがあります。
+ この場合、これらの他のパッケージのソースパッケージが完全なソースの必要な一部ということになります
+ (バイナリパッケージはそれなしでは再作成できません)。
+ </p>
+
+ <p><!--
+ A <tt>Built-Using</tt> field must list the corresponding source
+ package for any such binary package incorporated during the build-->
+ <tt>Built-Using</tt> フィールドには、そのようなバイナリパッケージがビルド時に統合する関連ソースパッケージ名を、バイナリパッケージのビルド時に使ったものに正確に一致する
+ ("=") バージョン関連性を指定して列挙しなければいけません
+ <footnote><!--
+ <tt>Build-Depends</tt> in the source package is not adequate since
+ it (rightfully) does not document the exact version used in the
+ build.-->
+ ソースパッケージの <tt>Build-Depends</tt> はこの目的には不向きです。
+ これは、(本来の目的から) ビルド時に使った正確なバージョンを記録しないためです。
+ </footnote><!--,
+ including an "exactly equal" ("=") version relation on the version
+ that was used to build that binary package<footnote>
+ The archive software might reject packages that refer to
+ non-existent sources.
+ </footnote>.
+ -->
+ <footnote>
+ 存在しないソースを参照していた場合、アーカイブソフトウェアからパッケージを拒否されるかもしれません。
+ </footnote>。
+ </p>
+
+ <p><!--
+ A package using the source code from the gcc-4.6-source
+ binary package built from the gcc-4.6 source package would
+ have this field in its control file:
+ -->
+ gcc-4.6 ソースパッケージからビルドされる gcc-4.6-source
+ バイナリパッケージのソースコードを利用するパッケージは、コントロールファイル中のこのフィールドに以下のように記載します。
+ <example compact="compact">
+Built-Using: gcc-4.6 (= 4.6.0-11)
+ </example>
+ </p>
+
+ <p><!--
+ A package including binaries from grub2 and loadlin would
+ have this field in its control file:
+ -->
+ grub2 と loadlin からのバイナリを含むパッケージは、コントロールファイル中のこのフィールドに以下のように記載します。
+ <example compact="compact">
+Built-Using: grub2 (= 1.99-9), loadlin (= 1.6e-1)
+ </example>
+ </p>
+ </sect>
+ </chapt>
+
<chapt id="sharedlibs"><heading><!-- Shared libraries-->共有ライブラリ
</heading>
@@ -8450,12 +8726,11 @@
be placed in a package named
<package><var>libraryname</var><var>soversion</var></package>,
where <var>soversion</var> is the version number in
- the <tt>SONAME</tt> of the shared library.
- See <ref id="shlibs"> for detailed information on how to
- determine this version. Alternatively, if it would be confusing
- to directly append <var>soversion</var>
- to <var>libraryname</var> (if, for example, <var>libraryname</var>
- itself ends in a number), you should use
+ the <tt>SONAME</tt> of the shared library. Alternatively, if it
+ would be confusing to directly append <var>soversion</var>
+ to <var>libraryname</var> (if, for
+ example, <var>libraryname</var> itself ends in a number), you
+ should use
<package><var>libraryname</var>-<var>soversion</var></package>
instead.
-->
@@ -8466,7 +8741,6 @@
<package><var>libraryname</var><var>soversion</var></package>
という名称のパッケージに収録すべきです。ここで、<var>soversion</var>
は、共有ライブラリの <tt>SONAME</tt> 中のバージョン番号です。
- バージョンの判定方法の詳細は、<ref id="shlibs"> を参照ください。
または、<var>libraryname</var> に
<var>soversion</var> を直接付加すると混乱する場合 (例えば、
<var>libraryname</var> 自体が数字で終わっている場合など) には、
@@ -8474,6 +8748,29 @@
を代わりに用いるべきです。
</p>
+ <p><!--
+ To determine the <var>soversion</var>, look at
+ the <tt>SONAME</tt> of the library, stored in the
+ ELF <tt>SONAME</tt> attribute. It is usually of the
+ form <tt><var>name</var>.so.<var>major-version</var></tt> (for
+ example, <tt>libz.so.1</tt>). The version part is the part
+ which comes after <tt>.so.</tt>, so in that example it
+ is <tt>1</tt>. The soname may instead be of the
+ form <tt><var>name</var>-<var>major-version</var>.so</tt>, such
+ as <tt>libdb-5.1.so</tt>, in which case the name would
+ be <tt>libdb</tt> and the version would be <tt>5.1</tt>.
+ -->
+ <var>soversion</var> を調べるには、ELF <tt>SONAME</tt>
+ アトリビュートに格納されているライブラリの
+ <tt>SONAME</tt> を見て下さい。これは通常
+ <tt><var>name</var>.so.<var>major-version</var></tt>
+ のような形式 (例えば <tt>libz.so.1</tt>) です。バージョン部は、<tt>.so.</tt>
+ に続く部分で、上記の例では <tt>1</tt> です。soname は
+ <tt><var>name</var>-<var>major-version</var>.so</tt>
+ の形式の場合もあり (例えば <tt>libdb-5.1.so</tt>)、この場合のライブラリ名は <tt>libdb</tt>
+ で、バージョンは <tt>5.1</tt> です。
+ </p>
+
<p><!--
If you have several shared libraries built from the same source
tree, you may lump them all together into a single shared
@@ -8523,15 +8820,15 @@
linked against the old shared library. Correct versioning of
dependencies on the newer shared library by binaries that use
the new interfaces is handled via
- the <qref id="sharedlibs-shlibdeps"><tt>shlibs</tt>
- system</qref> or via symbols files (see
- <manref name="deb-symbols" section="5">).-->
+ the <qref id="sharedlibs-depends"><tt>symbols</tt>
+ or <tt>shlibs</tt> system</qref>.
+ -->
インターフェースの削除や変更なしに単に追加が行われたという場合には、
<tt>SONAME</tt> 名とバイナリパッケージ名は変更する必要はありませんし、変更すべきでもありません。
これは、このような変更は旧共有ライブラリにリンクしていたバイナリを壊すことがないためです。
新しいインターフェースを用いるバイナリでの、新しい共有ライブラリとの正しい依存関係に対するバージョン付けは、
- <qref id="sharedlibs-shlibdeps"><tt>shlibs</tt> system</qref> またはシンボルファイルを使って
- (<manref name="deb-symbols" section="5"> 参照) 管理されます。
+ <qref id="sharedlibs-depends"><tt>シンボル</tt> または
+ <tt>shlibs</tt> system</qref> を使って管理されます。
</p>
<p><!--
@@ -8967,575 +9264,1362 @@
</p>
</sect>
- <sect id="sharedlibs-shlibdeps"><!--
- <heading>Dependencies between the library and other packages -
- the <tt>shlibs</tt> system</heading>-->
- <heading>ライブラリと他のパッケージとの依存関係の扱い - <tt>shlibs</tt> システム
- </heading>
+ <sect id="sharedlibs-depends"><!--
+ <heading>Dependencies between the library and other
+ packages</heading>-->
+ <heading>ライブラリと他のパッケージとの依存関係の扱い</heading>
<p> <!--
If a package contains a binary or library which links to a
- shared library, we must ensure that when the package is
- installed on the system, all of the libraries needed are
- also installed. This requirement led to the creation of the
- <tt>shlibs</tt> system, which is very simple in its design:
- any package which <em>provides</em> a shared library also
- provides information on the package dependencies required to
- ensure the presence of this library, and any package which
- <em>uses</em> a shared library uses this information to
- determine the dependencies it requires. The files which
- contain the mapping from shared libraries to the necessary
- dependency information are called <file>shlibs</file> files.-->
- パッケージが共有ライブラリとリンクしたバイナリやライブラリを含む場合、
- パッケージをシステムにインストールする際に、必要なすべてのライブラリも共にインストールされるようにする必要があります。
- この要求から、<tt>shlibs</tt> システムが作られました。
- これは設計上は非常に簡単なものです。共有ライブラリを
- <em>提供する</em> パッケージはすべて、
- そのライブラリの動作を保証するために必要なパッケージ依存関係の情報を提供しなければならず、
- また共有ライブラリを <em>使用する</em> パッケージは、
- その共有ライブラリが必要とする依存関係を判断するためにこの情報を使います。
- 共有ライブラリから必要な依存関係の情報への対応を保持するファイルは
- <file>shlibs</file> ファイルと呼ばれます。
+ shared library, we must ensure that, when the package is
+ installed on the system, all of the libraries needed are also
+ installed. These dependencies must be added to the binary
+ package when it is built, since they may change based on which
+ version of a shared library the binary or library was linked
+ with even if there are no changes to the source of the binary
+ (for example, symbol versions change, macros become functions or
+ vice versa, or the binary package may determine at compile-time
+ whether new library interfaces are available and can be called).
+ To allow these dependencies to be constructed, shared libraries
+ must provide either a <file>symbols</file> file or
+ a <file>shlibs</file> file. These provide information on the
+ package dependencies required to ensure the presence of
+ interfaces provided by this library. Any package with binaries
+ or libraries linking to a shared library must use these files to
+ determine the required dependencies when it is built. Other
+ packages which use a shared library (for example using
+ <tt>dlopen()</tt>) should compute appropriate dependencies
+ using these files at build time as well.
+ -->
+ パッケージが共有ライブラリとリンクしたバイナリやライブラリを含む場合には、
+ パッケージをシステムにインストールする際に、必要なすべてのライブラリも共にインストールされていることを保証する必要があります。
+ この依存関係は、バイナリのソースコードに何の変更がなくともバイナリまたはライブラリのリンクの際に元にした共有ライブラリのバージョンによって変化するため
+ (例えばシンボルのバージョン変更、マクロが関数に変更された、またはその逆、
+ さらにバイナリパッケージがコンパイル時に新しいライブラリインターフェースが提供されており、利用できると判断したなど)
+ バイナリパッケージのビルド時に追加される必要があります。
+ この依存関係を構築するために、共有ライブラリは <file>symbols</file>
+ ファイルか、<file>shlibs</file> ファイルのいずれかを提供しなければなりません。
+ これらのパッケージの依存関係として提供される情報は、ライブラリの提供するインターフェースが存在することを保証するために必要です。
+ 共有ライブラリにリンクを行うバイナリまたはライブラリを収録するパッケージは、これらのファイルを用いてビルド時に必要な依存関係を判断しなければいけません。
+ 共有ライブラリを用いるその他のパッケージ (例えば <tt>dlopen()</tt> を使うもの)
+ も、ビルド時にこれらのファイルを使って適切な依存関係を同様に計算すべきです。
</p>
+
+ <p><!--
+ The two mechanisms differ in the degree of detail that they
+ provide. A <file>symbols</file> file documents, for each symbol
+ exported by a library, the minimal version of the package any
+ binary using this symbol will need. This is typically the
+ version of the package in which the symbol was introduced. This
+ information permits detailed analysis of the symbols used by a
+ particular package and construction of an accurate dependency,
+ but it requires the package maintainer to track more information
+ about the shared library.-->
+ この2つのメカニズムは、提供機能の詳細レベルでは異なります。<file>symbols</file>
+ ファイルは、ライブラリからエクスポートされる各シンボルと、そのシンボルを用いるバイナリが最低限必要とする当該パッケージのバージョンを記述します。
+ このバージョンとは、普通はそのシンボルが導入されたパッケージのバージョンを指します。
+ この情報は、特定のパッケージで用いるシンボルの詳細な分析と正確な依存関係の構築を可能としますが、その一方パッケージメンテナは共有ライブラリについてのより多くの情報を把握して置かなければいけません。
+ </p>
<p><!--
- When a package is built which contains any shared libraries, it
- must provide a <file>shlibs</file> file for other packages to
- use. When a package is built which contains any shared
- libraries or compiled binaries, it must run
- <qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref>
- on these to determine the libraries used and hence the
- dependencies needed by this package.<footnote>-->
- 共有ライブラリを含むパッケージをビルドする際には、他のパッケージが使えるよう
- <file>shlibs</file> を提供しなければいけません。
- また、共有ライブラリやコンパイルされたバイナリを含むパッケージでは、
- それらに対して
+ A <file>shlibs</file> file, in contrast, only documents the last
+ time the library ABI changed in any way. It only provides
+ information about the library as a whole, not individual
+ symbols. When a package is built using a shared library with
+ only a <file>shlibs</file> file, the generated dependency will
+ require a version of the shared library equal to or newer than
+ the version of the last ABI change. This generates
+ unnecessarily restrictive dependencies compared
+ to <file>symbols</file> files if none of the symbols used by the
+ package have changed. This, in turn, may make upgrades
+ needlessly complex and unnecessarily restrict use of the package
+ on systems with older versions of the shared libraries.-->
+ それに対して <file>shlibs</file> ファイルには、ライブラリ ABI
+ に何らかの変更が最後にあった時点のみが記述されています。
+ このファイルには、各々のシンボルではなく、ライブラリ丸ごとでの情報のみが提供されているのです。
+ パッケージが共有ライブラリを用いてビルドされる場合には <file>shlibs</file>
+ ファイルのみが用いられ、生成された依存関係は ABI
+ 変更が行われた最後の時点でのバージョンか、それより新しいものを要求するものとなります。
+ このことにより、もしパッケージの用いているシンボルに変更がない場合には、<file>symbols</file>
+ ファイルによる方法に比べ、不必要に制限の強い依存関係が生成されることになります。
+ また一方、古い版の共有ライブラリを持つシステムでのパッケージの利用が不必要に制限され、アップグレードの際に不必要に複雑な処理を強いられるでしょう。
+ </p>
+
+ <p><!--
+ <file>shlibs</file> files also only support a limited range of
+ library SONAMEs, making it difficult to use <file>shlibs</file>
+ files in some unusual corner cases.<footnote>
+ A <file>shlibs</file> file represents an SONAME as a library
+ name and version number, such as <tt>libfoo VERSION</tt>,
+ instead of recording the actual SONAME. If the SONAME doesn't
+ match one of the two expected formats
+ (<tt>libfoo-VERSION.so</tt> or <tt>libfoo.so.VERSION</tt>), it
+ cannot be represented.
+ </footnote>-->
+ また、<file>shlibs</file> ファイルはライブラリの SONAME
+ の限られた範囲のみをサポートしているため、一般的ではない用途の一部では
+ <file>shlibs</file> ファイルを用いるのは困難です<footnote>
+ <file>shlibs</file> ファイルは SONAME を実際の SONAME ではなく、ライブラリ名とバージョン番号で、
+ つまり <tt>libfoo VERSION</tt> という形式で代表させ、記録しています。
+ SONAME が期待される二種の書式 (<tt>libfoo-VERSION.so</tt> または
+ <tt>libfoo.so.VERSION</tt>) でなかった場合、この代表処理が行えません。
+ </footnote>。
+ </p>
+
+ <p><!--
+ <file>symbols</file> files are therefore recommended for most
+ shared library packages since they provide more accurate
+ dependencies. For most C libraries, the additional detail
+ required by <file>symbols</file> files is not too difficult to
+ maintain. However, maintaining exhaustive symbols information
+ for a C++ library can be quite onerous, so <file>shlibs</file>
+ files may be more appropriate for most C++ libraries. Libraries
+ with a corresponding udeb must also provide
+ a <file>shlibs</file> file, since the udeb infrastructure does
+ not use <file>symbols</file> files.-->
+ このため、ほとんどの共有ライブラリパッケージでは、より正確な依存関係を提供する
+ <file>symbols</file> の方を薦めます。
+ ほとんどの C ライブラリでは、<file>symbols</file>
+ ファイルで必要となる追加情報を維持するのはそれほど難しくはありません。
+ ただし、C++ ライブラリで網羅的なシンボル情報を維持するのは大変な作業なので、
+ C++ ライブラリの場合はほとんどの場合には <file>shlibs</file>
+ のほうがより適切です。udeb と関連付けられたライブラリでは、<file>shlibs</file>
+ を提供しなければいけません。これは udeb インフラストラクチャでは
+ <file>symbols</file> ファイルを用いていないためです。
+ </p>
+
+ <sect1 id="dpkg-shlibdeps">
+ <heading><!--Generating dependencies on shared libraries-->
+ 共有ライブラリでの依存関係の作成</heading>
+
+ <p><!--
+ When a package that contains any shared libraries or compiled
+ binaries is built, it must run <prgn>dpkg-shlibdeps</prgn> on
+ each shared library and compiled binary to determine the
+ libraries used and hence the dependencies needed by the
+ package.<footnote>-->
+ 共有ライブラリやコンパイル済みのバイナリを含むパッケージをビルドする際には、
+ 各共有ライブラリとコンパイルされるバイナリに対して
<qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref>
- を実行して、それらが使っているライブラリと、その使用に伴ってそのパッケージで必要になる依存関係を判断できるようにしなければいけません
+ を実行して、使っているライブラリと、その使用に伴ってそのパッケージで必要になる依存関係を判断できるようにしなければいけません
<footnote>
<p><!--
<prgn>dpkg-shlibdeps</prgn> will use a program
like <prgn>objdump</prgn> or <prgn>readelf</prgn> to find
- the libraries directly needed by the binaries or shared
- libraries in the package.-->
+ the libraries and the symbols in those libraries directly
+ needed by the binaries or shared libraries in the package.-->
<prgn>dpkg-shlibdeps</prgn> は <prgn>objdump</prgn> や <prgn>readelf</prgn>
- を利用して、対象パッケージのバイナリおよび共有ライブラリで直接必要なディレクトリを探索します。
+ を利用して、対象パッケージのバイナリおよび共有ライブラリで直接必要な、ライブラリまたはライブラリ内のシンボルを探索します。
+ </footnote>。<!--
+ To do this, put a call to <prgn>dpkg-shlibdeps</prgn> into
+ your <file>debian/rules</file> file in the source package.
+ List all of the compiled binaries, libraries, or loadable
+ modules in your package.<footnote>
+ The easiest way to call <prgn>dpkg-shlibdeps</prgn>
+ correctly is to use a package helper framework such
+ as <package>debhelper</package>. If you are
+ using <package>debhelper</package>,
+ the <prgn>dh_shlibdeps</prgn> program will do this work for
+ you. It will also correctly handle multi-binary packages.
+ </footnote>
+ <prgn>dpkg-shlibdeps</prgn> will use the <file>symbols</file>
+ or <file>shlibs</file> files installed by the shared libraries
+ to generate dependency information. The package must then
+ provide a substitution variable into which the discovered
+ dependency information can be placed.-->
+ これをおこなうため、ソースパッケージの <file>debian/rules</file> に
+ <prgn>dpkg-shlibdeps</prgn> への呼び出しを置いてください。
+ また、パッケージ内のコンパイル済みのバイナリ、ライブラリ、ローダブルモジュールを全て列挙してください<footnote>
+ <prgn>dpkg-shlibdeps</prgn> を正しく呼び出す一番簡単な方法は、
+ <package>debhelper</package>
+ のようなパッケージヘルパーフレームワークを用いることです。
+ <package>debhelper</package> を用いているなら、
+ <prgn>dh_shlibdeps</prgn> が必要な作業をおこなってくれます。
+ また、複数のバイナリを持つパッケージも正しく扱われます。
+ </footnote>。
+ <prgn>dpkg-shlibdeps</prgn> は、共有ライブラリがインストールした <file>symbols</file>
+ や <file>shlibs</file> ファイルを用いて依存関係情報を構築します。
+ そして、パッケージは作成された依存関係情報を置くための代替変数を下記のように提供しなければいけません。
</p>
- <p><!--
- We say that a binary <tt>foo</tt> <em>directly</em> uses
- a library <tt>libbar</tt> if it is explicitly linked
- with that library (that is, the library is listed in the ELF
- <tt>NEEDED</tt> attribute, caused by adding <tt>-lbar</tt>
- to the link line when the binary is created). Other
- libraries that are needed by <tt>libbar</tt> are linked
- <em>indirectly</em> to <tt>foo</tt>, and the dynamic
- linker will load them automatically when it loads
- <tt>libbar</tt>. A package should depend on the libraries
- it directly uses, but not the libraries it indirectly uses.
- The dependencies for those libraries will automatically pull
- in the other libraries.
- -->
- ここで、バイナリはこのライブラリを <em>直接</em>
+ <p><!--
+ If you are creating a udeb for use in the Debian Installer,
+ you will need to specify that <prgn>dpkg-shlibdeps</prgn>
+ should use the dependency line of type <tt>udeb</tt> by adding
+ the <tt>-tudeb</tt> option<footnote>
+ <prgn>dh_shlibdeps</prgn> from the <tt>debhelper</tt> suite
+ will automatically add this option if it knows it is
+ processing a udeb.
+ </footnote>. If there is no dependency line of
+ type <tt>udeb</tt> in the <file>shlibs</file>
+ file, <prgn>dpkg-shlibdeps</prgn> will fall back to the
+ regular dependency line.-->
+ もし、Debian インストーラで用いる udeb を作成しているならば、
+ <prgn>dpkg-shlibdeps</prgn> に <tt>-tudeb</tt> オプションを加えて <tt>udeb</tt>
+ タイプの依存関係記述行をもちいるべきであることを指定する必要があるでしょう
+ <footnote>
+ <tt>debhelper</tt> フレームワークの <prgn>dh_shlibdeps</prgn> は、
+ udeb を処理していると判断した場合、このオプションを自動的に付加します。
+ </footnote>。
+ <file>shlibs</file> ファイル内に <tt>udeb</tt> タイプの依存関係指定行がない場合、
+ <prgn>dpkg-shlibdeps</prgn> は通常の依存関係が指定されたものとして処理します。
+ </p>
+
+ <p><!--
+ <prgn>dpkg-shlibdeps</prgn> puts the dependency information
+ into the <file>debian/substvars</file> file by default, which
+ is then used by <prgn>dpkg-gencontrol</prgn>. You will need
+ to place a <tt>${shlibs:Depends}</tt> variable in
+ the <tt>Depends</tt> field in the control file of every binary
+ package built by this source package that contains compiled
+ binaries, libraries, or loadable modules. If you have
+ multiple binary packages, you will need to
+ call <prgn>dpkg-shlibdeps</prgn> on each one which contains
+ compiled libraries or binaries. For example, you could use
+ the <tt>-T</tt> option to the <tt>dpkg</tt> utilities to
+ specify a different <file>substvars</file> file for each
+ binary package.<footnote>
+ Again, <prgn>dh_shlibdeps</prgn>
+ and <prgn>dh_gencontrol</prgn> will handle everything except
+ the addition of the variable to the control file for you if
+ you're using <package>debhelper</package>, including
+ generating separate <file>substvars</file> files for each
+ binary package and calling <prgn>dpkg-gencontrol</prgn> with
+ the appropriate flags.-->
+ <prgn>dpkg-shlibdeps</prgn> は依存関係情報を、既定では
+ <file>debian/substvars</file> ファイルに格納し、その情報は
+ <prgn>dpkg-gencontrol</prgn> で用いられます。
+ このため、作業しているソースパッケージからビルドされる、コンパイル済みバイナリ、ライブラリ、ローダブルモジュールを含む全てのパッケージのコントロールファイル中の
+ <tt>Depends</tt> フィールドに、<tt>${shlibs:Depends}</tt>
+ 変数を置く必要があるでしょう。また、生成されるバイナリパッケージが複数ある場合、
+ コンパイル済みライブラリまたはバイナリの各々に対して
+ <prgn>dpkg-shlibdeps</prgn> を呼びださなければいけません。
+ 例えば、<tt>dpkg</tt> ユーティリティに対して <tt>-T</tt>
+ を用い、各バイナリパッケージに対して異なった <file>substvars</file>
+ ファイルを指定することもできます
+ <footnote>
+ 繰り返しますが、<package>debhelper</package> フレームワークの
+ <prgn>dh_shlibdeps</prgn> と <prgn>dh_gencontrol</prgn>
+ は、コントロールファイルに変数を追加する以外のことは何でもやってくれます。
+ 例えば、各バイナリパッケージに対して別々の <file>substvars</file>
+ ファイルを作成し、適切なフラグで <prgn>dpkg-gencontrol</prgn>
+ を呼ぶことは自動で処理されます。
+ </footnote>
+ </p>
+
+ <p><!--
+ For more details on <prgn>dpkg-shlibdeps</prgn>,
+ see <manref name="dpkg-shlibdeps" section="1">.-->
+ <prgn>dpkg-shlibdeps</prgn> の詳しい説明は、
+ <manref name="dpkg-shlibdeps" section="1"> を参照ください。
+ </p>
+
+ <p><!--
+ We say that a binary <tt>foo</tt> <em>directly</em> uses a
+ library <tt>libbar</tt> if it is explicitly linked with that
+ library (that is, the library is listed in the
+ ELF <tt>NEEDED</tt> attribute, caused by adding <tt>-lbar</tt>
+ to the link line when the binary is created). Other libraries
+ that are needed by <tt>libbar</tt> are
+ linked <em>indirectly</em> to <tt>foo</tt>, and the dynamic
+ linker will load them automatically when it
+ loads <tt>libbar</tt>. A package should depend on the
+ libraries it directly uses, but not the libraries it only uses
+ indirectly. The dependencies for the libraries used
+ directly will automatically pull in the indirectly-used
+ libraries. <prgn>dpkg-shlibdeps</prgn> will handle this logic
+ automatically, but package maintainers need to be aware of
+ this distinction between directly and indirectly using a
+ library if they have to override its results for some reason.-->
+ ここで、バイナリはこのライブラリを <em>直接的に</em>
使っているとは、バイナリ <tt>foo</tt> がライブラリ <tt>libbar</tt>
- にリンクされている場合 (すなわち、リンクの段階で <tt>-lbar</tt>
+ に明示的にリンクされている場合 (すなわち、リンクの段階で <tt>-lbar</tt>
フラグを使って、ライブラリが ELF <tt>NEEDED</tt>
アトリビュート付きでリストされている場合) のことです。
<tt>libbar</tt> が必要とするその他のライブラリは <tt>foo</tt> に
<em>間接的に</em> リンクされており、ダイナミックリンカは
<tt>libbar</tt>
をロードする際に自動的にそれらのライブラリをロードします。
- 間接的に使われているライブラリへの依存関係は自動的にロードしてこられるため、
+ 間接的に使われているライブラリへの依存関係は自動的にダイナミックリンカによりロードされるため、
パッケージが依存関係を指定すべきなのは直接リンクしているライブラリだけです。
- </p>
-
- <p><!--
- Unfortunately, the <prgn>ldd</prgn> program shows both
- the directly and indirectly used libraries, meaning that
- the dependencies determined included both direct and
- indirect dependencies. The use of <prgn>objdump</prgn>
- avoids this problem by determining only the directly
- used libraries.-->
- <prgn>ldd</prgn> では、直接呼ばれるライブラリだけでなく間接的に呼ばれるライブラリも表示してしまうという問題があり、
- その結果直接の依存関係と間接的な依存関係の両方が抽出されていました。
- <prgn>objdump</prgn> は、直接使うライブラリだけを抽出するようにしてこの問題を回避します。
- </p>
-
- <p><!--
+ <prgn>dpkg-shlibdeps</prgn> がこの論理を自動的に処理しますが、自動処理結果を何らかの理由で上書きしたい場合にはパッケージメンテナがこの直接・間接の区別を意識する必要があります
+ <footnote><!--
A good example of where this helps is the following. We
could update <tt>libimlib</tt> with a new version that
- supports a new graphics format called dgf (but retaining the
- same major version number) and depends on <tt>libdgf</tt>.
- If we used <prgn>ldd</prgn> to add dependencies for every
- library directly or indirectly linked with a binary, every
- package that uses <tt>libimlib</tt> would need to be
- recompiled so it would also depend on <tt>libdgf</tt> or it
- wouldn't run due to missing symbols. Since dependencies are
- only added based on ELF <tt>NEEDED</tt> attribute, packages
+ supports a new revision of a graphics format called dgf (but
+ retaining the same major version number) and depends on a
+ new library package <package>libdgf4</package> instead of
+ the older <package>libdgf3</package>. If we
+ used <prgn>ldd</prgn> to add dependencies for every library
+ directly or indirectly linked with a binary, every package
+ that uses <tt>libimlib</tt> would need to be recompiled so
+ it would also depend on <package>libdgf4</package> in order
+ to retire the older <package>libdgf3</package> package.
+ Since dependencies are only added based on
+ ELF <tt>NEEDED</tt> attribute, packages
using <tt>libimlib</tt> can rely on <tt>libimlib</tt> itself
- having the dependency on <tt>libdgf</tt> and so they would
- not need rebuilding.
- -->
+ having the dependency on an appropriate version
+ of <tt>libdgf</tt> and do not need rebuilding.-->
これがなぜ役に立つのかを示す良い例として、<tt>libimlib</tt>
を (メジャーバージョン番号をそのままにしつつ) dgf
- という新しいグラフィックフォーマットに対応し、<tt>libdgf</tt>
- に依存した新しいバージョンに更新する場合を考えます。
- もし、<prgn>ldd</prgn> を使って直接あるいは間接的にバイナリにリンクする全てのパッケージへの依存関係を加えた場合、
- <tt>libimlib</tt> を用いる全てのパッケージも <tt>libdgf</tt>
- に依存するよう再コンパイルが必要になります。
- 再コンパイルを行わないとシンボル不足で実行できなくなるためです。
+ という新しい版のグラフィックフォーマットに対応し、<tt>libdgf</tt>
+ に依存した新しいバージョンに更新する場合を考えます。もし、<prgn>ldd</prgn>
+ を使って直接あるいは間接的にバイナリにリンクする全てのパッケージへの依存関係を加えた場合、
+ 古い <package>libdgf3</package> を引退させ <tt>libdgf4</tt> に依存させるためには、
+ <tt>libimlib</tt> を用いる全てのパッケージの再コンパイルが必要になります。
依存関係を ELF の <tt>NEEDED</tt> アトリビュートのみに基づいて追加すれば、
<tt>libimlib</tt> を使っているパッケージは <tt>libimlib</tt>
の <tt>libdgf</tt> への依存関係指定に任せることができ、再ビルドする必要がありません。
+ </footnote>。
+ </p>
+ </sect1>
+
+ <sect1 id="sharedlibs-updates">
+ <heading><!--Shared library ABI changes-->共有ライブラリの ABI の変更</heading>
+
+ <p><!--
+ Maintaining a shared library package using
+ either <file>symbols</file> or <file>shlibs</file> files
+ requires being aware of the exposed ABI of the shared library
+ and any changes to it. Both <file>symbols</file>
+ and <file>shlibs</file> files record every change to the ABI
+ of the shared library; <file>symbols</file> files do so per
+ public symbol, whereas <file>shlibs</file> files record only
+ the last change for the entire library.-->
+ 共有ライブラリを <file>symbols</file> または <file>shlibs</file>
+ ファイルを使って維持管理するためには、共有ライブラリの外部に提供する ABI
+ とその何らかの変更の有無を意識する必要があります。<file>symbols</file>
+ ファイルと <file>shlibs</file> ファイルのいずれもが共有ライブラリの ABI
+ の全ての変更を記録しますが、<file>symbols</file>
+ は公開されたシンボルに対してのみ記録するのに対し、<file>shlibs</file>
+ ファイルはライブラリ全体での最後の変更についてのみ記録するという違いがあります。
+ </p>
+
+ <p><!--
+ There are two types of ABI changes: ones that are
+ backward-compatible and ones that are not. An ABI change is
+ backward-compatible if any reasonable program or library that
+ was linked with the previous version of the shared library
+ will still work correctly with the new version of the shared
+ library.<footnote>
+ An example of an "unreasonable" program is one that uses
+ library interfaces that are documented as internal and
+ unsupported. If the only programs or libraries affected by
+ a change are "unreasonable" ones, other techniques, such as
+ declaring <tt>Breaks</tt> relationships with affected
+ packages or treating their usage of the library as bugs in
+ those packages, may be appropriate instead of changing the
+ SONAME. However, the default approach is to change the
+ SONAME for any change to the ABI that could break a program.
+ </footnote>
+ Adding new symbols to the shared library is a
+ backward-compatible change. Removing symbols from the shared
+ library is not. Changing the behavior of a symbol may or may
+ not be backward-compatible depending on the change; for
+ example, changing a function to accept a new enum constant not
+ previously used by the library is generally
+ backward-compatible, but changing the members of a struct that
+ is passed into library functions is generally not unless the
+ library takes special precautions to accept old versions of
+ the data structure.-->
+ ABI の変更は、後方互換性を維持したものとそうでないものの二種類に分けられます。
+ ABI の変更が後方互換性を維持しているとは、以前のバージョンの共有ライブラリにリンクしている通常のプログラムが、新しいバージョンの共有ライブラリで引き続き動作できることを意味します<footnote>
+ ここで、「通常」でないプログラムとは、内部で使用するとして文書化されており、サポートされていないライブラリインターフェースを用いるプログラムのことです。
+ もし、共有プログラムの変更に対して影響を受けるプログラムやライブラリが「通常でない」
+ ものだけである場合には、他の手法、例えば影響を受けるパッケージに対して
+ <tt>Breaks</tt> の依存関係を指定したり、影響を受けるパッケージに対して、ライブラリの使い方に対するバグを報告する、などが
+ SONAME を変更するより、より適切な対処でしょう。
+ ただし、標準的な方法は、ABI の変更によりプログラムが動作しなくなる場合は
+ SONAME を変更する、です。
+ </footnote>。
+ 共有ライブラリに新しいシンボルを加えることは後方互換性を持った変更です。
+ 共有ライブラリからシンボルを削除することは後方互換性を持ちません。
+ シンボルの挙動を変更することによる後方互換性の有無は、変更の内容によります。
+ 例えば、関数で以前に使っていなかった新しい enum
+ 定数を受け付けるような変更は通常は後方互換性を持ちますが、
+ ライブラリ関数に渡す構造体のメンバを変更する場合は、旧バージョンのデータ構造を受け付けるような特別の対処が行われていない限り、一般的には非互換です。
+ </p>
+
+ <p><!--
+ ABI changes that are not backward-compatible normally require
+ changing the <tt>SONAME</tt> of the library and therefore the
+ shared library package name, which forces rebuilding all
+ packages using that shared library to update their
+ dependencies and allow them to use the new version of the
+ shared library. For more information,
+ see <ref id="sharedlibs-runtime">. The remainder of this
+ section will deal with backward-compatible changes.-->
+ 後方互換性を持たない ABI 変更では、通常ライブラリの <tt>SONAME</tt>
+ の変更、すなわち共有ライブラリパッケージ名の変更が必要になり、
+ それにともなって新しいバージョンの共有ライブラリを用いることができるようにするため、共有ライブラリを利用しているすべてのパッケージの再ビルドが強制されます。
+ この処理の詳細については <ref id="sharedlibs-runtime">
+ を参照ください。
+ この節での以降の部分では後方互換性を持つ変更について説明します。
+ </p>
+
+ <p><!--
+ Backward-compatible changes require either updating or
+ recording the <var>minimal-version</var> for that symbol
+ in <file>symbols</file> files or updating the version in
+ the <var>dependencies</var> in <file>shlibs</file> files. For
+ more information on how to do this in the two formats, see
+ <ref id="symbols"> and <ref id="shlibs">. Below are general
+ rules that apply to both files.-->
+ 後方互換性を持つ変更では、<file>symbols</file>
+ ファイル中にシンボルファイルの
+ <var>minimal-version (最小バージョン)</var>
+ の更新または記録を行うか、<file>shlibs</file>
+ ファイル中の <var>dependencies</var>
+ フィールドの更新が必要になります。
+ この2つのフォーマットでこの処理をどのように行うかの詳細は、各々
+ <ref id="symbols"> と <ref id="shlibs"> を参照ください。
+ 以下は両方のファイルで適用される一般的な規則です。
+ </p>
+
+ <p><!--
+ The easy case is when a public symbol is added. Simply add
+ the version at which the symbol was introduced
+ (for <file>symbols</file> files) or update the dependency
+ version (for <file>shlibs</file>) files. But special care
+ should be taken to update dependency versions when the
+ behavior of a public symbol changes. This is easy to neglect,
+ since there is no automated method of determining such
+ changes, but failing to update versions in this case may
+ result in binary packages with too-weak dependencies that will
+ fail at runtime, possibly in ways that can cause security
+ vulnerabilities. If the package maintainer believes that a
+ symbol behavior change may have occurred but isn't sure, it's
+ safer to update the version rather than leave it unmodified.
+ This may result in unnecessarily strict dependencies, but it
+ ensures that packages whose dependencies are satisfied will
+ work properly.-->
+ 簡単な場合は、公開シンボルの追加です。
+ 該当のシンボルの追加されたバージョン番号を <file>symbols</file>
+ ファイルに追加するか、<file>shlibs</file>
+ ファイルでの依存するバージョンを更新してください。
+ 一方公開シンボルの挙動が変化した場合の、依存するバージョンの更新については特段の配慮を行うべきです。
+ このような変更の有無を自動的に判定する手段が無いため、このような処理は抜けやすいものですが、
+ この場合にバージョンの更新が行われないことによってバイナリパッケージに弱すぎる依存関係が提供され、実行時にセキュリティ上の脆弱性となる方法でプログラムが落ちる結果となる場合があります。
+ パッケージメンテナが、シンボルの挙動の変更があるかもしれないが確かではないと考える場合は、
+ 変更しないよりバージョンを更新するほうが安全です。
+ これにより不必要に厳しい依存関係となる可能性はありますが、パッケージの依存関係を満たすパッケージが正しく動作することは保証できます。
+ </p>
+
+ <p><!--
+ A common example of when a change to the dependency version
+ is required is a function that takes an enum or struct
+ argument that controls what the function does. For example:
+ <example>
+ enum library_op { OP_FOO, OP_BAR };
+ int library_do_operation(enum library_op);
+ </example>
+ If a new operation, <tt>OP_BAZ</tt>, is added,
+ the <var>minimal-version</var>
+ of <tt>library_do_operation</tt> (for <file>symbols</file>
+ files) or the version in the dependency for the shared library
+ (for <file>shlibs</file> files) must be increased to the
+ version at which <tt>OP_BAZ</tt> was introduced. Otherwise, a
+ binary built against the new version of the library (having
+ detected at compile-time that the library
+ supports <tt>OP_BAZ</tt>) may be installed with a shared
+ library that doesn't support <tt>OP_BAZ</tt> and will fail at
+ runtime when it tries to pass <tt>OP_BAZ</tt> into this
+ function.-->
+ 依存するバージョンの変更が必要となる典型的例は、関数がどのような処理を行うかを指示する引数として
+ enum 値または構造体を取る場合です。例えば
+ <example>
+ enum library_op { OP_FOO, OP_BAR };
+ int library_do_operation(enum library_op);
+ </example>
+ もし新しい処理 <tt>OP_BAZ</tt> が追加された場合、
+ (<file>symbols</file> ファイルの)
+ <tt>library_do_operation</tt> の <var>minimal-version</var>、または
+ (<file>shlibs</file> ファイルの)
+ 共有ライブラリの「依存するバージョン」の指定は、<tt>OP_BAZ</tt>
+ が導入されたバージョンに増加させなければいけません。
+ さもなければ、ライブラリの新バージョンを用いてビルドされた
+ (コンパイル時にライブラリが <tt>OP_BAZ</tt> がサポートされていることを検出した)
+ バイナリが <tt>OP_BAZ</tt>
+ をサポートしていないライブラリ環境でインストールされ、この関数に
+ <tt>OP_BAZ</tt> を渡そうとして実行時に落ちることになるでしょう。
+ </p>
+
+ <p><!--
+ Dependency versions in either <file>symbols</file>
+ or <file>shlibs</file> files normally should not contain the
+ Debian revision of the package, since the library behavior is
+ normally fixed for a particular upstream version and any
+ Debian packaging of that upstream version will have the same
+ behavior. In the rare case that the library behavior was
+ changed in a particular Debian revision, appending <tt>~</tt>
+ to the end of the version that includes the Debian revision is
+ recommended, since this allows backports of the shared library
+ package using the normal backport versioning convention to
+ satisfy the dependency.-->
+ <file>symbols</file> または <file>shlibs</file>
+ ファイルで指定された依存するバージョンは、通常はパッケージの Debian
+ レビジョンを含むべきではありません。
+ これは、ライブラリの挙動は上流の特定のバージョンで通常修正され、Debian
+ パッケージはそれと同じ挙動となるからです。まれには特定の Debian
+ レビジョンでライブラリの挙動が変更されることがあり、その場合にはバージョン末尾に
+ <tt>~</tt> を追加して Debian レビジョンを含めることを推奨します。
+ これにより共有ライブラリのバックポート時に、依存関係を満足させるようにするための通常のバックポートバージョン付けのやり方が使えるためです。
+ </p>
+ </sect1>
+
+ <sect1 id="sharedlibs-symbols">
+ <!--<heading>The <tt>symbols</tt> system</heading>-->
+ <heading><tt>symbols</tt> システム</heading>
+
+ <p><!--
+ In the following sections, we will first describe where the
+ various <file>symbols</file> files are to be found, then
+ the <file>symbols</file> file format, and finally how to
+ create <file>symbols</file> files if your package contains a
+ shared library.-->
+ 以下の節では、まず様々な <file>symbols</file> ファイルを置く場所を説明し、次に
+ <file>symbols</file>
+ ファイルフォーマットの説明、最後に共有ライブラリを持つパッケージでどのようにして
+ <file>symbols</file> を作成するかを説明します。
+ </p>
+
+ <sect2 id="symbols-paths">
+ <!--<heading>The <file>symbols</file> files present on the
+ system</heading>-->
+ <heading>現在のシステムに存在する <file>symbols</file> ファイル</heading>
+
+ <p><!--
+ <file>symbols</file> files for a shared library are normally
+ provided by the shared library package as a control file,
+ but there are several override paths that are checked first
+ in case that information is wrong or missing. The following
+ list gives them in the order in which they are read
+ by <prgn>dpkg-shlibdeps</prgn> The first one that contains
+ the required information is used.-->
+ 共有ライブラリの <file>symbols</file>
+ ファイルは、通常は共有ライブラリパッケージの制御ファイルとして提供されます。
+ ただし、情報が正しくなかったり欠けていた場合に上書きする手段がいくつか有り、まずそちらをチェックします。
+ 以下のリストは、<prgn>dpkg-shlibdeps</prgn>
+ が読み取る順を示したものであり、最初に見つかった必要な情報を提供するものが使われます。
+ <list>
+ <item>
+ <p><file>debian/*/DEBIAN/symbols</file></p>
+
+ <p><!--
+ During the package build, if the package itself
+ contains shared libraries with <file>symbols</file>
+ files, they will be generated in these staging
+ directories by <prgn>dpkg-gensymbols</prgn>
+ (see <ref id="providing-symbols">). <file>symbols</file>
+ files found in the build tree take precedence
+ over <file>symbols</file> files from other binary
+ packages.-->
+ パッケージビルドの際に、パッケージに <file>symbols</file>
+ ファイルを持つ共有ライブラリが含まれている場合、そのライブラリは
+ <prgn>dpkg-gensymbols</prgn> によって上記の作業用ディレクトリ内に作成されます
+ (<ref id="providing-symbols"> 参照)。ビルドツリー内で見つかった
+ <file>symbols</file> は、他のバイナリパッケージ由来の <file>symbols</file>
+ ファイルに優先されます。
+ </p>
+
+ <p><!--
+ These files must exist
+ before <prgn>dpkg-shlibdeps</prgn> is run or the
+ dependencies of binaries and libraries from a source
+ package on other libraries from that same source
+ package will not be correct. In practice, this means
+ that <prgn>dpkg-gensymbols</prgn> must be run
+ before <prgn>dpkg-shlibdeps</prgn> during the package
+ build.<footnote>-->
+ これらのファイルは、<prgn>dpkg-shlibdeps</prgn> が走る前になければいけません。
+ さもなければ、あるソースパッケージから生成されるバイナリ及びライブラリからの、同じソースパッケージから生成される (共有) ライブラリに対する依存関係が正しく作成されません。
+ 実務上は、この条件はバッケージビルド中に <prgn>dpkg-gensymbols</prgn> を
+ <prgn>dpkg-shlibdeps</prgn> より前に走らせなければならないことを意味します
+ <footnote>
+ An example may clarify. Suppose the source
+ package <tt>foo</tt> generates two binary
+ packages, <tt>libfoo2</tt> and <tt>foo-runtime</tt>.
+ When building the binary packages, the contents of
+ the packages are staged in the
+ directories <file>debian/libfoo2</file>
+ and <file>debian/foo-runtime</file> respectively.
+ (<file>debian/tmp</file> could be used instead of
+ one of these.) Since <tt>libfoo2</tt> provides
+ the <tt>libfoo</tt> shared library, it will contain
+ a <tt>symbols</tt> file, which will be installed
+ in <file>debian/libfoo2/DEBIAN/symbols</file>,
+ eventually to be included as a control file in that
+ package. When <prgn>dpkg-shlibdeps</prgn> is run on the
+ executable <file>debian/foo-runtime/usr/bin/foo-prog</file>,
+ it will examine
+ the <file>debian/libfoo2/DEBIAN/symbols</file> file
+ to determine whether <tt>foo-prog</tt>'s library
+ dependencies are satisfied by any of the libraries
+ provided by <tt>libfoo2</tt>. Since those binaries
+ were linked against the just-built shared library as
+ part of the build process, the <file>symbols</file>
+ file for the newly-built <tt>libfoo2</tt> must take
+ precedence over a <file>symbols</file> file for any
+ other <tt>libfoo2</tt> package already installed on
+ the system.-->
+ 理解の助けになるよう例を挙げておきます。ソースパッケージ
+ <tt>foo</tt> から二つのバイナリパッケージ <tt>libfoo2</tt>
+ と <tt>foo-runtime</tt> が作られるとします。
+ バイナリパッケージのビルドの際、二つのパッケージは順に
+ <file>debian/libfoo2</file> と <file>debian/foo-runtime</file>
+ 作業用ディレクトリに作られます (そのうち一方の代わりに
+ <file>debian/tmp</file> が使えます)。<tt>libfoo2</tt>
+ は <tt>libfoo</tt> 共有ライブラリを提供するため、<tt>symbols</tt>
+ ファイルを含んでおり、それは
+ <file>debian/libfoo2/DEBIAN/symbols</file>
+ にインストールされ、後にそのパッケージのコントロールファイルとして収録されます。
+ その後、<prgn>dpkg-shlibdeps</prgn> は実行ファイル
+ <file>debian/foo-runtime/usr/bin/foo-prog</file>
+ に対して実行された際には、
+ <file>debian/libfoo2/DEBIAN/symbols</file> ファイルが調べられ、
+ <tt>foo-prog</tt> のライブラリ依存関係が <tt>libfoo2</tt>
+ が提供するライブラリで満たされるかどうかの判定が行われます。
+ これらのバイナリは、ビルド処理の中で今ビルドしたての共有ライブラリに対してリンクされますので、
+ 新しく作成された <tt>libfoo2</tt> の <file>symbols</file>
+ ファイルは、システムに既にインストール済みの、他の <tt>libfoo2</tt> の
+ <file>symbols</file> ファイルより優先されなければならないのです。
+ </footnote>。
+ </p>
+ </item>
+
+ <item>
+ <p>
+ <file>/etc/dpkg/symbols/<var>package</var>.symbols.<var>arch</var></file>
+ <!--and-->と <file>/etc/dpkg/symbols/<var>package</var>.symbols</file>
+ </p>
+
+ <p><!--
+ Per-system overrides of shared library dependencies.
+ These files normally do not exist. They are
+ maintained by the local system administrator and must
+ not be created by any Debian package.-->
+ システム毎での共有ライブラリ依存関係を上書きします。
+ これらのファイルは通常存在しません。
+ これらのファイルはローカルのシステム管理者が管理し、Debian
+ パッケージから作成することは許されません。
+ </p>
+ </item>
+
+ <item>
+ <!--<p><file>symbols</file> control files for packages
+ installed on the system</p>-->
+ <p>システムにインストール済みのパッケージの <file>symbols</file> コントロールファイル</p>
+
+ <p><!--
+ The <file>symbols</file> control files for all the
+ packages currently installed on the system are
+ searched last. This will be the most common source of
+ shared library dependency information. These are
+ normally found
+ in <file>/var/lib/dpkg/info/*.symbols</file>, but
+ packages should not rely on this and instead should
+ use <tt>dpkg-query --control-path <var>package</var>
+ symbols</tt> if for some reason these files need to be
+ examined.-->
+ 現在対象システムにインストールされているパッケージ全ての
+ <file>symbols</file> コントロールファイルが最後に検索されます。
+ ここが、共有ライブラリの依存関係情報の最も普通の置き場所です。
+ このファイル群は通常 <file>/var/lib/dpkg/info/*.symbols</file>
+ にありますが、パッケージはこのパス指定に依存すべきではなく、
+ 何らかの理由でこれらファイルを検索する必要が出た場合には、代わりに
+ <tt>dpkg-query --control-path <var>package</var> symbols</tt>
+ を使ってください。
+ </p>
+ </item>
+ </list>
</p>
- </footnote>。
- </p>
- <p><!--
- In the following sections, we will first describe where the
- various <tt>shlibs</tt> files are to be found, then how to
- use <prgn>dpkg-shlibdeps</prgn>, and finally the
- <tt>shlibs</tt> file format and how to create them if your
- package contains a shared library.-->
- 以下の節では、まず各 <tt>shlibs</tt>
- を探すべき場所について記載し、次に
- <prgn>dpkg-shlibdeps</prgn> の使い方について、最後に
- <tt>shlibs</tt> ファイルフォーマットと、あなたのパッケージが共有ライブラリを含む際にこのファイルをどう作るのかについて説明していきます。
- </p>
+ <p><!--
+ Be aware that if a <file>debian/shlibs.local</file> exists
+ in the source package, it will override
+ any <file>symbols</file> files. This is the only case where
+ a <file>shlibs</file> is used despite <file>symbols</file>
+ files being present. See <ref id="shlibs-paths">
+ and <ref id="sharedlibs-shlibdeps"> for more information.-->
+ ソースパッケージに <file>debian/shlibs.local</file>
+ が含まれている場合は注意してください。このファイルは <file>symbols</file>
+ を上書きします。このような上書きが <file>symbols</file> ファイルが存在する場合にも
+ <file>shlibs</file> が使われる唯一の場合です。
+ 詳しくは <ref id="shlibs-paths"> と <ref id="sharedlibs-shlibdeps">
+ を参照ください。
+ </p>
+ </sect2>
- <!--<sect1><heading>The <tt>shlibs</tt> files present on the system-->
- <sect1><heading>システム中の <tt>shlibs</tt> ファイル</heading>
+ <sect2 id="symbols">
+ <!--<heading>The <file>symbols</file> File Format</heading>-->
+ <heading><file>symbols</file> ファイルフォーマット</heading>
- <p><!--
- There are several places where <tt>shlibs</tt> files are
- found. The following list gives them in the order in which
- they are read by
- <qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref>.
- (The first one which gives the required information is used.)-->
+ <p><!--
+ The following documents the format of
+ the <file>symbols</file> control file as included in binary
+ packages. These files are built from
+ template <file>symbols</file> files in the source package
+ by <prgn>dpkg-gensymbols</prgn>. The template files support
+ a richer syntax that allows <prgn>dpkg-gensymbols</prgn> to
+ do some of the tedious work involved in
+ maintaining <file>symbols</file> files, such as handling C++
+ symbols or optional symbols that may not exist on particular
+ architectures. When writing <file>symbols</file> files for
+ a shared library package, refer
+ to <manref name="dpkg-gensymbols" section="1"> for the
+ richer syntax.-->
+ 以下の文書は、バイナリパッケージに収録される <file>symbols</file>
+ コントロールファイルの書式を記載したものです。
+ これらのファイルは、ソースパッケージ中のテンプレートとなる
+ <file>symbols</file> から <prgn>dpkg-gensymbols</prgn>
+ によってビルドされます。テンプレートファイルは更に詳細指定可能な書式を持っており、管理する
+ <prgn>dpkg-gensymbols</prgn> が <file>symbols</file> ファイル管理に伴う面倒な作業の一部
+ (C++ のシンボルの管理や、特定アーキテクチャで存在しないようなオプションのシンボルの管理など)
+ を行えるようになっています。
+ 共有ライブラリパッケージの <file>symbols</file>
+ ファイルを書く場合は、ここで述べた詳細指定可能な書式の内容について
+ <manref name="dpkg-gensymbols" section="1"> を参照ください。
+ </p>
+
+ <p><!--
+ A <file>symbols</file> may contain one or more entries, one
+ for each shared library contained in the package
+ corresponding to that <file>symbols</file>. Each entry has
+ the following format:-->
+ <file>symbols</file> は一つないし複数のエントリで、各エントリはその
+ <file>symbols</file> に対応するパッケージに収録された共有ライブラリの各々に対応します。
+ 各エントリのフォーマットは以下の通りです。
+ </p>
+
+ <p>
+ <example>
+ <var>library-soname</var> <var>main-dependency-template</var>
+ [| <var>alternative-dependency-template</var>]
+ [...]
+ [* <var>field-name</var>: <var>field-value</var>]
+ [...]
+ <var>symbol</var> <var>minimal-version</var>[ <var>id-of-dependency-template</var> ]
+ </example>
+ </p>
+
+ <p><!--
+ To explain this format, we'll use the the <tt>zlib1g</tt>
+ package as an example, which (at the time of writing)
+ installs the shared
+ library <file>/usr/lib/libz.so.1.2.3.4</file>. Mandatory
+ lines will be described first, followed by optional lines.-->
+ このフォーマットの説明では、例として <tt>zlib1g</tt> パッケージを用いましょう。
+ この文書記載時点では、このパッケージは共有ライブラリ
+ <file>/usr/lib/libz.so.1.2.3.4</file> をインストールします。
+ まず記載必須の行について説明し、そのあとでオプションの行を説明します。
+ </p>
+
+ <p><!--
+ <var>library-soname</var> must contain exactly the value of
+ the ELF <tt>SONAME</tt> attribute of the shared library. In
+ our example, this is <tt>libz.so.1</tt>.<footnote>
+ This can be determined by using the command
+ <example compact="compact">
+ readelf -d /usr/lib/libz.so.1.2.3.4 | grep SONAME
+ </example>
+ </footnote>-->
+ <var>library-soname</var> には共有ライブラリの ELF <tt>SONAME</tt>
+ アトリビュートの正確な値が記載されていなければいけません。ここでの例では、これは
+ <tt>libz.so.1</tt><footnote>
+ この値は以下のコマンドを使えば得られます。
+ <example compact="compact">
+ readelf -d /usr/lib/libz.so.1.2.3.4 | grep SONAME
+ </example>
+ </footnote> です。
+ </p>
+
+ <p><!--
+ <var>main-dependency-template</var> has the same syntax as a
+ dependency field in a binary package control file, except
+ that the string <tt>#MINVER#</tt> is replaced by a version
+ restriction like <tt>(>= <var>version</var>)</tt> or by
+ nothing if an unversioned dependency is deemed sufficient.
+ The version restriction will be based on which symbols from
+ the shared library are referenced and the version at which
+ they were introduced (see below). In nearly all
+ cases, <var>main-dependency-template</var> will
+ be <tt><var>package</var> #MINVER#</tt>,
+ where <var>package</var> is the name of the binary package
+ containing the shared library. This adds a simple,
+ possibly-versioned dependency on the shared library package.
+ In some rare cases, such as when multiple packages provide
+ the same shared library ABI, the dependency template may
+ need to be more complex.-->
+ <var>main-dependency-template</var> は、
+ バイナリパッケージコントロールファイルの依存関係フィールドと同様の書式ですが、文字列
+ <tt>#MINVER#</tt> は <tt>(>= <var>バージョン</var>)</tt>
+ のようなバージョンの制限条件で置き換えるか、特にバージョン無指定で十分と考えられる場合は何も指定しません。
+ ここでのバージョンの制限条件は、共有ライブラリから参照されるシンボルと、そのシンボルが導入されたバージョンに基づいて決められます (以下参照)。
+ ほとんどすべての場合、<var>main-dependency-template</var> は
+ <tt><var>package</var> #MINVER#</tt> という記述となります。ここで <var>package</var>
+ は該当共有ライブラリを含むバイナリパッケージの名前です。
+ これにより、共有ライブラリパッケージに対する単純で、恐らく妥当なバージョン依存関係を指定できます。
+ 特別の場合、例えば複数のパッケージが同じ共有ライブラリ ABI を提供しているような場合には、
+ 依存関係のテンプレートはもっと複雑なものになります。
+ </p>
+
+ <p><!--
+ In our example, the first line of
+ the <tt>zlib1g</tt> <file>symbols</file> file would be:-->
+ ここでの例では、<tt>zlib1g</tt> の <file>symbols</file> の最初の行は
+ <example compact="compact">
+ libz.so.1 zlib1g #MINVER#
+ </example>
+ となるでしょう。
+ </p>
+
+ <p><!--
+ Each public symbol exported by the shared library must have
+ a corresponding symbol line, indented by one
+ space. <var>symbol</var> is the exported symbol (which, for
+ C++, means the mangled symbol) followed by <tt>@</tt> and
+ the symbol version, or the string <tt>Base</tt> if there is
+ no symbol version. <var>minimal-version</var> is the most
+ recent version of the shared library that changed the
+ behavior of that symbol, whether by adding it, changing its
+ function signature (the parameters, their types, or the
+ return type), or changing its behavior in a way that is
+ visible to a caller.
+ <var>id-of-dependency-template</var> is an optional
+ field that references
+ an <var>alternative-dependency-template</var>; see below for
+ a full description.-->
+ 共有ライブラリからエクスポートされる公開シンボルの各々に対して、対応する
+ symbol 行の指定が必要です。これは、空白一文字でインデントされます。
+ <var>symbol</var> 行はエクスポートされたシンボル (C++
+ では、マングルされたシンボルです) に続いて <tt>@</tt>
+ とシンボルのバージョン、またはシンボルバージョンがない場合は文字列
+ <tt>Base</tt> が置かれます。<var>minimal-version</var>
+ は、そのシンボルの挙動が最後に変更された (追加または関数の仕様の変更、例えば
+ 引数の追加削除や型の変更、戻り型の変更など)、
+ または呼び出し元に見える形で動作が最後に変更された、共有ライブラリのバージョンです。
+ <var>id-of-dependency-template</var> はオプションのフィールドで、
+ <var>alternative-dependency-template</var> を参照します。
+ 詳しい説明は以下を参照ください。
+ </p>
+
+ <p><!--
+ For example, <tt>libz.so.1</tt> contains the
+ symbols <tt>compress</tt>
+ and <tt>compressBound</tt>. <tt>compress</tt> has no symbol
+ version and last changed its behavior in upstream
+ version <tt>1:1.1.4</tt>. <tt>compressBound</tt> has the
+ symbol version <tt>ZLIB_1.2.0</tt>, was introduced in
+ upstream version <tt>1:1.2.0</tt>, and has not changed its
+ behavior. Its <file>symbols</file> file therefore contains
+ the lines:-->
+ 例えば、<tt>libz.so.1</tt> には <tt>compress</tt> と
+ <tt>compressBound</tt> シンボルが含まれています。<tt>compress</tt>
+ にはシンボルバージョンの指定がなく、上流で最後に挙動が変更されたのはバージョン
+ <tt>1:1.1.4</tt> の際です。<tt>compressBound</tt>
+ にはシンボルバージョン <tt>ZLIB_1.2.0</tt>
+ が指定されており、それ以降の挙動の変更はありません。
+ したがって、ここでの <file>symbols</file>
+ には以下の行が含まれます。
+ <example compact="compact">
+ compress@Base 1:1.1.4
+ compressBound@xxxxxxxxxx 1:1.2.0
+ </example><!--
+ Packages using only <tt>compress</tt> would then get a
+ dependency on <tt>zlib1g (>= 1:1.1.4)</tt>, but packages
+ using <tt>compressBound</tt> would get a dependency
+ on <tt>zlib1g (>= 1:1.2.0)</tt>.-->
+ <tt>compress</tt> だけを用いるパッケージは、ここから
+ <tt>zlib1g (>= 1:1.1.4)</tt> という依存関係を得ますが、
+ <tt>compressBound</tt> を用いるパッケージの依存関係は
+ <tt>zlib1g (>= 1:1.2.0)</tt> になります。
+ </p>
+
+ <p><!--
+ One or more <var>alternative-dependency-template</var> lines
+ may be provided. These are used in cases where some symbols
+ in the shared library should use one dependency template
+ while others should use a different template. The
+ alternative dependency templates are used only if a symbol
+ line contains the <var>id-of-dependency-template</var>
+ field. The first alternative dependency template is
+ numbered 1, the second 2, and so forth.<footnote>
+ An example of where this may be needed is with a library
+ that implements the libGL interface. All GL
+ implementations provide the same set of base interfaces,
+ and then may provide some additional interfaces only used
+ by programs that require that specific GL implementation.
+ So, for example, libgl1-mesa-glx may use the
+ following <file>symbols</file> file:-->
+ 一つないしは複数の <var>alternative-dependency-template</var>
+ 行を指定可能です。
+ この行は共有ライブラリの一部のシンボルが他のシンボルと異なったテンプレートを使うべきであるばあいに指定されます。
+ 代替依存関係テンプレートは、シンボル行に
+ <var>id-of-dependency-template</var>
+ 行が含まれる場合にのみ使われます。最初の代替依存関係テンプレートには番号 1 が、以下順に番号 2、3 と続きます
+ <footnote>
+ libGL インターフェースを実装したライブラリでこれが必要になる例を示します。
+ 全ての GL 実装は基本インターフェースとして同じ ABI
+ を提供し、さらに個々に追加の拡張インターフェースを提供しており、後者は特定の GL 実装が必要なプログラムだけが利用します。
+ したがって、例えば、libgl1-mesa-glx では以下のような
+ <file>symbols</file> ファイルを利用可能です。
+ <example>
+ libGL.so.1 libgl1
+ | libgl1-mesa-glx #MINVER#
+ publicGlSymbol@Base 6.3-1
+ [...]
+ implementationSpecificSymbol@Base 6.5.2-7 1
+ [...]
+ </example><!--
+ Binaries or shared libraries using
+ only <tt>publicGlSymbol</tt> would depend only
+ on <tt>libgl1</tt> (which may be provided by multiple
+ packages), but ones
+ using <tt>implementationSpecificSymbol</tt> would get a
+ dependency on <tt>libgl1-mesa-glx (>= 6.5.2-7)</tt>-->
+ バイナリまたは共有ライブラリで、<tt>publicGlSymbol</tt>
+ だけを用いるものは <tt>libgl1</tt> だけに依存し
+ (これは複数のパッケージから提供されている可能性があります)、
+ <tt>implementationSpecificSymbol</tt> を使うものは
+ <tt>libgl1-mesa-glx (>= 6.5.2-7)</tt>
+ への依存関係を持つことになります。
+ </footnote>。
+ </p>
+
+ <p><!--
+ Finally, the entry for the library may contain one or more
+ metadata fields. Currently, the only
+ supported <var>field-name</var>
+ is <tt>Build-Depends-Package</tt>, whose value lists
+ the <qref id="sharedlibs-dev">library development
+ package</qref> on which packages using this shared library
+ declare a build dependency. If this field is
+ present, <prgn>dpkg-shlibdeps</prgn> uses it to ensure that
+ the resulting binary package dependency on the shared
+ library is at least as strict as the source package
+ dependency on the shared library development
+ package.<footnote>
+ This field should normally not be necessary, since if the
+ behavior of any symbol has changed, the corresponding
+ symbol <var>minimal-version</var> should have been
+ increased. But including it makes the <tt>symbols</tt>
+ system more robust by tightening the dependency in cases
+ where the package using the shared library specifically
+ requires at least a particular version of the shared
+ library development package for some reason.-->
+ 最後に、ライブラリに対応するエントリには、一つないし複数のメタデータフィールドを含めることができます。
+ 現時点では、サポートされている <var>フィールド名 (field-name)</var> は
+ <tt>Build-Depends-Package</tt> だけで、このフィールドの値は、このパッケージを使うパッケージがビルド時の依存関係を宣言すべき
+ <qref id="sharedlibs-dev">ライブラリ開発用パッケージ名</qref> を列挙します。
+ このフィールドが存在する場合、このフィールドの値を
+ <prgn>dpkg-shlibdeps</prgn> が利用し
+ 結果として生成されるバイナリパッケージの共有ライブラリへの依存関係が、
+ 共有ライブラリ開発用パッケージに対するソースパッケージの依存関係より少なくとも同等か厳しい物になるよう保証します
+ <footnote>
+ このフィールドは通常必要はありません。
+ というのはもしシンボルの挙動が変化した場合、対応するシンボルの
+ <var>minimal-version</var> を増やすべきだからです。
+ しかしながら、例えばこの共有ライブラリを使うパッケージが、
+ 何らかの理由により特定のバージョンの共有ライブラリ開発用パッケージを指定して依存したい場合など、
+ この機能がある方がシステムがより問題の少ないものとなります。
+ </footnote><!--
+ For our example, the <tt>zlib1g</tt> <file>symbols</file>
+ file would contain:-->。
+ ここでの例では、<tt>zlib1g</tt> の <file>symbols</file>
+ には以下の行が含まれます。
+ <example compact="compact">
+ * Build-Depends-Package: zlib1g-dev
+ </example>
+ </p>
+
+ <p><!--
+ Also see <manref name="deb-symbols" section="5">.-->
+ また、<manref name="deb-symbols" section="5"> も参照ください。
+ </p>
+ </sect2>
+
+ <sect2 id="providing-symbols">
+ <!-- <heading>Providing a <file>symbols</file> file</heading>-->
+ <heading><file>symbols</file> ファイルを用意する</heading>
+
+ <p><!--
+ If your package provides a shared library, you should
+ arrange to include a <file>symbols</file> control file
+ following the format described above in that package. You
+ must include either a <file>symbols</file> control file or
+ a <file>shlibs</file> control file.-->
+ 作成したパッケージに共有ライブラリが含まれる場合、上記フォーマットに従った
+ <file>symbols</file> コントロールファイルをパッケージに含めるよう用意すべきです。
+ また、<file>symbols</file> コントロールファイルか、<file>shlibs</file>
+ コントロールファイルのいずれかは含めなければいけません。
+ </p>
+
+ <p><!--
+ Normally, this is done by creating a <file>symbols</file> in
+ the source package
+ named <file>debian/<var>package</var>.symbols</file>
+ or <file>debian/symbols</file>, possibly
+ with <file>.<var>arch</var></file> appended if the symbols
+ information varies by architecture. This file may use the
+ extended syntax documented in <manref name="dpkg-gensymbols"
+ section="1">. Then, call <prgn>dpkg-gensymbols</prgn> as
+ part of the package build process. It will
+ create <file>symbols</file> files in the package staging
+ area based on the binaries and libraries in the package
+ staging area and the <file>symbols</file> files in the
+ source package.<footnote>
+ If you are
+ using <tt>debhelper</tt>, <prgn>dh_makeshlibs</prgn> will
+ take care of calling either <prgn>dpkg-gensymbols</prgn>
+ or generating a <file>shlibs</file> file as appropriate.
+ </footnote>-->
+ 通常は、この容易はソースパッケージに <file>symbols</file>
+ ファイルを <file>debian/<var>package</var>.symbols</file>
+ という名前か、あるいは <file>debian/symbols</file>
+ という名称で作成することによって行われます。
+ シンボル情報がアーキテクチャによって異なる場合には、上記の名称に
+ <file>.<var>arch</var></file> が付け加えられます。
+ このファイルは、<manref name="dpkg-gensymbols" section="1">
+ で文書化された拡張書式を利用可能です。このファイルの作成後、
+ パッケージビルド処理の一環として <prgn>dpkg-gensymbols</prgn>
+ を呼ぶことにより、ステージング領域内のバイナリと共有ライブラリ、およびこのソースパッケージの
+ <file>symbols</file> ファイルから、パッケージのステージング領域に <file>symbols</file>
+ が作成されます<footnote>
+ <tt>debhelper</tt> を使っている場合は、<prgn>dh_makeshlibs</prgn>
+ が <prgn>dpkg-gensymbols</prgn> を呼ぶか、適切な <file>shlibs</file>
+ ファイルを作成するかの面倒を見てくれます。
+ </footnote>。
+ </p>
+
+ <p><!--
+ Packages that provide <file>symbols</file> files must keep
+ them up-to-date to ensure correct dependencies in packages
+ that use the shared libraries. This means updating
+ the <file>symbols</file> file whenever a new public symbol
+ is added, changing the <var>minimal-version</var> field
+ whenever a symbol changes behavior or signature in a
+ backward-compatible way (see <ref id="sharedlibs-updates">),
+ and changing the <var>library-soname</var>
+ and <var>main-dependency-template</var>, and probably all of
+ the <var>minimal-version</var> fields, when the library
+ changes <tt>SONAME</tt>. Removing a public symbol from
+ the <file>symbols</file> file because it's no longer
+ provided by the library normally requires changing
+ the <tt>SONAME</tt> of the library.
+ See <ref id="sharedlibs-runtime"> for more information
+ on <tt>SONAME</tt>s.-->
+ <file>symbols</file> ファイルを提供するパッケージは、そのパッケージの)
+ 共有ライブラリを用いるパッケージが正しい依存関係を得られるよう、そのファイルを最新にしていなければなりません。
+ つまり、<file>symbols</file> ファイルは新しい公開シンボルが追加された場合には更新され、
+ シンボルの挙動やシグナチャが後方互換性を保つやり方で変更された場合には
+ <var>minimal-version</var> を更新し (<ref id="sharedlibs-updates"> 参照)
+ ライブラリの <tt>SONAME</tt> が変更された場合には、<var>library-soname</var>
+ と <var>main-dependency-template</var>、加えて恐らく <var>minimal-version</var>
+ フィールドの全エントリを更新します。
+ ライブラリからのシンボルの削除に伴って <file>symbols</file>
+ ファイルからパブリックシンボルを削除する場合には、通常ライブラリの
+ <tt>SONAME</tt> の変更が必要になります。<tt>SONAME</tt>
+ についての詳細は、<ref id="sharedlibs-runtime"> を参照ください。
+ </p>
+ </sect2>
+ </sect1>
+
+
+ <sect1 id="sharedlibs-shlibdeps">
+ <!--<heading>The <tt>shlibs</tt> system</heading>-->
+ <heading><tt>shlibs</tt> システム</heading>
+
+ <p><!--
+ The <tt>shlibs</tt> system is a simpler alternative to
+ the <tt>symbols</tt> system for declaring dependencies for
+ shared libraries. It may be more appropriate for C++
+ libraries and other cases where tracking individual symbols is
+ too difficult. It predated the <tt>symbols</tt> system and is
+ therefore frequently seen in older packages. It is also
+ required for udebs, which do not support <tt>symbols</tt>.-->
+ <tt>shlibs</tt> システムは 共有ライブラリの依存関係制限を行うための
+ <tt>symbols</tt> システムのより単純な代替です。
+ C++ ライブラリなどの場合で、個々のシンボルの追跡が困難な場合に適しています。
+ また、<tt>symbols</tt> システムより古くから用いられているため、古いパッケージでよく見られます。
+ また、<tt>symbols</tt> をサポートしていない udeb で必要となります。
+ </p>
+
+ <p><!--
+ In the following sections, we will first describe where the
+ various <file>shlibs</file> files are to be found, then how to
+ use <prgn>dpkg-shlibdeps</prgn>, and finally
+ the <file>shlibs</file> file format and how to create them.-->
+ 以下の節では、まず各 <tt>shlibs</tt> を探すべき場所について記載し、次に
+ <prgn>dpkg-shlibdeps</prgn> の使い方について、最後に <tt>shlibs</tt>
+ ファイルフォーマットと、その作成方法について説明していきます。
+ </p>
+
+ <sect2 id="shlibs-paths">
+ <!--<heading>The <file>shlibs</file> files present on the
+ system</heading>-->
+ <heading>システムに存在する <file>shlibs</file> ファイル</heading>
+
+ <p><!--
+ There are several places where <tt>shlibs</tt> files are
+ found. The following list gives them in the order in which
+ they are read by <prgn>dpkg-shlibdeps</prgn>. (The first
+ one which gives the required information is used.)-->
<tt>shlibs</tt> を探すべき場所は幾つかあります。以下は
<qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref>
から読まれる順に、その場所を列挙したものです。
最初に見つかった必要な情報を提供するものが使われます。
- </p>
+ <list>
+ <item>
+ <p><file>debian/shlibs.local</file></p>
- <p>
- <list>
- <item>
- <p><file>debian/shlibs.local</file></p>
- <p><!--
- This lists overrides for this package. This file should
- normally not be used, but may be needed temporarily in
- unusual situations to work around bugs in other packages,
- or in unusual cases where the normally declared dependency
- information in the installed <file>shlibs</file> file for
- a library cannot be used. This file overrides information
- obtained from any other source.
- -->
+ <p><!--
+ This lists overrides for this package. This file
+ should normally not be used, but may be needed
+ temporarily in unusual situations to work around bugs
+ in other packages, or in unusual cases where the
+ normally declared dependency information in the
+ installed <file>shlibs</file> file for a library
+ cannot be used. This file overrides information
+ obtained from any other source.-->
これはこのパッケージの情報を上書き変更するために使います。
このファイルは通常は使うべきではありませんが、他のパッケージのバグを回避するための特別な場合や、
インストールされているライブラリに対する <file>shlibs</file>
- の通常の宣言されている依存関係を使うことができないような特別の場合などに一時的に必要になる場合があります。
- </p>
- </item>
+ の、通常の方法で宣言されている依存関係を使うことができないような特別の場合などに一時的に必要になる場合があります。
+ このファイルは他のすべてのソースからの情報を上書きします。
+ </p>
+ </item>
- <item>
- <p><file>/etc/dpkg/shlibs.override</file></p>
- <p><!--
- This lists global overrides. This list is normally
- empty. It is maintained by the local system
- administrator.-->
+ <item>
+ <p><file>/etc/dpkg/shlibs.override</file></p>
+
+ <p><!--
+ This lists global overrides. This list is normally
+ empty. It is maintained by the local system
+ administrator.-->
これはシステム全体の情報を上書きするために使います。
このリストは通常空です。
これはローカルのシステム管理者によって管理されます。
- </p>
- </item>
+ </p>
+ </item>
- <item><!--
- <p><file>DEBIAN/shlibs</file> files in the "build directory"</p>-->
- <p><file>build ディレクトリ中の DEBIAN/shlibs</file> ファイル</p>
- <p><!--
- When packages are being built,
- any <file>debian/shlibs</file> files are copied into the
- control information file area of the temporary build
- directory and given the name <file>shlibs</file>. These
- files give details of any shared libraries included in the
- same package.<footnote>
- -->
- パッケージをビルドしようとする際、各 <file>debian/shlibs</file>
- ファイルは一時的に作成されたビルドディレクトリ中のコントロールファイル領域ににコピーされ、
- <file>shlibs</file> という名が付けられます。
- これらのファイルは、そのパッケージに含まれる共有ライブラリの詳細情報を提供します
- <footnote> <!--
- An example may help here. Let us say that the source
- package <tt>foo</tt> generates two binary
- packages, <tt>libfoo2</tt> and <tt>foo-runtime</tt>.
- When building the binary packages, the two packages are
- created in the directories <file>debian/libfoo2</file>
- and <file>debian/foo-runtime</file> respectively.
- (<file>debian/tmp</file> could be used instead of one of
- these.) Since <tt>libfoo2</tt> provides the
- <tt>libfoo</tt> shared library, it will require a
- <tt>shlibs</tt> file, which will be installed in
- <file>debian/libfoo2/DEBIAN/shlibs</file>, eventually to
- become <file>/var/lib/dpkg/info/libfoo2.shlibs</file>.
- When <prgn>dpkg-shlibdeps</prgn> is run on the
- executable <file>debian/foo-runtime/usr/bin/foo-prog</file>,
- it will examine
- the <file>debian/libfoo2/DEBIAN/shlibs</file> file to
- determine whether <tt>foo-prog</tt>'s library
- dependencies are satisfied by any of the libraries
- provided by <tt>libfoo2</tt>. For this reason,
- <prgn>dpkg-shlibdeps</prgn> must only be run once all of
- the individual binary packages' <tt>shlibs</tt> files
- have been installed into the build directory.
- -->
- 理解の助けになるよう例を挙げておきます。ソースパッケージ
- <tt>foo</tt> から二つのバイナリパッケージ <tt>libfoo2</tt>
- と <tt>foo-runtime</tt> が作られるとします。
- バイナリパッケージのビルドの際、二つのパッケージは順に
- <file>debian/libfoo2</file> と <file>debian/foo-runtime</file>
- ディレクトリに作られます (うち一方の代わりに
- <file>debian/tmp</file> が使えます)。<tt>libfoo2</tt>
- は <tt>libfoo</tt> を提供するので、<tt>shlibs</tt>
- ファイルを用意する必要があり、これは
- <file>debian/libfoo2/DEBIAN/shlibs</file>
- にインストールされます。これがこの後
- <file>/var/lib/dpkg/info/libfoo2.shlibs</file>
- になったとします。
- 次に <prgn>dpkg-shlibdeps</prgn> は実行ファイル
- <file>debian/foo-runtime/usr/bin/foo-prog</file>
- に対して実行され、<file>debian/libfoo2/DEBIAN/shlibs</file>
- ファイルが調べられ、
- <tt>foo-prog</tt> のライブラリ依存関係が <tt>libfoo2</tt>
- が提供するライブラリで満たされるかどうかの判定が行われます。
- このため、<prgn>dpkg-shlibdeps</prgn>
- はビルドディレクトリに個々のバイナリパッケージすべての
- <tt>shlibs</tt>
- ファイルがインストールされてから実行する必要があります。
- </footnote>。
- </p>
- </item>
+ <item>
+ <!--<p><file>DEBIAN/shlibs</file> files in the "build
+ directory"</p>-->
+ <p><file>build ディレクトリ中の DEBIAN/shlibs</file> ファイル</p>
- <item>
- <p><file>/var/lib/dpkg/info/*.shlibs</file></p>
- <p><!--
- These are the <file>shlibs</file> files corresponding to
- all of the packages installed on the system, and are
- maintained by the relevant package maintainers.-->
- ここの <file>shlibs</file>
- ファイルはシステムにインストールされている全パッケージに対するもので、各パッケージのメンテナによって管理されています。
- </p>
- </item>
+ <p><!--
+ These files are generated as part of the package build
+ process and staged for inclusion as control files in
+ the binary packages being built. They provide details
+ of any shared libraries included in the same package.-->
+ これらのファイルはパッケージビルド処理の一環で作成され、作成中のバイナリパッケージのコントロールファイルとして収録するよう作業用ディレクトリに格納されます。
+ これらのファイルは、そのパッケージに含まれる共有ライブラリの詳細情報を提供します
+ </p>
+ </item>
- <item>
- <p><file>/etc/dpkg/shlibs.default</file></p>
- <p><!--
- This file lists any shared libraries whose packages
- have failed to provide correct <file>shlibs</file> files.
- It was used when the <file>shlibs</file> setup was first
- introduced, but it is now normally empty. It is
- maintained by the <tt>dpkg</tt> maintainer.-->
+ <item>
+ <!--<p><file>shlibs</file> control files for packages
+ installed on the system</p>-->
+ <p>システムにインストール済みのパッケージの <file>shlibs</file>
+ コントロールファイル</p>
+
+ <p><!--
+ The <file>shlibs</file> control files for all the
+ packages currently installed on the system. These are
+ normally found
+ in <file>/var/lib/dpkg/info/*.shlibs</file>, but
+ packages should not rely on this and instead should
+ use <tt>dpkg-query --control-path <var>package</var>
+ shlibs</tt> if for some reason these files need to be
+ examined.-->
+ この <file>shlibs</file>
+ ファイルはシステムにインストールされている全パッケージに対するものです。
+ このファイル群は通常 <file>/var/lib/dpkg/info/*.shlibs</file>
+ に置かれますが、パッケージはこのパス位置に依存すべきではなく、何らかの理由でこのファイルを調べる必要がある場合には代わりに
+ <tt>dpkg-query --control-path <var>package</var> shlibs</tt>
+ を使ってください。
+ </p>
+ </item>
+
+ <item>
+ <p><file>/etc/dpkg/shlibs.default</file></p>
+
+ <p><!--
+ This file lists any shared libraries whose packages
+ have failed to provide correct <file>shlibs</file>
+ files. It was used when the <file>shlibs</file> setup
+ was first introduced, but it is now normally empty.
+ It is maintained by the <tt>dpkg</tt> maintainer.-->
ここに列挙されているファイルは、正しい <file>shlibs</file>
ファイルが提供されていないパッケージに対するものです。
これは <file>shlibs</file>
設定が最初に導入されたときに使われましたが、現在は通常空です。
これは <tt>dpkg</tt> のメンテナに管理されています。
- </p>
- </item>
- </list>
- </p>
- </sect1>
+ </p>
+ </item>
+ </list>
+ </p>
- <sect1>
- <!--<heading>How to use <prgn>dpkg-shlibdeps</prgn> and the
- <file>shlibs</file> files</heading>-->
- <heading><prgn>dpkg-shlibdeps</prgn> と <file>shlibs</file> の使い方
- </heading>
+ <p><!--
+ If a <file>symbols</file> file for a shared library package
+ is available, <prgn>dpkg-shlibdeps</prgn> will always use it
+ in preference to a <file>shlibs</file>, with the exception
+ of <file>debian/shlibs.local</file>. The latter overrides
+ any other <file>shlibs</file> or <file>symbols</file> files.-->
+ 共有ライブラリで <file>symbols</file> ファイルが提供されている場合、
+ <prgn>dpkg-shlibdeps</prgn> は <file>debian/shlibs.local</file>
+ を例外として、それ以外は常に <file>shlibs</file> より <file>symbols</file>
+ を優先して用います。<file>debian/shlibs.local</file> は、全ての他の
+ <file>shlibs</file> ファイルと <file>symbols</file> ファイルの内容を上書きします。
+ </p>
+ </sect2>
- <p><!--
- Put a call to
- <qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref>
- into your <file>debian/rules</file> file. If your package
- contains only compiled binaries and libraries (but no scripts),
- you can use a command such as:-->
- <file>debian/rules</file> ファイル中に
- <qref id="pkg-dpkg-shlibdeps"><prgn>dpkg-shlibdeps</prgn></qref>
- への呼び出し処理を置いてください。バイナリだけを含んだパッケージ
- (つまり、スクリプトを含まない) の場合、次のコマンドが使えます。
- <example compact="compact">
-dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \
- debian/tmp/usr/lib/*
- </example>
- <!--Otherwise, you will need to explicitly list the compiled
- binaries and libraries.<footnote>-->
- それ以外の場合には、コンパイルされるバイナリとライブラリを明示的に列挙する
- <footnote><p>
- <!--
- If you are using <tt>debhelper</tt>, the
- <prgn>dh_shlibdeps</prgn> program will do this work for you.
- It will also correctly handle multi-binary packages.
- -->
- <tt>debhelper</tt> を使っているなら、これは
- <prgn>dh_shlibdeps</prgn> プログラムを使っておこなえます。
- このプログラムは複数のバイナリパッケージの場合でも正しく処理します。
- </p></footnote> 必要があります。
- </p>
+ <sect2 id="shlibs">
+ <!--<heading>The <file>shlibs</file> File Format</heading>-->
+ <heading><file>shlibs</file> ファイルフォーマット</heading>
- <p><!--
- This command puts the dependency information into the
- <file>debian/substvars</file> file, which is then used by
- <prgn>dpkg-gencontrol</prgn>. You will need to place a
- <tt>${shlibs:Depends}</tt> variable in the <tt>Depends</tt>
- field in the control file for this to work.-->
- このコマンドは <file>debian/substvars</file>
- ファイル中に依存関係の情報を挿入します。
- この情報は後で <prgn>dpkg-gencontrol</prgn> が使います。
- これが正しく処理されるよう、<tt>Depends</tt> フィールドに
- <tt>${shlibs:Depends}</tt> 変数を置かなければならないでしょう。
- </p>
-
- <p><!--
- If you have multiple binary packages, you will need to call
- <prgn>dpkg-shlibdeps</prgn> on each one which contains
- compiled libraries or binaries. In such a case, you will
- need to use the <tt>-T</tt> option to the <tt>dpkg</tt>
- utilities to specify a different <file>substvars</file> file.
- For more details on this and other options, see <manref
- name="dpkg-shlibdeps" section="1">.-->
- 複数のバイナリパッケージを生成する場合には、
- <prgn>dpkg-shlibdeps</prgn> をコンパイルされたバイナリ及び共有ファイルを含むパッケージ毎に実行する必要があります。
- この場合、個別の <file>substvars</file> ファイルを指定するため
- <tt>dpkg</tt> ユーティリティの <tt>-T</tt>
- オプションを使う必要が出てくるでしょう。
- このオプションについての詳細は <manref
- name="dpkg-shlibdeps" section="1"> を見てください。
- </p>
- <p><!--
- If you are creating a udeb for use in the Debian Installer, you
- will need to specify that <prgn>dpkg-shlibdeps</prgn> should use
- the dependency line of type <tt>udeb</tt> by adding
- <tt>-tudeb</tt> option<footnote>
- <prgn>dh_shlibdeps</prgn> from the <tt>debhelper</tt> suite
- will automatically add this option if it knows it is
- processing a udeb.
- </footnote>. If there is no dependency line of
- type <tt>udeb</tt> in the <file>shlibs</file>
- file, <prgn>dpkg-shlibdeps</prgn> will fall back to the regular
- dependency line. -->
- Debian Installer 中で使用するために udeb を作成する場合には、
- <prgn>dpkg-shlibdeps</prgn> が <tt>udeb</tt>
- タイプに対する依存指定行を用いるように、
- <tt>-tudeb</tt> オプション<footnote>
- <tt>debhelper</tt> プログラム群の <prgn>dh_shlibdeps</prgn>
- を用いることによって、udeb
- を使うという判定がなされればこのオプションが自動的に付加されます。
- </footnote> を追加する指定を行なう必要があるでしょう。<file>shlibs</file>
- ファイル中に <tt>udeb</tt> タイプに対する依存関係の指定行がない場合、
- <prgn>dpkg-shlibdeps</prgn> は標準の依存関係指定行を用います。
- </p>
- <p><!--
- For more details on <prgn>dpkg-shlibdeps</prgn>, please see
- <ref id="pkg-dpkg-shlibdeps"> and
- <manref name="dpkg-shlibdeps" section="1">.-->
- <prgn>dpkg-shlibdeps</prgn> について更に詳しく知りたい場合には、
- <ref id="pkg-dpkg-shlibdeps"> と <manref name="dpkg-shlibdeps"
- section="1"> をご覧ください。
- </p>
- </sect1>
-
- <sect1 id="shlibs">
- <!--<heading>The <file>shlibs</file> File Format-->
- <heading><file>shlibs</file> ファイルフォーマット
- </heading>
-
- <p>
- <!--Each <file>shlibs</file> file has the same format. Lines
- beginning with <tt>#</tt> are considered to be comments and
- are ignored. Each line is of the form:-->
+ <p><!--
+ Each <file>shlibs</file> file has the same format. Lines
+ beginning with <tt>#</tt> are considered to be comments and
+ are ignored. Each line is of the form:-->
各 <file>shlibs</file> は同じフォーマットを使います。<tt>#</tt>
で始まる行はコメントとして扱われ、無視されます。
それぞれの行はつぎのものから構成されます。
- <example compact="compact">
-[<var>type</var>: ]<var>library-name</var> <var>soname-version</var> <var>dependencies ...</var>
- </example>
- </p>
- <p><!--
- We will explain this by reference to the example of the
- <tt>zlib1g</tt> package, which (at the time of writing)
- installs the shared library <file>/usr/lib/libz.so.1.1.3</file>.-->
+ <example compact="compact">
+ [<var>type</var>: ]<var>library-name</var> <var>soname-version</var> <var>dependencies ...</var>
+ </example>
+ </p>
+
+ <p><!--
+ We will explain this by reference to the example of the
+ <tt>zlib1g</tt> package, which (at the time of writing)
+ installs the shared
+ library <file>/usr/lib/libz.so.1.2.3.4</file>.-->
<tt>zlib1g</tt> パッケージを例に取り説明していきます。
このパッケージは (これを書いている時点では)
- 共有ライブラリ <file>/usr/lib/libz.so.1.1.3</file> をインストールします。
- </p>
+ 共有ライブラリ <file>/usr/lib/libz.so.1.2.3.4</file> をインストールします。
+ </p>
- <p><!--
- <var>type</var> is an optional element that indicates the type
- of package for which the line is valid. The only type currently
- in use is <tt>udeb</tt>. The colon and space after the type are
- required.-->
- <var>type</var> はオプションとなる要素であり、
- その行が有効なパッケージのタイプを示します。
- 現在使われている唯一のタイプは、<tt>udeb</tt> です。
- タイプの後には、コロンと空白が必要です。
- </p>
+ <p><!--
+ <var>type</var> is an optional element that indicates the
+ type of package for which the line is valid. The only type
+ currently in use is <tt>udeb</tt>. The colon and space
+ after the type are required.-->
+ <var>type</var> はオプションとなる要素であり、その行が有効なパッケージのタイプを示します。
+ 現在使われている唯一のタイプは、<tt>udeb</tt> です。
+ タイプの後には、コロンと空白が必要です。
+ </p>
- <p><!--
- <var>library-name</var> is the name of the shared library,
- in this case <tt>libz</tt>. (This must match the name part
- of the soname, see below.)-->
+ <p><!--
+ <var>library-name</var> is the name of the shared library,
+ in this case <tt>libz</tt>. (This must match the name part
+ of the soname, see below.)-->
<var>library-name</var> は、共有ライブラリの名前です。
- この場合には、<tt>libz</tt> です (これは共有ライブラリの
- .so ファイル名の部分と一致していなければいけません。以下参照のこと)。
- </p>
+ この場合には、<tt>libz</tt> です (これは共有ライブラリ soname
+ のファイル名部分と一致していなければいけません。以下参照のこと)。
+ </p>
- <p><!--
- <var>soname-version</var> is the version part of the
- soname of the library. The soname is the thing that must
- exactly match for the library to be recognized by the
- dynamic linker, and is usually of the form
- <tt><var>name</var>.so.<var>major-version</var></tt>, in our
- example, <tt>libz.so.1</tt>.<footnote>-->
- <var>soname-version</var> はライブラリの .so
- ファイル名のバージョンの部分です。soname
- にはダイナミックリンカに認識されるライブラリ名と厳密に一致した名前を与えなければいけません。
- これは通常、<tt><var>name</var>.so.<var>major-version</var></tt>
- という形式で、ここでの例では <tt>libz.so.1</tt>
- <footnote><p>
- <!--This can be determined using the command-->
- これは以下のコマンドで判定できます。
+ <p><!--
+ <var>soname-version</var> is the version part of the
+ ELF <tt>SONAME</tt> attribute of the library, determined the
+ same way that the <var>soversion</var> component of the
+ recommended shared library package name is determined.
+ See <ref id="sharedlibs-runtime"> for the details.-->
+ <var>soname-version</var> はライブラリの ELF <tt>SONAME</tt>
+ アトリビュートのバージョンの部分で、推奨共有ライブラリのパッケージ名の
+ <var>soversion</var> 要素の判定と同じ規則に従います。
+ 詳細は <ref id="sharedlibs-runtime"> を参照ください。
+ </p>
+
+ <p><!--
+ <var>dependencies</var> has the same syntax as a dependency
+ field in a binary package control file. It should give
+ details of which packages are required to satisfy a binary
+ built against the version of the library contained in the
+ package. See <ref id="depsyntax"> for details on the
+ syntax, and <ref id="sharedlibs-updates"> for details on how
+ to maintain the dependency version constraint.-->
+ <var>dependencies</var>
+ は、バイナリパッケージのコントロールファイル中の依存関係フィールドと同じ書式です。
+ ここには、そのパッケージに含まれるライブラリを用いるようにビルドしたバイナリが動作するために、どのパッケージが必要になるかに関する詳細を記述しておくべきです。
+ 書式の詳細については <ref id="depsyntax"> を、依存バージョンの管理方法の詳細については
+ <ref id="sharedlibs-updates"> を参照ください。
+ </p>
+
+ <p><!--
+ In our example, if the last change to the <tt>zlib1g</tt>
+ package that could change behavior for a client of that
+ library was in version <tt>1:1.2.3.3.dfsg-1</tt>, then
+ the <tt>shlibs</tt> entry for this library could say:-->
+ ここの例では、<tt>zlib1g</tt> パッケージで、少なくとも <tt>1.3</tt>
+ 以降のマイナーバージョン番号を持つ最初のバージョンは
+ <tt>1:1.2.3.3.dfsg-1</tt> ですので、このライブラリの <tt>shlibs</tt>
+ にはこう書きます。
<example compact="compact">
-objdump -p /usr/lib/libz.so.1.1.3 | grep SONAME
+ libz 1 zlib1g (>= 1:1.2.3.3.dfsg)
+ </example><!--
+ This version restriction must be new enough that any binary
+ built against the current version of the library will work
+ with any version of the shared library that satisfies that
+ dependency.-->
+ このバージョンの制限は、ライブラリの現在のバージョンを用いてビルドしたバイナリが、このファイルで指定した依存関係を満たす任意の共有ライブラリで動作できるよう十分に新しいものでなければいけません。
+ </p>
+
+ <p><!--
+ As zlib1g also provides a udeb containing the shared
+ library, there would also be a second line:-->
+ zlib1g も共有ライブラリを含む udeb を提供するため、更に二行目が付加されています。
+ <example compact="compact">
+ udeb: libz 1 zlib1g-udeb (>= 1:1.2.3.3.dfsg)
</example>
- </p></footnote> です。
- <!-- The version part is the part which comes after
- <tt>.so.</tt>, so in our case, it is <tt>1</tt>. The soname may
- instead be of the form
- <tt><var>name</var>-<var>major-version</var>.so</tt>, such
- as <tt>libdb-4.8.so</tt>, in which case the name would
- be <tt>libdb</tt> and the version would be <tt>4.8</tt>.
- -->
- バージョン部は <tt>.so.</tt> の後に来ている部分で、ここの例では
- <tt>1</tt> です。soname 部は <tt>libdb-4.8.so</tt> のように
- <tt><var>name</var>-<var>major-version</var>.so</tt>
- とすることもでき、この場合はライブラリ名が <tt>libdb</tt>
- で、バージョン番号が <tt>4.8</tt> になります。
- </p>
+ </p>
+ </sect2>
- <p><!--
- <var>dependencies</var> has the same syntax as a dependency
- field in a binary package control file. It should give
- details of which packages are required to satisfy a binary
- built against the version of the library contained in the
- package. See <ref id="depsyntax"> for details.-->
- <var>dependencies</var>
- は、バイナリパッケージのコントロールファイル中の
- 依存関係フィールドと同じ書式です。
- ここには、そのパッケージに含まれるライブラリでビルドしたバイナリが動作するためにどのパッケージが必要になるかに関する詳細を記述しておくべきです。
- 詳しくは <ref id="depsyntax"> を参照ください。
- </p>
+ <sect2>
+ <!--<heading>Providing a <file>shlibs</file> file</heading>-->
+ <heading><file>shlibs</file> ファイルを提供する</heading>
- <p><!--
- In our example, if the first version of the <tt>zlib1g</tt>
- package which contained a minor number of at least
- <tt>1.3</tt> was <var>1:1.1.3-1</var>, then the
- <tt>shlibs</tt> entry for this library could say:-->
- ここの例では、<tt>zlib1g</tt> パッケージで、少なくとも <tt>1.3</tt>
- 以降のマイナーバージョン番号を持つ最初のバージョンは
- <var>1:1.1.3-1</var> ですので、このライブラリの <tt>shlibs</tt>
- にはこう書きます。
- <example compact="compact">
-libz 1 zlib1g (>= 1:1.1.3)
- </example>
- <!--The version-specific dependency is to avoid warnings from
- the dynamic linker about using older shared libraries with
- newer binaries.-->
- バージョン指定の依存関係は、古い共有ライブラリを新しいバイナリと共に使った場合、ダイナミックリンカが出す警告メッセージを避けるためのものです。
- <!-- 避けるというより、共有ライブラリをあわせ更新する -->
- </p>
- <p><!--
- As zlib1g also provides a udeb containing the shared library,
- there would also be a second line:-->
- zlib1g も共有ライブラリを含む udeb を提供するため、更に二行目が付加されています。
- <example compact="compact">
-udeb: libz 1 zlib1g-udeb (>= 1:1.1.3)
- </example>
- </p>
- </sect1>
-
- <sect1>
- <!--<heading>Providing a <file>shlibs</file> file</heading>-->
- <heading><file>shlibs</file> ファイルを提供する</heading>
-
- <p><!--
- If your package provides a shared library, you need to create
- a <file>shlibs</file> file following the format described above.
- It is usual to call this file <file>debian/shlibs</file> (but if
- you have multiple binary packages, you might want to call it
- <file>debian/shlibs.<var>package</var></file> instead). Then
- let <file>debian/rules</file> install it in the control
- information file area:
- -->
- パッケージが共有ライブラリを提供する場合、上記のフォーマットで
- <file>shlibs</file> ファイルを作成する必要があります。
- 普通は <file>debian/shlibs</file> という名前にします
- (もし複数のバイナリパッケージを作成する場合には、
- <file>debian/shlibs.<var>package</var></file>
- としたほうがいい場合もあります)。次に、<file>debian/rules</file>
- でそれを制御情報ファイル領域にインストールしてください。
- <example compact="compact">
-install -m644 debian/shlibs debian/tmp/DEBIAN
- </example>
- <!-- or, in the case of a multi-binary package:-->
- または、複数のバイナリパッケージの場合には、次のコマンドとします。
- <example compact="compact">
-install -m644 debian/shlibs.<var>package</var> debian/<var>package</var>/DEBIAN/shlibs
- </example>
- <!--An alternative way of doing this is to create the
- <file>shlibs</file> file in the control information file area
- directly from <file>debian/rules</file> without using
- a <file>debian/shlibs</file> file at all,<footnote>
- -->
- もう一つの方法として、<file>debian/rules</file> から制御情報ファイル領域に、
- <file>debian/shlibs</file> をまったく使わずに <file>shlibs</file>
- を直接作成するやり方
- <footnote><p>
- <!--
- This is what <prgn>dh_makeshlibs</prgn> in
- the <package>debhelper</package> suite does. If your package
- also has a udeb that provides a shared
- library, <prgn>dh_makeshlibs</prgn> can automatically generate
- the <tt>udeb:</tt> lines if you specify the name of the udeb
- with the <tt>--add-udeb</tt> option.
- -->
+ <p><!--
+ To provide a <file>shlibs</file> file for a shared library
+ binary package, create a <file>shlibs</file> file following
+ the format described above and place it in
+ the <file>DEBIAN</file> directory for that package during
+ the build. It will then be included as a control file for
+ that package<footnote>
+ This is what <prgn>dh_makeshlibs</prgn> in
+ the <package>debhelper</package> suite does. If your
+ package also has a udeb that provides a shared
+ library, <prgn>dh_makeshlibs</prgn> can automatically
+ generate the <tt>udeb:</tt> lines if you specify the name
+ of the udeb with the <tt>--add-udeb</tt> option.
+ </footnote>.-->
+ 共有ライブラリバイナリパッケージに対して <file>shlibs</file>
+ を提供するには、以下のフォーマットで <file>shlibs</file>
+ を作成して、ビルド時に該当パッケージの <file>DEBIAN</file>
+ ディレクトリに置いてください。
+ このファイルがパッケージのコントロールファイルとしてパッケージに収録されます<footnote>
これは <tt>debhelper</tt> ツール群の <prgn>dh_makeshlibs</prgn>
で行われている方法です。あなたのパッケージが共有ライブラリを提供する
- udeb を含む場合、<tt>--add-udeb</tt> オプションを使って udeb
+ udeb も含む場合、<tt>--add-udeb</tt> オプションを使って udeb
名を指定することにより、<prgn>dh_makeshlibs</prgn> を用いて自動的に
<tt>udeb:</tt> 行を生成することができます。
- </p></footnote>
- もあります。
- <!-- since the <file>debian/shlibs</file> file itself is ignored by
- <prgn>dpkg-shlibdeps</prgn>.-->
- これは、<prgn>dpkg-shlibdeps</prgn> からは <file>debian/shlibs</file>
- ファイル自体は無視されるためです。
- </p>
+ </footnote>。
+ </p>
- <p><!--
- As <prgn>dpkg-shlibdeps</prgn> reads the
- <file>DEBIAN/shlibs</file> files in all of the binary packages
- being built from this source package, all of the
- <file>DEBIAN/shlibs</file> files should be installed before
- <prgn>dpkg-shlibdeps</prgn> is called on any of the binary
- packages.-->
- <prgn>dpkg-shlibdeps</prgn>
- はソースパッケージから作成するすべてのバイナリパッケージに対して
- <file>DEBIAN/shlibs</file> ファイルを読むため、すべての
- <file>DEBIAN/shlibs</file> はどれかのバイナリパッケージに対して
- <prgn>dpkg-shlibdeps</prgn>
- を実行するより前にインストールしておくべきです。
- </p>
- </sect1>
-
+ <p><!--
+ Since <prgn>dpkg-shlibdeps</prgn> reads
+ the <file>DEBIAN/shlibs</file> files in all of the binary
+ packages being built from this source package, all of
+ the <file>DEBIAN/shlibs</file> files should be installed
+ before <prgn>dpkg-shlibdeps</prgn> is called on any of the
+ binary packages.-->
+ <prgn>dpkg-shlibdeps</prgn> はソースパッケージから作成するすべてのバイナリパッケージに対して
+ <file>DEBIAN/shlibs</file> ファイルを読むため、すべての
+ <file>DEBIAN/shlibs</file> は、<prgn>dpkg-shlibdeps</prgn>
+ をどのバイナリパッケージに対して実行するより前にインストールしておくべきです。
+ </p>
+ </sect2>
+ </sect1>
</sect>
</chapt>
@@ -9712,16 +10796,25 @@
に従っていなければいけません。<file>/run</file>
にあるファイルおよびディレクトリは、一時ファイルシステムに格納されているべきです。
</p>
+ <p><!--
+ Packages must not assume the <file>/run</file>
+ directory exists or is usable without a dependency
+ on <tt>initscripts (>= 2.88dsf-13.3)</tt> until the
+ stable release of Debian supports <file>/run</file>.-->
+ パッケージは、<file>/run</file> ディレクトリの存在を仮定してはならず、さらに
+ Debian の安定版が <file>/run</file> をサポートするまでは
+ <tt>initscripts (>= 2.88dsf-13.3)</tt> への依存の宣言なしに
+ <file>/run</file> ティレクトリが利用可能であることも仮定してはいけません。
+ </p>
</item>
<item>
<p><!--
- The following directories in the root filesystem are
- additionally allowed: <file>/sys</file> and
- <file>/selinux</file>. <footnote>These directories
- are used as mount points to mount virtual filesystems
- to get access to kernel information.</footnote>-->
- root ファイルシステムで、<file>/sys</file> と
- <file>/selinux</file>
+ The <file>/sys</file> directory in the root filesystem is
+ additionally allowed. <footnote>This directory is used as
+ mount point to mount virtual filesystems to get access to
+ kernel information.</footnote>
+ -->
+ root ファイルシステムで、<file>/sys</file>
ディレクトリが追加で許されるようになりました<footnote>
これらのディレクトリは、カーネル情報にアクセスするための仮想ファイルシステムのマウントポイントとして使われます。
</footnote>。
@@ -10523,8 +11616,7 @@
値をいくつか含む場合が良くあります。
スクリプトは多くの場合 <tt>conffile</tt>
ですので、スクリプトを変更した場合管理者がパッケージアップグレードの際に毎回変更された
- <tt>conffile</tt>
- に対してローカルの変更をマージする必要があります。
+ <tt>conffile</tt> に対してローカルの変更をマージする必要があります。
このシステム管理者の負担を軽減するため、そのような設定可能な値はスクリプト中に直接書くべきではありません。
その代わりに、そのような値は <file>/etc/default</file>
中のファイルによって与えます。
@@ -11340,43 +12432,45 @@
</p>
<p><!--
- Packages which provide the ability to view/show/play,
- compose, edit or print MIME types should register themselves
- as such following the current MIME support policy.-->
+ Packages which provide programs to view/show/play, compose, edit or
+ print MIME types should register them as such by placing a file in
+ <manref name="mailcap" section="5"> format (RFC 1524) in the directory
+ <file>/usr/lib/mime/packages/</file>. The file name should be the
+ binary package's name.-->
ある種の MIME タイプを表示/閲覧/再生/合成/編集や印刷する機能を
- もつプログラムは <tt>debian-policy</tt> パッケージに
- <tt>mime-policy</tt> ファイルとして同梱された現在の MIME
- サポートポリシーに従って登録を行う必要があります。
+ もつプログラムは <manref name="mailcap" section="5"> フォーマット
+ (RFC 1524) を用いてディレクトリ <file>/usr/lib/mime/packages/</file>
+ にファイルを置くことにより登録を行う必要があります。
+ ここでのファイル名はバイナリパッケージ名です。
</p>
<p><!--
The <package>mime-support</package> package provides the
- <prgn>update-mime</prgn> program which allows packages to
- register programs that can show, compose, edit or print
- MIME types.-->
- MIME タイプを表示、作成、編集、印刷するプログラムをパッケージから登録するためのプログラム
- <prgn>update-mime</prgn> は <package>mime-support</package> パッケージが提供しています。
+ <prgn>update-mime</prgn> program, which integrates these
+ registrations in the <file>/etc/mailcap</file> file, using dpkg
+ triggers<footnote>
+ Creating, modifying or removing a file in
+ <file>/usr/lib/mime/packages/</file> using maintainer scripts will
+ not activate the trigger. In that case, it can be done by calling
+ <tt>dpkg-trigger --no-await /usr/lib/mime/packages</tt> from
+ the maintainer script after creating, modifying, or removing
+ the file.
+ </footnote>.
+ Packages using this facility <em>should not</em> depend on,
+ recommend, or suggest <prgn>mime-support</prgn>.-->
+ <package>mime-support</package> パッケージが <prgn>update-mime</prgn>
+ プログラムを提供しています。このプログラムが <file>/etc/mailcap</file>
+ ファイル中の上記の登録情報を dpkg からのトリガで統合します<footnote>
+ メンテナスクリプトから <file>/usr/lib/mime/packages/</file>
+ にファイルを作成、変更、削除してもこのトリガは起動されません。
+ この場合、メンテナスクリプトから当該ファイルの作成、変更、削除の後、
+ <tt>dpkg-trigger --no-await /usr/lib/mime/packages</tt>
+ を実行することで明示的に起動してください。
+ </footnote>。
+ この機能を用いるパッケージは、<prgn>mime-support</prgn>
+ に対する依存 (depend)、推奨 (recommend), 推奨 (suggest) 等を宣言する
+ <em>べきではありません</em>。
</p>
-
- <p><!--
- Packages containing such programs must register them
- with <prgn>update-mime</prgn> as documented in <manref
- name="update-mime" section="8">. They should <em>not</em> depend
- on, recommend, or suggest <prgn>mime-support</prgn>. Instead,
- they should just put something like the following in the
- <tt>postinst</tt> and <tt>postrm</tt> scripts:-->
- MIME タイプを扱うプログラムを収録するパッケージは、そのようなプログラムを <manref
- name="update-mime" section="8"> 説明文書に従って <prgn>update-mime</prgn>
- により登録しなければいけません。これらのプログラムは、<prgn>mime-support</prgn>
- に対して depend、recommend、suggest を指定すべきではありません。
- 代わりに、それらのパッケージでは <tt>postinst</tt> および <tt>postrm</tt>
- スクリプトに以下の例のような処理を含めるべきです。
-
- <example>
- if [ -x /usr/sbin/update-mime ]; then
- update-mime
- fi
- </example>
</sect>
<sect>
@@ -11690,6 +12784,120 @@
</p>
</sect>
+ <sect id="alternateinit">
+ <heading><!-- Alternate init systems-->代替 init システム</heading>
+ <p><!--
+ A number of other init systems are available now in Debian that
+ can be used in place of <package>sysvinit</package>. Alternative
+ init implementations must support running SysV init scripts as
+ described at <ref id="sysvinit"> for compatibility.-->
+ <package>sysvinit</package> パッケージの代替として利用できる init システムが現在
+ Debian でいくつか提供されています。
+ この代替となる init 実装は、互換性のため <ref id="sysvinit">
+ で文書化された SysV init スクリプトの実行をサポートしなければいけません。
+ </p>
+ <p><!--
+ Packages may integrate with these replacement init systems by
+ providing implementation-specific configuration information about
+ how and when to start a service or in what order to run certain
+ tasks at boot time. However, any package integrating with other
+ init systems must also be backwards-compatible with
+ <package>sysvinit</package> by providing a SysV-style init script
+ with the same name as and equivalent functionality to any
+ init-specific job, as this is the only start-up configuration
+ method guaranteed to be supported by all init implementations. An
+ exception to this rule is scripts or jobs provided by the init
+ implementation itself; such jobs may be required for an
+ implementation-specific equivalent of the <file>/etc/rcS.d/</file>
+ scripts and may not have a one-to-one correspondence with the init
+ scripts.-->
+ パッケージは、これらの代替 init
+ システムに実装依存の設定情報を統合して提供しても構いません。
+ この設定情報には、サービスをスタートする方法とタイミング、ブート時に特定のタスクを実行する順番などが含まれます。
+ 但し、他の init システムを統合するパッケージでは、init
+ 関連のジョブに対して sys-V 書式の同等の機能を提供する init
+ スクリプトを後方互換性のために提供しなければいけません。
+ これは sys-V 書式が、全ての init
+ 実装でサポートされていることが保証された唯一の書式であるためです。
+ この規則の例外は、init
+ 実装そのもので提供されているスクリプトやジョブで、このようなジョブは
+ <file>/etc/rcS.d/</file>
+ の実装依存の互換機能を提供するために必要になる場合があり、init
+ スクリプトと 1 対 1 の関係を持たないかもしれないためです。
+ </p>
+
+ <sect1 id="upstart">
+ <!--<heading>Event-based boot with upstart</heading>-->
+ <heading>upstart によるイベントベースのブート</heading>
+
+ <p><!--
+ Packages may integrate with the <prgn>upstart</prgn> event-based
+ boot system by installing job files in the
+ <file>/etc/init</file> directory. SysV init scripts for which
+ an equivalent upstart job is available must query the output of
+ the command <prgn>initctl version</prgn> for the string
+ <tt>upstart</tt> and avoid running in favor of the native
+ upstart job, using a test such as this:-->
+ パッケージは、<file>/etc/init</file>
+ ディレクトリにジョブファイルを配置することにより、
+ イベントベースのブートシステム <prgn>upstart</prgn> と統合することも可能です。
+ Upstart と同等の機能を提供する SysV init スクリプトの側では、
+ <prgn>initctl version</prgn> コマンドの結果に <tt>upstart</tt>
+ という文字列の有無を確認して、upstart
+ ネイティヴのジョブとの重複実行を避けなければいけません。
+ テストは以下のように行います。
+ <example compact="compact">
+if [ "$1" = start ] && which initctl >/dev/null && initctl version | grep -q upstart
+then
+ exit 1
+fi
+ </example>
+ </p>
+ <p><!--
+ Because packages shipping upstart jobs may be installed on
+ systems that are not using upstart, maintainer scripts must
+ still use the common <prgn>update-rc.d</prgn> and
+ <prgn>invoke-rc.d</prgn> interfaces for configuring runlevels
+ and for starting and stopping services. These maintainer
+ scripts must not call the upstart <prgn>start</prgn>,
+ <prgn>restart</prgn>, <prgn>reload</prgn>, or <prgn>stop</prgn>
+ interfaces directly. Instead, implementations of
+ <prgn>invoke-rc.d</prgn> must detect when upstart is running and
+ when an upstart job with the same name as an init script is
+ present, and perform the requested action using the upstart job
+ instead of the init script.-->
+ upstart 向けのジョブを含んだパッケージを upstart
+ を用いていないシステムにインストールしても構わないため、メンテナスクリプトでは共通の
+ <prgn>update-rc.d</prgn> と <prgn>invoke-rc.d</prgn>
+ インターフェースを用いてランレベルの設定や、サービスの開始と停止を行わなければいけません。
+ このようなメンテナスクリプトでは、upstart の <prgn>start</prgn>、
+ <prgn>restart</prgn>、<prgn>reload</prgn>、<prgn>stop</prgn>
+ の各インターフェースを直接呼び出してはいけません。
+ 代わりに、<prgn>invoke-rc.d</prgn> の実装で upstart
+ が実行されているかどうかを検出し、upstart のジョブと同じ名前の init
+ スクリプトが存在する場合には、init スクリプトではなく upstart
+ ジョブを用いて要求された動作を行わなければいけません。
+ </p>
+ <p><!--
+ Dependency-based boot managers for SysV init scripts, such as
+ <prgn>startpar</prgn>, may avoid running a given init script
+ entirely when an equivalent upstart job is present, to avoid
+ unnecessary forking of no-op init scripts. In this case, the
+ boot manager should integrate with upstart to detect when the
+ upstart job in question is started or stopped to know when the
+ dependency has been satisfied.-->
+ SysV init スクリプト向けの依存関係ベースのブートマネージャ
+ (例えば <prgn>startpar</prgn>) は、相当する upstart
+ ジョブが存在する場合には、何もしない init スクリプトでの不要な
+ fork を避けるために、与えられた init
+ スクリプトの実行を全く行わなくとも構いません。
+ この場合には、ブートマネージャは、いつ依存関係が満たされたかを確認するために、対象となる
+ upstart ジョブが実行中か停止中かの判定を行うことができるよう、upstart
+ と統合すべきです。
+ </p>
+ </sect1>
+ </sect>
+
</chapt>
<chapt id="files">
@@ -11903,9 +13111,29 @@
ライブラリは、スレッドサポートを行うようビルドすべきで、さらにライブラリのサポートがある場合はスレッドセーフとすべきです。
</p>
- <p>
- <!-- Note that all installed shared libraries should be
- stripped with -->
+ <p><!--
+ Although not enforced by the build tools, shared libraries
+ must be linked against all libraries that they use symbols from
+ in the same way that binaries are. This ensures the correct
+ functioning of the <qref id="sharedlibs-symbols">symbols</qref>
+ and <qref id="sharedlibs-shlibdeps">shlibs</qref>
+ systems and guarantees that all libraries can be safely opened
+ with <tt>dlopen()</tt>. Packagers may wish to use the gcc
+ option <tt>-Wl,-z,defs</tt> when building a shared library.
+ Since this option enforces symbol resolution at build time,
+ a missing library reference will be caught early as a fatal
+ build error.-->
+ ビルドツールで強制されているわけではありませんが、共有ライブラリはバイナリ同様、含まれるシンボルを用いる全てのライブラリにリンクするようビルドされていなければいけません。
+ これにより、<qref id="sharedlibs-symbols">symbols</qref> と
+ <qref id="sharedlibs-shlibdeps">shlibs</qref>
+ システムの正しい動作と、全てのライブラリが <tt>dlopen()</tt>
+ により安全に開くことができることが保証されます。
+ パッケージメンテナは、共有ライブラリ作成の際に gcc オプション
+ <tt>-Wl,-z,defs</tt> を使いたいかもしれません。
+ これらのオプションはビルド時のシンボル解決を強制するため、ライブラリの参照関係の抜けは致命的なビルドエラーとして早いうちに捕まえることが可能です。
+ </p>
+ <p><!--
+ All installed shared libraries should be stripped with -->
インストールされる共有ライブラリは次のようにして strip されているべきです。
<example compact="compact">
strip --strip-unneeded <var>your-lib</var>
@@ -12386,12 +13614,17 @@
</example></p>
<p><!--
- A symbolic link pointing to a compressed file should always
+ A symbolic link pointing to a compressed file (in the sense
+ that it is meant to be uncompressed with <prgn>unzip</prgn>
+ or <prgn>zless</prgn> etc.) should always
have the same file extension as the referenced file. (For
example, if a file <file>foo.gz</file> is referenced by a
symbolic link, the filename of the link has to end with
"<file>.gz</file>" too, as in <file>bar.gz</file>.)-->
- 圧縮されたファイルを参照するシンボリックリンクは、対象ファイルと同じ拡張子を持つようにしてください。
+ 圧縮されたファイルを参照するシンボリックリンク
+ (<prgn>unzip</prgn> または <prgn>zless</prgn>
+ などで伸長することを意図したもの)
+ は、対象ファイルと同じ拡張子を持つようにすべきです。
例えば、<file>foo.gz</file>
をシンボリックリンクで参照する場合、リンクのファイル名も同様に
"<file>.gz</file>" で終わる、<file>bar.gz</file>
@@ -12575,9 +13808,15 @@
(purge) の際にのみ削除するようにしなければいけません。
</item>
</list><!--
- Obsolete configuration files without local changes may be
- removed by the package during upgrade.-->
- ローカルでの修正の無い、廃止になった設定ファイルはアップグレードの際に削除しても構いません。
+ Obsolete configuration files without local changes should be
+ removed by the package during upgrade.<footnote>
+ The <prgn>dpkg-maintscript-helper</prgn> tool, available from the
+ <package>dpkg</package> package, can help for this task.</footnote>
+ -->
+ ローカルでの修正の無い、廃止になった設定ファイルはアップグレードの際に削除しても構いません<footnote>
+ <package>dpkg</package> パッケージ収録の
+ <prgn>dpkg-maintscript-helper</prgn> ツールがこの作業の助けになります。
+ </footnote>。
</p>
<p>
<!-- The easy way to achieve this behavior is to make the
@@ -13322,6 +14561,32 @@
</p>
</sect1>
</sect>
+
+ <sect id="filenames">
+ <heading><!--File names-->ファイル名</heading>
+
+ <p><!--
+ The name of the files installed by binary packages in the system PATH
+ (namely <tt>/bin</tt>, <tt>/sbin</tt>, <tt>/usr/bin</tt>,
+ <tt>/usr/sbin</tt> and <tt>/usr/games</tt>) must be encoded in
+ ASCII.
+ -->
+ システムの PATH (具体的には <tt>/bin</tt>, <tt>/sbin</tt>,
+ <tt>/usr/bin</tt>, <tt>/usr/sbin</tt> および <tt>/usr/games</tt>)
+ にバイナリパッケージからインストールするファイル名は ASCII
+ エンコーディングを用いなければいけません。
+ </p>
+
+ <p><!--
+ The name of the files and directories installed by binary packages
+ outside the system PATH must be encoded in UTF-8 and should be
+ restricted to ASCII when it is possible to do so.
+ -->
+ システム PATH 外にバイナリパッケージからインストールするファイル名は
+ UTF-8 でエンコーディングしなければいけません。
+ また、可能な限り ASCII 範囲内に制限するべきです。
+ </p>
+ </sect>
</chapt>
<chapt id="customized-programs">
@@ -13619,36 +14884,8 @@
設定するべきです。
</item>
- <!-- <item><p>Access to HTML documents</p> -->
<item>
- <p>HTML 文書へのアクセス</p>
-
- <p><!--
- HTML documents for a package are stored in
- <file>/usr/share/doc/<var>package</var></file>
- and can be referred to as
- <example compact="compact">
-http://localhost/doc/<var>package</var>/<var>filename</var>
- </example>-->
- 各パッケージの HTML 形式の文書は
- <file>/usr/share/doc/<var>package</var></file> に置きます。
- また、次のようにして参照することができるようにしてください。
- <example compact="compact">
-http://localhost/doc/<var>package</var>/<var>filename</var>
- </example>
- </p>
- <p><!--
- The web server should restrict access to the document
- tree so that only clients on the same host can read
- the documents. If the web server does not support such
- access controls, then it should not provide access at
- all, or ask about providing access during installation.
- -->
- web サーバは文書ツリーに対するアクセスを、そのホストのクライアントのみがおこなえるように制限をかけるべきです。
- もし web サーバがそのようなアクセス制御機能を持たないなら、
- 全くアクセスを許さないようにするか、
- インストール時にアクセスを許すかどうかを問い合わせてください。
- </p>
+ <p>(<!--Deleted-->削除)</p>
</item>
<item>
@@ -14972,33 +16209,42 @@
<p><!--
The <prgn>install-info</prgn> program maintains a directory of
- installed info documents in <file>/usr/share/info/dir</file> for
- the use of info readers.<footnote>
- It was previously necessary for packages installing info
- documents to run <prgn>install-info</prgn> from maintainer
- scripts. This is no longer necessary. The installation
- system now uses dpkg triggers.
- </footnote>
- This file must not be included in packages. Packages containing
- info documents should depend on <tt>dpkg (>= 1.15.4) |
- install-info</tt> to ensure that the directory file is properly
- rebuilt during partial upgrades from Debian 5.0 (lenny) and
- earlier.-->
- <prgn>install-info</prgn> プログラムが info の読み手のため
+ installed info documents in <file>/usr/share/info/dir</file> for the
+ use of info readers. This file must not be included in packages
+ other than <package>install-info</package>.-->
+ <prgn>install-info</prgn> プログラムが info リーダープログラムのため
<file>/usr/share/info/dir</file> にインストールされた info
- ドキュメントの管理を行います<footnote>
- 以前は各パッケージでメンテナスクリプトから
- <prgn>install-info</prgn>
- を実行して文書をインストールする必要がありました。
- この処理はもう必要ありません。インストールシステムでは、dpkg
- をトリガーとするようになっています。
- </footnote>。このファイルはパッケージに含めてはいけません。info
- 文書を含むパッケージは <tt>dpkg (>= 1.15.4) | install-info</tt>
- に依存関係を宣言し、ディレクトリファイルが確実に Debian 5.0 (lenny)
- およびそれ以前のリリースからの部分アップグレードで再ビルドされるようにすべきです。
+ ドキュメントの管理を行います。
+ このファイルは、<package>install-info</package>
+ 以外のパッケージに含めてはいけません。
+
</p>
<p><!--
+ <prgn>install-info</prgn> is automatically invoked when
+ appropriate using dpkg triggers. Packages other than
+ <package>install-info</package> <em>should not</em> invoke
+ <prgn>install-info</prgn> directly and <em>should not</em>
+ depend on, recommend, or suggest <package>install-info</package>
+ for this purpose.-->
+ <prgn>install-info</prgn> は dpkg
+ からのトリガを受けて、適切なタイミングで自動的に起動されます。
+ <package>install-info</package> 以外のパッケージでは、
+ <package>install-info</package> を直接<em>起動すべきではなく</em>
+ 、またこの起動の目的で
+ <package>install-info</package> に依存関係 (依存 (Depend)、推奨
+ (Recommend)、示唆 (Suggest)) を<em>指定すべきではありません</em>。
+ </p>
+
+ <p><!--
+ Info readers requiring the <file>/usr/share/info/dir</file> file
+ should depend on <package>install-info</package>.-->
+ <file>/usr/share/info/dir</file> ファイルを必要とする Info
+ リーダーは、<package>install-info</package>
+ に依存関係を指定しなければいけません。
+ </p>
+
+ <p><!--
Info documents should contain section and directory entry
information in the document for the use
of <prgn>install-info</prgn>. The section should be specified
@@ -15340,6 +16586,11 @@
やその他の適切な場所にインストールされるべきです。
</p>
+ <p>
+ <!--All copyright files must be encoded in UTF-8.-->
+ copyright ファイルは UTF-8 でエンコードされていなければいけません。
+ </p>
+
<sect1 id="copyrightformat">
<!--<heading>Machine-readable copyright information</heading>-->
<heading>機械可読な著作権情報</heading>
@@ -15536,7 +16787,7 @@
Certain parts of the Packaging manual were integrated into the
Policy Manual proper, and removed from the appendices. Links
have been placed from the old locations to the new ones.-->
- 以下のパッケージングマニュアルのうち一部は、ポリシーマニュアルに統合済みで、付録から削除されています。
+ 以下のパッケージングマニュアルのうち一部はポリシーマニュアルに統合済みで、付録から削除されています。
元の場所から新しい場所に対してリンクが作成されています。
</p>
@@ -15578,16 +16829,6 @@
</p>
<p><!--
- It also documents the interaction between
- <prgn>dselect</prgn>'s core and the access method scripts it
- uses to actually install the selected packages, and describes
- how to create a new access method.</p>-->
- このマニュアルは、<prgn>dselect</prgn>
- のコア部分とアクセスメソッドスクリプトの間のやり取り、新しいアクセスメソッドの作成方法についても言及します。
- アクセスメソッドスクリプトは、選択したパッケージの実際のインストールを担当します。
- </p>
-
- <p><!--
This manual does not go into detail about the options and
usage of the package building and installation tools. It
should therefore be read in conjunction with those programs'
@@ -15598,12 +16839,9 @@
<p><!--
The utility programs which are provided with <prgn>dpkg</prgn>
- for managing various system configuration and similar issues,
- such as <prgn>update-rc.d</prgn> and
- <prgn>install-info</prgn>, are not described in detail here -
- please see their man pages. -->
- <prgn>dpkg</prgn> と一緒に提供される <prgn>update-rc.d</prgn> や
- <prgn>install-info</prgn> といった様々なシステム設定を行なうユーティリティプログラムについての詳細もここでは触れません。
+ not described in detail here, are documented in their man pages.
+ -->
+ <prgn>dpkg</prgn> と一緒に提供されるユーティリティプログラムについての詳細もここでは触れません。
これらについても、それぞれの man ページを見て下さい。
</p>
@@ -15635,32 +16873,11 @@
</heading>
<p><!--
- The binary package has two main sections. The first part
- consists of various control information files and scripts used
- by <prgn>dpkg</prgn> when installing and removing. See <ref
- id="pkg-controlarea">.-->
- バイナリパッケージは大きく分けて2つの部分からなります。
- 最初の部分には <prgn>dpkg</prgn> がインストールや削除に使う様々な制御情報ファイルやスクリプトが入っています。
+ See <manref name="deb" section="5"> and <ref id="pkg-controlarea">.-->
+ <manref name="deb" section="5"> マニュアルページ、および本マニュアルの
<ref id="pkg-controlarea"> を見てください。
</p>
- <p><!--
- The second part is an archive containing the files and
- directories to be installed.-->
- 二つめの部分はインストールされるファイルやディレクトリを含んだアーカイブです。
- </p>
-
- <p><!--
- In the future binary packages may also contain other
- components, such as checksums and digital signatures. The
- format for the archive is described in full in the
- <file>deb(5)</file> man page.-->
- 将来、他にもチェックサムや電子署名などがバイナリパッケージに含まれるようになるでしょう。
- アーカイブのフォーマットについてはマニュアル <file>deb(5)</file>
- の man ページに完全な記述があります。
- </p>
-
-
<!--<sect id="pkg-bincreating"><heading>Creating package files - -->
<sect id="pkg-bincreating"><heading>パッケージファイルの作成 -
<prgn>dpkg-deb</prgn>
@@ -15676,7 +16893,7 @@
arguments.)-->
バイナリパッケージファイルの操作はすべて <prgn>dpkg-deb</prgn>
で行ないます。この <prgn>dpkg-deb</prgn>
- はパッケージフォーマットを理解する唯一のプログラムです。
+ はこの (バイナリ) パッケージフォーマットを理解する唯一のプログラムです。
(<prgn>dpkg-deb</prgn> は必要に応じて <prgn>dpkg</prgn>
から呼び出されます。<prgn>dpkg</prgn> は依頼されたオプションが
<prgn>dpkg-deb</prgn> に適切なものかどうかを見分け、同じ引数で代わりに
@@ -15802,7 +17019,7 @@
information file area, but this is not generally a good idea
(though they will largely be ignored).
-->
- パッケージ制御情報ファイルエリアにそれ以外のファイルを入れることはできますが、あまりいい考えではありません (もっとも、それらは通常無視されますが)。
+ パッケージ制御情報ファイルエリアにそれ以外のファイルを入れることはできますが、あまりいい考えではありません (もっとも、それらは多くの場合無視されますが)。
</p>
<p><!--
@@ -15837,9 +17054,9 @@
<prgn>dpkg-gencontrol</prgn> program, and with
assistance from <prgn>dpkg-shlibdeps</prgn>. See <ref
id="pkg-sourcetools">.</p>-->
- このファイルは通常 <prgn>dpkg-shlibdeps</prgn> を補助として使い
- <prgn>dpkg-gencontrol</prgn>
- がソースパッケージ内の情報から自動的に作ります。
+ このファイルは、通常 <prgn>dpkg-gencontrol</prgn>
+ がソースパッケージ内の情報から自動的に作ります。その際
+ <prgn>dpkg-shlibdeps</prgn> が補助として使われます。
<ref id="pkg-sourcetools"> を見て下さい。
</p>
</item>
@@ -15869,7 +17086,7 @@
<p><!--
It is very important to make these scripts
idempotent.-->
- これらのスクリプトに「常に同じ効き目」を持たせておくことは非常に重要です。
+ これらのスクリプトに「再入結果の同一性」を持たせておくことは非常に重要です。
<ref id="idempotency"> を参照ください。
</p>
@@ -15893,7 +17110,7 @@
(see <ref id="pkg-conffiles">). Note that not necessarily
every configuration file should be listed here.</p>-->
このファイルには <prgn>dpkg</prgn>
- により自動的に扱われなければならない設定ファイルのリストが含まれます
+ により自動的に扱うことが意図された設定ファイルのリストが含まれます
(<ref id="pkg-conffiles"> を参照)。
すべての設定ファイルをここに書く必要はないことに注意して下さい。
</p>
@@ -15911,8 +17128,8 @@
package control file. The <tt>shlibs</tt> file format
is described on <ref id="shlibs">.-->
このファイルにはパッケージが提供する共有ライブラリのリストが、それぞれの依存関係の詳細と共に含まれます。
- このファイルは <prgn>dpkg-shlibdeps</prgn>
- がパッケージコントロールファイルで、どの依存関係が必要かを決める時に使用します。
+ このファイルは <prgn>dpkg-shlibdeps</prgn> により利用され、
+ パッケージコントロールファイルでどの依存関係が必要かを決めるために使われます。
<file>shlibs</file> ファイルの書式については <ref id="shlibs">
に記述があります。
</p>
@@ -16099,84 +17316,10 @@
</heading>
<p><!--
- <prgn>dpkg-buildpackage</prgn> is a script which invokes
- <prgn>dpkg-source</prgn>, the <file>debian/rules</file>
- targets <tt>clean</tt>, <tt>build</tt> and
- <tt>binary</tt>, <prgn>dpkg-genchanges</prgn> and
- <prgn>gpg</prgn> (or <prgn>pgp</prgn>) to build a signed
- source and binary package upload.-->
- <prgn>dpkg-buildpackage</prgn> は、<prgn>dpkg-source</prgn>、
- <file>debian/rules</file> の <tt>clean</tt>、<tt>build</tt>、
- <tt>binary</tt> の各ターゲット、<prgn>dpkg-genchanges</prgn>
- を呼びだし、最後に <prgn>gpg</prgn> (または <prgn>pgp</prgn>)
- を呼んで署名済のソースパッケージおよびバイナリパッケージを作成しアップロードします。
+ See <manref name="dpkg-buildpackage" section="1">.-->
+ <manref name="dpkg-buildpackage" section="1">
+ マニュアルページを参照ください。
</p>
-
- <p><!--
- It is usually invoked by hand from the top level of the
- built or unbuilt source directory. It may be invoked with
- no arguments; useful arguments include:-->
- このコマンドは、通常、すでに構築されている、あるいは未構築のソースディレクトリのトップレベルで手動で実行します。
- 引数なしで呼び出してもかまいません。よく使う引数は次の通りです。
- <taglist compact="compact">
- <tag><tt>-uc</tt>, <tt>-us</tt></tag>
- <item>
- <p><!--
- Do not sign the <tt>.changes</tt> file or the
- source package <tt>.dsc</tt> file, respectively.-->
- それぞれ、<file>.changes</file> ファイル、ソースパッケージの
- <file>.dsc</file> ファイルにサインをしないという指示です。
- </p>
- </item>
- <tag><tt>-p<var>sign-command</var></tt></tag>
- <item>
- <p><!--
- Invoke <var>sign-command</var> instead of finding
- <tt>gpg</tt> or <tt>pgp</tt> on the <prgn>PATH</prgn>.
- <var>pgp-command</var> must behave just like
- <prgn>pgp</prgn>.-->
- <var>sign-command</var> を <prgn>PATH</prgn> で見つかる
- <tt>gpg</tt> または <tt>pgp</tt> の代わりに呼び出します。
- <var>sign-command</var> は <tt>gpg</tt> または
- <prgn>pgp</prgn> と全く同じ動作をしなくてはなりません。
- </p>
- </item>
- <tag><tt>-r<var>root-command</var></tt></tag>
- <item>
- <p><!--
- When root privilege is required, invoke the command
- <var>root-command</var>. <var>root-command</var>
- should invoke its first argument as a command, from
- the <prgn>PATH</prgn> if necessary, and pass its
- second and subsequent arguments to the command it
- calls. If no <var>root-command</var> is supplied
- then <var>dpkg-buildpackage</var> will use
- the <prgn>fakeroot</prgn> command, which is sufficient
- to build most packages without actually requiring root
- privileges.
- -->
- root 特権が必要な時、<var>root-command</var>
- というコマンドを呼び出します。<var>root-command</var>
- は第 1 引数をコマンドとして、必要ならば <prgn>PATH</prgn>
- から呼び出し、第 2
- 引数以降を呼び出したコマンドに渡さなければいけません。
- <var>root-command</var> が与えられなかった場合は、
- <var>dpkg-buildpackage</var> は <prgn>fakeroot</prgn>
- コマンドを使用します。これは、実際に root
- 特権を取得せずにパッケージをビルドするのに殆どの場合は十分なはずです。
- </p>
- </item>
- <tag><tt>-b</tt>, <tt>-B</tt></tag>
- <item>
- <p><!--
- Two types of binary-only build and upload - see
- <manref name="dpkg-source" section="1">.-->
- 2 種類の、バイナリのみの構築とアップロード -
- <manref name="dpkg-source" section="1"> を見て下さい。
- </p>
- </item>
- </taglist>
- </p>
</sect1>
<sect1 id="pkg-dpkg-gencontrol">
@@ -16266,7 +17409,7 @@
<prgn>dpkg-gencontrol</prgn> は (例えば)
<prgn>dpkg-genchanges</prgn> を将来呼び出すときのために
<file>debian/files</file>
- 中のファイルのリストに情報を加えることもします。
+ 中のファイルのリストに情報を加えることも行います。
</p>
</sect1>
@@ -16278,120 +17421,11 @@
共有ライブラリの依存関係の算定
</heading>
- <p><!--
- This program is usually called from <file>debian/rules</file>
- just before <prgn>dpkg-gencontrol</prgn> (see <ref
- id="pkg-sourcetree">), in the top level of the source tree.-->
- 通常、このプログラムは <prgn>dpkg-gencontrol</prgn> (<ref
- id="pkg-sourcetree"> を参照) の直前に、ソースツリーのトップレベルで
- <file>debian/rules</file> から呼ばれます。
+ <p>
+ <!-- See <manref name="dpkg-shlibdeps" section="1">.-->
+ <manref name="dpkg-shlibdeps" section="1"> を参照ください。
</p>
- <p><!--
- Its arguments are executables and shared libraries-->
- このプログラムの引数は、バイナリパッケージのコントロールファイルに共有ライブラリの依存関係を含める必要のある実行形式および共有ライブラリ
- <footnote>
- <p><!--
- They may be specified either in the locations in the
- source tree where they are created or in the locations
- in the temporary build tree where they are installed
- prior to binary package creation.-->
- 引数となる実行可能ファイルには、それらの作られるソースツリーのある場所や、バイナリパッケージが作られる前に仮インストールされる構築ツリーのある場所を指定することもできます。
- </p>
- </footnote><!-- for which shared library dependencies should
- be included in the binary package's control file.-->
- です。
- </p>
-
- <p><!--
- If some of the found shared libraries should only
- warrant a <tt>Recommends</tt> or <tt>Suggests</tt>, or if
- some warrant a <tt>Pre-Depends</tt>, this can be achieved
- by using the <tt>-d<var>dependency-field</var></tt> option
- before those executable(s). (Each <tt>-d</tt> option
- takes effect until the next <tt>-d</tt>.)-->
- 検索された共有ライブラリが <tt>Recommends</tt> や <tt>Suggests</tt>
- のみを保証すべき場合や、<tt>Pre-Depends</tt> を保証すべき場合は、
- それらの実行形式の前に <tt>-d<var>dependency-field</var></tt>
- オプションをつけてこれを指示しなければなりません (各 <tt>-d</tt>
- オプションは次の <tt>-d</tt> が現れるまで有効です)。
- </p>
-
- <p><!--
- <prgn>dpkg-shlibdeps</prgn> does not directly cause the
- output control file to be modified. Instead by default it
- adds to the <file>debian/substvars</file> file variable
- settings like <tt>shlibs:Depends</tt>. These variable
- settings must be referenced in dependency fields in the
- appropriate per-binary-package sections of the source
- control file.-->
- <prgn>dpkg-shlibdeps</prgn>
- は出力されるコントロールファイルを直接修正することはしません。
- 代わりに、デフォルトでは <tt>shlibs:Depends</tt> の様な変数の設定を
- <file>debian/substvars</file> というファイルに加えます。
- ソースコントロールファイルにはバイナリパッケージ毎にセクションがありますが、
- これらの変数の設定は適切なセクションの依存関係フィールドから参照しなければなりません。
- </p>
-
- <p><!--
- For example, a package that generates an essential part
- which requires dependencies, and optional parts that
- which only require a recommendation, would separate those
- two sets of dependencies into two different fields.<footnote>
- At the time of writing, an example for this was the
- <package/xmms/ package, with Depends used for the xmms
- executable, Recommends for the plug-ins and Suggests for
- even more optional features provided by unzip.
- </footnote>
- It can say in its <file>debian/rules</file>:-->
- 例えば、依存関係を必要 (depend) とする主要部と、依存関係として
- "Recommendation" のみを必要とするオプション部を生成するパッケージでは、これらの二種類の依存関係を二つの異なったフィールドとして分離します
- <footnote><p>
- これを書いている時点で、このような例としては <package/xmms/
- パッケージがあります。xmms 実行形式には Depends
- が使われており、プラグインには Recommends が、また unzip
- が提供する更に必須性の薄い機能については Suggests
- が使われています。
- </p></footnote>。この場合、<file>debian/rules</file>
- では以下のように書きます。
- <example><!--
- dpkg-shlibdeps -dDepends <var>program anotherprogram ...</var> \
- -dRecommends <var>optionalpart anotheroptionalpart</var>-->
- dpkg-shlibdeps -dDepends <var>プログラム 他のプログラム ...</var> \
- -dRecommends <var>オプション部 他のオプション部</var>
- </example><!--
- and then in its main control file <file>debian/control</file>:-->
- そしてメインコントロールファイル <file>debian/control</file>
- で次のように書きます。
- <example>
- <var>...</var>
- Depends: ${shlibs:Depends}
- Recommends: ${shlibs:Recommends}
- <var>...</var>
- </example>
- </p>
-
- <p><!--
- Sources which produce several binary packages with
- different shared library dependency requirements can use
- the <tt>-p<var>varnameprefix</var></tt> option to override
- the default <tt>shlibs:</tt> prefix (one invocation of
- <prgn>dpkg-shlibdeps</prgn> per setting of this option).
- They can thus produce several sets of dependency
- variables, each of the form
- <tt><var>varnameprefix</var>:<var>dependencyfield</var></tt>,
- which can be referred to in the appropriate parts of the
- binary package control files.-->
- あるソースが提供する (複数の) バイナリパッケージが共有ライブラリに対して異なった依存要求を持つ場合は、
- <tt>-p<var>varnameprefix</var></tt>
- オプションを利用することが出来ます。
- このオプションはデフォルトの <tt>shlibs:</tt>
- プレフィックスを上書きします (このオプションを設定する毎に
- <prgn>dpkg-shlibdeps</prgn> を一回実行します)。それによって、
- <tt><var>varnameprefix</var>:<var>dependencyfield</var></tt>
- という形式で依存変数の集合を幾つか作ることが出来ます。
- これはバイナリパッケージコントロールファイルで適宜参照されます。
- </p>
</sect1>
<sect1 id="pkg-dpkg-distaddfile">
@@ -16458,28 +17492,12 @@
</heading>
<p><!--
- This program is usually called by package-independent
- automatic building scripts such as
- <prgn>dpkg-buildpackage</prgn>, but it may also be called
- by hand.-->
- 通常、このプログラムはパッケージに依存しない
- <prgn>dpkg-buildpackage</prgn> の様な自動構築スクリプトから呼び出されますが、手動で呼びだすこともあります。
+ See <manref name="dpkg-genchanges" section="1">.-->
+ <manref name="dpkg-genchanges" section="1">
+ のマニュアルページを参照ください。
</p>
-
- <p><!--
- It is usually called in the top level of a built source
- tree, and when invoked with no arguments will print out a
- straightforward <file>.changes</file> file based on the
- information in the source package's changelog and control
- file and the binary and source packages which should have
- been built.-->
- このプログラムは通常、構築されたソースツリーのトップレベルで呼び出されます。
- 引数をつけずに呼び出した場合は、ソースパッケージの変更履歴ファイル、コントロールファイルの情報と、構築されているバイナリパッケージ、ソースパッケージの情報に基づいて、簡単な
- <file>.changes</file> ファイルを書きだします。
- </p>
</sect1>
-
<!--<sect1 id="pkg-dpkg-parsechangelog">
<heading><prgn>dpkg-parsechangelog</prgn> - produces parsed representation of
a changelog-->
@@ -16489,17 +17507,9 @@
</heading>
<p><!--
- This program is used internally by
- <prgn>dpkg-source</prgn> et al. It may also occasionally
- be useful in <file>debian/rules</file> and elsewhere. It
- parses a changelog, <file>debian/changelog</file> by default,
- and prints a control-file format representation of the
- information in it to standard output.-->
- このプログラムは <prgn>dpkg-source</prgn>
- などで内部的に用いられます。
- <file>debian/rules</file> や他の場所で使われるかもしれません。
- 変更履歴 (デフォルトでは <file>debian/changelog</file>)
- を解析し、そこに含まれる情報をコントロールファイル形式の表現で標準出力に出力します。
+ See <manref name="dpkg-parsechangelog" section="1">.-->
+ <manref name="dpkg-parsechangelog" section="1">
+ のマニュアルページを参照ください。
</p>
</sect1>
@@ -16509,17 +17519,10 @@
パッケージを構築するシステム、あるいはホストシステムについての情報
</heading>
- <p><!--
- This program can be used manually, but is also invoked by
- <tt>dpkg-buildpackage</tt> or <file>debian/rules</file> to set
- environment or make variables which specify the build and host
- architecture for the package building process.-->
- このプログラムは手動で使用することもできますが、
- <tt>dpkg-buildpackage</tt> や <file>debian/rules</file>
- によっても起動されます。
- そこでは、パッケージを構築するマシンのアーキテクチャ、あるいはホストのアーキテクチャを示す環境変数や
- make 変数を設定します。
- これらの変数は、パッケージ構築過程において必要なものです。
+ <p><!--
+ See <manref name="dpkg-architecture" section="1">.-->
+ <manref name="dpkg-architecture" section="1">
+ のマニュアルページを参照ください。
</p>
</sect1>
</sect>
@@ -16738,9 +17741,9 @@
<file><var>package</var>_<var>version</var>.tar.gz</file>, and
contains a directory
<file><var>package</var>-<var>version</var></file>.-->
- オリジナルのソースコードがない場合 - 例えば、パッケージが Debian
- のために特別に用意されたものだったり、Debian maintainer が上流の
- maintainer でもある場合- は、 構成が少し違います。
+ 「オリジナル」のソースコード (に相当する物) がない場合 - 例えば、パッケージが
+ Debian のために特別に用意されたものだったり、Debian maintainer が上流の
+ maintainer でもある場合 - は、 構成が少し違います。
diff ファイルは無く、tar ファイルは
<file><var>package</var>_<var>version</var>.tar.gz</file>
という名前で <file><var>package</var>-<var>version</var></file>
@@ -16872,7 +17875,7 @@
<!-- Changes which cause <prgn>dpkg-source</prgn> to
print a warning but continue anyway are:-->
ソースパッケージを構築する時に、<prgn>dpkg-source</prgn>
- 警告を表示し、処理は継続するような問題のある変更は次の通りです。
+ 警告が表示されるものも、処理は継続されるような問題のある変更は次の通りです。
<list compact="compact">
<item>
<p><!--
@@ -16897,14 +17900,15 @@
Changed text files which are missing the usual final
newline (either in the original or the modified
source tree).-->
- 通常の最後の改行が (オリジナル及び修正版のどちらのソースツリーにも) ない変更されたテキストファイル。
+ 通常の最後の改行が (オリジナル及び修正版のどちらのソースツリーにも)
+ ない変更されたテキストファイル。
</p>
</item>
</list>
<!--
Changes which are not represented, but which are not detected by
<prgn>dpkg-source</prgn>, are:-->
- 変更が指摘されないが、<prgn>dpkg-source</prgn> によって検出もされない変更は次の通りです。
+ 変更が指摘されず、<prgn>dpkg-source</prgn> によって検出もされない変更は次の通りです。
<list compact="compact">
<item><p><!--Changing the permissions of files (other than
<file>debian/rules</file>) and directories.-->
@@ -17239,7 +18243,7 @@
missing file produces an effect hard or impossible to
achieve in another way, so that a missing file needs to be
kept that way if the user did it.-->
- けれども、<prgn>dpkg</prgn> は、ユーザまたはスクリプトによって削除された設定ファイルを上書きすることは
+ けれども、<prgn>dpkg</prgn> は、ユーザまたはスクリプトによって削除された設定ファイル (<tt>conffile</tt>) を置き換えることは
<em>ありません</em>。
いくつかのプログラムにおいては、ある設定ファイルが存在しないことによって、他の方法では代替できないような効果をねらっているものがあります。
したがって、もしユーザがそうしたのであれば、削除されたファイルはそのままにしておく必要があります。
@@ -17252,7 +18256,7 @@
the user confusing and possibly dangerous options for
conffile update when the package is upgraded.-->
パッケージは、パッケージ管理スクリプトの中では、<prgn>dpkg</prgn>
- によって操作されるconffile を変更することは <em>できません</em>。
+ によって操作される conffile を変更することは <em>できません</em>。
もし、これを行った場合、パッケージのアップデートのとき、
<prgn>dpkg</prgn> は、ユーザを混乱させる、また潜在的に危険なオプションを与えることになります。
</p>
@@ -17346,7 +18350,7 @@
same program or file it is useful to have the system select a
default, but to allow the system administrator to change it
and have their decisions respected.-->
- 複数のパッケージが、同じプログラム名やファイル名を持つ異なるバージョンを提供している場合、デフォルトで使用するプログラムをシステムで選択できると便利です。
+ 複数のパッケージが、同じ名称のプログラムやファイルの異なる版を提供している場合、デフォルトで使用するプログラムをシステムで選択できると便利です。
ただ、もちろんシステム管理者による変更は出来なくてはいけませんし、その判断は尊重されなければいけません。
</p>
@@ -17415,7 +18419,7 @@
file, or by one package to override another's version (or
provide a wrapper for it).-->
この方法は、あるパッケージに含まれるファイルをローカルに入れ替える場合や、あるパッケージが別のパッケージに含まれるファイルを置きかえる
- (または、そのプログラムのラッパーを 提供する) 場合に利用できます。
+ (または、そのプログラムのラッパーを提供する) 場合に利用できます。
</p>
<p><!--
@@ -17526,6 +18530,13 @@
<prgn>dpkg-divert</prgn> の使用時には、ファイルの退避が行われた後に
<prgn>dpkg</prgn> が新しいバージョンをインストールするまでの間、そのファイルが存在しないタイミングがあるのです。
</p>
+
+ <p><!--
+ Do not attempt to divert a conffile, as <prgn>dpkg</prgn> does not
+ handle it well.-->
+ <tt>conffile</tt> に待避バージョンを用いようとはしないでください。
+ このような指定を行った場合、<prgn>dpkg</prgn> は適切に処理できません。
+ </p>
</appendix>
</book>
Modified: www/trunk/src/community/devel/debian-policy-ja/version.ent
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/version.ent 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/version.ent 2014-07-03 03:35:58 UTC (rev 1621)
@@ -1,2 +1,2 @@
-<!entity version "3.8.3.0">
-<!entity date "2009-08-16">
+<!entity version "3.9.5.0">
+<!entity date "2014-07-03">
Modified: www/trunk/src/community/devel/debian-policy-ja/version.ja.ent
===================================================================
--- www/trunk/src/community/devel/debian-policy-ja/version.ja.ent 2014-06-20 23:14:18 UTC (rev 1620)
+++ www/trunk/src/community/devel/debian-policy-ja/version.ja.ent 2014-07-03 03:35:58 UTC (rev 1621)
@@ -1,2 +1,2 @@
-<!entity version "3.9.3.1">
-<!entity date "2014-01-26">
+<!entity version "3.9.5.0">
+<!entity date "2014-07-03">