diff --git a/.gitignore b/.gitignore index 2ec630f..6e4a9e6 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,6 @@ advancecomp-1.15.tar.gz /advancecomp-1.23.tar.gz /advancecomp-2.1.tar.gz /advancecomp-2.3.tar.gz +/advancecomp-2.4.tar.gz +/advancecomp-2.5.tar.gz +/advancecomp-2.6.tar.gz diff --git a/advancecomp.rpmlintrc b/advancecomp.rpmlintrc new file mode 100644 index 0000000..483f617 --- /dev/null +++ b/advancecomp.rpmlintrc @@ -0,0 +1,6 @@ +# Spec file comment shows that exact version is unknown +addFilter(r" unversioned-explicit-provides bundled\(7zip\)") +# Not real spelling errors +addFilter(r" spelling-error \('[Rr]ecompression',") +addFilter(r" spelling-error \('([pm]ng|gz)',") +addFilter(r" spelling-error \('adv(zip|[pm]ng|def)',") diff --git a/advancecomp.spec b/advancecomp.spec index 5610ada..97e6fca 100644 --- a/advancecomp.spec +++ b/advancecomp.spec @@ -1,5 +1,5 @@ Name: advancecomp -Version: 2.3 +Version: 2.6 Release: %autorelease Summary: Recompression utilities for .png, .mng, .zip and .gz files @@ -14,15 +14,21 @@ Summary: Recompression utilities for .png, .mng, .zip and .gz files # of the sources that would be covered by the “unRAR license restriction” or # the BSD-3-Clause license for LZFSE are present in this fork. # -# Certain build-system files, which do not contribute to the license of the -# binary RPM, are under other permissible licenses. -# # However, in version 1.17, the COPYING file was updated to GPLv3, with a # changelog message (in HISTORY and elsewhere) of “Changes to GPL3.” We # interpret this as an overall license of GPL-3.0-only. License: GPL-3.0-only AND GPL-2.0-or-later AND LGPL-2.1-or-later +# Additionally, the following bundled libraries are removed in %%prep and do +# not contribute to the licenses of the binary RPMs: +# +# Apache-2.0: +# - zopfli/ +# MIT: +# - libdeflate/ +SourceLicense: %{license} AND Apache-2.0 AND MIT URL: https://www.advancemame.it/ -Source0: https://github.com/amadvance/advancecomp/archive/v%{version}/advancecomp-%{version}.tar.gz +%global forgeurl https://github.com/amadvance/advancecomp +Source: %{forgeurl}/archive/v%{version}/advancecomp-%{version}.tar.gz BuildRequires: autoconf BuildRequires: automake @@ -36,23 +42,13 @@ BuildRequires: dos2unix # System library supported by upstream BuildRequires: zlib-devel -%if 0%{?el7} -# No libdeflate package in EPEL7 -Provides: bundled(libdeflate) = 0.6 -%else # Unbundled downstream -BuildRequires: pkgconfig(libdeflate) -%endif - -%if 0%{?el9} || 0%{?el8} || 0%{?el7} -# No libzopfli/zopfli-devel in these distributions -# Version number based on HISTORY, which mentions that upstream commit -# 6818a0859063b946094fb6f94732836404a0d89a was used from -# https://github.com/google/zopfli/. -Provides: bundled(zopfli) = 1.0.2%{?!el7:^20160527git6818a08} -%else +BuildRequires: pkgconfig(libdeflate) >= 1.19 BuildRequires: zopfli-devel -%endif + +# The point of the 2.6 release was to upgrade the bundled libdeflate; enforce +# this on the unbundled libdeflate. +Requires: libdeflate >= 1.19 # From 7z/README: # @@ -70,7 +66,7 @@ BuildRequires: zopfli-devel # library, and because the implementation is modified, there is no possibility # of unbundling. Note that this was forked from the original 7-Zip, not from # p7zip. -Provides: bundled(7z) +Provides: bundled(7zip) %description AdvanceCOMP contains recompression utilities for your .zip archives, @@ -88,12 +84,12 @@ This package contains: %prep -%autosetup -p1 +%autosetup + dos2unix -k doc/*.txt -%if ! 0%{?el7} # Patch out bundled libdeflate -rm -rvf libdeflate +rm -rv libdeflate sed -r -i '/libdeflate[\/_]/d' Makefile.am # Fix up #include paths. The find-then-modify pattern keeps us from discarding # mtimes on any sources that do not need modification. @@ -101,11 +97,9 @@ find . -type f -exec gawk \ '/^[[:blank:]]*#include.*libdeflate/ { print FILENAME; nextfile }' \ '{}' '+' | xargs -r -t sed -r -i 's@^([[:blank:]]*#include.*)libdeflate/@\1@' -%endif -%if !(0%{?el9} || 0%{?el8} || 0%{?el7}) # Patch out bundled zopfli -rm -rvf zopfli +rm -rv zopfli sed -r -i \ -e '/zopfli[\/_]/d' \ -e 's/((\(7z_SOURCES\)|WindowOut\.h).*)[[:blank:]]*\\/\1/' \ @@ -116,24 +110,19 @@ find . -type f -exec gawk \ '/^[[:blank:]]*#include.*zopfli/ { print FILENAME; nextfile }' \ '{}' '+' | xargs -r -t sed -r -i -e 's@^([[:blank:]]*#include.*)zopfli/@\1@' -%endif %build %set_build_flags autoreconf --force --install --verbose -%if ! 0%{?el7} # Link against system libdeflate export CFLAGS="$(pkgconf --cflags libdeflate) ${CFLAGS-}" export CXXFLAGS="$(pkgconf --cflags libdeflate) ${CXXFLAGS-}" export LDFLAGS="$(pkgconf --libs libdeflate) ${LDFLAGS-}" -%endif -%if !(0%{?el9} || 0%{?el8} || 0%{?el7}) # Link against system zopfli export LDFLAGS="-lzopfli ${LDFLAGS-}" -%endif %configure %make_build @@ -143,13 +132,20 @@ export LDFLAGS="-lzopfli ${LDFLAGS-}" %make_install +# We don’t run upstream tests (%%make_build check) because they are too +# brittle, expecting recompressed outputs to be identical. Across platforms, +# compilers, and unbundled library versions, this doesn’t hold up. + + %files %license COPYING -%doc AUTHORS HISTORY README -%doc doc/adv*.txt +%doc AUTHORS +%doc HISTORY +%doc README +%doc doc/adv{def,mng,png,zip}.txt -%{_bindir}/* -%{_mandir}/man1/* +%{_bindir}/adv{def,mng,png,zip} +%{_mandir}/man1/adv{def,mng,png,zip}.1* %changelog diff --git a/sources b/sources index 59b074f..a8812ed 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (advancecomp-2.3.tar.gz) = 129bb820a044b03b94d9980c7fc675ee5c273ba8ba84f1fdd341c6b2d9847c3f379cc21e64bb75c0a3c5a45a3df9e560d92143728adb4e8834ae0525ff7d5d1c +SHA512 (advancecomp-2.6.tar.gz) = 63cbb0578f96fd3f55ccb49e31bfe945649d36a11558aa482332440943d6d347f161de797b8d4469562b1d551b274c22fe08818179926d56aa4746581d3926dd