Your message dated Sun, 11 Sep 2016 17:27:24 +0000
with message-id <>
and subject line Bug#835055: fixed in diffoscope 60
has caused the Debian Bug report #835055,
regarding ghc test regression as provided .hi files are to tightly bound to the 
actual environment
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact

Debian Bug Tracking System
Contact with problems
--- Begin Message ---
Package: diffoscope

The GHC tests are too tightly bound to a very specific ghc version (in
this case ghc and the test will fail if the HI-version
mismatche (hi magic in this case is 33214052).
In such case the diffoscope internal will select a fallback
FilesystemComperator instead of the HiFile one.

Introduced in commit 867ecde1

This is particularly a problem for future packaging of a version outside
of debian (foreign distro) as this tests will always fail leading to an
un-packagable state.

Additionally I don't think that this is very practical in its nature
because of the way haskell compiled .hi files work. They contain hashes
of the used modules (like in this case System.Posix.Time and
If those values change, the test will fail again (where maybe even the
matching ghc is indeed installed).
Maybe it should be considered to do this diffoscope unit tests in a
different way (or drop it).


haskell1 = <<class 'diffoscope.comparators.binary.FilesystemFile'>

    def test_identification(haskell1):
>       assert isinstance(haskell1, HiFile)
E       assert isinstance(<<class
/home/anthraxx/Projects/external/diffoscope/tests/data/test1.hi>, HiFile)

tests/comparators/ AssertionError

differences = []

    def test_diff(differences):
        with open(data('haskell_expected_diff')) as f:
            expected_diff =
>       assert differences[0].unified_diff == expected_diff
E       IndexError: list index out of range

tests/comparators/ IndexError


--- End Message ---
--- Begin Message ---
Source: diffoscope
Source-Version: 60

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

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
Mattia Rizzolo <> (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

Hash: SHA512

Format: 1.8
Date: Sun, 11 Sep 2016 16:14:33 +0000
Source: diffoscope
Binary: diffoscope trydiffoscope
Architecture: source
Version: 60
Distribution: unstable
Urgency: medium
Maintainer: Reproducible builds folks 
Changed-By: Mattia Rizzolo <>
 diffoscope - in-depth comparison of files, archives, and directories
 trydiffoscope - in-depth comparison of files, archives, etc. 
Closes: 835055
 diffoscope (60) unstable; urgency=medium
   [ Chris Lamb ]
   * debian/rules:
     +  Run tests with python3-coverage and generate reports post-build.
   * CONTRIBUTING: Add PyPI reference.
   * Comparators:
     + Avoid ugly DRY violations in diffoscope.comparators.__init__ by
       dynamically importing classes via a single list.
     + git: Specify paths as strings as required since b7830b5cb.
     + elf:
       - Mask more warnings (eg. "readelf: Error: the dynamic segment offset" or
         "size exceeds the size of the file").
       - Specify string format arguments as logging function parameters, not
         using interpolation.
     + json: Correct behaviour of JSON comparator when file does not exist.
   * Presenters:
     + html:
       - Use html.escape over xml.sax.saxutils.escape.
       - Don't use unsafe cgi.escape method as its ``quote`` kwarg — which
         enables escaping of quotation marks — is False by default.
   * Code clean-up:
     + Tidy imports.
     + Split exceptions out into dedicated diffoscope.exc module.
     + Use try-except idiom instead of ``if`` in 
     + Prefer kwargs[x] = kwargs.pop(x, 'default') idiom over ``if`` statements.
   * tests:
     + Factor out ugly os.path.join to a utility method.
     + Drop unused try_except in tests/conftest.
     + Add GitIndex tests to bring coverage of comparators/ to 100%.
     + Add tests for Haskell comparator.
       - Skip Haskell tests if GHC is not installed.
       - Skip Haskell tests if GHC version does not match.  Closes: #835055
     + Add test in JSON comparator for non-existing files.
     + Rewrite lengthy "[..] skipIf [..] tool_missing" with a
       @skip_unless_tools_exist decorator.
     + Add tests for skip_unless_tools_exist helper.
     + Rename tests/comparators/ -> tests/comparators/
     + Avoid Don't-Repeat-Yourself violations by factoring out fixture loading.
     + Avoid more DRY violations by factoring-out non-existing file tests.
     + Remove some other unused imports from comparator tests.
     + Check rendering of text and HTML presenters when checking non-existing
     + Use `pytest.xfail` over `assert False`.
   [ Mattia Rizzolo ]
   * debian/control:
     + Reinstated build profiles, now that dh-python is fixed (see #834238).
     + Version the build-dependency on dh-python, so it supports build profiles.
     + Add more nocheck build profiles.
     + Bump dependencies on debhelper and dpkg-dev to assure build profile
       support is available.
     + Add Build-Dependency on fontforge-extras for showttf (run during tests)
     + Alternate Build-Dependency on default-jdk-headless|default-jdk, to ease
       backporting to older Debian releases.
   * debian/rules:
     + Don't install '/usr/lib/python3/dist-packages/.coverage'.
     + Run the basic-command-line test during package build.
     + Be even more verbose about failing tests.
     + Allow building a mismatching version between diffoscope and the debian
       changelog if the target distribution is UNRELEASED.
   * Comparators
     + ppu:
       - Unbreak ppu_version detection.
       - Put code out of the context manager, it doesn't need to be within.
   * trydiffoscope: add copyright/license header.
   * autopkgtest/basic-command-line:
     + Enable running basic-command-line test without ADTTMP being set.
     + Be a bit more verbose about what is being tested.
     + Also test return code when passing an invalid command line flag.
     + Force LC_ALL=C.UTF-8, so that diffoscope can always output something.
   * test:
     + Factor out a tools_missing() function.
     + Rewrite tool_older_than() into skip_unless_tool_is_older_than().
     + Skip if squashfs is too old.
     + Normalize xxd's output so that we can compare jessie's xxd with 
   * add default-jdk to the alternate packages for javap for Debian;
     default-jdk-headless is not available in older Debian releases.
   [ Satyam Zode ]
   * Ignore differences in .buildinfo if all the other files listed in .changes
     are identical.  In those cases any differences in .buildinfo files are
     irrelevant, and are actually a feature (as it indicates two reproducible
     builds with different environment).
   [ Jérémy Bobbio ]
   * Properly skip tests requiring python-debian when unavailable.
   [ Ximin Luo ]
   * Show the timestamp when logging, to detect which steps take longer.
   * Add a --no-max flag to disable all limits.
   * Have --max-report-size honour 0 to mean "no limit".
   * Comparators:
     + cbfs: only scan whole file when the filename ends with ".rom".
     + binary: Suppress decimal line numbers for xxd output.
   * Increase default --max-diff-input-lines to 2^20 (1048576) from 100000.
   * Rename --no-max-limits to --no-default-limits, a more accurate name.
   * presenters/html: html-dir output:
     + Split large diffs across several child pages.
       Also add some flags so html-dir behaviour is easier to reason about.
     + Use 4 times the given --max-diff-block-lines.
       This way, '--html x.html --html-dir y' gives reasonable output for both.
   * difference:
     + Fix behaviour for max-diff-block-limit=1 and don't report when 0 lines
       are removed.
     + Don't truncate diff output by default, instead add a separate flag
       --max-diff-block-lines-saved (infinite by default) to do so.
 7e731a81709a4d6ecf43354299b867abd853834d 2827 diffoscope_60.dsc
 508f1ffca925f5e463992a7863e3bda410c043cc 310588 diffoscope_60.tar.xz
 4cce0729e0b2f8b747e7d03286035ce03ce4d312a3dc59d38769acaf25c60a61 2827 
 1cfb8fd0cbf6030bca432e044799719c3ca30e8bcd2a81a22eeea1a02a316ac2 310588 
 46638ff5eed957c2a2d720436f973749 2827 devel optional diffoscope_60.dsc
 447a9be43ba6003ac83e3e53cb636814 310588 devel optional diffoscope_60.tar.xz



--- End Message ---
Reproducible-builds mailing list

Reply via email to