[Git][reproducible-builds/diffoscope][master] 2 commits: Also check, for example, /usr/lib/x86_64-linux-gnu to our PATH.
Chris Lamb (@lamby)
gitlab at salsa.debian.org
Wed Dec 29 11:26:35 UTC 2021
Chris Lamb pushed to branch master at Reproducible Builds / diffoscope
Commits:
eb34fe74 by Chris Lamb at 2021-12-29T11:25:26+00:00
Also check, for example, /usr/lib/x86_64-linux-gnu to our PATH.
This is so we can find xb-tool.
- - - - -
a9ecfb78 by Chris Lamb at 2021-12-29T11:26:06+00:00
Add support for XMLb files. (Closes: reproducible-builds/diffoscope#295)
- - - - -
4 changed files:
- diffoscope/comparators/__init__.py
- + diffoscope/comparators/xmlb.py
- diffoscope/external_tools.py
- diffoscope/path.py
Changes:
=====================================
diffoscope/comparators/__init__.py
=====================================
@@ -50,6 +50,7 @@ class ComparatorManager:
("javascript.JavaScriptFile",),
("json.JSONFile",),
("xml.XMLFile",),
+ ("xmlb.XMLBFile",),
("openssl.Pkcs7File",),
("openssl.MobileProvisionFile",),
("text.TextFile",),
=====================================
diffoscope/comparators/xmlb.py
=====================================
@@ -0,0 +1,46 @@
+#
+# diffoscope: in-depth comparison of files, archives, and directories
+#
+# Copyright © 2021 Chris Lamb <lamby at debian.org>
+#
+# 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)]
=====================================
diffoscope/external_tools.py
=====================================
@@ -238,6 +238,7 @@ EXTERNAL_TOOLS = {
"zipnote": {"debian": "zip", "guix": "zip"},
"procyon": {"debian": "procyon-decompiler"},
"dumpxsb": {"debian": "xmlbeans"},
+ "xb-tool": {"debian": "libxmlb-dev"},
"zstd": {"debian": "zstd", "guix": "zstd"},
}
=====================================
diffoscope/path.py
=====================================
@@ -1,7 +1,7 @@
#
# diffoscope: in-depth comparison of files, archives, and directories
#
-# Copyright © 2017, 2020 Chris Lamb <lamby at debian.org>
+# Copyright © 2017, 2020, 2021 Chris Lamb <lamby at debian.org>
#
# 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)
View it on GitLab: https://salsa.debian.org/reproducible-builds/diffoscope/-/compare/0cba1b1f10cf0ec68aa726cbe1d196401f49df36...a9ecfb781ae696f23d098d2b3c5502b7a438bee4
--
View it on GitLab: https://salsa.debian.org/reproducible-builds/diffoscope/-/compare/0cba1b1f10cf0ec68aa726cbe1d196401f49df36...a9ecfb781ae696f23d098d2b3c5502b7a438bee4
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.reproducible-builds.org/pipermail/rb-commits/attachments/20211229/fd640ee9/attachment.htm>
More information about the rb-commits
mailing list