[[diary/Kojima]]

・make_PlamoBuild.py(その2)

make_PlamoBuild.py は引数としてアーカイブファイル(tar.{gz,bz2})かソースコードを展開
したディレクトリ名を取る,と言いましたが,アーカイブファイルを指定した場合,
そのアーカイブを展開して,"ファイル名"-"バージョン番号" というディレクトリ
が生成されると想定し,PlamoBuild スクリプトのヘッダー部分の pkgbase や vers, src を設定します.

# 大きなアーカイブファイルからファイル名を取り出すのはコストが高い(時間がかかる)ので決め打ちにしちゃっています

そして,そのディレクトリ中のドキュメントらしきファイル(README とか COPYRIGHT 等のキーワードを用意しています)
を取り出して.ヘッダー部分の DOCS 行に設定します.

また,ソースコードを置いたディレクトリに *.patch や *.diff といったファイルがあれば,
それらをソースコードへのパッチであると判断して patchfiles 行に設定します.

この patchfiles 行に指定されたファイルは,diff の取り方とかは調べず,一律に 
ソースコードを展開したディレクトリ内で patch -p1 < $patchfile という形で適用されるので,
diff を取る際にはソースツリー全体の diff にしておく必要があります.

たいていのソースコードのアーカイブファイルははこの方法でうまく行くのですが,
たまに "ファイル名"-"バージョン番号"/ の形に展開されないソースコードがあり,
ディレクトリ名を決め打ちしている make_PlamoBuild.py がエラーになることがあります.
そのような場合は,ソースコードを手動で展開した上で,そのディレクトリ名を引数に
make_PlamoBuild.py を実行してください.

 % /share/Srcs/make_PlamoBuild.py ffmpeg
 ffmpeg
  
 patches: []
 making PlamoBuild.ffmpeg ...

この方式で生成した PlamoBuild スクリプトは,ヘッダー情報が正しく設定できていない場合が多いので,
適宜手動で修正する必要があります.

例えば,上記で生成した PlamoBuild.ffmpeg スクリプトのヘッダーはこうなっていて,pkgbase や vers を
別途指定してやる必要があります.

 #!/bin/sh
 ##############################################################
 url=
 pkgbase=
 vers=ffmpeg
 arch=i586
 build=P1
 src=-ffmpeg
 OPT_CONFIG=''
 DOCS='COPYING.GPL COPYING.LGPL Changelog INSTALL MAINTAINERS README'
 patchfiles=''
 ##############################################################

これらヘッダー情報のうち,pkgbase,vers, arch, build はパッケージ名を生成するために
用いられ,src はソースコードを展開したディレクトリを指定することになります.

また,OPT_CONFIG 行では configure スクリプトに指定するオプションを指定します.
DOCS 行で指定したファイルは,ドキュメントファイルとして /usr/share/doc/$pkgbase-$vers/ ディレクトリに
コピーされ,バイナリファイルと共にインストールされます.
patchfiles 行で指定したファイルは,一つづつソースコードに対して適用されます.

上記 ffmpeg 用のビルドスクリプトは以下のように修正しました.

 #!/bin/sh
 ##############################################################
 url='git clone git://git.ffmpeg.org/ffmpeg/ ; cd ffmpeg ; git clone git://git.ffmpeg.org/libswscale/'
 pkgbase=ffmpeg
 vers=git_20081222
 arch=i586
 build=P1
 src=ffmpeg
 OPT_CONFIG='--enable-shared --enable-gpl --enable-postproc --enable-swscale --enable-avfilter \
    --enable-avfilter-lavf --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libspeex \
    --enable-libtheora --enable-libvorbis --enable-libx264 --enable-zlib'
 DOCS='COPYING.GPL COPYING.LGPL Changelog INSTALL MAINTAINERS README'
 patchfiles=''
 ##############################################################

このスクリプトから生成されるパッケージは ffmpeg-git_20081222-i586-P1.tgz となります.

#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS