• Bug#1105720: camlmix: FTBFS with make --shuffle=random: make[3]: *** [O

    From Lucas Nussbaum@21:1/5 to All on Tue May 13 21:30:19 2025
    XPost: linux.debian.maint.ocaml.maint

    Source: camlmix
    Version: 1.3.1-6
    Severity: minor
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-shuffle

    Hi,

    GNU Make now has a --shuffle option that simulates non-deterministic ordering of target prerequisites. See https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous work in Debian by Santiago Vila: https://people.debian.org/~sanvila/make-shuffle/

    This package fails to build with make --shuffle=random.
    This is likely to be caused by a missing dependency in
    debian/rules or an upstream Makefile.

    More information about this mass bug filing is available at https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

    Relevant part (hopefully):
    make[3]: Entering directory '/build/reproducible-path/camlmix-1.3.1'
    making ._d/version.d from version.ml
    making ._d/directive.d from directive.ml
    making ._d/main.d from main.ml
    making ._d/lexer.d from lexer.ml
    making ._d/parser_directive.d from parser_directive.ml
    making ._ncdi/lexer.di from lexer.mli
    OCamlMakefile:929: warning: pattern recipe did not update peer target '._bcdi/lexer.di'.
    making ._ncdi/parser_directive.di from parser_directive.mli OCamlMakefile:929: warning: pattern recipe did not update peer target '._bcdi/parser_directive.di'.
    OCamlMakefile:845: update target 'lexer.cmi' due to: target does not exist pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' lexer.mli`; \
    if [ -z "$pp" ]; then \
    echo ocamlfind ocamlc -package camlp-streams \
    -c \
    lexer.mli; \
    ocamlfind ocamlc -package camlp-streams \
    -c \
    lexer.mli; \
    else \
    echo ocamlfind ocamlc -package camlp-streams \
    -c -pp \"$pp \" \
    lexer.mli; \
    ocamlfind ocamlc -package camlp-streams \
    -c -pp "$pp " \
    lexer.mli; \
    fi
    ocamlfind ocamlc -package camlp-streams -c lexer.mli
    OCamlMakefile:863: update target 'version.cmx' due to: target does not exist pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' version.ml`; \
    if [ -z "$pp" ]; then \
    echo ocamlfind ocamlopt -package camlp-streams \
    -c version.ml; \
    ocamlfind ocamlopt -package camlp-streams \
    -c version.ml; \
    else \
    echo ocamlfind ocamlopt -package camlp-streams \
    -c -pp \"$pp \" version.ml; \
    ocamlfind ocamlopt -package camlp-streams \
    -c -pp "$pp " version.ml; \
    fi
    ocamlfind ocamlopt -package camlp-streams -c version.ml
    OCamlMakefile:863: update target 'main.cmi' due to: target does not exist pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' main.ml`; \
    if [ -z "$pp" ]; then \
    echo ocamlfind ocamlopt -package camlp-streams \
    -c main.ml; \
    ocamlfind ocamlopt -package camlp-streams \
    -c main.ml; \
    else \
    echo ocamlfind ocamlopt -package camlp-streams \
    -c -pp \"$pp \" main.ml; \
    ocamlfind ocamlopt -package camlp-streams \
    -c -pp "$pp " main.ml; \
    fi
    ocamlfind ocamlopt -package camlp-streams -c main.ml
    File "main.ml", line 179, characters 8-33:
    179 | (match Directive.find_directives parents loc s with
    ^^^^^^^^^^^^^^^^^^^^^^^^^
    Error: Unbound module "Directive"
    make[3]: *** [OCamlMakefile:863: main.cmi] Error 2 shuffle=3629079983


    The full build log is available from: http://qa-logs.debian.net/2025/05/05/shuffle/random/camlmix_1.3.1-6_unstable_random.log

    If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)