RPM spec file – Is it possible to dynamically populate a spec file variable

You can define rpmbuild variables with %(cmd) at the top of the spec file. Notice the command is in parenthesis, not curly brackets. An example:

%define whoami %(whoami)

And elsewhere in the spec file, such as a script or the build/install sections, use the variable as normal in the curly brackets like this:

echo "The user that built this is %{whoami}"

The cmd can be anything, including your cat command. Be careful – when another user rebuilds the spec file it may not find the file. So it’ll be preferable to use the %{sourcedir} macro like this:

%define path %(cat %{sourcedir}/path_file)

And make sure that path_file is in the source directory and included as a source in the spec file.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)