Your message dated Fri, 29 May 2020 09:23:23 +0100
with message-id <c9d045ce-2e2a-4817-9ee9-b74a521275c3@sloti26t01>
and subject line Re: diffoscope: improve .changes diffs
has caused the Debian Bug report #891867,
regarding diffoscope: improve .changes diffs
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 [email protected]
immediately.)


-- 
891867: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=891867
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: diffoscope
Version: 91
Severity: wishlist
Tags: patch

Hi awesome reproducible team!

I'm working on adding more build profiles and diffoscope + reproducible
builds turn out to be an awesome tool in validating that my profiles
only drop packages and never change package contents. :)

Now I've run into a strange corner case with diffing .changes files. If
the last entry in a Checksums-Sha256 field is removed, new last entry is
removed and added. For example:

├── Files
│ @@ -1,12 +1,8 @@
│  
│   a6434caf7853f0e84013e6004b934351 10496 debug optional 
cracklib-runtime-dbgsym_2.9.2-5.1_amd64.deb
│   93d547da959c0080bb45cc05d354539f 148972 admin optional 
cracklib-runtime_2.9.2-5.1_amd64.deb
│ - 608dbc69affb8158f7f203e3c83e5595 11084 libs optional 
cracklib2_2.9.2-5.1_amd64.buildinfo
│ + 1941a0fd2dbf8b3df8536caab1895993 9042 libs optional 
cracklib2_2.9.2-5.1_amd64.buildinfo
│   b2010c8e3498d469ae3b5bf5e5469da1 21416 debug optional 
libcrack2-dbgsym_2.9.2-5.1_amd64.deb
│   f099f5629a8b0cad9e5fba5ded9f88d9 32052 libdevel extra 
libcrack2-dev_2.9.2-5.1_amd64.deb
│   e3b100bcf99561c965cc5da8ef58e206 120108 debian-installer optional 
libcrack2-udeb_2.9.2-5.1_amd64.udeb
│ - e04c3f5f14a2c8eb2022ba8eb1d5d915 54788 libs optional 
libcrack2_2.9.2-5.1_amd64.deb
│ - 85fa278ff743cf93ead1075664df42f2 12880 debug optional 
python-cracklib-dbgsym_2.9.2-5.1_amd64.deb
│ - 674e3f26f4301f5c253fddb0366a3832 23392 python optional 
python-cracklib_2.9.2-5.1_amd64.deb
│ - c1bceeb542a7dbed7d2989fd93bba60b 14160 debug optional 
python3-cracklib-dbgsym_2.9.2-5.1_amd64.deb
│ - b9868203bdda021286129428b5eb3e55 23424 python optional 
python3-cracklib_2.9.2-5.1_amd64.deb
│ + e04c3f5f14a2c8eb2022ba8eb1d5d915 54788 libs optional 
libcrack2_2.9.2-5.1_amd64.deb

The DotChangesFile comaprator performs a super call into DebControlFile,
which pulls the Checksums-Sha256 field out of the parsed deb822 file. In
doing so it strips the trailing newline and this what makes for the
difference above. I propose working around the issue with the following
patch:

--- a/diffoscope/comparators/debian.py
+++ b/diffoscope/comparators/debian.py
@@ -142,16 +142,16 @@
         # Compare Files as string
         if self.deb822.get('Files'):
             differences.append(Difference.from_text(
-                self.deb822.get_as_string('Files'),
-                other.deb822.get_as_string('Files'),
+                self.deb822.get_as_string('Files') + "\n",
+                other.deb822.get_as_string('Files') + "\n",
                 self.path,
                 other.path,
                 source='Files',
             ))
         else:
             differences.append(Difference.from_text(
-                self.deb822.get_as_string('Checksums-Sha256'),
-                other.deb822.get_as_string('Checksums-Sha256'),
+                self.deb822.get_as_string('Checksums-Sha256') + "\n",
+                other.deb822.get_as_string('Checksums-Sha256') + "\n",
                 self.path,
                 other.path,
                 source='Checksums-Sha256',

Many thanks to Mattia Rizzolo for pointing precisely at the relevant
source code.

Helmut

--- End Message ---
--- Begin Message ---
Hi,

Closing as per:

  
https://salsa.debian.org/reproducible-builds/diffoscope/-/issues/30#note_168909


Regards,

-- 
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      [email protected] / chris-lamb.co.uk
       `-

--- End Message ---
_______________________________________________
Reproducible-builds mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/reproducible-builds

Reply via email to