Missing dependency on libarchive?
On RHEL 7, after a pip install diffoscope
of diffoscope 112, running diffoscope --help
gives
Traceback (most recent call last):
File "/home/kenyon/.local/lib/python3.6/site-packages/diffoscope/main.py", line 515, in main
parsed_args = parser.parse_args(args)
File "/usr/lib64/python3.6/argparse.py", line 1734, in parse_args
args, argv = self.parse_known_args(args, namespace)
File "/usr/lib64/python3.6/argparse.py", line 1766, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
File "/usr/lib64/python3.6/argparse.py", line 1972, in _parse_known_args
start_index = consume_optional(start_index)
File "/usr/lib64/python3.6/argparse.py", line 1912, in consume_optional
take_action(action, args, option_string)
File "/usr/lib64/python3.6/argparse.py", line 1840, in take_action
action(self, namespace, argument_values, option_string)
File "/usr/lib64/python3.6/argparse.py", line 1024, in __call__
parser.print_help()
File "/usr/lib64/python3.6/argparse.py", line 2366, in print_help
self._print_message(self.format_help(), file)
File "/usr/lib64/python3.6/argparse.py", line 2350, in format_help
return formatter.format_help()
File "/home/kenyon/.local/lib/python3.6/site-packages/diffoscope/main.py", line 303, in format_help
descriptions = list(sorted(ComparatorManager().get_descriptions()))
File "/home/kenyon/.local/lib/python3.6/site-packages/diffoscope/comparators/__init__.py", line 113, in __init__
self.reload()
File "/home/kenyon/.local/lib/python3.6/site-packages/diffoscope/comparators/__init__.py", line 125, in reload
'diffoscope.comparators.{}'.format(package)
File "/usr/lib64/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/kenyon/.local/lib/python3.6/site-packages/diffoscope/comparators/deb.py", line 27, in <module>
from .tar import TarContainer
File "/home/kenyon/.local/lib/python3.6/site-packages/diffoscope/comparators/tar.py", line 25, in <module>
from .utils.libarchive import LibarchiveContainer, list_libarchive
File "/home/kenyon/.local/lib/python3.6/site-packages/diffoscope/comparators/utils/libarchive.py", line 25, in <module>
import libarchive
File "/home/kenyon/.local/lib/python3.6/site-packages/libarchive/__init__.py", line 1, in <module>
from .entry import ArchiveEntry
File "/home/kenyon/.local/lib/python3.6/site-packages/libarchive/entry.py", line 6, in <module>
from . import ffi
File "/home/kenyon/.local/lib/python3.6/site-packages/libarchive/ffi.py", line 108, in <module>
errno = ffi('errno', [c_archive_p], c_int)
File "/home/kenyon/.local/lib/python3.6/site-packages/libarchive/ffi.py", line 95, in ffi
f = getattr(libarchive, 'archive_'+name)
File "/usr/lib64/python3.6/ctypes/__init__.py", line 356, in __getattr__
func = self.__getitem__(name)
File "/usr/lib64/python3.6/ctypes/__init__.py", line 361, in __getitem__
func = self._FuncPtr((name_or_ordinal, self))
AttributeError: /usr/bin/python3.6: undefined symbol: archive_errno
After a yum install libarchive
, diffoscope runs.
The website should say that libarchive is a dependency.
Edited by Chris Lamb