トップ «前の日記(2005年04月04日) 最新 次の日記(2005年04月06日)» 編集
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2005年04月05日

SH-Linux

ビルドdependの迷宮に疲れたので機械にやらせることにする。てか、こんぴうた君なんだから自分でなんとかできんの〜?とりあえずツールを探す。

pbuilderchroot環境内でビルドしてくれるらしい。
http://www.j96.org/~kouji/diary/?date=200409
http://silver.lacmhacarh.gr.jp/diary/diary.200405.html

debaux-publish
buildしてapt-line用のファイルまで作ってくれるらしい。

でも、当たり前かもしれないけど debootstrap ん所までは自力で到達しなきゃいかんのねん(*_*)

SH-Linux

気を取り直してまずはdebootstrapから片付ける。debootstrapの.debをビルドしてインストールするところまでは
根性でなんとする。
とりあえず出来た。
# mkdir build-chroot
# debootstrap sid build-chroot/ http://debian.dodes.org/debian
E: Couldn't download aptitude
ファイルが無いとか言っているので、Packages.gzと/usr/lib/debootstrap/scripts/sid を見比べて存在しないパッケージは全部 --exclude= に指定して逃げる。adhocだが仕方ない。
# debootstrap --exclude=aptitude,debconf-i18n,e2fslibs,exim4,exim4-base,\
exim4-config, exim4-daemon-light,gcc-3.3-base,initscripts,libblkid1,\
libdb4.2,libgcrypt11,libgdbm3, libgnutls11,libgpg-error0,libnewt0.51,\
libopencdk8,ibperl5.8,libsigc++-1.2-5c102,libssl0.9.7,libstdc++5,\
libtasn1-2,libtext-charwidth-perl,libtextwrap1,libtext-wrapi18n-perl,\
sysv-rc,libcomerr2,libconsole,libperl5.8,libss2,libuuid1 \
sid build-chroot/ http://debian.dodes.org/debian
となってしまった(*_*)

pbuilder

debootstrapはやはり強敵だったので dodes の base.tgz からスタートすることにする(負けだ)。
 # pbuilder --save-after-login login
pbuilderはloginするときにbase.tgzを展開してchrootにログインするがexitすると結果を消してしまう(base.tgzに戻さない)。--save-after-loginとすれば(base.tgzにかき戻すので) logout 後にファイルが消えない。
Preparing to replace shellutils 2.0.11-11 (using .../shellutils_2.0.15-2_sh4.deb) ...
Unpacking replacement shellutils ...
dpkg: error processing /var/cache/apt/archives/shellutils_2.0.15-2_sh4.deb (--unpack):
 trying to overwrite `/bin/date', which is also in package coreutils
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/shellutils_2.0.15-2_sh4.deb
む。とりあえず無理矢理
 # dpkg --force-overwrite -i shellutils_2.0.15-2_sh4.deb
して逃げる。んで
 # /usr/share/doc/pbuilder/examples/pbuildd/buildd.sh
 :
 :略
dpkg: unexpected output from `gcc --print-libgcc-file-name':
 `/usr/lib/gcc/sh4-unknown-linux-gnu/3.4.3/libgcc.a'
dpkg: compiler libgcc filename not understood: no gcc-lib component
/usr/share/doc/pbuilder/examples/pbuildd/buildd.sh: line 2: bogosort: command not found
awk: line 2: regular expression compile failed (missing operand)
\nArchitecture: [^\n]*(all|any|)
む。bogosortが無いってエラーと dpkg --print-architecture がうまく動かないエラー。bogosortはビルドして入れる。後者の方は gcc-3.0.4に戻したら動いた。むう

SH-Linux

苦労してしまったがpbuilderのビルドデーモンが走り出した。まだ不安定だけど。安定したらほっといてもパッケージ作ってくれるかな。

SH-Linux

pbuilderの/usr/share/doc/pbuilder/examples/pbuildd/buildd.sh 変更点メモ
 mkdir ${BASEDIRECTORY}/WORKING || true
 mkdir ${BASEDIRECTORY}/STATUS || true
 mkdir "$NOBUILDDEP" || true
-BUILDRESULTDIR=${PWD}/RESULT-deb
+BUILDRESULTDIR=/var/www/debian/sh4buildtemp
 mkdir "$BUILDRESULTDIR" || true
 
 STATUSFILE=${BASEDIRECTORY}/STATUS/$(hostname)-$$
@@ -35,7 +35,7 @@
     (
        cd $BUILDTMP
        apt-get source -d $PROGNAME
-       if sudo pbuilder build --hookdir "${HOOKDIR}" --buildresult . --logfile "$LOGFILE" *.dsc; then
+       if pbuilder build --hookdir "${HOOKDIR}" --buildresult "$BUILDRESULTDIR" --logfile "$LOGFILE" *.dsc;
then
            mv "$LOGFILE" "$SUCCESS"
            echo Build successful
        else
@@ -73,10 +73,10 @@
 
     # this part needs to be atomic
     status "considering $A"
-    if grep "^$A$" $AVOIDLIST; then
-       echo Skip.
-       continue
-    fi
+#    if grep "^$A$" $AVOIDLIST; then
+#      echo Skip.
+#      continue
+#    fi
     if echo "$A" | grep "^kernel-image"; then
        echo I hate kernel images.
        continue
@@ -88,7 +88,9 @@
     fi
     # end of atomic.
 
-    waitingroutine
+#    waitingroutine
+
+    echo "buildone $A"
     buildone $A
 done
waitingroutineは/etc/pbuilder/buildd-config.shをみるとわかるんだけど xlock が走るまで待つ(つまりアイドル期間中しか動作しないように)するための仕掛けらしい。全然動いてくれないのでソースを追ってやっとわかった。$AVOIDLISTはマニュアルによると./avoidlist ファイルを用意せよと書いてあるのだが読み込む部分が発見できず空文のままになってしまってgrepで止まってしまうバグ?があるようなのでとりあえずコメントアウト。
To set up pbuildd, there are some points to be aware of. 
 
> A file ./avoidlist needs to be available with the list of 
  packages to avoid building. 
> It will try building anything, even packages which are not
  aimed for your architecture.
> Because you are running random build scripts, it is better
  to use the fakeroot option of pbuilder, to avoid running the
  build under root privilege.
> Because not all builds are guaranteed to finish in a finite
  time, setting a timeout is probably necessary, or pbuildd 
  may stall with a bad build.
> Some packages require a lot of disk space, around 2GB seems 
  to be sufficient for the largest packages for the time being. 
  If you find otherwise, please inform the maintainer of this
  documentation. 
2005/04/05,20:25からpbuildd.shが走り出したのでとりあえずゴハン。

SH-Linux

2時間後にみてみたら
DEPWAIT  32個
  akregator     inkscape                libxml-handler-yawriter-perl tcm
  boot-floppies leafpad                 mecab                        the
  cddb.bundle   libapache-mod-relocate  mona                         ttcn3parser
  e16keyedit    libcalendar-simple-perl opensched                    varkon
  fortunes-es   libflash                python-unit                  webmin
  gpgme         libgtk2-gladexml-perl   scalemail                    xfce4-trigger-launcher
  gs-gpl        libshadow-ruby          spampd                       xmms-alarm
  ifrench       libtagcoll              sysfsutils                   xtell
FAILED    3個
  gemdropx  libfile-slurp-perl  pslib
SUCCESS  27個
  appconfig          irssi-scripts                                meta-ocaml
  boxshade           kernel-patch-2.4-supermount-ng               perl-byacc
  canlock            libacme-poe-knee-perl                        randtype
  cgi-extratags-perl libbusiness-onlinepayment-bankofamerica-perl sysadmin-guide
  chbg               libexif                                      tkdiff
  cwebx              libtext-glob-perl                            translucency
  dns-browse         lingoteach-lesson                            wmpinboard
  fpdns              linuxfacile                                  wmspaceweather
  fvwm-icons         lookup                                       wmsysmon
となっていた。まだあまり使えるものは出てこないな。