Skip to content

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information