Description of problem: As of Mageia 6, we have two %configure macros: %configure (for legacy autotools) and %configure2_5x (for current autotools). The two macros have subtly different configurations, but are largely the same. We should unify them and offer ways to flip the behaviors of a new, unifed %configure macro to behave like one for legacy autotoolized projects when needed, but otherwise behave like one for modern projects. This will also make it easier for people to target Mageia with cross-distro specs (common for third-party packagers). Here's a proposed unified configure script, with legacy behaviors able to be switched on by simply adding "%global _legacy_autotools 1" to a spec: %configure \ %before_configure ; \ %{?_legacy_autotools:%{?!_disable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}}} \ %{?_enable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}} \ [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \ CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \ $CONFIGURE_TOP/configure %{!?_legacy_autotools:--build=}%{_target_platform} \\\ %{?_program_prefix:--program-prefix=%{_program_prefix}} \\\ --prefix=%{_prefix} \\\ --exec-prefix=%{_exec_prefix} \\\ --bindir=%{_bindir} \\\ --sbindir=%{_sbindir} \\\ --sysconfdir=%{_sysconfdir} \\\ --datadir=%{_datadir} \\\ --includedir=%{_includedir} \\\ --libdir=%{_libdir} \\\ --libexecdir=%{_libexecdir} \\\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ --infodir=%{_infodir} \\\ $CONFIGURE_XPATH
Target Milestone: --- => Mageia 7
Eck, forgot to guard out the other libtoolize conditional. It would be like this: %configure \ %before_configure ; \ %{?_legacy_autotools:%{?!_disable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}}} \ %{!?_legacy_autotools:%{?_enable_libtoolize:%{?__libtoolize_configure:%{__libtoolize_configure};}}} \ [ -f $CONFIGURE_TOP/configure.in -o -f $CONFIGURE_TOP/configure.ac ] && \ CONFIGURE_XPATH="--x-includes=%{_prefix}/include --x-libraries=%{_prefix}/%{_lib}" \ $CONFIGURE_TOP/configure %{!?_legacy_autotools:--build=}%{_target_platform} \\\ %{?_program_prefix:--program-prefix=%{_program_prefix}} \\\ --prefix=%{_prefix} \\\ --exec-prefix=%{_exec_prefix} \\\ --bindir=%{_bindir} \\\ --sbindir=%{_sbindir} \\\ --sysconfdir=%{_sysconfdir} \\\ --datadir=%{_datadir} \\\ --includedir=%{_includedir} \\\ --libdir=%{_libdir} \\\ --libexecdir=%{_libexecdir} \\\ --localstatedir=%{_localstatedir} \\\ --sharedstatedir=%{_sharedstatedir} \\\ --mandir=%{_mandir} \\\ --infodir=%{_infodir} \\\ $CONFIGURE_XPATH
Created attachment 8729 [details] Git formatted patch to unify %configure macros in rpm-setup I've attached a proposed patch to implement this in rpm-setup.
See Also: (none) => https://bugs.mageia.org/show_bug.cgi?id=20994
This need for someone to successfully rebuild all packages with the above change after adjusting the needed packages. I seriously doubt that this has been done. Anything else will likely break the building of quite a lot packages Btw this has already been discussed and what has been suggested instead: - rename %configure -> %old_configure AND adjust all affected spec files - rename %configure2_5x -> %configure AND adjust all affected spec files This is quite a lot less likely to induce breakages....
CC: (none) => thierry.vignaud
My patch does not preclude that. %old_configure could be defined as %configure with legacy autotools flag on. Alternatively, if we can just inject to the top of spec files that use %configure today with the flag, then we're fine. After that, %configure2_5x can be mass changed to %configure. Note that while I have applied the patch, I have not made a release with it yet, since I don't know how we're going to make the mass change.
See Also: (none) => https://bugs.mageia.org/show_bug.cgi?id=26064
This was fixed in rpm-mageia-setup 2.50. Legacy autotools parts were removed completely and %configure is now the macro that one should use. %configure2_5x was kept for compatibility and is pointing to %configure with a deprecation warning. Closing as FIXED.
CC: (none) => jani.valimaaResolution: (none) => FIXEDStatus: NEW => RESOLVED