[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Packages.txt



こんばんは。

http://www.jp.netbsd.org/ja/JP/Documentation/Packages/Packages.txt
の 9、10 の翻訳です。

send-pr は http://www.jp.netbsd.org/ja/Misc/send-pr.html にならって
障害レポートと訳しています。これは、translation-terms.txt に追加した
ほうがよいのではないかと思います。

次は 7、8 をやります。

-- 
Yuji Yamano

 9 FAQ とパッケージシステムの特徴
 ================================

 9.1 GNU autoconfig を利用するパッケージ
 =======================================

もしパッケージが GNU autoconf を使うのであれば、パッケージの Makefile
に以下の設定を追加してください。

> GNU_CONFIGURE= yes

この設定が CONFIGURE_ARGS に --prefix=${PREFIX} を追加することに注意
してください。したがって、あなた自身でこれを追加する必要はありません。
そして、これはあなたの望む設定とは異なるかもしれません。


 9.2 tar.gz 以外の配布方法
 =========================

パッケージが tar.gz 以外の方法で配布されている場合、plan9/sam パッ
ケージを参考にしてください。これは gzip されたシェルアーカイブ 
(shar)を使っています。いちおう簡単に説明すると、DISTNAME フィールド
の後で EXTRACT_SUFX に名前を設定し、パッケージの Makefile に以下の
設定を追加してください。

> EXTRACT_SUFX=   .msg.gz
> EXTRACT_CMD=            zcat
> EXTRACT_BEFORE_ARGS=
> EXTRACT_AFTER_ARGS=     |sh


 9.3 それ自身のサブディレクトリーを作り出さないパッケージ
 ========================================================

パッケージがサブディレクトリーを作らずに(例えば、GNU ソフトウェアのよ
うに)、カレントディレクトリーに展開される場合、もう一度 plan9/sam を
見てください。簡単にいうと以下の設定が必要です。

> NO_WRKSUBDIR=   yes


 9.4 カスタムコンフィギュレーションプロセス 
 ================================ 

パッケージが、かわった Configure スクリプトを使用している場合、top 
のパッケージを参照してください。簡単にいえば、以下の設定をおこなって
ください。

> HAS_CONFIGURE=          yes
> CONFIGURE_SCRIPT=       Configure
> CONFIGURE_ARGS+=        netbsd13


 9.5 DISTNAME ディレクトリーで作成されないパッケージ
 ===================================================

パッケージが、DISTNAME をベースにしないディレクトリーで構築される場合、
tcl、および tk パッケージを参考にしてください。

> WRKSRC=         ${WRKDIR}/${DISTNAME}/unix

 9.6 一度にすべての distfiles を取得する方法
 ===========================================

「make fecth」を実行できない職場や大学において、一回のバッチ処理で、
すべての distfiles をダウンロードしたいと思うことがあるかもしれません。
しかしながら、ftp.netbsd.org には distfiles のアーカイブはありません。
そして ftp.freebsd.org 上にあるアーカイブは、移植されていない多くの 
distfiles を含んでいます。

現時点では、「make fetch-list」を /usr/pkgsrc で実行し、その結果の
リストを使用してくださいとしかいえません、


 9.7 ファイアウォールの内側からファイルを取得する方法
 ====================================================

もし、あなたがファイヤーウォールの内側にいる場合、ファイヤーウォールの
内側にないインターネット上の他のマシンとの通信をおこなうために、適切な
プロキシーホストを指定する必要があります。これは URL 形式の環境変数で
指定します。例えば、Amdahl ドメインにおいては、orpheus.amdahl.com と
いうマシンはファイヤーウォールのひとつで、プロキシーポート番号として、
80 番のポートを使用します。この場合、proxy 環境変数は以下のようになり
ます。

	ftp_proxy=ftp://orpheus.amdahl.com:80/
	http_proxy=http://orpheus.amdahl.com:80/


 9.8 パッチが RCS IDを含む場合
 ============================

 パッチから RCS ID を削除する方法については、セクション 4.3 を参照して
 ください。


 9.9 /etc/mk.conf から変数を捕まえる方法 
 ============================================== 

MAKECONF や /etc/mk.conf で上書き可能な、パッケージで定義された変数に
は問題があります。それは、変数は make(1) がそれを使う時に展開されるが、
プリプロセッサー風の文(.if、.ifdef そして .ifndef)は読み込み時に評価
される事です。したがって、.if* 文内で変数(/etc/mk.confでセットされる
可能性のある)を使う時は、その .if* ステートメントの前に /etc/mk.conf
をインクルードしておかなくていけません。

/etc/mk.conf や MAKECONF が存在したら、それらをインクルードするという
ad-hoc な方法をとらずに、すべてのプリプロセッサ風の .if、.ifdef、また
は .ifndef 文の前で、pkgsrc/mk/bsd.prefs.mk をインクルードしてください。

	.include "../../mk/bsd.prefs.mk"

	.if defined(USE_MENUS)
	...
	.endif


 9.10 pkg について話しあうためのメーリングリストはありますか?
 ============================================================

はい。パッケージに関する問題を議論するために tech-pkg@netbsd.org が
存在します。購読するためには以下のようにして下さい。

    echo subscribe tech-pkg | mail majordomo@netbsd.org


 9.11 どうすれば 「make fetch」で passive FTP を使用することができますか?
 ========================================================================

/etc/make.conf に以下の設定を追加してください。PASSIVE_FETCH=1


 9.12 他のパッケージへの依存
 ===========================

パッケージは他のパッケージに依存するかもしれません。そして、この依存性
を定義するためのいろいろな方法があります。NetBSD は BUILD_DEPENDS、
RUN_DEPENDS、DEPENDS 定義をサポートしています(注意: DEPENDS 定義は 
FreeBSD のものと同じではありません。NetBSD は FreeBSD の LIB_DEPENDS
定義をもはや使用していません。ELF 化された NetBSD のプラットフォーム上
で問題が発生することがわかりました。)。

[以下の例において、BUILD_DEPENDS および RUN_DEPENDS には、決められた
フォーマットがあります。:<ファイル> :<作成するパッケージのディレクトリー>
[:<段階>]。もし、<段階>が指定されていなければ、「install」がデフォルト
となります。ファイルが 「/」を含む場合、それは通常ファイルとして解釈
されます。そうでない場合は、実行可能ファイルとしてあつかわれ、<ファイル>
をさがすために PATH が調べられます。もし、通常ファイルが見つからない、
あるいは実行可能ファイルがパス内に存在しなければ、必要なパッケージが 
<作成するパッケージのディレクトリー> 内のソースから作成されます。DEPENDS
定義はパッケージ名(バージョン番号を含む)と、そのバージョンのパッケージ
がインストールされていない場合のために、作成するパッケージのディレクトリー
を指定します。]

(a) パッケージを作成するために他のパッケージのファイルを必要とするなら、
print/ghostscript5 パッケージを参考にしてください。(作成中に jpeg の
ソースが存在することを前提としています)

BUILD_DEPENDS=  ../../graphics/jpeg/${WRKDIR:T}/jpeg-6a:../../graphics/jpeg:extract

(b) パッケージを構築するために他のパッケージが必要なら、BUILD_DEPENDS 
定義を使ってください。ただし、上の説明とは異なり、「:extract」を指定
してはいけません。print/lyx がよい例です。このパッケージは構築中に 
latex のバイナリーを使用します。

BUILD_DEPENDS=  latex:../../print/teTeX

(c) もし、パッケージがリンクのためのライブラリを必要とするなら、DEPENDS
定義を使ってください。たとえば、print/lyx パッケージは、作成のために 
xpm ライブラリーの バージョン 3.4j を使用します。

DEPENDS + = xpm - 3.4j :../../graphics/xpm 

また、パッケージ依存関係にはワイルドカードを使うことができます。

DEPENDS+=	xpm-*:../../graphics/xpm

ワイルドカードは、バイナリーパッケージを作る時に展開されることに注意
してください。したがって、バイナリーパッケージは、作成時にインストール
されていたライブラリーのバージョンに依存します。

(d) もし、パッケージを実行するために、いくつかの実行可能ファイルが必要
なら、RUN_DEPENDS 定義を使ってください。print/lyx パッケージを実行する
時には、latex と ispell のバイナリが実行可能でなければなりません。これ
は、以下のように指定します。

RUN_DEPENDS=    latex:../../print/teTeX \
                ispell:../../textproc/ispell


 9.13 他のパッケージとの衝突 
 ===========================

パッケージは、すでにインストール済みの別のパッケージと衝突する可能性が
あります。例えば、パッケージが、pkgsrc の中の別のパッケージと同じファイ
ルをインストールするような場合です。

この場合、衝突するパッケージ(バージョン文字列を含む)のリストをスペース
で区切って CONFLICTS にセットすることができます。

例えば、pkgsrc/x11/Xaw3d および pkgsrc/x11/Xaw-Xpm は同じ共有ライブラリ
をインストールします。したがって、pkgsrc/x11/Xaw3d/Makefile に以下のよう
な設定をおこなってください。

CONFLICTS=      Xaw-Xpm-*

そして、pkgsrc/x11/Xaw-Xpm/Makefile には以下の設定が必要です。

CONFLICTS=      Xaw3d-*

パッケージは、名前のプレフィックスが同じで、異なるバージョン文字列をもつ
別のパッケージと自動的に衝突します。例えば「Xaw3d-1.5」は、古いバージョン
の「Xaw3d-1.3」と衝突するでしょう。

 9.14 WWW ホームページがあるソフトウェア 
 ======================================= 

NetBSDパッケージシステムは、HOMEPAGE 変数をサポートしています。もし、
パッケージ化されたソフトウェアのホームページが存在するのであれば、その
ページの URL を Makefile の HOMEPAGE 変数に設定するべきです。この変数は
MAINTAINER 変数のすぐ後に定義してください。


 10 提出
 =======

 *コンパイル済みのバイナリーパッケージ:
  我々は、トロイの木馬等を含まないことを保証するために、NetBSD 開発者
  からしかバイナリーをうけとりません。これは、誰かを糞ったれ扱いするもの
  ではなく、むしろユーザーを保護するための方針です。しかしながら、あなた
  の作ったバイナリーパッケージをどこかに置き、配布することは自由におこな
  ってもかまいません。

 *パッケージ:
  最初にパッケージが完全かどうか、コンパイル、実行できるかどうかを確認
  してください。このドキュメントのセクション 8、その他を参考になるで
  しょう。次に、パッケージに必要なすべてのファイルの gzip された tar 
  ファイルを作成してください。これは、すべてのファイルをひとつのディレ
  クトリーにおきたいためです。次に、その tar ファイルを、パッケージの
  メンテナーが FTP か HTTP (WWW)を使用して取得できる場所においてくださ
  い。最後に、パッケージの名前とバージョンを含む概要、簡単な説明
  (pkg/COMMENT の内容でも OK です)、そして tar ファイルの URL を書き、
 「pkg」カテゴリーで障害レポートをおこなってください。

  障害レポートが処理されたら、あなたに連絡がいきます。そうすれば、tar 
  ファイルを削除してもかまいません。