Não, você não pode. Você pode usar macros em% post. Mas eles são avaliados durante o tempo de compilação e você só pode substituí-lo durante o tempo de compilação:
%{!?foo:%global foo SOME_DEFAULT}
%post
echo %{foo}
A primeira linha define alguns padrões quando a macro foo
não está presente.
Então você pode executar:
rpmbuild -ba --define='foo bar' evil.spec
onde você define sua própria macro foo
com o conteúdo bar
. Depois que o rpm é construído, tudo é colocado na pedra e você não pode mudar o rpm.
Mas você pode fazer algo como:
%post
cat /etc/myconfig.cfg | ... #do something based on content of the file
e o usuário diz para:
echo foo > /etc/myconfig.cfg; rpm -i acme-1.1-1.el7.noarch.rpm