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 となります.



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-12-17 (金) 16:35:41