Commit 98ff014e authored by Jérémy Bobbio's avatar Jérémy Bobbio

Rename to diffoscope

debbindiff has grown way beyond a being just a tool to compare Debian packages.
Let's rename it to better reflect this state of things.

Kudos to Jocelyn Delalande for the name “diffoscope”!

We introduce a new transitional binary package to keep too many things to
break.
parent 9d1b5897
*.sw[p-z]
*.pyc
/debbindiff.egg-info/
/diffoscope.egg-info/
/dist/
.coverage
/htmlcov/
debbindiff
diffoscope
==========
Highlight differences between two builds of Debian packages, and even
other kind of files.
diffoscope will try to get to the bottom of what makes files or
directories different. It will recursively unpack archives of many kinds
and transform various binary formats into more human readable form to
compare them. It can compare two tarballs, ISO images, or PDF just as
easily.
debbindiff will exit with 0 if there's no differences and 1 if there
It can be scripted through error codes, and a report can be produced
with the detected differences. The report can be text or HTML.
When no type of report has been selected, diffoscope defaults
to write a text report on the standard output.
diffoscope will exit with 0 if there's no differences and 1 if there
are. An HTML report can be produced with the detected differences.
debbindiff was written as part of the “reproducible builds” Debian
diffoscope is developed as part of the “reproducible builds” Debian
project: <https://wiki.debian.org/ReproducibleBuilds>
It is meant to be able to quickly understand why two builds of the same
package produce different outputs.
package produce different outputs. diffoscope was previously named
debbindiff.
Example
-------
$ ./debbindiff.py --html output.html build1.changes build2.changes
$ ./diffoscope.py --html output.html build1.changes build2.changes
This will compare `build1.changes` and `build2.changes` and create
`output.html` if there are differences between the two files.
......@@ -26,25 +35,26 @@ External dependencies
The various comparators rely on external commands being available. To
get a list of them, please run:
$ ./debbindiff.py --list-tools
$ ./diffoscope.py --list-tools
Authors
-------
Contributors
------------
Lunar <lunar@debian.org>
Lunar, Reiner Herrmann, Chris Lamb, Helmut Grohne, Holger Levsen,
Yasushi SHOJI, Daniel Kahn Gillmor, Peter De Wachter.
License
-------
debbindiff is free software: you can redistribute it and/or modify
diffoscope is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
debbindiff is distributed in the hope that it will be useful,
diffoscope is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
debbindiff: hacking tips
diffoscope: hacking tips
========================
Running the test suite
......@@ -11,4 +11,4 @@ the tests are then:
To get code coverage:
$ py.test --cov debbindiff --cov-report html
$ py.test --cov diffoscope --cov-report html
Source: debbindiff
Source: diffoscope
Section: devel
Priority: optional
Maintainer: Reproducible builds folks <reproducible-builds@lists.alioth.debian.org>
......@@ -19,22 +19,33 @@ Build-Depends: debhelper (>= 9),
rpm-common
Standards-Version: 3.9.6
X-Python-Version: >= 2.7
Homepage: https://wiki.debian.org/ReproducibleBuilds
Vcs-Git: git://anonscm.debian.org/reproducible/debbindiff.git
Vcs-Browser: https://anonscm.debian.org/cgit/reproducible/debbindiff.git
Homepage: http://diffoscope.org/
Vcs-Git: git://anonscm.debian.org/reproducible/diffoscope.git
Vcs-Browser: https://anonscm.debian.org/cgit/reproducible/diffoscope.git
XS-Testsuite: autopkgtest
Package: debbindiff
Package: diffoscope
Architecture: all
Depends: ${misc:Depends},
${python:Depends},
Recommends: ${debbindiff:Recommends}
Description: highlight differences between two builds of Debian packages
debbindiff was designed to easily compare two builds of the same Debian
package, and understand their differences.
.
It can be scripted through error codes, and an HTML report can be produced
with the detected differences.
Recommends: ${diffoscope:Recommends}
Breaks: debbindiff (<< 29)
Replaces: debbindiff (<< 29)
Description: in-depth comparison of files, archives, and directories
diffoscope will try to get to the bottom of what makes files or directories
different. It will recursively unpack archives of many kinds and transform
various binary formats into more human readable form to compare them. It can
compare two tarballs, ISO images, or PDF just as easily. The differences can
be shown in a text or HTML report.
.
debbindiff was written as part of the “reproducible builds” Debian
project.
diffoscope is developed as part of the “reproducible builds” Debian
project and was formerly known as “debbindiff”.
Package: debbindiff
Depends: diffoscope, ${misc:Depends}
Architecture: all
Priority: extra
Section: oldlibs
Description: transitional package
This is a transitional package. It can safely be removed once
callers have been update to use 'diffoscope' instead of 'debbindiff'.
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: debbindiff
Source: https://anonscm.debian.org/cgit/reproducible/debbindiff.git/
Upstream-Name: diffoscope
Source: https://anonscm.debian.org/cgit/reproducible/diffoscope.git/
Files: *
Copyright: 2014-2015 Jérémy Bobbio <lunar@debian.org>
License: GPL-3+
Files: debbindiff/changes.py
Files: diffoscope/changes.py
Copyright: 2008 Jonny Lamb <jonny@debian.org>
2010 Jan Dittberner <jandd@debian.org>
2012 Arno Töll <arno@debian.org>
......@@ -14,37 +14,37 @@ Copyright: 2008 Jonny Lamb <jonny@debian.org>
2014-2015 Jérémy Bobbio <lunar@debian.org>
License: Expat
Files: debbindiff/comparators/__init__.py
Files: diffoscope/comparators/__init__.py
Copyright: 2014-2015 Jérémy Bobbio <lunar@debian.org>
2015 Helmut Grohne <helmut@subdivi.de>
2015 Chris Lamb <lamby@debian.org>
2015 Reiner Herrmann <reiner@reiner-h.de>
License: GPL-3+
Files: debbindiff/comparators/bzip2.py
debbindiff/comparators/elf.py
debbindiff/comparators/fonts.py
debbindiff/comparators/gettext.py
debbindiff/comparators/gzip.py
debbindiff/comparators/haskell.py
debbindiff/comparators/pdf.py
debbindiff/comparators/png.py
debbindiff/comparators/utils.py
debbindiff/comparators/xz.py
debbindiff/comparators/zip.py
Files: diffoscope/comparators/bzip2.py
diffoscope/comparators/elf.py
diffoscope/comparators/fonts.py
diffoscope/comparators/gettext.py
diffoscope/comparators/gzip.py
diffoscope/comparators/haskell.py
diffoscope/comparators/pdf.py
diffoscope/comparators/png.py
diffoscope/comparators/utils.py
diffoscope/comparators/xz.py
diffoscope/comparators/zip.py
Copyright: 2014-2015 Jérémy Bobbio <lunar@debian.org>
2015 Reiner Herrmann <reiner@reiner-h.de>
License: GPL-3+
Files: debbindiff/comparators/cpio.py
debbindiff/comparators/directory.py
debbindiff/comparators/rpm.py
debbindiff/comparators/squashfs.py
Files: diffoscope/comparators/cpio.py
diffoscope/comparators/directory.py
diffoscope/comparators/rpm.py
diffoscope/comparators/squashfs.py
Copyright: 2015 Reiner Herrmann <reiner@reiner-h.de>
2015 Jérémy Bobbio <lunar@debian.org>
License: GPL-3+
Files: debbindiff/presenters/html.py
Files: diffoscope/presenters/html.py
Copyright: 2014-2015 Jérémy Bobbio <lunar@debian.org>
2015 Reiner Herrmann <reiner@reiner-h.de>
2012-2013 Olivier Matz <zer0@droids-corp.org>
......@@ -53,7 +53,7 @@ Copyright: 2014-2015 Jérémy Bobbio <lunar@debian.org>
2012 scito <info@scito.ch>
License: GPL-3+
Files: debbindiff/presenters/text.py
Files: diffoscope/presenters/text.py
Copyright: 2015 Jérémy Bobbio <lunar@debian.org>
2015 Helmut Grohne <helmut@subdivi.de>
License: GPL-3+
......
usr/bin/diffoscope usr/bin/debbindiff
usr/share/man/man1/diffoscope.1.gz usr/share/man/man1/debbindiff.1.gz
============
debbindiff
diffoscope
============
-----------------------------------------------------------
highlight differences between two builds of Debian packages
-----------------------------------------------------------
-------------------------------------------------------
in-depth comparison of files, archives, and directories
-------------------------------------------------------
:Author: lunar@debian.org
:Copyright: GPL-3+
......@@ -14,21 +14,24 @@ highlight differences between two builds of Debian packages
SYNOPSIS
========
debbindiff [-h] [--version] [--debug] [--html output] [--text output] [--max-report-size bytes] [--css url] file1 file2
diffoscope [-h] [--version] [--debug] [--html output] [--text output] [--max-report-size bytes] [--css url] file1 file2
DESCRIPTION
===========
debbindiff was designed to easily compare two builds of the same Debian
package, and understand their differences.
diffoscope will try to get to the bottom of what makes files or
directories different. It will recursively unpack archives of many kinds
and transform various binary formats into more human readable form to
compare them. It can compare two tarballs, ISO images, or PDF just as
easily.
It can be scripted through error codes, and a report can be produced
with the detected differences. The report can be text or HTML.
When no type of report has been selected, debbindiff defaults
When no type of report has been selected, diffoscope defaults
to write a text report on the standard output.
debbindiff was written as part of the “reproducible builds” Debian
project.
diffoscope is developed as part of the “reproducible builds” Debian
project and was formerly known as “debbindiff”.
OPTIONS
=======
......@@ -51,4 +54,5 @@ Exit status is 0 if inputs are the same, 1 if different, 2 if trouble.
SEE ALSO
========
* `<http://diffoscope.org/>`
* `<https://wiki.debian.org/ReproducibleBuilds>`
debian/diffoscope.1
......@@ -6,24 +6,24 @@ VERSION = $(shell dpkg-parsechangelog --show-field Version)
dh $@ --with python2 --buildsystem=pybuild
override_dh_gencontrol:
echo "debbindiff:Recommends=$$(./debbindiff.py --list-tools | tail -n 1 | \
sed -e 's/\(^\| \)\(coreutils\|diffutils\|e2fsprogs\|findutils\|gzip\)\(,\|$$\)//g')" >> debian/debbindiff.substvars
echo "diffoscope:Recommends=$$(./diffoscope.py --list-tools | tail -n 1 | \
sed -e 's/\(^\| \)\(coreutils\|diffutils\|e2fsprogs\|findutils\|gzip\)\(,\|$$\)//g')" >> debian/diffoscope.substvars
dh_gencontrol -O--buildsystem=python_distutils
override_dh_install:
mv debian/debbindiff/usr/bin/debbindiff.py debian/debbindiff/usr/bin/debbindiff
mv debian/diffoscope/usr/bin/diffoscope.py debian/diffoscope/usr/bin/diffoscope
dh_install -O--buildsystem=python_distutils
debian/debbindiff.1: debian/debbindiff.1.rst
debian/diffoscope.1: debian/diffoscope.1.rst
rst2man $< $@
override_dh_installman: debian/debbindiff.1
override_dh_installman: debian/diffoscope.1
dh_installman -O--buildsystem=python_distutils
override_dh_clean:
rm -f debian/debbindiff.1
@if ! grep -q 'VERSION = "$(VERSION)"' debbindiff/__init__.py; then \
echo "Version in debian/changelog doesn't match debbindiff version"; \
rm -f debian/diffoscope.1
@if ! grep -q 'VERSION = "$(VERSION)"' diffoscope/__init__.py; then \
echo "Version in debian/changelog doesn't match diffoscope version"; \
exit 1; \
fi
dh_clean -O--buildsystem=python_distutils
Tests: pytest
Depends: debbindiff, python-pytest
Depends: diffoscope, python-pytest
Restrictions: needs-recommends
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# debbindiff: highlight differences between two builds of Debian packages
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
#
# debbindiff is free software: you can redistribute it and/or modify
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# debbindiff is distributed in the hope that it will be useful,
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
# along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
from __future__ import print_function
......@@ -27,10 +27,10 @@ import codecs
import os
import sys
import traceback
from debbindiff import logger, VERSION, set_locale
import debbindiff.comparators
from debbindiff.presenters.html import output_html
from debbindiff.presenters.text import output_text
from diffoscope import logger, VERSION, set_locale
import diffoscope.comparators
from diffoscope.presenters.html import output_html
from diffoscope.presenters.text import output_text
def create_parser():
......@@ -38,7 +38,7 @@ def create_parser():
description='Highlight differences between two builds '
'of Debian packages')
parser.add_argument('--version', action='version',
version='debbindiff %s' % VERSION)
version='diffoscope %s' % VERSION)
parser.add_argument('--list-tools', nargs=0, action=ListToolsAction,
help='show external tools required and exit')
parser.add_argument('--debug', dest='debug', action='store_true',
......@@ -75,7 +75,7 @@ def make_printer(path):
class ListToolsAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
from debbindiff import tool_required, RequiredToolNotFound
from diffoscope import tool_required, RequiredToolNotFound
print("External tools required:")
print(', '.join(tool_required.all))
print()
......@@ -90,7 +90,7 @@ def main():
if parsed_args.debug:
logger.setLevel(logging.DEBUG)
set_locale()
difference = debbindiff.comparators.compare_root_paths(
difference = diffoscope.comparators.compare_root_paths(
parsed_args.file1, parsed_args.file2)
if difference:
if parsed_args.html_output:
......
# -*- coding: utf-8 -*-
#
# debbindiff: highlight differences between two builds of Debian packages
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
#
# debbindiff is free software: you can redistribute it and/or modify
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# debbindiff is distributed in the hope that it will be useful,
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
# along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
from functools import wraps
import logging
......@@ -24,7 +24,7 @@ import os
VERSION = "28"
logger = logging.getLogger("debbindiff")
logger = logging.getLogger("diffoscope")
logger.setLevel(logging.WARNING)
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
......
......@@ -46,7 +46,7 @@ import os.path
import hashlib
import subprocess
from debian import deb822
from debbindiff import logger, tool_required
from diffoscope import logger, tool_required
class ChangesFileException(Exception):
......
# -*- coding: utf-8 -*-
#
# debbindiff: highlight differences between two builds of Debian packages
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
# © 2015 Helmut Grohne <helmut@subdivi.de>
#
# debbindiff is free software: you can redistribute it and/or modify
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# debbindiff is distributed in the hope that it will be useful,
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
# along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
import magic
import operator
......@@ -24,40 +24,40 @@ import os.path
import re
import sys
import ssdeep
from debbindiff import logger, tool_required
from debbindiff.difference import Difference
from debbindiff.comparators.binary import \
from diffoscope import logger, tool_required
from diffoscope.difference import Difference
from diffoscope.comparators.binary import \
File, FilesystemFile, compare_binary_files
from debbindiff.comparators.bzip2 import Bzip2File
from debbindiff.comparators.java import ClassFile
from debbindiff.comparators.cpio import CpioFile
from debbindiff.comparators.deb import DebFile, Md5sumsFile, DebDataTarFile
from debbindiff.comparators.debian import DotChangesFile
from debbindiff.comparators.device import Device
from debbindiff.comparators.directory import Directory, compare_directories
from debbindiff.comparators.elf import ElfFile, StaticLibFile
from debbindiff.comparators.fonts import TtfFile
from debbindiff.comparators.gettext import MoFile
from debbindiff.comparators.gzip import GzipFile
from debbindiff.comparators.haskell import HiFile
from debbindiff.comparators.ipk import IpkFile
from debbindiff.comparators.iso9660 import Iso9660File
from debbindiff.comparators.mono import MonoExeFile
from debbindiff.comparators.pdf import PdfFile
from debbindiff.comparators.png import PngFile
from diffoscope.comparators.bzip2 import Bzip2File
from diffoscope.comparators.java import ClassFile
from diffoscope.comparators.cpio import CpioFile
from diffoscope.comparators.deb import DebFile, Md5sumsFile, DebDataTarFile
from diffoscope.comparators.debian import DotChangesFile
from diffoscope.comparators.device import Device
from diffoscope.comparators.directory import Directory, compare_directories
from diffoscope.comparators.elf import ElfFile, StaticLibFile
from diffoscope.comparators.fonts import TtfFile
from diffoscope.comparators.gettext import MoFile
from diffoscope.comparators.gzip import GzipFile
from diffoscope.comparators.haskell import HiFile
from diffoscope.comparators.ipk import IpkFile
from diffoscope.comparators.iso9660 import Iso9660File
from diffoscope.comparators.mono import MonoExeFile
from diffoscope.comparators.pdf import PdfFile
from diffoscope.comparators.png import PngFile
try:
from debbindiff.comparators.rpm import RpmFile
from diffoscope.comparators.rpm import RpmFile
except ImportError as ex:
if ex.message != 'No module named rpm':
raise
from debbindiff.comparators.rpm_fallback import RpmFile
from debbindiff.comparators.sqlite import Sqlite3Database
from debbindiff.comparators.squashfs import SquashfsFile
from debbindiff.comparators.symlink import Symlink
from debbindiff.comparators.text import TextFile
from debbindiff.comparators.tar import TarFile
from debbindiff.comparators.xz import XzFile
from debbindiff.comparators.zip import ZipFile
from diffoscope.comparators.rpm_fallback import RpmFile
from diffoscope.comparators.sqlite import Sqlite3Database
from diffoscope.comparators.squashfs import SquashfsFile
from diffoscope.comparators.symlink import Symlink
from diffoscope.comparators.text import TextFile
from diffoscope.comparators.tar import TarFile
from diffoscope.comparators.xz import XzFile
from diffoscope.comparators.zip import ZipFile
def compare_root_paths(path1, path2):
......
# -*- coding: utf-8 -*-
#
# debbindiff: highlight differences between two builds of Debian packages
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
#
# debbindiff is free software: you can redistribute it and/or modify
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# debbindiff is distributed in the hope that it will be useful,
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
# along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
from abc import ABCMeta, abstractproperty, abstractmethod
from binascii import hexlify
......@@ -28,8 +28,8 @@ from stat import S_ISCHR, S_ISBLK
import subprocess
import ssdeep
import magic
from debbindiff.difference import Difference
from debbindiff import tool_required, RequiredToolNotFound, logger
from diffoscope.difference import Difference
from diffoscope import tool_required, RequiredToolNotFound, logger
@contextmanager
......
# -*- coding: utf-8 -*-
#
# debbindiff: highlight differences between two builds of Debian packages
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
#
# debbindiff is free software: you can redistribute it and/or modify
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# debbindiff is distributed in the hope that it will be useful,
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
# along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
from contextlib import contextmanager
import os.path
import re
import subprocess
import debbindiff.comparators
from debbindiff.comparators.binary import File, needs_content
from debbindiff.comparators.utils import Archive, get_compressed_content_name
from debbindiff import logger, tool_required
import diffoscope.comparators
from diffoscope.comparators.binary import File, needs_content
from diffoscope.comparators.utils import Archive, get_compressed_content_name
from diffoscope import logger, tool_required
class Bzip2Container(Archive):
......@@ -58,7 +58,7 @@ class Bzip2Container(Archive):
source = None
if my_file.name == other_file.name:
source = my_file.name
return [debbindiff.comparators.compare_files(my_file, other_file, source)]
return [diffoscope.comparators.compare_files(my_file, other_file, source)]
class Bzip2File(File):
......
# -*- coding: utf-8 -*-
#
# debbindiff: highlight differences between two builds of Debian packages
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2015 Reiner Herrmann <reiner@reiner-h.de>
# 2015 Jérémy Bobbio <lunar@debian.org>
#
# debbindiff is free software: you can redistribute it and/or modify
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# debbindiff is distributed in the hope that it will be useful,
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
# along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
import re
import subprocess
import os.path
import debbindiff.comparators
from debbindiff import logger, tool_required
from debbindiff.comparators.binary import File, needs_content
from debbindiff.comparators.libarchive import LibarchiveContainer
from debbindiff.comparators.utils import Command
from debbindiff.difference import Difference
import diffoscope.comparators
from diffoscope import logger, tool_required
from diffoscope.comparators.binary import File, needs_content
from diffoscope.comparators.libarchive import LibarchiveContainer
from diffoscope.comparators.utils import Command
from diffoscope.difference import Difference
class CpioContent(Command):
......
# -*- coding: utf-8 -*-
#
# debbindiff: highlight differences between two builds of Debian packages
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
#
# debbindiff is free software: you can redistribute it and/or modify
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# debbindiff is distributed in the hope that it will be useful,
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
# along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
from __future__ import absolute_import
import re
import os.path
from debian.arfile import ArFile
from debbindiff import logger
from debbindiff.difference import Difference
import debbindiff.comparators
from debbindiff.comparators.binary import File, needs_content
from debbindiff.comparators.utils import \
from diffoscope import logger
from diffoscope.difference import Difference
import diffoscope.comparators
from diffoscope.comparators.binary import File, needs_content
from diffoscope.comparators.utils import \
Archive, ArchiveMember, get_ar_content
from debbindiff.comparators.tar import TarContainer, get_tar_listing
from diffoscope.comparators.tar import TarContainer, get_tar_listing
AR_EXTRACTION_BUFFER_SIZE = 32768
......
# -*- coding: utf-8 -*-
#
# debbindiff: highlight differences between two builds of Debian packages
# diffoscope: in-depth comparison of files, archives, and directories
#
# Copyright © 2014-2015 Jérémy Bobbio <lunar@debian.org>
#
# debbindiff is free software: you can redistribute it and/or modify
# diffoscope is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# debbindiff is distributed in the hope that it will be useful,
# diffoscope is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with debbindiff. If not, see <http://www.gnu.org/licenses/>.
# along with diffoscope. If not, see <http://www.gnu.org/licenses/>.
from contextlib import contextmanager