Bug#893037: Add support for diffing docker-format containers
Hi Jonathan and Lamby, AFAIK, docker /images/ can be exported to tarballs. Not sure how human readable they are, but diffoscope can definitely work. (: On Thu, 15 Mar 2018 22:52:40 + Chris Lambwrote: > tags 893037 + moreinfo > thanks > > Hi Jonathan, > > Thank you very much for the idea and wishlist bug. > > > It would be nice if diffoscope could diff against docker containers available > > on the local system. > > Could you briefly elaborate on what you mean here? I have a bunch of > directories under /var/lib/docker/containers -- are you wanting to > diffoscope two of these, or...? diffoscope basically works on "paths", > you see. > > > Best wishes, > > -- > ,''`. > : :' : Chris Lamb > `. `'` la...@debian.org / chris-lamb.co.uk > `- > > -- Juliana
Bug#877724: test_ppu regression with fpc 3.0.2
Hi Levente, Thanks for the bug report. Looks like a issue with fpc + /etc/localtime. I've been able to reproduce this on Arch, Tumbleweed and I suspect that I'll be also able to see this behavior on Bionic. I'll update here once I gather more information. --- Juliana
Bug#877728: test_elf regression with binutils 2.29.0 on x86-64
tags 877728 + pending -- Juliana
Bug#877728: test_elf regression with binutils 2.29.0 on x86-64
On Wed, 4 Oct 2017 23:27:57 +0200 Levente Polyakwrote: > Package: diffoscope > > diffoscope git version: 70cb725deb12a2eddc4613b5e3af69ed13434bf7 > binutils: 2.29.0 > architecture: x86-64 > > > objdump --info|grep x86 > elf64-x86-64 > elf32-x86-64 > pei-x86-64 > elf64-x86-64 elf32-i386 elf32-iamcu elf32-x86-64 a.out-i386-linux > i386 elf64-x86-64 elf32-i386 --- elf32-x86-64 a.out-i386-linux > pei-i386 pei-x86-64 elf64-l1om elf64-k1om elf64-little elf64-big > i386 pei-i386 pei-x86-64 -- -- elf64-little elf64-big > > > > ==> Starting check()... > = test session starts > == > platform linux -- Python 3.6.2, pytest-3.2.2, py-1.4.34, pluggy-0.4.0 -- > /usr/bin/python > cachedir: .cache > rootdir: /build/diffoscope/src/diffoscope-87, inifile: > collecting ... collected 376 items > > === FAILURES > === > test_obj_compare_non_existing > _ > > monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7f45874ce9e8> > obj1 = < > /build/diffoscope/src/diffoscope-87/tests/data/test1.o> > > @skip_unless_tools_exist('readelf') > @skip_if_binutils_does_not_support_x86() > def test_obj_compare_non_existing(monkeypatch, obj1): > monkeypatch.setattr(Config(), 'new_file', True) > difference = obj1.compare(MissingFile('/nonexisting', obj1)) > assert difference.source2 == '/nonexisting' > > assert len(difference.details) > 0 > E assert 0 > 0 > E + where 0 = len([]) > E + where [] = /build/diffoscope/src/diffoscope-87/tests/data/test1.o -- /nonexisting > []>.details > > tests/comparators/test_elf.py:58: AssertionError > __ test_diff > ___ > > obj_differences = [] > > @skip_unless_tools_exist('readelf') > @skip_if_binutils_does_not_support_x86() > def test_diff(obj_differences): > > assert len(obj_differences) == 1 > E assert 0 == 1 > E + where 0 = len([]) Hi Levente, Thank you for the report. (: Closed in https://anonscm.debian.org/cgit/reproducible/diffoscope.git/commit/?id=9e2013fed0b9652509ad1b60f4be0cbeabe175f8 --- Juliana
Bug#879217: diffoscope: container multilevel comparison
Package: diffoscope Version: 87 Severity: wishlist Dear maintainer, As of today, is not possible to properly compare container files when they have different depths. For example, we can compare sample.tar.gz to sample.tar.bz, but can't sample.tar.gz to sample.tar. This happens due to the .compare method dynamic, which when called from a container expects to be compared to another container and when called from a file, expects to be compared to a file. When comparing multi-level containers, eventually we'll have a File <> Container comparison, falling back to binary comparison without extracting further container layers. Since container depth level goes up to 50, this gets worse the lower we get. At the moment, comparison works like this: sample.tar.gz (A) A.compare(B) (Container <> Container) └── sample.tar (C)- extracts sample.tar and sample.txt └── sample1.txt C.compare(D) (Container <> File) - returns binary comparison sample.tar (B) └── sample2.txt (D) A simple solution would be extracting all the way to a File, but that may cause loss of metadata and tree visualization. A more complex solution may be a comparison by level in which on each level, metadata is attached to a Difference tree. This normalizes container levels. For example: sample.tar.gz (A) A.compare(B) (Container <> Container) └── sample.tar (C)- same type but containers. attach └── sample1.txt (E) metadata diff to tree - extracts sample.tar and sample.txt C.compare(D) (Container <> File) sample.tar (B)- one is container. attach C metadata └── sample2.txt (D) to diff - extracts sample.txt E.compare(D) (File <> File) - both files. attach diff Possible resulting diff: --- sample.tar.gz +++ sample.tar ├── file list │ --rw-r--r-- 0 user ... sample.tar │ +-rw-r--r-- 0 user ... sample2.txt ├── filetype from diffoscope │ -GzipFile │ +TarFile ├── --- sample.tar │ ├── file list │ │ +-rw-r--r-- 0 user ... sample1.txt │ │ --- sample1.txt │ ├── +++ sample2.txt │ │ @@ -1,6 +1,12 @@ │ │ +A common form of lorem ipsum reads: │ ...