Merge the following from the English version:

1.258 -> 1.304	books/porters-handbook/book.sgml

Submitted by:	Hiroo Ono <hiroo _at_ jp dot FreeBSD dot org>
Reviewed by:	Yoshihiro Hosaka <hosaka dot yoshihiro _at_ gmail dot com>
		ryusuke
References:	[doc-jp-work 1707, 1709, 1710, 1725, 1761, 2163, 2168]
This commit is contained in:
Ryusuke SUZUKI 2011-03-27 16:22:11 +00:00
parent fa12600173
commit 71140a20ce
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=37112

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.258
Original revision: 1.304
$FreeBSD$
-->
@ -25,6 +25,7 @@
<year>2000</year>
<year>2001</year>
<year>2002</year>
<year>2003</year>
<holder role="mailto:doc@FreeBSD.org">The FreeBSD Documentation
Project</holder>
</copyright>
@ -47,7 +48,7 @@
&bookinfo.legalnotice;
</bookinfo>
<chapter>
<chapter id="own-port">
<title>自分で port を作成するには</title>
<para>自分で port を作ることや、既存の port の
@ -102,7 +103,7 @@
参照する必要があるでしょう。</para>
</note>
<sect1>
<sect1 id="porting-makefile">
<title><filename>Makefile</filename> の作成</title>
<para>最小限の <filename>Makefile</filename> は
@ -121,6 +122,7 @@ CATEGORIES= games
MASTER_SITES= ftp://ftp.cs.columbia.edu/archives/X11R5/contrib/
MAINTAINER= asami@FreeBSD.org
COMMENT= A cat chasing a mouse all over the screen
MAN1= oneko.1
MANCOMPRESSED= yes
@ -137,29 +139,16 @@ USE_IMAKE= yes
セクションをご覧ください。</para>
</sect1>
<sect1>
<sect1 id="porting-desc">
<title>package 記述ファイルの作成</title>
<para>package にするしないに関わらず、どのような port でも
三つの記述ファイルが必要です。それは
<filename>pkg-comment</filename>,
<filename>pkg-descr</filename>, と
<filename>pkg-plist</filename> の3つで、ファイル名が
2 つの記述ファイルが必要です。それは
<filename>pkg-descr</filename> と
<filename>pkg-plist</filename> です。ファイル名が
<filename>pkg-</filename> で始まっていることで
他のファイルと区別できるようになっています。</para>
<sect2>
<title><filename>pkg-comment</filename></title>
<para>このファイルには、その port についての説明を一行で書きます。
package の名前だとか、バージョン番号などを
含めては<emphasis>いけません</emphasis>。
説明は大文字で始め、最後にピリオドは付けないでください。
たとえば、こんな具合です。</para>
<programlisting>A cat chasing a mouse all over the screen</programlisting>
</sect2>
<sect2>
<title><filename>pkg-descr</filename></title>
@ -243,7 +232,7 @@ lib/X11/oneko/mouse.xpm
</sect2>
</sect1>
<sect1>
<sect1 id="porting-checksum">
<title>チェックサムファイルの作成</title>
<para><command>make makesum</command> と入力するだけで、
@ -393,9 +382,9 @@ lib/X11/oneko/mouse.xpm
<para>わたしたちがひとたびその port をチェックしたら、必要なら
あなたに確認して、それをツリーへ置きます。
あなたの名前は FreeBSD ハンドブックやその他のファイルの
<quote>Additional FreeBSD contributors</quote>
リストにも載るでしょう。
あなたの名前は<ulink
url="../../articles/contributors/contrib-additional.html">その他
FreeBSD への貢献者</ulink>の一覧やその他のファイルにも載るでしょう。
う~ん、素晴らしい。<!-- smiley -->:-)</para>
<!-- kuriyama - should use link tag? -->
@ -413,7 +402,7 @@ lib/X11/oneko/mouse.xpm
</sect1>
</chapter>
<chapter>
<chapter id="slow">
<title>本格的な port</title>
<para>残念ながら移植がそう簡単ではなく、それを動かすために
@ -422,7 +411,7 @@ lib/X11/oneko/mouse.xpm
どのように変更を行なって動くようにするのかを
順を追って説明します。</para>
<sect1>
<sect1 id="slow-work">
<title>port 構築の詳細</title>
<para>まず、あなたが port のディレクトリで
@ -450,8 +439,7 @@ lib/X11/oneko/mouse.xpm
<filename>Makefile</filename> で指定された
<makevar>MASTER_SITES</makevar> 中の URL や、
FreeBSD のメイン FTP サイト <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/">
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</ulink>
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/"></ulink>
(ここにはバックアップとして、われわれ ports 管理者が確認した
配布ファイルを置いてあります) を探しにいきます。
<command>make</command> を実行するマシンがインターネットに
@ -569,7 +557,7 @@ lib/X11/oneko/mouse.xpm
順に見ていきましょう。</para>
</sect1>
<sect1>
<sect1 id="slow-sources">
<title>オリジナルのソースの入手</title>
<para>(通常の場合、) 圧縮された tar ファイルの形
@ -622,7 +610,7 @@ lib/X11/oneko/mouse.xpm
ご覧ください)。</para>
</sect1>
<sect1>
<sect1 id="slow-modifying">
<title>port の修正</title>
<para>作業用のディレクトリに tar ファイルを展開し、
@ -650,7 +638,7 @@ lib/X11/oneko/mouse.xpm
</note>
</sect1>
<sect1>
<sect1 id="slow-patch">
<title>パッチの適用</title>
<para>port の準備段階で追加されたり変更されたりしたファイルは、
@ -714,7 +702,7 @@ lib/X11/oneko/mouse.xpm
それらをソースのファイルごとに別々のパッチファイルに分割してください。</para>
</sect1>
<sect1>
<sect1 id="slow-configure">
<title>コンフィグレーション</title>
<para>カスタマイズのために追加したいコマンドがあれば、
@ -726,7 +714,7 @@ lib/X11/oneko/mouse.xpm
スクリプトで処理することもできます。</para>
</sect1>
<sect1>
<sect1 id="slow-user-input">
<title>ユーザからの入力の扱い</title>
<para>もし、その port がビルド、コンフィグレーション、または
@ -750,7 +738,7 @@ lib/X11/oneko/mouse.xpm
</sect1>
</chapter>
<chapter>
<chapter id="makefile">
<title><filename>Makefile</filename> の作成</title>
<para><filename>Makefile</filename> の作成は非常に単純です。
@ -764,7 +752,7 @@ lib/X11/oneko/mouse.xpm
<para>では、<filename>Makefile</filename> を設計するときに
問題となるところを順に追って見てみましょう。</para>
<sect1>
<sect1 id="makefile-source">
<title>オリジナルのソース</title>
<para>ソースは <filename>foozolix-1.2.tar.gz</filename> といった名前の
@ -790,7 +778,7 @@ lib/X11/oneko/mouse.xpm
しかし、そこまでする必要があることはめったにないでしょう。</para>
</sect1>
<sect1>
<sect1 id="makefile-naming">
<title>名前の付け方</title>
<para>Port の <filename>Makefile</filename> のはじめの部分で port
@ -1307,7 +1295,7 @@ PORTEPOCH= 1</programlisting>
</sect2>
</sect1>
<sect1>
<sect1 id="makefile-categories">
<title>カテゴリ分類</title>
<sect2>
@ -1882,7 +1870,7 @@ PORTEPOCH= 1</programlisting>
</sect2>
</sect1>
<sect1>
<sect1 id="makefile-distfiles">
<title>配布ファイル</title>
<para><filename>Makefile</filename> の第二の部分では、
@ -2779,7 +2767,7 @@ PATCHFILES= patch1:test</programlisting>
</sect2>
</sect1>
<sect1>
<sect1 id="makefile-maintainer">
<title><makevar>MAINTAINER</makevar></title>
<para>あなたのメールアドレスをここに入れてください。
@ -2792,7 +2780,22 @@ PATCHFILES= patch1:test</programlisting>
セクションを参照してください。</para>
</sect1>
<sect1>
<sect1 id="makefile-comment">
<title><makevar>COMMENT</makevar></title>
<para>その port の 1 行の説明です。
コメントにはパッケージ名 (やソフトウェアのバージョン)
を<emphasis>入れないでください</emphasis>。
コメントは大文字で始まり、最後にピリオドは付けないでください。
たとえば、こんな具合です。</para>
<programlisting>COMMENT= A cat chasing a mouse all over the screen</programlisting>
<para><filename>Makefile</filename> 中で、
COMMENT 変数は MAINTAINER 変数の直後においてください。</para>
</sect1>
<sect1 id="makefile-depend">
<title>依存関係</title>
<para>多くの port は他の port に依存しています。
@ -3185,7 +3188,7 @@ PATCHFILES= patch1:test</programlisting>
</sect2>
</sect1>
<sect1>
<sect1 id="makefile-wrkdir">
<title>作業ディレクトリの指定</title>
<para>それぞれの port は作業ディレクトリに展開されるので、
@ -3212,11 +3215,11 @@ PORTVERSION= 1.0</programlisting>
前の例で、(<filename>foo-1.0</filename> ではなく)
<filename>foo</filename> というディレクトリに展開されるなら、</para>
<programlisting>WRKSRC= foo</programlisting>
<programlisting>WRKSRC= ${WRKDIR}/foo</programlisting>
<para>または、</para>
<programlisting>WRKSRC= ${PORTNAME}</programlisting>
<programlisting>WRKSRC= ${WRKDIR}/${PORTNAME}</programlisting>
<para>と書いてください。</para>
</sect2>
@ -3232,7 +3235,7 @@ PORTVERSION= 1.0</programlisting>
</sect2>
</sect1>
<sect1>
<sect1 id="makefile-build">
<title>ビルドのメカニズム</title>
<para>そのソフトウェアがビルドの際に GNU <command>make</command>
@ -3253,6 +3256,23 @@ PORTVERSION= 1.0</programlisting>
<command>configure</command> を実行する前に
<command>autoconf</command> が実行されます。</para>
<note>
<para>もしそのパッケージが GNU <command>configure</command>
を使っていて、作成された実行形式のファイルが
<filename>i386-portbld-freebsd4.7-</filename><replaceable>appname</replaceable>
のような<quote>奇妙な</quote>名称だった場合は、さらに
<makevar>CONFIGURE_TARGET</makevar>
を上書きして、新しいバージョンの <command>autoconf</command>
で生成されたスクリプトが要求する方法でターゲットを指定する必要があります。
<filename>Makefile</filename> の
<literal>GNU_CONFIGURE=yes</literal>
行のすぐ後に次の行を追加してください。</para>
<para>
<literal>CONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL}</literal>
</para>
</note>
<para>そのソフトウェアが X Window System のアプリケーションなどで、
<command>imake</command> を使って <filename>Imakefile</filename> から
<filename>Makefile</filename> を作成する場合には、
@ -3276,7 +3296,7 @@ PORTVERSION= 1.0</programlisting>
</sect1>
</chapter>
<chapter>
<chapter id="special">
<title>特別な配慮</title>
<para>port を作成する場合、
@ -3383,17 +3403,8 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar</programlisting>
<para>また、
アプリケーションのライセンスが利用者について一般的な制限をかけている場合も、
この変数を設定してください。例としては下記のものがあります。</para>
<itemizedlist>
<listitem>
<para>非商用利用限定のアプリケーション</para>
</listitem>
<listitem>
<para>一部の国で規制されている暗号コードを含むアプリケーション</para>
</listitem>
</itemizedlist>
この変数を設定してください。
たとえば、非商用利用限定のアプリケーションなどがあります。</para>
</sect2>
<sect2>
@ -3447,6 +3458,14 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar</programlisting>
(たとえば <literal>5.005</literal>)。</entry>
</row>
<row>
<entry><makevar>PERL_LEVEL</makevar></entry>
<entry>インストールされている Perl の
MNNNPP 形式の整数で表されるバージョン
(たとえば <literal>500503</literal>)。</entry>
</row>
<row>
<entry><makevar>PERL_ARCH</makevar></entry>
@ -3706,19 +3725,19 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar</programlisting>
</table>
</sect1>
<sect1>
<sect1 id="using-gnome">
<title>GNOME の利用</title>
<para>FreeBSD/GNOME プロジェクトは、ある特定の port
が使っている GNOME コンポーネントを特定するために
<literal>GNOMENG</literal> というシステムを利用しています。
FreeBSD/GNOME プロジェクトのページに
<ulink url="http://www.freebsd.org/gnome/docs/porting.html">その変数のわかりやすい一覧</ulink>
<ulink url="http://www.FreeBSD.org/gnome/docs/porting.html">その変数のわかりやすい一覧</ulink>
があります。</para>
</sect1>
<sect1>
<sect1 id="using-kde">
<title>KDE の利用</title>
<table frame="none">
@ -3782,31 +3801,31 @@ LDCONFIG_DIRS= %%PREFIX%%/lib/foo %%PREFIX%%/lib/bar</programlisting>
</table>
</sect1>
<sect1>
<sect1 id="using-bison">
<title>Bison の利用</title>
<para></para>
</sect1>
<sect1>
<sect1 id="using-java">
<title>Java の利用</title>
<para></para>
</sect1>
<sect1>
<sect1 id="using-python">
<title>Python の利用</title>
<para></para>
</sect1>
<sect1>
<sect1 id="using-emacs">
<title>Emacs の利用</title>
<para></para>
</sect1>
<sect1>
<sect1 id="using-ruby">
<title>Ruby の利用</title>
<para></para>
@ -4082,7 +4101,7 @@ MASTERDIR= ${.CURDIR}/../xdvi300
port は解像度を 118 として作成されます。</para>
</chapter>
<chapter>
<chapter id="shared">
<title>共有ライブラリのバージョン</title>
<para>まず<ulink url="../developers-handbook/policies-shlib.html">
@ -4224,7 +4243,7 @@ ${PREFIX}/man/ja/man4/baz.4.gz</programlisting>
(port からコンパイルする人々のために) 動的にでも、
(package を配布する人々のために) 静的にでもリンクできるような仕組みが用意されています。</para>
<sect1>
<sect1 id="motif-use">
<title><makevar>USE_MOTIF</makevar></title>
<para>Motif が無いとコンパイルできない port
@ -4233,7 +4252,7 @@ ${PREFIX}/man/ja/man4/baz.4.gz</programlisting>
port をコンパイルしようとするのを未然に防ぎます。</para>
</sect1>
<sect1>
<sect1 id="motif-lib">
<title><makevar>MOTIFLIB</makevar></title>
<para>この変数は <filename>bsd.port.mk</filename> によって
@ -4269,7 +4288,7 @@ ${PREFIX}/man/ja/man4/baz.4.gz</programlisting>
</sect1>
</chapter>
<chapter>
<chapter id="x11-fonts">
<title>X11 のフォント</title>
<para>もし、あなたの port が X Window System
@ -4390,7 +4409,7 @@ Options:
<literal>@exec</literal>/<literal>@unexec</literal>:
以下参照)
に重複して書く必要があるからです。
しかし、もし日本語 (あるいは、他のマルチバイト文字)
しかし、日本語 (あるいは、他のマルチバイトエンコーディング)
info ファイルがある場合には
<command>install-info</command>
の特別な引数を使用する必要があるでしょう。
@ -4589,7 +4608,7 @@ diff -u -r1.15 pkg-plist
</procedure>
</chapter>
<chapter>
<chapter id="pkg-files">
<title><filename>pkg-<replaceable>*</replaceable></filename> ファイル</title>
<para><filename>pkg-<replaceable>*</replaceable></filename> ファイルには、
@ -4615,7 +4634,7 @@ diff -u -r1.15 pkg-plist
</note>
</sect1>
<sect1>
<sect1 id="pkg-install">
<title><filename>pkg-install</filename></title>
<para>バイナリパッケージが <command>pkg_add</command>
@ -4645,7 +4664,7 @@ diff -u -r1.15 pkg-plist
</note>
</sect1>
<sect1>
<sect1 id="pkg-req">
<title><filename>pkg-req</filename></title>
<para>(訳注: 実行されるマシンの状態に応じて) その port
@ -4725,7 +4744,7 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
で <makevar>TMPPLIST</makevar> を書きかえてください。</para>
</sect1>
<sect1>
<sect1 id="pkg-names">
<title id="porting-pkgfiles"><filename>pkg-<replaceable>*</replaceable></filename>
ファイルの名前変更</title>
@ -4756,11 +4775,6 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
</thead>
<tbody>
<row>
<entry><makevar>COMMENT</makevar></entry>
<entry><literal>${PKGDIR}/pkg-comment</literal></entry>
</row>
<row>
<entry><makevar>DESCR</makevar></entry>
<entry><literal>${PKGDIR}/pkg-descr</literal></entry>
@ -4806,7 +4820,7 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
<chapter id="testing">
<title>port のテスト</title>
<sect1>
<sect1 id="testing-portlint">
<title>portlint</title>
<para>送付や commit をする前に
@ -4892,7 +4906,7 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
そのまま使える可能性が高くなります。</para>
</sect1>
<sect1>
<sect1 id="testing-freshports">
<title>FreshPorts 正当性テスト</title>
<para><ulink url="http://www.FreshPorts.org/">FreshPorts</ulink>
@ -4955,11 +4969,25 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
(カテゴリは <literal>ports</literal>)
に diff の出力結果を添えて、わたしたちに送ってもらうのが一番良いです。
commit する際に CVS に明確に記述しなければならないので、
あなたがその port のメンテナなら、概要 (synopsis) 行の先頭に
<literal>[maintainer update]</literal>
と記入し、PR の <quote>Class</quote> を
<literal>maintainer-update</literal> にしてください。
付け加えたり削除したりしたファイルがあればそれについて書いておいてください。
もし diff の大きさが 20 KB 程度を超えるようであれば、
圧縮したものを uuencode してください。
そうでなければそのまま PR に入れるだけで構いません。</para>
<important>
<para>更新の動機が、セキュリティ上の問題や、
現在 commit されている port に重大な欠陥である場合は、
&a.portmgr; に連絡して、あなたの port
のパッケージをただちに作りなおして再配布するように要求してください。
そうしないと、無防備な &man.pkg.add.1;
のユーザたちが、何週間にもわたって <command>pkg_add -r</command>
で古いバージョンをインストールし続けてしまいます。</para>
</important>
<note>
<para>繰り返しになりますが、既存の ports の変更を送るときには
&man.shar.1; ではなく &man.diff.1; を使用してください!</para>
@ -4982,7 +5010,7 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
何をしているかをあなたが理解していることも証明します。</para>
<!-- 2000/07/16:hrs strange translation -->
<sect1>
<sect1 id="dads-strip">
<title>バイナリの strip</title>
<para>バイナリは特に必要がなければ、手動で strip しないでください。
@ -4993,12 +5021,12 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
<para>ファイルを strip する必要はあるものの
<makevar>INSTALL_PROGRAM</makevar> マクロを使いたくない場合は、
<makevar>${STRIP}</makevar> でプログラムを strip できます。
<makevar>${STRIP_CMD}</makevar> でプログラムを strip できます。
これは、多くの場合 <literal>post-install</literal>
ターゲット内で行われます。たとえば</para>
<programlisting>post-install:
${STRIP} ${PREFIX}/bin/xdl</programlisting>
${STRIP_CMD} ${PREFIX}/bin/xdl</programlisting>
<para>インストールされた実行形式がすでに strip
されているかどうかは <command>file</command>
@ -5009,7 +5037,7 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
strip せず、問題なく終了します。</para>
</sect1>
<sect1>
<sect1 id="dads-install">
<title><makevar>INSTALL_*</makevar> マクロ</title>
<para>あなた自身の <maketarget>*-install</maketarget>
@ -5741,6 +5769,27 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
<entry>470101</entry>
</row>
<row>
<entry>m_aux mbuf を m_tag で置き換える mbuf
の変更を MFC した後の 4.7-STABLE</entry>
<entry>470102</entry>
</row>
<row>
<entry>OpenSSL 0.9.7 導入後の 4.7-STABLE</entry>
<entry>470103</entry>
</row>
<row>
<entry>4.8-RELEASE</entry>
<entry>480000</entry>
</row>
<row>
<entry>4.8-STABLE</entry>
<entry>480100</entry>
</row>
<row>
<entry>5.0-CURRENT</entry>
<entry>500000</entry>
@ -5995,11 +6044,89 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
<entry>500041</entry>
</row>
<row>
<entry>Binutils 2.13 にアップグレードした後の
5.0-CURRENT。このアップグレードには、新たな FreeBSD
の emulation, vec および出力形式が含まれている。
</entry>
<entry>500042</entry>
</row>
<row>
<entry>libc に pthread_XXX への弱いスタブを追加し、
libXThrStub.so が obsolete になった後の 5.0-CURRENT</entry>
libXThrStub.so が obsolete になった後の 5.0-CURRENT。
5.0-RELEASE</entry>
<entry>500043</entry>
</row>
<row>
<entry>RELENG_5_0_0 をブランチした後の 5.0-CURRENT</entry>
<entry>500100</entry>
</row>
<row>
<entry>&lt;sys/dkstat.h&gt; は空なので include
すべきではない</entry>
<entry>500101</entry>
</row>
<row>
<entry>d_mmap_t インターフェイス変更後の
5.0-CURRENT</entry>
<entry>500102</entry>
</row>
<row>
<entry>taskqueue_swi が Giant ロック無しで実行され、
Giant ロックされて実行される taskqueue_swi_giant
が追加された後の 5.0-CURRENT</entry>
<entry>500103</entry>
</row>
<row>
<entry>cdevsw_add() と cdevsw_remove()
はもう存在しません。
MAJOR_AUTO 割り当て機能が登場しました</entry>
<entry>500104</entry>
</row>
<row>
<entry>cdevsw の新たな初期化方法が導入された後の
5.0-CURRENT</entry>
<entry>500105</entry>
</row>
<row>
<entry>devstat_add_entry() が devstat_new_entry()
に置き換えられました</entry>
<entry>500106</entry>
</row>
<row>
<entry>Devstat のインターフェイス変更。
sys/sys/param.h 1.149 を参照のこと</entry>
<entry>500107</entry>
</row>
<row>
<entry>トークンリングインターフェイスの変更</entry>
<entry>500108</entry>
</row>
<row>
<entry>vm_paddr_t の追加</entry>
<entry>500109</entry>
</row>
<row>
<entry>realpath(3) がスレッドセーフになった後の
5.0-CURRENT</entry>
<entry>500110</entry>
</row>
<row>
<entry>usbhid(3) が NetBSD と同期した後の 5.0-CURRENT</entry>
<entry>500111</entry>
</row>
<row>
<entry>新たな NSS 実装と
POSIX.1 準拠の getpw*_r, getgr*_r
関数が導入後の 5.0-CURRENT</entry>
<entry>500112</entry>
</row>
<row>
<entry>古い rc システムを削除した後の 5.0-CURRENT</entry>
<entry>500113</entry>
</row>
</tbody>
</tgroup>
</informaltable>
@ -6018,7 +6145,7 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
</note>
</sect1>
<sect1>
<sect1 id="dads-after-port-mk">
<title><filename>bsd.port.mk</filename> の後に書くこと</title>
<para><literal>.include &lt;bsd.port.mk&gt;</literal>
@ -6149,7 +6276,7 @@ post-install:
.endif</programlisting>
</sect1>
<sect1>
<sect1 id="dads-documentation">
<title>付加的な文書のインストール</title>
<para>普通のマニュアルや info
@ -6201,7 +6328,7 @@ post-install:
</note>
</sect1>
<sect1>
<sect1 id="dads-subdirs">
<title>ディレクトリ構成</title>
<para>インストール時には <makevar>PREFIX</makevar>
@ -6271,7 +6398,7 @@ lib/X11/oneko/sounds/cat.au
が異常終了することもありません。</para>
</sect1>
<sect1>
<sect1 id="dads-uid">
<title>UID</title>
<para>あなたの port が、
@ -6320,6 +6447,7 @@ gdm:*:92:92:GDM Sandbox:/:/sbin/nologin
jabber:*:93:93:Jabber Daemon:/nonexistent:/nonexistent
p4admin:*:94:94:Perforce admin:/usr/local/perforce:/sbin/nologin
interch:*:95:95:Interchange user:/usr/local/interchange:/sbin/nologin
fido:*:111:111:Fido System:/usr/local/fido:/bin/sh
drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
<para>このリストを最新の状態に保つためにも、
@ -6328,7 +6456,7 @@ drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
UID の予約に関する注意書きをつけてください。</para>
</sect1>
<sect1>
<sect1 id="dads-rational">
<title>合理的な port</title>
<para><filename>Makefile</filename>
@ -6345,7 +6473,7 @@ drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
<makevar>GNU_CONFIGURE</makevar> とする、などです。</para>
</sect1>
<sect1>
<sect1 id="dads-cc">
<title><makevar>CC</makevar> および <makevar>CXX</makevar>
の尊重</title>
@ -6376,7 +6504,7 @@ drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
2 番目の例では、すでに設定されていた内容を上書きしてしまいます。</para>
</sect1>
<sect1>
<sect1 id="dads-cflags">
<title><makevar>CFLAGS</makevar> の尊重</title>
<para><makevar>CFLAGS</makevar> 変数は尊重すべきです。
@ -6402,7 +6530,7 @@ drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
二番目の例では既存の定義をすべて無効にしてしまっています。</para>
</sect1>
<sect1>
<sect1 id="dads-config">
<title>コンフィグレーション (設定) ファイル</title>
<para>もしあなたの port が設定ファイルを
@ -6423,7 +6551,7 @@ drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
</para>
</sect1>
<sect1>
<sect1 id="dads-freedback">
<title>フィードバック</title>
<para>port を作るためにソフトウェアに変更を加えたら、
@ -6431,7 +6559,7 @@ drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
これらが次のリリースに取り入れられればアップグレードが楽になります。</para>
</sect1>
<sect1>
<sect1 id="dads-readme">
<title><filename>README.html</filename></title>
<para><filename>README.html</filename>
@ -6441,12 +6569,84 @@ drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
コマンドで生成されるファイルです。</para>
</sect1>
<sect1>
<sect1 id="dads-broken">
<title>Port に <makevar>BROKEN</makevar>, <makevar>FORBIDDEN</makevar>
などの印をつける</title>
<para>ある port にセキュリティ脆弱性があることが判明したり、
根本的に壊れてしまい修正に何時間もの注意深い作業が必要になったり、
基本的には廃れてしまったものの、
何らかの理由で ports ツリーには残される
(もちろんあとで修正しますよね?)
という日が来るのは避けられません。
ある port が壊れていることを示すために、port の
<filename>Makefile</filename> では 3 つの
<command>make</command> 変数が使えます。以下の
<command>make</command> 変数の値は、
その port が壊れている理由を説明するためにユーザに示されます。
それぞれの make 変数は、ユーザと <filename>Makefiles</filename>
を処理する自動化システムに対して根本的に異なる意味を伝えますので、
正しい <command>make</command> 変数をお使いください。</para>
<itemizedlist>
<listitem>
<para><makevar>BROKEN</makevar>
は、動作しないためインストールすべきでない port
用のものです。これは、ユーザがその port
をインストールしないようにしますが、
<makevar>BROKEN</makevar> とされた port
は <ulink url="http://bento.FreeBSD.org/">Bento
クラスタ</ulink>で引き続きビルドされます。
ユーザには port をインストールしてほしくないけれども
Bento ではビルドしてほしい場合は、port
を <makevar>BROKEN</makevar> にしてください。</para>
</listitem>
<listitem>
<para><makevar>FORBIDDEN</makevar>
は、セキュリティ脆弱性があったり、その port
をインストールすると
FreeBSD システムの安全性に重大な懸念を生じる
(たとえば、セキュアでないという評判があるプログラムや、
容易に悪用できるサービスを提供するプログラムなど)
port 用のものです。
あるソフトウェアの一部に脆弱性があることが判明し、
修正がリリースされていない場合は
<makevar>FORBIDDEN</makevar> にすべきです。
理想的には、セキュリティ脆弱性が発見された時は、
脆弱性を抱えた FreeBSD ホストの数を減らすために、
ただちに ports を更新すべきです
(我々は、セキュアであるという評判を得たいのです)。
しかし、脆弱性が公表されてから、
脆弱性を抱えたソフトウェアの新しい版がリリースされるまでに無視できない時間があくことがままあります。
セキュリティ以外の理由で port を
<makevar>FORBIDDEN</makevar> にしないでください。</para>
</listitem>
<listitem>
<para><makevar>IGNORE</makevar>
は、どんな理由であれビルドすべきではない port 用です。
ユーザも <ulink url="http://bento.FreeBSD.org/">Bento
クラスタ</ulink> も、どんな状況であれ
<makevar>IGNORE</makevar> とされた port はビルドしません。
嘘だと思うなら、port のビルドを妨げるのに
<makevar>IGNORE</makevar> を使ってみてください。</para>
</listitem>
</itemizedlist>
<para>この変数を使うのは、port
が更新できない場合の最後の手段にしてください。
ずっと壊れたままの port は、ports
ツリーから完全に削除すべきです。</para>
</sect1>
<sect1 id="dads-misc">
<title>その他諸々</title>
<para><filename>pkg-comment</filename>,
<filename>pkg-descr</filename>,
<filename>pkg-plist</filename> などのファイルはそれぞれ二重にチェックしてください。
<para>ファイル <filename>pkg-descr</filename> と
<filename>pkg-plist</filename>
はそれぞれ二重にチェックしてください。
再検討してもっと良い記述があればそれに置きかえてください。</para>
<para>GNU General Public License
@ -6460,7 +6660,7 @@ drweb:*:426:426:Dr.Web Mail Scanner:/nonexistent:/sbin/nologin</programlisting>
わたしたちに法律に反するような形でソフトウェアの配布をさせないでください!</para>
</sect1>
<sect1>
<sect1 id="dads-stuck">
<title>困ったら…</title>
<para>わたしたちに質問を送る前に、
@ -6528,6 +6728,7 @@ PATCHFILES= xdvi-18.patch1.gz xdvi-18.patch2.gz
こに自分のアドレスを書くのがいやな人は "ports@FreeBSD.org" と書いて
もいいです]
MAINTAINER= asami@FreeBSD.org
COMMENT= A DVI Previewer for the X Window System
[依存するport -- ない場合もあります]
RUN_DEPENDS= gs:${PORTSDIR}/print/ghostscript
@ -6573,32 +6774,35 @@ pre-install:
<para>まず、あなたの port に
<filename>pkg-plist</filename>
がないことを除いて完全なことを確認して、
空の <filename>pkg-plist</filename> を作ってください。</para>
<screen>&prompt.root; <userinput>touch pkg-plist</userinput></screen>
がないことを除けば完成していることを確認してください。</para>
<para>次に、あなたの port
をインストールすることができるディレクトリ階層を新たに作成してください。
また、依存するものをインストールしてください。</para>
をインストールする一時ディレクトリを作成して、
依存するものをすべてインストールしてください。
<replaceable>port-type</replaceable> は
X アプリケーションではない port については <literal>local</literal>、
XFree86 4 またはそれより前の XFree86
のディレクトリ階層にインストールする ports については、それぞれ
<literal>x11-4</literal> または <literal>x11</literal>
にすべきです。</para>
<screen>&prompt.root; <userinput>mkdir /var/tmp/<replaceable>port-name</replaceable></userinput>
&prompt.root; <userinput>mtree -U -f /etc/mtree/BSD.local.dist -d -e -p /var/tmp/<replaceable>port-name</replaceable></userinput>
&prompt.root; <userinput>mtree -U -f /etc/mtree/BSD.<replaceable>port-type</replaceable>.dist -d -e -p /var/tmp/<replaceable>port-name</replaceable></userinput>
&prompt.root; <userinput>make depends PREFIX=/var/tmp/<replaceable>port-name</replaceable></userinput></screen>
<para>このディレクトリ構造を新しいファイルに保存してください。</para>
<screen>&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find -d * -type d) &gt; OLD-DIRS</userinput></screen>
<screen>&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find -d * -type d) | sort -r &gt; OLD-DIRS</userinput></screen>
<para>もしあなたの port が <makevar>PREFIX</makevar> にちゃんと従うなら、
ここで port をインストールしてパッキングリストを作ることができます。</para>
<screen>&prompt.root; <userinput>make install PREFIX=/var/tmp</userinput>
&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find -d * \! -type d) &gt; pkg-plist</userinput></screen>
&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find -d * \! -type d) | sort &gt; pkg-plist</userinput></screen>
<para>新しく生成されたディレクトリはすべてパッキングリストに追加する必要があります。</para>
<screen>&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name && find -d * -type d) | comm -13 OLD-DIRS - | sed -e 's#^#@dirrm #' &gt;&gt; pkg-plist</replaceable></userinput></screen>
<screen>&prompt.root; <userinput>(cd /var/tmp/<replaceable>port-name</replaceable> && find -d * -type d) | sort -r | comm -13 OLD-DIRS - | sed -e 's#^#@dirrm #' &gt;&gt; pkg-plist</userinput></screen>
<para>最後にパッキングリストを手で整える必要があります;
<emphasis>すべて</emphasis>が自動化されているわけではありません。
@ -6616,9 +6820,13 @@ pre-install:
port によってインストールされるライブラリは、
<link linkend="porting-shlibs">共有ライブラリ</link>
のセクションで示したように記載されるべきです。</para>
<para>または、<filename>/usr/ports/Tools/scripts/</filename>
にある <command>plist</command>
スクリプトを使ってパッキングリストを自動的に生成してください。</para>
</chapter>
<chapter>
<chapter id="changes">
<title>この文書と ports システムの変更</title>
<para>もしあなたが、たくさんの ports の保守をしているのであれば、