[Git][reproducible-builds/diffoscope][master] libarchive: add compatibility with python-libarchive >= 2.8

Mattia Rizzolo gitlab at salsa.debian.org
Sun Jul 8 18:06:35 CEST 2018


Mattia Rizzolo pushed to branch master at Reproducible Builds / diffoscope


Commits:
5ed8e48b by anthraxx at 2018-07-08T16:06:02+00:00
libarchive: add compatibility with python-libarchive >= 2.8

Python librarchive 2.8 removed the mtime_nsec property from
ArchiveEntry so lets wire the ffi function if available

- - - - -


1 changed file:

- diffoscope/comparators/utils/libarchive.py


Changes:

=====================================
diffoscope/comparators/utils/libarchive.py
=====================================
--- a/diffoscope/comparators/utils/libarchive.py
+++ b/diffoscope/comparators/utils/libarchive.py
@@ -80,6 +80,14 @@ if not hasattr(libarchive.ffi, 'entry_gname'):
         'entry_gname', [libarchive.ffi.c_archive_entry_p], ctypes.c_char_p)
     libarchive.ArchiveEntry.gname = property(
         lambda self: libarchive.ffi.entry_gname(self._entry_p))
+# Monkeypatch libarchive-c (>= 2.8)
+# Wire mtime_nsec attribute as some libarchive versions (>=2.8) don't expose it
+# for ArchiveEntry. Doing this allows a unified API no matter which version is
+# available.
+if not hasattr(libarchive.ArchiveEntry, 'mtime_nsec') and hasattr(libarchive.ffi, 'entry_mtime_nsec'):
+    libarchive.ArchiveEntry.mtime_nsec = property(
+        lambda self: libarchive.ffi.entry_mtime_nsec(self._entry_p))
+
 
 # Monkeypatch libarchive-c so we always get pathname as (Unicode) str
 # Otherwise, we'll get sometimes str and sometimes bytes and always pain.



View it on GitLab: https://salsa.debian.org/reproducible-builds/diffoscope/commit/5ed8e48bbb175e686f74e4a1d849986a52bec926

-- 
View it on GitLab: https://salsa.debian.org/reproducible-builds/diffoscope/commit/5ed8e48bbb175e686f74e4a1d849986a52bec926
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/20180708/3d5db69e/attachment.html>


More information about the rb-commits mailing list