diffoscope 262__tar.gz → 263__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-262 → diffoscope-263}/PKG-INFO +1 -1
- {diffoscope-262 → diffoscope-263}/debian/changelog +19 -2
- {diffoscope-262 → diffoscope-263}/debian/tests/control +1 -1
- {diffoscope-262 → diffoscope-263}/diffoscope/__init__.py +1 -1
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/zip.py +28 -7
- {diffoscope-262 → diffoscope-263}/diffoscope/external_tools.py +1 -0
- {diffoscope-262 → diffoscope-263}/diffoscope.egg-info/PKG-INFO +1 -1
- {diffoscope-262 → diffoscope-263}/diffoscope.egg-info/SOURCES.txt +4 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_epub.py +10 -8
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_zip.py +13 -20
- diffoscope-263/tests/data/comment_zipdetails_expected_diff +45 -0
- diffoscope-263/tests/data/epub_expected_diffs +690 -0
- diffoscope-263/tests/data/jmod_zipdetails_expected_diff +20 -0
- diffoscope-263/tests/data/zip2_zipdetails_expected_diff +19 -0
- diffoscope-263/tests/data/zip_zipdetails_expected_diff +177 -0
- {diffoscope-262 → diffoscope-263}/tests/utils/tools.py +2 -2
- diffoscope-262/tests/data/epub_expected_diffs +0 -68
- {diffoscope-262 → diffoscope-263}/.coveragerc +0 -0
- {diffoscope-262 → diffoscope-263}/.dockerignore +0 -0
- {diffoscope-262 → diffoscope-263}/CONTRIBUTING.md +0 -0
- {diffoscope-262 → diffoscope-263}/COPYING +0 -0
- {diffoscope-262 → diffoscope-263}/Dockerfile +0 -0
- {diffoscope-262 → diffoscope-263}/MANIFEST.in +0 -0
- {diffoscope-262 → diffoscope-263}/README.rst +0 -0
- {diffoscope-262 → diffoscope-263}/bin/diffoscope +0 -0
- {diffoscope-262 → diffoscope-263}/debian/README.source +0 -0
- {diffoscope-262 → diffoscope-263}/debian/check-dep-sizes.sh +0 -0
- {diffoscope-262 → diffoscope-263}/debian/clean +0 -0
- {diffoscope-262 → diffoscope-263}/debian/control +0 -0
- {diffoscope-262 → diffoscope-263}/debian/copyright +0 -0
- {diffoscope-262 → diffoscope-263}/debian/diffoscope-minimal.docs +0 -0
- {diffoscope-262 → diffoscope-263}/debian/diffoscope-minimal.install +0 -0
- {diffoscope-262 → diffoscope-263}/debian/diffoscope-minimal.manpages +0 -0
- {diffoscope-262 → diffoscope-263}/debian/diffoscope.docs +0 -0
- {diffoscope-262 → diffoscope-263}/debian/gbp.conf +0 -0
- {diffoscope-262 → diffoscope-263}/debian/py3dist-overrides +0 -0
- {diffoscope-262 → diffoscope-263}/debian/rules +0 -0
- {diffoscope-262 → diffoscope-263}/debian/source/format +0 -0
- {diffoscope-262 → diffoscope-263}/debian/source/lintian-overrides +0 -0
- {diffoscope-262 → diffoscope-263}/debian/source/options +0 -0
- {diffoscope-262 → diffoscope-263}/debian/tests/basic-command-line +0 -0
- {diffoscope-262 → diffoscope-263}/debian/tests/control.in +0 -0
- {diffoscope-262 → diffoscope-263}/debian/tests/control.sh +0 -0
- {diffoscope-262 → diffoscope-263}/debian/tests/generate-recommends.py +0 -0
- {diffoscope-262 → diffoscope-263}/debian/tests/pytest +0 -0
- {diffoscope-262 → diffoscope-263}/debian/tests/pytest-with-recommends +0 -0
- {diffoscope-262 → diffoscope-263}/debian/upstream/metadata +0 -0
- {diffoscope-262 → diffoscope-263}/debian/upstream/signing-key.asc +0 -0
- {diffoscope-262 → diffoscope-263}/debian/watch +0 -0
- {diffoscope-262 → diffoscope-263}/debian/zsh-completion/_diffoscope +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/changes.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/__init__.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/android.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/apk.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/ar.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/arsc.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/berkeley_db.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/binary.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/binwalk.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/bzip2.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/cbfs.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/cpio.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/deb.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/debian.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/debian_fallback.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/decompile.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/device.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/dex.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/directory.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/docx.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/dtb.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/elf.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/ffprobe.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/fit.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/fontconfig.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/fonts.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/fsimage.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/gettext.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/gif.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/git.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/gnumeric.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/gzip.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/haskell.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/hdf.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/html.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/icc.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/image.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/ipk.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/iso9660.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/java.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/javascript.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/json.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/kbx.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/llvm.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/lz4.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/lzip.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/macho.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/missing_file.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/mono.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/ocaml.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/odt.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/ogg.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/openssh.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/openssl.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/pcap.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/pdf.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/pe32.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/pgp.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/png.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/ppu.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/ps.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/python.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/rdata.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/rpm.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/rpm_fallback.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/rust.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/sevenz.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/socket_or_fifo.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/sphinx.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/sqlite.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/squashfs.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/symlink.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/tar.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/text.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/uimage.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/__init__.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/archive.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/command.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/compare.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/container.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/file.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/fuzzy.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/libarchive.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/operation.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/utils/specialize.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/vmlinuz.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/wasm.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/xar.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/xml.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/xmlb.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/xsb.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/xz.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/comparators/zst.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/config.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/diff.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/difference.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/environ.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/exc.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/excludes.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/feeders.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/logging.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/main.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/path.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/__init__.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/formats.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/html/__init__.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/html/html.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/html/templates.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/icon.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/json.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/markdown.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/restructuredtext.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/text.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/presenters/utils.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/profiling.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/progress.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/readers/__init__.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/readers/json.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/readers/utils.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/scripts/extract-vmlinux +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/tempfiles.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/tools.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope/utils.py +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope.egg-info/dependency_links.txt +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope.egg-info/entry_points.txt +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope.egg-info/requires.txt +0 -0
- {diffoscope-262 → diffoscope-263}/diffoscope.egg-info/top_level.txt +0 -0
- {diffoscope-262 → diffoscope-263}/doc/Makefile +0 -0
- {diffoscope-262 → diffoscope-263}/doc/diffoscope.h2m.0 +0 -0
- {diffoscope-262 → diffoscope-263}/doc/logo.svg +0 -0
- {diffoscope-262 → diffoscope-263}/extras_require.json +0 -0
- {diffoscope-262 → diffoscope-263}/pyproject.toml +0 -0
- {diffoscope-262 → diffoscope-263}/pytest.ini +0 -0
- {diffoscope-262 → diffoscope-263}/setup.cfg +0 -0
- {diffoscope-262 → diffoscope-263}/setup.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/__init__.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/__init__.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_android.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_apk.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_archive.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_arsc.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_berkeley_db.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_binary.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_binwalk.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_bzip2.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_cbfs.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_containers.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_cpio.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_deb.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_debian.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_device.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_dex.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_directory.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_docx.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_dtb.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_elf.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_elf_decompiler.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_ffprobe.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_fit.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_fontconfig.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_fonts.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_fsimage.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_gettext.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_gif.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_git.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_gnumeric.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_gzip.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_haskell.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_hdf.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_html.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_icc.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_ico_image.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_ipk.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_iso9660.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_java.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_javascript.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_jpeg_image.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_json.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_kbx.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_lz4.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_lzip.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_macho.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_macho_decompiler.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_mono.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_ocaml.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_odt.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_ogg.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_openssh_pub_key.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_openssl.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_pcap.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_pdf.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_pgp.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_png.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_ppu.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_ps.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_python.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_rdata.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_rlib.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_rpm.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_sevenz.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_sockets.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_sphinx.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_sqlite.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_squashfs.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_symlink.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_tar.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_text.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_uimage.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_utils.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_wasm.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_xml.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_xsb.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_xz.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/comparators/test_zst.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/conftest.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/Samyak-Malayalam1.ttf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/Samyak-Malayalam2.ttf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/Test1.class +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/Test2.class +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/android1.img +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/android2.img +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/android_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/apk_manifest_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/apk_zipinfo_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/archive1.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/archive12.diff.txt +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/archive2.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/arsc_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/base-files_157-r45695_ar71xx.ipk +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/base-files_157-r45918_ar71xx.ipk +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/berkeley6_db_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/berkeley_db_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/binary1 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/binary2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/binary_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/binary_hexdump_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/binwalk_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug881937_1.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug881937_2.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug881937_control_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug903391_1.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug903391_2.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug903401_1.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug903401_2.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug903565_1.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/bug903565_2.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/comment_zipinfo_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/containers/a.tar.bz2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/containers/a.tar.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/containers/a.tar.xz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/containers/b.tar.bz2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/containers/b.tar.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/containers/b.tar.xz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/containers/different_files_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/cpio_listing_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dbgsym/add/test-dbgsym-dbgsym_1_amd64.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dbgsym/add/test-dbgsym_1_amd64.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dbgsym/mult/test-dbgsym-dbgsym_1_amd64.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dbgsym/mult/test-dbgsym_1_amd64.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dbgsym/test-dbgsym_1.dsc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dbgsym/test-dbgsym_1.tar.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/deb_metadata_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/debian-bug-875281.collapsed-diff.json +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/debian-bug-876316-control.tar.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/device_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/device_expected_diff_freebsd +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/device_expected_diff_reverse +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/device_expected_diff_reverse_freebsd +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/devicetree1.dtb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/devicetree2.dtb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/devicetree_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dex_expected_diffs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dex_javap_14_expected_diffs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/docx_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dot_buildinfo_fallback_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dot_changes_description_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dot_changes_different_contents_and_identical_files_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dot_changes_fallback_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dot_changes_identical_contents_and_different_files_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/dot_dsc_fallback_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elf_lib_metadata_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elf_lib_objdump_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elf_obj_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elf_obj_ghidra_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elf_obj_radare2_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elfmix1.not_a +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elfmix2.a +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elfmix_disassembly_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elfmix_mach_o_expected_diff__text +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elfmix_mach_o_expected_diff__text_16 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elfmix_src_c_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elfmix_x_obj_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/elfmix_x_obj_objdump_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/encrypted1.zip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/encrypted2.zip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ext4_expected_diffs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/fat12_expected_diffs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/fit_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/fontconfig_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/fuzzy-tar-in-tar1.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/fuzzy-tar-in-tar2.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/fuzzy1.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/fuzzy2.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/fuzzy3.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/gif_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/git_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/git_expected_diff_freebsd +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/gnu_debuglink_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/gnumeric_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/gzip_metadata_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/haskell_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/hdf5_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/hello1.wasm +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/hello2.wasm +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/html_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/html_text_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/icc_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ico_image_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ico_image_meta_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ico_image_meta_expected_diff_v2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ignore_readelf_errors_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/inv_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ipk_metadata_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/iso9660_content_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/iso9660_content_expected_diff_cdrtools +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/iso9660_rockridge_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/iso9660_rockridge_expected_diff_cdrtools +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/javap_14_class_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/javap_class_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/javascript_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/jmod_zipinfo_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/jpeg_image_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/jpeg_image_meta_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/json_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/json_expected_ordering_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/kbx_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__cstring +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__eh_frame +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__la_symbol_ptr +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__stub_helper +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__stub_helper_16 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__stubs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__stubs_16 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__text +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__text_16 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff__unwind_info +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff_dyn_relocations +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff_dyn_symbols +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff_file_headers +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff_needed_libs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff_relocations +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff_strings +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff_symbols +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_llvm_expected_diff_symbols_llvm_11 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_obj_ghidra_expected_diff_main +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_obj_radare2_expected_diff_main +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_obj_radare2_expected_diff_printf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_otool_expected_diff__cstring +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_otool_expected_diff__data +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_otool_expected_diff__text +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_otool_expected_diff_headers +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_otool_expected_diff_indirect_symbols +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_otool_expected_diff_libraries +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/macho_otool_expected_diff_strings +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/mo_charsets_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/mo_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/mozzip_zipinfo_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/mp3_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/no-perms.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ocaml_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/odt_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ogg_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/openssh_pub_key_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/order1a.json +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/order1b.json +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/output.colored.txt +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/output.json +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/output.md +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/output.rst +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/output.txt +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/output_expected_363.html +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/output_regression_875281.html +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pcap_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pdf_annotations_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pdf_metadata_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pdf_text_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pe_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pgp_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pgp_signature_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pgp_signed_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/png_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ppu_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/procyon_class_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ps_internal_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ps_text_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/pyc_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/quine.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/quine.zip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/quine_a.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/quine_b.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/quine_deb_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/quine_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rdb_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rds_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/resources1.arsc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/resources2.arsc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rlib_armap_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rlib_elf_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rlib_llvm_dis_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rlib_llvm_dis_expected_diff_10 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rlib_llvm_dis_expected_diff_15 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rlib_llvm_dis_expected_diff_16 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rlib_llvm_dis_expected_diff_5 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rlib_llvm_dis_expected_diff_7 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rpm_fallback_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rpm_header_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/rpm_listing_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/salsa-issue-363.diff.json +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/sqlite3_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/squashfs_root_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/squashfs_superblock_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/symlink_expected_destination_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/symlink_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/tar_listing_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1-le64.cache-4 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.a +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.apk +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.asc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.binwalk +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.buildinfo +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.bz2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.changes +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.cpio +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.db +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.debsrc.tar.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.debug +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.dex +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.disk.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.docx +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.dsc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.epub +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.exe +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.ext4 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.fat12 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.fat16 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.fat32 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.gif +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.git-index +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.gnumeric +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.hi +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.html +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.icc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.ico +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.inv +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.iso +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.jmod +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.jpg +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.js +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.json +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.kbx +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.lz4 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.lzip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.macho +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.mo +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.mozzip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.mp3 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.o +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.odt +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.ogg +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.pcap +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.pdf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.pgp +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.png +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.ppu +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.ps +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.pyc-renamed +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.rdb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.rdx +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.rlib +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.rpm +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.sqlite3 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.squashfs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.xml +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.xsb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.xz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1.zip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1_meta.ico +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1_meta.jpg +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1_root.squashfs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test1_signed.pgp +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2-le64.cache-4 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.a +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.apk +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.asc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.binwalk +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.buildinfo +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.bz2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.changes +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.cpio +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.db +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.deb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.debsrc.tar.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.debug +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.dex +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.disk.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.docx +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.dsc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.epub +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.exe +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.ext4 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.fat12 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.gif +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.git-index +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.gnumeric +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.gz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.hi +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.html +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.icc +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.ico +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.inv +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.iso +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.jmod +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.jpg +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.js +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.json +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.kbx +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.lz4 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.lzip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.macho +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.mo +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.mozzip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.mp3 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.o +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.odt +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.ogg +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.pcap +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.pdf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.pgp +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.png +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.ppu +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.ps +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.pyc-renamed +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.rdb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.rdx +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.rlib +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.rpm +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.sqlite3 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.squashfs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.tar +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.xml +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.xsb +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.xz +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2.zip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2_meta.ico +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2_meta.jpg +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2_root.squashfs +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test2_signed.pgp +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test3.apk +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test3.changes +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test3.gif +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test3.pdf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test3.xml +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test3.zip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test4.changes +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test4.gif +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test4.pdf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test4.xml +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test5.changes +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_comment1.zip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_comment2.zip +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_directory_a_b_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_directory_b_a_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_directory_device_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_directory_file_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_directory_symlink_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_invalid.json +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_invalid.xml +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_iso8859-1.mo +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_no_charset.mo +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_openssh_pub_key1.pub +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_openssh_pub_key2.pub +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_weird_non_unicode_chars1.pdf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_weird_non_unicode_chars2.pdf +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_xml_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/test_xml_ordering_differences_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_ascii1 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_ascii2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_ascii_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_iso8859 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_iso8859_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_order1 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_order2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_order_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_sevenzmetadata_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_unicode1 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_unicode2 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_unicode_binary_fallback +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/text_unicode_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ttf_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/ttf_ttx_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/uimage_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/uimage_expected_diff_pre_5_41 +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/wasm_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/xsb_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/zip_bsdtar_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/data/zip_zipinfo_expected_diff +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_diff_mask.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_difference.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_excludes.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_main.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_presenters.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_progress.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_quines.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_readers.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_source.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_tools.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/test_versions.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/utils/__init__.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/utils/data.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/utils/nonexisting.py +0 -0
- {diffoscope-262 → diffoscope-263}/tests/utils/versions.py +0 -0
|
@@ -1,8 +1,25 @@
|
|
|
1
|
-
diffoscope (
|
|
1
|
+
diffoscope (264) UNRELEASED; urgency=medium
|
|
2
2
|
|
|
3
3
|
* WIP (generated upon release).
|
|
4
4
|
|
|
5
|
-
-- Chris Lamb <lamby@debian.org> Fri,
|
|
5
|
+
-- Chris Lamb <lamby@debian.org> Fri, 05 Apr 2024 12:24:24 +0100
|
|
6
|
+
|
|
7
|
+
diffoscope (263) unstable; urgency=medium
|
|
8
|
+
|
|
9
|
+
[ Chris Lamb ]
|
|
10
|
+
* Add support for the zipdetails(1) tool included in the Perl distribution.
|
|
11
|
+
Thanks to Larry Doolittle et al. for the pointer to this tool.
|
|
12
|
+
* Don't use parenthesis within test "skipping…" messages; PyTest adds its own
|
|
13
|
+
parenthesis, so we were ending up with double nested parens.
|
|
14
|
+
* Fix the .epub tests after supporting zipdetails(1).
|
|
15
|
+
* Update copyright years and debian/tests/control.
|
|
16
|
+
|
|
17
|
+
[ FC (Fay) Stegerman ]
|
|
18
|
+
* Fix MozillaZipContainer's monkeypatch after Python's zipfile module changed
|
|
19
|
+
to detect potentially insecure overlapping entries within .zip files.
|
|
20
|
+
(Closes: reproducible-builds/diffoscope#362)
|
|
21
|
+
|
|
22
|
+
-- Chris Lamb <lamby@debian.org> Fri, 05 Apr 2024 12:21:10 +0100
|
|
6
23
|
|
|
7
24
|
diffoscope (262) unstable; urgency=medium
|
|
8
25
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
# $ mv debian/tests/control.tmp debian/tests/control
|
|
8
8
|
|
|
9
9
|
Tests: pytest-with-recommends
|
|
10
|
-
Depends: python3-all, diffoscope, black, python3-pytest, python3-h5py, file, linux-image-amd64 [amd64] | linux-image-generic [amd64], 7zip, aapt [amd64 arm64 armel armhf i386 mips64el mipsel], abootimg, acl, apksigcopier, apksigner, apktool [!ppc64el !s390x], binutils-multiarch, bzip2, caca-utils, colord, coreboot-utils, db-util, default-jdk-headless | default-jdk | java-sdk, device-tree-compiler, dexdump [amd64 arm64 armhf i386], docx2txt, e2fsprogs, enjarify, ffmpeg, fontforge-extras, fonttools, fp-utils [!ppc64el !s390x], genisoimage, gettext, ghc, ghostscript, giflib-tools, gnumeric, gnupg-utils, gpg, hdf5-tools, html2text, imagemagick, jsbeautifier, libarchive-tools, libxmlb-utils, llvm, lz4 | liblz4-tool, lzip, mono-utils, ocaml-nox, odt2txt, oggvideotools [!s390x], openssh-client, openssl, pgpdump, poppler-utils, procyon-decompiler, python3-pdfminer, r-base-core, rpm2cpio, sng, sqlite3, squashfs-tools, tcpdump, u-boot-tools, unzip, wabt, xmlbeans, xxd, xz-utils, zip, zstd, androguard, python3-argcomplete, python3-binwalk, python3-defusedxml, python3-distro, python3-guestfs, python3-jsondiff, python3-progressbar, python3-pypdf, python3-debian, python3-pyxattr, python3-rpm, python3-tlsh
|
|
10
|
+
Depends: python3-all, diffoscope, black, python3-pytest, python3-h5py, file, linux-image-amd64 [amd64] | linux-image-generic [amd64], 7zip, aapt [amd64 arm64 armel armhf i386 mips64el mipsel], abootimg, acl, apksigcopier, apksigner, apktool [!ppc64el !s390x], binutils-multiarch, bzip2, caca-utils, colord, coreboot-utils, db-util, default-jdk-headless | default-jdk | java-sdk, device-tree-compiler, dexdump [amd64 arm64 armhf i386], docx2txt, e2fsprogs, enjarify, ffmpeg, fontforge-extras, fonttools, fp-utils [!ppc64el !s390x], genisoimage, gettext, ghc, ghostscript, giflib-tools, gnumeric, gnupg-utils, gpg, hdf5-tools, html2text, imagemagick, jsbeautifier, libarchive-tools, libxmlb-utils, llvm, lz4 | liblz4-tool, lzip, mono-utils, ocaml-nox, odt2txt, oggvideotools [!s390x], openssh-client, openssl, perl, pgpdump, poppler-utils, procyon-decompiler, python3-pdfminer, r-base-core, rpm2cpio, sng, sqlite3, squashfs-tools, tcpdump, u-boot-tools, unzip, wabt, xmlbeans, xxd, xz-utils, zip, zstd, androguard, python3-argcomplete, python3-binwalk, python3-defusedxml, python3-distro, python3-guestfs, python3-jsondiff, python3-progressbar, python3-pypdf, python3-debian, python3-pyxattr, python3-rpm, python3-tlsh
|
|
11
11
|
|
|
12
12
|
Tests: pytest
|
|
13
13
|
Depends: python3-all, diffoscope, python3-pytest, python3-h5py, file, python3-tlsh
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# diffoscope: in-depth comparison of files, archives, and directories
|
|
3
3
|
#
|
|
4
4
|
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
|
|
5
|
-
# Copyright © 2015-2022 Chris Lamb <lamby@debian.org>
|
|
5
|
+
# Copyright © 2015-2022, 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
|
|
@@ -154,6 +154,12 @@ def zipinfo_differences(file, other):
|
|
|
154
154
|
return []
|
|
155
155
|
|
|
156
156
|
|
|
157
|
+
class Zipdetails(Command):
|
|
158
|
+
@tool_required("zipdetails")
|
|
159
|
+
def cmdline(self):
|
|
160
|
+
return ["zipdetails", "--redact", "--scan", "--utc", self.path]
|
|
161
|
+
|
|
162
|
+
|
|
157
163
|
class ZipDirectory(Directory, ArchiveMember):
|
|
158
164
|
def __init__(self, archive, member_name):
|
|
159
165
|
ArchiveMember.__init__(self, archive, member_name)
|
|
@@ -251,12 +257,13 @@ class ZipFile(ZipFileBase):
|
|
|
251
257
|
if Config().exclude_directory_metadata != "recursive":
|
|
252
258
|
differences.extend(zipinfo_differences(self, other))
|
|
253
259
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
+
for op in (Zipnote, Zipdetails):
|
|
261
|
+
try:
|
|
262
|
+
differences.append(
|
|
263
|
+
Difference.from_operation(op, self.path, other.path)
|
|
264
|
+
)
|
|
265
|
+
except RequiredToolNotFound: # noqa
|
|
266
|
+
pass
|
|
260
267
|
|
|
261
268
|
return differences
|
|
262
269
|
|
|
@@ -266,10 +273,13 @@ class MozillaZipContainer(ZipContainer):
|
|
|
266
273
|
# This is gross: Monkeypatch zipfile._EndRecData to work with
|
|
267
274
|
# Mozilla-optimized ZIPs
|
|
268
275
|
_orig_EndRecData = zipfile._EndRecData
|
|
276
|
+
eocd_offset = None
|
|
269
277
|
|
|
270
278
|
def _EndRecData(fh):
|
|
271
279
|
endrec = _orig_EndRecData(fh)
|
|
272
280
|
if endrec:
|
|
281
|
+
nonlocal eocd_offset
|
|
282
|
+
eocd_offset = endrec[zipfile._ECD_LOCATION]
|
|
273
283
|
endrec[zipfile._ECD_LOCATION] = (
|
|
274
284
|
endrec[zipfile._ECD_OFFSET] + endrec[zipfile._ECD_SIZE]
|
|
275
285
|
)
|
|
@@ -278,6 +288,17 @@ class MozillaZipContainer(ZipContainer):
|
|
|
278
288
|
zipfile._EndRecData = _EndRecData
|
|
279
289
|
result = super(MozillaZipContainer, self).open_archive()
|
|
280
290
|
zipfile._EndRecData = _orig_EndRecData
|
|
291
|
+
# fix _end_offset after https://github.com/python/cpython/pull/110016
|
|
292
|
+
# added a check that fails because the central directory comes before
|
|
293
|
+
# the entries in these files
|
|
294
|
+
zinfos = sorted(
|
|
295
|
+
result.filelist,
|
|
296
|
+
key=lambda zinfo: zinfo.header_offset,
|
|
297
|
+
reverse=True,
|
|
298
|
+
)
|
|
299
|
+
if zinfos:
|
|
300
|
+
if hasattr(zinfos[0], "_end_offset"):
|
|
301
|
+
zinfos[0]._end_offset = eocd_offset
|
|
281
302
|
return result
|
|
282
303
|
|
|
283
304
|
|
|
@@ -296,6 +296,7 @@ tests/data/bug903401_1.deb
|
|
|
296
296
|
tests/data/bug903401_2.deb
|
|
297
297
|
tests/data/bug903565_1.deb
|
|
298
298
|
tests/data/bug903565_2.deb
|
|
299
|
+
tests/data/comment_zipdetails_expected_diff
|
|
299
300
|
tests/data/comment_zipinfo_expected_diff
|
|
300
301
|
tests/data/cpio_listing_expected_diff
|
|
301
302
|
tests/data/deb_metadata_expected_diff
|
|
@@ -368,6 +369,7 @@ tests/data/iso9660_rockridge_expected_diff_cdrtools
|
|
|
368
369
|
tests/data/javap_14_class_expected_diff
|
|
369
370
|
tests/data/javap_class_expected_diff
|
|
370
371
|
tests/data/javascript_expected_diff
|
|
372
|
+
tests/data/jmod_zipdetails_expected_diff
|
|
371
373
|
tests/data/jmod_zipinfo_expected_diff
|
|
372
374
|
tests/data/jpeg_image_expected_diff
|
|
373
375
|
tests/data/jpeg_image_meta_expected_diff
|
|
@@ -645,7 +647,9 @@ tests/data/uimage_expected_diff
|
|
|
645
647
|
tests/data/uimage_expected_diff_pre_5_41
|
|
646
648
|
tests/data/wasm_expected_diff
|
|
647
649
|
tests/data/xsb_expected_diff
|
|
650
|
+
tests/data/zip2_zipdetails_expected_diff
|
|
648
651
|
tests/data/zip_bsdtar_expected_diff
|
|
652
|
+
tests/data/zip_zipdetails_expected_diff
|
|
649
653
|
tests/data/zip_zipinfo_expected_diff
|
|
650
654
|
tests/data/containers/a.tar.bz2
|
|
651
655
|
tests/data/containers/a.tar.gz
|
|
@@ -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-2017, 2020-
|
|
5
|
+
# Copyright © 2016-2017, 2020-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
|
|
@@ -45,16 +45,18 @@ def differences(epub1, epub2):
|
|
|
45
45
|
return epub1.compare(epub2).details
|
|
46
46
|
|
|
47
47
|
|
|
48
|
-
@skip_unless_tools_exist("zipinfo")
|
|
48
|
+
@skip_unless_tools_exist("zipinfo", "zipdetails")
|
|
49
49
|
def test_differences(differences):
|
|
50
50
|
assert differences[0].source1 == "zipinfo {}"
|
|
51
51
|
assert differences[0].source2 == "zipinfo {}"
|
|
52
|
-
assert differences[1].source1
|
|
53
|
-
assert differences[1].source2
|
|
54
|
-
assert differences[2].source1 == "
|
|
55
|
-
assert differences[2].source2 == "
|
|
56
|
-
assert differences[3].source1 == "
|
|
57
|
-
assert differences[3].source2 == "
|
|
52
|
+
assert differences[1].source1.startswith("zipdetails ")
|
|
53
|
+
assert differences[1].source2.startswith("zipdetails ")
|
|
54
|
+
assert differences[2].source1 == "content.opf"
|
|
55
|
+
assert differences[2].source2 == "content.opf"
|
|
56
|
+
assert differences[3].source1 == "toc.ncx"
|
|
57
|
+
assert differences[3].source2 == "toc.ncx"
|
|
58
|
+
assert differences[4].source1 == "ch001.xhtml"
|
|
59
|
+
assert differences[4].source2 == "ch001.xhtml"
|
|
58
60
|
|
|
59
61
|
# Flatten everything recursively, as XMLFile will contain reformatted data
|
|
60
62
|
# under Difference.details.
|
|
@@ -18,12 +18,11 @@
|
|
|
18
18
|
# along with diffoscope. If not, see <https://www.gnu.org/licenses/>.
|
|
19
19
|
|
|
20
20
|
import pytest
|
|
21
|
-
import sys
|
|
22
21
|
|
|
23
22
|
from diffoscope.comparators.zip import ZipFile, MozillaZipFile, JmodJavaModule
|
|
24
23
|
|
|
25
24
|
from ..utils.data import load_fixture, assert_diff
|
|
26
|
-
from ..utils.tools import skip_unless_tools_exist
|
|
25
|
+
from ..utils.tools import skip_unless_tools_exist
|
|
27
26
|
from ..utils.nonexisting import assert_non_existing
|
|
28
27
|
|
|
29
28
|
|
|
@@ -39,12 +38,6 @@ jmod2 = load_fixture("test2.jmod")
|
|
|
39
38
|
test_comment1 = load_fixture("test_comment1.zip")
|
|
40
39
|
test_comment2 = load_fixture("test_comment2.zip")
|
|
41
40
|
|
|
42
|
-
# See #362
|
|
43
|
-
skip_if_python_zip_regression = pytest.mark.skipif(
|
|
44
|
-
sys.version_info >= (3, 10, 14),
|
|
45
|
-
reason="Test fails under 3.10.14+ (and 3.11.8+); possible regression",
|
|
46
|
-
)
|
|
47
|
-
|
|
48
41
|
|
|
49
42
|
def test_identification(zip1):
|
|
50
43
|
assert isinstance(zip1, ZipFile)
|
|
@@ -65,21 +58,23 @@ def differences2(zip1, zip3):
|
|
|
65
58
|
return zip1.compare(zip3).details
|
|
66
59
|
|
|
67
60
|
|
|
68
|
-
@skip_unless_tools_exist("zipinfo")
|
|
61
|
+
@skip_unless_tools_exist("zipinfo", "zipdetails")
|
|
69
62
|
def test_metadata(differences):
|
|
70
63
|
assert_diff(differences[0], "zip_zipinfo_expected_diff")
|
|
64
|
+
assert_diff(differences[1], "zip_zipdetails_expected_diff")
|
|
71
65
|
|
|
72
66
|
|
|
73
|
-
@skip_unless_tools_exist("zipinfo")
|
|
67
|
+
@skip_unless_tools_exist("zipinfo", "zipdetails")
|
|
74
68
|
def test_compressed_files(differences):
|
|
75
|
-
assert differences[
|
|
76
|
-
assert differences[
|
|
77
|
-
assert_diff(differences[
|
|
69
|
+
assert differences[2].source1 == "dir/text"
|
|
70
|
+
assert differences[2].source2 == "dir/text"
|
|
71
|
+
assert_diff(differences[2], "text_ascii_expected_diff")
|
|
78
72
|
|
|
79
73
|
|
|
80
|
-
@skip_unless_tools_exist("zipinfo", "bsdtar")
|
|
74
|
+
@skip_unless_tools_exist("zipinfo", "bsdtar", "zipdetails")
|
|
81
75
|
def test_extra_fields(differences2):
|
|
82
76
|
assert_diff(differences2[0], "zip_bsdtar_expected_diff")
|
|
77
|
+
assert_diff(differences2[1], "zip2_zipdetails_expected_diff")
|
|
83
78
|
|
|
84
79
|
|
|
85
80
|
@skip_unless_tools_exist("zipinfo")
|
|
@@ -91,7 +86,6 @@ def test_mozzip_identification(mozzip1):
|
|
|
91
86
|
assert isinstance(mozzip1, MozillaZipFile)
|
|
92
87
|
|
|
93
88
|
|
|
94
|
-
@skip_if_python_zip_regression
|
|
95
89
|
def test_mozzip_no_differences(mozzip1):
|
|
96
90
|
difference = mozzip1.compare(mozzip1)
|
|
97
91
|
assert difference is None
|
|
@@ -103,13 +97,11 @@ def mozzip_differences(mozzip1, mozzip2):
|
|
|
103
97
|
|
|
104
98
|
|
|
105
99
|
@skip_unless_tools_exist("zipinfo")
|
|
106
|
-
@skip_if_python_zip_regression
|
|
107
100
|
def test_mozzip_metadata(mozzip_differences, mozzip1, mozzip2):
|
|
108
101
|
assert_diff(mozzip_differences[0], "mozzip_zipinfo_expected_diff")
|
|
109
102
|
|
|
110
103
|
|
|
111
104
|
@skip_unless_tools_exist("zipinfo")
|
|
112
|
-
@skip_if_python_zip_regression
|
|
113
105
|
def test_mozzip_compressed_files(mozzip_differences):
|
|
114
106
|
assert mozzip_differences[-1].source1 == "dir/text"
|
|
115
107
|
assert mozzip_differences[-1].source2 == "dir/text"
|
|
@@ -117,7 +109,6 @@ def test_mozzip_compressed_files(mozzip_differences):
|
|
|
117
109
|
|
|
118
110
|
|
|
119
111
|
@skip_unless_tools_exist("zipinfo")
|
|
120
|
-
@skip_if_python_zip_regression
|
|
121
112
|
def test_mozzip_compare_non_existing(monkeypatch, mozzip1):
|
|
122
113
|
assert_non_existing(monkeypatch, mozzip1)
|
|
123
114
|
|
|
@@ -136,9 +127,10 @@ def jmod_differences(jmod1, jmod2):
|
|
|
136
127
|
return jmod1.compare(jmod2).details
|
|
137
128
|
|
|
138
129
|
|
|
139
|
-
@skip_unless_tools_exist("zipinfo")
|
|
130
|
+
@skip_unless_tools_exist("zipinfo", "zipdetails")
|
|
140
131
|
def test_jmod_metadata(jmod_differences, jmod1, jmod2):
|
|
141
132
|
assert_diff(jmod_differences[0], "jmod_zipinfo_expected_diff")
|
|
133
|
+
assert_diff(jmod_differences[1], "jmod_zipdetails_expected_diff")
|
|
142
134
|
|
|
143
135
|
|
|
144
136
|
def test_encrypted(encrypted_zip1, encrypted_zip2):
|
|
@@ -151,6 +143,7 @@ def comment_differences(test_comment1, test_comment2):
|
|
|
151
143
|
return test_comment1.compare(test_comment2).details
|
|
152
144
|
|
|
153
145
|
|
|
154
|
-
@skip_unless_tools_exist("zipnote")
|
|
146
|
+
@skip_unless_tools_exist("zipnote", "zipdetails")
|
|
155
147
|
def test_commented(comment_differences):
|
|
156
148
|
assert_diff(comment_differences[1], "comment_zipinfo_expected_diff")
|
|
149
|
+
assert_diff(comment_differences[2], "comment_zipdetails_expected_diff")
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
@@ -33,15 +33,15 @@
|
|
2
|
+
004B Compression Method 0000 'Stored'
|
|
3
|
+
004D Last Mod Time 4D869485 'Thu Dec 6 18:36:10 2018'
|
|
4
|
+
0051 CRC 00000000
|
|
5
|
+
0055 Compressed Length 00000000
|
|
6
|
+
0059 Uncompressed Length 00000000
|
|
7
|
+
005D Filename Length 0003
|
|
8
|
+
005F Extra Length 0018
|
|
9
|
+
-0061 Comment Length 0000
|
|
10
|
+
+0061 Comment Length 0005
|
|
11
|
+
0063 Disk Start 0000
|
|
12
|
+
0065 Int File Attributes 0000
|
|
13
|
+
[Bit 0] 0 'Binary Data'
|
|
14
|
+
0067 Ext File Attributes 81A40000
|
|
15
|
+
006B Local Header Offset 00000000
|
|
16
|
+
006F Filename 'XXX'
|
|
17
|
+
0072 Extra ID #0001 5455 'UT: Extended Timestamp'
|
|
18
|
+
@@ -51,17 +51,19 @@
|
|
19
|
+
007B Extra ID #0002 7875 'ux: Unix Extra Type 3'
|
|
20
|
+
007D Length 000B
|
|
21
|
+
007F Version 01
|
|
22
|
+
0080 UID Size 04
|
|
23
|
+
0081 UID 000003E8
|
|
24
|
+
0085 GID Size 04
|
|
25
|
+
0086 GID 000003E8
|
|
26
|
+
+008A Comment 'hello'
|
|
27
|
+
|
|
28
|
+
-0086 END CENTRAL HEADER 06054B50
|
|
29
|
+
-008A Number of this disk 0000
|
|
30
|
+
-008C Central Dir Disk no 0000
|
|
31
|
+
-008E Entries in this disk 0001
|
|
32
|
+
-0090 Total Entries 0001
|
|
33
|
+
-0092 Size of Central Dir 00000049
|
|
34
|
+
-0096 Offset to Central Dir 0000003D
|
|
35
|
+
-009A Comment Length 0000
|
|
36
|
+
+008B END CENTRAL HEADER 06054B50
|
|
37
|
+
+008F Number of this disk 0000
|
|
38
|
+
+0091 Central Dir Disk no 0000
|
|
39
|
+
+0093 Entries in this disk 0001
|
|
40
|
+
+0095 Total Entries 0001
|
|
41
|
+
+0097 Size of Central Dir 0000004E
|
|
42
|
+
+009B Offset to Central Dir 0000003D
|
|
43
|
+
+009F Comment Length 0007
|
|
44
|
+
+00A1 Comment 'goodbye'
|
|
45
|
+
Done
|