Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package diffoscope for openSUSE:Factory checked in at 2022-01-22 08:18:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/diffoscope (Old) and /work/SRC/openSUSE:Factory/.diffoscope.new.1938 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "diffoscope" Sat Jan 22 08:18:16 2022 rev:26 rq:947908 version:200 Changes: -------- --- /work/SRC/openSUSE:Factory/diffoscope/diffoscope.changes 2021-12-24 20:23:42.778036172 +0100 +++ /work/SRC/openSUSE:Factory/.diffoscope.new.1938/diffoscope.changes 2022-01-22 08:19:15.170471666 +0100 @@ -1,0 +2,47 @@ +Fri Jan 14 09:22:48 UTC 2022 - Sebastian Wagner <[email protected]> + +- - update to version 200: + - Even if a Sphinx .inv inventory file is labelled "The remainder of this + file is compressed using zlib", it might not actually be. In this case, + don't traceback, and simply return the original content. + (Closes: reproducible-builds/diffoscope#299) + - Update "X has been modified after NT_GNU_BUILD_ID has been applied" message + to, for instance, not duplicating the full filename in the primary + diffoscope's output. +- update to version 199: + - Support both variants of "odt2txt", including the one provided by unoconv. + (Closes: reproducible-builds/diffoscope#298) + - Add external tool reference on Arch Linux for xb-tool. + +------------------------------------------------------------------- +Fri Jan 7 09:00:17 UTC 2022 - Sebastian Wagner <[email protected]> + +- - update to version 199: + - Support both variants of "odt2txt", including the one provided by unoconv. + (Closes: reproducible-builds/diffoscope#298) + - Add external tool reference on Arch Linux for xb-tool. +- update to version 198: + - Support showing "Ordering differences only" within .dsc field values. + (Closes: #1002002, reproducible-builds/diffoscope#297) + - Support OCaml versions 4.11, 4.12 and 4.13. (Closes: #1002678) + - Add support for XMLb files. (Closes: reproducible-builds/diffoscope#295) + - Also add, for example, /usr/lib/x86_64-linux-gnu to our internal PATH. + - Also recognize "GnuCash file" files as XML. + +------------------------------------------------------------------- +Mon Jan 3 11:42:21 UTC 2022 - Sebastian Wagner <[email protected]> + +- - update to version 198: + - Support showing "Ordering differences only" within .dsc field values. + (Closes: #1002002, reproducible-builds/diffoscope#297) + - Support OCaml versions 4.11, 4.12 and 4.13. (Closes: #1002678) + - Add support for XMLb files. (Closes: reproducible-builds/diffoscope#295) + - Also add, for example, /usr/lib/x86_64-linux-gnu to our internal PATH. + - Also recognize "GnuCash file" files as XML. +- update to version 197: + - Drop unnecessary has_same_content_as logging calls. + - Ignore the new "binary-with-bad-dynamic-table" Lintian tag. + - Support pgpdump 0.34 in the tests. Thanks to Michael Weiss + <[email protected]> for reporting and testing the fix. + +------------------------------------------------------------------- Old: ---- diffoscope-197.tar.bz2 diffoscope-197.tar.bz2.asc New: ---- diffoscope-200.tar.bz2 diffoscope-200.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ diffoscope.spec ++++++ --- /var/tmp/diff_new_pack.zlSwGI/_old 2022-01-22 08:19:15.622468620 +0100 +++ /var/tmp/diff_new_pack.zlSwGI/_new 2022-01-22 08:19:15.626468593 +0100 @@ -1,7 +1,7 @@ # # spec file for package diffoscope # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: diffoscope -Version: 197 +Version: 200 Release: 0 Summary: In-depth comparison of files, archives, and directories License: GPL-3.0-or-later ++++++ diffoscope-197.tar.bz2 -> diffoscope-200.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/debian/changelog new/diffoscope-200/debian/changelog --- old/diffoscope-197/debian/changelog 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/debian/changelog 2022-01-14 10:15:22.000000000 +0100 @@ -1,3 +1,40 @@ +diffoscope (200) unstable; urgency=medium + + * Even if a Sphinx .inv inventory file is labelled "The remainder of this + file is compressed using zlib", it might not actually be. In this case, + don't traceback, and simply return the original content. + (Closes: reproducible-builds/diffoscope#299) + * Update "X has been modified after NT_GNU_BUILD_ID has been applied" message + to, for instance, not duplicating the full filename in the primary + diffoscope's output. + + -- Chris Lamb <[email protected]> Fri, 14 Jan 2022 09:15:19 +0000 + +diffoscope (199) unstable; urgency=medium + + [ Chris Lamb ] + * Support both variants of "odt2txt", including the one provided by unoconv. + (Closes: reproducible-builds/diffoscope#298) + + [ Jelle van der Waa ] + * Add external tool reference on Arch Linux for xb-tool. + + -- Chris Lamb <[email protected]> Fri, 07 Jan 2022 08:46:42 +0000 + +diffoscope (198) unstable; urgency=medium + + [ Chris Lamb ] + * Support showing "Ordering differences only" within .dsc field values. + (Closes: #1002002, reproducible-builds/diffoscope#297) + * Support OCaml versions 4.11, 4.12 and 4.13. (Closes: #1002678) + * Add support for XMLb files. (Closes: reproducible-builds/diffoscope#295) + * Also add, for example, /usr/lib/x86_64-linux-gnu to our internal PATH. + + [ Mattia Rizzolo ] + * Also recognize "GnuCash file" files as XML. + + -- Chris Lamb <[email protected]> Fri, 31 Dec 2021 08:52:04 +0000 + diffoscope (197) unstable; urgency=medium [ Chris Lamb ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/debian/tests/control new/diffoscope-200/debian/tests/control --- old/diffoscope-197/debian/tests/control 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/debian/tests/control 2022-01-14 10:15:22.000000000 +0100 @@ -7,7 +7,7 @@ # $ mv debian/tests/control.tmp debian/tests/control Tests: pytest-with-recommends -Depends: python3-all, diffoscope, black, python3-pytest, python3-h5py, file, linux-image-amd64 [amd64] | linux-image-generic [amd64], abootimg, acl, apksigner, apktool [!ppc64el !s390x], binutils-multiarch, bzip2, caca-utils, colord, db-util, default-jdk-headless | default-jdk | java-sdk, device-tree-compiler, docx2txt, e2fsprogs, enjarify, ffmpeg, fontforge-extras, fp-utils [!ppc64el !s390x], genisoimage, gettext, ghc, ghostscript, giflib-tools, gnumeric, gnupg, gnupg-utils, hdf5-tools, imagemagick, jsbeautifier, libarchive-tools, llvm, lz4 | liblz4-tool, mono-utils, ocaml-nox, odt2txt, oggvideotools [!s390x], openssh-client, openssl, pgpdump, poppler-utils, procyon-decompiler, python3-pdfminer, r-base-core, rpm2cpio, sng, sqlite3, squashfs-tools, tcpdump, u-boot-tools, unzip, wabt, xmlbeans, xxd | vim-common, xz-utils, zip, zstd, androguard, python3-argcomplete, python3-binwalk, python3-defusedxml, python3-distro, python3-guestfs, python3-jsondiff, python3-progressbar, python3-pyp df2, python3-debian, python3-pyxattr, python3-rpm, python3-tlsh +Depends: python3-all, diffoscope, black, python3-pytest, python3-h5py, file, linux-image-amd64 [amd64] | linux-image-generic [amd64], abootimg, acl, apksigner, apktool [!ppc64el !s390x], binutils-multiarch, bzip2, caca-utils, colord, db-util, default-jdk-headless | default-jdk | java-sdk, device-tree-compiler, docx2txt, e2fsprogs, enjarify, ffmpeg, fontforge-extras, fp-utils [!ppc64el !s390x], genisoimage, gettext, ghc, ghostscript, giflib-tools, gnumeric, gnupg, gnupg-utils, hdf5-tools, imagemagick, jsbeautifier, libarchive-tools, libxmlb-dev, llvm, lz4 | liblz4-tool, mono-utils, ocaml-nox, odt2txt, oggvideotools [!s390x], openssh-client, openssl, pgpdump, poppler-utils, procyon-decompiler, python3-pdfminer, r-base-core, rpm2cpio, sng, sqlite3, squashfs-tools, tcpdump, u-boot-tools, unzip, wabt, xmlbeans, xxd | vim-common, xz-utils, zip, zstd, androguard, python3-argcomplete, python3-binwalk, python3-defusedxml, python3-distro, python3-guestfs, python3-jsondiff, python3-progressbar , python3-pypdf2, python3-debian, python3-pyxattr, python3-rpm, python3-tlsh Tests: pytest Depends: python3-all, diffoscope, python3-pytest, python3-h5py, file, python3-tlsh diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/__init__.py new/diffoscope-200/diffoscope/__init__.py --- old/diffoscope-197/diffoscope/__init__.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/__init__.py 2022-01-14 10:15:22.000000000 +0100 @@ -17,4 +17,4 @@ # You should have received a copy of the GNU General Public License # along with diffoscope. If not, see <https://www.gnu.org/licenses/>. -VERSION = "197" +VERSION = "200" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/comparators/__init__.py new/diffoscope-200/diffoscope/comparators/__init__.py --- old/diffoscope-197/diffoscope/comparators/__init__.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/comparators/__init__.py 2022-01-14 10:15:22.000000000 +0100 @@ -50,6 +50,7 @@ ("javascript.JavaScriptFile",), ("json.JSONFile",), ("xml.XMLFile",), + ("xmlb.XMLBFile",), ("openssl.Pkcs7File",), ("openssl.MobileProvisionFile",), ("text.TextFile",), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/comparators/debian.py new/diffoscope-200/diffoscope/comparators/debian.py --- old/diffoscope-197/diffoscope/comparators/debian.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/comparators/debian.py 2022-01-14 10:15:22.000000000 +0100 @@ -173,9 +173,20 @@ if field in other_deb822: other_value = other_deb822.get_as_string(field).lstrip() + comment = None + if my_value != other_value and sorted(my_value.split()) == sorted( + other_value.split() + ): + comment = "Ordering differences only" + differences.append( Difference.from_text( - my_value, other_value, self.path, other.path, source=field + my_value, + other_value, + self.path, + other.path, + source=field, + comment=comment, ) ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/comparators/elf.py new/diffoscope-200/diffoscope/comparators/elf.py --- old/diffoscope-197/diffoscope/comparators/elf.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/comparators/elf.py 2022-01-14 10:15:22.000000000 +0100 @@ -663,13 +663,13 @@ if hashlib.sha1(blob_with_reset_build_id).hexdigest() != build_id: self.source.add_comment( - f"The file ({self.source.path}) has been modified after NT_GNU_BUILD_ID has been applied" + f"File has been modified after NT_GNU_BUILD_ID has been applied." ) logger.warning( - f"The file ({self.source.path}) has been modified after NT_GNU_BUILD_ID has been applied" + f"{self.source.path} has been modified after NT_GNU_BUILD_ID has been applied" ) logger.debug( - "Expected value: %s Current value: %s", + "Expected value: %s, current value: %s", hashlib.sha1(blob_with_reset_build_id).hexdigest(), build_id, ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/comparators/odt.py new/diffoscope-200/diffoscope/comparators/odt.py --- old/diffoscope-197/diffoscope/comparators/odt.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/comparators/odt.py 2022-01-14 10:15:22.000000000 +0100 @@ -1,7 +1,7 @@ # # diffoscope: in-depth comparison of files, archives, and directories # -# Copyright ?? 2017-2021 Chris Lamb <[email protected]> +# Copyright ?? 2017-2022 Chris Lamb <[email protected]> # # diffoscope is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,6 +17,7 @@ # along with diffoscope. If not, see <https://www.gnu.org/licenses/>. import re +import subprocess from diffoscope.tools import tool_required from diffoscope.difference import Difference @@ -28,7 +29,20 @@ class Odt2txt(Command): @tool_required("odt2txt") def cmdline(self): - return ("odt2txt", "--stdout", self.path) + # LibreOffice provides a "odt2txt" binary with different command-line + # options. + if self.odt2txt_variant() == "unoconv": + return ("odt2txt", "--stdout", self.path) + + return ("odt2txt", "--width=-1", self.path) + + @staticmethod + def odt2txt_variant(): + try: + out = subprocess.check_output(["odt2txt", "--version"]) + except subprocess.CalledProcessError as e: + out = e.output + return out.decode("UTF-8").splitlines()[0].split()[0].strip() class OdtFile(File): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/comparators/sphinx.py new/diffoscope-200/diffoscope/comparators/sphinx.py --- old/diffoscope-197/diffoscope/comparators/sphinx.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/comparators/sphinx.py 2022-01-14 10:15:22.000000000 +0100 @@ -55,6 +55,13 @@ tail += line result = head + b"\n" if head else b"" - result += zlib.decompress(tail) - return result.decode("utf-8") + try: + result += zlib.decompress(tail) + except zlib.error: + # Even if the file is labelled "The remainder of this file is + # compressed using zlib.", it might not actually be. In this case, + # simply return the original content. + result += tail + + return result.decode("utf-8", "ignore") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/comparators/xml.py new/diffoscope-200/diffoscope/comparators/xml.py --- old/diffoscope-197/diffoscope/comparators/xml.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/comparators/xml.py 2022-01-14 10:15:22.000000000 +0100 @@ -85,7 +85,7 @@ """ DESCRIPTION = "XML files" - FILE_TYPE_RE = re.compile(r"^XML \S+ document") + FILE_TYPE_RE = re.compile(r"^(XML \S+ document|GnuCash file)") @classmethod def recognizes(cls, file): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/comparators/xmlb.py new/diffoscope-200/diffoscope/comparators/xmlb.py --- old/diffoscope-197/diffoscope/comparators/xmlb.py 1970-01-01 01:00:00.000000000 +0100 +++ new/diffoscope-200/diffoscope/comparators/xmlb.py 2022-01-14 10:15:22.000000000 +0100 @@ -0,0 +1,46 @@ +# +# diffoscope: in-depth comparison of files, archives, and directories +# +# Copyright ?? 2021 Chris Lamb <[email protected]> +# +# diffoscope is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# diffoscope is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with diffoscope. If not, see <https://www.gnu.org/licenses/>. + +from diffoscope.tools import tool_required +from diffoscope.difference import Difference + +from .utils.file import File +from .utils.command import Command + +XMLB_MAGIC = b"XMLb" + + +class XbTool(Command): + @tool_required("xb-tool") + def cmdline(self): + return ["xb-tool", "dump", self.path] + + +class XMLBFile(File): + DESCRIPTION = "XMLB files" + FILE_EXTENSION_SUFFIX = {".xb"} + + @classmethod + def recognizes(cls, file): + if not super().recognizes(file): + return False + + return file.file_header.startswith(XMLB_MAGIC) + + def compare_details(self, other, source=None): + return [Difference.from_operation(XbTool, self.path, other.path)] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/external_tools.py new/diffoscope-200/diffoscope/external_tools.py --- old/diffoscope-197/diffoscope/external_tools.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/external_tools.py 2022-01-14 10:15:22.000000000 +0100 @@ -238,6 +238,7 @@ "zipnote": {"debian": "zip", "guix": "zip"}, "procyon": {"debian": "procyon-decompiler"}, "dumpxsb": {"debian": "xmlbeans"}, + "xb-tool": {"debian": "libxmlb-dev", "arch": "libxmlb"}, "zstd": {"debian": "zstd", "guix": "zstd"}, } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/diffoscope/path.py new/diffoscope-200/diffoscope/path.py --- old/diffoscope-197/diffoscope/path.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/diffoscope/path.py 2022-01-14 10:15:22.000000000 +0100 @@ -1,7 +1,7 @@ # # diffoscope: in-depth comparison of files, archives, and directories # -# Copyright ?? 2017, 2020 Chris Lamb <[email protected]> +# Copyright ?? 2017, 2020, 2021 Chris Lamb <[email protected]> # # diffoscope is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -17,12 +17,23 @@ # along with diffoscope. If not, see <https://www.gnu.org/licenses/>. import os +import sys def set_path(): + to_add = ["/sbin", "/usr/sbin", "/usr/local/sbin"] pathlist = os.environ["PATH"].split(os.pathsep) - for x in ("/sbin", "/usr/sbin", "/usr/local/sbin"): + # Check the /usr/lib/<multiarch-triplet directory as well. + try: + arch_dir = os.path.join("/usr/lib", sys.implementation._multiarch) + except AttributeError: + pass + else: + if os.path.exists(arch_dir): + to_add.append(arch_dir) + + for x in to_add: if x not in pathlist: pathlist.append(x) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/tests/comparators/test_ocaml.py new/diffoscope-200/tests/comparators/test_ocaml.py --- old/diffoscope-197/tests/comparators/test_ocaml.py 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/tests/comparators/test_ocaml.py 2022-01-14 10:15:22.000000000 +0100 @@ -23,7 +23,7 @@ from diffoscope.comparators.binary import FilesystemFile from diffoscope.comparators.utils.specialize import specialize -from ..utils.data import assert_diff +from ..utils.data import assert_diff_startswith from ..utils.tools import skip_unless_tool_is_at_least from ..utils.nonexisting import assert_non_existing @@ -56,7 +56,7 @@ return out.decode("utf-8").split()[-1] -@skip_unless_tool_is_at_least("ocamlobjinfo", ocaml_version, "4.12") +@skip_unless_tool_is_at_least("ocamlobjinfo", ocaml_version, "4.11") def test_identification(cmi1): assert isinstance(cmi1, OcamlInterfaceFile) @@ -66,17 +66,17 @@ return cmi1.compare(cmi2).details -@skip_unless_tool_is_at_least("ocamlobjinfo", ocaml_version, "4.12") +@skip_unless_tool_is_at_least("ocamlobjinfo", ocaml_version, "4.11") def test_no_differences(cmi1): difference = cmi1.compare(cmi1) assert difference is None -@skip_unless_tool_is_at_least("ocamlobjinfo", ocaml_version, "4.12") +@skip_unless_tool_is_at_least("ocamlobjinfo", ocaml_version, "4.11") def test_diff(differences): - assert_diff(differences[0], "ocaml_expected_diff") + assert_diff_startswith(differences[0], "ocaml_expected_diff") -@skip_unless_tool_is_at_least("ocamlobjinfo", ocaml_version, "4.12") +@skip_unless_tool_is_at_least("ocamlobjinfo", ocaml_version, "4.11") def test_compare_non_existing(monkeypatch, cmi1): assert_non_existing(monkeypatch, cmi1, has_null_source=False) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/diffoscope-197/tests/data/ocaml_expected_diff new/diffoscope-200/tests/data/ocaml_expected_diff --- old/diffoscope-197/tests/data/ocaml_expected_diff 2021-12-17 10:56:06.000000000 +0100 +++ new/diffoscope-200/tests/data/ocaml_expected_diff 2022-01-14 10:15:22.000000000 +0100 @@ -2,7 +2,3 @@ -Unit name: Test1 +Unit name: Test2 Interfaces imported: -- 69a7449a2ee894ef85f1a4d8645e8051 Test1 -+ 187969740b6c403b926a8d81613601ae Test2 - 4b04b4eda19aa722df365141895fb347 Stdlib - b6c6694955e10001aed267571104a961 CamlinternalFormatBasics
