diff --git a/.cvsignore b/.cvsignore
deleted file mode 100644
index 14da08e..0000000
--- a/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-advancecomp-1.15.tar.gz
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..6e4a9e6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+advancecomp-1.15.tar.gz
+/advancecomp-1.18.tar.gz
+/advancecomp-1.19.tar.gz
+/advancecomp-1.20.tar.gz
+/advancecomp-1.22.tar.gz
+/advancecomp.spec
+/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/Makefile b/Makefile
deleted file mode 100644
index 3e85c15..0000000
--- a/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for source rpm: advancecomp
-# $Id$
-NAME := advancecomp
-SPECFILE = $(firstword $(wildcard *.spec))
-
-define find-makefile-common
-for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
-endef
-
-MAKEFILE_COMMON := $(shell $(find-makefile-common))
-
-ifeq ($(MAKEFILE_COMMON),)
-# attept a checkout
-define checkout-makefile-common
-test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
-endef
-
-MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
-endif
-
-include $(MAKEFILE_COMMON)
diff --git a/advancecomp.rpmlintrc b/advancecomp.rpmlintrc
new file mode 100644
index 0000000..4e393f3
--- /dev/null
+++ b/advancecomp.rpmlintrc
@@ -0,0 +1,6 @@
+# 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)',")
+# Intentional, with a justifying spec-file comment
+addFilter(r" no-%check-section")
diff --git a/advancecomp.spec b/advancecomp.spec
index f03de0b..3c193c4 100644
--- a/advancecomp.spec
+++ b/advancecomp.spec
@@ -1,96 +1,154 @@
-Summary: Recompression utilities for .PNG, .MNG and .ZIP files
-Name: advancecomp
-Version: 1.15
-Release: 5%{?dist}
-License: GPL
-Group: Applications/Emulators
-URL: http://advancemame.sourceforge.net/
-Source: http://dl.sf.net/advancemame/advancecomp-%{version}.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
-BuildRequires: zlib-devel
+Name: advancecomp
+Version: 2.6
+Release: %autorelease
+Summary: Recompression utilities for .png, .mng, .zip and .gz files
+
+# Source file headers all specify GPL-2.0-or-later (see source file headers),
+# except:
+#
+# The bundled and forked 7z (7-Zip code) in 7z/ is under the “LGPL” license.
+# Based on https://www.7-zip.org/license.txt, and the absence of any mention
+# of license changes in https://www.7-zip.org/history.txt, 7-Zip has always
+# been licensed under LGPL-2.1-or-later, specifically; we thus assume this is
+# the intended specific license for the contents of the 7z/ directory. None
+# 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.
+#
+# 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/
+%global forgeurl https://github.com/amadvance/advancecomp
+Source: %{forgeurl}/archive/v%{version}/advancecomp-%{version}.tar.gz
+
+BuildRequires: autoconf
+BuildRequires: automake
+
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: make
+
+BuildRequires: dos2unix
+
+# System library supported by upstream
+BuildRequires: zlib-devel
+
+# Unbundled downstream
+BuildRequires: pkgconfig(libdeflate) >= 1.19
+BuildRequires: zopfli-devel
+
+# 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:
+#
+# This directory contains some source files from the
+# 7z archive utility. (www.7-zip.org)
+#
+# All the files in this directory was originally released
+# with the LGPL license.
+#
+# All the modifications made on the original files must
+# be considered Copyright (C) 2002 Andrea Mazzoleni and
+# released under the LGPL license.
+#
+# It is not clear which version was forked. Because 7-Zip does not provide a
+# 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(7zip)
%description
-AdvanceCOMP is a set of recompression utilities for .PNG, .MNG and .ZIP files.
-The main features are :
-* Recompress ZIP, PNG and MNG files using the Deflate 7-Zip implementation.
-* Recompress MNG files using Delta and Move optimization.
+AdvanceCOMP contains recompression utilities for your .zip archives,
+.png images, .mng video clips and .gz files.
+
+The official site of AdvanceCOMP is:
+
+ https://www.advancemame.it
+
+This package contains:
+ advzip - Recompression and test utility for zip files
+ advpng - Recompression utility for png files
+ advmng - Recompression utility for mng files
+ advdef - Recompression utility for deflate streams in .png, .mng and .gz files
%prep
-%setup -q
+%autosetup
+
+dos2unix -k doc/*.txt
+
+# Patch out bundled 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.
+find . -type f -exec gawk \
+ '/^[[:blank:]]*#include.*libdeflate/ { print FILENAME; nextfile }' \
+ '{}' '+' |
+ xargs -r -t sed -r -i 's@^([[:blank:]]*#include.*)libdeflate/@\1@'
+
+# Patch out bundled zopfli
+rm -rv zopfli
+sed -r -i \
+ -e '/zopfli[\/_]/d' \
+ -e 's/((\(7z_SOURCES\)|WindowOut\.h).*)[[:blank:]]*\\/\1/' \
+ Makefile.am
+# Fix up #include paths. The find-then-modify pattern keeps us from discarding
+# mtimes on any sources that do not need modification.
+find . -type f -exec gawk \
+ '/^[[:blank:]]*#include.*zopfli/ { print FILENAME; nextfile }' \
+ '{}' '+' |
+ xargs -r -t sed -r -i -e 's@^([[:blank:]]*#include.*)zopfli/@\1@'
+
+
+%conf
+autoreconf --force --install --verbose
+
+# Link against system libdeflate
+export CFLAGS="$(pkgconf --cflags libdeflate) ${CFLAGS-}"
+export CXXFLAGS="$(pkgconf --cflags libdeflate) ${CXXFLAGS-}"
+export LDFLAGS="$(pkgconf --libs libdeflate) ${LDFLAGS-}"
+
+# Link against system zopfli
+export LDFLAGS="-lzopfli ${LDFLAGS-}"
+
+%configure
%build
-%configure
-%{__make} %{?_smp_mflags}
+%make_build
%install
-%{__rm} -rf %{buildroot}
-%makeinstall
+%make_install
-%clean
-%{__rm} -rf %{buildroot}
+# 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
-%defattr(-, root, root, 0755)
-%doc AUTHORS COPYING HISTORY README
-%{_bindir}/*
-%{_mandir}/man1/*
+%license COPYING
+%doc AUTHORS
+%doc HISTORY
+%doc README
+%doc doc/adv{def,mng,png,zip}.txt
+
+%{_bindir}/adv{def,mng,png,zip}
+%{_mandir}/man1/adv{def,mng,png,zip}.1*
%changelog
-* Mon Aug 28 2006 Matthias Saou 1.15-5
-- FC6 rebuild, remove gcc-c++ build requirement (it's a default).
-
-* Mon Mar 6 2006 Matthias Saou 1.15-4
-- FC5 rebuild.
-
-* Wed Feb 8 2006 Matthias Saou 1.15-3
-- Rebuild for new gcc/glibc.
-
-* Tue Jan 24 2006 Matthias Saou 1.15-2
-- Rebuild for FC5.
-
-* Wed Nov 2 2005 Matthias Saou 1.15-1
-- Update to 1.15, includes 64bit fixes.
-
-* Fri May 27 2005 Matthias Saou 1.14-5
-- Update 64bit patch to a cleaner approach as Ralf suggested.
-
-* Thu May 26 2005 Jeremy Katz - 1.14-4
-- fix build on 64bit arches
-
-* Sun May 22 2005 Jeremy Katz - 1.14-3
-- rebuild on all arches
-
-* Fri Apr 7 2005 Michael Schwendt 1.14-2
-- rebuilt
-
-* Wed Feb 23 2005 Matthias Saou 1.14-1
-- Update to 1.14.
-
-* Mon Nov 29 2004 Matthias Saou 1.13-1
-- Update to 1.13.
-
-* Tue Nov 2 2004 Matthias Saou 1.12-1
-- Update to 1.12.
-
-* Tue Aug 24 2004 Matthias Saou 1.11-1
-- Update to 1.11.
-
-* Mon May 17 2004 Matthias Saou 1.10-1
-- Update to 1.10.
-
-* Mon Nov 3 2003 Matthias Saou 1.7-2
-- Rebuild for Fedora Core 1.
-- Added missing build dependencies, thanks to mach.
-
-* Tue Aug 26 2003 Matthias Saou
-- Update to 1.7.
-
-* Thu May 22 2003 Matthias Saou
-- Initial RPM release.
-
+%autochangelog
diff --git a/changelog b/changelog
new file mode 100644
index 0000000..27f0b1a
--- /dev/null
+++ b/changelog
@@ -0,0 +1,203 @@
+* Sat Sep 24 2022 Benjamin A. Beasley - 2.1-21
+- Spec file formatting tweaks
+- Convert URLs from HTTP to HTTPS
+- Use modern spec file macros (make_build/make_install/etc.)
+- Unbundle libdeflate
+- Unbundle zopfli where it is available as a system library (i.e., Fedora)
+- Remove unnecessary BR on tofrodos
+- Properly document bundled 7z code
+
+* Wed Jul 20 2022 Fedora Release Engineering - 2.1-20
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Wed Jan 19 2022 Fedora Release Engineering - 2.1-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Wed Jul 21 2021 Fedora Release Engineering - 2.1-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Mon Jan 25 2021 Fedora Release Engineering - 2.1-17
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Fri Jul 31 2020 Fedora Release Engineering - 2.1-16
+- Second attempt - Rebuilt for
+ https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Mon Jul 27 2020 Jeff Law - 2.1-15
+- Force C++14 as the code is not ready for C++17
+
+* Mon Jul 27 2020 Fedora Release Engineering - 2.1-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Tue Jan 28 2020 Fedora Release Engineering - 2.1-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Wed Jul 24 2019 Fedora Release Engineering - 2.1-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Fri May 10 2019 Than Ngo - 2.1-11
+- Backport for #1708563, CVE-2019-8383 - denial of service in function adv_png_unfilter_8
+
+* Wed Mar 06 2019 Than Ngo - 2.1-10
+- Backport, fix a buffer overflow with image of invalid size
+
+* Fri Mar 01 2019 Than Ngo - 2.1-9
+- fixed CVE-2019-9210 advancecomp: integer overflow in png_compress in pngex.cc
+
+* Thu Jan 31 2019 Fedora Release Engineering - 2.1-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Tue Jan 29 2019 Matthias Saou 2.1-7
+- Fix doc EOL.
+- Minor cosmetic updates (summary, description...).
+
+* Sat Jul 14 2018 Christian Dersch - 2.1-6
+- BuildRequires: gcc-c++
+
+* Thu Jul 12 2018 Fedora Release Engineering - 2.1-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Wed Mar 07 2018 Than Ngo - 2.1-4
+- updated to 2.1 (fix CVE-2018-1056)
+
+* Wed Feb 07 2018 Fedora Release Engineering - 1.23-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Aug 02 2017 Fedora Release Engineering - 1.23-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering - 1.23-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue Feb 28 2017 Christian Dersch - 1.23-1
+- new version
+
+* Fri Feb 10 2017 Fedora Release Engineering - 1.20-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Sun Nov 13 2016 Christian Dersch - 1.20-3
+- revert to 1.20, 1.22 does not build and also needs unbundling of libdeflate first
+
+* Sun Nov 13 2016 Christian Dersch - 1.22-1
+- new version
+
+* Wed Feb 03 2016 Fedora Release Engineering - 1.20-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Mon Oct 05 2015 Christian Dersch - 1.20-1
+- new version 1.20
+- use license tag
+
+* Tue Jun 16 2015 Fedora Release Engineering - 1.19-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Sat May 02 2015 Kalev Lember - 1.19-4
+- Rebuilt for GCC 5 C++11 ABI change
+
+* Fri Aug 15 2014 Fedora Release Engineering - 1.19-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sat Jun 07 2014 Fedora Release Engineering - 1.19-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Thu Mar 20 2014 Christopher Meng - 1.19-1
+- Update to 1.19
+
+* Mon Feb 10 2014 Christopher Meng - 1.18-1
+- Update to 1.18
+
+* Sat Aug 03 2013 Fedora Release Engineering - 1.15-19
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Wed Feb 13 2013 Fedora Release Engineering - 1.15-18
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
+
+* Wed Jul 18 2012 Fedora Release Engineering - 1.15-17
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Fri Apr 27 2012 Peter Robinson - 1.15-16
+- Add disttag, modernise spec file
+
+* Tue Feb 28 2012 Fedora Release Engineering - 1.15-15
+- Rebuilt for c++ ABI breakage
+
+* Thu Jan 12 2012 Fedora Release Engineering - 1.15-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Mon Feb 07 2011 Fedora Release Engineering - 1.15-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Fri Jul 24 2009 Fedora Release Engineering - 1.15-12
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Mon Feb 23 2009 Fedora Release Engineering - 1.15-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Tue Feb 19 2008 Fedora Release Engineering - 1.15-10
+- Autorebuild for GCC 4.3
+
+* Wed Aug 22 2007 Matthias Saou 1.15-9
+- Rebuild for new BuildID feature.
+
+* Fri Aug 3 2007 Matthias Saou 1.15-8
+- Update License field.
+- Remove dist tag, since the package will seldom change.
+
+* Thu Mar 29 2007 Matthias Saou 1.15-7
+- Switch to using DESTDIR install method.
+
+* Thu Mar 29 2007 Matthias Saou 1.15-6
+- Switch to use downloads.sf.net source URL.
+- Tweak defattr.
+
+* Mon Aug 28 2006 Matthias Saou 1.15-5
+- FC6 rebuild, remove gcc-c++ build requirement (it's a default).
+
+* Mon Mar 6 2006 Matthias Saou 1.15-4
+- FC5 rebuild.
+
+* Wed Feb 8 2006 Matthias Saou 1.15-3
+- Rebuild for new gcc/glibc.
+
+* Tue Jan 24 2006 Matthias Saou 1.15-2
+- Rebuild for FC5.
+
+* Wed Nov 2 2005 Matthias Saou 1.15-1
+- Update to 1.15, includes 64bit fixes.
+
+* Fri May 27 2005 Matthias Saou 1.14-5
+- Update 64bit patch to a cleaner approach as Ralf suggested.
+
+* Thu May 26 2005 Jeremy Katz - 1.14-4
+- fix build on 64bit arches
+
+* Sun May 22 2005 Jeremy Katz - 1.14-3
+- rebuild on all arches
+
+* Thu Apr 7 2005 Michael Schwendt 1.14-2
+- rebuilt
+
+* Wed Feb 23 2005 Matthias Saou 1.14-1
+- Update to 1.14.
+
+* Mon Nov 29 2004 Matthias Saou 1.13-1
+- Update to 1.13.
+
+* Tue Nov 2 2004 Matthias Saou 1.12-1
+- Update to 1.12.
+
+* Tue Aug 24 2004 Matthias Saou 1.11-1
+- Update to 1.11.
+
+* Mon May 17 2004 Matthias Saou 1.10-1
+- Update to 1.10.
+
+* Mon Nov 3 2003 Matthias Saou 1.7-2
+- Rebuild for Fedora Core 1.
+- Added missing build dependencies, thanks to mach.
+
+* Tue Aug 26 2003 Matthias Saou
+- Update to 1.7.
+
+* Thu May 22 2003 Matthias Saou
+- Initial RPM release.
diff --git a/sources b/sources
index 620cbe1..a8812ed 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-bb236d8bee6fa473d34108cda1e09076 advancecomp-1.15.tar.gz
+SHA512 (advancecomp-2.6.tar.gz) = 63cbb0578f96fd3f55ccb49e31bfe945649d36a11558aa482332440943d6d347f161de797b8d4469562b1d551b274c22fe08818179926d56aa4746581d3926dd