Basit Anwer
Basit Anwer

Reputation: 6890

Reassign values to %define variables in spec file - RPM

When we define variables using the %define tag in a spec file to build an RPM using the rpmbuild command ... is it possible to update its value on %pre and use it later on ?

Upvotes: 3

Views: 11560

Answers (1)

Aaron D. Marasco
Aaron D. Marasco

Reputation: 6758

No.

%define macros are always re-evaluated, top to bottom in the spec file, so you cannot have loops.

%global macros are one-time.

Example, from another question concerning 'requires' processing:

%global _use_internal_dependency_generator 0
%global __find_requires_orig %{__find_requires}
%define __find_requires %{_builddir}/%{?buildsubdir}/build/find-requires %{__find_requires_orig}

If I had used %define to declare __find_requires_orig, it would error out with a macro loop.

If this doesn't answer your question, please elaborate what information you are looking for, or your end goal.


ETA:

The %pre and %post sections will already have the macros hard-coded from when the RPM is built. If you need additional run-time decisions to be made, they will need to be done in those shell scripts.

Upvotes: 6

Related Questions