>>314 もっと詳しいのは無いか?
RPM scriptlet recipes
http://fedoraproject.org/wiki/Docs
http://fedoraproject.org/wiki/ScriptletSnippets
ここが詳しいですね。
The basic syntax is similar to the %build, %install, and other sections of the rpm spec file.
The scripts support a special flag, -p which allows the scriptlet to invoke a single program
directly rather than having to spawn a shell to invoke the programs.(ie: %post -p /sbin/ldconfig)
なる程。シェルを置換してダイレクトに実行するんですね。
そして次のセクションまで有効な(コメントを含む)行があると scriptlet に早替りし、
tmp ファイル名をパラメータとして受け取ると。
知りませんでした;;
http://owa.as.wakwak.ne.jp/zope/coreblog/158
他にも参考になるサイトあったのでリストアップ
Packaging Guidelines
http://fedoraproject.org/wiki/Packaging/Guidelines
Package Review Guidelines
http://fedoraproject.org/wiki/Packaging/ReviewGuidelines
Trigger Scripts
http://fedoraproject.org/wiki/ToshioKuratomi/TriggerScripts
QA Checklist
http://fedoraproject.org/wiki/QAChecklist
rpm-list
https://www.redhat.com/archives/rpm-list/
Vine Seed
Vineの開発版を中心とした話をしたいと思います。と云いながら最近は x86_64 関連しか興味が無かったりします。当ボードは Project Vine とは一切関係ありません。
投稿フォーム:
rpm と云えば http://www.rpm.org/
Maximum RPM の最新は http://rpm.org/max-rpm-snapshot/
コメント内でもマクロは有効だそうな (そう云えば Changelog 内でも?)
http://rpm.org/max-rpm-snapshot/ch-rpm-inside.html
%postun の話はこの辺(もっと詳しいのは無いか?)
http://rpm.org/max-rpm-snapshot/s1-rpm-inside-scripts.html
概要ならこれも一応まとまってそう。
http://fedora.redhat.com/docs/drafts/rpm-guide-en/
http://fedora.redhat.com/docs/drafts/rpm-guide-en/ch-online-resources.html
Linux Standard Base (LSB) に関しては、ちんぷんかんぷん。ちと後回し。
http://www.linuxbase.org/spec/refspecs/
さりとて rpm のソース見ると高級そう。短時間ではとても無理かな。
Lua はとりあえず rpm-4.4.2/lua/README を見ましょう
* What is Lua?
--------------
Lua is a powerful, light-weight programming language designed for extending
applications. Lua is also frequently used as a general-purpose, stand-alone
language. Lua is free software.
For complete information, visit Lua's web site at http://www.lua.org/ .
For an executive summary, see http://www.lua.org/about.html .
この歳で宿題ばかり溜りけり;;
最近 Sylpheed-2.2.0βが良く落ちます。家だけかな?
新着メールを自動で取り込むのが引き金になってるみたい。
Firefox-1.5.0.1 もたまに落ちるのでいまいち特定しずらい。
なんでだろぅ。
こちらでもビルドできました
--target=i386-vine-linux を %configure から外してみました
(あと %find_lang %{name} もコメントアウト) ← 追記-3:これは削除でないといけない! (>>314)
取り急ぎ報告だけですが、ありがとうございます。m(.".)m
追記-1: すいません理屈は解かって居ません;;
追記-2: x86_64 の場合 config.sub 199行目に "x86_64-*" を追加しないといけない。
glib-1.2.10 ですが、configure マクロを上書きし、
--target を指定しないようにしたところ、ビルドできました。
問題なければ、そのうち upload します。
白昼の死角
Seed の glib-1.2.10-0vl5.src.rpm (2004/07/07) はリビルドできない。
こう云うものは誰もアップデートしたく無いのだろうな。
依存関係ありすぎでこわい。
最新ソースは glib-1.3.15.tar.gz 2002年02月24日(ん、なんかわけありか?)
ftp://ftp.gtk.org/pub/gtk/v1.3
日本語ドキュメントはこちら
http://www.gnome.gr.jp/docs/glib-1.2.x-refs/
rpm-4.4.2-0vl6.2.x86_64.rpm (ほぼ)無修正でビルドできた。
思い切ってインストールして見ました。
# 下手すりゃ、最初からすべてやり直しだもんね;;
直後に rpm が全く機能しなくなりましたとさ;; ガーン
最後の手段とリブート。。。
おや、何ごとも無かったようにすべて順調かしら (^^;
$ rpm --eval='%{_arch}'
x86_64
$ rpm --eval='%{_lib}'
lib64
$ echo $HOSTTYPE
x86_64
うひゃひゃ、ひょっとしてうまくいってるの?
>>307 shared library がサポートされてないかも?
libtool の修正が要ると思う。
compat32 のビルドには避けて通れない話のようです。x86_64 の方は問題なし。
http://www.bookshelf.jp/texi/libtool/libtool-ja.html
追記:
今のところ configure CC='gcc -m32' としないといけないらしい。
libtool-1.5.20 の README に書いてありました。2.0 では直る予定だとも。
ともかく libtool のビルドは x86_64, compat32 ともうまくいきました。
Vine x86_64 環境で rpm-4.4.2-0vl6 のビルド試してみました
あら、こんな↓依存関係が
rpm > beecrypt > doxygen > graphviz, qt-devel
doxygen より右は plus カテゴリなので、とりあえずコメントアウト。
で beecrypt-4.1.2 をビルド、インストールするにはやはり暫定 compat32 が必要。
そして compat32 を作るには 32bits 環境が必要なことが解かりました (←大事)。
(他の 32bits マシンでビルドするってのは、今は考えない)
まずは定跡通り
1. spec の先頭で下記を定義する
%define build_compat32 %{?_with_compat32:1}%{!?_with_compat32:0}
%if %{build_compat32}
%define _lib lib
%endif
で、スペックに compat32 対応コードを追加。
また x86_64 環境下では -m32 が無いと 64bits ELF をつくってしまうので、下記は必須だと思います。
2. /usr/lib/rpm/rpmrc の optflags を編集
- optflags: i386 -O2 -march=i386 -mcpu=i686
+ optflags: i386 -O2 -m32 -march=i386 -mcpu=i686
そしてビルドは二度おこなう
$ rpm --sign -ba --target x86_64 beecrypt-vl.spec 2>&1 | tee make64.log
$ rpm --sign -ba --with compat32 --target i686 beecrypt-vl.spec 2>&1 | tee make32.log
これは後で考えないといけないかも。
無事に beecrypt はビルドできたたけど、肝心の rpm は宿題になりました。
1. shared library がサポートされてないかも?
2. asm の環境設定されてないかも?
3. glibc-headers は問題無いか? http://ep09.pld-linux.org/~mmazur/linux-libc-headers/
ボチボチいきまひょ。。。
誤解してたようです
「ピュア64でベースを作れば、わざわざ /usr/lib64 とか考えなくてもよくて、他のパッケージに手を入れる必要無く、芋蔓式にリビルドして行けば良いだけ」と考えてました。
そして vine 的にも本当はピュア64にしたい意向だと。(←これが誤解その1)
> [VineSeed:10125]
> 4つ目として、biarch 対応を当面考えないという手もあると思います。
> プロプライエタリなドライバやソフトウエアが使えないという問題がでますが、
> 当面はあとまわしでも良いような気がします。
続きを読めばまったく反対で、
> とりあえず、4で進めて 3 で後からbiarch対応するという感じがいいのかな
> あという感じです。それでも lib64 対応はしておかないとあとからどうにも
> ならないですが。。どうでしょうか?
で、すでに 3 に進んでるので何も問題無いってことですね。恥ずかしい > 私
>>305
> 32bit バイナリを使わないなら compat-* はなくても動きますし、たりないものは
> どんどん rebuild していけばOKです。
必ずしも i386 と x86_64 が常に発生すると云うことじゃ無いのですね。(←誤解その2)
まずは、試しに少しづつビルドしてみます。問題があれば seed-ml に投稿します。
# 正直言えば、少し前までピュア64なんて幻想を抱いてましたが、あまり現実的じゃ無いですね。
# あやつけるつもりは毛頭ありません。ありがとうございました。