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

Re: allegro



まとめて返事します。

Noriyuki Soda wrote:
> > binary配布をするときにの解決法は3種類あります。
> > 1.すべての条件を満たした(拡張機能を一切使わない)binaryを用意する
> > 2.すべての環境(あるいは典型的な環境)のpackageをそれぞれ用意する
> 
> pkgsrc の基本ポリシーは、1. でも 2. でもなく、
> 4. すべての機能を組み込んだ (全ての拡張@能をサポートする) binary を
>   一つ用意する。
4が成り立つのは、拡張機能を組み込んだlibraryが
拡張機能を持たないシステムで動かしたときに無視される場合です。
libraryが呼ばれた時に環境を識別するようにプログラムされていれば可能ですが
速度重視のlibraryでは普通は識別しないので誤動作します。
#すべての機能を組み込んで問題無いなら、当然組み込みます。

> oss の件は、(できるかどうかは棚上げしにした) 理想論としては、下記の
> 2 つの方法が考えられると思います。
> a. oss ありにする。pc98 のようなケースは、実行時に hw.machine を判別
>   して、oss を呼び出さないようにする
> b. oss ありなしで、pkgsrc を分ける
現在はハードウェアや技術以前にライセンスの問題があるので
bの方法を取っています。

> だとすると、ライセンス上 binary 配布を行なえない oss をデフォールト
> で有効にする必要はネく、
> c. デフォールトは oss なし。pkgsrc から make する人は、mk.conf の設定
>   で oss も使えるようにする
> というので、良いのではないでしょうか?
今は別packageですが、この理由ででoss無しをdefaultにするのでもかまいません。

> mmx についてですが、mmx を使うように configure したバイナリって、mmx
> なしの状況だと動作しないんでしょうか?
> 
> もし、動作するなら、デフォールトで使うようにしてしまって問題ないです
> よね?
記憶が曖昧になって来てますが
mmx関係はi386固有のアセンブラで記述されていて、
非mmxマシンでこれ叩くと誤動作します。
#bsd.pkg.mkなりmk.confで定義してくれるならpackageでは無しでも構いません。

> > #Xのversionとlibrryの有無は機能的には同義です。
> 
> XFree86 のバージョンを調べているという意味では同じですね。
> ただ、pkgsrc として見た場合には、build 環境と実行環境を、はっきり
> 区別するというのは非常に重要です。
pkgsrc作っている方からすれば機能さえ提供されればいいんですが、
ONLY_FOR_PLATFORMなんかでNetBSD自体もversionとportが指定できるので、
XFree86も同程度の事はできて欲しい気がします。
#packageの依存関係はportやversionを区別して行っているので
#これらに合わせた方が自然に見えるんです。

> build を行なうマシンでは、そもそも X server 自体がインストールされてい
> ない ($DISPLAY を他のマシンに設定している)、ただし X client を build
> するために、X のライブラリは一式インストールされているというような状況
> もありうるわけです。
これは同意します。
X -versionを使っているのは現在はこれしか手が無いからで、
mk.confあたりで指定してくれるのなら、それを使います。

> ベストなのは、当然 XFree86-3 と XFree86-4 に関して、別々の package
> binary に分けるということですェ、現状はそうなっていませんし、マンパワー
> の関係で、今後も分けることにはなりそうにないです。
packageを分けるのは構いませんが、無駄に増やしているみたいな気もします。
#別解でXFree86は3系列のサポートは打ち切られる(た?)ので
#4以上でしか使えないようにするというのもあります。

> というわけで、可能なら、
> b. XFree86-3.x と XFree86-4.x に分ける
> それが無理なら、
> c. 今回利用する X の extension が存在するかどうかを、
>   imake のテンプレート (lib/X11/config) なり ライブラリのヘッダファイル
>   なりを grep するとか、ライブラリファイル (libなんとか.a) を nm して
>   みるとかして判別する
> というのはどうでしょう?
mk.confあたりでUSE_MMX、USE_OSS、XFEE86_VERSIONあたり定義してくれるなら
packageは今のところXの違いの2個だけになるので、分けてしまいます。


Takeshi Nakayama wrote:
> > XFree86はversion4から3D機能をサポートしていて、
> > allegroはその機能が使えれば、その機能を使ったlibraryを作るため、
> > XFree86-3*とXFree86-4*でPLISTが異なります。
> 
> これって、pkgsrc にも入っている Mesa のことでしょうか。そうであれば、
> graphics/{MesaLib,glu}/Makefile に XFree86 4.x 付属のライブラリがあ
> るかどうかのチェックをしているコードがあります。
正確に書くと
XFree86-4でmakeした時には、
XFree86-DGA extension(video frame buffer)の機能をサポートする
library(liballeg-dga2)ができます。
#多分、機能拡張されています。
#3D機能と思い込んでいましたが、もしかして3Dと関係なかったらごめんなさい。

大石修@分子研