Bug#1049599: libtest-checkmanifest-perl: Fails to build binary packages again after successful build

Lucas Nussbaum lucas at debian.org
Wed Aug 16 08:42:49 BST 2023


Source: libtest-checkmanifest-perl
Version: 1.43-1
Severity: minor
Tags: trixie sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-binary-20230816 ftbfs-binary-after-build
User: debian-qa at lists.debian.org
Usertags: qa-doublebuild

Hi,

This package fails to do build a binary-only build (not source) after a
successful build (dpkg-buildpackage ; dpkg-buildpackage -b).

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/DoubleBuild

Relevant part of the build log:
> cd /<<PKGBUILDDIR>> && runuser -u user42 -- dpkg-buildpackage --sanitize-env -us -uc -rfakeroot -b
> ----------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> dpkg-buildpackage: info: source package libtest-checkmanifest-perl
> dpkg-buildpackage: info: source version 1.43-1
> dpkg-buildpackage: info: source distribution unstable
> dpkg-buildpackage: info: source changed by gregor herrmann <gregoa at debian.org>
>  dpkg-source --before-build .
> dpkg-buildpackage: info: host architecture amd64
>  debian/rules clean
> dh clean
>    dh_auto_clean
> 	make -j8 distclean
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> "/usr/bin/perl" "-MExtUtils::Manifest=fullcheck" -e fullcheck
> rm -f \
>   CheckManifest.bso CheckManifest.def \
>   CheckManifest.exp CheckManifest.x \
>    blib/arch/auto/Test/CheckManifest/extralibs.all \
>   blib/arch/auto/Test/CheckManifest/extralibs.ld Makefile.aperl \
>   *.a *.o \
>   *perl.core MYMETA.json \
>   MYMETA.yml blibdirs.ts \
>   core core.*perl.*.? \
>   core.[0-9] core.[0-9][0-9] \
>   core.[0-9][0-9][0-9] core.[0-9][0-9][0-9][0-9] \
>   core.[0-9][0-9][0-9][0-9][0-9] libCheckManifest.def \
>   mon.out perl \
>   perl perl.exe \
>   perlmain.c pm_to_blib \
>   pm_to_blib.ts so_locations \
>   tmon.out 
> rm -rf \
>   blib 
> mv Makefile Makefile.old > /dev/null 2>&1
> rm -f \
>   Makefile Makefile.old 
> rm -rf \
>   Test-CheckManifest-1.43 
> Not in MANIFEST: .pc/.quilt_patches
> Not in MANIFEST: .pc/.quilt_series
> Not in MANIFEST: .pc/.version
> Not in MANIFEST: .pc/applied-patches
> Not in MANIFEST: .pc/fix-tests.patch/t/01_selftest.t
> Not in MANIFEST: .pc/fix-tests.patch/t/extra/02_test_in_subdirectory.t
> Not in MANIFEST: .pc/fix-tests.patch/t/xt/02_issue1.t
> Not in MANIFEST: debian/.debhelper/generated/libtest-checkmanifest-perl/dh_installchangelogs.dch.trimmed
> Not in MANIFEST: debian/.debhelper/generated/libtest-checkmanifest-perl/installed-by-dh_installdocs
> Not in MANIFEST: debian/.debhelper/generated/libtest-checkmanifest-perl/installed-by-dh_installman
> Not in MANIFEST: debian/changelog
> Not in MANIFEST: debian/clean
> Not in MANIFEST: debian/control
> Not in MANIFEST: debian/copyright
> Not in MANIFEST: debian/debhelper-build-stamp
> Not in MANIFEST: debian/files
> Not in MANIFEST: debian/libtest-checkmanifest-perl.docs
> Not in MANIFEST: debian/libtest-checkmanifest-perl.substvars
> Not in MANIFEST: debian/libtest-checkmanifest-perl/DEBIAN/control
> Not in MANIFEST: debian/libtest-checkmanifest-perl/DEBIAN/md5sums
> Not in MANIFEST: debian/libtest-checkmanifest-perl/usr/share/doc/libtest-checkmanifest-perl/changelog.Debian.gz
> Not in MANIFEST: debian/libtest-checkmanifest-perl/usr/share/doc/libtest-checkmanifest-perl/changelog.gz
> Not in MANIFEST: debian/libtest-checkmanifest-perl/usr/share/doc/libtest-checkmanifest-perl/CONTRIBUTING.md
> Not in MANIFEST: debian/libtest-checkmanifest-perl/usr/share/doc/libtest-checkmanifest-perl/copyright
> Not in MANIFEST: debian/libtest-checkmanifest-perl/usr/share/man/man3/Test::CheckManifest.3pm.gz
> Not in MANIFEST: debian/libtest-checkmanifest-perl/usr/share/perl5/Test/CheckManifest.pm
> Not in MANIFEST: debian/patches/fix-tests.patch
> Not in MANIFEST: debian/patches/series
> Not in MANIFEST: debian/rules
> Not in MANIFEST: debian/source/format
> Not in MANIFEST: debian/tests/pkg-perl/SKIP
> Not in MANIFEST: debian/upstream/metadata
> Not in MANIFEST: debian/watch
> Not in MANIFEST: t/xt/A.txt
> Not in MANIFEST: t/xt/B.txt
> Not in MANIFEST: t/xt/MANIFEST
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>    dh_clean
>  debian/rules binary
> dh binary
>    dh_update_autotools_config
>    dh_autoreconf
>    dh_auto_configure
> 	/usr/bin/perl Makefile.PL INSTALLDIRS=vendor "OPTIMIZE=-g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2" "LD=x86_64-linux-gnu-gcc -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro"
> Warning: prerequisite Pod::Coverage::TrustPod 0 not found.
> Checking if your kit is complete...
> Looks good
> Generating a Unix-style Makefile
> Writing Makefile for Test::CheckManifest
> Writing MYMETA.yml and MYMETA.json
>    dh_auto_build
> 	make -j8
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> cp lib/Test/CheckManifest.pm blib/lib/Test/CheckManifest.pm
> Manifying 1 pod document
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>    dh_auto_test
> 	make -j8 test TEST_VERBOSE=1
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib/lib', 'blib/arch')" t/*.t t/extra/*.t t/xt/*.t
> t/00_load.t ........................ 
> 1..1
> ok 1 - use Test::CheckManifest;
> ok
> 
> #   Failed test 'Filter: \.(?:svn|git|build)'
> #   at /<<PKGBUILDDIR>>/blib/lib/Test/CheckManifest.pm line 191.
> #          got: 0
> #     expected: 1
> # The following files are not named in the MANIFEST file: /<<PKGBUILDDIR>>/t/xt/A.txt, /<<PKGBUILDDIR>>/t/xt/B.txt, /<<PKGBUILDDIR>>/t/xt/MANIFEST
> # MANIFEST: /<<PKGBUILDDIR>>/MANIFEST
> 
> #   Failed test 'filter OR exclude'
> #   at /<<PKGBUILDDIR>>/blib/lib/Test/CheckManifest.pm line 191.
> #          got: 0
> #     expected: 1
> # The following files are not named in the MANIFEST file: /<<PKGBUILDDIR>>/t/xt/A.txt, /<<PKGBUILDDIR>>/t/xt/B.txt, /<<PKGBUILDDIR>>/t/xt/MANIFEST
> # MANIFEST: /<<PKGBUILDDIR>>/MANIFEST
> 
> #   Failed test 'Filter \.git or \.svn'
> #   at /<<PKGBUILDDIR>>/blib/lib/Test/CheckManifest.pm line 191.
> #          got: 0
> #     expected: 1
> # The following files are not named in the MANIFEST file: /<<PKGBUILDDIR>>/t/xt/A.txt, /<<PKGBUILDDIR>>/t/xt/B.txt, /<<PKGBUILDDIR>>/t/xt/MANIFEST
> # MANIFEST: /<<PKGBUILDDIR>>/MANIFEST
> # Looks like you failed 3 tests of 10.
> t/01_selftest.t .................... 
> 1..10
> ok 1 - expected: Manifest not ok
> not ok 2 - Filter: \.(?:svn|git|build)
> ok 3 - expected: Manifest not ok (Exclude /.git/)
> ok 4 - Filter: \.svn
> ok 5 - expected: Manifest not ok (Exclude /.git/) [2]
> ok 6 - expected: Manifest not ok (exclude OR filter)
> ok 7 - filter AND exclude
> ok 8 - filter OR exclude - test.svn is missing in MANIFEST
> not ok 9 - filter OR exclude
> not ok 10 - Filter \.git or \.svn
> Dubious, test returned 3 (wstat 768, 0x300)
> Failed 3/10 subtests 
> t/02_validate_args.t ............... 
> ok 1
> ok 2 - Empty Arrayref
> ok 3 - exclude => {}
> ok 4 - exclude => []
> ok 5 - exclude => "test"
> ok 6 - bool => {}
> ok 7 - bool => "or"
> ok 8 - bool => "and"
> ok 9 - bool => "1"
> ok 10 - filter -> arrayref
> ok 11 - filter -> empty hashref
> ok 12 - filter -> string
> ok 13 - filter -> no regex
> ok 14 - relative paths
> 1..14
> ok
> t/03_find_home.t ................... 
> ok 1
> ok 2 - tmp_path => $0
> ok 3 - file /<<PKGBUILDDIR>>/MANIFEST
> ok 4 - dir /<<PKGBUILDDIR>>
> 1..4
> ok
> t/04_check_excludes.t .............. 
> ok 1
> ok 2 - empty excludes
> ok 3 - t directory
> ok 4 - t directory - home: .
> ok 5 - t2 directory, that does not exist
> ok 6 - empty strings
> ok 7 - undef excluded path
> ok 8 - exclude is undef
> 1..8
> ok
> t/05_is_excluded.t ................. 
> ok 1
> ok 2 - META.yml
> ok 3 - meta, empty dirref
> ok 4 - meta, t/ directory
> ok 5 - this file
> ok 6 - this file, empty dirref
> ok 7 - this file, t/ dir
> ok 8 - this file, t/ dir, filter: 'excluded'
> ok 9 - this file, t/ dir, filter: 'excluded', bool => 'and'
> ok 10 - this file, t/ dir, filter: 'not_excluded'
> ok 11 - this file, t/ dir, filter: 'not_excluded', bool => 'and'
> ok 12 - this file, t/ dir, filter: 'excluded', bool => 'and', empty files_in_skip
> ok 13 - this file, t/ dir, filter: 'excluded', bool => 'and', skip this file
> ok 14 - <this_file>.bak, t/ dir, filter: 'excluded', bool => 'and', skip backup of this file
> ok 15 - /tmp/test, t/ dir, filter: 'excluded', bool => 'and', skip backup of this file
> ok 16 - /tmp/test, t/ dir, filter: 'excluded', bool => 'and', skip /test in /tmp
> ok 17 - /tmp/test, t/ dir, filter: 'excluded', bool => 'and', skip ^test in /tmp
> ok 18 - this file, t/ dir, filter: 'excluded', bool => 'and', skip backup of this file
> ok 19 - this file, t/ dir, filter: 'excluded', bool => 'and', wrong reftype files_in_skip
> ok 20 - this file, t/ dir, filter: 'excluded', bool => 'and'
> ok 21 - this file, t/ dir, filter: 'excluded', bool => 'or'
> ok 22 - this file, t/ dir, filter: 'excluded', bool => 'and', excluded
> ok 23 - this file, matched by files_in_skip with start of string anchor
> ok 24 - this file, not matched by files_in_skip because of leading slash
> 1..24
> ok
> # No files in MANIFEST found (is it readable?)
> t/06_bailout.t ..................... 
> 1..2
> ok 1
> ok 2
> ok
> t/07_is_in_dir.t ................... 
> ok 1
> ok 2 - /t/test.txt -> /t
> ok 3 - /t/sub/test.txt -> /t
> ok 4 - /t/test.txt -> /t2
> ok 5 -  -> /t2
> ok 6 - /t/test.txt -> 
> ok 7 - <undef> -> 
> ok 8 - <undef> -> /t
> ok 9 - <undef> -> <undef>
> ok 10 - /t/test.txt -> <undef>
> ok 11 -  -> <undef>
> ok 12 - /t/sub/ -> /t
> ok 13 - /t/sub/test -> /t/sub/
> ok 14 - /t/test -> /t/sub/
> ok 15 - t/07_is_in_dir.t -> t
> ok 16 - /<<PKGBUILDDIR>>/t/07_is_in_dir.t -> /<<PKGBUILDDIR>>/t
> 1..16
> ok
> t/08_check_manifest.t .............. 
> ok 1
> ok 2 - Test 0
> ok 3 - Test 1
> ok 4 - Test 2
> ok 5 - Test 3
> ok 6 - Test 4
> ok 7 - Test 5
> ok 8 - Test 6
> ok 9
> ok 10
> ok 11
> ok 12
> ok 13
> ok 14
> ok 15
> ok 16
> ok 17
> ok 18
> ok 19
> ok 20
> ok 21
> ok 22
> ok 23
> ok 24
> ok 25
> ok 26
> ok 27
> ok 28
> ok 29
> 1..29
> ok
> t/09_manifest_files.t .............. 
> ok 1
> ok 2
> 1..2
> ok
> t/author-pod-coverage.t ............ skipped: these tests are for testing by the author
> t/author-pod-syntax.t .............. skipped: these tests are for testing by the author
> 
> #   Failed test 'Filter: \.(?:svn|git)'
> #   at /<<PKGBUILDDIR>>/blib/lib/Test/CheckManifest.pm line 191.
> #          got: 0
> #     expected: 1
> # The following files are not named in the MANIFEST file: /<<PKGBUILDDIR>>/t/xt/A.txt, /<<PKGBUILDDIR>>/t/xt/B.txt, /<<PKGBUILDDIR>>/t/xt/MANIFEST
> # MANIFEST: /<<PKGBUILDDIR>>/MANIFEST
> # Looks like you failed 1 test of 1.
> t/extra/02_test_in_subdirectory.t .. 
> 1..1
> not ok 1 - Filter: \.(?:svn|git)
> Dubious, test returned 1 (wstat 256, 0x100)
> Failed 1/1 subtests 
> 
> #   Failed test at /<<PKGBUILDDIR>>/blib/lib/Test/CheckManifest.pm line 191.
> #          got: 0
> #     expected: 1
> # The following files are not named in the MANIFEST file: /<<PKGBUILDDIR>>/t/xt/A.txt, /<<PKGBUILDDIR>>/t/xt/B.txt, /<<PKGBUILDDIR>>/t/xt/MANIFEST
> # MANIFEST: /<<PKGBUILDDIR>>/MANIFEST
> # Looks like you failed 1 test of 1.
> t/xt/02_issue1.t ................... 
> 1..1
> not ok 1
> Dubious, test returned 1 (wstat 256, 0x100)
> Failed 1/1 subtests 
> t/xt/03_issue7.t ................... 
> 1..1
> ok 1
> ok
> 
> Test Summary Report
> -------------------
> t/01_selftest.t                  (Wstat: 768 (exited 3) Tests: 10 Failed: 3)
>   Failed tests:  2, 9-10
>   Non-zero exit status: 3
> t/extra/02_test_in_subdirectory.t (Wstat: 256 (exited 1) Tests: 1 Failed: 1)
>   Failed test:  1
>   Non-zero exit status: 1
> t/xt/02_issue1.t                 (Wstat: 256 (exited 1) Tests: 1 Failed: 1)
>   Failed test:  1
>   Non-zero exit status: 1
> Files=15, Tests=113,  1 wallclock secs ( 0.08 usr  0.04 sys +  0.79 cusr  0.13 csys =  1.04 CPU)
> Result: FAIL
> Failed 3/15 test programs. 5/113 subtests failed.
> make[1]: *** [Makefile:856: test_dynamic] Error 255
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
> dh_auto_test: error: make -j8 test TEST_VERBOSE=1 returned exit code 2
> make: *** [debian/rules:4: binary] Error 25
> dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
> 
> E: Command 'cd /<<PKGBUILDDIR>> && runuser -u user42 -- dpkg-buildpackage --sanitize-env -us -uc -rfakeroot -b' failed to run.


The full build log is available from:
http://qa-logs.debian.net/2023/08/16/libtest-checkmanifest-perl_1.43-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.



More information about the pkg-perl-maintainers mailing list