diff --git a/.gitignore b/.gitignore index 08034b2..80132d2 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/0001-artifact-Generate-provides-for-compat-artifacts-with.patch b/0001-artifact-Generate-provides-for-compat-artifacts-with.patch deleted file mode 100644 index 122ea59..0000000 --- a/0001-artifact-Generate-provides-for-compat-artifacts-with.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 642f1828322489c6b5b0e450994a3d8a5836d56f Mon Sep 17 00:00:00 2001 -From: Michal Srb -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 - diff --git a/0001-maven.req-XMvn-sets-resolvedVersion-to-UNKNOWN-for-u.patch b/0001-maven.req-XMvn-sets-resolvedVersion-to-UNKNOWN-for-u.patch deleted file mode 100644 index 0eea72d..0000000 --- a/0001-maven.req-XMvn-sets-resolvedVersion-to-UNKNOWN-for-u.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 9b45dfe3a03e70c1413b7a1a7ee88431a4fe7f4c Mon Sep 17 00:00:00 2001 -From: Michal Srb -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 - diff --git a/0001-pom-Add-ability-to-read-parent-s-version.patch b/0001-pom-Add-ability-to-read-parent-s-version.patch deleted file mode 100644 index 437fe56..0000000 --- a/0001-pom-Add-ability-to-read-parent-s-version.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0870cac2b02aef1e75aada3b4d235f76b0d4ee1e Mon Sep 17 00:00:00 2001 -From: Michal Srb -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 - diff --git a/0002-maven.req-Check-if-dependency-is-not-provided-by-sub.patch b/0002-maven.req-Check-if-dependency-is-not-provided-by-sub.patch deleted file mode 100644 index bd3e471..0000000 --- a/0002-maven.req-Check-if-dependency-is-not-provided-by-sub.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 5224614066cfd01c02112a849fca3c7969202142 Mon Sep 17 00:00:00 2001 -From: Michal Srb -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 - diff --git a/0004-maven.req-Generate-versioned-deps-on-subpackages.patch b/0004-maven.req-Generate-versioned-deps-on-subpackages.patch deleted file mode 100644 index af506ff..0000000 --- a/0004-maven.req-Generate-versioned-deps-on-subpackages.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 8cd3338ddfeef5965f05d5082695d9d72bcf4629 Mon Sep 17 00:00:00 2001 -From: Michal Srb -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 - diff --git a/0006-maven.req-Fix-self-dependency-detection-code.patch b/0006-maven.req-Fix-self-dependency-detection-code.patch deleted file mode 100644 index 92dc6aa..0000000 --- a/0006-maven.req-Fix-self-dependency-detection-code.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 424bba5b517fa1c458d7f11b10e577ba59585bd2 Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -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 - diff --git a/0008-Fix-javapackages-metadata.xml.patch b/0008-Fix-javapackages-metadata.xml.patch deleted file mode 100644 index 7e06c9f..0000000 --- a/0008-Fix-javapackages-metadata.xml.patch +++ /dev/null @@ -1,26 +0,0 @@ -From a48fe9f51512fe367d44519e41c94b24ef8af983 Mon Sep 17 00:00:00 2001 -From: Mikolaj Izdebski -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 @@ - ${JAVA_HOME}/../lib/tools.jar - - -- com.jdk -+ sun.jdk - jconsole - SYSTEM - ${JAVA_HOME}/../lib/jconsole.jar --- -1.9.3 - diff --git a/0010-maven.req-When-generating-req-from-POM-file-do-not-b.patch b/0010-maven.req-When-generating-req-from-POM-file-do-not-b.patch deleted file mode 100644 index 6b9a279..0000000 --- a/0010-maven.req-When-generating-req-from-POM-file-do-not-b.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 52525455278ad5801cf89a768b81499229af1f68 Mon Sep 17 00:00:00 2001 -From: Michal Srb -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 - diff --git a/add-support-for-xmvn.resolver.disableEffectivePom-property.patch b/add-support-for-xmvn.resolver.disableEffectivePom-property.patch deleted file mode 100644 index 63a6561..0000000 --- a/add-support-for-xmvn.resolver.disableEffectivePom-property.patch +++ /dev/null @@ -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] [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 - diff --git a/build.bash b/build.bash deleted file mode 100644 index e895029..0000000 --- a/build.bash +++ /dev/null @@ -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 - diff --git a/fedora-rawhide-x86_64.cfg b/fedora-rawhide-x86_64.cfg deleted file mode 100644 index 54bb30b..0000000 --- a/fedora-rawhide-x86_64.cfg +++ /dev/null @@ -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 -""" diff --git a/install-pom_change_dep-man-page.patch b/install-pom_change_dep-man-page.patch deleted file mode 100644 index bf98eb4..0000000 --- a/install-pom_change_dep-man-page.patch +++ /dev/null @@ -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 diff --git a/javapackages-tools.spec b/javapackages-tools.spec index 5b75975..b861ead 100644 --- a/javapackages-tools.spec +++ b/javapackages-tools.spec @@ -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 - 4.2.0-1 +- Update to upstream version 4.2.0 + * Thu Jul 10 2014 Michal Srb - 4.1.0-2 - Backport upstream patch for maven.req diff --git a/sources b/sources index 555cc91..174927a 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -90858a73cb6ba12b19c6a7d70a4c2cdf javapackages-4.1.0.tar.xz +69b79deca82c70af3f7aa5356abc5866 javapackages-4.2.0.tar.xz diff --git a/update-docs.patch b/update-docs.patch deleted file mode 100644 index 411e173..0000000 --- a/update-docs.patch +++ /dev/null @@ -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 <> 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]