[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pkgsrc/doc/guide/files/fixes.xml: 1.70 -> 1.72
以下のページの更新をしました。ツッコミをお願いします。
pkgsrc/doc/guide/files/fixes.xml: 1.70 -> 1.72
> revision 1.72
> date: 2006/09/10 19:36:31; author: wiz; state: Exp; lines: +2 -2
> Fix typo in markup.
> ----------------------------
> revision 1.71
> date: 2006/09/10 19:27:34; author: wiz; state: Exp; lines: +1523 -1414
> Document PKGNAME_NOREV. Use more markup. Improve DIST_SUBDIR
> description. Add section about programming languages. Describe
> UNLIMIT_RESOURCES. Avoid extra whitespace in <para>.
> Add section about emulation packages.
> Add section about BROKEN and BROKEN_IN.
# 極悪つーか programlisting がアレなことになっとりますが
水曜日までに異議がなければ、 commit します。
原文は
http://cvsweb.de.NetBSD.org/cgi-bin/cvsweb.cgi/pkgsrc/doc/guide/files/fixes.xml?rev=1.72&content-type=text/plain
で、訳文は
http://www.na.rim.or.jp/%7Ekano/tmp/pkgsrc/doc/guide/files/fixes.xml
に置いてあります。
以下、訳と原文それぞれの、
1.70 から空白類文字を調節したものと 1.72 との差分です。
--- fixes.xml.orig 2006-12-18 22:32:26.000000000 +0900
+++ fixes.xml 2006-12-18 23:46:45.000000000 +0900
@@ -1,6 +1,6 @@
-<!-- $NetBSD: fixes.xml,v 1.70 2006/09/03 10:54:55 jmmv Exp $ -->
+<!-- $NetBSD: fixes.xml,v 1.72 2006/09/10 19:36:31 wiz Exp $ -->
<!-- Based on english version: -->
-<!-- NetBSD: fixes.xml,v 1.70 2006/09/03 10:54:55 jmmv Exp -->
+<!-- NetBSD: fixes.xml,v 1.72 2006/09/10 19:36:31 wiz Exp -->
<chapter id="fixes"> <?dbhtml filename="fixes.html"?>
<title>パッケージを動くようにする</title>
@@ -216,7 +216,9 @@
<para>distfileをFTPに置いてはいけません。ソースコードやその他のdistfileのイ
ンターネット経由での再配布が許可されていない場合は、この変数を
- <varname>${RESTRICTED}</varname>に設定してください。</para>
+ <varname>${RESTRICTED}</varname>に設定してください。
+ この変数を設定していない場合は、distfile が
+ ftp.NetBSD.org にミラーされます。</para>
</listitem>
</itemizedlist>
@@ -479,7 +481,7 @@
な場合があります。元の作者による将来のバージョンと衝突しないようにするため、
<varname>PKGREVISION=1</varname> (2, ...)を設定して、パッケージのバージョンに
<quote>nb1</quote>, <quote>nb2</quote>, ...
- という接尾辞をつけることができます。この<quote>nb</quote>は、pkgツール群からは<quote>.</quote>と
+ という接尾辞をつけることができます。この<quote>nb</quote>は、パッケージのツール群からは<quote>.</quote>と
同様の扱いを受けます。たとえば、</para>
<programlisting>
@@ -487,7 +489,10 @@
PKGREVISION= 9
</programlisting>
- <para>とすると、<varname>PKGNAME</varname>は<quote>foo-17.42nb9</quote>になります。</para>
+ <para>とすると、<varname>PKGNAME</varname>は<quote>foo-17.42nb9</quote>になります。
+ たとえば <varname>DIST_SUBDIR</varname> の設定用などに、
+ <varname>PKGNAME</varname> に接尾辞 <quote>nbX</quote> がつかない、
+ 元の値を使いたい場合は、<varname>PKGNAME_NOREV</varname> を使います。</para>
<para>このパッケージの新しいリリース版が出た際には、
<varname>PKGREVISION</varname>は消してください。
@@ -499,27 +504,29 @@
</programlisting>
<para>バイナリーパッケージに対して自明でない変化をおよぼす場合は、すべて、
- PKGREVISION を上げるようにします。PKGREVISION を上げないと、
+ <varname>PKGREVISION</varname> を上げるようにします。
+ <varname>PKGREVISION</varname> を上げないと、
変更前のバージョンをインストールしている人が、
そのパッケージが古くなったことを知るすべがなくなってしまいます。
- したがって、PKGREVISION を上げない変更とは、本質的に
+ したがって、<varname>PKGREVISION</varname> を上げない変更とは、本質的に
「誰もアップグレードする必要のない自明な変更」ということであり、
- これが PKGREVISION を上げるべきか否かを大雑把に判断する方法です。
- PKGREVISION を上げる意味のない変更には、たとえば以下のようなものがあります。</para>
+ これが <varname>PKGREVISION</varname> を上げるべきか否かを大雑把に判断する方法です。
+ <varname>PKGREVISION</varname> を上げる意味のない変更には、たとえば以下のようなものがあります。</para>
<programlisting>
- HOMEPAGE, MAINTAINER や、Makefile 中のコメントの変更。
+ <varname>HOMEPAGE</varname>, <varname>MAINTAINER</varname>
+ や、Makefile 中のコメントの変更。
構築変数の変更で、作成されるバイナリーパッケージに変化がない場合。
- DESCR の変更。
- PKG_OPTIONS の追加で、標準のオプションに変化がない場合。
+ <filename>DESCR</filename> の変更。
+ <varname>PKG_OPTIONS</varname> の追加で、標準のオプションに変化がない場合。
</programlisting>
- <para>PKGREVISION を上げる価値のある変更には、
+ <para><varname>PKGREVISION</varname> を上げる価値のある変更には、
たとえば以下のようなものがあります。</para>
<programlisting>
セキュリティーの修正
パッチファイルの変更または追加
- PLIST の変更
+ <filename>PLIST</filename> の変更
</programlisting>
<para>依存するパッケージの ABI が変更された場合にも、
@@ -636,6 +643,9 @@
確認後、この問題の正しい回避策は、<varname>DIST_SUBDIR</varname>
を一意な (普通は <varname>PKGNAME_NOREV</varname>
にもとづく) ディレクトリー名に設定することです。
+ これを設定すると、このパッケージの <varname>DISTFILES</varname> と
+ <varname>PATCHFILES</varname> はすべて、
+ distfiles ディレクトリー以下の、設定した名前のサブディレクトリーに置かれます。
この問題がよく起きる場合は、ディレクトリー名に
<varname>PKGNAME</varname> を使ったり
(これにより <filename>nbX</filename> サフィックスが含まれる)、
@@ -897,6 +907,84 @@
</sect2>
</sect1>
+<sect1 id="programming-languages">
+ <title>プログラミング言語</title>
+
+ <sect2 id="basic-programming-languages">
+ <title>C, C++ および Fortran</title>
+
+ <para>C, C++ および Fortran 言語用のコンパイラーは、
+ NetBSD の基本システムに附属しています。標準では、
+ pkgsrc はパッケージが C で書かれていると仮定し、それ以外のコンパイラーをすべて隠します
+ (ラッパーの枠組による。<xref linkend="buildlink" />参照)。</para>
+
+ <para>パッケージがどの言語のコンパイラーを必要としているかを表すには、
+ <varname>USE_LANGUAGES</varname> 変数を設定します。使うことのできる値は、
+ 現在のところ、<quote>c</quote>, <quote>c++</quote>,
+ <quote>fortran</quote> (および、これらの任意の組合せ) です。標準では
+ <quote>c</quote> になります。GNU の configure スクリプトを使うパッケージでは、
+ C++ で書かれているものであっても、通常は configure 相で
+ C コンパイラーを必要とします。</para>
+ </sect2>
+
+ <sect2 id="java-programming-language">
+ <title>Java</title>
+
+ <para>プログラムが Java で書かれている場合は、pkgsrc における Java
+ の枠組を使います。パッケージは
+ <filename>../../mk/java-vm.mk</filename> をインクルードする必要があります。
+ この Makefile の断片は、以下の変数を用意してくれます。</para>
+
+ <itemizedlist>
+ <listitem><para><varname>USE_JAVA</varname> は、
+ JDK への依存性が追加されるかどうかを定義します。
+ <varname>USE_JAVA</varname> が <quote>run</quote> に設定された場合は、
+ JDK への実行時依存性があるだけです。標準では <quote>yes</quote> となり、
+ この場合は JDK への構築時依存性も追加されます。</para></listitem>
+
+ <listitem><para>パッケージが Java2 の実装を必要とすることを表すため、
+ <varname>USE_JAVA2</varname> を設定します。この変数が対応している値は、
+ <quote>yes</quote>, <quote>1.4</quote>,
+ <quote>1.5</quote> です。 <quote>yes</quote> は任意の Java2
+ の実装を受け入れます。<quote>1.4</quote> はバージョン 1.4 以上を要求し、
+ <quote>1.5</quote> はバージョン 1.5 以上のみを受け入れます。
+ この変数は標準では設定されません。</para></listitem>
+ <!-- XXX: describe PKG_JVM_DEFAULT and PKG_JVMS_ACCEPTED, but
+ not here -->
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="perl-scripts">
+ <title>perl スクリプトを含むパッケージ</title>
+
+ <para>perl スクリプトがパッケージに含まれる場合は、
+ <varname>USE_TOOLS</varname> 変数に <quote>perl</quote> を追加し、
+ 適切なインタープリターへのパスが設定されるようにするために
+ <varname>REPLACE_PERL</varname> を設定します。
+ <varname>REPLACE_PERL</varname> の値には、パスを調節する対象のスクリプトを
+ <varname>WRKSRC</varname> からの相対位置として並べたリストを含めるようにします。
+ 対象のスクリプト内に現れる <filename>*/bin/perl</filename> はすべて、
+ perl の実行ファイルへのフルパスに置き換えられます。</para>
+
+ <para>特定のバージョンの perl が必要な場合は、
+ <varname>PERL5_REQD</varname> 変数をバージョン番号に設定します。
+ 標準では <quote>5.0</quote> になります。</para>
+
+ <para>perl モジュールの扱いについては、
+ <xref linkend="perl-modules" />をご覧ください。</para>
+ </sect2>
+
+ <sect2 id="other-programming-languages">
+ <title>他のプログラミング言語</title>
+
+ <para>現在のところ、pkgsrc では、他のプログラミング言語に対する特別な扱いはありません。
+ その言語のコンパイラーのパッケージに
+ <filename>buildlink3.mk</filename> ファイルがある場合は、
+ このファイルをインクルードします。このファイルがない場合は、
+ 適切なコンパイラーのパッケージへの (構築時) 依存性を追加するだけです。</para>
+ </sect2>
+</sect1>
+
<sect1 id="fixes.build">
<title><emphasis>build</emphasis> 相での問題を修正する</title>
@@ -1026,6 +1114,21 @@
bmake</command> を実行すれば十分です。</para>
</sect2>
+
+ <sect2 id="out-of-memory">
+ <title>メモリーが不足する</title>
+
+ <para>時には、コンパイラーの実行でオペレーティングシステム固有のソフトリミットに達するために、
+ パッケージの構築に失敗することがあります。
+ <varname>UNLIMIT_RESOURCES</varname> 変数を設定して、
+ pkgsrc に資源の制限を解除するよう伝えることができます。
+ 現在のところ、使うことのできる値は、
+ <quote>datasize</quote> と <quote>stacksize</quote> (あるいは両方) です。
+ この変数を設定すると、シェル組み込みの <command>ulimit</command>
+ コマンドを実行した場合と同様に、それぞれ、
+ データセグメントのサイズとスタックのサイズの上限を、
+ ハードリミットまで引き上げます。</para>
+ </sect2>
</sect1>
<sect1 id="fixes.install">
@@ -1109,19 +1212,7 @@
<varname>INSTALL_GAME</varname> および
<varname>INSTALL_GAME_DATA</varname>
の設定に応じて適切に設定されるようにします。</para>
- </sect2>
-
-
- <sect2 id="perl-scripts">
- <title>perlスクリプトを含むパッケージ</title>
-
- <para>
- perlスクリプトがパッケージに含まれる場合は、
- インタープリターのパスが適切に設定されるようにするために、
- <varname>REPLACE_PERL</varname>を設定します。
- <varname>REPLACE_PERL</varname>の設定値は、調整の対象となるスクリプトを<varname>WRKSRC</varname>からの相対位置で列挙したものにし
- ます。</para>
- </sect2>
+ </sect2>
<sect2 id="hardcoded-paths">
@@ -1402,7 +1493,7 @@
</listitem>
- <listitem><para>PLIST を確認し、<filename>libdata/gtk-2.0</filename>
+ <listitem><para><filename>PLIST</filename> を確認し、<filename>libdata/gtk-2.0</filename>
ディレクトリー以下の項目をすべて削除します。
これらは自動的に処理されるものだからです。</para>
</listitem>
@@ -1557,6 +1648,25 @@
</orderedlist>
</sect2>
+ <sect2 id="emulation-packages">
+ <title>エミュレーションによるバイナリーの実行に対応したパッケージ</title>
+
+ <para>パッケージのなかには、あるオペレーティングシステム用のバイナリーを
+ (エミュレーションに対応した) 別のオペレーティングシステム上で実行するための、
+ ライブラリーや実行ファイルを提供するものがあります。
+ 例としては、NetBSD 上で Linux のバイナリーを実行するものがあげられます。</para>
+
+ <para><filename role="pkg">pkgtools/rpm2pkg</filename>
+ は、Linux の rpm パッケージの展開やパッケージ化を補助するものです。</para>
+
+ <para><varname>CHECK_SHLIBS</varname> を no に設定して、
+ インストールされた実行ファイル用のライブラリーを動的リンカーがすべて見つけられることを検査する
+ <command>check-shlibs</command> ターゲットを抑止することができます。
+ この検査では標準の動的リンカーを実行するので、
+ エミュレーションパッケージに対しては検査が失敗します。
+ エミュレーションで使われるライブラリーは、
+ 標準のディレクトリーには置かれていないからです。</para>
+ </sect2>
<sect2 id="hicolor-theme">
<title>ハイカラーテーマのアイコンをインストールするパッケージ</title>
@@ -1574,7 +1684,7 @@
</listitem>
<listitem>
- <para>PLIST を確認し、
+ <para><filename>PLIST</filename> を確認し、
テーマのキャッシュを参照するエントリーを削除します。</para>
</listitem>
@@ -1616,7 +1726,35 @@
PLIST がこれらを守っていることを確認する最良の方法は、<command>make
print-PLIST</command> を使って作り直すことです。</para>
</sect2>
+</sect1>
+<sect1 id="punting">
+ <title>パッケージに問題があるという印をつける</title>
+
+ <para>場合によっては、パッケージの問題をすぐに解決できないことがあります。
+ 現在のところ、
+ パッケージに問題があることを表す方法が二通りあります。</para>
+ <itemizedlist>
+ <listitem><para>一つ目の方法は、単に、壊れているという印をつけるというものです。
+ これをおこなうには、<varname>BROKEN</varname> 変数を、
+ (<varname>RESTRICTED</varname> 変数と同様に)
+ パッケージが壊れている理由に設定するだけです。
+ 利用者がパッケージを構築しようとすると、
+ パッケージはその場でこのメッセージを表示して、
+ 構築をしないようになります。</para></listitem>
+
+ <listitem><para>pkgsrc の凍結ごとに、凍結期間後 (ツリーが安定となり、
+ 新しい pkgsrc の枝が切られた時) に、
+ 最新の NetBSD リリース上の公式の枝において構築されていないパッケージは、
+ その枝において壊れているという印がつけられます。
+ これは、<varname>BROKEN_IN</varname> 変数に枝名を設定 (あるいは追加)
+ することでおこなわれます。
+ この印のついたパッケージを利用者が構築しようとして構築に失敗すると、
+ それぞれの枝においてこのパッケージは壊れているというメッセージが、
+ 利用者に対して表示されます。</para></listitem>
+ </itemizedlist>
+ <para>どちらに該当するパッケージも、
+ 不定期的に pkgsrc から削除されます。</para>
</sect1>
</chapter>
--- fixes.xml.orig 2006-12-17 23:35:12.000000000 +0900
+++ fixes.xml 2006-12-16 20:24:27.000000000 +0900
@@ -1,4 +1,4 @@
-<!-- $NetBSD: fixes.xml,v 1.70 2006/09/03 10:54:55 jmmv Exp $ -->
+<!-- $NetBSD: fixes.xml,v 1.72 2006/09/10 19:36:31 wiz Exp $ -->
<chapter id="fixes"> <?dbhtml filename="fixes.html"?>
<title>Making your package work</title>
@@ -221,7 +221,8 @@
<para>Distfiles may not be placed on FTP. Set this variable
to <varname>${RESTRICTED}</varname> if re-distribution of
the source code or other distfile(s) via the Internet is not
- allowed.</para>
+ allowed. If this variable is not set, the distfile(s) will
+ be mirrored on ftp.NetBSD.org.</para>
</listitem>
</itemizedlist>
@@ -507,7 +508,7 @@
<quote>nb1</quote>, <quote>nb2</quote>, ... suffix can be used
on package versions by setting <varname>PKGREVISION=1</varname>
(2, ...). The <quote>nb</quote> is treated like a
- <quote>.</quote> by the pkg tools. e.g.</para>
+ <quote>.</quote> by the package tools. e.g.</para>
<programlisting>
DISTNAME= foo-17.42
@@ -515,7 +516,10 @@
</programlisting>
<para>will result in a <varname>PKGNAME</varname> of
- <quote>foo-17.42nb9</quote>.</para>
+ <quote>foo-17.42nb9</quote>. If you want to use the original
+ value of <varname>PKGNAME</varname> without the <quote>nbX</quote>
+ suffix, e.g. for setting <varname>DIST_SUBDIR</varname>, use
+ <varname>PKGNAME_NOREV</varname>.</para>
<para>When a new release of the package is released, the
<varname>PKGREVISION</varname> should be removed, e.g. on a new
@@ -525,31 +529,32 @@
DISTNAME= foo-17.43
</programlisting>
- <para>PKGREVISION should be incremented for any
+ <para><varname>PKGREVISION</varname> should be incremented for any
non-trivial change in the resulting binary package. Without a
- PKGREVISION bump, someone with the previous
+ <varname>PKGREVISION</varname> bump, someone with the previous
version installed has no way of knowing that their package is out
of date. Thus, changes without increasing
- PKGREVISION are essentially labeled "this is so
+ <varname>PKGREVISION</varname> are essentially labeled "this is so
trivial that no reasonable person would want to upgrade", and this
is the rough test for when increasing
- PKGREVISION is appropriate. Examples of
+ <varname>PKGREVISION</varname> is appropriate. Examples of
changes that do not merit increasing
- PKGREVISION are:</para>
+ <varname>PKGREVISION</varname> are:</para>
<programlisting>
- Changing HOMEPAGE, MAINTAINER, or comments in Makefile.
+ Changing <varname>HOMEPAGE</varname>, <varname>MAINTAINER</varname>,
+ or comments in Makefile.
Changing build variables if the resulting binary package is the same.
- Changing DESCR.
- Adding PKG_OPTIONS if the default options don't change.
+ Changing <filename>DESCR</filename>.
+ Adding <varname>PKG_OPTIONS</varname> if the default options don't change.
</programlisting>
- <para>Examples of changes that do merit an increase to PKGREVISION
- include:</para>
+ <para>Examples of changes that do merit an increase to
+ <varname>PKGREVISION</varname> include:</para>
<programlisting>
Security fixes
Changes or additions to a patch file
- Changes to the PLIST
+ Changes to the <filename>PLIST</filename>
</programlisting>
<para>PKGREVISION must also be incremented when dependencies have ABI
@@ -667,7 +672,10 @@
no trojan horse or so crept in.
Then, the correct way to work around this is to
set <varname>DIST_SUBDIR</varname> to a unique directory name,
- usually based on <varname>PKGNAME_NOREV</varname>. In case this
+ usually based on <varname>PKGNAME_NOREV</varname>. All
+ <varname>DISTFILES</varname> and
+ <varname>PATCHFILES</varname> for this package will be put in that
+ subdirectory of the local distfiles directory. In case this
happens more often, <varname>PKGNAME</varname> can be used (thus
including the <filename>nbX</filename> suffix) or a date stamp
can be appended, like <varname>${PKGNAME_NOREV}-YYYYMMDD</varname>.
@@ -699,7 +707,7 @@
both static and dynamic libraries from a set of source files,
thus being platform-independent.</para>
- <para>Here's how to use libtool in a pkg in seven simple
+ <para>Here's how to use libtool in a package in seven simple
steps:</para>
<orderedlist>
@@ -942,6 +950,85 @@
</sect2>
</sect1>
+<sect1 id="programming-languages">
+ <title>Programming languages</title>
+
+ <sect2 id="basic-programming-languages">
+ <title>C, C++, and Fortran</title>
+
+ <para>Compilers for the C, C++, and Fortran languages comes with
+ the NetBSD base system. By default, pkgsrc assumes that a package
+ is written in C and will hide all other compilers (via the wrapper
+ framework, see <xref linkend="buildlink" />).</para>
+
+ <para>To declare which language's compiler a package needs, set
+ the <varname>USE_LANGUAGES</varname> variable. Allowed values
+ currently are <quote>c</quote>, <quote>c++</quote>, and
+ <quote>fortran</quote> (and any combination). The default is
+ <quote>c</quote>. Packages using GNU configure scripts, even if
+ written in C++, usually need a C compiler for the configure
+ phase.</para>
+ </sect2>
+
+ <sect2 id="java-programming-language">
+ <title>Java</title>
+
+ <para>If a program is written in Java, use the Java framework in
+ pkgsrc. The package must include
+ <filename>../../mk/java-vm.mk</filename>. This Makefile fragment
+ provides the following variables:</para>
+
+ <itemizedlist>
+ <listitem><para><varname>USE_JAVA</varname> defines if a build
+ dependency on the JDK is added. If
+ <varname>USE_JAVA</varname> is set to <quote>run</quote>, then
+ there is only a runtime dependency on the JDK. The default is
+ <quote>yes</quote>, which also adds a build dependency on the
+ JDK.</para></listitem>
+
+ <listitem><para>Set <varname>USE_JAVA2</varname> to declare that
+ a package needs a Java2 implementation. The supported values
+ are <quote>yes</quote>, <quote>1.4</quote>, and
+ <quote>1.5</quote>. <quote>yes</quote> accepts any Java2
+ implementation, <quote>1.4</quote> insists on versions 1.4 or
+ above, and <quote>1.5</quote> only accepts versions 1.5 or
+ above. This variable is not set by default.</para></listitem>
+ <!-- XXX: describe PKG_JVM_DEFAULT and PKG_JVMS_ACCEPTED, but
+ not here -->
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="perl-scripts">
+ <title>Packages containing perl scripts</title>
+
+ <para>If your package contains interpreted perl scripts, add
+ <quote>perl</quote> to the <varname>USE_TOOLS</varname> variable
+ and set <varname>REPLACE_PERL</varname> to ensure that the proper
+ interpreter path is set. <varname>REPLACE_PERL</varname> should
+ contain a list of scripts, relative to <varname>WRKSRC</varname>,
+ that you want adjusted. Every occurrence of
+ <filename>*/bin/perl</filename> will be replaced with the full
+ path to the perl executable.</para>
+
+ <para>If a particular version of perl is needed, set the
+ <varname>PERL5_REQD</varname> variable to the version number. The
+ default is <quote>5.0</quote>.</para>
+
+ <para>See <xref linkend="perl-modules" /> for information
+ about handling perl modules.</para>
+ </sect2>
+
+ <sect2 id="other-programming-languages">
+ <title>Other programming languages</title>
+
+ <para>Currently, there is no special handling for other languages
+ in pkgsrc. If a compiler package provides a
+ <filename>buildlink3.mk</filename> file, include that, otherwise
+ just add a (build) dependency on the appropriate compiler
+ package.</para>
+ </sect2>
+</sect1>
+
<sect1 id="fixes.build">
<title>Fixing problems in the <emphasis>build</emphasis> phase</title>
@@ -1071,6 +1158,20 @@
bmake</command>.</para>
</sect2>
+
+ <sect2 id="out-of-memory">
+ <title>Running out of memory</title>
+
+ <para>Sometimes packages fail to build because the compiler runs
+ into an operating system specific soft limit. With the
+ <varname>UNLIMIT_RESOURCES</varname> variable pkgsrc can be told
+ to unlimit the resources. Currently, the allowed values are
+ <quote>datasize</quote> and <quote>stacksize</quote> (or both).
+ Setting this variable is similar to running the shell builtin
+ <command>ulimit</command> command to raise the maximum data
+ segment size or maximum stack size of a process, respectively, to
+ their hard limits.</para>
+ </sect2>
</sect1>
<sect1 id="fixes.install">
@@ -1151,19 +1252,7 @@
access permissions but rely on <varname>INSTALL_GAME</varname> and
<varname>INSTALL_GAME_DATA</varname> to set these
correctly.</para>
- </sect2>
-
-
- <sect2 id="perl-scripts">
- <title>Packages containing perl scripts</title>
-
- <para>
- If your package contains interpreted perl scripts, set
- <varname>REPLACE_PERL</varname> to ensure that the proper
- interpreter path is set. <varname>REPLACE_PERL</varname> should
- contain a list of scripts, relative to
- <varname>WRKSRC</varname>, that you want adjusted.</para>
- </sect2>
+ </sect2>
<sect2 id="hardcoded-paths">
@@ -1454,7 +1543,7 @@
</listitem>
- <listitem><para>Check the PLIST and remove
+ <listitem><para>Check the <filename>PLIST</filename> and remove
any entries under the <filename>libdata/gtk-2.0</filename>
directory, as they will be handled automatically.</para>
</listitem>
@@ -1613,6 +1702,25 @@
</orderedlist>
</sect2>
+ <sect2 id="emulation-packages">
+ <title>Packages supporting running binaries in
+ emulation</title>
+
+ <para>There are some packages that provide libraries and
+ executables for running binaries from a one operating system
+ on a different one (if the latter supports it). One example
+ is running Linux binaries on NetBSD.</para>
+
+ <para>The <filename role="pkg">pkgtools/rpm2pkg</filename>
+ helps in extracting and packaging Linux rpm packages.</para>
+
+ <para>The <varname>CHECK_SHLIBS</varname> can be set to no to
+ avoid the <command>check-shlibs</command> target, which tests
+ if all libraries for each installed executable can be found by
+ the dynamic linker. Since the standard dynamic linker is run,
+ this fails for emulation packages, because the libraries used
+ by the emulation are not in the standard directories.</para>
+ </sect2>
<sect2 id="hicolor-theme">
<title>Packages installing hicolor theme icons</title>
@@ -1631,7 +1739,7 @@
</listitem>
<listitem>
- <para>Check the PLIST and remove the
+ <para>Check the <filename>PLIST</filename> and remove the
entry that refers to the theme cache.</para>
</listitem>
@@ -1673,7 +1781,34 @@
respect to the last point is to regenerate it using <command>make
print-PLIST</command>.</para>
</sect2>
+</sect1>
+<sect1 id="punting">
+ <title>Marking packages as having problems</title>
+
+ <para>In some cases one does not have the time to solve a problem
+ immediately. There are currently two ways to declare that one knows
+ that a package has problems.</para>
+ <itemizedlist>
+ <listitem><para>The first way is to plainly mark it as broken. For
+ this, one just sets the variable <varname>BROKEN</varname> to the
+ reason why the package is broken (similar to the
+ <varname>RESTRICTED</varname> variable). A user trying to build
+ the package will immediately be shown this message, and the build
+ will not be even tried.</para></listitem>
+
+ <listitem><para>After each pkgsrc freeze period (a time when the
+ tree is stabilized and a new pkgsrc branch is cut), the packages
+ that were not building in the official branch build on the latest
+ NetBSD release will be marked as broken on that branch. This is
+ done by setting the <varname>BROKEN_IN</varname> variable to the
+ branch name (or appending the branch name to it). If a user tries
+ to build such a package and the build fails, the user gets a
+ message that says that the package was broken on the respective
+ branch(es).</para></listitem>
+ </itemizedlist>
+ <para>Both types of packages are removed from pkgsrc in irregular
+ intervals.</para>
</sect1>
</chapter>