Bug#965349: regression in dh_installchangelogs or dh_missing causes fatal error when installing upstream changelog from debian/tmp

2021-02-02 Thread Daniel Kahn Gillmor
Control: affects 965349 + src:faketime

On Mon 2020-07-20 12:56:33 -0400, Nicholas D Steeves wrote:
> dh_missing: warning: changelog exists in debian/tmp but is not installed to 
> anywhere
 […]
> I am explicitly installing it in rules with 'dh_installchangelogs
> debian/tmp/changelog' and have confirmed the file exists in each of the
> binary packages for both debhelper-compat 12 and 13.

fwiw, i'm running into a similar issue when packaging an updated version
faketime.

The source for faketime contains ./NEWS, but the "install" make target
also places the NEWS file into debian/tmp/usr/share/doc/faketime/NEWS

dh_installchangelogs installs the NEWS file as expected (in
/usr/share/doc/faketime/changelog.gz), but then dh_missing complains
that debian/tmp/usr/share/doc/faketime/NEWS isn't installed anywhere.

If i go ahead and add usr/share/doc/faketime/NEWS to
debian/libfaketime.docs to satisfy dh_missing, then i get a *different*
lintian warning:

W: libfaketime: duplicate-changelog-files usr/share/doc/libfaketime/NEWS.gz 
usr/share/doc/libfaketime/changelog.gz

i could add usr/share/doc/faketime/NEWS to debian/not-installed, but
that seems bogus too -- it *is* installed, but it's installed by
dh_installchangelogs.  (this is likely to be my near-term workaround,
ugly as it is)

Seems like dh_missing could:

 - observe the cryptographic digest of the file installed by
   dh_installchangelogs (maybe both as installed and decompressed)

 - for each potentially "missing" file:

   - digest it (possibly decompressing it first?) and compare it against
 the changelog digest(s).  if they match, skip it.

hope this is useful.  thanks a lot for all the work on dh and on
lintian.  they're both super helpful toolchains for kicking the
ecosystem into doing the Right Thing.

 --dkg


signature.asc
Description: PGP signature


Bug#965349: regression in dh_installchangelogs or dh_missing causes fatal error when installing upstream changelog from debian/tmp

2020-07-20 Thread Nicholas D Steeves
Hi Niels,

Thank you for the quick reply!

Niels Thykier  writes:

> Thanks for filing the bug.  I suspect that the reason that falling back
> to compat 12 works is because it downgrades the issue to a warning
> (compat 12 defaulting to --list-missing vs. compat 13 defaulting to
> --fail-missing).
>

You're right :-)

> Can you confirm that finding?  Because then it is probably just the new
> default and not a regression.
>
> Obviously, that still leaves finding a solution to the problem, but for
> starters lets confirm whether or not this is a regression.
>

Confirmed, the new default exposes what may be an old bug.

dh_missing: warning: changelog exists in debian/tmp but is not installed to 
anywhere
The following debhelper tools have reported what they installed (with 
files per package)
 * dh_elpa: elpa-counsel (2), elpa-ivy (4), elpa-ivy-hydra (1), 
elpa-swiper (1)
 * dh_installdocs: elpa-counsel (0), elpa-ivy (1), elpa-ivy-hydra (0), 
elpa-swiper (0)
If the missing files are installed by another tool, please file a bug 
against it.
When filing the report, if the tool is not part of debhelper itself, 
please reference the
"Logging helpers and dh_missing" section from the "PROGRAMMING" guide 
for debhelper (10.6.3+).
  (in the debhelper package: /usr/share/doc/debhelper/PROGRAMMING.gz)
Be sure to test with dpkg-buildpackage -A/-B as the results may vary 
when only a subset is built
If the omission is intentional or no other helper can take care of this 
consider adding the
paths to debian/not-installed.

I am explicitly installing it in rules with 'dh_installchangelogs
debian/tmp/changelog' and have confirmed the file exists in each of the
binary packages for both debhelper-compat 12 and 13.

Please let me know if there's anything else I can do to help.  I'm sorry
to say I never learned Perl.

Best,
Nicholas


signature.asc
Description: PGP signature


Bug#965349: regression in dh_installchangelogs or dh_missing causes fatal error when installing upstream changelog from debian/tmp

2020-07-20 Thread Niels Thykier
Nicholas D Steeves:
> Package: debhelper
> Version: 13.2
> Severity: normal
> 
> Steps to reproduce:
> 
> override_dh_installchangelogs:
> mkdir -p debian/tmp
> generate-or-convert-changelog-here >> debian/tmp/changelog
> dh_installchangelogs debian/tmp/changelog
> 
> Result:
> 
> dh_missing: warning: changelog exists in debian/tmp but is not installed 
> to anywhere 
> dh_missing: error: missing files, aborting
> 
> Meanwhile the upstream changelog has been correction installed to each
> of the debian/bin-pkg/u/s/doc/changelog.gz locations.  Debhelper 12
> was definitely good, and I'm not sure if the regression was introduced
> in 13, 13.1, or 13.2.
> 
> f3ce4ba3a5e2f9515b0ebe1940aed81ce9a92c49 looks like a possible culprit,
> but that's just a guess.
> 
> Falling back to debhelper-compat 12 avoids triggering this bug.  I
> hope noting this fact makes it easier to track down, because it means
> that the bug is in a branch specific to ≥ debhelper-compat 13.
> 
> Regards,
> Nicholas
> 

Hi Nicholas,

Thanks for filing the bug.  I suspect that the reason that falling back
to compat 12 works is because it downgrades the issue to a warning
(compat 12 defaulting to --list-missing vs. compat 13 defaulting to
--fail-missing).

Can you confirm that finding?  Because then it is probably just the new
default and not a regression.

Obviously, that still leaves finding a solution to the problem, but for
starters lets confirm whether or not this is a regression.

Thanks,
~Niels



Bug#965349: regression in dh_installchangelogs or dh_missing causes fatal error when installing upstream changelog from debian/tmp

2020-07-19 Thread Nicholas D Steeves
Package: debhelper
Version: 13.2
Severity: normal

Steps to reproduce:

override_dh_installchangelogs:
mkdir -p debian/tmp
generate-or-convert-changelog-here >> debian/tmp/changelog
dh_installchangelogs debian/tmp/changelog

Result:

dh_missing: warning: changelog exists in debian/tmp but is not installed to 
anywhere 
dh_missing: error: missing files, aborting

Meanwhile the upstream changelog has been correction installed to each
of the debian/bin-pkg/u/s/doc/changelog.gz locations.  Debhelper 12
was definitely good, and I'm not sure if the regression was introduced
in 13, 13.1, or 13.2.

f3ce4ba3a5e2f9515b0ebe1940aed81ce9a92c49 looks like a possible culprit,
but that's just a guess.

Falling back to debhelper-compat 12 avoids triggering this bug.  I
hope noting this fact makes it easier to track down, because it means
that the bug is in a branch specific to ≥ debhelper-compat 13.

Regards,
Nicholas