• Bug#1105665: perl: FTBFS with make --shuffle=reverse: + # ./trygcc: lin

    From Niko Tyni@21:1/5 to Lucas Nussbaum on Sat May 17 16:40:02 2025
    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)