2015年03月27日

rpmspecを修正せずにリリースIDを動的に指定する Wakame-vdc

このエントリーをはてなブックマークに追加

頻繁なRPMリリースサイクルを実現させる為に

rpmspecファイルの重要箇所のみ抜粋。一般的なrpmspecではReleaseタグを静的に定義する。

Release: 0.0.1%{?dist}

Wakame-vdcでは頻繁にrpmをビルドしている都合上、毎回rpmspecファイルを書き換える作業は、実に都合が悪い。可能であればリリースIDを動的に指定したい。そう言った要件を満たす為、wakame-vdc.specでは、少し工夫している。

Releaseタグを動的に指定出来れば解決する

工夫している該当箇所は、この3行。

https://github.com/axsh/wakame-vdc/blob/master/rpmbuild/SPECS/wakame-vdc.spec#L10-L12 (2015/03/27現在)

%define release_id 1.daily
%{?build_id:%define release_id %{build_id}}
Release: %{release_id}%{?dist}

コメントを添えて補足すると、

# release_idを定義。値は 1.daily
%define release_id 1.daily

# build_idが定義されている場合は、build_idの値でrelease_idを再定義
%{?build_id:%define release_id %{build_id}}

# Releaseタグの値をrelease_idの値で定義
Release: %{release_id}%{?dist}

rpmbuild実行時に--defineオプションを指定すると、マクロを定義可能だ。

$ rpmbuild -bb ./wakame-vdc.spec --define "build_id 20150318183519git1a6d5b4"

これにより、rpmspecをコミットごとに修正する事無く、頻繁にrpmをリリース可能に出来る。なお、リリースIDに関しては

で述べているので、合わせてどうぞ。

まとめ

SRPMの事を考慮すると、Releaseタグの値は固定化されている事が望ましい。しかしWakame-vdcではSRPM生成を放棄しているので、問題にはならない。少なくとも、独自RPMの道を歩んでいる限りは。




編集
@hansode at 17:00│Comments(0)TrackBack(0)Wakame | hacks/linux/RHEL

トラックバックURL

コメントする

このブログにコメントするにはログインが必要です。