[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