wiki:Packages/vine-rpm-helper

Version 17 (modified by yasumichi, 9 years ago) (diff)

--

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/ に保存
  2. ~/rpm/SPECS/hoge-vl.spec に雛形を生成

使用法

0.5 からオプションを使えるようになりました。これで (パッケージ名)-(バージョン).(拡張子) という形式になっていないアーカイブも扱えるようになりました。

使用法: mkrpmspec [OPTION]... ARCHIVE

      --pkgname=NAME        パッケージ名を上書きする
      --pkgversion=VERSION  パッケージのバージョンを上書きする
      --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 に含める必要性など)
  • 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

シェル変数の定義

変数名 説明
ARCHIVEmkrpmspec の引数に与えられたアーカイブファイル名
PKGNAME${ARCHIVE} を元に決定したパッケージ名
PKGVERSION${ARCHIVE} を元に決定したバージョン番号
SOURCEパッケージのソース
SOURCEDIRパッケージのソースを格納するディレクトリ
PKGSOURCEローカルに保存されたソースのフルパス
BUILDDIRパッケージビルド用のディレクトリ
SPECDIR出力する SPEC ファイルを格納するディレクトリ
SPECFILE出力する SPEC ファイルのフルパス
DOCFILES%doc で出力するファイルの一覧
GETTEXTIZEGETTEXTIZE されているかを yes または no で格納
MD5SUMパッケージに含まれる COPYING ファイルの md5sum 値(CheckLicense内でのみ使用)
LICENSE自動判別したパッケージのライセンス。自動判別に失敗した場合は、「FIXME」を格納。
PKGTYPE自動判別したパッケージのタイプ。現在の所、Perl、Python、autotoolize のみ。
NAMERPM パッケージ名。Perl では、PKGNAME の prefix に perl- を付加する。
LINKTARGETNAME と PKGNAME が異なる場合、パッケージのソース格納用ディレクトリのシンボリックリンクを作成するために使用する。
PKGDIRパッケージを展開した場合に生成されるディレクトリ名。
BASENAMEパッケージファイルのベース名
SUFFIXパッケージファイルの拡張子
SUMMARY自動取得したパッケージの概要(Python setup project のみ自動取得
URI自動取得したパッケージの公式サイト(Python setup project のみ自動取得

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

未実装。

Attachments