Package: src:diffoscope; Maintainer for src:diffoscope is Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>;
Reported by: Paul Gevers <elbrus@debian.org>
Date: Tue, 15 Nov 2022 20:36:02 UTC
Severity: serious
Found in version diffoscope/226
Fixed in version diffoscope/227
Done: Chris Lamb <lamby@debian.org>
Bug is archived. No further changes may be made.
View this report as an mbox folder, status mbox, maintainer mbox
Report forwarded
to debian-bugs-dist@lists.debian.org, Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>:
Bug#1024171; Package src:diffoscope.
(Tue, 15 Nov 2022 20:36:04 GMT) (full text, mbox, link).
Acknowledgement sent
to Paul Gevers <elbrus@debian.org>:
New Bug report received and forwarded. Copy sent to Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>.
(Tue, 15 Nov 2022 20:36:05 GMT) (full text, mbox, link).
Message #5 received at submit@bugs.debian.org (full text, mbox, reply):
[Message part 1 (text/plain, inline)]
Source: diffoscope
Version: 226
Severity: serious
User: debian-ci@lists.debian.org
Usertags: regression
Dear maintainer(s),
With a recent upload of diffoscope the autopkgtest of diffoscope fails
in testing when that autopkgtest is run with the binary packages of
diffoscope from unstable. It passes when run with only packages from
testing. In tabular form:
pass fail
diffoscope from testing 226
versioned deps [0] from testing from unstable
all others from testing from testing
I copied some of the output at the bottom of this report.
Currently this regression is blocking the migration to testing [1]. Can
you please investigate the situation and fix it?
More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation
Paul
[0] You can see what packages were added from the second line of the log
file quoted below. The migration software adds source package from
unstable to the list if they are needed to install packages from
diffoscope/226. I.e. due to versioned dependencies or breaks/conflicts.
[1] https://qa.debian.org/excuses.php?package=diffoscope
https://ci.debian.net/data/autopkgtest/testing/amd64/d/diffoscope/28319467/log.gz
=================================== FAILURES
===================================
_____________________________ test_no_differences
______________________________
self = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
other = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
source = None
def compare(self, other, source=None):
difference = super().compare(other, source)
# Show text-only differences as a sub-diff.
try:
> text = Difference.from_operation(Htmltotext, self.path, other.path)
__class__ = <class 'diffoscope.comparators.html.HtmlFile'>
difference = None
other = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
self = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
source = None
/usr/lib/python3/dist-packages/diffoscope/comparators/html.py:44: _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
klass = <class 'diffoscope.comparators.html.Htmltotext'>
path1 =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
path2 =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
args = (), kwargs = {}
@staticmethod
def from_operation(klass, path1, path2, *args, **kwargs):
> return Difference.from_operation_exc(
klass, path1, path2, *args, **kwargs
)[0]
args = ()
klass = <class 'diffoscope.comparators.html.Htmltotext'>
kwargs = {}
path1 =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
path2 =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
/usr/lib/python3/dist-packages/diffoscope/difference.py:267: _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
klass = <class 'diffoscope.comparators.html.Htmltotext'>
path1 =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
path2 =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
args = (), kwargs = {}, ignore_returncodes = ()
operation_and_feeder = <function
Difference.from_operation_exc.<locals>.operation_and_feeder at
0x7f3447054a60>
@staticmethod
def from_operation_exc(klass, path1, path2, *args, **kwargs):
operation_args = kwargs.pop("operation_args", [])
ignore_returncodes = kwargs.pop("ignore_returncodes", ())
def operation_and_feeder(path):
operation = None
if path == "/dev/null":
feeder = feeders.empty()
else:
operation = klass(path, *operation_args)
feeder = feeders.from_operation(operation)
if operation_excluded(operation.full_name()):
return None, None, True
operation.start()
return feeder, operation, False
> feeder1, operation1, excluded1 = operation_and_feeder(path1)
args = ()
ignore_returncodes = ()
klass = <class 'diffoscope.comparators.html.Htmltotext'>
kwargs = {}
operation_and_feeder = <function
Difference.from_operation_exc.<locals>.operation_and_feeder at
0x7f3447054a60>
operation_args = []
path1 =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
path2 =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
/usr/lib/python3/dist-packages/diffoscope/difference.py:288: _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
path =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
def operation_and_feeder(path):
operation = None
if path == "/dev/null":
feeder = feeders.empty()
else:
operation = klass(path, *operation_args)
feeder = feeders.from_operation(operation)
> if operation_excluded(operation.full_name()):
feeder = <function from_operation.<locals>.feeder at 0x7f3447056e60>
klass = <class 'diffoscope.comparators.html.Htmltotext'>
operation = <diffoscope.comparators.html.Htmltotext object at
0x7f344d280a00>
operation_args = []
path =
'/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html'
/usr/lib/python3/dist-packages/diffoscope/difference.py:283: _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <diffoscope.comparators.html.Htmltotext object at 0x7f344d280a00>
args = ()
kwargs = {'replace':
('/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html',)}
def full_name(self, *args, **kwargs):
kwargs.setdefault("replace", (self.path,))
> return format_cmdline(self.cmdline(), *args, **kwargs)
args = ()
kwargs = {'replace':
('/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html',)}
self = <diffoscope.comparators.html.Htmltotext object at
0x7f344d280a00>
/usr/lib/python3/dist-packages/diffoscope/comparators/utils/command.py:71:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _
args = (<diffoscope.comparators.html.Htmltotext object at 0x7f344d280a00>,)
kwargs = {}
@functools.wraps(fn)
def tool_check(*args, **kwargs):
"""
Due to the way decorators are executed at import-time we defer the
execution of `find_executable` until we actually run the decorated
function (instead of prematurely returning a different version of
`tool_check`).
This ensures that any os.environ['PATH'] modifications are
performed prior to the `find_executable` tests.
"""
if not tool_check_installed(command):
> raise RequiredToolNotFound(command)
E diffoscope.exc.RequiredToolNotFound
RequiredToolNotFound = <class 'diffoscope.exc.RequiredToolNotFound'>
args = (<diffoscope.comparators.html.Htmltotext object at
0x7f344d280a00>,)
command = 'html2text'
fn = <function Htmltotext.cmdline at 0x7f344d4629e0>
kwargs = {}
/usr/lib/python3/dist-packages/diffoscope/tools.py:137: RequiredToolNotFound
During handling of the above exception, another exception occurred:
html1 = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
def test_no_differences(html1):
> assert html1.compare(html1) is None
html1 = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
tests/comparators/test_html.py:36: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
other = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
source = None
def compare(self, other, source=None):
difference = super().compare(other, source)
# Show text-only differences as a sub-diff.
try:
text = Difference.from_operation(Htmltotext, self.path,
other.path)
if text is not None:
difference.add_details([text])
except RequiredToolNotFound as exc: # noqa
> difference.add_comment(exc.get_comment())
E AttributeError: 'NoneType' object has no attribute 'add_comment'
__class__ = <class 'diffoscope.comparators.html.HtmlFile'>
difference = None
other = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
self = <<class 'abc.HtmlFile'>
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html>
source = None
/usr/lib/python3/dist-packages/diffoscope/comparators/html.py:48:
AttributeError
__________________________________ test_diff
___________________________________
differences = <Difference
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html
--
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test2.html
[]>
def test_diff(differences):
assert_diff(differences, "html_expected_diff")
> assert_diff(differences.details[0], "html_text_expected_diff")
E IndexError: list index out of range
differences = <Difference
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test1.html
--
/tmp/autopkgtest-lxc.0soup5pu/downtmp/autopkgtest_tmp/tests/data/test2.html
[]>
tests/comparators/test_html.py:46: IndexError
[OpenPGP_signature (application/pgp-signature, attachment)]
Reply sent
to Chris Lamb <lamby@debian.org>:
You have taken responsibility.
(Fri, 18 Nov 2022 10:21:06 GMT) (full text, mbox, link).
Notification sent
to Paul Gevers <elbrus@debian.org>:
Bug acknowledged by developer.
(Fri, 18 Nov 2022 10:21:07 GMT) (full text, mbox, link).
Message #10 received at 1024171-close@bugs.debian.org (full text, mbox, reply):
Source: diffoscope
Source-Version: 227
Done: Chris Lamb <lamby@debian.org>
We believe that the bug you reported is fixed in the latest version of
diffoscope, which is due to be installed in the Debian FTP archive.
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to 1024171@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Chris Lamb <lamby@debian.org> (supplier of updated diffoscope package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Format: 1.8
Date: Fri, 18 Nov 2022 09:38:34 +0000
Source: diffoscope
Architecture: source
Version: 227
Distribution: unstable
Urgency: medium
Maintainer: Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>
Changed-By: Chris Lamb <lamby@debian.org>
Closes: 1024171 1024335 1024349
Changes:
diffoscope (227) unstable; urgency=medium
.
[ Chris Lamb ]
* Don't attempt to attach text-only differences notice if there are no
differences to begin with. (Closes: #1024171, #1024349)
* Don't run Python decompiling tests on Python bytecode that both file(1)
cannot yet detect and Python 3.11 cannot demarshall. (Closes: #1024335)
Checksums-Sha1:
73337602206196f4f68165b3faaf202a77857c0e 5091 diffoscope_227.dsc
9ea37c20f9f21cf763ca3ca447766c6ecb31eaab 2442296 diffoscope_227.tar.xz
30a6aa729c7d965699cb108048e6bce10a934c97 31437 diffoscope_227_amd64.buildinfo
Checksums-Sha256:
c4d2976e488b4bbc1113edb517a5347854aae81b1fcaa2d50905314a6e80349f 5091 diffoscope_227.dsc
4b3efb5b13a92642860752754b3cf28e84886696ae999231d46b35d68a299724 2442296 diffoscope_227.tar.xz
45081f5a2ab63f5b214a487582c7b546a9ecf02394558bea30ed602ba2069da8 31437 diffoscope_227_amd64.buildinfo
Files:
7c5f28172d6c877498016bf0aac56050 5091 devel optional diffoscope_227.dsc
aa428e08e40acdc856fe466e713af57b 2442296 devel optional diffoscope_227.tar.xz
c249da91b601c6604cd413d2d918f30c 31437 devel optional diffoscope_227_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCAAdFiEEwv5L0nHBObhsUz5GHpU+J9QxHlgFAmN3WA8ACgkQHpU+J9Qx
HlhNMA//UfJhlgzfyd2gdJV4+FrTfYCuak+RWoHz4Y1BZvVxO/k4EonEUw53U6yY
WT88TDdAymaX4rN1wU5bhybrzy1uTUT18p0yfruwcOog8T1IE4gmvA3vf483lGVC
facI5rmiDs/C+iJ9KWWsbAHZFDvT7eSDtT0wQVCCbjZlEBbboxISdVHPfA5wHZeg
UMmGO3XAThJpPNV/v+WD5Cc+Er4lQtRTH7YZNen5Y4mBbqfsgnH+CK+DBj58DJ7Q
x+mD8Sq2YQFeud4XZ+aVclP/ZP6huNBCoTkS1ZkOjTW5yUZlHdekCf5yC9yZ2AXW
F0FLpDr5D9/ISER7cEn6DZOuEVGWTpqViBrF3kevl9rdIgq/WPjYVYRQRPYFcjAD
RsaFE5ZuiZu3Jt7YnOQPaFaPf4KYK/uT0m4+d06qH8+mFnAXtMW58cSmuLjIc6hs
gHJziN46dIc2YYXpSl1Yjl8HtGSq24z9pHi6plxOHwoHM7hgcPf74gWFHoN/dOy8
HWACMR8xi8E/Yhxn4g0k0n0RWmAk5uEetrVJ7E5/b6fD1J7+PLFzjiRPhDaPentX
YKL0rxjXoIKI/6MYcINvkUi7mEPo0h1XNDSssrNlZFh1wy3hTkqbLY9/2Gg8P3rH
owd8Yh1KY0ZiCR7kKRZo8GtexAfNLAWxtY379xOSYnAacSRsCwA=
=JBb3
-----END PGP SIGNATURE-----
Bug archived.
Request was from Debbugs Internal Request <owner@bugs.debian.org>
to internal_control@bugs.debian.org.
(Sat, 17 Dec 2022 07:29:20 GMT) (full text, mbox, link).
Send a report that this bug log contains spam.
Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.
Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.