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

[debian-devel:05343] how to build multi architecture package



むつみです。

 xfree86-xtt をリリースしましたが、このコントロールファイル
(debian/control) には、

 ・Alpha のみで必要になる TGA サーバ
 ・m68kで(将来的には ix86 でも)利用可能な FBDev サーバ

などのエントリが含まれています。で、このエントリが邪魔をして、
dpkg-buildpackage を利用して build を行うと、最後 dsc ファイルにサイン
にいくあたりでエラーになります(control にエントリがあるのに、実際の
.deb ファイルがないぜ、といわれる)。

 で、結局どうするのが適切なのかわからなかったんで、次のような方法をと
りました。

 1) debian/control をどっかにコピーして、必要なエントリのみを残した
   control ファイルを用意する。例えば、Alpha の場合なら、

   xnest-xtt, xprt-xtt, xvfb-xtt, libfont*, 
   xserver-xtt-{i128,mach64,mono,p9000,s3,s3v,svga,tga}

  のみを残せばいいはず。

 2) /usr/bin/dpkg-builcpackage.orig に以下のパッチをあてる。このパッチ
   を利用すると、-c オプションで、control ファイルを指定できるようになる。

--- dpkg-buildpackage.orig.ORIG	Thu Sep 17 01:55:08 1998
+++ dpkg-buildpackage.orig	Thu Sep 17 01:55:25 1998
@@ -25,6 +25,7 @@
          -si (default) src includes orig for rev. 0 or 1    } genchanges
          -sa           uploaded src always includes orig    }
          -sd           uploaded src is diff and .dsc only   }
+	 -c<file>      control file                         }            
          -nc           do not clean source tree (implies -b)
          -tc           clean source tree when finished
          -h            print this message
@@ -43,6 +44,7 @@
 maint=''
 desc=''
 noclean=false
+ctlfile=''
 
 while [ $# != 0 ]
 do
@@ -64,6 +66,7 @@
 	-v*)	since="$value" ;;
 	-m*)	maint="$value" ;;
 	-C*)	descfile="$value" ;;
+	-c*)    ctlfile="$value" ;;
 	*)	echo >&2 "$progname: unknown option or argument $1"
 		usageversion; exit 2 ;;
 	esac
@@ -108,6 +111,7 @@
 if [ -n "$maint"	]; then set -- "$@" "-m$maint"		; fi
 if [ -n "$since"	]; then set -- "$@" "-v$since"		; fi
 if [ -n "$desc"		]; then set -- "$@" "-C$desc"		; fi
+if [ -n "$ctlfile"	]; then set -- "$@" "-c$ctlfile"	; fi
 
 if [ x$noclean != xtrue ]; then
 	withecho $rootcommand debian/rules clean


 3) 先ほど用意した control ファイルを -c オプションの引数として指定し、
   ふつうに build。例えば、ソースを展開したディレクトリに、control ファ
   イルを control.alpha などという名前で用意したのであれば、

   % dpkg-buildpackage -c../control.alpha -rsudo

   などとする。

こんな感じでいけると思います。

#ix86 では、いけました。

-- 
 From Nagoya
  ishikawa@xxxxxxxxxxx, ishikawa@debian.or.jp
 **  石川 睦%無意味な全文引用をする人は嫌い@Japan Linux Users Group ** 
                                               (Nagoya Linux Users Group)
 My Debian-JP NEWS         http://www.linux.or.jp/~ishikawa/linux/Debian-JP
 X-TT 1.0 [Aoi MATSUBARA]  http://www.linux.or.jp/~ishikawa/linux/X-TT