diff --git a/.gitignore b/.gitignore index 07cbc5d..19fa2fa 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ /commons-compress-1.21-src.tar.gz /commons-compress-1.25.0-src.tar.gz /commons-compress-1.27.1-src.tar.gz +/commons-compress-1.28.0-src.tar.gz diff --git a/0001-Remove-Brotli-compressor.patch b/0001-Remove-Brotli-compressor.patch index 9819212..d1fe4be 100644 --- a/0001-Remove-Brotli-compressor.patch +++ b/0001-Remove-Brotli-compressor.patch @@ -1,17 +1,18 @@ -From baa34cad14cc87d9d9d882f5de7756dcfeb65d66 Mon Sep 17 00:00:00 2001 +From 1bc6dadd753f5eb66401d8455bcfc108f1919f74 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Mon, 12 Feb 2018 10:53:48 +0100 -Subject: [PATCH 1/4] Remove Brotli compressor +Subject: [PATCH 1/3] Remove Brotli compressor +Forwarded: not-needed --- .../compress/compressors/CompressorStreamFactory.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java -index 376253cf2..b3e2d9d8b 100644 +index 9287d99..9a65ba4 100644 --- a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java +++ b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java -@@ -30,8 +30,6 @@ +@@ -29,8 +29,6 @@ import java.util.Set; import java.util.SortedMap; import java.util.TreeMap; @@ -20,9 +21,9 @@ index 376253cf2..b3e2d9d8b 100644 import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream; import org.apache.commons.compress.compressors.deflate.DeflateCompressorInputStream; -@@ -545,10 +543,7 @@ public CompressorInputStream createCompressorInputStream(final String name, fina +@@ -603,10 +601,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + return new BZip2CompressorInputStream(in, actualDecompressConcatenated); } - if (BROTLI.equalsIgnoreCase(name)) { - if (!BrotliUtils.isBrotliCompressionAvailable()) { - throw new CompressorException("Brotli compression is not available." + YOU_NEED_BROTLI_DEC); @@ -30,8 +31,8 @@ index 376253cf2..b3e2d9d8b 100644 - return new BrotliCompressorInputStream(in); + throw new CompressorException("Brotli compression is not available in this build."); } - if (XZ.equalsIgnoreCase(name)) { + if (!XZUtils.isXZCompressionAvailable()) { -- -2.50.1 +2.51.0 diff --git a/0002-Remove-ZSTD-compressor.patch b/0002-Remove-ZSTD-compressor.patch index 6fca0ea..1399f22 100644 --- a/0002-Remove-ZSTD-compressor.patch +++ b/0002-Remove-ZSTD-compressor.patch @@ -1,17 +1,66 @@ -From 7a6e9dd260086ef90e78e244543d2c010c0f8112 Mon Sep 17 00:00:00 2001 +From 9a061729b0976ded5a739765fcdfc0c56bd0e46c Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Mon, 12 Feb 2018 10:59:55 +0100 -Subject: [PATCH 2/4] Remove ZSTD compressor +Subject: [PATCH 2/3] Remove ZSTD compressor +Forwarded: not-needed --- - .../compressors/CompressorStreamFactory.java | 14 ++------------ - 1 file changed, 2 insertions(+), 12 deletions(-) + .../archivers/zip/ZipArchiveInputStream.java | 3 +-- + .../commons/compress/archivers/zip/ZipFile.java | 7 ++++--- + .../compressors/CompressorStreamFactory.java | 13 ++----------- + 3 files changed, 7 insertions(+), 16 deletions(-) +diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java b/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java +index b6d0abc..81ddb57 100644 +--- a/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java ++++ b/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStream.java +@@ -45,7 +45,6 @@ import org.apache.commons.compress.archivers.ArchiveEntry; + import org.apache.commons.compress.archivers.ArchiveInputStream; + import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; + import org.apache.commons.compress.compressors.deflate64.Deflate64CompressorInputStream; +-import org.apache.commons.compress.compressors.zstandard.ZstdCompressorInputStream; + import org.apache.commons.compress.utils.ArchiveUtils; + import org.apache.commons.compress.utils.IOUtils; + import org.apache.commons.compress.utils.InputStreamStatistics; +@@ -522,7 +521,7 @@ public class ZipArchiveInputStream extends ArchiveInputStream i + * @since 1.28.0 + */ + protected InputStream createZstdInputStream(final InputStream in) throws IOException { +- return new ZstdCompressorInputStream(in); ++ throw new IOException("Zstandard compression is not available in this build."); + } + + /** +diff --git a/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java b/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java +index 264ac33..5535a57 100644 +--- a/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java ++++ b/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java +@@ -55,7 +55,6 @@ import org.apache.commons.compress.archivers.EntryStreamOffsets; + import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream; + import org.apache.commons.compress.compressors.deflate64.Deflate64CompressorInputStream; + import org.apache.commons.compress.compressors.xz.XZCompressorInputStream; +-import org.apache.commons.compress.compressors.zstandard.ZstdCompressorInputStream; + import org.apache.commons.compress.utils.BoundedArchiveInputStream; + import org.apache.commons.compress.utils.BoundedSeekableByteChannelInputStream; + import org.apache.commons.compress.utils.IOUtils; +@@ -1083,8 +1082,10 @@ public class ZipFile implements Closeable { + */ + @SuppressWarnings("resource") + InputStream createZstdInputStream(final InputStream in) throws IOException { +- // This method is the only location that references ZstdCompressorInputStream directly to avoid requiring the JAR for all use cases. +- return zstdInputStreamFactory != null ? zstdInputStreamFactory.apply(in) : new ZstdCompressorInputStream(in); ++ if (zstdInputStreamFactory == null) { ++ throw new IOException("Zstandard compression is not available in this build."); ++ } ++ return zstdInputStreamFactory.apply(in); + } + + private void fillNameMap() { diff --git a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java -index b3e2d9d8b..c8aaf18b7 100644 +index 9a65ba4..a7432c4 100644 --- a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java +++ b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java -@@ -53,9 +53,6 @@ +@@ -52,9 +52,6 @@ import org.apache.commons.compress.compressors.xz.XZCompressorInputStream; import org.apache.commons.compress.compressors.xz.XZCompressorOutputStream; import org.apache.commons.compress.compressors.xz.XZUtils; import org.apache.commons.compress.compressors.z.ZCompressorInputStream; @@ -20,21 +69,20 @@ index b3e2d9d8b..c8aaf18b7 100644 -import org.apache.commons.compress.compressors.zstandard.ZstdUtils; import org.apache.commons.compress.utils.IOUtils; import org.apache.commons.compress.utils.Sets; - -@@ -280,10 +277,6 @@ static String detect(final InputStream inputStream, final Set compressor + import org.apache.commons.lang3.StringUtils; +@@ -266,9 +263,6 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + if (compressorNames.contains(LZ4_FRAMED) && FramedLZ4CompressorInputStream.matches(signature, signatureLength)) { return LZ4_FRAMED; } - - if (compressorNames.contains(ZSTANDARD) && ZstdUtils.matches(signature, signatureLength)) { - return ZSTANDARD; - } -- throw new CompressorException("No Compressor found for the stream signature."); } -@@ -554,10 +547,7 @@ public CompressorInputStream createCompressorInputStream(final String name, fina +@@ -616,10 +610,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + // @formatter:on } - if (ZSTANDARD.equalsIgnoreCase(name)) { - if (!ZstdUtils.isZstdCompressionAvailable()) { - throw new CompressorException("Zstandard compression is not available." + YOU_NEED_ZSTD_JNI); @@ -42,17 +90,17 @@ index b3e2d9d8b..c8aaf18b7 100644 - return new ZstdCompressorInputStream(in); + throw new CompressorException("Zstandard compression is not available in this build."); } - if (LZMA.equalsIgnoreCase(name)) { -@@ -665,7 +655,7 @@ public CompressorOutputStream createCompressorOutputStream(final String name, + if (!LZMAUtils.isLZMACompressionAvailable()) { +@@ -707,7 +698,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + return new FramedLZ4CompressorOutputStream(out); } - if (ZSTANDARD.equalsIgnoreCase(name)) { - return new ZstdCompressorOutputStream(out); + throw new CompressorException("Zstandard compression is not available in this build."); } } catch (final IOException e) { - throw new CompressorException("Could not create CompressorOutputStream", e); + throw new CompressorException("Could not create CompressorOutputStream.", e); -- -2.50.1 +2.51.0 diff --git a/0003-Remove-Pack200-compressor.patch b/0003-Remove-Pack200-compressor.patch index b98b256..9acdeb8 100644 --- a/0003-Remove-Pack200-compressor.patch +++ b/0003-Remove-Pack200-compressor.patch @@ -1,17 +1,18 @@ -From f147fee1b965153d486cb8db90f6f8edf94fa206 Mon Sep 17 00:00:00 2001 +From f5e9621355abba25bf18afb50c75045322617e78 Mon Sep 17 00:00:00 2001 From: Marian Koncek Date: Mon, 11 Mar 2024 12:16:28 +0100 -Subject: [PATCH 3/4] Remove Pack200 compressor +Subject: [PATCH 3/3] Remove Pack200 compressor +Forwarded: not-needed --- - .../compress/compressors/CompressorStreamFactory.java | 10 ++-------- - 1 file changed, 2 insertions(+), 8 deletions(-) + .../compress/compressors/CompressorStreamFactory.java | 9 ++------- + 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java -index c8aaf18b7..66e67ff3a 100644 +index a7432c4..3d405e7 100644 --- a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java +++ b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java -@@ -44,8 +44,6 @@ +@@ -43,8 +43,6 @@ import org.apache.commons.compress.compressors.lz4.FramedLZ4CompressorOutputStre import org.apache.commons.compress.compressors.lzma.LZMACompressorInputStream; import org.apache.commons.compress.compressors.lzma.LZMACompressorOutputStream; import org.apache.commons.compress.compressors.lzma.LZMAUtils; @@ -20,35 +21,34 @@ index c8aaf18b7..66e67ff3a 100644 import org.apache.commons.compress.compressors.snappy.FramedSnappyCompressorInputStream; import org.apache.commons.compress.compressors.snappy.FramedSnappyCompressorOutputStream; import org.apache.commons.compress.compressors.snappy.SnappyCompressorInputStream; -@@ -249,10 +247,6 @@ static String detect(final InputStream inputStream, final Set compressor +@@ -242,9 +240,6 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + if (compressorNames.contains(GZIP) && GzipCompressorInputStream.matches(signature, signatureLength)) { return GZIP; } - - if (compressorNames.contains(PACK200) && Pack200CompressorInputStream.matches(signature, signatureLength)) { - return PACK200; - } -- if (compressorNames.contains(SNAPPY_FRAMED) && FramedSnappyCompressorInputStream.matches(signature, signatureLength)) { return SNAPPY_FRAMED; } -@@ -558,7 +552,7 @@ public CompressorInputStream createCompressorInputStream(final String name, fina +@@ -619,7 +614,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + return LZMACompressorInputStream.builder().setInputStream(in).setMemoryLimitKiB(memoryLimitInKb).get(); } - if (PACK200.equalsIgnoreCase(name)) { - return new Pack200CompressorInputStream(in); + throw new CompressorException("Pack200 compression is not available in this build."); } - if (SNAPPY_RAW.equalsIgnoreCase(name)) { -@@ -631,7 +625,7 @@ public CompressorOutputStream createCompressorOutputStream(final String name, + return new SnappyCompressorInputStream(in); +@@ -680,7 +675,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider { + return new XZCompressorOutputStream(out); } - if (PACK200.equalsIgnoreCase(name)) { - return new Pack200CompressorOutputStream(out); + throw new CompressorException("Pack200 compression is not available in this build."); } - if (LZMA.equalsIgnoreCase(name)) { + return new LZMACompressorOutputStream(out); -- -2.50.1 +2.51.0 diff --git a/0004-Replace-unmappable-character-with-oe.patch b/0004-Replace-unmappable-character-with-oe.patch deleted file mode 100644 index 4db948d..0000000 --- a/0004-Replace-unmappable-character-with-oe.patch +++ /dev/null @@ -1,25 +0,0 @@ -From f6a421af6828f7e8226fa3e779436174bf9c07fe Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -Date: Wed, 16 Jul 2025 21:26:45 +0200 -Subject: [PATCH 4/4] Replace unmappable character with oe - ---- - .../commons/compress/archivers/tar/TarArchiveOutputStream.java | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java -index 4f3588d9b..18dea2845 100644 ---- a/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java -+++ b/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveOutputStream.java -@@ -276,7 +276,7 @@ private void addPaxHeadersForBigNumbers(final Map paxHeaders, fi - addPaxHeaderForBigNumber(paxHeaders, "uid", entry.getLongUserId(), TarConstants.MAXID); - // libarchive extensions - addFileTimePaxHeader(paxHeaders, "LIBARCHIVE.creationtime", entry.getCreationTime()); -- // star extensions by Jörg Schilling -+ // star extensions by Joerg Schilling - addPaxHeaderForBigNumber(paxHeaders, "SCHILY.devmajor", entry.getDevMajor(), TarConstants.MAXID); - addPaxHeaderForBigNumber(paxHeaders, "SCHILY.devminor", entry.getDevMinor(), TarConstants.MAXID); - // there is no PAX header for file mode --- -2.50.1 - diff --git a/apache-commons-compress.spec b/apache-commons-compress.spec index 8bd0ca0..e170941 100644 --- a/apache-commons-compress.spec +++ b/apache-commons-compress.spec @@ -1,7 +1,7 @@ %bcond_with bootstrap Name: apache-commons-compress -Version: 1.27.1 +Version: 1.28.0 Release: %autorelease Summary: Java API for working with compressed files and archivers License: Apache-2.0 @@ -14,7 +14,6 @@ Source0: https://archive.apache.org/dist/commons/compress/source/commons- Patch: 0001-Remove-Brotli-compressor.patch Patch: 0002-Remove-ZSTD-compressor.patch Patch: 0003-Remove-Pack200-compressor.patch -Patch: 0004-Replace-unmappable-character-with-oe.patch %if %{with bootstrap} BuildRequires: javapackages-bootstrap diff --git a/sources b/sources index df5b698..ae715dd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (commons-compress-1.27.1-src.tar.gz) = c7a2cef26959e687ad19b96b5ba8393d7514095e13bf0f29bd41e6b3c3cb2260d8ff23283ff3d5fd137b2522b843e7f0f50ab46bcf0f66df5383674f35f223ab +SHA512 (commons-compress-1.28.0-src.tar.gz) = cd37f7d554dff9f1cf9c90e93a30b7b15ace002d69d317a63d575fd623b4e64dbd55fbf2876ecd5333cf96858a37458f55762e5505311a7a8063d0cc8cdc4120