2017-11-17 5 views
1

RPM仕様ファイルには、多数の特殊変数があります。これらの変数のどれかが処理中の現在のパッケージの名前を公開していますか?(サブ)パッケージ名のRPM仕様変数?

シングルパッケージRPMの場合、答えは明らかですが、単一の仕様でも複数のRPMが生成される可能性があります。 $ RPM_PACKAGE_NAMEのような変数はありますか?rpmbuildは現在の%ファイルや%preや%postセクションに合わせて自動的に更新されますか?

+1

私が知っている限り... –

答えて

1

RPMのソースコードには何も明白ではありません。定義されたサブパッケージの現在のリストには、RPMマクロまたは構築中のパッケージヘッダを使用してアクセスする可能性はなく、RPMマクロまたはLuaを使用することはできません。

代わりに、built-in Lua interpreterを使用して、Luaでパッケージスタンザ全体を生成します。例はglibc.specです。 "Array of languages"と%package langpack-]]..lang..[[を検索します。 Pagureビューアの構文強調表示は少しオフになっていますが、このクロスランゲージネストでは混乱しています。

+1

これは最もクリーンな方法のようです。私は、RPMに埋め込まれたLuaインタプリタがあることは知らなかった。あなたは、あなたが持っている最高のドキュメンテーションへのリンクを含めてください。私はこれを見つけた:http://rpm.org/user_doc/lua.html –

+0

ありがとう、私はリンクを追加しました。新しいRPMのドキュメントを見るのは驚くべきことです。 –

1

あなたはその名前でこれを行うことはできません。パッケージ名が%nameのマクロがありますが、メインパッケージの名前のみが含まれています。しかし、あなたが行うことができます、あなたは本当にこれを実行する必要がある、とあなたは汚いハックを行うことを喜んでいる場合:

fooを出力します
%package base 
Summary: Filesystem for %{name} 
Group: foo 

%post base 
echo %group 

%summaryについても同様ですが、%groupはグループが有用なものとして使用されないので最も安全です。

私はこれが汚れた汚れたハックだと言いましたか?フロリアンが提案したことは間違いなくもっとクリーンな方法です。

関連する問題