diffoscope 280__tar.gz → 282__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {diffoscope-280 → diffoscope-282}/PKG-INFO +1 -1
- {diffoscope-280 → diffoscope-282}/diffoscope/__init__.py +1 -1
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/__init__.py +1 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ar.py +3 -3
- diffoscope-282/diffoscope/comparators/uki.py +58 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/libarchive.py +9 -1
- {diffoscope-280 → diffoscope-282}/diffoscope/external_tools.py +4 -0
- {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/PKG-INFO +1 -1
- {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/SOURCES.txt +4 -36
- diffoscope-282/tests/comparators/test_uki.py +81 -0
- diffoscope-282/tests/data/dummyx64.efi.stub +0 -0
- diffoscope-282/tests/data/uki_expected_diff +0 -0
- diffoscope-280/.coveragerc +0 -4
- diffoscope-280/.dockerignore +0 -4
- diffoscope-280/Dockerfile +0 -21
- diffoscope-280/bin/diffoscope +0 -36
- diffoscope-280/debian/README.source +0 -14
- diffoscope-280/debian/changelog +0 -5489
- diffoscope-280/debian/check-dep-sizes.sh +0 -11
- diffoscope-280/debian/clean +0 -5
- diffoscope-280/debian/control +0 -158
- diffoscope-280/debian/copyright +0 -131
- diffoscope-280/debian/diffoscope-minimal.docs +0 -1
- diffoscope-280/debian/diffoscope-minimal.install +0 -2
- diffoscope-280/debian/diffoscope-minimal.lintian-overrides +0 -1
- diffoscope-280/debian/diffoscope-minimal.manpages +0 -1
- diffoscope-280/debian/diffoscope.docs +0 -1
- diffoscope-280/debian/gbp.conf +0 -6
- diffoscope-280/debian/py3dist-overrides +0 -2
- diffoscope-280/debian/rules +0 -87
- diffoscope-280/debian/source/format +0 -1
- diffoscope-280/debian/source/lintian-overrides +0 -44
- diffoscope-280/debian/source/options +0 -13
- diffoscope-280/debian/tests/basic-command-line +0 -56
- diffoscope-280/debian/tests/control +0 -18
- diffoscope-280/debian/tests/control.in +0 -15
- diffoscope-280/debian/tests/control.sh +0 -33
- diffoscope-280/debian/tests/generate-recommends.py +0 -12
- diffoscope-280/debian/tests/pytest +0 -20
- diffoscope-280/debian/tests/pytest-with-recommends +0 -20
- diffoscope-280/debian/upstream/metadata +0 -4
- diffoscope-280/debian/upstream/signing-key.asc +0 -464
- diffoscope-280/debian/watch +0 -2
- diffoscope-280/debian/zsh-completion/_diffoscope +0 -50
- diffoscope-280/doc/Makefile +0 -38
- diffoscope-280/doc/diffoscope.h2m.0 +0 -9
- diffoscope-280/doc/logo.svg +0 -110
- diffoscope-280/pytest.ini +0 -9
- {diffoscope-280 → diffoscope-282}/CONTRIBUTING.md +0 -0
- {diffoscope-280 → diffoscope-282}/COPYING +0 -0
- {diffoscope-280 → diffoscope-282}/MANIFEST.in +0 -0
- {diffoscope-280 → diffoscope-282}/README.rst +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/changes.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/android.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/apk.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/arsc.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/berkeley_db.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/binary.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/binwalk.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/bzip2.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/cbfs.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/cpio.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/deb.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/debian.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/debian_fallback.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/decompile.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/device.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/dex.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/directory.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/docx.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/dtb.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/elf.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ffprobe.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/fit.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/fontconfig.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/fonts.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/fsimage.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/gettext.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/gif.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/git.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/gnumeric.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/gzip.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/haskell.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/hdf.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/html.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/icc.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/image.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ipk.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/iso9660.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/java.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/javascript.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/json.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/kbx.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/llvm.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/lz4.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/lzip.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/macho.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/missing_file.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/mono.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ocaml.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/odt.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ogg.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/openssh.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/openssl.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/pcap.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/pdf.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/pe32.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/pgp.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/png.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ppu.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ps.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/python.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/rdata.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/rpm.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/rpm_fallback.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/rust.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/sevenz.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/socket_or_fifo.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/sphinx.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/sqlite.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/squashfs.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/symlink.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/tar.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/text.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/uimage.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/__init__.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/archive.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/command.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/compare.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/container.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/file.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/fuzzy.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/operation.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/specialize.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/vmlinuz.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/wasm.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xar.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xml.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xmlb.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xsb.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xz.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/zip.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/comparators/zst.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/config.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/diff.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/difference.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/environ.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/exc.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/excludes.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/feeders.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/logging.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/main.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/path.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/__init__.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/formats.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/html/__init__.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/html/html.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/html/templates.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/icon.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/json.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/markdown.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/restructuredtext.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/text.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/presenters/utils.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/profiling.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/progress.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/readers/__init__.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/readers/json.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/readers/utils.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/scripts/extract-vmlinux +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/tempfiles.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/tools.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope/utils.py +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/dependency_links.txt +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/entry_points.txt +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/requires.txt +0 -0
- {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/top_level.txt +0 -0
- {diffoscope-280 → diffoscope-282}/extras_require.json +0 -0
- {diffoscope-280 → diffoscope-282}/pyproject.toml +0 -0
- {diffoscope-280 → diffoscope-282}/setup.cfg +0 -0
- {diffoscope-280 → diffoscope-282}/setup.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/__init__.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/__init__.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_android.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_apk.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_archive.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_arsc.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_berkeley_db.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_binary.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_binwalk.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_bzip2.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_cbfs.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_containers.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_cpio.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_deb.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_debian.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_device.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_dex.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_directory.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_docx.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_dtb.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_elf.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_elf_decompiler.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_epub.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_ffprobe.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_fit.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_fontconfig.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_fonts.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_fsimage.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_gettext.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_gif.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_git.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_gnumeric.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_gzip.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_haskell.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_hdf.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_html.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_icc.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_ico_image.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_ipk.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_iso9660.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_java.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_javascript.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_jpeg_image.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_json.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_kbx.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_lz4.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_lzip.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_macho.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_macho_decompiler.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_mono.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_ocaml.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_odt.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_ogg.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_openssh_pub_key.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_openssl.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_pcap.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_pdf.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_pgp.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_png.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_ppu.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_ps.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_python.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_rdata.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_rlib.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_rpm.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_sevenz.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_sockets.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_sphinx.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_sqlite.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_squashfs.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_symlink.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_tar.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_text.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_uimage.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_utils.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_wasm.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_xml.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_xsb.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_xz.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_zip.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/comparators/test_zst.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/conftest.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/Samyak-Malayalam1.ttf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/Samyak-Malayalam2.ttf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/Test1.class +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/Test2.class +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/android1.img +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/android2.img +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/android_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/apk_manifest_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/apk_zipinfo_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/archive1.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/archive12.diff.txt +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/archive2.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/arsc_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/base-files_157-r45695_ar71xx.ipk +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/base-files_157-r45918_ar71xx.ipk +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/berkeley6_db_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/berkeley_db_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/binary1 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/binary2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/binary_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/binary_hexdump_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/binwalk_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug881937_1.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug881937_2.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug881937_control_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug903391_1.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug903391_2.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug903401_1.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug903401_2.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug903565_1.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/bug903565_2.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/comment_zipdetails_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/comment_zipinfo_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/containers/a.tar.bz2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/containers/a.tar.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/containers/a.tar.xz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/containers/b.tar.bz2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/containers/b.tar.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/containers/b.tar.xz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/containers/different_files_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/cpio_listing_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/add/test-dbgsym-dbgsym_1_amd64.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/add/test-dbgsym_1_amd64.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/mult/test-dbgsym-dbgsym_1_amd64.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/mult/test-dbgsym_1_amd64.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/test-dbgsym_1.dsc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/test-dbgsym_1.tar.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/deb_metadata_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/debian-bug-875281.collapsed-diff.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/debian-bug-876316-control.tar.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/device_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/device_expected_diff_freebsd +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/device_expected_diff_reverse +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/device_expected_diff_reverse_freebsd +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/devicetree1.dtb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/devicetree2.dtb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/devicetree_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dex_expected_diffs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dex_javap_14_expected_diffs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/docx_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dot_buildinfo_fallback_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dot_changes_description_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dot_changes_different_contents_and_identical_files_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dot_changes_fallback_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dot_changes_identical_contents_and_different_files_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/dot_dsc_fallback_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elf_lib_metadata_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elf_lib_objdump_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elf_obj_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elf_obj_ghidra_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elf_obj_radare2_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elfmix1.not_a +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elfmix2.a +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elfmix_disassembly_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elfmix_mach_o_expected_diff__text +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elfmix_mach_o_expected_diff__text_16 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elfmix_src_c_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elfmix_x_obj_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/elfmix_x_obj_objdump_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/encrypted1.zip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/encrypted2.zip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/epub_expected_diffs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ext4_expected_diffs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/fat12_expected_diffs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/fit_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/fontconfig_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/fuzzy-tar-in-tar1.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/fuzzy-tar-in-tar2.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/fuzzy1.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/fuzzy2.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/fuzzy3.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/gif_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/git_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/git_expected_diff_freebsd +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/gnu_debuglink_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/gnumeric_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/gzip_metadata_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/haskell_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/hdf5_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/hello1.wasm +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/hello2.wasm +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/html_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/html_text_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/icc_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ico_image_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ico_image_meta_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ico_image_meta_expected_diff_v2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ignore_readelf_errors_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/inv_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ipk_metadata_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/iso9660_content_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/iso9660_content_expected_diff_cdrtools +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/iso9660_rockridge_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/iso9660_rockridge_expected_diff_cdrtools +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/javap_14_class_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/javap_class_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/javascript_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/jmod_zipdetails_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/jmod_zipinfo_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/jpeg_image_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/jpeg_image_meta_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/json_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/json_expected_ordering_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/kbx_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__cstring +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__eh_frame +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__la_symbol_ptr +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__stub_helper +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__stub_helper_16 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__stubs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__stubs_16 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__text +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__text_16 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__unwind_info +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_dyn_relocations +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_dyn_symbols +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_file_headers +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_needed_libs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_relocations +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_strings +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_symbols +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_symbols_llvm_11 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_obj_ghidra_expected_diff_main +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_obj_radare2_expected_diff_main +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_obj_radare2_expected_diff_printf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff__cstring +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff__data +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff__text +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff_headers +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff_indirect_symbols +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff_libraries +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff_strings +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/mo_charsets_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/mo_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/mozzip_zipinfo_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/mp3_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/no-perms.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ocaml_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/odt_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ogg_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/openssh_pub_key_expected_diff_12 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/openssh_pub_key_expected_diff_23 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/order1a.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/order1b.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/output.colored.txt +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/output.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/output.md +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/output.rst +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/output.txt +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/output_expected_363.html +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/output_expected_372.html +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/output_regression_875281.html +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pcap_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pdf_annotations_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pdf_metadata_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pdf_text_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pe_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pgp_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pgp_signature_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pgp_signed_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/png_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ppu_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/procyon_class_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ps_internal_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ps_text_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/pyc_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/quine.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/quine.zip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/quine_a.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/quine_b.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/quine_deb_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/quine_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rdb_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rds_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/resources1.arsc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/resources2.arsc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rlib_armap_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rlib_elf_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_10 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_15 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_16 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_5 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_7 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rpm_fallback_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rpm_header_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/rpm_listing_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/salsa-issue-363.diff.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/salsa-issue-372.diff.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/sqlite3_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/squashfs_root_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/squashfs_superblock_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/symlink_expected_destination_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/symlink_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/tar_listing_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1-le64.cache-4 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.a +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.apk +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.asc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.binwalk +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.buildinfo +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.bz2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.changes +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.cpio +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.db +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.debsrc.tar.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.debug +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.dex +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.disk.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.docx +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.dsc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.epub +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.exe +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.ext4 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.fat12 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.fat16 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.fat32 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.gif +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.git-index +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.gnumeric +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.hi +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.html +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.icc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.ico +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.inv +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.iso +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.jmod +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.jpg +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.js +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.kbx +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.lz4 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.lzip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.macho +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.mo +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.mozzip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.mp3 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.o +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.odt +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.ogg +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.pcap +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.pdf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.pgp +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.png +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.ppu +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.ps +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.pyc-renamed +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.rdb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.rdx +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.rlib +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.rpm +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.sqlite3 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.squashfs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.xml +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.xsb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.xz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1.zip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1_meta.ico +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1_meta.jpg +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1_root.squashfs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test1_signed.pgp +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2-le64.cache-4 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.a +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.apk +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.asc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.binwalk +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.buildinfo +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.bz2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.changes +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.cpio +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.db +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.deb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.debsrc.tar.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.debug +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.dex +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.disk.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.docx +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.dsc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.epub +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.exe +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.ext4 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.fat12 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.gif +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.git-index +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.gnumeric +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.gz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.hi +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.html +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.icc +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.ico +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.inv +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.iso +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.jmod +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.jpg +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.js +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.kbx +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.lz4 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.lzip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.macho +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.mo +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.mozzip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.mp3 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.o +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.odt +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.ogg +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.pcap +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.pdf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.pgp +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.png +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.ppu +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.ps +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.pyc-renamed +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.rdb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.rdx +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.rlib +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.rpm +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.sqlite3 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.squashfs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.tar +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.xml +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.xsb +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.xz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2.zip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2_meta.ico +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2_meta.jpg +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2_root.squashfs +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test2_signed.pgp +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test3.apk +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test3.changes +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test3.gif +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test3.pdf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test3.xml +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test3.xz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test3.zip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test4.changes +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test4.gif +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test4.pdf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test4.xml +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test4.xz +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test5.changes +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_comment1.zip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_comment2.zip +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_directory_a_b_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_directory_b_a_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_directory_device_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_directory_file_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_directory_symlink_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_invalid.json +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_invalid.xml +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_iso8859-1.mo +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_no_charset.mo +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_openssh_pub_key1.pub +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_openssh_pub_key2.pub +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_openssh_pub_key3.pub +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_weird_non_unicode_chars1.pdf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_weird_non_unicode_chars2.pdf +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_xml_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/test_xml_ordering_differences_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_ascii1 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_ascii2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_ascii_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_iso8859 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_iso8859_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_order1 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_order2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_order_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_sevenzmetadata_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_unicode1 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_unicode2 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_unicode_binary_fallback +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_unicode_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/text_xz_list +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ttf_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/ttf_ttx_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/uimage_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/uimage_expected_diff_pre_5_41 +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/wasm_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/xsb_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/zip2_zipdetails_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/zip_bsdtar_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/zip_zipdetails_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/data/zip_zipinfo_expected_diff +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_diff_mask.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_difference.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_excludes.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_main.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_presenters.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_progress.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_quines.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_readers.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_source.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_tools.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/test_versions.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/utils/__init__.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/utils/data.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/utils/nonexisting.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/utils/tools.py +0 -0
- {diffoscope-280 → diffoscope-282}/tests/utils/versions.py +0 -0
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
|
|
5
5
|
# Copyright © 2016 Ximin Luo <infinity0@pwned.gg>
|
|
6
|
-
# Copyright © 2016-2020 Chris Lamb <lamby@debian.org>
|
|
6
|
+
# Copyright © 2016-2020, 2024 Chris Lamb <lamby@debian.org>
|
|
7
7
|
#
|
|
8
8
|
# diffoscope is free software: you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -69,8 +69,8 @@ class ArFile(File):
|
|
|
69
69
|
ArSymbolTableDumper, self.path, other.path
|
|
70
70
|
),
|
|
71
71
|
Difference.from_text_readers(
|
|
72
|
-
list_libarchive(self.path),
|
|
73
|
-
list_libarchive(other.path),
|
|
72
|
+
list_libarchive(self.path, ignore_errors=True),
|
|
73
|
+
list_libarchive(other.path, ignore_errors=True),
|
|
74
74
|
self.path,
|
|
75
75
|
other.path,
|
|
76
76
|
source="file list",
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#
|
|
2
|
+
# diffoscope: in-depth comparison of files, archives, and directories
|
|
3
|
+
#
|
|
4
|
+
# Copyright © 2024 Jelle van der Waa <jelle@archlinux.org>
|
|
5
|
+
#
|
|
6
|
+
# diffoscope is free software: you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
#
|
|
11
|
+
# diffoscope is distributed in the hope that it will be useful,
|
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
# GNU General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You should have received a copy of the GNU General Public License
|
|
17
|
+
# along with diffoscope. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
import subprocess
|
|
21
|
+
import re
|
|
22
|
+
import logging
|
|
23
|
+
|
|
24
|
+
from diffoscope.tools import tool_required
|
|
25
|
+
from diffoscope.difference import Difference
|
|
26
|
+
|
|
27
|
+
from .utils.file import File
|
|
28
|
+
from .utils.command import Command, our_check_output
|
|
29
|
+
|
|
30
|
+
logger = logging.getLogger(__name__)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class UKIDump(Command):
|
|
34
|
+
@tool_required("ukify")
|
|
35
|
+
def cmdline(self):
|
|
36
|
+
return ["ukify", "inspect", self.path]
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class UKIFile(File):
|
|
40
|
+
DESCRIPTION = "UKI image (.efi)"
|
|
41
|
+
FILE_EXTENSION_SUFFIX = {".efi"}
|
|
42
|
+
FILE_TYPE_RE = re.compile(r"^PE32\+")
|
|
43
|
+
|
|
44
|
+
@classmethod
|
|
45
|
+
def recognizes(cls, file):
|
|
46
|
+
if not super().recognizes(file):
|
|
47
|
+
return False
|
|
48
|
+
|
|
49
|
+
try:
|
|
50
|
+
our_check_output(
|
|
51
|
+
["objdump", "-h", "--section", ".linux", file.path],
|
|
52
|
+
)
|
|
53
|
+
return True
|
|
54
|
+
except subprocess.SubprocessError:
|
|
55
|
+
return False
|
|
56
|
+
|
|
57
|
+
def compare_details(self, other, source=None):
|
|
58
|
+
return [Difference.from_operation(UKIDump, self.path, other.path)]
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# diffoscope: in-depth comparison of files, archives, and directories
|
|
3
3
|
#
|
|
4
4
|
# Copyright © 2015 Jérémy Bobbio <lunar@debian.org>
|
|
5
|
-
# Copyright © 2016-
|
|
5
|
+
# Copyright © 2016-2024 Chris Lamb <lamby@debian.org>
|
|
6
6
|
#
|
|
7
7
|
# diffoscope is free software: you can redistribute it and/or modify
|
|
8
8
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -122,6 +122,14 @@ libarchive.ArchiveEntry.pathname = property(
|
|
|
122
122
|
|
|
123
123
|
|
|
124
124
|
def list_libarchive(path, ignore_errors=False):
|
|
125
|
+
"""
|
|
126
|
+
NB. Despite this method's contents being wrapped entirely in a try/except,
|
|
127
|
+
the use of yield operator means that the setting `ignore_errors` to `True`
|
|
128
|
+
will emit valid entries until there is an error, rather than a) masking all
|
|
129
|
+
entries if there is any error or b) skipping *over* errors to the next
|
|
130
|
+
entry.
|
|
131
|
+
"""
|
|
132
|
+
|
|
125
133
|
def force_str(val):
|
|
126
134
|
# libarchive ~5 began to return uname and gname as UTF-8 whilst
|
|
127
135
|
# previous versions returned bytes that required decoding.
|
|
@@ -224,6 +224,10 @@ EXTERNAL_TOOLS = {
|
|
|
224
224
|
"tar": {"debian": "tar", "arch": "tar", "guix": "tar"},
|
|
225
225
|
"tcpdump": {"debian": "tcpdump", "arch": "tcpdump", "guix": "tcpdump"},
|
|
226
226
|
"ttx": {"debian": "fonttools", "guix": "python-fonttools"},
|
|
227
|
+
"ukify": {
|
|
228
|
+
"debian": "systemd-ukify",
|
|
229
|
+
"arch": "systemd-ukify",
|
|
230
|
+
},
|
|
227
231
|
"unsquashfs": {
|
|
228
232
|
"debian": "squashfs-tools",
|
|
229
233
|
"arch": "squashfs-tools",
|
|
@@ -1,43 +1,10 @@
|
|
|
1
|
-
.coveragerc
|
|
2
|
-
.dockerignore
|
|
3
1
|
CONTRIBUTING.md
|
|
4
2
|
COPYING
|
|
5
|
-
Dockerfile
|
|
6
3
|
MANIFEST.in
|
|
7
4
|
README.rst
|
|
8
5
|
extras_require.json
|
|
9
6
|
pyproject.toml
|
|
10
|
-
pytest.ini
|
|
11
7
|
setup.py
|
|
12
|
-
bin/diffoscope
|
|
13
|
-
debian/README.source
|
|
14
|
-
debian/changelog
|
|
15
|
-
debian/check-dep-sizes.sh
|
|
16
|
-
debian/clean
|
|
17
|
-
debian/control
|
|
18
|
-
debian/copyright
|
|
19
|
-
debian/diffoscope-minimal.docs
|
|
20
|
-
debian/diffoscope-minimal.install
|
|
21
|
-
debian/diffoscope-minimal.lintian-overrides
|
|
22
|
-
debian/diffoscope-minimal.manpages
|
|
23
|
-
debian/diffoscope.docs
|
|
24
|
-
debian/gbp.conf
|
|
25
|
-
debian/py3dist-overrides
|
|
26
|
-
debian/rules
|
|
27
|
-
debian/watch
|
|
28
|
-
debian/source/format
|
|
29
|
-
debian/source/lintian-overrides
|
|
30
|
-
debian/source/options
|
|
31
|
-
debian/tests/basic-command-line
|
|
32
|
-
debian/tests/control
|
|
33
|
-
debian/tests/control.in
|
|
34
|
-
debian/tests/control.sh
|
|
35
|
-
debian/tests/generate-recommends.py
|
|
36
|
-
debian/tests/pytest
|
|
37
|
-
debian/tests/pytest-with-recommends
|
|
38
|
-
debian/upstream/metadata
|
|
39
|
-
debian/upstream/signing-key.asc
|
|
40
|
-
debian/zsh-completion/_diffoscope
|
|
41
8
|
diffoscope/__init__.py
|
|
42
9
|
diffoscope/changes.py
|
|
43
10
|
diffoscope/config.py
|
|
@@ -136,6 +103,7 @@ diffoscope/comparators/symlink.py
|
|
|
136
103
|
diffoscope/comparators/tar.py
|
|
137
104
|
diffoscope/comparators/text.py
|
|
138
105
|
diffoscope/comparators/uimage.py
|
|
106
|
+
diffoscope/comparators/uki.py
|
|
139
107
|
diffoscope/comparators/vmlinuz.py
|
|
140
108
|
diffoscope/comparators/wasm.py
|
|
141
109
|
diffoscope/comparators/xar.py
|
|
@@ -170,9 +138,6 @@ diffoscope/readers/__init__.py
|
|
|
170
138
|
diffoscope/readers/json.py
|
|
171
139
|
diffoscope/readers/utils.py
|
|
172
140
|
diffoscope/scripts/extract-vmlinux
|
|
173
|
-
doc/Makefile
|
|
174
|
-
doc/diffoscope.h2m.0
|
|
175
|
-
doc/logo.svg
|
|
176
141
|
tests/__init__.py
|
|
177
142
|
tests/conftest.py
|
|
178
143
|
tests/test_diff_mask.py
|
|
@@ -259,6 +224,7 @@ tests/comparators/test_symlink.py
|
|
|
259
224
|
tests/comparators/test_tar.py
|
|
260
225
|
tests/comparators/test_text.py
|
|
261
226
|
tests/comparators/test_uimage.py
|
|
227
|
+
tests/comparators/test_uki.py
|
|
262
228
|
tests/comparators/test_utils.py
|
|
263
229
|
tests/comparators/test_wasm.py
|
|
264
230
|
tests/comparators/test_xml.py
|
|
@@ -319,6 +285,7 @@ tests/data/dot_changes_different_contents_and_identical_files_expected_diff
|
|
|
319
285
|
tests/data/dot_changes_fallback_expected_diff
|
|
320
286
|
tests/data/dot_changes_identical_contents_and_different_files_expected_diff
|
|
321
287
|
tests/data/dot_dsc_fallback_expected_diff
|
|
288
|
+
tests/data/dummyx64.efi.stub
|
|
322
289
|
tests/data/elf_lib_metadata_expected_diff
|
|
323
290
|
tests/data/elf_lib_objdump_expected_diff
|
|
324
291
|
tests/data/elf_obj_expected_diff
|
|
@@ -653,6 +620,7 @@ tests/data/ttf_expected_diff
|
|
|
653
620
|
tests/data/ttf_ttx_expected_diff
|
|
654
621
|
tests/data/uimage_expected_diff
|
|
655
622
|
tests/data/uimage_expected_diff_pre_5_41
|
|
623
|
+
tests/data/uki_expected_diff
|
|
656
624
|
tests/data/wasm_expected_diff
|
|
657
625
|
tests/data/xsb_expected_diff
|
|
658
626
|
tests/data/zip2_zipdetails_expected_diff
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
#
|
|
2
|
+
# diffoscope: in-depth comparison of files, archives, and directories
|
|
3
|
+
#
|
|
4
|
+
# Copyright © 2024 Jelle van der Waa <jelle@archlinux.org>
|
|
5
|
+
#
|
|
6
|
+
# diffoscope is free software: you can redistribute it and/or modify
|
|
7
|
+
# it under the terms of the GNU General Public License as published by
|
|
8
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
9
|
+
# (at your option) any later version.
|
|
10
|
+
#
|
|
11
|
+
# diffoscope is distributed in the hope that it will be useful,
|
|
12
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
+
# GNU General Public License for more details.
|
|
15
|
+
#
|
|
16
|
+
# You should have received a copy of the GNU General Public License
|
|
17
|
+
# along with diffoscope. If not, see <https://www.gnu.org/licenses/>.
|
|
18
|
+
|
|
19
|
+
import pytest
|
|
20
|
+
|
|
21
|
+
from diffoscope.comparators.binary import FilesystemFile
|
|
22
|
+
from diffoscope.comparators.uki import UKIFile
|
|
23
|
+
from diffoscope.comparators.utils.command import our_check_output
|
|
24
|
+
from diffoscope.comparators.utils.specialize import specialize
|
|
25
|
+
|
|
26
|
+
from ..utils.data import assert_diff, load_fixture
|
|
27
|
+
from ..utils.tools import skip_unless_tools_exist
|
|
28
|
+
|
|
29
|
+
efi_stub = load_fixture("dummyx64.efi.stub")
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def uki_fixture(prefix, os_release, uname):
|
|
33
|
+
@pytest.fixture
|
|
34
|
+
def uki(tmpdir, efi_stub):
|
|
35
|
+
input_ = str(tmpdir.join(prefix))
|
|
36
|
+
output = str(tmpdir.join("{}.unsigned.efi".format(prefix)))
|
|
37
|
+
|
|
38
|
+
with open(input_, "w") as fp:
|
|
39
|
+
fp.write("kernel")
|
|
40
|
+
|
|
41
|
+
our_check_output(
|
|
42
|
+
[
|
|
43
|
+
"ukify",
|
|
44
|
+
"build",
|
|
45
|
+
"--stub",
|
|
46
|
+
efi_stub.path,
|
|
47
|
+
"--linux",
|
|
48
|
+
input_,
|
|
49
|
+
"--os-release",
|
|
50
|
+
os_release,
|
|
51
|
+
"--uname",
|
|
52
|
+
uname,
|
|
53
|
+
],
|
|
54
|
+
cwd=tmpdir,
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
return specialize(FilesystemFile(output))
|
|
58
|
+
|
|
59
|
+
return uki
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
uki1 = uki_fixture("linux1", "arch", "6.11")
|
|
63
|
+
uki2 = uki_fixture("linux2", "debian", "6.12")
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@pytest.fixture
|
|
67
|
+
def differences(uki1, uki2):
|
|
68
|
+
return uki1.compare(uki2).details
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@skip_unless_tools_exist("objdump")
|
|
72
|
+
@skip_unless_tools_exist("ukify")
|
|
73
|
+
def test_no_differences(uki1):
|
|
74
|
+
difference = uki1.compare(uki1)
|
|
75
|
+
assert difference is None
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
@skip_unless_tools_exist("objdump")
|
|
79
|
+
@skip_unless_tools_exist("ukify")
|
|
80
|
+
def test_diff(differences):
|
|
81
|
+
assert_diff(differences[0], "uki_expected_diff")
|
|
Binary file
|
|
Binary file
|
diffoscope-280/.coveragerc
DELETED
diffoscope-280/.dockerignore
DELETED
diffoscope-280/Dockerfile
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
FROM debian:sid-slim
|
|
2
|
-
|
|
3
|
-
ARG DEBIAN_FRONTEND=noninteractive
|
|
4
|
-
|
|
5
|
-
ADD [".", "/srv/diffoscope"]
|
|
6
|
-
RUN mkdir -p /usr/share/man/man1/ \
|
|
7
|
-
&& apt-get update && apt-get install --yes --no-install-recommends \
|
|
8
|
-
build-essential devscripts equivs \
|
|
9
|
-
&& mk-build-deps --install --tool 'apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' /srv/diffoscope/debian/control \
|
|
10
|
-
&& apt-get remove --purge --yes \
|
|
11
|
-
build-essential devscripts equivs \
|
|
12
|
-
&& rm -rf /srv/diffoscope/debian \
|
|
13
|
-
&& rm -rf /var/lib/apt/lists/* \
|
|
14
|
-
&& useradd -ms /bin/bash user
|
|
15
|
-
|
|
16
|
-
USER user
|
|
17
|
-
WORKDIR /home/user
|
|
18
|
-
|
|
19
|
-
ENV PATH="/srv/diffoscope/bin:${PATH}"
|
|
20
|
-
|
|
21
|
-
ENTRYPOINT ["/srv/diffoscope/bin/diffoscope"]
|
diffoscope-280/bin/diffoscope
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
# PYTHON_ARGCOMPLETE_OK
|
|
3
|
-
# -*- coding: utf-8 -*-
|
|
4
|
-
#
|
|
5
|
-
# diffoscope: in-depth comparison of files, archives, and directories
|
|
6
|
-
#
|
|
7
|
-
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
|
|
8
|
-
#
|
|
9
|
-
# diffoscope is free software: you can redistribute it and/or modify
|
|
10
|
-
# it under the terms of the GNU General Public License as published by
|
|
11
|
-
# the Free Software Foundation, either version 3 of the License, or
|
|
12
|
-
# (at your option) any later version.
|
|
13
|
-
#
|
|
14
|
-
# diffoscope is distributed in the hope that it will be useful,
|
|
15
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
-
# GNU General Public License for more details.
|
|
18
|
-
#
|
|
19
|
-
# You should have received a copy of the GNU General Public License
|
|
20
|
-
# along with diffoscope. If not, see <https://www.gnu.org/licenses/>.
|
|
21
|
-
|
|
22
|
-
import os
|
|
23
|
-
import sys
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
# Prefer local modules over any system-installed ones to ensure that running a
|
|
27
|
-
# Git version from any current working directory does not have unexpected
|
|
28
|
-
# behaviour.
|
|
29
|
-
parent = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
|
|
30
|
-
if os.path.exists(os.path.join(parent, 'diffoscope', '__init__.py')):
|
|
31
|
-
sys.path.insert(0, parent)
|
|
32
|
-
|
|
33
|
-
from diffoscope.main import main
|
|
34
|
-
|
|
35
|
-
if __name__ == '__main__':
|
|
36
|
-
main()
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
diffoscope: hacking tips
|
|
2
|
-
========================
|
|
3
|
-
|
|
4
|
-
Running the test suite
|
|
5
|
-
----------------------
|
|
6
|
-
|
|
7
|
-
Tests are meant to be run with PyTest. The easiest way is simple to run
|
|
8
|
-
the tests are then:
|
|
9
|
-
|
|
10
|
-
$ PYTHONPATH=. py.test
|
|
11
|
-
|
|
12
|
-
To get code coverage:
|
|
13
|
-
|
|
14
|
-
$ PYTHONPATH=. py.test --cov diffoscope --cov-report html
|