diff --git a/.gitignore b/.gitignore index 5667b63..5762fd8 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ sonatype-plexus-archiver-plexus-archiver-2.1.1-0-ge64d181.tar.gz /plexus-archiver-2.3.tar.gz /plexus-archiver-2.4.2.tar.gz /plexus-archiver-2.4.4.tar.gz +/plexus-archiver-2.6.1.tar.gz diff --git a/0001-Fix-PLXCOMP-113-and-PLXCOMP-64.patch b/0001-Fix-PLXCOMP-113-and-PLXCOMP-64.patch deleted file mode 100644 index df15619..0000000 --- a/0001-Fix-PLXCOMP-113-and-PLXCOMP-64.patch +++ /dev/null @@ -1,197 +0,0 @@ -From cf249e1a6a167689b685bbb89650345d1ed42977 Mon Sep 17 00:00:00 2001 -From: Roland Grunberg -Date: Mon, 25 Aug 2014 10:45:11 -0400 -Subject: [PATCH] Fix PLXCOMP-113 and PLXCOMP-64. - -Zip and Tar Unarchivers should support POSIX symbolic links. ---- - .../org/codehaus/plexus/archiver/tar/TarEntry.java | 11 +++++ - .../plexus/archiver/tar/TarUnArchiver.java | 2 +- - .../plexus/archiver/zip/AbstractZipUnArchiver.java | 57 +++++++++++++++------- - .../org/codehaus/plexus/archiver/zip/ZipEntry.java | 9 ++++ - 4 files changed, 61 insertions(+), 18 deletions(-) - -diff --git a/src/main/java/org/codehaus/plexus/archiver/tar/TarEntry.java b/src/main/java/org/codehaus/plexus/archiver/tar/TarEntry.java -index 78156e4..8792ff7 100644 ---- a/src/main/java/org/codehaus/plexus/archiver/tar/TarEntry.java -+++ b/src/main/java/org/codehaus/plexus/archiver/tar/TarEntry.java -@@ -636,6 +636,17 @@ public class TarEntry - } - - /** -+ * Return whether or not this entry represents a symbolic link. -+ * -+ * @return True if this entry is a symbolic link. -+ * @since 2.4.5 -+ */ -+ public boolean isSymbolicLink() -+ { -+ return this.linkFlag == LF_SYMLINK; -+ } -+ -+ /** - * If this entry represents a file, and the file is a directory, return - * an array of TarEntries for this entry's children. - * -diff --git a/src/main/java/org/codehaus/plexus/archiver/tar/TarUnArchiver.java b/src/main/java/org/codehaus/plexus/archiver/tar/TarUnArchiver.java -index 3933ce1..16d1cbf 100644 ---- a/src/main/java/org/codehaus/plexus/archiver/tar/TarUnArchiver.java -+++ b/src/main/java/org/codehaus/plexus/archiver/tar/TarUnArchiver.java -@@ -91,7 +91,7 @@ public class TarUnArchiver - while ( ( te = tis.getNextEntry() ) != null ) - { - extractFile( getSourceFile(), getDestDirectory(), tis, te.getName(), te.getModTime(), -- te.isDirectory(), te.getMode() != 0 ? te.getMode() : null); -+ te.isDirectory(), te.getMode() != 0 ? te.getMode() : null, te.isSymbolicLink(), te.getLinkName()); - } - getLogger().debug( "expand complete" ); - -diff --git a/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.java b/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.java -index fb8759e..0e4c54c 100644 ---- a/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.java -+++ b/src/main/java/org/codehaus/plexus/archiver/zip/AbstractZipUnArchiver.java -@@ -17,15 +17,21 @@ package org.codehaus.plexus.archiver.zip; - * limitations under the License. - */ - -+import java.io.BufferedReader; - import java.io.File; - import java.io.FileNotFoundException; - import java.io.FileOutputStream; - import java.io.IOException; - import java.io.InputStream; -+import java.io.InputStreamReader; - import java.io.OutputStream; - import java.net.URL; -+import java.nio.file.Files; -+import java.nio.file.Path; -+import java.nio.file.Paths; - import java.util.Date; - import java.util.Enumeration; -+ - import org.codehaus.plexus.archiver.AbstractUnArchiver; - import org.codehaus.plexus.archiver.ArchiveFilterException; - import org.codehaus.plexus.archiver.ArchiverException; -@@ -97,7 +103,6 @@ public abstract class AbstractZipUnArchiver - { - return !zipEntry.isDirectory(); - } -- - public InputStream getContents() - throws IOException - { -@@ -147,7 +152,7 @@ public abstract class AbstractZipUnArchiver - } - InputStream in = zf.getInputStream( ze ); - extractFileIfIncluded( getSourceFile(), getDestDirectory(), in, ze.getName(), -- new Date( ze.getTime() ), ze.isDirectory(), ze.getUnixMode()!= 0 ? ze.getUnixMode() : null ); -+ new Date( ze.getTime() ), ze.isDirectory(), ze.getUnixMode()!= 0 ? ze.getUnixMode() : null, ze.isSymbolicLink(), null ); - in.close(); - } - -@@ -175,14 +180,14 @@ public abstract class AbstractZipUnArchiver - - private void extractFileIfIncluded( final File sourceFile, final File destDirectory, final InputStream inputStream, - final String name, final Date time, final boolean isDirectory, -- final Integer mode ) -+ final Integer mode, boolean isSymlink, String linkName ) - throws IOException, ArchiverException - { - try - { - if ( include( inputStream, name ) ) - { -- extractFile( sourceFile, destDirectory, inputStream, name, time, isDirectory, mode ); -+ extractFile( sourceFile, destDirectory, inputStream, name, time, isDirectory, mode, isSymlink, linkName ); - } - } - catch ( final ArchiveFilterException e ) -@@ -193,7 +198,7 @@ public abstract class AbstractZipUnArchiver - - protected void extractFile( final File srcF, final File dir, final InputStream compressedInputStream, - final String entryName, final Date entryDate, final boolean isDirectory, -- final Integer mode ) -+ final Integer mode, boolean isSymlink, String linkName ) - throws IOException, ArchiverException - { - final File f = FileUtils.resolveFile( dir, entryName ); -@@ -218,18 +223,36 @@ public abstract class AbstractZipUnArchiver - } - else - { -- OutputStream out = null; -- try -- { -- out = new FileOutputStream( f ); -- -- IOUtil.copy( compressedInputStream, out ); -- } -- finally -- { -- IOUtil.close( out ); -+ if ( isSymlink ) { -+ BufferedReader buff = null; -+ Path path; -+ if ( linkName != null ) { -+ path = Paths.get( linkName ); -+ } else { -+ try { -+ buff = new BufferedReader( new InputStreamReader( compressedInputStream ) ); -+ String value = buff.readLine(); -+ path = Paths.get( value ); -+ } -+ finally -+ { -+ IOUtil.close( buff ); -+ } -+ } -+ Files.createSymbolicLink( f.toPath(), path ); -+ } else { -+ OutputStream out = null; -+ try { -+ out = new FileOutputStream( f ); -+ -+ IOUtil.copy( compressedInputStream, out ); -+ } -+ finally -+ { -+ IOUtil.close( out ); -+ } - } -- } -+ } - - f.setLastModified( entryDate.getTime() ); - -@@ -269,7 +292,7 @@ public abstract class AbstractZipUnArchiver - final InputStream inputStream = zipFile.getInputStream( ze ); - extractFileIfIncluded( getSourceFile(), outputDirectory, inputStream, - ze.getName(), new Date( ze.getTime() ), ze.isDirectory(), -- ze.getUnixMode() != 0 ? ze.getUnixMode() : null ); -+ ze.getUnixMode() != 0 ? ze.getUnixMode() : null, ze.isSymbolicLink(), null ); - inputStream.close(); - } - } -diff --git a/src/main/java/org/codehaus/plexus/archiver/zip/ZipEntry.java b/src/main/java/org/codehaus/plexus/archiver/zip/ZipEntry.java -index 6c00720..9ec7273 100644 ---- a/src/main/java/org/codehaus/plexus/archiver/zip/ZipEntry.java -+++ b/src/main/java/org/codehaus/plexus/archiver/zip/ZipEntry.java -@@ -416,6 +416,15 @@ public class ZipEntry - return getName().endsWith( "/" ); - } - -+ /** -+ * @since 2.4.5 -+ */ -+ public boolean isSymbolicLink() -+ { -+ // From POSIX spec for -+ return (getUnixMode() & 0170000) == 0120000; -+ } -+ - protected void setName( String name ) - { - this.name = name; --- -1.9.3 - diff --git a/plexus-archiver.spec b/plexus-archiver.spec index 4e4e8fd..1c28866 100644 --- a/plexus-archiver.spec +++ b/plexus-archiver.spec @@ -3,8 +3,8 @@ # Ask mizdebsk for more info. Name: plexus-archiver -Version: 2.4.4 -Release: 4%{?dist} +Version: 2.6.1 +Release: 1%{?dist} Epoch: 0 Summary: Plexus Archiver Component License: ASL 2.0 @@ -13,10 +13,6 @@ BuildArch: noarch Source0: https://github.com/sonatype/%{name}/archive/%{name}-%{version}.tar.gz -# PLXCOMP-64 and PLXCOMP-113: Add support for extracting zip and tar symbolic links -# Forwarded upstream: https://github.com/sonatype/plexus-archiver/pull/14 -Patch0: 0001-Fix-PLXCOMP-113-and-PLXCOMP-64.patch - BuildRequires: maven-local BuildRequires: plexus-containers-container-default BuildRequires: plexus-io @@ -41,7 +37,6 @@ Javadoc for %{name}. %prep %setup -q -n %{name}-%{name}-%{version} -%patch0 -p1 %mvn_file :%{name} plexus/archiver %build @@ -57,6 +52,10 @@ Javadoc for %{name}. %doc LICENSE %changelog +* Mon Sep 29 2014 Mikolaj Izdebski - 0:2.6.1-1 +- Update to upstream version 2.6.1 +- Remove patch for PLXCOMP-64 and PLXCOMP-113 + * Tue Sep 2 2014 Mikolaj Izdebski - 0:2.4.4-4 - Add patch for extracting symbolic links diff --git a/sources b/sources index d573eed..ae0e628 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -98ec07fe86660ec9c0f116f248a1a02c plexus-archiver-2.4.4.tar.gz +ba80e54387f88346de770735056ef182 plexus-archiver-2.6.1.tar.gz