Control: clone -1 -2
Control: retitle -2 dist: unit ordering relies on make not shuffling targets Control: reassign -2 dist 1:3.5-236-1.1
Control: retitle -1 perl: FTBFS with make --shuffle=reverse: Configure reordering
Control: tag -1 confirmed patch
On Tue, May 13, 2025 at 09:12:44PM +0200, Lucas Nussbaum wrote:
Source: perl
Version: 5.40.1-3
Severity: minor
Tags: trixie sid ftbfs
User: lucas@debian.org
Usertags: ftbfs-shuffle
This package fails to build with make --shuffle=reverse.
This is likely to be caused by a missing dependency in
debian/rules or an upstream Makefile.
Lucas, many thanks for your work on archive wide QA!
Indeed it looks like GNUMAKEFLAGS=--shuffle=reverse causes reordering
in the generated Configure script, causing it to differ from the one
shipped by Perl upstream. The build failure is due to an explicit check
in debian/rules making sure that we can rebuild an identical Configure
script from the sources in the regen-configure/ directory. Even if we
didn't do that, the resulting rebuilt Configure is broken so the build
would fail anyway.
Calling metaconfig from debian/rules with an empty MAKEFLAGS setting
works around the issue and makes the package build successfully.
It looks like metaconfig relies on the default make ordering when it
determines the correct order for units. For instance, quoting /usr/share/dist/U/Begin.U :
?X: This file comes after option processing had been done and after all
?X: the default values have been set up. It marks the beginning of questions.
?X: It is important that Options be listed *after* Myinit to ensure that the
?X: default initializations performed by Init and Myinit will not clobber
?X: any setting done on the command line via -D or -U.
?X:
?MAKE:Begin: Myinit Options package Extractall
and the MAKE: line ends up in a temporary Makefile as-is, so relying on
left to right execution order.
This is where the Configure script generated with GNUMAKEFLAGS=--shuffle=reverse first breaks, as the 'package' variable
gets set first to 'perl5' by the 'package' unit, and then clobbered
by 'Myinit'.
I'm cloning a separate bug about this for src:dist which ships
the metaconfig we use.
For the purposes of src:perl, I suppose I'll close this by resetting
MAKEFLAGS for the metaconfig call (probably after the trixie release
of course).
BTW the hordes of
sh: 1: Makefile:472:: not found
sh: 1: Makefile:909:: not found
in the build log are related to make --trace and seem to be harmless.
--
Niko
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)