!1 apache-commons-compress init
Merge pull request !1 from wisdoman/master
This commit is contained in:
commit
b86cd508a7
37
0001-Remove-Brotli-compressor.patch
Normal file
37
0001-Remove-Brotli-compressor.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From bba585e9e4fdfc67de3b53b58b8d60923e1ccd0c Mon Sep 17 00:00:00 2001
|
||||
From: Michael Simacek <msimacek@redhat.com>
|
||||
Date: Mon, 12 Feb 2018 10:53:48 +0100
|
||||
Subject: [PATCH 1/2] Remove Brotli compressor
|
||||
|
||||
---
|
||||
.../commons/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 d730b9d..ab178a9 100644
|
||||
--- a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
|
||||
+++ b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
|
||||
@@ -31,8 +31,6 @@ import java.util.Set;
|
||||
import java.util.SortedMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
-import org.apache.commons.compress.compressors.brotli.BrotliCompressorInputStream;
|
||||
-import org.apache.commons.compress.compressors.brotli.BrotliUtils;
|
||||
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
|
||||
import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;
|
||||
import org.apache.commons.compress.compressors.deflate.DeflateCompressorInputStream;
|
||||
@@ -586,10 +584,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
|
||||
}
|
||||
|
||||
if (BROTLI.equalsIgnoreCase(name)) {
|
||||
- if (!BrotliUtils.isBrotliCompressionAvailable()) {
|
||||
- throw new CompressorException("Brotli compression is not available." + YOU_NEED_BROTLI_DEC);
|
||||
- }
|
||||
- return new BrotliCompressorInputStream(in);
|
||||
+ throw new CompressorException("Brotli compression is not available in this build.");
|
||||
}
|
||||
|
||||
if (XZ.equalsIgnoreCase(name)) {
|
||||
--
|
||||
2.14.3
|
||||
|
||||
58
0002-Remove-ZSTD-compressor.patch
Normal file
58
0002-Remove-ZSTD-compressor.patch
Normal file
@ -0,0 +1,58 @@
|
||||
From bab91e014f73296a8ac9a3aef2aaa324a85e9b96 Mon Sep 17 00:00:00 2001
|
||||
From: Michael Simacek <msimacek@redhat.com>
|
||||
Date: Mon, 12 Feb 2018 10:59:55 +0100
|
||||
Subject: [PATCH 2/2] Remove ZSTD compressor
|
||||
|
||||
---
|
||||
.../compress/compressors/CompressorStreamFactory.java | 14 ++------------
|
||||
1 file changed, 2 insertions(+), 12 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 ab178a9..3817704 100644
|
||||
--- a/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
|
||||
+++ b/src/main/java/org/apache/commons/compress/compressors/CompressorStreamFactory.java
|
||||
@@ -54,9 +54,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;
|
||||
-import org.apache.commons.compress.compressors.zstandard.ZstdCompressorInputStream;
|
||||
-import org.apache.commons.compress.compressors.zstandard.ZstdCompressorOutputStream;
|
||||
-import org.apache.commons.compress.compressors.zstandard.ZstdUtils;
|
||||
import org.apache.commons.compress.utils.IOUtils;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.commons.compress.utils.ServiceLoaderIterator;
|
||||
@@ -516,10 +513,6 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
|
||||
return LZ4_FRAMED;
|
||||
}
|
||||
|
||||
- if (ZstdUtils.matches(signature, signatureLength)) {
|
||||
- return ZSTANDARD;
|
||||
- }
|
||||
-
|
||||
throw new CompressorException("No Compressor found for the stream signature.");
|
||||
}
|
||||
/**
|
||||
@@ -595,10 +588,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
|
||||
}
|
||||
|
||||
if (ZSTANDARD.equalsIgnoreCase(name)) {
|
||||
- if (!ZstdUtils.isZstdCompressionAvailable()) {
|
||||
- throw new CompressorException("Zstandard compression is not available." + YOU_NEED_ZSTD_JNI);
|
||||
- }
|
||||
- return new ZstdCompressorInputStream(in);
|
||||
+ throw new CompressorException("Zstandard compression is not available in this build.");
|
||||
}
|
||||
|
||||
if (LZMA.equalsIgnoreCase(name)) {
|
||||
@@ -714,7 +704,7 @@ public class CompressorStreamFactory implements CompressorStreamProvider {
|
||||
}
|
||||
|
||||
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);
|
||||
--
|
||||
2.14.3
|
||||
|
||||
127
0003-COMPRESS-463-throw-exception-when-detecting-a-trunca.patch
Normal file
127
0003-COMPRESS-463-throw-exception-when-detecting-a-trunca.patch
Normal file
@ -0,0 +1,127 @@
|
||||
From 2f169c27bf0252229c6a96ea18d9b6f9348c6b9e Mon Sep 17 00:00:00 2001
|
||||
From: Marian Koncek <mkoncek@redhat.com>
|
||||
Date: Fri, 5 Oct 2018 13:10:18 +0200
|
||||
Subject: [PATCH] COMPRESS-463 throw exception when detecting a truncated
|
||||
stored entry
|
||||
|
||||
---
|
||||
.../archivers/zip/ZipArchiveInputStream.java | 3 +-
|
||||
.../zip/Maven221MultiVolumeTest.java | 7 ++
|
||||
.../zip/ZipArchiveInputStreamTest.java | 69 +++++++++++++++++++
|
||||
3 files changed, 78 insertions(+), 1 deletion(-)
|
||||
|
||||
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 729d92e..4c239ec 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
|
||||
@@ -523,7 +523,8 @@ public class ZipArchiveInputStream extends ArchiveInputStream implements InputSt
|
||||
buf.position(0);
|
||||
final int l = in.read(buf.array());
|
||||
if (l == -1) {
|
||||
- return -1;
|
||||
+ buf.limit(0);
|
||||
+ throw new IOException("Truncated ZIP file");
|
||||
}
|
||||
buf.limit(l);
|
||||
|
||||
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/Maven221MultiVolumeTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/Maven221MultiVolumeTest.java
|
||||
index c28f3de..0a905e3 100644
|
||||
--- a/src/test/java/org/apache/commons/compress/archivers/zip/Maven221MultiVolumeTest.java
|
||||
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/Maven221MultiVolumeTest.java
|
||||
@@ -96,6 +96,13 @@ public class Maven221MultiVolumeTest {
|
||||
assertEquals("Truncated ZIP file", e.getMessage());
|
||||
}
|
||||
|
||||
+ try {
|
||||
+ zi.read(buffer);
|
||||
+ fail("shouldn't be able to read from truncated entry after exception");
|
||||
+ } catch (final IOException e) {
|
||||
+ assertEquals("Truncated ZIP file", e.getMessage());
|
||||
+ }
|
||||
+
|
||||
// and now we get another entry, which should also yield
|
||||
// an exception
|
||||
try {
|
||||
diff --git a/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java b/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
|
||||
index 5d1cdb1..5bf003b 100644
|
||||
--- a/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
|
||||
+++ b/src/test/java/org/apache/commons/compress/archivers/zip/ZipArchiveInputStreamTest.java
|
||||
@@ -340,6 +340,75 @@ public class ZipArchiveInputStreamTest {
|
||||
}
|
||||
}
|
||||
|
||||
+ @Test
|
||||
+ public void singleByteReadThrowsAtEofForCorruptedStoredEntry() throws Exception {
|
||||
+ byte[] content;
|
||||
+ try (FileInputStream fs = new FileInputStream(getFile("COMPRESS-264.zip"))) {
|
||||
+ content = IOUtils.toByteArray(fs);
|
||||
+ }
|
||||
+ // make size much bigger than entry's real size
|
||||
+ for (int i = 17; i < 26; i++) {
|
||||
+ content[i] = (byte) 0xff;
|
||||
+ }
|
||||
+ try (ByteArrayInputStream in = new ByteArrayInputStream(content);
|
||||
+ ZipArchiveInputStream archive = new ZipArchiveInputStream(in)) {
|
||||
+ ArchiveEntry e = archive.getNextEntry();
|
||||
+ try {
|
||||
+ IOUtils.toByteArray(archive);
|
||||
+ fail("expected exception");
|
||||
+ } catch (IOException ex) {
|
||||
+ assertEquals("Truncated ZIP file", ex.getMessage());
|
||||
+ }
|
||||
+ try {
|
||||
+ archive.read();
|
||||
+ fail("expected exception");
|
||||
+ } catch (IOException ex) {
|
||||
+ assertEquals("Truncated ZIP file", ex.getMessage());
|
||||
+ }
|
||||
+ try {
|
||||
+ archive.read();
|
||||
+ fail("expected exception");
|
||||
+ } catch (IOException ex) {
|
||||
+ assertEquals("Truncated ZIP file", ex.getMessage());
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ @Test
|
||||
+ public void multiByteReadThrowsAtEofForCorruptedStoredEntry() throws Exception {
|
||||
+ byte[] content;
|
||||
+ try (FileInputStream fs = new FileInputStream(getFile("COMPRESS-264.zip"))) {
|
||||
+ content = IOUtils.toByteArray(fs);
|
||||
+ }
|
||||
+ // make size much bigger than entry's real size
|
||||
+ for (int i = 17; i < 26; i++) {
|
||||
+ content[i] = (byte) 0xff;
|
||||
+ }
|
||||
+ byte[] buf = new byte[2];
|
||||
+ try (ByteArrayInputStream in = new ByteArrayInputStream(content);
|
||||
+ ZipArchiveInputStream archive = new ZipArchiveInputStream(in)) {
|
||||
+ ArchiveEntry e = archive.getNextEntry();
|
||||
+ try {
|
||||
+ IOUtils.toByteArray(archive);
|
||||
+ fail("expected exception");
|
||||
+ } catch (IOException ex) {
|
||||
+ assertEquals("Truncated ZIP file", ex.getMessage());
|
||||
+ }
|
||||
+ try {
|
||||
+ archive.read(buf);
|
||||
+ fail("expected exception");
|
||||
+ } catch (IOException ex) {
|
||||
+ assertEquals("Truncated ZIP file", ex.getMessage());
|
||||
+ }
|
||||
+ try {
|
||||
+ archive.read(buf);
|
||||
+ fail("expected exception");
|
||||
+ } catch (IOException ex) {
|
||||
+ assertEquals("Truncated ZIP file", ex.getMessage());
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
private static byte[] readEntry(ZipArchiveInputStream zip, ZipArchiveEntry zae) throws IOException {
|
||||
final int len = (int)zae.getSize();
|
||||
final byte[] buff = new byte[len];
|
||||
--
|
||||
2.17.1
|
||||
|
||||
59
apache-commons-compress.spec
Normal file
59
apache-commons-compress.spec
Normal file
@ -0,0 +1,59 @@
|
||||
Name: apache-commons-compress
|
||||
Version: 1.17
|
||||
Release: 4
|
||||
Summary: Java API for working with archivers and compressed files
|
||||
License: ASL 2.0
|
||||
URL: http://commons.apache.org/proper/commons-compress/
|
||||
BuildArch: noarch
|
||||
Source0: http://archive.apache.org/dist/commons/compress/source/commons-compress-%{version}-src.tar.gz
|
||||
Patch0001: 0001-Remove-Brotli-compressor.patch
|
||||
Patch0002: 0002-Remove-ZSTD-compressor.patch
|
||||
Patch0003: 0003-COMPRESS-463-throw-exception-when-detecting-a-trunca.patch
|
||||
BuildRequires: maven-local mvn(junit:junit) mvn(org.apache.commons:commons-parent:pom:)
|
||||
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) mvn(org.powermock:powermock-api-mockito)
|
||||
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin) mvn(org.osgi:org.osgi.core)
|
||||
BuildRequires: mvn(org.powermock:powermock-module-junit4) mvn(org.tukaani:xz)
|
||||
|
||||
%description
|
||||
The Apache Commons Compress library defines an API for working with
|
||||
ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200 and bzip2 files.
|
||||
|
||||
%package help
|
||||
Summary: API documentation for apache-commons-compress
|
||||
|
||||
Provides: %{name}-javadoc = %{version}-%{release}
|
||||
Obsoletes: %{name}-javadoc < %{version}-%{release}
|
||||
|
||||
%description help
|
||||
This package provides API documentation for apache-commons-compress.
|
||||
|
||||
%prep
|
||||
%autosetup -n commons-compress-%{version}-src -p1
|
||||
%pom_remove_dep org.brotli:dec
|
||||
rm -r src/{main,test}/java/org/apache/commons/compress/compressors/brotli
|
||||
%pom_remove_dep :zstd-jni
|
||||
rm -r src/{main,test}/java/org/apache/commons/compress/compressors/zstandard
|
||||
rm src/test/java/org/apache/commons/compress/compressors/DetectCompressorTestCase.java
|
||||
%pom_remove_dep org.ops4j.pax.exam:::test
|
||||
%pom_remove_dep :org.apache.felix.framework::test
|
||||
%pom_remove_dep :javax.inject::test
|
||||
%pom_remove_dep :slf4j-api::test
|
||||
rm src/test/java/org/apache/commons/compress/OsgiITest.java
|
||||
|
||||
%build
|
||||
%mvn_file : commons-compress apache-commons-compress
|
||||
%mvn_alias : commons:
|
||||
%mvn_build
|
||||
|
||||
%install
|
||||
%mvn_install
|
||||
|
||||
%files -f .mfiles
|
||||
%doc LICENSE.txt NOTICE.txt
|
||||
|
||||
%files help -f .mfiles-javadoc
|
||||
%doc NOTICE.txt
|
||||
|
||||
%changelog
|
||||
* Wed Dec 4 2019 Tianfei <tianfei16@huawei.com> - 1.17-4
|
||||
- Package init
|
||||
BIN
commons-compress-1.17-src.tar.gz
Normal file
BIN
commons-compress-1.17-src.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user