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

Re: FreeBSD port to NetBSD package



大石@分子研です

パッチ、スクリプトはバグってるかもしれないので中を確認して使ってくださ
い。



Keiki_Sunagawa@yokogawa.co.jp wrote:

> 実行ファイル以外にもパッケージを構成するファイルはいろいろありますが、それら

> についてはいかがでしょうか。

今は後ろに付けたbsd.pkg.mkのような感じで遊んでいます。



私のところでは通常のパッケージファイルは

/usr/pkgbin/${PKGNAME}/{bin or lib or man ...}

X関係のパッケージファイルは

/usr/pkgbinX11/${PKGNAME}/{bin or lib or man ...}

にインストールされるようにしています。

#bsd.pkg.mk内で$LANGでインストールディレクトリ決めてもいいとは思うが、

#lib関係のpathが増えて/etc以下書き換えが必要になるのでちょっと嫌



そのすべてのファイルを/usr/pkgや/usr/X11R6以下にリンク張ってます。

#一応大丈夫みたいだけどテスト不足です。

#また、どこにリンク張るかは自由です。



> あるいはunion mountを使って

> 

> /usr/pkg_ja --> /usr/pkg

> /usr/pkg_fr --> /usr/pkg

> 

> (/usr/pkg_enは/usr/pkgと同じ)

> 

> としておき、jaパッケージを使いたいときは/usr/pkg-ja/someを各種のパスに入れる

> という方法ではどうでしょう。これなら各言語毎のパッケージを作るときに

> 

> LOCALBASE=${PREFIX}_${LANG}

> 

> としておけば互いに混ざることはありません。

言語変える時にマウントし直さないといけないので
usrレベルでは使いにくいかも。
あとNetBSD/pc98のunion mountは結構手が入ってて
kernel作るときに使うぐらいまで安定してますが、
他のアーキテクチャではどんなもんでしょう?
#昔使ってたころのFreeBSDはいまいちバギーだったもんで

 

> PATH=/usr/pkg_${LANG}/bin:...

> 

> みたいにできればいいと思いますが、これはやりすぎかも。

> 

> > とりあえずはこのようにすればファイル名の同じパッケージを同時に入れること

> > は可能で、パッケージを作るときには依存関係がある場合、

> > オリジナルのディレクトリを参照すればdependの問題も片付くはずです。

> >

> > #しかし実装がどう見てもださいです。

> > #ディレクトリは増えまくるし、何か別の問題が出てきそう。

> > #他に良いパッケージの実装方法があれば議論してもらえるとうれしいです。

> 

> 昔のBeOSで採用していたというRDB形式のFile Systemとか。なくなっちゃったんです

> よね。
結局、どの方法にも長短あるから、
いろいろためしてみるのが一番速かったりもしますが


-----------------shスクリプト----------------
#!/bin/sh
INSTDIR=/usr/pkg
SRCDIR=/usr/pkgbin

#remove the empty directry
find /${SRCDIR} -type d | sort -r | xargs -n 1 rmdir 2> /dev/null

#making the directry and link
cd /${SRCDIR} 
for plist in `ls`
  do cd $plist;
#for directry
     for dlist in `find . -type d | sed 's/^\.\///g'`
       do if [ ! -d /${INSTDIR}/$dlist ]; then
            mkdir -p /${INSTDIR}/$dlist
          fi 
     done
#for link
     for flist in `find . -type f | sed 's/^\.\///g'`
       do if [ ! -f /${INSTDIR}/$flist ]; then
            ln -s /${SRCDIR}/$plist/$flist /${INSTDIR}/$flist
          fi 
     done
done
-----------------ここまで----------------

-----------------patch----------------
--- bsd.pkg.mk.orig	Wed Apr 14 21:39:52 1999
+++ bsd.pkg.mk	Wed Apr 14 21:25:13 1999
@@ -93,11 +93,12 @@
 .endif
 
 .if (${OPSYS} == "NetBSD")
-LOCALBASE?=		${DESTDIR}/usr/pkg
+LOCALBASE?=		${DESTDIR}/usr/pkgbin/${PKGNAME}
 .else
 LOCALBASE?=		${DESTDIR}/usr/local
 .endif
 X11BASE?=		${DESTDIR}/usr/X11R6
+X11LOCALBASE?=		${DESTDIR}/usr/pkgbinX11/${PKGNAME}
 CROSSBASE?=		${LOCALBASE}/cross
 
 PKGSRCDIR=		${.CURDIR:C|/[^/]*/[^/]*$||}
@@ -151,7 +152,7 @@
 PREFIX=			${LOCALBASE}
 BUILD_DEPENDS+=	
${X11BASE}/lib/X11/config/xpkgwedge.def:${PKGSRCDIR}/pkgtools/xpkgwedge
 .else
-PREFIX=			${X11BASE}
+PREFIX=			${X11LOCALBASE}
 .endif
 .elif defined(USE_CROSSBASE)
 PREFIX=			${CROSSBASE}
-----------------ここまで----------------
-- 

**************************************************************************

 大石 修                            Osamu Oishi

 岡崎国立共同研究機構分子科学研究所  Molecular Assemblies Dynamics

 分子集団動力学部門                  E-mail oishi@ims1.ims.ac.jp

**************************************************************************