Backport patches for maven.req

- Remove com.sun:tools and sun.jdk:jconsole provides
This commit is contained in:
Michal Srb 2014-05-29 12:45:52 +02:00
parent d75a3d6933
commit e2f0c5d0ec
7 changed files with 306 additions and 5 deletions

View File

@ -0,0 +1,34 @@
From 0870cac2b02aef1e75aada3b4d235f76b0d4ee1e Mon Sep 17 00:00:00 2001
From: Michal Srb <msrb@redhat.com>
Date: Thu, 29 May 2014 10:23:07 +0200
Subject: [PATCH 01/10] [pom] Add ability to read parent's version
---
python/javapackages/pom.py | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/python/javapackages/pom.py b/python/javapackages/pom.py
index 604728f..6c15813 100644
--- a/python/javapackages/pom.py
+++ b/python/javapackages/pom.py
@@ -95,6 +95,17 @@ class POM(object):
return gId.text.strip()
@property
+ def parentVersion(self):
+ """
+ version of the parent artifact of None
+ """
+ ver = self.__find('./pom:parent/pom:version')
+ if ver is None:
+ return None
+ else:
+ return ver.text.strip()
+
+ @property
def groupId(self):
"""
Effective groupId of the pom Artifact taking into account parent groupId
--
1.9.3

View File

@ -0,0 +1,75 @@
From 5224614066cfd01c02112a849fca3c7969202142 Mon Sep 17 00:00:00 2001
From: Michal Srb <msrb@redhat.com>
Date: Thu, 29 May 2014 10:24:39 +0200
Subject: [PATCH 02/10] [maven.req] Check if dependency is not provided by
subpackage
---
depgenerators/maven.req | 24 +++++++++++++++++-------
1 file changed, 17 insertions(+), 7 deletions(-)
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index c81437b..eecb055 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -144,6 +144,15 @@ class TagBuilder(object):
continue
self.print_mvn_requires(path)
+ def __is_provided_by_subpackage(self, dependency):
+ for provided in self.provided_artifacts:
+ if (provided.groupId == dependency.groupId and
+ provided.artifactId == dependency.artifactId and
+ provided.classifier == dependency.classifier and
+ provided.extension == dependency.extension):
+ return True
+ return False
+
def __generate_requires_from_pom(self, pomfile):
pom = POM(pomfile)
@@ -151,6 +160,7 @@ class TagBuilder(object):
extensions = pom.get_extensions()
pgid = pom.parentGroupId
paid = pom.parentArtifactId
+ pver = pom.parentVersion
unresolvable = []
@@ -158,7 +168,7 @@ class TagBuilder(object):
for p in plugins:
# TODO: namespaces
plug = Dependency(p.groupId, p.artifactId, requestedVersion=p.version)
- if resolve_artifact(plug.get_mvn_str()):
+ if resolve_artifact(plug.get_mvn_str()) or self.__is_provided_by_subpackage(plug):
print(plug.get_rpm_str())
else:
unresolvable.append(plug.get_mvn_str())
@@ -173,18 +183,18 @@ class TagBuilder(object):
for e in extensions:
# TODO: namespaces
ext = Dependency(e.groupId, e.artifactId, requestedVersion=e.version)
- if resolve_artifact(ext.get_mvn_str()):
+ if resolve_artifact(ext.get_mvn_str()) or self.__is_provided_by_subpackage(ext):
print(ext.get_rpm_str())
else:
unresolvable.append(plug.get_mvn_str())
- if paid:
- parent_mvn_str = "{}:{}:pom:".format(pgid, paid)
- if resolve_artifact(parent_mvn_str):
+ if paid and pver:
+ parent_dep = Dependency(pgid, paid, requestedVersion=pver, extension="pom")
+ if resolve_artifact(parent_dep.get_mvn_str()) or self.__is_provided_by_subpackage(parent_dep):
# TODO: namespaces
- print("mvn({})".format(parent_mvn_str))
+ print(parent_dep.get_rpm_str())
else:
- unresolvable.append(parent_mvn_str)
+ unresolvable.append(parent_dep.get_mvn_str())
if unresolvable:
raise Exception("Unable to generate requires on unresolvable artifact{}: {}"
--
1.9.3

View File

@ -0,0 +1,65 @@
From 8cd3338ddfeef5965f05d5082695d9d72bcf4629 Mon Sep 17 00:00:00 2001
From: Michal Srb <msrb@redhat.com>
Date: Thu, 29 May 2014 11:28:57 +0200
Subject: [PATCH 04/10] [maven.req] Generate versioned deps on subpackages
---
depgenerators/maven.req | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index eecb055..56fd27f 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -150,8 +150,8 @@ class TagBuilder(object):
provided.artifactId == dependency.artifactId and
provided.classifier == dependency.classifier and
provided.extension == dependency.extension):
- return True
- return False
+ return provided.version
+ return None
def __generate_requires_from_pom(self, pomfile):
@@ -168,8 +168,11 @@ class TagBuilder(object):
for p in plugins:
# TODO: namespaces
plug = Dependency(p.groupId, p.artifactId, requestedVersion=p.version)
- if resolve_artifact(plug.get_mvn_str()) or self.__is_provided_by_subpackage(plug):
+ aver = self.__is_provided_by_subpackage(plug)
+ if resolve_artifact(plug.get_mvn_str()):
print(plug.get_rpm_str())
+ elif aver is not None:
+ print("{rpmstr} = {version}".format(rpmstr=plug.get_rpm_str(), version=aver))
else:
unresolvable.append(plug.get_mvn_str())
for pd in p.dependencies:
@@ -183,16 +186,22 @@ class TagBuilder(object):
for e in extensions:
# TODO: namespaces
ext = Dependency(e.groupId, e.artifactId, requestedVersion=e.version)
- if resolve_artifact(ext.get_mvn_str()) or self.__is_provided_by_subpackage(ext):
+ aver = self.__is_provided_by_subpackage(ext)
+ if resolve_artifact(ext.get_mvn_str()):
print(ext.get_rpm_str())
+ elif aver is not None:
+ print("{rpmstr} = {version}".format(rpmstr=ext.get_rpm_str(), version=aver))
else:
unresolvable.append(plug.get_mvn_str())
if paid and pver:
parent_dep = Dependency(pgid, paid, requestedVersion=pver, extension="pom")
- if resolve_artifact(parent_dep.get_mvn_str()) or self.__is_provided_by_subpackage(parent_dep):
+ aver = self.__is_provided_by_subpackage(parent_dep)
+ if resolve_artifact(parent_dep.get_mvn_str()):
# TODO: namespaces
print(parent_dep.get_rpm_str())
+ elif aver is not None:
+ print("{rpmstr} = {version}".format(rpmstr=parent_dep.get_rpm_str(), version=aver))
else:
unresolvable.append(parent_dep.get_mvn_str())
--
1.9.3

View File

@ -0,0 +1,31 @@
From 424bba5b517fa1c458d7f11b10e577ba59585bd2 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Thu, 29 May 2014 13:08:11 +0200
Subject: [PATCH 06/10] [maven.req] Fix self-dependency detection code
---
depgenerators/maven.req | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index 56fd27f..a42162e 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -242,13 +242,10 @@ class TagBuilder(object):
for compatVer in provided.compatVersions:
if dependency.resolvedVersion == compatVer:
return True
- else:
- return False
elif (not dependency.resolvedVersion and
not provided.is_compat()):
return True
- else:
- return False
+ return False
def filter_requires(self, requires):
--
1.9.3

View File

@ -0,0 +1,26 @@
From a48fe9f51512fe367d44519e41c94b24ef8af983 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Thu, 29 May 2014 13:38:56 +0200
Subject: [PATCH 08/10] Fix javapackages-metadata.xml
s/com.jdk:jconsole/sun.jdk:jconsole/
---
etc/javapackages-metadata.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/etc/javapackages-metadata.xml b/etc/javapackages-metadata.xml
index 6f6c98e..1126a69 100644
--- a/etc/javapackages-metadata.xml
+++ b/etc/javapackages-metadata.xml
@@ -9,7 +9,7 @@
<path>${JAVA_HOME}/../lib/tools.jar</path>
</artifact>
<artifact>
- <groupId>com.jdk</groupId>
+ <groupId>sun.jdk</groupId>
<artifactId>jconsole</artifactId>
<version>SYSTEM</version>
<path>${JAVA_HOME}/../lib/jconsole.jar</path>
--
1.9.3

View File

@ -0,0 +1,55 @@
From 52525455278ad5801cf89a768b81499229af1f68 Mon Sep 17 00:00:00 2001
From: Michal Srb <msrb@redhat.com>
Date: Thu, 29 May 2014 13:45:52 +0200
Subject: [PATCH 10/10] [maven.req] When generating req from POM file, do not
blindly take first POM file, but iterate over all of them and pick the right
one
---
depgenerators/maven.req | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index aea1dd4..dea89d7 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -137,7 +137,9 @@ class TagBuilder(object):
if os.path.exists(XMVN_RESOLVE_PATH):
if is_it_pom_only_pkg(paths[0]):
- self.__generate_requires_from_pom(ppaths[0])
+ poms = self.__find_poms_for_metadata(ppaths, paths[0])
+ for p in poms:
+ self.__generate_requires_from_pom(p)
for path in paths:
if path.endswith(".pom"):
@@ -154,8 +156,23 @@ class TagBuilder(object):
return None
- def __generate_requires_from_pom(self, pomfile):
- pom = POM(pomfile)
+ # TODO: move functions like this to some POMUtils, or similar module
+ def __find_poms_for_metadata(self, pom_paths, metadata_path):
+ poms = []
+ depmap = Depmap([metadata_path])
+ provided = depmap.get_provided_artifacts()
+ for prov in provided:
+ for p in pom_paths:
+ pom = POM(p)
+ if (pom.groupId == prov.groupId and
+ pom.artifactId == prov.artifactId and
+ pom.version == prov.version):
+
+ poms.append(pom)
+ break
+ return poms
+
+ def __generate_requires_from_pom(self, pom):
plugins = pom.get_plugins()
extensions = pom.get_extensions()
pgid = pom.parentGroupId
--
1.9.3

View File

@ -1,6 +1,6 @@
Name: javapackages-tools
Version: 4.0.0
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Macros and scripts for Java packaging support
@ -8,6 +8,14 @@ License: BSD
URL: https://fedorahosted.org/javapackages/
Source0: https://fedorahosted.org/released/javapackages/javapackages-%{version}.tar.xz
Patch0: 0001-pom-Add-ability-to-read-parent-s-version.patch
Patch1: 0002-maven.req-Check-if-dependency-is-not-provided-by-sub.patch
Patch2: 0004-maven.req-Generate-versioned-deps-on-subpackages.patch
Patch3: 0006-maven.req-Fix-self-dependency-detection-code.patch
Patch4: 0008-Fix-javapackages-metadata.xml.patch
Patch5: 0010-maven.req-When-generating-req-from-POM-file-do-not-b.patch
BuildArch: noarch
BuildRequires: asciidoc
@ -30,10 +38,6 @@ Requires: python-javapackages = %{version}-%{release}
Provides: jpackage-utils = %{version}-%{release}
Obsoletes: jpackage-utils < %{version}-%{release}
# Workaround for rhbz#1091385
Provides: mvn(com.sun:tools)
Provides: mvn(sun.jdk:jconsole)
%description
This package provides macros and scripts to support Java packaging.
@ -133,6 +137,13 @@ This package provides non-essential macros and scripts to support Java packaging
%prep
%setup -q -n javapackages-%{version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
%configure
./build
@ -172,6 +183,10 @@ popd
%doc LICENSE
%changelog
* Thu May 29 2014 Michal Srb <msrb@redhat.com> - 4.0.0-2
- Backport patches for maven.req
- Remove com.sun:tools and sun.jdk:jconsole provides
* Thu May 29 2014 Michal Srb <msrb@redhat.com> - 4.0.0-1
- Update to 4.0.0