-
diffoscope (87) unstable; urgency=medium
[ Juliana Oliveira Rodrigues ]
* comparators:
+ utils:
- compare: fix comparison between container types.
- container: add get_path_name() method, aiming at preventing hitting
OS' max filename length.
+ gzip: replace dest_path generation with self.get_path_name().
+ bzip2: replace dest_path generation with self.get_path_name().
* tests:
+ presenters:
- skip html_visuals test if 'sng' binary is not available.
+ comparators:
- test_cointainers: new tests to test cross-container comparisons.
- add test_containers.py.
[ Chris Lamb ]
* comparators:
+ utils:
- file: correct reference to path_apparent_size.
+ fonts: loosen matching of file(1)'s output to ensure we correctly also
match TTF files under file 5.32.
+ binwalk:
- new comparator to deal with (e.g.) concatenated CPIO archives using
the new optional python module 'binwalk'. Closes: #820631
* diffoscope.diff: Correct reference to self.buf.
* debian/rules: run flake8 during the tests, and fail the build in case the
"underfined name" flake8's check fails.
* tests/comparators:
+ test_cpio: check we identify all CPIO fixtures.
* main:
+ print a debugging message if we are reading diff from stdin.
* presenters:
+ html: use logging.py's lazy argument interpolation.
* debian/control: bump Standards-Version to 4.1.0.
* Code style improvements across all of the codebase.
[ Mattia Rizzolo ]
* debian/changelog: retroactively close a bug in an old changelog entry.
* setup.py: add a check to prevent people from installing diffoscope under
python < 3.5 (i.e. python2) and give them a usable error message otherwise.
* Code style improvements across all of the codebase.
[ Ximin Luo ]
* comparators:
+ add a fallback_recognizes() method to work around file(1)'s bug #876316.
Closes: #875282
+ add a --force-details flag for debugging.
+ deb:
- if --force-details then don't skip files with identical md5sums either.
* presenters:
+ html:
- prune all descendants properly. Closes: #875281
- don't show pointer-cursor when jquery is disabled.
* config:
+ force-set a value if it must be less than another, and it was not set on
purpose. Closes: #875451
* readers: convert bytes to str in the right place.
* diff: use diff_split_lines everywhere.
* difference:
+ in fmap/map_lines, don't forget about self._visuals.
+ also copy self._comment properly, compare self._visuals in equals().
* tests/comparators:
+ test_deb: make test_md5sums less brittle.
-- Mattia Rizzolo <email address hidden> Fri, 22 Sep 2017 18:53:05 +0200
-
diffoscope (86ubuntu1) artful; urgency=medium
* Merge from debian
* diffoscope/comparators/fonts.py: Cherry pick debian commit to
address diffoscope adt failure introduced by 1:5.32-1.
- origin: diffoscope git commit
af9fe0446de3595a1eaa8a9c9b401462a68842d0
- package can be brought back into sync when debian releases v87.
* debian/rules: adjust check to compensate for ubuntu package version
-- Steve Beattie <email address hidden> Tue, 12 Sep 2017 23:52:42 -0700
-
diffoscope (86) unstable; urgency=medium
[ Mattia Rizzolo ]
* tests:
+ binary: skip a test if the 'distro' module is not available.
+ iso9660: avoid an overly-catching exception.
* debian/copyright: coalesce some file paragraphs and update information.
[ Guangyuan Yang ]
* tests:
+ iso9660: support both cdrtools' genisoimage's versions of isoinfo.
[ Chris Lamb ]
* comparators:
+ xml: Use ``name`` attribute over ``path`` to avoid leaking comparison
full path in output.
* Tidy diffoscope.progress a little.
[ Ximin Luo ]
* Add a --tool-prefix-binutils CLI flag. Closes: #869868
* On non-GNU systems, prefer some tools that start with "g". Closes: #871029
* presenters:
+ html:
- Don't traverse children whose parents were already limited.
Closes: #871413
[ Santiago Torres-Arias ]
* diffoscope.progress:
+ Support the new fork of python-progressbar. Closes: #873157
-- Mattia Rizzolo <email address hidden> Sun, 03 Sep 2017 22:23:06 +0200
-
diffoscope (85) unstable; urgency=medium
[ Mattia Rizzolo ]
* tools:
+ move from the deprecated platform.linux_distribution() to the external
python package "distro". Add it as an optioanl dependency, as without it
distribution detection (i.e. `diffoscope --list-tools`) won't work.
Also add it as a Debian (hard) dependency, as it's a very lightway
package, and the usefulness it brings are great.
+ add a get_package_provider() function, returning the package name
that best matches the system.
* exc:
+ in RequiredToolNotFound.get_package(), just call the new
get_package_provider()
* debian/rules:
+ recommends the defusedxml python package, to avoid using the python3's
standard xml library and its security holes.
[ Chris Lamb ]
* comparators:
+ sqlite:
- Simplify file detection by rewriting manual `recognizes` call
with a `Sqlite3Database.RE_FILE_TYPE` definition.
+ xml:
- Fix EPUB "missing file" tests; they ship a META-INF/container.xml file.
[ Ximin Luo ]
* comparators:
+ factor common logic from various comparators into File.recognizes.
+ more tidying up and making names consistent.
+ directory:
- make stat(1) warning textually like the other warnings.
- bump stat(1) warning into an error.
- use getfacl(1) before lsattr(1) as it's more general.
+ apk:
- less kludgy way of detecting APKs. Closes: #868486
* main, logging:
+ restore old logger settings to avoid pytest fail in certain situations.
* debian/rules:
+ add a check to prevent additions of "DOS/MBR" file type.
* feeder:
+ force a flush when writing output to diff. Closes: #870049
* tests/comparators:
+ directory:
- be less strict about the expected test output, to cope with a missing
`getfacl`. Closes: #868534
[ Juliana Oliveira Rodrigues ]
* comparators:
+ Add new XML comparator. Closes: #866120
The comparator will use defusedxml if this is installed, to avoid
falling in known security holes coming from the XML specification.
* tests/comparators:
+ apk:
- fix the tests after the addition of the XML comparator.
+ image:
- fix test_ico_image for identify >= 6.9.8.
[ Guangyuan Yang ]
* tests/comparators:
+ device:
- fix 2 cases for FreeBSD.
-- Mattia Rizzolo <email address hidden> Mon, 31 Jul 2017 22:27:45 +0200
-
diffoscope (84build4) artful; urgency=medium
[ Mattia Rizzolo ]
* cherry-pick part of 041c2b8356aae6005cd2d815a1233c4d00eccad7
-- Gianfranco Costamagna <email address hidden> Wed, 26 Jul 2017 19:31:02 +0200
-
diffoscope (84build3) artful; urgency=medium
[ Mattia Rizzolo ]
* cherry-pick upstream commit to fix another test failure on
s390x
- fe57c99828060ae77af2784961d47beb44eb74f5
-- Gianfranco Costamagna <email address hidden> Wed, 26 Jul 2017 14:42:18 +0200
-
diffoscope (84build2) artful; urgency=medium
[ Mattia Rizzolo ]
* cherry-pick upstream commit to fix another test failure on
s390x
- 7e16cecb98ec2e874da4f3ea291e276602852dcd
-- Gianfranco Costamagna <email address hidden> Wed, 26 Jul 2017 14:38:48 +0200
-
diffoscope (84build1) artful; urgency=medium
* cherry-pick upstream commits to fix build/test failures.
- c8927db98131a129c5d7354bfe8a6b0886ca66f8
- e62306e17e8a9b981d3b7f427bc99f8582a0301a
- c12bee5fc718c918d6280102d4dbe688b0a553cf
-- Gianfranco Costamagna <email address hidden> Wed, 26 Jul 2017 08:56:53 +0200
-
diffoscope (84) unstable; urgency=medium
[ Ximin Luo ]
* comparators:
+ directory:
- raise warning for getfacl and remove a redundant try-clause.
- add a --exclude-directory-metadata option. Closes: #866241
* diff:
+ Restore artificial limit when calculating linediff, to prevent memory
blow up. Closes: #865660
* presenters:
+ text:
- fix recursive header display in the text output, deeply-nested headers
were not getting indented far enough.
+ add a PartialString class.
+ html:
- in html-dir mode, put css/icon in separate files to avoid duplication.
- split index pages up if they get too big.
- add a size-hint to the diff headers and lazy-load buttons.
- diffcontrol UI tweaks:
* don't toggle buttons for diffs that haven't been loaded yet;
* make the diffcontrol headers clickable.
- more intuitive "limit" flags, with some backwards-incompatible changes:
--max-report-size:
Old: in --html-dir this limited only the parent page
New: in --html-dir this applies across all pages
--max-diff-block-lines:
Old: in --html-dir 4 * this number applied across all pages
New: in --html-dir this applies across all pages
--max-page-size:
New flag
Applies to the sole --html page, or the top-level --html-dir page
--max-report-child-size
Renamed to
--max-page-size-child:
No behavioural changes
--max-diff-block-lines-parent
Renamed to
--max-page-diff-block-lines:
Old: Only applied to the top-level --html-dir page
New: Applies to the sole --html page or the top-level --html-dir page
* main:
+ temporarily add old flags back for backwards-compatibility.
+ warn if loading a diff but also giving diff-calculation flags.
+ implement proper boolean flags to fix test failure in previous commit.
* tests:
+ handle existing but not importable modules.
This fixes the tests during the Python 3.6 transition, where some
modules (like rpm) exists but are not yet rebuilt for 3.6.
+ fix progressbar failure that was exposed by the previous importing fixes.
+ presenters:
- skip visual test if tools aren't installed. Closes: #865625
+ comparators
- sqlite: test for sqlite 3.19.
- fsimage: move the guestfs cache out of the default /var/tmp/ into a
"more temporary" directory.
[ Mattia Rizzolo ]
* debian/control: fix Vcs-Git field.
[ Chris Lamb ]
* debian/control: bump Standards-Version to 4.0.0.
[ Daniel Shahaf ]
* Fix markup in the man page synopsis. Closes: #866577
Thanks to Niels Thykier for the report.
-- Mattia Rizzolo <email address hidden> Wed, 12 Jul 2017 12:28:11 +0200
-
diffoscope (83) unstable; urgency=medium
[ Chris Lamb ]
* New features:
* Add comparator for Fontconfig cache files.
* Bug fixes:
- Don't fail when run under perversely recursive input files. See
<https://research.swtch.com/zip> for more information. (Closes: #780761)
- Prevent a traceback when using --new-file with containers by passing
progress_name of the Member and not the member itself. (Closes: #861286)
- Drop passing has_differences around, fixing an issue with generating
files called '-'.
* Cleanups & refactoring:
- Reorder and rename FIFOFeeder arguments to prevent tools incorrectly
parsing as a SyntaxError.
- Refactor HTML and text presenters so they fit the same interface.
- Refactor Presenter to a singleton manager.
- Split output and configuration of presenters.
- Prevent abstraction-level violation by defining visual diff support on
the Presenter classes.
- Split diffoscope.difference into a feeders module.
- Document various variables.
- PEP8-ify and tidy a lot of files.
[ Ximin Luo ]
* New features:
- Add --max-container-depth CLI option.
- Add various traverse_* methods to Difference.
- Weigh elements in progress bar by their size.
- Add a reader for the JSON format.
- Add a --exclude-command CLI for filtering out long-running commands like
"readelf --debug-dump=info".
- Don't show +/- controls for differences with no children.
- Use unicode chars for the +/- controls instead of punctuation.
* Bug fixes:
- Fix --exclude control.tar.gz.
- Make the progress bar play nicely with --debug.
- When enforcing max-container-depth, show which internal files differ,
without showing details.
- Fix JSON presenter to handle recursion properly.
- Avoid a ZeroDivisionError in the progress bar
- Fix create_limited_print_func.
* Tests:
- Fix failing tests due to logging global state.
- Add tips about running with TMPDIR=/run/shm.
* Cleanups & refactoring:
- Remove unnecessary "dest" args to argparse.
- Refactor DirectoryContainer to be more similar to Container.
- Refactor Container abstract method names.
- Remove unused imports and tidy up Container.comparisons().
- rename get_{filtered => adjusted}_members_sizes for consistency.
- Move tests/comparators/utils up one directory.
- html-dir: show/hide diff comments which can be very large.
- Refactor html-dir presenter to a class instance avoiding global state.
- Move side-by-side and linediff algorithms to difference.py.
- difference: has_children -> has_visible_children, and take into account
comments.
- Move ydiff/linediff from diffoscope.{difference => diff} to group
unified_diff-related things together
[ Maria Glukhova ]
* New features:
- Add visual comparisons for JPEG, ICO, PNG and static GIF images.
* Test improvements:
- Test that external tools providers are being returned when tool is not
found.
- Add tests for OutputParserError and ContainerExtractionError.
* Cleanups & refactoring:
* Ignore text difference if we have a visual one.
* Fix link formatting and typo in README.
* Rename html_output to compute_visual_diffs and explain its purpose.
* Removed duplicated functions from diff.py.
[ Mattia Rizzolo ]
* Export junit-xml style test report when building on Jenkins.
[ anthraxx ]
* Extend external Arch Linux tools list.
-- Chris Lamb <email address hidden> Sun, 18 Jun 2017 15:34:59 +0800
-
diffoscope (82) experimental; urgency=medium
[ Chris Lamb ]
* New features:
- Add support for comparing Pcap files. (Closes: #858867)
- Add support for .docx and .odt files via docx2txt & odt2txt.
(Closes: #859056)
- Add support for PGP files via pgpdump. (Closes: #859034)
- Add support for comparing Ogg Vorbis files.
* Bug fixes:
- Don't crash on invalid archives; print a useful error instead.
(Closes: #833697)
- Ensure tests and the runtime environment can locate binaries in
/usr/sbin (eg. tcpdump)
* Tests:
- Ensure that PATH is modified.
- Ensure @tool_required raises RequiredToolNotFound.
- Don't assume that /sbin/init exists; locate any /sbin binary manually and
then test for that. This should prevent FTBFS on travis-ci.org.
- Show packages installed in report output.
* Misc:
- comparators.bzip2: Don't print error output from bzip2 call.
- comparators.pcap: Show the delta, not the absolute time.
- Use /usr/share/dpkg/pkg-info.mk over manual calls to dpkg-parsechangelog
in debian/rules.
- Document PYTHONPATH usage when running tests in README.Source.
- Add internal documentation for @tool_required decorator.
[ <email address hidden> ]
* Display differences in zip platform-specific timestamps. (Closes: #859117)
[ Ximin Luo ]
* Add support for R .rds and .rdb object files.
[ Vagrant Cascadian ]
* Add support for .dtb (device tree blob) files (Closes: #861109).
-- Chris Lamb <email address hidden> Wed, 26 Apr 2017 16:17:57 +0200
-
diffoscope (81) experimental; urgency=medium
[ Chris Lamb ]
* Correct meaningless "1234-content" metadata when introspecting files
within archives. This was a regression since #854723 due to the use of
auto-incrementing on-disk filenames. (Closes: #858223)
* Refactor get_compressed_content_name.
[ Ximin Luo ]
* Improve ISO9660/DOS/MBR check.
-- Chris Lamb <email address hidden> Mon, 27 Mar 2017 16:21:17 +0100