[Reproducible-builds] Bug#820624: diffoscope: crash when comparing debian packages

Antonio Terceiro terceiro at debian.org
Sun Apr 10 18:58:44 UTC 2016


Package: diffoscope
Version: 51
Severity: normal

Hi, I was trying to use diffoscope to compare debian binary packages
before and after a patch I applied, and hit this:

----------------8<----------------8<----------------8<-----------------
$ ls passenger_5.0.27*.deb
passenger_5.0.27-2_amd64.deb  passenger_5.0.27-2+nginx_amd64.deb
$ diffoscope passenger_5.0.27-2_amd64.deb  passenger_5.0.27-2+nginx_amd64.deb
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/diffoscope/__main__.py", line 177, in main
    sys.exit(run_diffoscope(parsed_args))
  File "/usr/lib/python3/dist-packages/diffoscope/__main__.py", line 148, in run_diffoscope
    parsed_args.file1, parsed_args.file2)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 97, in compare_root_paths
    return compare_files(file1, file2)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 113, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 199, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 174, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 116, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 113, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 199, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 174, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 116, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 113, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 199, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 174, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 116, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 113, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 199, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 173, in _compare_using_details
    if self.as_container:
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 128, in as_container
    self._as_container = self.__class__.CONTAINER_CLASS(self)
  File "/usr/lib/python3/dist-packages/diffoscope/__init__.py", line 143, in tool_check
    return original_function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/elf.py", line 362, in __init__
    self._install_debug_symbols()
  File "/usr/lib/python3/dist-packages/diffoscope/__init__.py", line 143, in tool_check
    return original_function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/elf.py", line 383, in _install_debug_symbols
    deb.container.dbgsym_build_id_map = get_build_id_map(deb.container)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/deb.py", line 40, in get_build_id_map
    for member_name, member in container.get_members().items():
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils.py", line 170, in get_members
    return OrderedDict([(name, self.get_member(name)) for name in self.get_member_names()])
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/directory.py", line 173, in get_member_names
    return sorted(os.listdir(self.source.path))
FileNotFoundError: [Errno 2] No such file or directory: ''
----------------8<----------------8<----------------8<-----------------

It seems that comparing the corresponding .changes files works better
(it's still running for me as I write this bug report), but I assume
that I should also be able to compare two .deb's directly?  Anyway here
is the output of a run with --debug:

----------------8<----------------8<----------------8<-----------------
$ diffoscope --debug passenger_5.0.27-2_amd64.deb  passenger_5.0.27-2+nginx_amd64.deb
   DEBUG Using DebFile for passenger_5.0.27-2_amd64.deb
   DEBUG Using DebFile for passenger_5.0.27-2+nginx_amd64.deb
   DEBUG compare files <<class 'abc.DebFile'> passenger_5.0.27-2_amd64.deb> and <<class 'abc.DebFile'> passenger_5.0.27-2+nginx_amd64.deb>
   DEBUG <<class 'abc.DebFile'> passenger_5.0.27-2_amd64.deb> has_same_content <<class 'abc.DebFile'> passenger_5.0.27-2+nginx_amd64.deb>
   DEBUG passenger_5.0.27-2_amd64.deb is already specialized
   DEBUG passenger_5.0.27-2+nginx_amd64.deb is already specialized
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/7']
   DEBUG done with diff, returncode 1, parsed True
   DEBUG instanciating <class 'diffoscope.comparators.deb.DebContainer'> for <<class 'abc.DebFile'> passenger_5.0.27-2_amd64.deb>
   DEBUG returning a <class 'diffoscope.comparators.deb.DebContainer'> for <<class 'abc.DebFile'> passenger_5.0.27-2_amd64.deb>
   DEBUG returning a <class 'diffoscope.comparators.deb.DebContainer'> for <<class 'abc.DebFile'> passenger_5.0.27-2_amd64.deb>
   DEBUG instanciating <class 'diffoscope.comparators.deb.DebContainer'> for <<class 'abc.DebFile'> passenger_5.0.27-2+nginx_amd64.deb>
   DEBUG returning a <class 'diffoscope.comparators.deb.DebContainer'> for <<class 'abc.DebFile'> passenger_5.0.27-2+nginx_amd64.deb>
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> debian-binary> and <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> debian-binary>
   DEBUG <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> debian-binary> has_same_content <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> debian-binary>
   DEBUG unpacking debian-binary
   DEBUG libarchive extracting debian-binary to /tmp/tmptnwgcrtgdiffoscope/debian-binary
   DEBUG entry found, writing /tmp/tmptnwgcrtgdiffoscope/debian-binary
   DEBUG unpacking debian-binary
   DEBUG libarchive extracting debian-binary to /tmp/tmpkjb_sz57diffoscope/debian-binary
   DEBUG entry found, writing /tmp/tmpkjb_sz57diffoscope/debian-binary
   DEBUG same content, skipping
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> control.tar.gz> and <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> control.tar.gz>
   DEBUG <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> control.tar.gz> has_same_content <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> control.tar.gz>
   DEBUG unpacking control.tar.gz
   DEBUG libarchive extracting control.tar.gz to /tmp/tmp5ppvalkcdiffoscope/control.tar.gz
   DEBUG entry found, writing /tmp/tmp5ppvalkcdiffoscope/control.tar.gz
   DEBUG unpacking control.tar.gz
   DEBUG libarchive extracting control.tar.gz to /tmp/tmpln2m3jyidiffoscope/control.tar.gz
   DEBUG entry found, writing /tmp/tmpln2m3jyidiffoscope/control.tar.gz
   DEBUG Using GzipFile for control.tar.gz
   DEBUG Using GzipFile for control.tar.gz
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/6']
   DEBUG done with diff, returncode 0, parsed True
   DEBUG instanciating <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG returning a <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG returning a <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG instanciating <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG returning a <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG compare files <<class 'diffoscope.comparators.utils.ArchiveMember'> control.tar> and <<class 'diffoscope.comparators.utils.ArchiveMember'> control.tar>
   DEBUG <<class 'diffoscope.comparators.utils.ArchiveMember'> control.tar> has_same_content <<class 'diffoscope.comparators.utils.ArchiveMember'> control.tar>
   DEBUG unpacking control.tar
   DEBUG gzip extracting to /tmp/tmpwotcwcl3diffoscope/control.tar
   DEBUG unpacking control.tar
   DEBUG gzip extracting to /tmp/tmpf9s2tbsvdiffoscope/control.tar
   DEBUG Using TarFile for control.tar
   DEBUG Using TarFile for control.tar
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/7']
   DEBUG done with diff, returncode 1, parsed True
   DEBUG instanciating <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG returning a <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG returning a <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG instanciating <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG returning a <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./> and <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./>
   DEBUG ./ is already specialized
   DEBUG ./ is already specialized
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./md5sums> and <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./md5sums>
   DEBUG <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./md5sums> has_same_content <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./md5sums>
   DEBUG unpacking ./md5sums
   DEBUG libarchive extracting ./md5sums to /tmp/tmp9jc7n5a9diffoscope/md5sums
   DEBUG entry found, writing /tmp/tmp9jc7n5a9diffoscope/md5sums
   DEBUG unpacking ./md5sums
   DEBUG libarchive extracting ./md5sums to /tmp/tmpjktzgyiediffoscope/md5sums
   DEBUG entry found, writing /tmp/tmpjktzgyiediffoscope/md5sums
   DEBUG Using Md5sumsFile for ./md5sums
   DEBUG Using Md5sumsFile for ./md5sums
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/8']
   DEBUG done with diff, returncode 1, parsed True
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./control> and <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./control>
   DEBUG <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./control> has_same_content <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./control>
   DEBUG unpacking ./control
   DEBUG libarchive extracting ./control to /tmp/tmpv3pcng_idiffoscope/control
   DEBUG entry found, writing /tmp/tmpv3pcng_idiffoscope/control
   DEBUG unpacking ./control
   DEBUG libarchive extracting ./control to /tmp/tmphd31dz7vdiffoscope/control
   DEBUG entry found, writing /tmp/tmphd31dz7vdiffoscope/control
   DEBUG Using TextFile for ./control
   DEBUG Using TextFile for ./control
   DEBUG running ['diff', '-aU7', '/dev/fd/7', '/dev/fd/8']
   DEBUG done with diff, returncode 1, parsed True
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> data.tar.xz> and <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> data.tar.xz>
   DEBUG <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> data.tar.xz> has_same_content <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> data.tar.xz>
   DEBUG unpacking data.tar.xz
   DEBUG libarchive extracting data.tar.xz to /tmp/tmp1b_ubon9diffoscope/data.tar.xz
   DEBUG entry found, writing /tmp/tmp1b_ubon9diffoscope/data.tar.xz
   DEBUG unpacking data.tar.xz
   DEBUG libarchive extracting data.tar.xz to /tmp/tmpa40k5miydiffoscope/data.tar.xz
   DEBUG entry found, writing /tmp/tmpa40k5miydiffoscope/data.tar.xz
   DEBUG Using XzFile for data.tar.xz
   DEBUG Using XzFile for data.tar.xz
   DEBUG instanciating <class 'diffoscope.comparators.xz.XzContainer'> for <<class 'abc.XzFile'> data.tar.xz>
   DEBUG returning a <class 'diffoscope.comparators.xz.XzContainer'> for <<class 'abc.XzFile'> data.tar.xz>
   DEBUG returning a <class 'diffoscope.comparators.xz.XzContainer'> for <<class 'abc.XzFile'> data.tar.xz>
   DEBUG returning a <class 'diffoscope.comparators.xz.XzContainer'> for <<class 'abc.XzFile'> data.tar.xz>
   DEBUG instanciating <class 'diffoscope.comparators.xz.XzContainer'> for <<class 'abc.XzFile'> data.tar.xz>
   DEBUG returning a <class 'diffoscope.comparators.xz.XzContainer'> for <<class 'abc.XzFile'> data.tar.xz>
   DEBUG compare files <<class 'diffoscope.comparators.utils.ArchiveMember'> data.tar> and <<class 'diffoscope.comparators.utils.ArchiveMember'> data.tar>
   DEBUG <<class 'diffoscope.comparators.utils.ArchiveMember'> data.tar> has_same_content <<class 'diffoscope.comparators.utils.ArchiveMember'> data.tar>
   DEBUG unpacking data.tar
   DEBUG xz extracting to /tmp/tmpehwywqm_diffoscope/data.tar
   DEBUG unpacking data.tar
   DEBUG xz extracting to /tmp/tmpulk601godiffoscope/data.tar
   DEBUG Using DebDataTarFile for data.tar
   DEBUG Using DebDataTarFile for data.tar
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/7']
   DEBUG done with diff, returncode 1, parsed True
   DEBUG instanciating <class 'diffoscope.comparators.deb.DebTarContainer'> for <<class 'abc.DebDataTarFile'> data.tar>
   DEBUG returning a <class 'diffoscope.comparators.deb.DebTarContainer'> for <<class 'abc.DebDataTarFile'> data.tar>
   DEBUG returning a <class 'diffoscope.comparators.deb.DebTarContainer'> for <<class 'abc.DebDataTarFile'> data.tar>
   DEBUG instanciating <class 'diffoscope.comparators.deb.DebTarContainer'> for <<class 'abc.DebDataTarFile'> data.tar>
   DEBUG returning a <class 'diffoscope.comparators.deb.DebTarContainer'> for <<class 'abc.DebDataTarFile'> data.tar>
   DEBUG returning a <class 'diffoscope.comparators.deb.DebContainer'> for <<class 'abc.DebFile'> passenger_5.0.27-2_amd64.deb>
   DEBUG lookup_file(('control.tar.gz', 'control.tar', './md5sums')) -> <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> control.tar.gz>
   DEBUG unpacking control.tar.gz
   DEBUG libarchive extracting control.tar.gz to /tmp/tmp369u9ta7diffoscope/control.tar.gz
   DEBUG entry found, writing /tmp/tmp369u9ta7diffoscope/control.tar.gz
   DEBUG Using GzipFile for control.tar.gz
   DEBUG instanciating <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG returning a <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG lookup_file(('control.tar', './md5sums')) -> <<class 'diffoscope.comparators.utils.ArchiveMember'> control.tar>
   DEBUG unpacking control.tar
   DEBUG gzip extracting to /tmp/tmpbj3uduyhdiffoscope/control.tar
   DEBUG Using TarFile for control.tar
   DEBUG instanciating <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG returning a <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG lookup_file(('./md5sums',)) -> <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./md5sums>
   DEBUG Using Md5sumsFile for ./md5sums
   DEBUG unpacking ./md5sums
   DEBUG libarchive extracting ./md5sums to /tmp/tmpr6rjzq3tdiffoscope/md5sums
   DEBUG entry found, writing /tmp/tmpr6rjzq3tdiffoscope/md5sums
   DEBUG returning a <class 'diffoscope.comparators.deb.DebContainer'> for <<class 'abc.DebFile'> passenger_5.0.27-2+nginx_amd64.deb>
   DEBUG lookup_file(('control.tar.gz', 'control.tar', './md5sums')) -> <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> control.tar.gz>
   DEBUG unpacking control.tar.gz
   DEBUG libarchive extracting control.tar.gz to /tmp/tmpsqjsj5whdiffoscope/control.tar.gz
   DEBUG entry found, writing /tmp/tmpsqjsj5whdiffoscope/control.tar.gz
   DEBUG Using GzipFile for control.tar.gz
   DEBUG instanciating <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG returning a <class 'diffoscope.comparators.gzip.GzipContainer'> for <<class 'abc.GzipFile'> control.tar.gz>
   DEBUG lookup_file(('control.tar', './md5sums')) -> <<class 'diffoscope.comparators.utils.ArchiveMember'> control.tar>
   DEBUG unpacking control.tar
   DEBUG gzip extracting to /tmp/tmpknsxf3tsdiffoscope/control.tar
   DEBUG Using TarFile for control.tar
   DEBUG instanciating <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG returning a <class 'diffoscope.comparators.tar.TarContainer'> for <<class 'abc.TarFile'> control.tar>
   DEBUG lookup_file(('./md5sums',)) -> <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./md5sums>
   DEBUG Using Md5sumsFile for ./md5sums
   DEBUG unpacking ./md5sums
   DEBUG libarchive extracting ./md5sums to /tmp/tmpnv_3jhdbdiffoscope/md5sums
   DEBUG entry found, writing /tmp/tmpnv_3jhdbdiffoscope/md5sums
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./> and <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./>
   DEBUG ./ is already specialized
   DEBUG ./ is already specialized
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/> and <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/>
   DEBUG ./usr/ is already specialized
   DEBUG ./usr/ is already specialized
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/sbin/> and <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/sbin/>
   DEBUG ./usr/sbin/ is already specialized
   DEBUG ./usr/sbin/ is already specialized
   DEBUG Skip ./usr/sbin/passenger-status: identical md5sum
   DEBUG Skip ./usr/sbin/passenger-memory-stats: identical md5sum
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/lib/> and <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/lib/>
   DEBUG ./usr/lib/ is already specialized
   DEBUG ./usr/lib/ is already specialized
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/lib/passenger/> and <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/lib/passenger/>
   DEBUG ./usr/lib/passenger/ is already specialized
   DEBUG ./usr/lib/passenger/ is already specialized
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/lib/passenger/support-binaries/> and <<class 'diffoscope.comparators.libarchive.LibarchiveDirectory'> ./usr/lib/passenger/support-binaries/>
   DEBUG ./usr/lib/passenger/support-binaries/ is already specialized
   DEBUG ./usr/lib/passenger/support-binaries/ is already specialized
   DEBUG compare files <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./usr/lib/passenger/support-binaries/PassengerAgent> and <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./usr/lib/passenger/support-binaries/PassengerAgent>
   DEBUG <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./usr/lib/passenger/support-binaries/PassengerAgent> has_same_content <<class 'diffoscope.comparators.libarchive.LibarchiveMember'> ./usr/lib/passenger/support-binaries/PassengerAgent>
   DEBUG unpacking ./usr/lib/passenger/support-binaries/PassengerAgent
   DEBUG libarchive extracting ./usr/lib/passenger/support-binaries/PassengerAgent to /tmp/tmpt8prksozdiffoscope/PassengerAgent
   DEBUG entry found, writing /tmp/tmpt8prksozdiffoscope/PassengerAgent
   DEBUG unpacking ./usr/lib/passenger/support-binaries/PassengerAgent
   DEBUG libarchive extracting ./usr/lib/passenger/support-binaries/PassengerAgent to /tmp/tmpr36bsabddiffoscope/PassengerAgent
   DEBUG entry found, writing /tmp/tmpr36bsabddiffoscope/PassengerAgent
   DEBUG Using ElfFile for ./usr/lib/passenger/support-binaries/PassengerAgent
   DEBUG Using ElfFile for ./usr/lib/passenger/support-binaries/PassengerAgent
   DEBUG running ['readelf', '--wide', '--file-header', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--file-header', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--program-header', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--program-header', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--sections', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--sections', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--symbols', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--symbols', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/10']
   DEBUG done with readelf. exit code 0
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--relocs', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--relocs', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/10']
   DEBUG done with readelf. exit code 0
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--dynamic', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--dynamic', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--notes', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--notes', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--version-info', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--version-info', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/10']
   DEBUG done with readelf. exit code 0
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=rawline', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=rawline', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=info', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=info', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=abbrev', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=abbrev', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=pubnames', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=pubnames', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=aranges', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=aranges', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=macro', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=macro', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=frames', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=frames', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/10']
   DEBUG done with readelf. exit code 0
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 1, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=loc', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=loc', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=ranges', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=ranges', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=pubtypes', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=pubtypes', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=trace_info', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=trace_info', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=trace_abbrev', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=trace_abbrev', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=trace_aranges', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=trace_aranges', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG running ['readelf', '--wide', '--debug-dump=gdb_index', '/tmp/tmpt8prksozdiffoscope/PassengerAgent']
   DEBUG running ['readelf', '--wide', '--debug-dump=gdb_index', '/tmp/tmpr36bsabddiffoscope/PassengerAgent']
   DEBUG done with readelf. exit code 0
   DEBUG running ['diff', '-aU7', '/dev/fd/5', '/dev/fd/9']
   DEBUG done with readelf. exit code 0
   DEBUG done with diff, returncode 0, parsed True
   DEBUG instanciating <class 'diffoscope.comparators.elf.ElfContainer'> for <<class 'abc.ElfFile'> ./usr/lib/passenger/support-binaries/PassengerAgent>
   DEBUG creating ElfContainer for file /tmp/tmpt8prksozdiffoscope/PassengerAgent
   DEBUG adding section .interp (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG skipping section .note.ABI-tag, covered by <class 'diffoscope.comparators.elf.ReadelfNotes'>
   DEBUG skipping section .note.gnu.build-id, covered by <class 'diffoscope.comparators.elf.ReadelfNotes'>
   DEBUG adding section .gnu.hash (GNU_HASH) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG skipping section .dynsym, covered by <class 'diffoscope.comparators.elf.ReadelfSymbols'>
   DEBUG adding section .dynstr (STRTAB) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG skipping section .gnu.version, covered by <class 'diffoscope.comparators.elf.RedaelfVersionInfo'>
   DEBUG skipping section .gnu.version_r, covered by <class 'diffoscope.comparators.elf.RedaelfVersionInfo'>
   DEBUG skipping section .rela.dyn, covered by <class 'diffoscope.comparators.elf.ReadelfRelocs'>
   DEBUG skipping section .rela.plt, covered by <class 'diffoscope.comparators.elf.ReadelfRelocs'>
   DEBUG adding section .init (PROGBITS) as <class 'diffoscope.comparators.elf.ElfCodeSection'>
   DEBUG adding section .plt (PROGBITS) as <class 'diffoscope.comparators.elf.ElfCodeSection'>
   DEBUG adding section .plt.got (PROGBITS) as <class 'diffoscope.comparators.elf.ElfCodeSection'>
   DEBUG adding section .text (PROGBITS) as <class 'diffoscope.comparators.elf.ElfCodeSection'>
   DEBUG adding section .fini (PROGBITS) as <class 'diffoscope.comparators.elf.ElfCodeSection'>
   DEBUG adding section .rodata (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .eh_frame_hdr (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .eh_frame (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .gcc_except_table (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .tdata (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .tbss (NOBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .init_array (INIT_ARRAY) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .fini_array (FINI_ARRAY) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .jcr (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG skipping section .dynamic, covered by <class 'diffoscope.comparators.elf.ReadelfDynamic'>
   DEBUG adding section .got (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .got.plt (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .data (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .bss (NOBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .gnu_debuglink (PROGBITS) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG adding section .shstrtab (STRTAB) as <class 'diffoscope.comparators.elf.ElfSection'>
   DEBUG Looking for a dbgsym package for Build Id fe0be8d59c8f960df2d7a73f04c32ea58c3e9e7c (debuglink: 0be8d59c8f960df2d7a73f04c32ea58c3e9e7c.debug)
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/diffoscope/__main__.py", line 177, in main
    sys.exit(run_diffoscope(parsed_args))
  File "/usr/lib/python3/dist-packages/diffoscope/__main__.py", line 148, in run_diffoscope
    parsed_args.file1, parsed_args.file2)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 97, in compare_root_paths
    return compare_files(file1, file2)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 113, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 199, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 174, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 116, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 113, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 199, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 174, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 116, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 113, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 199, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 174, in _compare_using_details
    details.extend(filter(None, self.as_container.compare(other.as_container)))
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 116, in compare_commented_files
    difference = compare_files(file1, file2, source=source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/__init__.py", line 113, in compare_files
    return file1.compare(file2, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 199, in compare
    difference = self._compare_using_details(other, source)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 173, in _compare_using_details
    if self.as_container:
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/binary.py", line 128, in as_container
    self._as_container = self.__class__.CONTAINER_CLASS(self)
  File "/usr/lib/python3/dist-packages/diffoscope/__init__.py", line 143, in tool_check
    return original_function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/elf.py", line 362, in __init__
    self._install_debug_symbols()
  File "/usr/lib/python3/dist-packages/diffoscope/__init__.py", line 143, in tool_check
    return original_function(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/elf.py", line 383, in _install_debug_symbols
    deb.container.dbgsym_build_id_map = get_build_id_map(deb.container)
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/deb.py", line 40, in get_build_id_map
    for member_name, member in container.get_members().items():
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/utils.py", line 170, in get_members
    return OrderedDict([(name, self.get_member(name)) for name in self.get_member_names()])
  File "/usr/lib/python3/dist-packages/diffoscope/comparators/directory.py", line 173, in get_member_names
    return sorted(os.listdir(self.source.path))
FileNotFoundError: [Errno 2] No such file or directory: ''
----------------8<----------------8<----------------8<-----------------

Those binaries are slightly big so I won't attach them directly to the
bug report. Here they are instead:

https://people.debian.org/~terceiro/tmp/diffoscope-bug/


-- System Information:
Debian Release: stretch/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.4.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=pt_BR.UTF-8, LC_CTYPE=pt_BR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages diffoscope depends on:
ii  python3-libarchive-c   2.1-3
ii  python3-magic          1:5.25-2
ii  python3-pkg-resources  20.3.1-1
pn  python3:any            <none>

Versions of packages diffoscope recommends:
ii  acl                        2.2.52-3
ii  binutils-multiarch         2.26-8
ii  bzip2                      1.0.6-8
ii  caca-utils                 0.99.beta19-2+b1
ii  colord                     1.2.12-1
ii  cpio                       2.11+dfsg-5
ii  default-jdk [java-sdk]     2:1.8-57
ii  enjarify                   20151118-1
ii  fontforge-extras           0.3-4
ii  fp-utils                   3.0.0+dfsg-4
ii  fp-utils-3.0.0 [fp-utils]  3.0.0+dfsg-4
ii  genisoimage                9:1.1.11-3
ii  gettext                    0.19.7-2
ii  ghc                        7.10.3-7
ii  ghostscript                9.19~dfsg-1+b1
ii  gnupg                      1.4.20-5
ii  mono-utils                 4.2.1.102+dfsg2-6
ii  openjdk-8-jdk [java-sdk]   8u77-b03-3+b1
ii  pdftk                      2.02-3
ii  poppler-utils              0.38.0-2+b1
ii  python3-debian             0.1.27
ii  python3-guestfs            1:1.32.2-4+b1
ii  python3-rpm                4.12.0.1+dfsg1-3+b2
ii  python3-tlsh               3.4.4+20151206-1+b1
ii  rpm2cpio                   4.12.0.1+dfsg1-3+b2
ii  sng                        1.1.0-1+b1
ii  sqlite3                    3.12.1-1
ii  squashfs-tools             1:4.3-3
ii  unzip                      6.0-20
ii  vim-common                 2:7.4.1689-3
ii  xz-utils                   5.1.1alpha+20120614-2.1

Versions of packages diffoscope suggests:
ii  libjs-jquery  1.12.3-1

-- no debconf information

-- 
Antonio Terceiro <terceiro at debian.org>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/reproducible-builds/attachments/20160410/ab829a5c/attachment.sig>


More information about the Reproducible-builds mailing list