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

[debian-users:48087] Re: arm版のtripwireについて



小林です。

From: Yukio Hashimoto
Subject: [debian-users:48083] Re: arm版のtripwireについて
Date: Tue, 20 Feb 2007 23:56:27 +0900

> >といっても、実のところ今回のように以前パッケージ化されたバージョンがあ
> >る場合は、dh_make を使ってテンプレートを作成し、一からパッケージ化する
> >必要はありません。古いバージョンのパッケージから debian ディレクトリを
> >もってきてビルドを試し、それでうまくいかなかったらその原因を探って 
> >debian/* を調整、というのが楽でしょう。
> 
> なるほどそういう方法も有るんですね。
> 早速試してみます。

あまりパッケージの中身を見ないで話をしていましたが、ソースパッケージを
ダウンロードして簡単に眺めてみました。で、わかったのですが、このパッケー
ジは、初めてパッケージングを体験する人にはやや荷が重いかもしれません。
tripwire_2.3.1.2.0-9.diff.gz を眺めてみたところ、.diff.gz には (debian 
ディレクトリを追加する変更だけでなく) ソースコードを直接変更する変更が
かなり多く加えられているようです(*)。

nori1[19:48]%  zgrep "^+++" tripwire_2.3.1.2.0-9.diff.gz | grep -v "tripwire-2.3.1.2.0/debian"
+++ tripwire-2.3.1.2.0/aclocal.m4
+++ tripwire-2.3.1.2.0/tw_config.h.in
+++ tripwire-2.3.1.2.0/Makefile.am
+++ tripwire-2.3.1.2.0/src/twcrypto/Makefile.in
+++ tripwire-2.3.1.2.0/src/siggen/Makefile.am
+++ tripwire-2.3.1.2.0/src/siggen/Makefile.in
+++ tripwire-2.3.1.2.0/src/twparser/Makefile.in
+++ tripwire-2.3.1.2.0/src/tripwire/Makefile.am
+++ tripwire-2.3.1.2.0/src/tripwire/pipedmailmessage.cpp
+++ tripwire-2.3.1.2.0/src/tripwire/Makefile.in
+++ tripwire-2.3.1.2.0/src/tripwire/twcmdlineutil.cpp
+++ tripwire-2.3.1.2.0/src/twadmin/Makefile.am
+++ tripwire-2.3.1.2.0/src/twadmin/Makefile.in
+++ tripwire-2.3.1.2.0/src/twprint/Makefile.am
+++ tripwire-2.3.1.2.0/src/twprint/Makefile.in
+++ tripwire-2.3.1.2.0/src/cryptlib/integer.cpp
+++ tripwire-2.3.1.2.0/src/cryptlib/Makefile.am
+++ tripwire-2.3.1.2.0/src/cryptlib/Makefile.in
+++ tripwire-2.3.1.2.0/src/Makefile.in
+++ tripwire-2.3.1.2.0/src/core/Makefile.am
+++ tripwire-2.3.1.2.0/src/core/Makefile.in
+++ tripwire-2.3.1.2.0/src/db/Makefile.am
+++ tripwire-2.3.1.2.0/src/db/Makefile.in
+++ tripwire-2.3.1.2.0/src/tw/Makefile.in
+++ tripwire-2.3.1.2.0/src/tw/fcoreport.h
+++ tripwire-2.3.1.2.0/src/fco/fconame.h
+++ tripwire-2.3.1.2.0/src/fco/Makefile.am
+++ tripwire-2.3.1.2.0/src/fco/fcosetimpl.h
+++ tripwire-2.3.1.2.0/src/fco/Makefile.in
+++ tripwire-2.3.1.2.0/src/util/Makefile.in
+++ tripwire-2.3.1.2.0/src/fs/fsparserutil.cpp
+++ tripwire-2.3.1.2.0/src/fs/Makefile.in
+++ tripwire-2.3.1.2.0/src/fs/fsstrings.h
+++ tripwire-2.3.1.2.0/src/fs/fsstrings.cpp
+++ tripwire-2.3.1.2.0/install-sh
+++ tripwire-2.3.1.2.0/missing
+++ tripwire-2.3.1.2.0/mkinstalldirs
+++ tripwire-2.3.1.2.0/configure
+++ tripwire-2.3.1.2.0/man/man8/twprint.8
+++ tripwire-2.3.1.2.0/man/man8/tripwire.8
+++ tripwire-2.3.1.2.0/man/man8/twadmin.8
+++ tripwire-2.3.1.2.0/man/man8/Makefile.in
+++ tripwire-2.3.1.2.0/man/man8/siggen.8
+++ tripwire-2.3.1.2.0/man/man8/twintro.8
+++ tripwire-2.3.1.2.0/man/man5/twfiles.5
+++ tripwire-2.3.1.2.0/man/man5/Makefile.in
+++ tripwire-2.3.1.2.0/man/Makefile.in
+++ tripwire-2.3.1.2.0/man/man4/twpolicy.4
+++ tripwire-2.3.1.2.0/man/man4/twconfig.4
+++ tripwire-2.3.1.2.0/man/man4/Makefile.in
+++ tripwire-2.3.1.2.0/Makefile.in

(*) 現在ではソースコードを直接変更するのは推奨されておらず、dpatch や 
quilt などのパッチ管理システムを使用して、全ての変更を debian/patches 
などにパッチとして収め、ビルド時にそれを当てることが推奨されています。

ソースコードを直接変更する変更がかなり多く加えられているため、「古いバー
ジョンのパッケージから debian ディレクトリをもってきてビルドを試す」と
いうのだけではうまくいかず、tripwire_2.3.1.2.0-9.diff.gz 全体をパッチ
としてソースコードに当てる必要があります。このときに、既に開発元のソー
スコード(tripwire 2.4.0.1 の .tar.gz) に含まれている変更もあるので、う
まく当たらないことがあります。

とりあえず適当に当ててみます。

nori1[20:09]%  tar jxf tripwire-2.4.0.1-src.tar.bz2    whale:~/tripwire/2.4.0.1
nori1[20:09]%  cd tripwire-2.4.0.1                     whale:~/tripwire/2.4.0.1
nori1[20:09]%  gzip -dc ../tripwire_2.3.1.2.0-9.diff.gz | patch -p1
patching file aclocal.m4
patching file tw_config.h.in
patching file Makefile.am
patching file src/twcrypto/Makefile.in
patching file src/siggen/Makefile.am
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file src/siggen/Makefile.am.rej
patching file src/siggen/Makefile.in
patching file src/twparser/Makefile.in
patching file src/tripwire/Makefile.am
Hunk #1 FAILED at 1.
1 out of 2 hunks FAILED -- saving rejects to file src/tripwire/Makefile.am.rej
patching file src/tripwire/pipedmailmessage.cpp
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file src/tripwire/pipedmailmessage.cpp.rej
patching file src/tripwire/Makefile.in
patching file src/tripwire/twcmdlineutil.cpp
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n] n
Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file src/tripwire/twcmdlineutil.cpp.rej
patching file src/twadmin/Makefile.am
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file src/twadmin/Makefile.am.rej
patching file src/twadmin/Makefile.in
patching file src/twprint/Makefile.am
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file src/twprint/Makefile.am.rej
patching file src/twprint/Makefile.in
patching file src/cryptlib/integer.cpp
patching file src/cryptlib/Makefile.am
Hunk #1 FAILED at 1.
Hunk #2 succeeded at 12 with fuzz 2 (offset 3 lines).
1 out of 2 hunks FAILED -- saving rejects to file src/cryptlib/Makefile.am.rej
patching file src/cryptlib/Makefile.in
patching file src/Makefile.in
patching file src/core/Makefile.am
Hunk #1 FAILED at 1.
1 out of 2 hunks FAILED -- saving rejects to file src/core/Makefile.am.rej
patching file src/core/Makefile.in
patching file src/db/Makefile.am
Hunk #1 FAILED at 1.
1 out of 2 hunks FAILED -- saving rejects to file src/db/Makefile.am.rej
patching file src/db/Makefile.in
patching file src/tw/Makefile.in
patching file src/tw/fcoreport.h
patching file src/fco/fconame.h
patching file src/fco/Makefile.am
Hunk #1 FAILED at 1.
1 out of 2 hunks FAILED -- saving rejects to file src/fco/Makefile.am.rej
patching file src/fco/fcosetimpl.h
patching file src/fco/Makefile.in
patching file src/util/Makefile.in
patching file src/fs/fsparserutil.cpp
patching file src/fs/Makefile.in
patching file src/fs/fsstrings.h
patching file src/fs/fsstrings.cpp
patching file install-sh
patching file debian/overrides
patching file debian/postinst
patching file debian/po/de.po
patching file debian/po/sv.po
patching file debian/po/ja.po
patching file debian/po/templates.pot
patching file debian/po/cs.po
patching file debian/po/pt_BR.po
patching file debian/po/nl.po
patching file debian/po/POTFILES.in
patching file debian/po/pt.po
patching file debian/po/es.po
patching file debian/po/da.po
patching file debian/po/fr.po
patching file debian/copyright
patching file debian/twcfg.txt
patching file debian/changelog
patching file debian/twpol.txt
patching file debian/autogen.sh
patching file debian/templates
patching file debian/config
patching file debian/README.debian
patching file debian/rules
patching file debian/compat
patching file debian/watch
patching file debian/control
patching file debian/postrm
patching file debian/cron.daily
patching file debian/preinst
patching file missing
patching file mkinstalldirs
patching file configure
patching file man/man8/twprint.8
patching file man/man8/tripwire.8
patching file man/man8/twadmin.8
patching file man/man8/Makefile.in
patching file man/man8/siggen.8
patching file man/man8/twintro.8
patching file man/man5/twfiles.5
patching file man/man5/Makefile.in
patching file man/Makefile.in
patching file man/man4/twpolicy.4
patching file man/man4/twconfig.4
patching file man/man4/Makefile.in
patching file Makefile.in

で、新しいバージョンのエントリを debian/changelog に追加します。

nori1[20:23]%  dch -v 2.4.0.1-1       whale:~/tripwire/2.4.0.1/tripwire-2.4.0.1
[snip]

あとは、.orig.tar.gz を作成し、debian/rules を実行可能にしておきましょう。

nori1[20:24]%  bunzip2 -c ../tripwire-2.4.0.1-src.tar.bz2 | gzip -9 > ../tripwire_2.4.0.1.orig.tar.gz
nori1[20:36]%  chmod 755 debian/rules whale:~/tripwire/2.4.0.1/tripwire-2.4.0.1

で、ビルドしてみます (自分は sarge を使っているので、sid のパッケージ
は pbuilder の chroot 環境を使用しています)。

nori1[20:38]%  cd debian              whale:~/tripwire/2.4.0.1/tripwire-2.4.0.1
nori1[20:38]% pdebuild --use-pdebuild-internal
[snip]
config.status: creating tw_config.h
config.status: executing depfiles commands
configure: WARNING: you should use --build, --host, --target
configure: WARNING: you should use --build, --host, --target
checking build system type... i486-pc-linux-gnu
checking host system type... Invalid configuration `dummy': machine `dummy' not recognized
configure: error: /bin/sh ./config.sub dummy failed
make: *** [config-stamp] Error 1
Copying back the cached apt archive contents
 -> unmounting dev/pts filesystem
 -> unmounting proc filesystem
 -> unmounting /home/nori1/tripwire/2.4.0.1 filesystem
 -> cleaning the build env
    -> removing directory /var/cache/pbuilder/build//17234 and its subdirectories

ということで、適当にパッチを当てるだけではダメで、もうちょっと調整が必
要なようです (2.3.1.2.0-9 のパッケージをもう少し綺麗なかたちにしてから
2.4.0.1-1 をパッケージングした方がいいかも?)。

こんな感じなので、自分で挑戦してみる価値はありますが、できなくてもあま
りガッカリしないでください。そして、これに凝りてパッケージングを諦めよ
う、とは思わないでください。;-)

現在 tripwire はメンテナがいなく QA team が必要最小限のメンテナンスを
していますが、http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=321113 
にて Daniel Baumann がメンテの意思を表明しているので、彼がパッケージを
改良してくれることに期待したいところです。Daniel はパッチ管理システム
の使用などについてうるさいので、もう少しパッケージとしていいかたちにし
てくれるはずです。膨大なパッケージのメンテしたりスポンサーしたりしてい
る方なので、いつ作業してもらえるかやや気にはなりますが。

-- 
|:  Noritada KOBAYASHI
|:  Dept. of General Systems Studies,
|:  Graduate School of Arts and Sciences, Univ. of Tokyo
|:  E-mail: nori1@xxxxxxxxxxxxxxxxxxxxxxx (preferable)
|:          nori@xxxxxxxxxxxxxxxxxxx
|:  Key fingerprint = AB26 9533 81DA 997B 3C06  4380 19BB ADA0 695C 9F53

Attachment: pgph3iHjBgWMP.pgp
Description: PGP signature