the problem is quite easy to exhibit:
rpm --eval "%define xyz"
error: Macro %xyz has empty body
i want to get the patch_level and echo_dist may return sles11 or sles11sp1, for sle1s11 i just want the patch_level to be an empty string, but that leads to the empty body error.
rpm --eval "%{expand: %%define patch_level %(echo_dist | sed -e "s/sles11//")}
i am not fully understand the rpm spec file, any suggestion to the problem?
This might be what you are looking for:
%define xyz %{nil}