Merge the following from the English version:

1.216 -> 1.221	doc/ja_JP.eucJP/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 1362, 2094, 2102]
This commit is contained in:
Ryusuke SUZUKI 2010-08-28 13:38:26 +00:00
parent 564a4b379c
commit bbc275a2e8
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=36330

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project
The FreeBSD Japanese Documentation Project
Original revision: 1.216
Original revision: 1.221
$FreeBSD$
-->
@ -677,6 +677,41 @@ lib/X11/oneko/mouse.xpm
<filename>patch-ab</filename> が共に
<filename><makevar>WRKSRC</makevar>/foobar.c</filename> を
修正するなど)。</para>
<para>RCS にとって特別な意味を持つ文字列をパッチ内に入れないようにしてください。
ファイルを私たちのソースツリーに入れる時、
これらの文字列は CVS によって書き換えられてしまい、
後でまたパッチを使おうとした時にうまくいかないことがあります。
RCS 文字列はドル記号 (<literal>&dollar;</literal>)
で囲まれており、
<literal>&dollar;FreeBSD</literal> や
<literal>&dollar;RCS</literal>
などで始まります。</para>
<para><command>diff</command> の再帰 (<option>-r</option>)
フラグを使って再帰的なパッチを作るのは大変結構なのですが、
でき上がったパッチは必ず目でチェックして余計なゴミが入っていないことを確認してください。
よくあるのはバックアップファイル同士の変更点、あるいは
<command>Imake</command> や
GNU <command>configure</command>
を使うソフトウェアの
<filename>Makefile</filename>
の変更点が入っている場合などです。
また <filename>configure.in</filename> を編集して
<command>autoconf</command> を使って
<command>configure</command> を作り直すときには、
<command>configure</command> の diff は含めずに
(それらは良く数千行におよぶことがあります)、
<literal>USE_AUTOCONF=yes</literal> を定義して
<filename>configure.in</filename> の
diff をとってください。</para>
<para>ファイルをまるごと消す場合には、
パッチを使わずに
<maketarget>post-extract</maketarget>
ターゲットで消す方が簡単です。
できあがった差分に満足したら、
それらをソースのファイルごとに別々のパッチファイルに分割してください。</para>
</sect1>
<sect1>
@ -1124,6 +1159,32 @@ MASTER_SITE_SUBDIR= applications</programlisting>
好みのミラーサイトを使用することができます。</para>
</sect2>
<sect2>
<title><makevar>EXTRACT_SUFX</makevar></title>
<para>配布ファイルが 1 つで、
圧縮方式を示すのに普通と異なる接尾辞を使っていたら、
<makevar>EXTRACT_SUFX</makevar> を設定してください。</para>
<para>例えば、配布ファイルがより一般的な
<filename>foo.tar.gz</filename> ではなく、
<filename>foo.tgz</filename> となっていたら、
次のように書きます。</para>
<programlisting>DISTNAME= foo
EXTRACT_SUFX= .tgz</programlisting>
<para><makevar>USE_BZIP2</makevar> と <makevar>USE_ZIP</makevar>
変数を設定すると、<makevar>EXTRACT_SUFX</makevar>
は必要に応じて自動的に <literal>.bz2</literal>
または <literal>.zip</literal> に設定されます。
どちらも設定されていなければ、<makevar>EXTRACT_SUFX</makevar>
は <literal>.tar.gz</literal> に設定されます。</para>
<para><makevar>EXTRACT_SUFX</makevar> と
<makevar>DISTFILES</makevar> を両方設定する必要はありません。</para>
</sect2>
<sect2>
<title><makevar>DISTFILES</makevar></title>
@ -1139,6 +1200,11 @@ MASTER_SITE_SUBDIR= applications</programlisting>
スペースで区切って設定してください。</para>
<programlisting>DISTFILES= source1.tar.gz source2.tar.gz</programlisting>
<para>明示的に設定されていない場合、
<makevar>DISTFILES</makevar> は
<literal>${DISTNAME}${EXTRACT_SUFX}</literal>
に設定されます。</para>
</sect2>
<sect2>
@ -1249,6 +1315,45 @@ DISTFILES= source1.tar.gz:source1 \
source2.tar.gz:source2 \
source3.tar.gz:source2</programlisting>
</sect2>
<sect2>
<title><makevar>DIST_SUBDIR</makevar></title>
<para><filename>/usr/ports/distfiles</filename>
ディレクトリ内をあまり散らかさないようにしてください。
たくさんのファイルを取ってくる port
や、数は少なくても他の port
のファイルと混同される恐れがあるファイル
(<filename>Makefile</filename> など)
がある場合には、
<makevar>DIST_SUBDIR</makevar> に port の名前
(<literal>${PORTNAME}</literal> か
<literal>${PKGNAMEPREFIX}${PORTNAME}</literal>
を使うといいでしょう)
を入れてください。すると <makevar>DISTDIR</makevar>
がデフォルトの
<filename>/usr/ports/distfiles</filename> から
<filename>/usr/ports/distfiles/<makevar>DIST_SUBDIR</makevar></filename>
に変更され、
取ってきたファイルはすべてそのサブディレクトリの中に置かれるようになります。</para>
<para>また、
ファイルを取ってくるときにバックアップサイトとして使われる
<filename>ftp.FreeBSD.org</filename>
のディレクトリ名にもこの変数の値が使われます
(<makevar>DISTDIR</makevar> を明示的に指定した場合、
ローカルのファイルを置くところは変わりますが、
このサイトのディレクトリ名は変わりません。
必ず <makevar>DIST_SUBDIR</makevar>
を使うようにしてください)。</para>
<note>
<para>この変数は <filename>Makefile</filename>
中で明示的に指定された
<makevar>MASTER_SITES</makevar>
には影響しません。</para>
</note>
</sect2>
</sect1>
<sect1>
@ -1507,9 +1612,8 @@ DISTFILES= source1.tar.gz:source1 \
<literal>RUN_DEPENDS</literal> に書くべきでしょう
&mdash; 少なくとも意図を明確にすることができます。</para>
</sect2>
</sect1>
<sect1>
<sect2>
<title>オプション選択可能な依存ライブラリ</title>
<para>巨大なアプリケーションの中には、複数のコンフィギュレーションで
@ -1550,6 +1654,54 @@ DISTFILES= source1.tar.gz:source1 \
<makevar>WANT_GLIB</makevar>, <makevar>WANT_GTK</makevar>,
<makevar>WANT_ESOUND</makevar>, <makevar>WANT_IMLIB</makevar>,
そして <makevar>WANT_GNOME</makevar> です。</para>
</sect2>
</sect1>
<sect1>
<title>作業ディレクトリの指定</title>
<para>それぞれの port は作業ディレクトリに展開されるので、
作業ディレクトリは書き込み可能でなければなりません。
Ports システムは、<makevar>DISTFILES</makevar> が
<literal>${DISTNAME}</literal>
というディレクトリに展開されると仮定しています。
つまり、次のように設定していたら、</para>
<programlisting>PORTNAME= foo
PORTVERSION= 1.0</programlisting>
<para>その port の配布ファイルの内容は、最上位のディレクトリが
<filename>foo-1.0</filename> で、
残りのファイルはそのディレクトリの下に置かれているということです。</para>
<para>そうでない場合に使える変数がいくつもあります。</para>
<sect2>
<title><makevar>WRKSRC</makevar></title>
<para>この変数は、
アプリケーションの配布ファイルが展開された時に作成されるディレクトリの名称を示します。
前の例で、(<filename>foo-1.0</filename> ではなく)
<filename>foo</filename> というディレクトリに展開されるなら、</para>
<programlisting>WRKSRC= foo</programlisting>
<para>または、</para>
<programlisting>WRKSRC= ${PORTNAME}</programlisting>
<para>と書いてください。</para>
</sect2>
<sect2>
<title><makevar>NO_WRKSUBDIR</makevar></title>
<para>その port がサブディレクトリに展開しないのであれば、
それを示すために <makevar>NO_WRKSUBDIR</makevar>
を設定してください。</para>
<programlisting>NO_WRKSUBDIR= yes</programlisting>
</sect2>
</sect1>
<sect1>
@ -2064,7 +2216,7 @@ ${PREFIX}/man/ja/man4/baz.4.gz</programlisting>
リンクできるような仕組みが用意されています。</para>
<sect1>
<title><makevar>REQUIRES_MOTIF</makevar></title>
<title><makevar>USE_MOTIF</makevar></title>
<para>Motif が無いとコンパイルできない port の
<filename>Makefile</filename> では、この変数を指定してください。
@ -3488,6 +3640,25 @@ PLIST_SUB= OCTAVE_VERSION=${OCTAVE_VERSION}</programlisting>
<entry>450006</entry>
</row>
<row>
<entry>4.6-RELEASE</entry>
<entry>460000</entry>
</row>
<row>
<entry>&man.sendfile.2;
をドキュメントに適合するよう修正して、
送信されたいかなるヘッダも、
ファイルから送信されたデータの総量に合計しないようにした
4.6-STABLE</entry>
<entry>460001</entry>
</row>
<row>
<entry>`sed -i' を MFC した後の 4.6-STABLE</entry>
<entry>460101</entry>
</row>
<row>
<entry>5.0-CURRENT</entry>
<entry>500000</entry>
@ -3923,104 +4094,6 @@ post-install:
</note>
</sect1>
<sect1>
<title><makevar>DIST_SUBDIR</makevar></title>
<para><filename>/usr/ports/distfiles</filename>
ディレクトリ内をあまり散らかさないようにしてください。
たくさんのファイルを取ってくる port や、
数は少なくても他の port
のファイルと混同される恐れがあるファイル
(<filename>Makefile</filename> など)
がある場合には、
<makevar>DIST_SUBDIR</makevar> に port の名前
(<literal>${PORTNAME}</literal> か
<literal>${PKGNAMEPREFIX}${PORTNAME}</literal> を使うといいでしょう)
を入れてください。
すると <makevar>DISTDIR</makevar>
がデフォルトの
<filename>/usr/ports/distfiles</filename> から
<filename>/usr/ports/distfiles/<makevar>DIST_SUBDIR</makevar></filename>
に変更され、
取ってきたファイルはすべてそのサブディレクトリの中に置かれるようになります。</para>
<para>また、
ファイルを取ってくるときにバックアップサイトとして使われる
<filename>ftp.FreeBSD.org</filename>
のディレクトリ名にもこの変数の値が使われます
(<makevar>DISTDIR</makevar> を明示的に指定した場合、
ローカルのファイルを置くところは変わりますが、
このサイトのディレクトリ名は変わりません。
必ず <makevar>DIST_SUBDIR</makevar> を使うようにしてください)。</para>
<note>
<para>この変数は <filename>Makefile</filename>
中で明示的に指定された
<makevar>MASTER_SITES</makevar>
には影響しないことに注意してください。</para>
</note>
</sect1>
<sect1>
<title>package 情報</title>
<para><filename>pkg-comment</filename> や <filename>pkg-descr</filename>,
<filename>pkg-plist</filename> といった
package 情報を必ず入れるようにしてください。</para>
<note>
<para>これらのファイルはもはや package
の作成だけに使われるものではなくなっています。
たとえ <makevar>NO_PACKAGE</makevar>が定義されていたとしても
<emphasis>必須</emphasis>であることに注意してください。</para>
</note>
</sect1>
<sect1>
<title>RCS 文字列</title>
<para>RCS にとって特別な意味を持つ文字列をパッチ内に入れないようにしてください。
ファイルを私たちのソースツリーに入れる時、
これらの文字列は CVS によって書き換えられてしまい、
後でまたパッチを使おうとした時にうまくいかないことがあります。
RCS 文字列はドル記号 (<literal>&dollar;</literal>)
で囲まれており、
<literal>&dollar;FreeBSD</literal> や
<literal>&dollar;RCS</literal>
などで始まります。</para>
</sect1>
<sect1>
<title>再帰的 diff</title>
<para><command>diff</command>
の再帰
(<option>-r</option>)
フラグを使って再帰的なパッチを作るのは大変結構なのですが、
でき上がったパッチは必ず目でチェックして余計なゴミが入っていないことを確認してください。
よくあるのはバックアップファイル同士の変更点、
あるいは
<command>Imake</command> や
GNU <command>configure</command>
を使うソフトウェアの
<filename>Makefile</filename>
の変更点が入っている場合などです。
また <filename>configure.in</filename> を編集して
<command>autoconf</command> を使って
<command>configure</command> を作り直すときには、
<command>configure</command> の diff は含めずに
(それらは良く数千行におよぶことがあります)、
<literal>USE_AUTOCONF=yes</literal> を定義して
<filename>configure.in</filename> の
diff をとってください。</para>
<para>ファイルをまるごと消す場合には、
パッチを使わずに
<maketarget>post-extract</maketarget> ターゲットで消す方が簡単です。
できあがった差分に満足したら、
それらをソースのファイルごとに別々のパッチファイルに分割してください。</para>
</sect1>
<sect1 id="porting-prefix">
<title><makevar>PREFIX</makevar></title>
@ -5269,18 +5342,6 @@ pre-install:
url="http://people.FreeBSD.org/~fenner/portsurvey/">FreeBSD
Ports distfiles 調査</ulink> があります。</para>
</chapter>
<chapter>
<title>やっとおしまい!</title>
<para>いやはや、長い文章ですみません。
ここまで読んでくださった方には感謝、感謝でございます。
さあ、port の作り方がわかったところで世界中のソフトウェアを
port 化しましょう。
FreeBSD プロジェクトに貢献するには、
それが最も簡単な方法です!
<!-- smiley --><emphasis>:-)</emphasis></para>
</chapter>
</book>
<!--