Update to upstream version 2.6.1
This commit is contained in:
parent
10511dffaf
commit
f94d18c399
1
.gitignore
vendored
1
.gitignore
vendored
@ -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.3.tar.gz
|
||||||
/plexus-archiver-2.4.2.tar.gz
|
/plexus-archiver-2.4.2.tar.gz
|
||||||
/plexus-archiver-2.4.4.tar.gz
|
/plexus-archiver-2.4.4.tar.gz
|
||||||
|
/plexus-archiver-2.6.1.tar.gz
|
||||||
|
@ -1,197 +0,0 @@
|
|||||||
From cf249e1a6a167689b685bbb89650345d1ed42977 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Roland Grunberg <rgrunber@redhat.com>
|
|
||||||
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 <sys/stat.h>
|
|
||||||
+ return (getUnixMode() & 0170000) == 0120000;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
protected void setName( String name )
|
|
||||||
{
|
|
||||||
this.name = name;
|
|
||||||
--
|
|
||||||
1.9.3
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
|||||||
# Ask mizdebsk for more info.
|
# Ask mizdebsk for more info.
|
||||||
|
|
||||||
Name: plexus-archiver
|
Name: plexus-archiver
|
||||||
Version: 2.4.4
|
Version: 2.6.1
|
||||||
Release: 4%{?dist}
|
Release: 1%{?dist}
|
||||||
Epoch: 0
|
Epoch: 0
|
||||||
Summary: Plexus Archiver Component
|
Summary: Plexus Archiver Component
|
||||||
License: ASL 2.0
|
License: ASL 2.0
|
||||||
@ -13,10 +13,6 @@ BuildArch: noarch
|
|||||||
|
|
||||||
Source0: https://github.com/sonatype/%{name}/archive/%{name}-%{version}.tar.gz
|
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: maven-local
|
||||||
BuildRequires: plexus-containers-container-default
|
BuildRequires: plexus-containers-container-default
|
||||||
BuildRequires: plexus-io
|
BuildRequires: plexus-io
|
||||||
@ -41,7 +37,6 @@ Javadoc for %{name}.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{name}-%{name}-%{version}
|
%setup -q -n %{name}-%{name}-%{version}
|
||||||
%patch0 -p1
|
|
||||||
%mvn_file :%{name} plexus/archiver
|
%mvn_file :%{name} plexus/archiver
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -57,6 +52,10 @@ Javadoc for %{name}.
|
|||||||
%doc LICENSE
|
%doc LICENSE
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Mon Sep 29 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 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 <mizdebsk@redhat.com> - 0:2.4.4-4
|
* Tue Sep 2 2014 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:2.4.4-4
|
||||||
- Add patch for extracting symbolic links
|
- Add patch for extracting symbolic links
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user