[Git][reproducible-builds/diffoscope][fix/python-libarchive-2.8] libarchive: add compatibility with python-libarchive >= 2.8
Levente Polyak
gitlab at salsa.debian.org
Fri Jun 29 18:50:04 CEST 2018
Levente Polyak pushed to branch fix/python-libarchive-2.8 at Reproducible Builds / diffoscope
Commits:
7cb33625 by anthraxx at 2018-06-29T18:49:52+02: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/7cb33625090a9e0068b3a0a673984326d881bd66
--
View it on GitLab: https://salsa.debian.org/reproducible-builds/diffoscope/commit/7cb33625090a9e0068b3a0a673984326d881bd66
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/20180629/7ed87b1b/attachment.html>
More information about the rb-commits
mailing list