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

Re: FreeBSD port to NetBSD package (Re: jgroff and Wnn4)



大石@分子研です

Kazuki Sakamoto wrote:
>  > FreeBSDでは、
>  > dependの形式もlib、run、buildといろいろあって、
>  > それぞれが網目状になって気がします。
>  > それでもdependの問題だけなら一応scriptで対処はできるはずですが、
> 
> 網目状というのがよくわかりません。
例えば
vflibはt1lib、freetype等複数のパッケージに依存しており、
またvfghostscriptやdvi2ps等複数のパッケージから参照されている。
さらにdvi2psはvflib以外にpkfont等他のパッケージを必要とする。
といったような依存関係が多対多になっているという意味です。
#解り難くて申し訳ありません

> 作るとき必要、実行するとき必要、というようにそれぞれ別々の扱いですよね。
> 
> package-dependsで表示されるのは、LIB_DEPENDSとRUN_DEPENDSだけですね。
> bsd.port.mkを書き換えて、
> LIB_DEPENDS,RUN_DEPENDS,FETCH_DEPENDS,BUILD_DEPENDS,DEPENDS
> 全部表示するようにすれば良いですね。
> 
>  > いくつかのパッケージを入れるとdipendしているパッケージ間でconfrict
>  > するといった問題もあったように思います。
> 
> これの具体例ってどこかにありますでしょうか?
> pkg_installでのチェック方法に問題があるのでしょうか、
> 同じfileに重ねてインストールされてしまうとか?
事実ではありませんが、単なる例えばということで。
#昔あった気がしないこともありませんが

ある英語のパッケージを作るのにドキュメントの変換でlatexが必要。
ある日本語のパッケージを作るのにドキュメントの変換でplatexが必要。
platexとlatexは同時にはインストールできない。
日本語のパッケージを入れた後英語のパッケージを入れると、
platexの上にlatexが上書きされて日本語latexが使えなくなってしまった。
(その他perl等、日英で同じコマンド名を持つパッケージの依存関係で
  見かけることがあります)

> 結局、FreeBSD port -> NetBSD package は全自動ではできないけど、
> 
> ・.include <bsd.port.mk> -> .include "../../mk/bsd.pkg.mk"
>         ports/Mk/bsd.port.mkになってたのね。気づかなかった...
> ・FreeBSD RCS ID -> NetBSD RCS ID, header削り
> ・MAINTAINER変更
> 
> くらいは自動でできますよね。pkg_convert とか作って pkgtoolsに入れちゃおう。
> で、convert後のものを、Packages.txtに従って仕上げると。
>         ・pkglint
>         ・shared libraryを作るものはLIBTOOLを使う
>         ・makeしてみて動作確認
>         ・patch中の__FreeBSD__などに気をつける
>         ・etc,etc
> 
> 簡単なのは簡単だけど、難しいのは難しい... あたりまえか :-P
あとprefix=/usr/local,prefix=/usr/pkg
の違いで直接/usr/localを指定しているものがけっこうあります。
#本当は、どのディレクトリにでも入るようにprefix=${PREFIX}にすべきでしょ
う

-- 
**************************************************************************
 大石 修                            Osamu Oishi
 岡崎国立共同研究機構分子科学研究所  Molecular Assemblies Dynamics
 分子集団動力学部門                  E-mail oishi@ims1.ims.ac.jp
**************************************************************************