= vine-rpm-helper = ソース: source:projects/vine-rpm-helper/trunk == mkrpmspec == {{{ $ mkrpmspec http://hoge.org/path/package-1.0.0.tar.bz2 }}} などとすると 1. ファイルをダウンロードし、 ~/rpm/SOURCES/package/ に保存 1. ~/rpm/SPECS/hoge-vl.spec に雛形を生成 === 使用法 === 0.5 からオプションを使えるようになりました。これで (パッケージ名)-(バージョン).(拡張子) という形式になっていないアーカイブも扱えるようになりました。 {{{ 使用法: mkrpmspec [OPTION]... ARCHIVE --pkgname=NAME パッケージ名を上書きする --pkgversion=VERSION パッケージのバージョンを上書きする --without-prefix パッケージ形式に基づく接頭辞を付加しない (0.6.6以降) --help ヘルプを表示して終了する --version バージョン情報を出力して終了する }}} --help , --version を導入したついでに help2man で manpage も生成しました。 ==== ファイル名の書式が想定外の例 ==== {{{ $ mkrpmspec --pkgname=sourcenavigator-NG --pkgversion=4.4 \ http://download2.berlios.de/sourcenav/sourcenavigator-NG4.4.tar.bz2 }}} ==== ファイル名の書式は問題ないが、パッケージ名だけを変更する例 ==== {{{ $ mkrpmspec --pkgname=man2html \ http://primates.ximian.com/~flucifredi/man/man-1.6g.tar.gz }}} === 個人用設定ファイル === ~/.config/vine-rpm-helper/mkrpmspec.conf の記述例 {{{ TRACKID=yourid FULLNAME="Your Name" EMAIL=username@example.com }}} || 変数名 || 説明 || ||TRACKID||ユーザーの trac.vinelinux.org の ID を記述。Packager タグに記述される。|| ||FULLNAME||ユーザーのフルネーム。%changelog で利用される。|| ||EMAIL||ユーザーのメールアドレス。%changelog で利用される。|| === 既知の問題 === * 依存関係の検討(gettext, wget を R に含める必要性など) * 個人的には gettext の明示は必要ないと考える * wget は curl とかでも代替え可能な仕組みにはしたい。 * ~~name-version のように name と version の間に - がないような場合、うまく処理できない。(例: sourcenavigator-NG4.4.tar.bz2)~~ * 0.5 で導入されたオプションを使うことで回避可能(例: --pkgname=sourcenavigator-NG --pkgversion=4.4) * ~~zip 展開時に作成されるディレクトリ名の取得に失敗する。~~ * ~~zip の場合に生成される %prep セクションが不適切~~(0.6 で修正) {{{ %prep %setup -T %{name}-%{version} unzip -xq %{SOURCE0} }}} を {{{ %prep rm -rf %{_builddir}/%{name}-%{version} unzip -xq %{SOURCE0} %setup -D -T %{name}-%{version} }}} などと修正してください。 === mkrpmspec 開発者向け情報 === ==== チェックアウト要領 ==== {{{ $ svn co http://trac.vinelinux.org/repos/projects/vine-rpm-helper/trunk vine-rpm-helper }}} ==== シェル変数の定義 ==== || 変数名 || 説明 || ||ARCHIVE||mkrpmspec の引数に与えられたアーカイブファイル名|| ||PKGNAME||${ARCHIVE} を元に決定したパッケージ名|| ||PKGVERSION||${ARCHIVE} を元に決定したバージョン番号|| ||SOURCE||パッケージのソース|| ||SOURCEDIR||パッケージのソースを格納するディレクトリ|| ||PKGSOURCE||ローカルに保存されたソースのフルパス|| ||BUILDDIR||パッケージビルド用のディレクトリ|| ||SPECDIR||出力する SPEC ファイルを格納するディレクトリ|| ||SPECFILE||出力する SPEC ファイルのフルパス || ||DOCFILES||%doc で出力するファイルの一覧|| ||GETTEXTIZE||GETTEXTIZE されているかを yes または no で格納|| ||MD5SUM||パッケージに含まれる COPYING ファイルの md5sum 値(CheckLicense内でのみ使用)|| ||LICENSE||自動判別したパッケージのライセンス。自動判別に失敗した場合は、「FIXME」を格納。|| ||PKGTYPE||自動判別したパッケージのタイプ。現在の所、Perl、Python、autotoolize のみ。|| ||NAME||RPM パッケージ名。Perl では、PKGNAME の prefix に perl- を付加する。|| ||LINKTARGET||NAME と PKGNAME が異なる場合、パッケージのソース格納用ディレクトリのシンボリックリンクを作成するために使用する。|| ||PKGDIR||パッケージを展開した場合に生成されるディレクトリ名。|| ||BASENAME||パッケージファイルのベース名|| ||SUFFIX||パッケージファイルの拡張子|| ||SUMMARY||自動取得したパッケージの概要(Python setup project のみ自動取得|| ||URI||自動取得したパッケージの公式サイト(Python setup project のみ自動取得|| ||WITHOUT_PREFIX||値が yes の場合、Perl や Python のパッケージに perl- や pytho- のような接頭辞を付加しない。 || ==== archive type plugins ==== * bzip2 * gzip * lzma * xz * zip ===== 記述するシェル変数 ===== || 変数 || 説明 || ||LIST_CMD||アーカイブの内容を表示するためのコマンドとオプション|| ||EXT_CMD||アーカイブを展開するためのコマンドとオプション|| ||ADD_OPT||アーカイブファイル名の後に記述すべきオプション。現在は、lzma のみ利用(ADD_OPT=--lzma)。|| ==== build system plugins ==== * autotoolize * Perl * Python ===== 記述するシェル関数 ===== || 関数 || 説明 || ||!OutputDependency||依存関係の出力を行う。|| ||!OutputBuild||%build セクションの出力を行う。|| ||!OutputInstall||%install セクションの出力を行う。|| == mkrpmfiles == 未実装。