Bug#893037: Add support for diffing docker-format containers

2018-03-22 Thread Juliana Oliveira
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 Lamb  wrote:
> 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

2017-12-23 Thread Juliana Oliveira
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

2017-12-21 Thread Juliana Oliveira
tags 877728 + pending

--

Juliana



Bug#877728: test_elf regression with binutils 2.29.0 on x86-64

2017-12-21 Thread Juliana Oliveira
On Wed, 4 Oct 2017 23:27:57 +0200 Levente Polyak
 wrote:
> 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

2017-10-20 Thread Juliana Oliveira
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:
│ ...