2016-11-10 13 views
1

私はマクロのようにグローバルに定義されている場合は、次の条件付きrpmマクロで定義されたマクロはいつ展開されますか?

%{!?patch_file_list: %global patch_file_list %(pfl=$(mktemp -t); ls %{_topdir}/SOURCES/*.patch | sort > $pfl; echo $pfl)} 

%prepセクションにそれを使用するが、それは%{patch_file_list}mktemp -tによって返されたファイルの名前が含まれ、ファイルがパッチのリストが含まれますのでご安心ですファイル?

%global patch_file_list ...で定義されたマクロはいつ拡張されますか? グローバルに定義した場合、または%prepセクションで初めて使用した場合は?

答えて

1

テストマクロが定義されている場合(条件が%{nil}に有効な定義であることに注意してください)、条件付きマクロ展開により本文が展開されます。

マクロはすぐに展開されます。あなたの場合は、%prepセクションが実行される前にspecファイルが解析されています。

条件付き展開でテスト対象の同じマクロ名が定義されていると、混乱する可能性があります。

関連する問題