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.
Files changed (685) hide show
  1. {diffoscope-280 → diffoscope-282}/PKG-INFO +1 -1
  2. {diffoscope-280 → diffoscope-282}/diffoscope/__init__.py +1 -1
  3. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/__init__.py +1 -0
  4. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ar.py +3 -3
  5. diffoscope-282/diffoscope/comparators/uki.py +58 -0
  6. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/libarchive.py +9 -1
  7. {diffoscope-280 → diffoscope-282}/diffoscope/external_tools.py +4 -0
  8. {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/PKG-INFO +1 -1
  9. {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/SOURCES.txt +4 -36
  10. diffoscope-282/tests/comparators/test_uki.py +81 -0
  11. diffoscope-282/tests/data/dummyx64.efi.stub +0 -0
  12. diffoscope-282/tests/data/uki_expected_diff +0 -0
  13. diffoscope-280/.coveragerc +0 -4
  14. diffoscope-280/.dockerignore +0 -4
  15. diffoscope-280/Dockerfile +0 -21
  16. diffoscope-280/bin/diffoscope +0 -36
  17. diffoscope-280/debian/README.source +0 -14
  18. diffoscope-280/debian/changelog +0 -5489
  19. diffoscope-280/debian/check-dep-sizes.sh +0 -11
  20. diffoscope-280/debian/clean +0 -5
  21. diffoscope-280/debian/control +0 -158
  22. diffoscope-280/debian/copyright +0 -131
  23. diffoscope-280/debian/diffoscope-minimal.docs +0 -1
  24. diffoscope-280/debian/diffoscope-minimal.install +0 -2
  25. diffoscope-280/debian/diffoscope-minimal.lintian-overrides +0 -1
  26. diffoscope-280/debian/diffoscope-minimal.manpages +0 -1
  27. diffoscope-280/debian/diffoscope.docs +0 -1
  28. diffoscope-280/debian/gbp.conf +0 -6
  29. diffoscope-280/debian/py3dist-overrides +0 -2
  30. diffoscope-280/debian/rules +0 -87
  31. diffoscope-280/debian/source/format +0 -1
  32. diffoscope-280/debian/source/lintian-overrides +0 -44
  33. diffoscope-280/debian/source/options +0 -13
  34. diffoscope-280/debian/tests/basic-command-line +0 -56
  35. diffoscope-280/debian/tests/control +0 -18
  36. diffoscope-280/debian/tests/control.in +0 -15
  37. diffoscope-280/debian/tests/control.sh +0 -33
  38. diffoscope-280/debian/tests/generate-recommends.py +0 -12
  39. diffoscope-280/debian/tests/pytest +0 -20
  40. diffoscope-280/debian/tests/pytest-with-recommends +0 -20
  41. diffoscope-280/debian/upstream/metadata +0 -4
  42. diffoscope-280/debian/upstream/signing-key.asc +0 -464
  43. diffoscope-280/debian/watch +0 -2
  44. diffoscope-280/debian/zsh-completion/_diffoscope +0 -50
  45. diffoscope-280/doc/Makefile +0 -38
  46. diffoscope-280/doc/diffoscope.h2m.0 +0 -9
  47. diffoscope-280/doc/logo.svg +0 -110
  48. diffoscope-280/pytest.ini +0 -9
  49. {diffoscope-280 → diffoscope-282}/CONTRIBUTING.md +0 -0
  50. {diffoscope-280 → diffoscope-282}/COPYING +0 -0
  51. {diffoscope-280 → diffoscope-282}/MANIFEST.in +0 -0
  52. {diffoscope-280 → diffoscope-282}/README.rst +0 -0
  53. {diffoscope-280 → diffoscope-282}/diffoscope/changes.py +0 -0
  54. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/android.py +0 -0
  55. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/apk.py +0 -0
  56. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/arsc.py +0 -0
  57. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/berkeley_db.py +0 -0
  58. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/binary.py +0 -0
  59. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/binwalk.py +0 -0
  60. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/bzip2.py +0 -0
  61. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/cbfs.py +0 -0
  62. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/cpio.py +0 -0
  63. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/deb.py +0 -0
  64. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/debian.py +0 -0
  65. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/debian_fallback.py +0 -0
  66. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/decompile.py +0 -0
  67. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/device.py +0 -0
  68. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/dex.py +0 -0
  69. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/directory.py +0 -0
  70. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/docx.py +0 -0
  71. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/dtb.py +0 -0
  72. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/elf.py +0 -0
  73. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ffprobe.py +0 -0
  74. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/fit.py +0 -0
  75. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/fontconfig.py +0 -0
  76. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/fonts.py +0 -0
  77. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/fsimage.py +0 -0
  78. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/gettext.py +0 -0
  79. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/gif.py +0 -0
  80. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/git.py +0 -0
  81. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/gnumeric.py +0 -0
  82. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/gzip.py +0 -0
  83. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/haskell.py +0 -0
  84. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/hdf.py +0 -0
  85. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/html.py +0 -0
  86. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/icc.py +0 -0
  87. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/image.py +0 -0
  88. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ipk.py +0 -0
  89. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/iso9660.py +0 -0
  90. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/java.py +0 -0
  91. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/javascript.py +0 -0
  92. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/json.py +0 -0
  93. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/kbx.py +0 -0
  94. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/llvm.py +0 -0
  95. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/lz4.py +0 -0
  96. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/lzip.py +0 -0
  97. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/macho.py +0 -0
  98. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/missing_file.py +0 -0
  99. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/mono.py +0 -0
  100. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ocaml.py +0 -0
  101. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/odt.py +0 -0
  102. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ogg.py +0 -0
  103. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/openssh.py +0 -0
  104. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/openssl.py +0 -0
  105. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/pcap.py +0 -0
  106. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/pdf.py +0 -0
  107. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/pe32.py +0 -0
  108. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/pgp.py +0 -0
  109. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/png.py +0 -0
  110. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ppu.py +0 -0
  111. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/ps.py +0 -0
  112. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/python.py +0 -0
  113. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/rdata.py +0 -0
  114. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/rpm.py +0 -0
  115. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/rpm_fallback.py +0 -0
  116. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/rust.py +0 -0
  117. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/sevenz.py +0 -0
  118. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/socket_or_fifo.py +0 -0
  119. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/sphinx.py +0 -0
  120. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/sqlite.py +0 -0
  121. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/squashfs.py +0 -0
  122. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/symlink.py +0 -0
  123. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/tar.py +0 -0
  124. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/text.py +0 -0
  125. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/uimage.py +0 -0
  126. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/__init__.py +0 -0
  127. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/archive.py +0 -0
  128. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/command.py +0 -0
  129. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/compare.py +0 -0
  130. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/container.py +0 -0
  131. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/file.py +0 -0
  132. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/fuzzy.py +0 -0
  133. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/operation.py +0 -0
  134. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/utils/specialize.py +0 -0
  135. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/vmlinuz.py +0 -0
  136. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/wasm.py +0 -0
  137. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xar.py +0 -0
  138. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xml.py +0 -0
  139. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xmlb.py +0 -0
  140. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xsb.py +0 -0
  141. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/xz.py +0 -0
  142. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/zip.py +0 -0
  143. {diffoscope-280 → diffoscope-282}/diffoscope/comparators/zst.py +0 -0
  144. {diffoscope-280 → diffoscope-282}/diffoscope/config.py +0 -0
  145. {diffoscope-280 → diffoscope-282}/diffoscope/diff.py +0 -0
  146. {diffoscope-280 → diffoscope-282}/diffoscope/difference.py +0 -0
  147. {diffoscope-280 → diffoscope-282}/diffoscope/environ.py +0 -0
  148. {diffoscope-280 → diffoscope-282}/diffoscope/exc.py +0 -0
  149. {diffoscope-280 → diffoscope-282}/diffoscope/excludes.py +0 -0
  150. {diffoscope-280 → diffoscope-282}/diffoscope/feeders.py +0 -0
  151. {diffoscope-280 → diffoscope-282}/diffoscope/logging.py +0 -0
  152. {diffoscope-280 → diffoscope-282}/diffoscope/main.py +0 -0
  153. {diffoscope-280 → diffoscope-282}/diffoscope/path.py +0 -0
  154. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/__init__.py +0 -0
  155. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/formats.py +0 -0
  156. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/html/__init__.py +0 -0
  157. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/html/html.py +0 -0
  158. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/html/templates.py +0 -0
  159. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/icon.py +0 -0
  160. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/json.py +0 -0
  161. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/markdown.py +0 -0
  162. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/restructuredtext.py +0 -0
  163. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/text.py +0 -0
  164. {diffoscope-280 → diffoscope-282}/diffoscope/presenters/utils.py +0 -0
  165. {diffoscope-280 → diffoscope-282}/diffoscope/profiling.py +0 -0
  166. {diffoscope-280 → diffoscope-282}/diffoscope/progress.py +0 -0
  167. {diffoscope-280 → diffoscope-282}/diffoscope/readers/__init__.py +0 -0
  168. {diffoscope-280 → diffoscope-282}/diffoscope/readers/json.py +0 -0
  169. {diffoscope-280 → diffoscope-282}/diffoscope/readers/utils.py +0 -0
  170. {diffoscope-280 → diffoscope-282}/diffoscope/scripts/extract-vmlinux +0 -0
  171. {diffoscope-280 → diffoscope-282}/diffoscope/tempfiles.py +0 -0
  172. {diffoscope-280 → diffoscope-282}/diffoscope/tools.py +0 -0
  173. {diffoscope-280 → diffoscope-282}/diffoscope/utils.py +0 -0
  174. {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/dependency_links.txt +0 -0
  175. {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/entry_points.txt +0 -0
  176. {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/requires.txt +0 -0
  177. {diffoscope-280 → diffoscope-282}/diffoscope.egg-info/top_level.txt +0 -0
  178. {diffoscope-280 → diffoscope-282}/extras_require.json +0 -0
  179. {diffoscope-280 → diffoscope-282}/pyproject.toml +0 -0
  180. {diffoscope-280 → diffoscope-282}/setup.cfg +0 -0
  181. {diffoscope-280 → diffoscope-282}/setup.py +0 -0
  182. {diffoscope-280 → diffoscope-282}/tests/__init__.py +0 -0
  183. {diffoscope-280 → diffoscope-282}/tests/comparators/__init__.py +0 -0
  184. {diffoscope-280 → diffoscope-282}/tests/comparators/test_android.py +0 -0
  185. {diffoscope-280 → diffoscope-282}/tests/comparators/test_apk.py +0 -0
  186. {diffoscope-280 → diffoscope-282}/tests/comparators/test_archive.py +0 -0
  187. {diffoscope-280 → diffoscope-282}/tests/comparators/test_arsc.py +0 -0
  188. {diffoscope-280 → diffoscope-282}/tests/comparators/test_berkeley_db.py +0 -0
  189. {diffoscope-280 → diffoscope-282}/tests/comparators/test_binary.py +0 -0
  190. {diffoscope-280 → diffoscope-282}/tests/comparators/test_binwalk.py +0 -0
  191. {diffoscope-280 → diffoscope-282}/tests/comparators/test_bzip2.py +0 -0
  192. {diffoscope-280 → diffoscope-282}/tests/comparators/test_cbfs.py +0 -0
  193. {diffoscope-280 → diffoscope-282}/tests/comparators/test_containers.py +0 -0
  194. {diffoscope-280 → diffoscope-282}/tests/comparators/test_cpio.py +0 -0
  195. {diffoscope-280 → diffoscope-282}/tests/comparators/test_deb.py +0 -0
  196. {diffoscope-280 → diffoscope-282}/tests/comparators/test_debian.py +0 -0
  197. {diffoscope-280 → diffoscope-282}/tests/comparators/test_device.py +0 -0
  198. {diffoscope-280 → diffoscope-282}/tests/comparators/test_dex.py +0 -0
  199. {diffoscope-280 → diffoscope-282}/tests/comparators/test_directory.py +0 -0
  200. {diffoscope-280 → diffoscope-282}/tests/comparators/test_docx.py +0 -0
  201. {diffoscope-280 → diffoscope-282}/tests/comparators/test_dtb.py +0 -0
  202. {diffoscope-280 → diffoscope-282}/tests/comparators/test_elf.py +0 -0
  203. {diffoscope-280 → diffoscope-282}/tests/comparators/test_elf_decompiler.py +0 -0
  204. {diffoscope-280 → diffoscope-282}/tests/comparators/test_epub.py +0 -0
  205. {diffoscope-280 → diffoscope-282}/tests/comparators/test_ffprobe.py +0 -0
  206. {diffoscope-280 → diffoscope-282}/tests/comparators/test_fit.py +0 -0
  207. {diffoscope-280 → diffoscope-282}/tests/comparators/test_fontconfig.py +0 -0
  208. {diffoscope-280 → diffoscope-282}/tests/comparators/test_fonts.py +0 -0
  209. {diffoscope-280 → diffoscope-282}/tests/comparators/test_fsimage.py +0 -0
  210. {diffoscope-280 → diffoscope-282}/tests/comparators/test_gettext.py +0 -0
  211. {diffoscope-280 → diffoscope-282}/tests/comparators/test_gif.py +0 -0
  212. {diffoscope-280 → diffoscope-282}/tests/comparators/test_git.py +0 -0
  213. {diffoscope-280 → diffoscope-282}/tests/comparators/test_gnumeric.py +0 -0
  214. {diffoscope-280 → diffoscope-282}/tests/comparators/test_gzip.py +0 -0
  215. {diffoscope-280 → diffoscope-282}/tests/comparators/test_haskell.py +0 -0
  216. {diffoscope-280 → diffoscope-282}/tests/comparators/test_hdf.py +0 -0
  217. {diffoscope-280 → diffoscope-282}/tests/comparators/test_html.py +0 -0
  218. {diffoscope-280 → diffoscope-282}/tests/comparators/test_icc.py +0 -0
  219. {diffoscope-280 → diffoscope-282}/tests/comparators/test_ico_image.py +0 -0
  220. {diffoscope-280 → diffoscope-282}/tests/comparators/test_ipk.py +0 -0
  221. {diffoscope-280 → diffoscope-282}/tests/comparators/test_iso9660.py +0 -0
  222. {diffoscope-280 → diffoscope-282}/tests/comparators/test_java.py +0 -0
  223. {diffoscope-280 → diffoscope-282}/tests/comparators/test_javascript.py +0 -0
  224. {diffoscope-280 → diffoscope-282}/tests/comparators/test_jpeg_image.py +0 -0
  225. {diffoscope-280 → diffoscope-282}/tests/comparators/test_json.py +0 -0
  226. {diffoscope-280 → diffoscope-282}/tests/comparators/test_kbx.py +0 -0
  227. {diffoscope-280 → diffoscope-282}/tests/comparators/test_lz4.py +0 -0
  228. {diffoscope-280 → diffoscope-282}/tests/comparators/test_lzip.py +0 -0
  229. {diffoscope-280 → diffoscope-282}/tests/comparators/test_macho.py +0 -0
  230. {diffoscope-280 → diffoscope-282}/tests/comparators/test_macho_decompiler.py +0 -0
  231. {diffoscope-280 → diffoscope-282}/tests/comparators/test_mono.py +0 -0
  232. {diffoscope-280 → diffoscope-282}/tests/comparators/test_ocaml.py +0 -0
  233. {diffoscope-280 → diffoscope-282}/tests/comparators/test_odt.py +0 -0
  234. {diffoscope-280 → diffoscope-282}/tests/comparators/test_ogg.py +0 -0
  235. {diffoscope-280 → diffoscope-282}/tests/comparators/test_openssh_pub_key.py +0 -0
  236. {diffoscope-280 → diffoscope-282}/tests/comparators/test_openssl.py +0 -0
  237. {diffoscope-280 → diffoscope-282}/tests/comparators/test_pcap.py +0 -0
  238. {diffoscope-280 → diffoscope-282}/tests/comparators/test_pdf.py +0 -0
  239. {diffoscope-280 → diffoscope-282}/tests/comparators/test_pgp.py +0 -0
  240. {diffoscope-280 → diffoscope-282}/tests/comparators/test_png.py +0 -0
  241. {diffoscope-280 → diffoscope-282}/tests/comparators/test_ppu.py +0 -0
  242. {diffoscope-280 → diffoscope-282}/tests/comparators/test_ps.py +0 -0
  243. {diffoscope-280 → diffoscope-282}/tests/comparators/test_python.py +0 -0
  244. {diffoscope-280 → diffoscope-282}/tests/comparators/test_rdata.py +0 -0
  245. {diffoscope-280 → diffoscope-282}/tests/comparators/test_rlib.py +0 -0
  246. {diffoscope-280 → diffoscope-282}/tests/comparators/test_rpm.py +0 -0
  247. {diffoscope-280 → diffoscope-282}/tests/comparators/test_sevenz.py +0 -0
  248. {diffoscope-280 → diffoscope-282}/tests/comparators/test_sockets.py +0 -0
  249. {diffoscope-280 → diffoscope-282}/tests/comparators/test_sphinx.py +0 -0
  250. {diffoscope-280 → diffoscope-282}/tests/comparators/test_sqlite.py +0 -0
  251. {diffoscope-280 → diffoscope-282}/tests/comparators/test_squashfs.py +0 -0
  252. {diffoscope-280 → diffoscope-282}/tests/comparators/test_symlink.py +0 -0
  253. {diffoscope-280 → diffoscope-282}/tests/comparators/test_tar.py +0 -0
  254. {diffoscope-280 → diffoscope-282}/tests/comparators/test_text.py +0 -0
  255. {diffoscope-280 → diffoscope-282}/tests/comparators/test_uimage.py +0 -0
  256. {diffoscope-280 → diffoscope-282}/tests/comparators/test_utils.py +0 -0
  257. {diffoscope-280 → diffoscope-282}/tests/comparators/test_wasm.py +0 -0
  258. {diffoscope-280 → diffoscope-282}/tests/comparators/test_xml.py +0 -0
  259. {diffoscope-280 → diffoscope-282}/tests/comparators/test_xsb.py +0 -0
  260. {diffoscope-280 → diffoscope-282}/tests/comparators/test_xz.py +0 -0
  261. {diffoscope-280 → diffoscope-282}/tests/comparators/test_zip.py +0 -0
  262. {diffoscope-280 → diffoscope-282}/tests/comparators/test_zst.py +0 -0
  263. {diffoscope-280 → diffoscope-282}/tests/conftest.py +0 -0
  264. {diffoscope-280 → diffoscope-282}/tests/data/Samyak-Malayalam1.ttf +0 -0
  265. {diffoscope-280 → diffoscope-282}/tests/data/Samyak-Malayalam2.ttf +0 -0
  266. {diffoscope-280 → diffoscope-282}/tests/data/Test1.class +0 -0
  267. {diffoscope-280 → diffoscope-282}/tests/data/Test2.class +0 -0
  268. {diffoscope-280 → diffoscope-282}/tests/data/android1.img +0 -0
  269. {diffoscope-280 → diffoscope-282}/tests/data/android2.img +0 -0
  270. {diffoscope-280 → diffoscope-282}/tests/data/android_expected_diff +0 -0
  271. {diffoscope-280 → diffoscope-282}/tests/data/apk_manifest_expected_diff +0 -0
  272. {diffoscope-280 → diffoscope-282}/tests/data/apk_zipinfo_expected_diff +0 -0
  273. {diffoscope-280 → diffoscope-282}/tests/data/archive1.tar +0 -0
  274. {diffoscope-280 → diffoscope-282}/tests/data/archive12.diff.txt +0 -0
  275. {diffoscope-280 → diffoscope-282}/tests/data/archive2.tar +0 -0
  276. {diffoscope-280 → diffoscope-282}/tests/data/arsc_expected_diff +0 -0
  277. {diffoscope-280 → diffoscope-282}/tests/data/base-files_157-r45695_ar71xx.ipk +0 -0
  278. {diffoscope-280 → diffoscope-282}/tests/data/base-files_157-r45918_ar71xx.ipk +0 -0
  279. {diffoscope-280 → diffoscope-282}/tests/data/berkeley6_db_expected_diff +0 -0
  280. {diffoscope-280 → diffoscope-282}/tests/data/berkeley_db_expected_diff +0 -0
  281. {diffoscope-280 → diffoscope-282}/tests/data/binary1 +0 -0
  282. {diffoscope-280 → diffoscope-282}/tests/data/binary2 +0 -0
  283. {diffoscope-280 → diffoscope-282}/tests/data/binary_expected_diff +0 -0
  284. {diffoscope-280 → diffoscope-282}/tests/data/binary_hexdump_expected_diff +0 -0
  285. {diffoscope-280 → diffoscope-282}/tests/data/binwalk_expected_diff +0 -0
  286. {diffoscope-280 → diffoscope-282}/tests/data/bug881937_1.deb +0 -0
  287. {diffoscope-280 → diffoscope-282}/tests/data/bug881937_2.deb +0 -0
  288. {diffoscope-280 → diffoscope-282}/tests/data/bug881937_control_expected_diff +0 -0
  289. {diffoscope-280 → diffoscope-282}/tests/data/bug903391_1.deb +0 -0
  290. {diffoscope-280 → diffoscope-282}/tests/data/bug903391_2.deb +0 -0
  291. {diffoscope-280 → diffoscope-282}/tests/data/bug903401_1.deb +0 -0
  292. {diffoscope-280 → diffoscope-282}/tests/data/bug903401_2.deb +0 -0
  293. {diffoscope-280 → diffoscope-282}/tests/data/bug903565_1.deb +0 -0
  294. {diffoscope-280 → diffoscope-282}/tests/data/bug903565_2.deb +0 -0
  295. {diffoscope-280 → diffoscope-282}/tests/data/comment_zipdetails_expected_diff +0 -0
  296. {diffoscope-280 → diffoscope-282}/tests/data/comment_zipinfo_expected_diff +0 -0
  297. {diffoscope-280 → diffoscope-282}/tests/data/containers/a.tar.bz2 +0 -0
  298. {diffoscope-280 → diffoscope-282}/tests/data/containers/a.tar.gz +0 -0
  299. {diffoscope-280 → diffoscope-282}/tests/data/containers/a.tar.xz +0 -0
  300. {diffoscope-280 → diffoscope-282}/tests/data/containers/b.tar.bz2 +0 -0
  301. {diffoscope-280 → diffoscope-282}/tests/data/containers/b.tar.gz +0 -0
  302. {diffoscope-280 → diffoscope-282}/tests/data/containers/b.tar.xz +0 -0
  303. {diffoscope-280 → diffoscope-282}/tests/data/containers/different_files_expected_diff +0 -0
  304. {diffoscope-280 → diffoscope-282}/tests/data/cpio_listing_expected_diff +0 -0
  305. {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/add/test-dbgsym-dbgsym_1_amd64.deb +0 -0
  306. {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/add/test-dbgsym_1_amd64.deb +0 -0
  307. {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/mult/test-dbgsym-dbgsym_1_amd64.deb +0 -0
  308. {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/mult/test-dbgsym_1_amd64.deb +0 -0
  309. {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/test-dbgsym_1.dsc +0 -0
  310. {diffoscope-280 → diffoscope-282}/tests/data/dbgsym/test-dbgsym_1.tar.gz +0 -0
  311. {diffoscope-280 → diffoscope-282}/tests/data/deb_metadata_expected_diff +0 -0
  312. {diffoscope-280 → diffoscope-282}/tests/data/debian-bug-875281.collapsed-diff.json +0 -0
  313. {diffoscope-280 → diffoscope-282}/tests/data/debian-bug-876316-control.tar.gz +0 -0
  314. {diffoscope-280 → diffoscope-282}/tests/data/device_expected_diff +0 -0
  315. {diffoscope-280 → diffoscope-282}/tests/data/device_expected_diff_freebsd +0 -0
  316. {diffoscope-280 → diffoscope-282}/tests/data/device_expected_diff_reverse +0 -0
  317. {diffoscope-280 → diffoscope-282}/tests/data/device_expected_diff_reverse_freebsd +0 -0
  318. {diffoscope-280 → diffoscope-282}/tests/data/devicetree1.dtb +0 -0
  319. {diffoscope-280 → diffoscope-282}/tests/data/devicetree2.dtb +0 -0
  320. {diffoscope-280 → diffoscope-282}/tests/data/devicetree_expected_diff +0 -0
  321. {diffoscope-280 → diffoscope-282}/tests/data/dex_expected_diffs +0 -0
  322. {diffoscope-280 → diffoscope-282}/tests/data/dex_javap_14_expected_diffs +0 -0
  323. {diffoscope-280 → diffoscope-282}/tests/data/docx_expected_diff +0 -0
  324. {diffoscope-280 → diffoscope-282}/tests/data/dot_buildinfo_fallback_expected_diff +0 -0
  325. {diffoscope-280 → diffoscope-282}/tests/data/dot_changes_description_expected_diff +0 -0
  326. {diffoscope-280 → diffoscope-282}/tests/data/dot_changes_different_contents_and_identical_files_expected_diff +0 -0
  327. {diffoscope-280 → diffoscope-282}/tests/data/dot_changes_fallback_expected_diff +0 -0
  328. {diffoscope-280 → diffoscope-282}/tests/data/dot_changes_identical_contents_and_different_files_expected_diff +0 -0
  329. {diffoscope-280 → diffoscope-282}/tests/data/dot_dsc_fallback_expected_diff +0 -0
  330. {diffoscope-280 → diffoscope-282}/tests/data/elf_lib_metadata_expected_diff +0 -0
  331. {diffoscope-280 → diffoscope-282}/tests/data/elf_lib_objdump_expected_diff +0 -0
  332. {diffoscope-280 → diffoscope-282}/tests/data/elf_obj_expected_diff +0 -0
  333. {diffoscope-280 → diffoscope-282}/tests/data/elf_obj_ghidra_expected_diff +0 -0
  334. {diffoscope-280 → diffoscope-282}/tests/data/elf_obj_radare2_expected_diff +0 -0
  335. {diffoscope-280 → diffoscope-282}/tests/data/elfmix1.not_a +0 -0
  336. {diffoscope-280 → diffoscope-282}/tests/data/elfmix2.a +0 -0
  337. {diffoscope-280 → diffoscope-282}/tests/data/elfmix_disassembly_expected_diff +0 -0
  338. {diffoscope-280 → diffoscope-282}/tests/data/elfmix_mach_o_expected_diff__text +0 -0
  339. {diffoscope-280 → diffoscope-282}/tests/data/elfmix_mach_o_expected_diff__text_16 +0 -0
  340. {diffoscope-280 → diffoscope-282}/tests/data/elfmix_src_c_expected_diff +0 -0
  341. {diffoscope-280 → diffoscope-282}/tests/data/elfmix_x_obj_expected_diff +0 -0
  342. {diffoscope-280 → diffoscope-282}/tests/data/elfmix_x_obj_objdump_expected_diff +0 -0
  343. {diffoscope-280 → diffoscope-282}/tests/data/encrypted1.zip +0 -0
  344. {diffoscope-280 → diffoscope-282}/tests/data/encrypted2.zip +0 -0
  345. {diffoscope-280 → diffoscope-282}/tests/data/epub_expected_diffs +0 -0
  346. {diffoscope-280 → diffoscope-282}/tests/data/ext4_expected_diffs +0 -0
  347. {diffoscope-280 → diffoscope-282}/tests/data/fat12_expected_diffs +0 -0
  348. {diffoscope-280 → diffoscope-282}/tests/data/fit_expected_diff +0 -0
  349. {diffoscope-280 → diffoscope-282}/tests/data/fontconfig_expected_diff +0 -0
  350. {diffoscope-280 → diffoscope-282}/tests/data/fuzzy-tar-in-tar1.tar +0 -0
  351. {diffoscope-280 → diffoscope-282}/tests/data/fuzzy-tar-in-tar2.tar +0 -0
  352. {diffoscope-280 → diffoscope-282}/tests/data/fuzzy1.tar +0 -0
  353. {diffoscope-280 → diffoscope-282}/tests/data/fuzzy2.tar +0 -0
  354. {diffoscope-280 → diffoscope-282}/tests/data/fuzzy3.tar +0 -0
  355. {diffoscope-280 → diffoscope-282}/tests/data/gif_expected_diff +0 -0
  356. {diffoscope-280 → diffoscope-282}/tests/data/git_expected_diff +0 -0
  357. {diffoscope-280 → diffoscope-282}/tests/data/git_expected_diff_freebsd +0 -0
  358. {diffoscope-280 → diffoscope-282}/tests/data/gnu_debuglink_expected_diff +0 -0
  359. {diffoscope-280 → diffoscope-282}/tests/data/gnumeric_expected_diff +0 -0
  360. {diffoscope-280 → diffoscope-282}/tests/data/gzip_metadata_expected_diff +0 -0
  361. {diffoscope-280 → diffoscope-282}/tests/data/haskell_expected_diff +0 -0
  362. {diffoscope-280 → diffoscope-282}/tests/data/hdf5_expected_diff +0 -0
  363. {diffoscope-280 → diffoscope-282}/tests/data/hello1.wasm +0 -0
  364. {diffoscope-280 → diffoscope-282}/tests/data/hello2.wasm +0 -0
  365. {diffoscope-280 → diffoscope-282}/tests/data/html_expected_diff +0 -0
  366. {diffoscope-280 → diffoscope-282}/tests/data/html_text_expected_diff +0 -0
  367. {diffoscope-280 → diffoscope-282}/tests/data/icc_expected_diff +0 -0
  368. {diffoscope-280 → diffoscope-282}/tests/data/ico_image_expected_diff +0 -0
  369. {diffoscope-280 → diffoscope-282}/tests/data/ico_image_meta_expected_diff +0 -0
  370. {diffoscope-280 → diffoscope-282}/tests/data/ico_image_meta_expected_diff_v2 +0 -0
  371. {diffoscope-280 → diffoscope-282}/tests/data/ignore_readelf_errors_expected_diff +0 -0
  372. {diffoscope-280 → diffoscope-282}/tests/data/inv_expected_diff +0 -0
  373. {diffoscope-280 → diffoscope-282}/tests/data/ipk_metadata_expected_diff +0 -0
  374. {diffoscope-280 → diffoscope-282}/tests/data/iso9660_content_expected_diff +0 -0
  375. {diffoscope-280 → diffoscope-282}/tests/data/iso9660_content_expected_diff_cdrtools +0 -0
  376. {diffoscope-280 → diffoscope-282}/tests/data/iso9660_rockridge_expected_diff +0 -0
  377. {diffoscope-280 → diffoscope-282}/tests/data/iso9660_rockridge_expected_diff_cdrtools +0 -0
  378. {diffoscope-280 → diffoscope-282}/tests/data/javap_14_class_expected_diff +0 -0
  379. {diffoscope-280 → diffoscope-282}/tests/data/javap_class_expected_diff +0 -0
  380. {diffoscope-280 → diffoscope-282}/tests/data/javascript_expected_diff +0 -0
  381. {diffoscope-280 → diffoscope-282}/tests/data/jmod_zipdetails_expected_diff +0 -0
  382. {diffoscope-280 → diffoscope-282}/tests/data/jmod_zipinfo_expected_diff +0 -0
  383. {diffoscope-280 → diffoscope-282}/tests/data/jpeg_image_expected_diff +0 -0
  384. {diffoscope-280 → diffoscope-282}/tests/data/jpeg_image_meta_expected_diff +0 -0
  385. {diffoscope-280 → diffoscope-282}/tests/data/json_expected_diff +0 -0
  386. {diffoscope-280 → diffoscope-282}/tests/data/json_expected_ordering_diff +0 -0
  387. {diffoscope-280 → diffoscope-282}/tests/data/kbx_expected_diff +0 -0
  388. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__cstring +0 -0
  389. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__eh_frame +0 -0
  390. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__la_symbol_ptr +0 -0
  391. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__stub_helper +0 -0
  392. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__stub_helper_16 +0 -0
  393. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__stubs +0 -0
  394. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__stubs_16 +0 -0
  395. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__text +0 -0
  396. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__text_16 +0 -0
  397. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff__unwind_info +0 -0
  398. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_dyn_relocations +0 -0
  399. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_dyn_symbols +0 -0
  400. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_file_headers +0 -0
  401. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_needed_libs +0 -0
  402. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_relocations +0 -0
  403. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_strings +0 -0
  404. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_symbols +0 -0
  405. {diffoscope-280 → diffoscope-282}/tests/data/macho_llvm_expected_diff_symbols_llvm_11 +0 -0
  406. {diffoscope-280 → diffoscope-282}/tests/data/macho_obj_ghidra_expected_diff_main +0 -0
  407. {diffoscope-280 → diffoscope-282}/tests/data/macho_obj_radare2_expected_diff_main +0 -0
  408. {diffoscope-280 → diffoscope-282}/tests/data/macho_obj_radare2_expected_diff_printf +0 -0
  409. {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff__cstring +0 -0
  410. {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff__data +0 -0
  411. {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff__text +0 -0
  412. {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff_headers +0 -0
  413. {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff_indirect_symbols +0 -0
  414. {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff_libraries +0 -0
  415. {diffoscope-280 → diffoscope-282}/tests/data/macho_otool_expected_diff_strings +0 -0
  416. {diffoscope-280 → diffoscope-282}/tests/data/mo_charsets_expected_diff +0 -0
  417. {diffoscope-280 → diffoscope-282}/tests/data/mo_expected_diff +0 -0
  418. {diffoscope-280 → diffoscope-282}/tests/data/mozzip_zipinfo_expected_diff +0 -0
  419. {diffoscope-280 → diffoscope-282}/tests/data/mp3_expected_diff +0 -0
  420. {diffoscope-280 → diffoscope-282}/tests/data/no-perms.tar +0 -0
  421. {diffoscope-280 → diffoscope-282}/tests/data/ocaml_expected_diff +0 -0
  422. {diffoscope-280 → diffoscope-282}/tests/data/odt_expected_diff +0 -0
  423. {diffoscope-280 → diffoscope-282}/tests/data/ogg_expected_diff +0 -0
  424. {diffoscope-280 → diffoscope-282}/tests/data/openssh_pub_key_expected_diff_12 +0 -0
  425. {diffoscope-280 → diffoscope-282}/tests/data/openssh_pub_key_expected_diff_23 +0 -0
  426. {diffoscope-280 → diffoscope-282}/tests/data/order1a.json +0 -0
  427. {diffoscope-280 → diffoscope-282}/tests/data/order1b.json +0 -0
  428. {diffoscope-280 → diffoscope-282}/tests/data/output.colored.txt +0 -0
  429. {diffoscope-280 → diffoscope-282}/tests/data/output.json +0 -0
  430. {diffoscope-280 → diffoscope-282}/tests/data/output.md +0 -0
  431. {diffoscope-280 → diffoscope-282}/tests/data/output.rst +0 -0
  432. {diffoscope-280 → diffoscope-282}/tests/data/output.txt +0 -0
  433. {diffoscope-280 → diffoscope-282}/tests/data/output_expected_363.html +0 -0
  434. {diffoscope-280 → diffoscope-282}/tests/data/output_expected_372.html +0 -0
  435. {diffoscope-280 → diffoscope-282}/tests/data/output_regression_875281.html +0 -0
  436. {diffoscope-280 → diffoscope-282}/tests/data/pcap_expected_diff +0 -0
  437. {diffoscope-280 → diffoscope-282}/tests/data/pdf_annotations_expected_diff +0 -0
  438. {diffoscope-280 → diffoscope-282}/tests/data/pdf_metadata_expected_diff +0 -0
  439. {diffoscope-280 → diffoscope-282}/tests/data/pdf_text_expected_diff +0 -0
  440. {diffoscope-280 → diffoscope-282}/tests/data/pe_expected_diff +0 -0
  441. {diffoscope-280 → diffoscope-282}/tests/data/pgp_expected_diff +0 -0
  442. {diffoscope-280 → diffoscope-282}/tests/data/pgp_signature_expected_diff +0 -0
  443. {diffoscope-280 → diffoscope-282}/tests/data/pgp_signed_expected_diff +0 -0
  444. {diffoscope-280 → diffoscope-282}/tests/data/png_expected_diff +0 -0
  445. {diffoscope-280 → diffoscope-282}/tests/data/ppu_expected_diff +0 -0
  446. {diffoscope-280 → diffoscope-282}/tests/data/procyon_class_expected_diff +0 -0
  447. {diffoscope-280 → diffoscope-282}/tests/data/ps_internal_expected_diff +0 -0
  448. {diffoscope-280 → diffoscope-282}/tests/data/ps_text_expected_diff +0 -0
  449. {diffoscope-280 → diffoscope-282}/tests/data/pyc_expected_diff +0 -0
  450. {diffoscope-280 → diffoscope-282}/tests/data/quine.gz +0 -0
  451. {diffoscope-280 → diffoscope-282}/tests/data/quine.zip +0 -0
  452. {diffoscope-280 → diffoscope-282}/tests/data/quine_a.deb +0 -0
  453. {diffoscope-280 → diffoscope-282}/tests/data/quine_b.deb +0 -0
  454. {diffoscope-280 → diffoscope-282}/tests/data/quine_deb_expected_diff +0 -0
  455. {diffoscope-280 → diffoscope-282}/tests/data/quine_expected_diff +0 -0
  456. {diffoscope-280 → diffoscope-282}/tests/data/rdb_expected_diff +0 -0
  457. {diffoscope-280 → diffoscope-282}/tests/data/rds_expected_diff +0 -0
  458. {diffoscope-280 → diffoscope-282}/tests/data/resources1.arsc +0 -0
  459. {diffoscope-280 → diffoscope-282}/tests/data/resources2.arsc +0 -0
  460. {diffoscope-280 → diffoscope-282}/tests/data/rlib_armap_expected_diff +0 -0
  461. {diffoscope-280 → diffoscope-282}/tests/data/rlib_elf_expected_diff +0 -0
  462. {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff +0 -0
  463. {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_10 +0 -0
  464. {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_15 +0 -0
  465. {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_16 +0 -0
  466. {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_5 +0 -0
  467. {diffoscope-280 → diffoscope-282}/tests/data/rlib_llvm_dis_expected_diff_7 +0 -0
  468. {diffoscope-280 → diffoscope-282}/tests/data/rpm_fallback_expected_diff +0 -0
  469. {diffoscope-280 → diffoscope-282}/tests/data/rpm_header_expected_diff +0 -0
  470. {diffoscope-280 → diffoscope-282}/tests/data/rpm_listing_expected_diff +0 -0
  471. {diffoscope-280 → diffoscope-282}/tests/data/salsa-issue-363.diff.json +0 -0
  472. {diffoscope-280 → diffoscope-282}/tests/data/salsa-issue-372.diff.json +0 -0
  473. {diffoscope-280 → diffoscope-282}/tests/data/sqlite3_expected_diff +0 -0
  474. {diffoscope-280 → diffoscope-282}/tests/data/squashfs_root_expected_diff +0 -0
  475. {diffoscope-280 → diffoscope-282}/tests/data/squashfs_superblock_expected_diff +0 -0
  476. {diffoscope-280 → diffoscope-282}/tests/data/symlink_expected_destination_diff +0 -0
  477. {diffoscope-280 → diffoscope-282}/tests/data/symlink_expected_diff +0 -0
  478. {diffoscope-280 → diffoscope-282}/tests/data/tar_listing_expected_diff +0 -0
  479. {diffoscope-280 → diffoscope-282}/tests/data/test1-le64.cache-4 +0 -0
  480. {diffoscope-280 → diffoscope-282}/tests/data/test1.a +0 -0
  481. {diffoscope-280 → diffoscope-282}/tests/data/test1.apk +0 -0
  482. {diffoscope-280 → diffoscope-282}/tests/data/test1.asc +0 -0
  483. {diffoscope-280 → diffoscope-282}/tests/data/test1.binwalk +0 -0
  484. {diffoscope-280 → diffoscope-282}/tests/data/test1.buildinfo +0 -0
  485. {diffoscope-280 → diffoscope-282}/tests/data/test1.bz2 +0 -0
  486. {diffoscope-280 → diffoscope-282}/tests/data/test1.changes +0 -0
  487. {diffoscope-280 → diffoscope-282}/tests/data/test1.cpio +0 -0
  488. {diffoscope-280 → diffoscope-282}/tests/data/test1.db +0 -0
  489. {diffoscope-280 → diffoscope-282}/tests/data/test1.deb +0 -0
  490. {diffoscope-280 → diffoscope-282}/tests/data/test1.debsrc.tar.gz +0 -0
  491. {diffoscope-280 → diffoscope-282}/tests/data/test1.debug +0 -0
  492. {diffoscope-280 → diffoscope-282}/tests/data/test1.dex +0 -0
  493. {diffoscope-280 → diffoscope-282}/tests/data/test1.disk.gz +0 -0
  494. {diffoscope-280 → diffoscope-282}/tests/data/test1.docx +0 -0
  495. {diffoscope-280 → diffoscope-282}/tests/data/test1.dsc +0 -0
  496. {diffoscope-280 → diffoscope-282}/tests/data/test1.epub +0 -0
  497. {diffoscope-280 → diffoscope-282}/tests/data/test1.exe +0 -0
  498. {diffoscope-280 → diffoscope-282}/tests/data/test1.ext4 +0 -0
  499. {diffoscope-280 → diffoscope-282}/tests/data/test1.fat12 +0 -0
  500. {diffoscope-280 → diffoscope-282}/tests/data/test1.fat16 +0 -0
  501. {diffoscope-280 → diffoscope-282}/tests/data/test1.fat32 +0 -0
  502. {diffoscope-280 → diffoscope-282}/tests/data/test1.gif +0 -0
  503. {diffoscope-280 → diffoscope-282}/tests/data/test1.git-index +0 -0
  504. {diffoscope-280 → diffoscope-282}/tests/data/test1.gnumeric +0 -0
  505. {diffoscope-280 → diffoscope-282}/tests/data/test1.gz +0 -0
  506. {diffoscope-280 → diffoscope-282}/tests/data/test1.hi +0 -0
  507. {diffoscope-280 → diffoscope-282}/tests/data/test1.html +0 -0
  508. {diffoscope-280 → diffoscope-282}/tests/data/test1.icc +0 -0
  509. {diffoscope-280 → diffoscope-282}/tests/data/test1.ico +0 -0
  510. {diffoscope-280 → diffoscope-282}/tests/data/test1.inv +0 -0
  511. {diffoscope-280 → diffoscope-282}/tests/data/test1.iso +0 -0
  512. {diffoscope-280 → diffoscope-282}/tests/data/test1.jmod +0 -0
  513. {diffoscope-280 → diffoscope-282}/tests/data/test1.jpg +0 -0
  514. {diffoscope-280 → diffoscope-282}/tests/data/test1.js +0 -0
  515. {diffoscope-280 → diffoscope-282}/tests/data/test1.json +0 -0
  516. {diffoscope-280 → diffoscope-282}/tests/data/test1.kbx +0 -0
  517. {diffoscope-280 → diffoscope-282}/tests/data/test1.lz4 +0 -0
  518. {diffoscope-280 → diffoscope-282}/tests/data/test1.lzip +0 -0
  519. {diffoscope-280 → diffoscope-282}/tests/data/test1.macho +0 -0
  520. {diffoscope-280 → diffoscope-282}/tests/data/test1.mo +0 -0
  521. {diffoscope-280 → diffoscope-282}/tests/data/test1.mozzip +0 -0
  522. {diffoscope-280 → diffoscope-282}/tests/data/test1.mp3 +0 -0
  523. {diffoscope-280 → diffoscope-282}/tests/data/test1.o +0 -0
  524. {diffoscope-280 → diffoscope-282}/tests/data/test1.odt +0 -0
  525. {diffoscope-280 → diffoscope-282}/tests/data/test1.ogg +0 -0
  526. {diffoscope-280 → diffoscope-282}/tests/data/test1.pcap +0 -0
  527. {diffoscope-280 → diffoscope-282}/tests/data/test1.pdf +0 -0
  528. {diffoscope-280 → diffoscope-282}/tests/data/test1.pgp +0 -0
  529. {diffoscope-280 → diffoscope-282}/tests/data/test1.png +0 -0
  530. {diffoscope-280 → diffoscope-282}/tests/data/test1.ppu +0 -0
  531. {diffoscope-280 → diffoscope-282}/tests/data/test1.ps +0 -0
  532. {diffoscope-280 → diffoscope-282}/tests/data/test1.pyc-renamed +0 -0
  533. {diffoscope-280 → diffoscope-282}/tests/data/test1.rdb +0 -0
  534. {diffoscope-280 → diffoscope-282}/tests/data/test1.rdx +0 -0
  535. {diffoscope-280 → diffoscope-282}/tests/data/test1.rlib +0 -0
  536. {diffoscope-280 → diffoscope-282}/tests/data/test1.rpm +0 -0
  537. {diffoscope-280 → diffoscope-282}/tests/data/test1.sqlite3 +0 -0
  538. {diffoscope-280 → diffoscope-282}/tests/data/test1.squashfs +0 -0
  539. {diffoscope-280 → diffoscope-282}/tests/data/test1.tar +0 -0
  540. {diffoscope-280 → diffoscope-282}/tests/data/test1.xml +0 -0
  541. {diffoscope-280 → diffoscope-282}/tests/data/test1.xsb +0 -0
  542. {diffoscope-280 → diffoscope-282}/tests/data/test1.xz +0 -0
  543. {diffoscope-280 → diffoscope-282}/tests/data/test1.zip +0 -0
  544. {diffoscope-280 → diffoscope-282}/tests/data/test1_meta.ico +0 -0
  545. {diffoscope-280 → diffoscope-282}/tests/data/test1_meta.jpg +0 -0
  546. {diffoscope-280 → diffoscope-282}/tests/data/test1_root.squashfs +0 -0
  547. {diffoscope-280 → diffoscope-282}/tests/data/test1_signed.pgp +0 -0
  548. {diffoscope-280 → diffoscope-282}/tests/data/test2-le64.cache-4 +0 -0
  549. {diffoscope-280 → diffoscope-282}/tests/data/test2.a +0 -0
  550. {diffoscope-280 → diffoscope-282}/tests/data/test2.apk +0 -0
  551. {diffoscope-280 → diffoscope-282}/tests/data/test2.asc +0 -0
  552. {diffoscope-280 → diffoscope-282}/tests/data/test2.binwalk +0 -0
  553. {diffoscope-280 → diffoscope-282}/tests/data/test2.buildinfo +0 -0
  554. {diffoscope-280 → diffoscope-282}/tests/data/test2.bz2 +0 -0
  555. {diffoscope-280 → diffoscope-282}/tests/data/test2.changes +0 -0
  556. {diffoscope-280 → diffoscope-282}/tests/data/test2.cpio +0 -0
  557. {diffoscope-280 → diffoscope-282}/tests/data/test2.db +0 -0
  558. {diffoscope-280 → diffoscope-282}/tests/data/test2.deb +0 -0
  559. {diffoscope-280 → diffoscope-282}/tests/data/test2.debsrc.tar.gz +0 -0
  560. {diffoscope-280 → diffoscope-282}/tests/data/test2.debug +0 -0
  561. {diffoscope-280 → diffoscope-282}/tests/data/test2.dex +0 -0
  562. {diffoscope-280 → diffoscope-282}/tests/data/test2.disk.gz +0 -0
  563. {diffoscope-280 → diffoscope-282}/tests/data/test2.docx +0 -0
  564. {diffoscope-280 → diffoscope-282}/tests/data/test2.dsc +0 -0
  565. {diffoscope-280 → diffoscope-282}/tests/data/test2.epub +0 -0
  566. {diffoscope-280 → diffoscope-282}/tests/data/test2.exe +0 -0
  567. {diffoscope-280 → diffoscope-282}/tests/data/test2.ext4 +0 -0
  568. {diffoscope-280 → diffoscope-282}/tests/data/test2.fat12 +0 -0
  569. {diffoscope-280 → diffoscope-282}/tests/data/test2.gif +0 -0
  570. {diffoscope-280 → diffoscope-282}/tests/data/test2.git-index +0 -0
  571. {diffoscope-280 → diffoscope-282}/tests/data/test2.gnumeric +0 -0
  572. {diffoscope-280 → diffoscope-282}/tests/data/test2.gz +0 -0
  573. {diffoscope-280 → diffoscope-282}/tests/data/test2.hi +0 -0
  574. {diffoscope-280 → diffoscope-282}/tests/data/test2.html +0 -0
  575. {diffoscope-280 → diffoscope-282}/tests/data/test2.icc +0 -0
  576. {diffoscope-280 → diffoscope-282}/tests/data/test2.ico +0 -0
  577. {diffoscope-280 → diffoscope-282}/tests/data/test2.inv +0 -0
  578. {diffoscope-280 → diffoscope-282}/tests/data/test2.iso +0 -0
  579. {diffoscope-280 → diffoscope-282}/tests/data/test2.jmod +0 -0
  580. {diffoscope-280 → diffoscope-282}/tests/data/test2.jpg +0 -0
  581. {diffoscope-280 → diffoscope-282}/tests/data/test2.js +0 -0
  582. {diffoscope-280 → diffoscope-282}/tests/data/test2.json +0 -0
  583. {diffoscope-280 → diffoscope-282}/tests/data/test2.kbx +0 -0
  584. {diffoscope-280 → diffoscope-282}/tests/data/test2.lz4 +0 -0
  585. {diffoscope-280 → diffoscope-282}/tests/data/test2.lzip +0 -0
  586. {diffoscope-280 → diffoscope-282}/tests/data/test2.macho +0 -0
  587. {diffoscope-280 → diffoscope-282}/tests/data/test2.mo +0 -0
  588. {diffoscope-280 → diffoscope-282}/tests/data/test2.mozzip +0 -0
  589. {diffoscope-280 → diffoscope-282}/tests/data/test2.mp3 +0 -0
  590. {diffoscope-280 → diffoscope-282}/tests/data/test2.o +0 -0
  591. {diffoscope-280 → diffoscope-282}/tests/data/test2.odt +0 -0
  592. {diffoscope-280 → diffoscope-282}/tests/data/test2.ogg +0 -0
  593. {diffoscope-280 → diffoscope-282}/tests/data/test2.pcap +0 -0
  594. {diffoscope-280 → diffoscope-282}/tests/data/test2.pdf +0 -0
  595. {diffoscope-280 → diffoscope-282}/tests/data/test2.pgp +0 -0
  596. {diffoscope-280 → diffoscope-282}/tests/data/test2.png +0 -0
  597. {diffoscope-280 → diffoscope-282}/tests/data/test2.ppu +0 -0
  598. {diffoscope-280 → diffoscope-282}/tests/data/test2.ps +0 -0
  599. {diffoscope-280 → diffoscope-282}/tests/data/test2.pyc-renamed +0 -0
  600. {diffoscope-280 → diffoscope-282}/tests/data/test2.rdb +0 -0
  601. {diffoscope-280 → diffoscope-282}/tests/data/test2.rdx +0 -0
  602. {diffoscope-280 → diffoscope-282}/tests/data/test2.rlib +0 -0
  603. {diffoscope-280 → diffoscope-282}/tests/data/test2.rpm +0 -0
  604. {diffoscope-280 → diffoscope-282}/tests/data/test2.sqlite3 +0 -0
  605. {diffoscope-280 → diffoscope-282}/tests/data/test2.squashfs +0 -0
  606. {diffoscope-280 → diffoscope-282}/tests/data/test2.tar +0 -0
  607. {diffoscope-280 → diffoscope-282}/tests/data/test2.xml +0 -0
  608. {diffoscope-280 → diffoscope-282}/tests/data/test2.xsb +0 -0
  609. {diffoscope-280 → diffoscope-282}/tests/data/test2.xz +0 -0
  610. {diffoscope-280 → diffoscope-282}/tests/data/test2.zip +0 -0
  611. {diffoscope-280 → diffoscope-282}/tests/data/test2_meta.ico +0 -0
  612. {diffoscope-280 → diffoscope-282}/tests/data/test2_meta.jpg +0 -0
  613. {diffoscope-280 → diffoscope-282}/tests/data/test2_root.squashfs +0 -0
  614. {diffoscope-280 → diffoscope-282}/tests/data/test2_signed.pgp +0 -0
  615. {diffoscope-280 → diffoscope-282}/tests/data/test3.apk +0 -0
  616. {diffoscope-280 → diffoscope-282}/tests/data/test3.changes +0 -0
  617. {diffoscope-280 → diffoscope-282}/tests/data/test3.gif +0 -0
  618. {diffoscope-280 → diffoscope-282}/tests/data/test3.pdf +0 -0
  619. {diffoscope-280 → diffoscope-282}/tests/data/test3.xml +0 -0
  620. {diffoscope-280 → diffoscope-282}/tests/data/test3.xz +0 -0
  621. {diffoscope-280 → diffoscope-282}/tests/data/test3.zip +0 -0
  622. {diffoscope-280 → diffoscope-282}/tests/data/test4.changes +0 -0
  623. {diffoscope-280 → diffoscope-282}/tests/data/test4.gif +0 -0
  624. {diffoscope-280 → diffoscope-282}/tests/data/test4.pdf +0 -0
  625. {diffoscope-280 → diffoscope-282}/tests/data/test4.xml +0 -0
  626. {diffoscope-280 → diffoscope-282}/tests/data/test4.xz +0 -0
  627. {diffoscope-280 → diffoscope-282}/tests/data/test5.changes +0 -0
  628. {diffoscope-280 → diffoscope-282}/tests/data/test_comment1.zip +0 -0
  629. {diffoscope-280 → diffoscope-282}/tests/data/test_comment2.zip +0 -0
  630. {diffoscope-280 → diffoscope-282}/tests/data/test_directory_a_b_diff +0 -0
  631. {diffoscope-280 → diffoscope-282}/tests/data/test_directory_b_a_diff +0 -0
  632. {diffoscope-280 → diffoscope-282}/tests/data/test_directory_device_diff +0 -0
  633. {diffoscope-280 → diffoscope-282}/tests/data/test_directory_file_diff +0 -0
  634. {diffoscope-280 → diffoscope-282}/tests/data/test_directory_symlink_diff +0 -0
  635. {diffoscope-280 → diffoscope-282}/tests/data/test_invalid.json +0 -0
  636. {diffoscope-280 → diffoscope-282}/tests/data/test_invalid.xml +0 -0
  637. {diffoscope-280 → diffoscope-282}/tests/data/test_iso8859-1.mo +0 -0
  638. {diffoscope-280 → diffoscope-282}/tests/data/test_no_charset.mo +0 -0
  639. {diffoscope-280 → diffoscope-282}/tests/data/test_openssh_pub_key1.pub +0 -0
  640. {diffoscope-280 → diffoscope-282}/tests/data/test_openssh_pub_key2.pub +0 -0
  641. {diffoscope-280 → diffoscope-282}/tests/data/test_openssh_pub_key3.pub +0 -0
  642. {diffoscope-280 → diffoscope-282}/tests/data/test_weird_non_unicode_chars1.pdf +0 -0
  643. {diffoscope-280 → diffoscope-282}/tests/data/test_weird_non_unicode_chars2.pdf +0 -0
  644. {diffoscope-280 → diffoscope-282}/tests/data/test_xml_expected_diff +0 -0
  645. {diffoscope-280 → diffoscope-282}/tests/data/test_xml_ordering_differences_diff +0 -0
  646. {diffoscope-280 → diffoscope-282}/tests/data/text_ascii1 +0 -0
  647. {diffoscope-280 → diffoscope-282}/tests/data/text_ascii2 +0 -0
  648. {diffoscope-280 → diffoscope-282}/tests/data/text_ascii_expected_diff +0 -0
  649. {diffoscope-280 → diffoscope-282}/tests/data/text_iso8859 +0 -0
  650. {diffoscope-280 → diffoscope-282}/tests/data/text_iso8859_expected_diff +0 -0
  651. {diffoscope-280 → diffoscope-282}/tests/data/text_order1 +0 -0
  652. {diffoscope-280 → diffoscope-282}/tests/data/text_order2 +0 -0
  653. {diffoscope-280 → diffoscope-282}/tests/data/text_order_expected_diff +0 -0
  654. {diffoscope-280 → diffoscope-282}/tests/data/text_sevenzmetadata_expected_diff +0 -0
  655. {diffoscope-280 → diffoscope-282}/tests/data/text_unicode1 +0 -0
  656. {diffoscope-280 → diffoscope-282}/tests/data/text_unicode2 +0 -0
  657. {diffoscope-280 → diffoscope-282}/tests/data/text_unicode_binary_fallback +0 -0
  658. {diffoscope-280 → diffoscope-282}/tests/data/text_unicode_expected_diff +0 -0
  659. {diffoscope-280 → diffoscope-282}/tests/data/text_xz_list +0 -0
  660. {diffoscope-280 → diffoscope-282}/tests/data/ttf_expected_diff +0 -0
  661. {diffoscope-280 → diffoscope-282}/tests/data/ttf_ttx_expected_diff +0 -0
  662. {diffoscope-280 → diffoscope-282}/tests/data/uimage_expected_diff +0 -0
  663. {diffoscope-280 → diffoscope-282}/tests/data/uimage_expected_diff_pre_5_41 +0 -0
  664. {diffoscope-280 → diffoscope-282}/tests/data/wasm_expected_diff +0 -0
  665. {diffoscope-280 → diffoscope-282}/tests/data/xsb_expected_diff +0 -0
  666. {diffoscope-280 → diffoscope-282}/tests/data/zip2_zipdetails_expected_diff +0 -0
  667. {diffoscope-280 → diffoscope-282}/tests/data/zip_bsdtar_expected_diff +0 -0
  668. {diffoscope-280 → diffoscope-282}/tests/data/zip_zipdetails_expected_diff +0 -0
  669. {diffoscope-280 → diffoscope-282}/tests/data/zip_zipinfo_expected_diff +0 -0
  670. {diffoscope-280 → diffoscope-282}/tests/test_diff_mask.py +0 -0
  671. {diffoscope-280 → diffoscope-282}/tests/test_difference.py +0 -0
  672. {diffoscope-280 → diffoscope-282}/tests/test_excludes.py +0 -0
  673. {diffoscope-280 → diffoscope-282}/tests/test_main.py +0 -0
  674. {diffoscope-280 → diffoscope-282}/tests/test_presenters.py +0 -0
  675. {diffoscope-280 → diffoscope-282}/tests/test_progress.py +0 -0
  676. {diffoscope-280 → diffoscope-282}/tests/test_quines.py +0 -0
  677. {diffoscope-280 → diffoscope-282}/tests/test_readers.py +0 -0
  678. {diffoscope-280 → diffoscope-282}/tests/test_source.py +0 -0
  679. {diffoscope-280 → diffoscope-282}/tests/test_tools.py +0 -0
  680. {diffoscope-280 → diffoscope-282}/tests/test_versions.py +0 -0
  681. {diffoscope-280 → diffoscope-282}/tests/utils/__init__.py +0 -0
  682. {diffoscope-280 → diffoscope-282}/tests/utils/data.py +0 -0
  683. {diffoscope-280 → diffoscope-282}/tests/utils/nonexisting.py +0 -0
  684. {diffoscope-280 → diffoscope-282}/tests/utils/tools.py +0 -0
  685. {diffoscope-280 → diffoscope-282}/tests/utils/versions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: diffoscope
3
- Version: 280
3
+ Version: 282
4
4
  Summary: in-depth comparison of files, archives, and directories
5
5
  Home-page: https://diffoscope.org/
6
6
  Author: Diffoscope developers
@@ -17,4 +17,4 @@
17
17
  # You should have received a copy of the GNU General Public License
18
18
  # along with diffoscope. If not, see <https://www.gnu.org/licenses/>.
19
19
 
20
- VERSION = "280"
20
+ VERSION = "282"
@@ -108,6 +108,7 @@ class ComparatorManager:
108
108
  ("openssh.PublicKeyFile",),
109
109
  ("gif.GifFile",),
110
110
  ("pcap.PcapFile",),
111
+ ("uki.UKIFile",),
111
112
  ("pe32.Pe32PlusFile",),
112
113
  ("pgp.PgpFile",),
113
114
  ("pgp.PgpSignature",),
@@ -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-2023 Chris Lamb <lamby@debian.org>
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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: diffoscope
3
- Version: 280
3
+ Version: 282
4
4
  Summary: in-depth comparison of files, archives, and directories
5
5
  Home-page: https://diffoscope.org/
6
6
  Author: Diffoscope developers
@@ -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")
@@ -1,4 +0,0 @@
1
- [report]
2
- exclude_lines =
3
- noqa
4
- raise NotImplementedError
@@ -1,4 +0,0 @@
1
- *
2
- !bin/
3
- !debian/
4
- !diffoscope/
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"]
@@ -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