Blob Blame History Raw
Name:          diffoscope
Version:       77
Release:       2%{?dist}
Summary:       In-depth comparison of files, archives, and directories
License:       GPLv3+
URL:           https://diffoscope.org/
Source0:       http://ftp.debian.org/debian/pool/main/d/diffoscope/diffoscope_%{version}.tar.xz

%global tools \
    acl \
    e2fsprogs \
    cpio \
    llvm, llvm-devel \
    binutils \
    diffutils \
    gzip \
    unzip \
    bzip2 \
    xz \
    tar \
    sng >= 1.1.0-2 \
    openssh \
    openssh-clients \
    sqlite \
    genisoimage \
    squashfs-tools \
    java-devel \
    /usr/bin/img2txt \
    /usr/bin/rpm2cpio \
    /usr/bin/msgunfmt \
    /usr/bin/ps2ascii \
    /usr/bin/qemu-img \
    /usr/bin/xxd \
    /usr/bin/ghc \
    /usr/bin/cd-iccdump \
    gnupg \
    findutils \
    file \
    ImageMagick \
    poppler-utils \
    python-debian \
    enjarify

# missing:
# apktool
# js-beautify

%ifnarch ppc64 ppc64le
%global tools2 \
    coreboot-utils \
    mono-devel
%endif

%global toolz %(echo "%tools %?tools2" | grep . | tr '\\n' ', ')

BuildArch:     noarch
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-magic
BuildRequires: python3-libguestfs
BuildRequires: python3-libarchive-c
BuildRequires: python3-docutils
BuildRequires: /usr/bin/rst2man
# for tests
BuildRequires: python3-pytest
BuildRequires: %toolz

Requires:      python3-magic
Requires:      python3-tlsh
Requires:      python3-libarchive-c
Recommends:    %toolz

%description
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.

diffoscope is developed as part of the "reproducible builds" Debian project and
was formerly known as "debbindiff".

%prep
%autosetup
sed -i '1{\@/usr/bin/env@d}' diffoscope/main.py

%build
%py3_build
rst2man debian/diffoscope.1.rst > build/diffoscope.1

%install
%py3_install
echo %{buildroot}%{python3_sitelib}
rm %{buildroot}%{python3_sitelib}/*/requires.txt
install -Dm0644 -t %{buildroot}%{_mandir}/man1/ build/diffoscope.1

%check
# disable some tests crudely
# (https://github.com/pytest-dev/pytest/issues/1442#issuecomment-194259675)
# http://bugs.debian.org/817193
sed -i s/test_listing/_disabled_/ tests/comparators/test_cbfs.py
sed -i s/test_identification/_disabled_/ tests/comparators/test_ppu.py
sed -i s/test_diff/_disabled_/ tests/comparators/test_ppu.py
sed -i s/test_compare_non_existing/_disabled_/ tests/comparators/test_ppu.py
%if 0%{?fedora} <= 23
sed -i s/test_differences/_disabled_/ tests/comparators/test_fsimage.py
%endif

# https://bugs.debian.org/847595
# https://github.com/mm2/Little-CMS/issues/110
sed -i s/test_diff/_disabled_/ tests/comparators/test_icc.py


export LC_CTYPE=en_US.utf8
export TZ=UTC
export PYTHONPATH=build/lib/
py.test-%{python3_version} tests/ -vv

%files
%doc README.rst debian/changelog
%license COPYING
%{python3_sitelib}/diffoscope*
%{_bindir}/diffoscope
%doc %{_mandir}/man1/diffoscope.1*

%changelog
* Fri Feb 24 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 77-2
- Pull in enjarify

* Mon Feb 13 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 77-1
- Update to latest version (fixes #1421770, CVE-2017-0359)
- Also pull in python-debian

* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 69-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild

* Thu Jan 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 69-1
- Update to latest version (upstream dropped trydiffoscope)
- Add more dependendencies, and pull them in as Recommends

* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 62-2
- Rebuild for Python 3.6

* Tue Nov 15 2016 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 62-1
- Update to latest version

* Mon Aug 15 2016 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 59-1
- Update to latest version
- Require python-libarchive-c (#1367034)

* Mon Aug 15 2016 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 58-1
- Update to latest version

* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 54-2
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages

* Fri Jun 10 2016 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 54-1
- Update to latest version

* Thu Mar 10 2016 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 51-3
- Change License to GPLv3+

* Thu Mar 10 2016 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 51-2
- Require python3-tlsh

* Wed Mar  9 2016 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 51-1
- Update to v 51
- Add man page

* Tue Mar  8 2016 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 48-1
- Update to v 48, simplify packaging

* Sat Dec 05 2015 Dhiru Kholia <dhiru@openwall.com> - 42-1
- Initial version