• Bug#1048312: pxp: Fails to build source after successful build

    From Lucas Nussbaum@21:1/5 to All on Mon Aug 14 01:50:02 2023
    XPost: linux.debian.bugs.dist

    Source: pxp
    Version: 1.2.9-3
    Severity: minor
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-sab-20230813 ftbfs-source-after-build
    User: debian-qa@lists.debian.org
    Usertags: qa-doublebuild

    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:
    cd /<<PKGBUILDDIR>> && runuser -u user42 -- dpkg-buildpackage --sanitize-env -us -uc -rfakeroot -S
    -------------------------------------------------------------------------------------------------------------

    dpkg-buildpackage: info: source package pxp
    dpkg-buildpackage: info: source version 1.2.9-3
    dpkg-buildpackage: info: source distribution unstable
    dpkg-buildpackage: info: source changed by Stéphane Glondu <glondu@debian.org>
    dpkg-source --before-build .
    debian/rules clean
    dh clean --with ocaml
    dh_auto_clean
    make -j8 distclean
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    make -C tools CLEAN
    make[2]: Entering directory '/<<PKGBUILDDIR>>/tools'
    rm -f m2parsergen ucs2_to_utf8 lexpp
    make -C src CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/tools/src'
    make -C m2parsergen CLEAN
    make[4]: Entering directory '/<<PKGBUILDDIR>>/tools/src/m2parsergen'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa lexer.ml parser.ml parser.mli
    rm -f depend m2parsergen a.out x.ml
    make[4]: Leaving directory '/<<PKGBUILDDIR>>/tools/src/m2parsergen'
    make -C lexpp CLEAN
    make[4]: Entering directory '/<<PKGBUILDDIR>>/tools/src/lexpp'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa uni_lexer.ml uni_parser.ml uni_parser.mli \
    mll_lexer.ml \
    lexpp depend
    make[4]: Leaving directory '/<<PKGBUILDDIR>>/tools/src/lexpp'
    make -C odoc CLEAN
    make[4]: Entering directory '/<<PKGBUILDDIR>>/tools/src/odoc'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa chtml.ml
    make[4]: Leaving directory '/<<PKGBUILDDIR>>/tools/src/odoc'
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/tools/src'
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/tools'
    make -C src CLEAN
    make[2]: Entering directory '/<<PKGBUILDDIR>>/src'
    make -C pxp CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/src/pxp'
    make[3]: Nothing to be done for 'CLEAN'.
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/pxp'
    make -C pxp-engine CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/src/pxp-engine'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa pxp_core_parser.ml pxp_lib.ml pxp_lexing.ml
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/pxp-engine'
    make -C pxp-pp CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/src/pxp-pp'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/pxp-pp'
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/src'
    for dir in gensrc/pxp-*; do make -C $dir CLEAN || true; done
    make[2]: Entering directory '/<<PKGBUILDDIR>>/gensrc/pxp-lex-pattern' make[2]: Nothing to be done for 'CLEAN'.
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/gensrc/pxp-lex-pattern'
    make[2]: Entering directory '/<<PKGBUILDDIR>>/gensrc/pxp-ulex-utf8'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa *.ml *.mll gen_done
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/gensrc/pxp-ulex-utf8'
    make[2]: Entering directory '/<<PKGBUILDDIR>>/gensrc/pxp-wlex'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/gensrc/pxp-wlex'
    make[2]: Entering directory '/<<PKGBUILDDIR>>/gensrc/pxp-wlex-utf8'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa *.ml *.mll gen_done
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/gensrc/pxp-wlex-utf8'
    make -C examples CLEAN
    make[2]: Entering directory '/<<PKGBUILDDIR>>/examples'
    make -C xmlforms CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/xmlforms'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    make -C styles CLEAN
    make[4]: Entering directory '/<<PKGBUILDDIR>>/examples/xmlforms/styles' make[4]: Nothing to be done for 'CLEAN'.
    make[4]: Leaving directory '/<<PKGBUILDDIR>>/examples/xmlforms/styles' make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/xmlforms'
    make -C validate CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/validate'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/validate'
    make -C readme CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/readme'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/readme'
    make -C simple_transformation CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/simple_transformation' rm -f *.cmo *.cma *.cmi *.cmxa *.a *.o
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/simple_transformation' make -C namespaces CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/namespaces'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/namespaces'
    make -C eventparser CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/eventparser'
    rm -rf *.cmi *.cmo *.cma exprlex.ml expr.ml
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/eventparser'
    make -C pullparser CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/pullparser'
    rm -rf *.cmi *.cmo *.cma
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/pullparser'
    make -C xhtml2html CLEAN
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/xhtml2html'
    rm -f *.cmi *.cmo
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/xhtml2html'
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/examples'
    make -C rtests CLEAN
    make[2]: Entering directory '/<<PKGBUILDDIR>>/rtests'
    rm -f *.cmi *.cmo *.cma *.cmx *.cmxa toploop.*
    make -C reader clean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/reader'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa minilex.ml
    rm -f test_reader test_rewritten_reader
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/reader'
    make -C write clean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/write'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa out1 out2 out3
    rm -f test_write test_namespace
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/write'
    make -C codewriter clean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/codewriter'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa sample sample.ml out1 out2
    rm -f *.d1 *.d2 *.d3 *.out *.out1 *.out2
    rm -f compile marshal_simple marshal_namespace marshal_recode
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/codewriter'
    make -C canonxml clean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/canonxml'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa out.xml
    rm -f test_canonxml
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/canonxml'
    make -C negative clean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/negative'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa current.out
    rm -f test_negative
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/negative'
    make -C dynamic clean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/dynamic'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa out.xml
    rm -f create_element modify strip
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/dynamic'
    make -C lex clean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/lex'
    rm -rf test_lex_utf8 *.cmo *.cmi
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/lex'
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/rtests'
    rm -f .testscript .testout
    rm -f *~ Makefile.conf
    make -C tools distclean
    make[2]: Entering directory '/<<PKGBUILDDIR>>/tools'
    rm -f m2parsergen ucs2_to_utf8 lexpp
    make -C src distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/tools/src'
    make -C m2parsergen distclean
    make[4]: Entering directory '/<<PKGBUILDDIR>>/tools/src/m2parsergen'
    ocamllex lexer.mll
    43 states, 449 transitions, table size 2054 bytes
    ocamlyacc parser.mly
    ocamldep ast.ml lexer.ml parser.ml generator.ml >depend
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa lexer.ml parser.ml parser.mli
    rm -f depend m2parsergen a.out x.ml
    make[4]: Leaving directory '/<<PKGBUILDDIR>>/tools/src/m2parsergen'
    make -C lexpp distclean
    make[4]: Entering directory '/<<PKGBUILDDIR>>/tools/src/lexpp'
    ocamllex uni_lexer.mll
    25 states, 715 transitions, table size 3010 bytes
    ocamlyacc uni_parser.mly
    ocamllex mll_lexer.mll
    38 states, 693 transitions, table size 3000 bytes
    ocamldep lexpp_file.ml uni_lexer.ml uni_parser.ml uni_parser.mli uni_types.ml ucs2_to_utf8.ml main.ml mll_lexer.ml > depend
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa uni_lexer.ml uni_parser.ml uni_parser.mli \
    mll_lexer.ml \
    lexpp depend
    make[4]: Leaving directory '/<<PKGBUILDDIR>>/tools/src/lexpp'
    make -C odoc distclean
    make[4]: Entering directory '/<<PKGBUILDDIR>>/tools/src/odoc'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa chtml.ml
    make[4]: Leaving directory '/<<PKGBUILDDIR>>/tools/src/odoc'
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/tools/src'
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/tools'
    make -C src distclean
    make[2]: Entering directory '/<<PKGBUILDDIR>>/src'
    make -C pxp distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/src/pxp'
    rm -f META
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/pxp'
    make -C pxp-engine distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/src/pxp-engine'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa pxp_core_parser.ml pxp_lib.ml pxp_lexing.ml
    rm -f META depend
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/pxp-engine'
    make -C pxp-pp distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/src/pxp-pp'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    rm -f META depend
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/src/pxp-pp'
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/src'
    make -C examples distclean
    make[2]: Entering directory '/<<PKGBUILDDIR>>/examples'
    rm -f *~
    make -C xmlforms distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/xmlforms'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    rm -f *~ depend depend.pkg
    rm -f xmlforms xmlforms.opt
    make -C styles distclean
    make[4]: Entering directory '/<<PKGBUILDDIR>>/examples/xmlforms/styles'
    rm -f *~
    make[4]: Leaving directory '/<<PKGBUILDDIR>>/examples/xmlforms/styles' make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/xmlforms'
    make -C validate distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/validate'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    rm -f *~ Makefile.config
    rm -f pxpvalidate pxpvalidate.opt pxpvalidate.byte interpreter
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/validate'
    make -C readme distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/readme'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    rm -f *~ depend depend.pkg
    rm -f readme readme.opt
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/readme'
    make -C simple_transformation distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/simple_transformation' rm -f *.cmo *.cma *.cmi *.cmxa *.a *.o
    rm -f *~ print sort delcol
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/simple_transformation' make -C namespaces distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/namespaces'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    rm -f *~ depend depend.pkg
    rm -f preprocess preprocess.opt
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/namespaces'
    make -C eventparser distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/eventparser'
    rm -rf *.cmi *.cmo *.cma exprlex.ml expr.ml
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/eventparser'
    make -C pullparser distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/pullparser'
    rm -rf *.cmi *.cmo *.cma
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/pullparser'
    make -C xhtml2html distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/examples/xhtml2html'
    rm -f *.cmi *.cmo
    rm -f *~ xhtml2html
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/examples/xhtml2html'
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/examples'
    make -C rtests distclean
    make[2]: Entering directory '/<<PKGBUILDDIR>>/rtests'
    rm -f *.cmi *.cmo *.cma *.cmx *.cmxa toploop.*
    rm -f *~
    rm -f dumpfiles
    make -C reader distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/reader'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa minilex.ml
    rm -f test_reader test_rewritten_reader
    rm -f *~
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/reader'
    make -C write distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/write'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa out1 out2 out3
    rm -f test_write test_namespace
    rm -f *~
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/write'
    make -C codewriter distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/codewriter'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa sample sample.ml out1 out2
    rm -f *.d1 *.d2 *.d3 *.out *.out1 *.out2
    rm -f compile marshal_simple marshal_namespace marshal_recode
    rm -f *~
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/codewriter'
    make -C canonxml distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/canonxml'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa out.xml
    rm -f test_canonxml
    rm -f *~
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/canonxml'
    make -C negative distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/negative'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa current.out
    rm -f test_negative
    rm -f *~
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/negative'
    make -C dynamic distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/dynamic'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa out.xml
    rm -f create_element modify strip
    rm -f *~
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/dynamic'
    make -C lex distclean
    make[3]: Entering directory '/<<PKGBUILDDIR>>/rtests/lex'
    rm -rf test_lex_utf8 *.cmo *.cmi
    make[3]: Leaving directory '/<<PKGBUILDDIR>>/rtests/lex'
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/rtests'
    test ! -f doc/Makefile || make -C doc distclean
    for dir in gensrc/pxp-*; do if [ -f $dir/gen_dir ]; then rm -rf $dir; else make -C $dir distclean; fi; done
    make[2]: Entering directory '/<<PKGBUILDDIR>>/gensrc/pxp-lex-pattern' make[2]: Nothing to be done for 'distclean'.
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/gensrc/pxp-lex-pattern'
    make[2]: Entering directory '/<<PKGBUILDDIR>>/gensrc/pxp-ulex-utf8'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa META
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/gensrc/pxp-ulex-utf8'
    make[2]: Entering directory '/<<PKGBUILDDIR>>/gensrc/pxp-wlex'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa
    rm -f META
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/gensrc/pxp-wlex'
    make[2]: Entering directory '/<<PKGBUILDDIR>>/gensrc/pxp-wlex-utf8'
    rm -f *.cmi *.cmo *.cma *.cmx *.o *.a *.cmxa META
    make[2]: Leaving directory '/<<PKGBUILDDIR>>/gensrc/pxp-wlex-utf8'
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    dh_ocamlclean
    dh_clean
    dpkg-source -b .
    dpkg-source: info: using source format '3.0 (quilt)'
    dpkg-source: info: building pxp using existing ./pxp_1.2.9.orig.tar.gz dpkg-source: info: using patch list from debian/patches/series
    dpkg-source: warning: ignoring deletion of file README, use --include-removal to override
    dpkg-source: warning: ignoring deletion of file gensrc/pxp-wlex-utf8/gen_done, use --include-removal to override
    dpkg-source: info: local changes detected, the modified files are:
    pxp-1.2.9/setup.save
    pxp-1.2.9/src/pxp-pp/pxp_pp.ml
    dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/pxp_1.2.9-3.diff.qhqhmR
    dpkg-source: info: Hint: make sure the version in debian/changelog matches the unpacked source tree
    dpkg-source: info: you can integrate the local changes with dpkg-source --commit
    dpkg-buildpackage: error: dpkg-source -b . subprocess returned exit status 2

    E: Command 'cd /<<PKGBUILDDIR>> && runuser -u user42 -- dpkg-buildpackage --sanitize-env -us -uc -rfakeroot -S' failed to run.


    The full build log is available from: http://qa-logs.debian.net/2023/08/13/pxp_1.2.9-3_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.

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