Bug#925136: help2man: FTBFS in unstable (dh_clean fails)
On Fri, Mar 22, 2019 at 05:42:37PM +0100, Sven Joachim wrote: >On 2019-03-21 20:45 +1100, Brendan O'Dea wrote: >> I suspect that it is related to reproducible builds, [...] >There has indeed been such a change in dpkg-source: > >, >| - Generate reproducible source tarballs by using the new GNU tar >| --clamp-mtime option in Dpkg::Source::Archive, to make sure no file >| in source packages has an mtime later than the changelog entry time. >` > >However, that was in version 1.18.10, uploaded July 2016. > >It seems that in previous versions of help2man help2man.PL was older >than debian/changelog, so you did not hit the problem. Ah thanks. I assumed that this was more recent. Looking at some previous source packages, the max date is indeed clamped, but it just so happened that I updated the version in help2man.PL before making the changelog entry so didn't trip over this. Incidentally, I'm slightly puzzled at this behaviour for native packages. Under what circumstances would the source tar ball for a released package be re-built without changing the version? >> I'll try to find a way to revise this check that will be more robust to this >> kind of timestamp modification. Somewhat annoyingly, the "test" builtin has >> -nt and -ot options, but no way to test that timestamps are newer or equal >> (or >> even just equal). > >A negated test with the -ot option might help: > > ! test README -ot help2man.PL # maintainer sanity check Thanks, good suggestion but rather ungainly. I've cooked up a different solution for the next release which doens't depend on the mtimes. --bod
Bug#925136: help2man: FTBFS in unstable (dh_clean fails)
On 2019-03-21 20:45 +1100, Brendan O'Dea wrote: > On Wed, Mar 20, 2019 at 10:21:39AM +0100, Gianfranco Costamagna wrote: >>Looks like README needs a newer timestamp wrt help2man.PL file? > [...] >>dpkg-buildpackage: info: host architecture amd64 >> fakeroot debian/rules clean >>test README -nt help2man.PL # maintainer sanity check >>make: *** [debian/rules:40: clean] Error 1 > > Well this is odd, it seems that there has been a change in dpkg-source which > breaks this particular sanity check (intended to ensure that I've run the > maint-prep step since updating the version in help2man.PL). > > I suspect that it is related to reproducible builds, since the timestamps that > ended up in the tarball have been changed to the changlog timestamp (in fact > there are no files in the tarball with later dates). There has indeed been such a change in dpkg-source: , | - Generate reproducible source tarballs by using the new GNU tar | --clamp-mtime option in Dpkg::Source::Archive, to make sure no file | in source packages has an mtime later than the changelog entry time. ` However, that was in version 1.18.10, uploaded July 2016. It seems that in previous versions of help2man help2man.PL was older than debian/changelog, so you did not hit the problem. > ~/debian/help2man-1.47.9 $ ls -l README help2man.PL > -rw-r--r-- 1 bodbod 540 2019-03-18 19:16 README > -rwxr-xr-x 1 bodbod 23166 2019-03-18 19:13 help2man.PL > ~/debian/help2man-1.47.9 $ tar tvJf ../help2man-1.47.9.tar.xz > help2man-1.47.9/README help2man-1.47.9/help2man.PL > -rw-r--r-- 0/0 540 2019-03-18 19:10 help2man-1.47.9/README > -rwxr-xr-x 0/0 23166 2019-03-18 19:10 help2man-1.47.9/help2man.PL > ~/debian/help2man-1.47.9 $ dpkg-parsechangelog -S Date > Mon, 18 Mar 2019 19:10:35 +1100 > > I'll try to find a way to revise this check that will be more robust to this > kind of timestamp modification. Somewhat annoyingly, the "test" builtin has > -nt and -ot options, but no way to test that timestamps are newer or equal (or > even just equal). A negated test with the -ot option might help: ! test README -ot help2man.PL # maintainer sanity check Cheers, Sven
Bug#925136: help2man: FTBFS in unstable (dh_clean fails)
On Wed, Mar 20, 2019 at 10:21:39AM +0100, Gianfranco Costamagna wrote: >Looks like README needs a newer timestamp wrt help2man.PL file? [...] >dpkg-buildpackage: info: host architecture amd64 > fakeroot debian/rules clean >test README -nt help2man.PL # maintainer sanity check >make: *** [debian/rules:40: clean] Error 1 Well this is odd, it seems that there has been a change in dpkg-source which breaks this particular sanity check (intended to ensure that I've run the maint-prep step since updating the version in help2man.PL). I suspect that it is related to reproducible builds, since the timestamps that ended up in the tarball have been changed to the changlog timestamp (in fact there are no files in the tarball with later dates). ~/debian/help2man-1.47.9 $ ls -l README help2man.PL -rw-r--r-- 1 bodbod 540 2019-03-18 19:16 README -rwxr-xr-x 1 bodbod 23166 2019-03-18 19:13 help2man.PL ~/debian/help2man-1.47.9 $ tar tvJf ../help2man-1.47.9.tar.xz help2man-1.47.9/README help2man-1.47.9/help2man.PL -rw-r--r-- 0/0 540 2019-03-18 19:10 help2man-1.47.9/README -rwxr-xr-x 0/0 23166 2019-03-18 19:10 help2man-1.47.9/help2man.PL ~/debian/help2man-1.47.9 $ dpkg-parsechangelog -S Date Mon, 18 Mar 2019 19:10:35 +1100 I'll try to find a way to revise this check that will be more robust to this kind of timestamp modification. Somewhat annoyingly, the "test" builtin has -nt and -ot options, but no way to test that timestamps are newer or equal (or even just equal). --bod
Bug#925136: help2man: FTBFS in unstable (dh_clean fails)
Package: help2man Version: 1.47.9 Severity: serious Looks like README needs a newer timestamp wrt help2man.PL file? APT_CONFIG=/var/lib/sbuild/apt.conf DEB_BUILD_OPTIONS=parallel=4 HOME=/sbuild-nonexistent LC_ALL=POSIX LOGNAME=buildd PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games SCHROOT_ALIAS_NAME=sid-amd64-sbuild SCHROOT_CHROOT_NAME=sid-amd64-sbuild SCHROOT_COMMAND=env SCHROOT_GID=1009 SCHROOT_GROUP=buildd SCHROOT_SESSION_ID=sid-amd64-sbuild-f190c122-7391-4aaa-be5e-e45efc144c1c SCHROOT_UID=2952 SCHROOT_USER=buildd SHELL=/bin/sh USER=buildd XDG_RUNTIME_DIR=/run/user/2952 XDG_SESSION_ID=2 dpkg-buildpackage - dpkg-buildpackage: info: source package help2man dpkg-buildpackage: info: source version 1.47.9 dpkg-buildpackage: info: source distribution unstable dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 fakeroot debian/rules clean test README -nt help2man.PL # maintainer sanity check make: *** [debian/rules:40: clean] Error 1 dpkg-buildpackage: error: fakeroot debian/rules clean subprocess returned exit status 2 Build finished at 2019-03-18T08:59:52Z Finished Gianfranco