On Fri, Apr 08, 2022 at 11:16:59AM +0200, Petr Pisar wrote:
V Thu, Apr 07, 2022 at 12:13:42PM -0400, Ben Cotton napsal(a):
>
https://fedoraproject.org/wiki/Changes/RPM-4.18
>
> == Summary ==
> Update RPM to the [
https://rpm.org/wiki/Releases/4.18.0 4.18] release.
[...]
> * New `%conf` spec section for build configuration
RPM documenation reads:
In %conf, the unpacked sources are configured for building.
Different build- and language ecosystems come with their own helper macros,
but rpm has helpers for autotools based builds such as itself which
typically look like this:
%conf
%configure
In context of autotools, sources usually bundle a configure script. To follow
the open source way (and ensure portability to new platform and include
autotools fixes), building from the real sources is desired. Hence I do my
best to call "autoreconf -fi" before %configure.
Where should autoreconf be placed? %pre or %conf?
For me the important distinction is that %prep should *not* execute the
code from the package: it should just unpack, apply patches and fixups, change
permissions, etc. This all should be done using external tools, and not
scripts from the package itself. This way it is possible do 'fedpkg prep'
or equivalent and view the sources without executing any commands from
the package. So even if the package does not want to run on a given architecture,
or upstream does something stupid or hostile, %prep remains reliable.
(This also means that %prep should rather do less than more.)
If autoreconf is done using the external 'autoreconf' command, then
%prep seems appropriate. Some packages have ./autogen.sh or similar, and
that I'd put in one of the later sections.
Zbyszek