[Fedora-packaging] Remove requirement to use macros for paths

Michael Schwendt mschwendt at gmail.com
Mon Feb 28 20:59:26 UTC 2011


On Mon, 28 Feb 2011 15:25:31 -0500, Chuck wrote:

> The point of the macros is to ensure consistent use of paths between 
> the configure, install, and packaging stages so that builds don't 
> break if there are changes in any part of the chain.

Especially what is used up to and including the %build section MUST match
what is used in the %install section. Else it would be possible to compile
into the software paths that don't match the installed file locations.

It's also one of the reasons why %makeinstall is not the preferred
%install method, as it bears the risk of inserting paths into the
installed files (possibly including the %buildroot prefix even) which
differ from what is used during %build.

> %configure uses those macros.  If spec files were allowed to not use 
> the macros, then changes to %configure would break the spec files.  So 
> if you are going to remove the requirement for the macros in spec 
> files, then the behavior of %configure should not be reliant on the 
> macros either.  In fact, all use of such macros should be removed (not 
> disallowed, but removed from use in the standard build macros).

+1  Though, I wouldn't worry much about "breaking spec files", if that
also broke the build. 

Worse would be the cases where the spec file used hardcoded paths to
modify the source code (or to set up config/data files) with values that
differ from the macros used by e.g. %configure - without breaking the build.


More information about the packaging mailing list