RPM仕様ファイルを作成するときは、次のコマンドを使用して使用可能/定義済みマクロをダンプできます。
rpm --showrc
またはrpm --eval %dump
または、%dump
仕様ファイル自体に組み込みマクロを含め、RPMビルドプロセスの出力を確認します(ビルド出力にはマクロ定義が含まれています)。
どちらの場合も、一部の行には「-14」または「-11」というプレフィックスが付いています。複数行定義の対象となる単一行はありません。
この出力では、「-14」(またはあまり一般的には「-11」)とはどういう意味ですか?さらに重要なのは、この内容がどこで録音されたのかを知りたいのです。
出力例:
-14: __autoconf autoconf
-14: __autoheader autoheader
-14: __automake automake
-11= _target_cpu x86_64
-11= _target_os linux
引用:
答え1
RPM マクロには、再帰深度という関連レベルがあります。
このレベルのマクロは、再帰拡張から戻ると自動的には定義されません。
レベル<= 0のマクロは常に定義されます(ある意味ではグローバル)。
負のレベルは、最初にマクロが定義されている場所(rpm内または構成ファイルの読み取り)を表示するために使用されます。
実際、RPMのどれもマクロレベルを使用したり必要としません。
しかし、これが「-14」が意味するところです。
また、定義または使用されるマクロを通知する --showrc 出力の「:」から「=」への変更も除外されます。
答え2
私はrpm-ecosystemメーリングリストに質問しました。望むより: http://lists.rpm.org/pipermail/rpm-ecosystem/2017-March/000476.html
「rpm --showrc」の場合、このような負の数はマクロ定義の「ソース」または「位置」を表します。
-14 = -13 - 1:マクロはマクロファイル(例:/etc/rpm/macros.*)で定義されます。
-11:マクロはrpmrcファイル(/usr/lib/rpm/rpmrcなど)で定義されます。
-8 = -7 - 1:マクロはコマンドラインで定義されます(たとえば、rpm -D "zzz 42" --showrcを介して)。
など。