#1047860 mle: Fails to build source after successful build

Package:
src:mle
Source:
src:mle
Submitter:
Lucas Nussbaum
Date:
2026-05-09 21:17:02 UTC
Severity:
normal
Tags:
#1047860#5
Date:
2023-08-13 19:20:59 UTC
From:
To:
Hi,

This package fails to build a source package after a successful build
(dpkg-buildpackage ; dpkg-buildpackage -S).

This is probably a clear violation of Debian Policy section 4.9 (clean target),
but this is filed as severity:minor for now, because a discussion on
debian-devel showed that we might want to revisit the requirement of a working
'clean' target.

More information about this class of issues, included common problems and
solutions, is available at
https://wiki.debian.org/qa.debian.org/FTBFS/SourceAfterBuild

Relevant part of the build log:
The full build log is available from:
http://qa-logs.debian.net/2023/08/13/mle_1.7.2-1_unstable.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

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.

#1047860#10
Date:
2023-08-14 00:25:01 UTC
From:
To:
https://github.com/adsr/mle/commit/4f625ea71b9f3184b048eacacbe3ca5440020f12

Details:

I tracked this down to `exists_make_target` in
`lib/Debian/Debhelper/Buildsystem/makefile.pm` which doesn't think
"clean" is a valid target because it sees "No rule to make target" in
dry-run output of `make clean`. The rule does exist, however it also
invokes "clean" on `vendor/Makefile`, which is where that error output
is coming from. (Interesting to note that `make` will invoke sub-make
commands even in dry-run mode.) The error output is a result of git
submodules missing. (The source tree is optimized for building against
submodules so users doing a git checkout don't have to install
anything.) I had tried hedging against this by ignoring failures in
that make rule, but per the in-line docs of `exists_make_target`, it
has to rely on parsing stdout instead of exit codes.

I confirmed adding an `override_dh_auto_clean` rule with a plain `make
clean` fixes. However I think it's a smidge cleaner to avoid running
that sub-clean command altogether if the Makefile doesn't exist.

Adam