[xmvn] Restotre support for relative symlinks

Mikolaj Izdebski mizdebsk at fedoraproject.org
Mon Sep 23 16:23:58 UTC 2013


commit e8e064528af7808947cbe36ac35179181bff022f
Author: Mikolaj Izdebski <mizdebsk at redhat.com>
Date:   Mon Sep 23 17:50:17 2013 +0200

    Restotre support for relative symlinks

 0001-Don-t-try-to-relativize-symlink-targets.patch |    2 +-
 ...-Try-to-resolve-cannonical-artifact-files.patch |   32 +++++++++++++++
 0003-Restotre-support-for-relative-symlinks.patch  |   41 ++++++++++++++++++++
 xmvn.spec                                          |    5 ++
 4 files changed, 79 insertions(+), 1 deletions(-)
---
diff --git a/0001-Don-t-try-to-relativize-symlink-targets.patch b/0001-Don-t-try-to-relativize-symlink-targets.patch
index ea28069..6ffa6df 100644
--- a/0001-Don-t-try-to-relativize-symlink-targets.patch
+++ b/0001-Don-t-try-to-relativize-symlink-targets.patch
@@ -1,7 +1,7 @@
 From 51259942aacc2a3b02564ae43dfabebb98aebf58 Mon Sep 17 00:00:00 2001
 From: Mikolaj Izdebski <mizdebsk at redhat.com>
 Date: Mon, 23 Sep 2013 14:38:34 +0200
-Subject: [PATCH] Don't try to relativize symlink targets
+Subject: [PATCH 1/3] Don't try to relativize symlink targets
 
 ---
  .../src/main/java/org/fedoraproject/maven/installer/impl/Package.java  | 3 +--
diff --git a/0002-Try-to-resolve-cannonical-artifact-files.patch b/0002-Try-to-resolve-cannonical-artifact-files.patch
new file mode 100644
index 0000000..ee15ea2
--- /dev/null
+++ b/0002-Try-to-resolve-cannonical-artifact-files.patch
@@ -0,0 +1,32 @@
+From 48a8417d29b0e8f1b4f5c61281a9b5502e6c4913 Mon Sep 17 00:00:00 2001
+From: Mikolaj Izdebski <mizdebsk at redhat.com>
+Date: Mon, 23 Sep 2013 17:29:28 +0200
+Subject: [PATCH 2/3] Try to resolve cannonical artifact files
+
+---
+ .../java/org/fedoraproject/maven/resolver/impl/DefaultResolver.java     | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/impl/DefaultResolver.java b/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/impl/DefaultResolver.java
+index 6bbd26b..9fc61c7 100644
+--- a/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/impl/DefaultResolver.java
++++ b/xmvn-core/src/main/java/org/fedoraproject/maven/resolver/impl/DefaultResolver.java
+@@ -46,6 +46,7 @@ import org.fedoraproject.maven.resolver.ResolutionResult;
+ import org.fedoraproject.maven.resolver.Resolver;
+ import org.fedoraproject.maven.utils.ArtifactUtils;
+ import org.fedoraproject.maven.utils.AtomicFileCounter;
++import org.fedoraproject.maven.utils.FileUtils;
+ import org.fedoraproject.maven.utils.LoggingUtils;
+ 
+ /**
+@@ -241,6 +242,7 @@ public class DefaultResolver
+         }
+ 
+         File artifactFile = result.getArtifactFile();
++        artifactFile = FileUtils.followSymlink( artifactFile );
+         logger.debug( "Artifact " + artifact + " was resolved to " + artifactFile );
+         if ( request.isProviderNeeded() )
+             result.setProvider( rpmdb.lookupFile( artifactFile ) );
+-- 
+1.8.1.4
+
diff --git a/0003-Restotre-support-for-relative-symlinks.patch b/0003-Restotre-support-for-relative-symlinks.patch
new file mode 100644
index 0000000..152f8a2
--- /dev/null
+++ b/0003-Restotre-support-for-relative-symlinks.patch
@@ -0,0 +1,41 @@
+From 9da9a832135610a40625c73a38222ea995c79ef5 Mon Sep 17 00:00:00 2001
+From: Mikolaj Izdebski <mizdebsk at redhat.com>
+Date: Mon, 23 Sep 2013 17:47:45 +0200
+Subject: [PATCH 3/3] Restotre support for relative symlinks
+
+---
+ .../org/fedoraproject/maven/installer/impl/Package.java  | 16 +++++++++++++---
+ 1 file changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/xmvn-core/src/main/java/org/fedoraproject/maven/installer/impl/Package.java b/xmvn-core/src/main/java/org/fedoraproject/maven/installer/impl/Package.java
+index 1ab04b6..d0e33ba 100644
+--- a/xmvn-core/src/main/java/org/fedoraproject/maven/installer/impl/Package.java
++++ b/xmvn-core/src/main/java/org/fedoraproject/maven/installer/impl/Package.java
+@@ -86,11 +86,21 @@ class Package
+         addFile( file, target.getParent(), target.getFileName(), mode );
+     }
+ 
+-    public void addSymlink( Path symlink, Path target )
++    public void addSymlink( Path symlinkFile, Path symlinkTarget )
+         throws IOException
+     {
+-        Path symlinkFile = FileUtils.createAnonymousSymlink( target );
+-        addFile( symlinkFile, symlink, 0644 );
++        if ( symlinkFile.isAbsolute() )
++            throw new IllegalArgumentException( "symlinkFile is absolute path: " + symlinkFile );
++        if ( symlinkTarget.isAbsolute() )
++            throw new IllegalArgumentException( "symlinkTarget is absolute path: " + symlinkTarget );
++
++        symlinkFile = symlinkFile.normalize();
++        symlinkTarget = symlinkTarget.normalize();
++        if ( symlinkFile.getParent() != null )
++            symlinkTarget = symlinkFile.getParent().relativize( symlinkTarget );
++
++        Path symlinkTempFile = FileUtils.createAnonymousSymlink( symlinkTarget );
++        addFile( symlinkTempFile, symlinkFile, 0644 );
+     }
+ 
+     private Path installDirectory( Path root, Path target )
+-- 
+1.8.1.4
+
diff --git a/xmvn.spec b/xmvn.spec
index 6659d7e..a9b0c2a 100644
--- a/xmvn.spec
+++ b/xmvn.spec
@@ -7,6 +7,8 @@ URL:            http://mizdebsk.fedorapeople.org/xmvn
 BuildArch:      noarch
 Source0:        https://fedorahosted.org/released/%{name}/%{name}-%{version}.tar.xz
 Patch0:         0001-Don-t-try-to-relativize-symlink-targets.patch
+Patch1:         0002-Try-to-resolve-cannonical-artifact-files.patch
+Patch2:         0003-Restotre-support-for-relative-symlinks.patch
 
 BuildRequires:  maven >= 3.1.0
 BuildRequires:  maven-local
@@ -34,6 +36,8 @@ This package provides %{summary}.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
 
 # Add cglib test dependency as a workaround for rhbz#911365
 #pom_add_dep cglib:cglib::test %{name}-core
@@ -145,6 +149,7 @@ end
 %changelog
 * Mon Sep 23 2013 Mikolaj Izdebski <mizdebsk at redhat.com> - 1.0.2-2
 - Don't try to relativize symlink targets
+- Restotre support for relative symlinks
 
 * Fri Sep 20 2013 Mikolaj Izdebski <mizdebsk at redhat.com> - 1.0.2-1
 - Update to upstream version 1.0.2


More information about the scm-commits mailing list