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

Re: PocketBSD packages



 > >#用語
 > >#  サブセット
 > >#      パッケージの一部または全部 mini=core ext のような別名も含む
 > >#  アトミックサブセット
 > >#      別名ではないサブセット @beginsubset〜@endsubset で定義される

 > 	包含関係を持ち出すのはめんどくさいので、カテゴリ命名規則をひとつだけ
 > 	決めて(core, ext, dev, sample, man, doc)それだけにするのがよいと
 > 	思います。それ以上の複雑なことをしようと思うと、

運用ルールとしてそう決めて、これ以外のサブセットも作ろうと
思えば作れる。そういうサブセットはよくわかっている人だけが
指定するという程度のつもりです。

 > 	各pkgsrcで定義がまちまちになってわけわからなくなるでしょう。
 > 		例: pkgsrc Aではhoge = (core + ext)だがpkgsrc Bでは
 > 		hoge = (core + dev+ sample)
 > 	defaultの動作をどっかで定義さえできればそれでよいと思います。後の
 > 	shortcutは適宜cshでaliasでもすればよいのでは。

別名のサブセットはユーザの便利のためというよりは、
pkgsrc 書換え時の互換性とか、package をメインテナンスする
人のためにと考えていました。
最初のメールに書いた mini=core ext の例は良くなかったです。

たとえば PLIST のある部分が core と dev の両方で必要な場合、
以下のように逃げられるとか。

@subset core = _a _b
@subset dev = _b _c
@beginsubset _a
core_file
@endsubset
@beginsubset _b
share_file
@endsubset
@beginsubset _c
dev_file
@endsubset

私は実際に PLIST をたくさん読んだわけではないのですが、
結構それぞれにいろいろな例外があるみたいなので、多少の
柔軟性は残しておいた方がよいと思っています。
(さすがに過度の汎用性は切り捨てて、今朝のメールとなりました)

あと、core が非常に大きなもの(mh とか)は将来的にもう少し
細かく分割して、core=coreA coreB coreC とかしておき、
(PLIST の中をよく読んだ人は)pkg_add hoge-1.0.tar.gz coreB
などとできるとよいかなとちょっと思っています。

もし (core, ext, dev, sample, man, doc) だけに固定するならば、
以下のような記述の方が良いでしょうか。

@if core
core_file
@endif
@if core || dev
share_file
@endif
@if dev
dev_file
@endif

#実際問題として、私の英語力ではもっとも単純な itojun さんの案でも
#ちゃんと説明できるかという問題はありますが。

ちょっと別の話題1:
pkg_add のコマンドラインは複数の
パッケージを指定できるので、pkg_add hoge-1.0.tar.gz core とは
書けないようです。(core パッケージを探しにいってしまう)
なので、「pkg_add hoge-1.0.tar.gz +dev」(デフォルトに加えて dev も)
「pkg_add hoge-1.0.tar.gz -man」(man以外のデフォルト)とか?

ちょっと別の話題2:
man だけインストールした場合などはそのパッケージは実際には機能
しないわけで、そのパッケージに依存しているパッケージはインストールに
成功してもやっぱり機能しないわけですが、そういうのは全てユーザの
自己責任ということで、なにもケアしないと考えています。

Takemura