[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