Update to upstream version 4.2.0

This commit is contained in:
Michal Srb 2014-09-09 09:23:57 +02:00
parent 3fac015197
commit ee8847f60a
16 changed files with 86 additions and 840 deletions

1
.gitignore vendored
View File

@ -61,3 +61,4 @@
/javapackages-3.5.0.tar.xz
/javapackages-4.0.0.tar.xz
/javapackages-4.1.0.tar.xz
/javapackages-4.2.0.tar.xz

View File

@ -1,43 +0,0 @@
From 642f1828322489c6b5b0e450994a3d8a5836d56f Mon Sep 17 00:00:00 2001
From: Michal Srb <msrb@redhat.com>
Date: Tue, 10 Jun 2014 16:19:18 +0200
Subject: [PATCH] [artifact] Generate provides for compat artifacts with
alliases
---
python/javapackages/artifact.py | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/python/javapackages/artifact.py b/python/javapackages/artifact.py
index c6afc34..fc3f245 100644
--- a/python/javapackages/artifact.py
+++ b/python/javapackages/artifact.py
@@ -108,19 +108,21 @@ class ProvidedArtifact(object):
strlist = []
if not self.compatVersions:
strlist.append(self.artifact.get_rpm_str())
+ for alias in self.aliases:
+ full_alias = Artifact.merge_artifacts(alias.artifact, self.artifact)
+ strlist.append(full_alias.get_rpm_str())
else:
for ver in self.compatVersions:
rpmstr = self.artifact.get_rpm_str(ver)
strlist.append(rpmstr)
+ for alias in self.aliases:
+ full_alias = Artifact.merge_artifacts(alias.artifact, self.artifact)
+ strlist.append(full_alias.get_rpm_str(ver))
if not (self.version):
raise ArtifactFormatException(
"Cannot create versioned string from artifact without version: {art}".format(art=str(self)))
- for alias in self.aliases:
- full_alias = Artifact.merge_artifacts(alias.artifact, self.artifact)
- strlist.append(full_alias.get_rpm_str())
-
result = ""
for rpmstr in strlist:
if result:
--
1.9.3

View File

@ -1,26 +0,0 @@
From 9b45dfe3a03e70c1413b7a1a7ee88431a4fe7f4c Mon Sep 17 00:00:00 2001
From: Michal Srb <msrb@redhat.com>
Date: Thu, 10 Jul 2014 15:30:17 +0200
Subject: [PATCH] [maven.req] XMvn sets resolvedVersion to UNKNOWN for
unresolvable deps
---
depgenerators/maven.req | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
index 2e99c1e..f7133d6 100755
--- a/depgenerators/maven.req
+++ b/depgenerators/maven.req
@@ -310,7 +310,7 @@ class TagBuilder(object):
unknown_deps = self.check_deps(metadata)
for dependency in metadata.get_required_artifacts():
- if dependency.requestedVersion == "UNKNOWN":
+ if dependency.resolvedVersion == "UNKNOWN":
unknown_deps.append(dependency)
continue
for skipped in self.skipped_artifacts:
--
1.9.3

View File

@ -1,34 +0,0 @@
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

@ -1,75 +0,0 @@
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

@ -1,65 +0,0 @@
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

@ -1,31 +0,0 @@
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

@ -1,26 +0,0 @@
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

@ -1,55 +0,0 @@
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,112 +0,0 @@
diff --git a/java-utils/maven_depmap.py b/java-utils/maven_depmap.py
index 9377725..c80ff5b 100644
--- a/java-utils/maven_depmap.py
+++ b/java-utils/maven_depmap.py
@@ -280,6 +280,7 @@ if __name__ == "__main__":
if namespace:
artifact.namespace = namespace
+ artifact.properties["xmvn.resolver.disableEffectivePom"] = "true"
buildroot = os.environ.get('RPM_BUILD_ROOT')
diff --git a/java-utils/mvn_artifact.py b/java-utils/mvn_artifact.py
index e5e2731..9c0d55a 100644
--- a/java-utils/mvn_artifact.py
+++ b/java-utils/mvn_artifact.py
@@ -45,8 +45,6 @@ from javapackages.pom import *
from lxml import etree
import pyxb
-from xml.dom.minidom import getDOMImplementation
-
usage="usage: %prog [options] <MVN spec | POM path> [artifact path]"
epilog="""
@@ -117,21 +115,17 @@ def add_artifact_elements(root, uart, ppath=None, jpath=None):
for path in [ppath, jpath]:
if path:
a = uart.to_metadata()
+ props = []
if path is ppath:
if not is_it_ivy_file(ppath):
a.extension = "pom"
else:
a.extension = os.path.splitext(pom_path)[1][1:]
-
- # add property "type"
- domimpl = getDOMImplementation()
- doc = domimpl.createDocument(None, None, None)
- ty = doc.createElement('type')
- te = doc.createTextNode('ivy')
- ty.appendChild(te)
- a.properties = pyxb.BIND(ty)
+ props.append(Depmap.build_property('type', 'ivy'))
a.path = os.path.abspath(path)
+ props.append(Depmap.build_property('xmvn.resolver.disableEffectivePom', 'true'))
+ a.properties = pyxb.BIND(*props)
artifacts.append(a)
if root.artifacts is None:
diff --git a/python/javapackages/artifact.py b/python/javapackages/artifact.py
index ed8e0ba..33d1583 100644
--- a/python/javapackages/artifact.py
+++ b/python/javapackages/artifact.py
@@ -130,7 +130,6 @@ class ProvidedArtifact(object):
return result
def to_metadata(self):
- # TODO: add support for properties(?)
a = m.ArtifactMetadata()
a.groupId = self.groupId
a.artifactId = self.artifactId
@@ -149,6 +148,11 @@ class ProvidedArtifact(object):
als = [alias.to_metadata() for alias in self.aliases]
a.aliases = pyxb.BIND(*als)
+ if self.properties:
+ import javapackages.depmap
+ prop = [javapackages.depmap.Depmap.build_property(k, v) for k, v in self.properties.iteritems()]
+ a.properties = pyxb.BIND(*prop)
+
return a
@classmethod
diff --git a/python/javapackages/depmap.py b/python/javapackages/depmap.py
index 356af95..a4b83fb 100644
--- a/python/javapackages/depmap.py
+++ b/python/javapackages/depmap.py
@@ -41,6 +41,7 @@ from javapackages.artifact import (Artifact, Dependency, ProvidedArtifact,
import pyxb
import javapackages.metadata as metadata
+from xml.dom.minidom import getDOMImplementation
class MetadataLoadingException(Exception):
@@ -170,3 +171,12 @@ class Depmap(object):
if prop.tagName == u'requiresJavaDevel':
return prop.firstChild.value
return None
+
+ @staticmethod
+ def build_property(name, value):
+ domimpl = getDOMImplementation()
+ doc = domimpl.createDocument(None, None, None)
+ elem = doc.createElement(name)
+ tnode = doc.createTextNode(value)
+ elem.appendChild(tnode)
+ return elem
diff --git a/test/run_tests.sh b/test/run_tests.sh
index 55d47cd..8bdc221 100755
--- a/test/run_tests.sh
+++ b/test/run_tests.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-PYTHONPATH="../python" nosetests --with-xunit --exclude=maven_prov_test_fuzzed.py
+PYTHONPATH="../python" nosetests --with-xunit --exclude="(maven_prov)|(maven_depmap)|(mvn_artifact)_test.py"
r1=$?
r2=0

View File

@ -1,58 +0,0 @@
#!/bin/bash -ex
resultdir="/var/lib/mock/javapackages-rawhide/result/"
# create directories
repo=RPM/latest/
[[ ! -d ${repo} ]] && mkdir -p ${repo}
# update version and release tag in spec file
version=`sed 's/-SNAPSHOT//' VERSION`
release=$(git describe --match="[^(jenkins)].*" --tags | sed 's/[^-]*-/0./;s/-/./;s/g/git/')
sed -i "s/^Version:\s\+[0-9.]*$/Version: ${version}/" javapackages-tools.spec
sed -i "s/^Release:\s\+[0-9.]*%{?dist}$/Release: ${release}/" javapackages-tools.spec
# make tarball
git archive -v --prefix=javapackages-${version}/ HEAD | xz > javapackages-${version}.tar.xz
# print root.log and build.log in case of failure
trap "cat ${resultdir}/root.log | tail -30; cat ${resultdir}/build.log || :" 0
# crate srpm
rm -f SRPMS/*
rpmbuild -bs --clean --define "_topdir `pwd`" --define "_sourcedir `pwd`" javapackages-tools.spec
# build RPM with custom mock config
rm -Rf ${resultdir}/*
mock -r ../..$PWD/fedora-rawhide-x86_64 SRPMS/*.src.rpm
# get nosetests results
mock -r ../..$PWD/fedora-rawhide-x86_64 --copyout /builddir/build/BUILD/javapackages-${version}/test/nosetests.xml .
# remove unneeded stuff
rm -f javapackages-*.tar.xz
last_bn=`grep "Build number" ${repo}/info.log | awk '{ print $3 }'`
if [ -n "${last_bn}" ]; then
mkdir -p RPM/${last_bn}
mv ${repo}/* RPM/${last_bn}
# we only want keep RPMs from last 10 builds
blist=`find ./RPM/ -maxdepth 1 -name "[0-9]*"`
for bn in $blist; do
if [ `basename $bn` -lt `expr $last_bn - 10` ]; then
rm -Rf $bn
fi
done
fi
# copy resulting RPMs to RPM/latest
cp ${resultdir}/* ${repo}
tail -n 50 ${resultdir}/build.log
createrepo ${repo}
# store current build number into the file
echo "Build number: $BUILD_NUMBER" >> ${repo}/info.log

View File

@ -1,37 +0,0 @@
config_opts['root'] = 'javapackages-rawhide'
config_opts['target_arch'] = 'x86_64'
config_opts['legal_host_arches'] = ('x86_64',)
config_opts['chroot_setup_cmd'] = 'install @buildsys-build PyXB asciidoc dia python-formencode python-lxml python-nose python-setuptools python2-devel scl-utils-build xmlto'
config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst
config_opts['extra_chroot_dirs'] = [ '/run/lock', ]
config_opts['releasever'] = '21'
config_opts['yum.conf'] = """
[main]
logfile=/var/log/yum.log
retries=20
gpgcheck=0
assumeyes=1
syslog_ident=mock
syslog_device=
metadata_expire=1
mirrorlist_expire=1
debuglevel=2
[mock-rawhide]
name=mock-rawhide
mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=x86_64
failovermethod=priority
cost=1000
[mock-koji]
name=mock-koji
baseurl=http://kojipkgs.fedoraproject.org/repos/rawhide/latest/x86_64/
cost=2000
[mock-override]
name=mock-override
baseurl=http://people.redhat.com/~mizdebsk/jenkins-extra-repo/
gpgcheck=0
cost=500
"""

View File

@ -1,24 +0,0 @@
diff --git a/install b/install
index 6caf88f..16216a7 100755
--- a/install
+++ b/install
@@ -142,6 +142,7 @@ inst_data target/pom_disable_module.7 "${mandir}/man7"
inst_data target/pom_remove_dep.7 "${mandir}/man7"
inst_data target/pom_remove_parent.7 "${mandir}/man7"
inst_data target/pom_remove_plugin.7 "${mandir}/man7"
+inst_data target/pom_change_dep.7 "${mandir}/man7"
inst_data target/pom_set_parent.7 "${mandir}/man7"
inst_data target/pom_xpath_inject.7 "${mandir}/man7"
inst_data target/pom_xpath_remove.7 "${mandir}/man7"
diff --git a/man/pom_change_dep.txt b/man/pom_change_dep.txt
index 234853f..3871641 100644
--- a/man/pom_change_dep.txt
+++ b/man/pom_change_dep.txt
@@ -1,5 +1,5 @@
-pom_add_dep(7)
-==============
+pom_change_dep(7)
+=================
:doctype: manpage
:man source: JAVAPACKAGES
:man manual: Java Packages Tools

View File

@ -1,39 +1,61 @@
%if 0%{?fedora} > 12
%global with_python3 1
%else
%{!?__python2: %global __python2 /usr/bin/python2}
%{!?python2_sitelib: %global python2_sitelib %(%{__python2} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")}
%endif
Name: javapackages-tools
Version: 4.1.0
Release: 2%{?dist}
Version: 4.2.0
Release: 1%{?dist}
Summary: Macros and scripts for Java packaging support
License: BSD
URL: https://fedorahosted.org/javapackages/
URL: https://git.fedorahosted.org/git/javapackages.git
Source0: https://fedorahosted.org/released/javapackages/javapackages-%{version}.tar.xz
Patch0: 0001-maven.req-XMvn-sets-resolvedVersion-to-UNKNOWN-for-u.patch
BuildArch: noarch
%if 0%{?with_python3}
BuildRequires: python3-devel
BuildRequires: python3-lxml
BuildRequires: python3-setuptools
BuildRequires: python3-nose
BuildRequires: python3-six
BuildRequires: python3-PyXB = 1.2.4
%else
BuildRequires: python2-devel
BuildRequires: python-lxml
BuildRequires: python-setuptools
BuildRequires: python-nose
BuildRequires: python-six
BuildRequires: PyXB = 1.2.4
%endif
BuildRequires: asciidoc
BuildRequires: xmlto
BuildRequires: python-lxml
BuildRequires: python2-devel
BuildRequires: python-setuptools
BuildRequires: python-formencode
BuildRequires: scl-utils-build
BuildRequires: python-nose
BuildRequires: dia
BuildRequires: PyXB >= 1.2.3
BuildRequires: javapackages-tools >= 4.0.0
BuildRequires: xmvn-resolve >= 2.0.0
BuildRequires: xmvn-resolve >= 2
Requires: coreutils
Requires: libxslt
Requires: lua
Requires: python
%if 0%{?with_python3}
Requires: python3-javapackages = %{version}-%{release}
Requires: python3
%else
Requires: python-javapackages = %{version}-%{release}
Requires: python
%endif
Provides: jpackage-utils = %{version}-%{release}
Obsoletes: jpackage-utils < %{version}-%{release}
Provides: mvn(com.sun:tools)
Provides: mvn(sun.jdk:jconsole)
%description
This package provides macros and scripts to support Java packaging.
@ -90,14 +112,31 @@ Requires: xmvn-connector-ivy >= 2
This package implements local mode fow Apache Ivy, which allows
artifact resolution using XMvn resolver.
%if 0%{?with_python3}
%package -n python3-javapackages
Summary: Module for handling various files for Java packaging
Requires: python3-PyXB = 1.2.4
Requires: python3-lxml
Requires: python3-six
Obsoletes: python-javapackages < %{version}-%{release}
%description -n python3-javapackages
Module for handling, querying and manipulating of various files for Java
packaging in Linux distributions
%else # python2
%package -n python-javapackages
Summary: Module for handling various files for Java packaging
Requires: PyXB >= 1.2.3
Requires: PyXB = 1.2.4
Requires: python-lxml
Requires: python-six
Obsoletes: python3-javapackages < %{version}-%{release}
%description -n python-javapackages
Module for handling, querying and manipulating of various files for Java
packaging in Linux distributions
%endif
%package -n fedora-review-plugin-java
Summary: fedora-review plugin for checking Java packaging guidelines
@ -119,13 +158,6 @@ Requires: %{name} = %{version}-%{release}
Requires: xmvn-install >= 2
Requires: xmvn-subst >= 2
Requires: xmvn-resolve >= 2
# We want to use OpenJDK 8 for building packages as it is default
# implementation used in Fedora. Due to YUM bugs and limitations,
# sometimes Java 7 may be installed alone. To workaround this
# maven-local explicitly requires version 8 of OpenJDK. (If needed
# Maven can still work with Java 7, but this needs to be enabled
# explicitly in the spec file.)
Requires: java-1.8.0-openjdk-devel >= 1:1.8
%description -n javapackages-local
This package provides non-essential macros and scripts to support Java packaging.
@ -133,13 +165,23 @@ This package provides non-essential macros and scripts to support Java packaging
%prep
%setup -q -n javapackages-%{version}
%patch0 -p1
%if 0%{?with_python3}
find . -name '*.py' | xargs sed -i '1s|^#!.*python|#!%{__python3}|'
find ./depgenerators -name '*.req' | xargs sed -i '1s|^#!.*python|#!%{__python3}|'
find ./depgenerators -name '*.prov' | xargs sed -i '1s|^#!.*python|#!%{__python3}|'
%endif # with_python3
%build
%configure
./build
pushd python
%{__python} setup.py build
%if 0%{?with_python3}
%{__python3} setup.py build
%else
%{__python2} setup.py build
%endif
popd
%install
@ -147,12 +189,19 @@ popd
sed -e 's/.[17]$/&.gz/' -e 's/.py$/&*/' -i files-*
pushd python
%{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT
%if 0%{?with_python3}
%{__python3} setup.py install -O1 --skip-build --root %{buildroot}
%else
%{__python} setup.py install -O1 --skip-build --root %{buildroot}
%endif
popd
%check
./check
%if 0%{?with_python3}
./check 3
%else
./check 2
%endif
%files -f files-common
%doc LICENSE
@ -163,9 +212,15 @@ popd
%files -n ivy-local -f files-ivy
%if 0%{?with_python3}
%files -n python3-javapackages
%doc LICENSE
%{python3_sitelib}/javapackages*
%else # python2
%files -n python-javapackages
%doc LICENSE
%{python_sitelib}/javapackages*
%endif
%files -n fedora-review-plugin-java
%{_datadir}/fedora-review/plugins/*
@ -174,6 +229,9 @@ popd
%doc LICENSE
%changelog
* Thu Jul 24 2014 Michal Srb <msrb@redhat.com> - 4.2.0-1
- Update to upstream version 4.2.0
* Thu Jul 10 2014 Michal Srb <msrb@redhat.com> - 4.1.0-2
- Backport upstream patch for maven.req

View File

@ -1 +1 @@
90858a73cb6ba12b19c6a7d70a4c2cdf javapackages-4.1.0.tar.xz
69b79deca82c70af3f7aa5356abc5866 javapackages-4.2.0.tar.xz

View File

@ -1,227 +0,0 @@
diff --git a/doc/ant.txt b/doc/ant.txt
index 06ba3f3..fc500c3 100644
--- a/doc/ant.txt
+++ b/doc/ant.txt
@@ -22,7 +22,7 @@ Repository for it, ship it as another source and install it.
[source,spec]
-------------
BuildRequires: ant
-BuildRequires: maven-local
+BuildRequires: javapackages-local
...
%build
ant test
diff --git a/doc/core_java_packages.txt b/doc/core_java_packages.txt
index 34e0728..2baf4b2 100644
--- a/doc/core_java_packages.txt
+++ b/doc/core_java_packages.txt
@@ -51,9 +51,39 @@ non-zero epoch in order to keep version ordering correct.
=======
+==== Java Packages Tools
+
+Java Packages Tools are packaged as severas binary RPM packages
+
+*`maven-local`*::
+
+ This package provides a complete environment which is required to
+ build Java packages using Apache Maven build system. This
+ includes a default system version of Java Development Kit (JDK),
+ Maven, a number of Maven plugins commonly used to build packages,
+ various macros and utlilty tools. `maven-local` is usually
+ declared as build dependency of Maven packages.
+
+*`ivy-local`*::
+
+ Analogously to `maven-local`, this package provides an environment
+ required to build Java packages using Apache Ivy as dependency
+ manager.
+
+*`javapackages-local`*::
+
+ Package providing a basic environment necessary to geterate and
+ install metadata for system artifact repository.
+
+*`javapackages-tools`*::
+
+ Package owning basic Java directories and providing runtime
+ support for Java packages. The great majority of Java packages
+ depend on `javapackages-tools`.
+
+
TODO
-* Java Packages Tools
* Ant
** extra tasks and /etc/ant.d
* Maven
diff --git a/doc/directory_layout.txt b/doc/directory_layout.txt
index 862ccd4..907777d 100644
--- a/doc/directory_layout.txt
+++ b/doc/directory_layout.txt
@@ -34,13 +34,6 @@ short description.
Maven are installed. Each POM must have name that strictly
corresponds to JAR file in `%{_javadir}` or `%{_jnidir}`.
-*`%{_mavendepmapfragdir}`* -- `/usr/share/maven-fragments`::
-
- Directory containing package metadata in XML format. Typically
- each binary package installs there a single XML file containing
- various information (metadata) about artifacts associated with
- that package.
-
.Other directories
[glossary]
diff --git a/doc/generic_java_build.txt b/doc/generic_java_build.txt
index 6fb09bb..5c29c95 100644
--- a/doc/generic_java_build.txt
+++ b/doc/generic_java_build.txt
@@ -11,49 +11,18 @@ POM or JAR file, we may use the `%add_maven_depmap` macro. However, if package
is build in standard way (i.e.: `%mvn_build` and `%mvn_install`), then calling
`%add_maven_depmap` is neither needed nor recommended. This macro is usually
useful only for packages that use other build tool than Maven (e.g.: ant,
-gradle). It creates files in `%{_mavendepmapfragdir}` that map
-groupId:artifactId pairs to JAR files under `%{_javadir}`. These files are
-called depmap fragments. The macro can read the groupId and artifactId from the
-POM file or maintainer can pass this information as an argument. All fragments
-in `%{_mavendepmapfragdir}` directory are read by XMvn, allowing the
-locally installed JAR and POM files to be used as a maven repository.
-
-Note that -- unless you use the `-f` option as shown below -- all
-depmap fragments for a given package are written to the same file,
-`%{_mavendepmapfragdir}/%{name}`. You should be sure to include this
-file in the `%files` section of your RPM.
+gradle).
For the macro to work properly, all JAR files must be copied into `%{_javadir}`
-and all POM files must be copied into `%{_mavenpomdir}` and given file names of
-the following form, where `jarname` is the name of the JAR without the .jar
-suffix:
+and all POM files must be copied into `%{_mavenpomdir}`.
-[source,spec]
---------
-%{_mavenpomdir}/JPP[.subdirectory]-jarname.pom
---------
-
-Note that the subdirectory is only necessary if the JAR file is put into a
-subdirectory of `%{_javadir}`. For example:
-
-* For junit, the JAR is `%{_javadir}/junit.jar`, so the POM would be
- `%{_mavenpomdir}/JPP-junit.pom`.
-* For plexus-ant-factory, the JAR is `%{_javadir}/plexus/ant-factory.jar`, so
- the POM would named `%{_mavenpomdir}/JPP.plexus-ant-factory.pom`.
-
-If a POM is installed with no corresponding JAR file -- for example, for parent
-POM files -- the same convention should be followed:
-
-* The Apache commons parent POM is installed in
- `%{_mavenpomdir}/JPP-commons-parent.pom`.
-
-In its simplest form (a POM without a JAR file), `%add_maven_depmap` looks like
+In simplest form (a POM without a JAR file), `%add_maven_depmap` looks like
this:
.Parent POM
[source,spec]
--------
-%add_maven_depmap JPP-%{name}.pom
+%add_maven_depmap %{name}.pom
--------
This will read the POM file in question and provide a mapping between the
@@ -65,7 +34,7 @@ For a POM that maps directly to a JAR file, the following is the correct form:
.Standard invocation
[source,spec]
--------
-%add_maven_depmap JPP-%{name}.pom %{name}.jar
+%add_maven_depmap %{name}.pom %{name}.jar
--------
In addition to creating the POM mapping, this will also ensure that the correct
@@ -82,7 +51,7 @@ mapping between Maven artifact and corresponding JAR file:
.Providing additional artifact mappings
[source,spec]
--------
-%add_maven_depmap JPP-%{name}.pom %{name}.jar -a "org.apache.commons:commons-lang"
+%add_maven_depmap %{name}.pom %{name}.jar -a "org.apache.commons:commons-lang"
--------
This form also adds additional mappings for given POM/JAR file. For example, if
the POM file indicates that it contains groupId commons-lang, artifactId
@@ -94,16 +63,16 @@ require different IDs than those reflected in the installed POM.
.Multiple subpackages
[source,spec]
--------
-%add_maven_depmap JPP-%{name}.pom %{name}.jar -f "XXX"
+%add_maven_depmap %{name}.pom %{name}.jar -f "XXX"
--------
-This form stores dependency mapping inside `%{_mavendepmapfragdir}/%{name}-XXX`
-instead of standard location. This is useful for packages with multiple
-subpackages where each has its own JAR files.
+This form stores metadata information in file with suffix "XXX". This
+is useful for packages with multiple subpackages where each has its own
+JAR files.
.Multiple artifacts in a subdirectory
[source,spec]
--------
-%add_maven_depmap JPP.%{name}-sub.pom %{name}/sub.jar
+%add_maven_depmap %{name}-sub.pom %{name}/sub.jar
--------
This form should be used when a package consists of multiple JAR files that are
diff --git a/doc/index.txt b/doc/index.txt
index f9af27e..22c9ab2 100644
--- a/doc/index.txt
+++ b/doc/index.txt
@@ -63,22 +63,6 @@ References
'DocBook - The Definitive Guide'. O'Reilly & Associates. 1999.
ISBN 1-56592-580-7.
-
-[glossary]
-Glossary
---------
-Glossaries are optional. Glossaries entries are an example of a style
-of AsciiDoc labeled lists.
-
-[glossary]
-[[Xdepmap]]depmap::
- Depmap is a special file telling Maven relationships between
- groupId,artifactId and JAR file on the filesystem
-
-A second glossary term::
- The corresponding (indented) definition.
-
-
ifdef::backend-docbook[]
[index]
Example Index
diff --git a/doc/maven.txt b/doc/maven.txt
index 7539d00..63c8cc8 100644
--- a/doc/maven.txt
+++ b/doc/maven.txt
@@ -35,7 +35,7 @@ BuildRequires: maven-local
The macros `%mvn_build` and `%mvn_install` automatically handle building of the
JAR files and their subsequent installation to the correct directory. The
-corresponding POM and <<Xdepmap,depmap>> files are also installed.
+corresponding POM and metadata files are also installed.
[[packaging_maven_project]]
=== Packaging Maven project
diff --git a/doc/mvn_macros.txt b/doc/mvn_macros.txt
index c1b9aa2..1115cc8 100644
--- a/doc/mvn_macros.txt
+++ b/doc/mvn_macros.txt
@@ -66,7 +66,7 @@ If the project consists of multiple artifacts, it is recommended to install each
artifact to the separate subpackage. The macro `%mvn_build -s` will generate
separate `.mfiles` file for every artifact in the project. This file contains
list of files related to specific artifact (typically JAR file, POM file and
-depmap). It can be later used in `%files` section of the spec file.
+metadata). It can be later used in `%files` section of the spec file.
.Creating one subpackage for each generated artifact
[source,spec]