commit 6251d642dbdc306df0abd9b945fa5bf4ef9aada06479046013d4744d37ae8f6c Author: Fridrich Strba Date: Fri Oct 11 11:35:00 2024 +0000 OBS-URL: https://build.opensuse.org/package/show/Java:packages/javapackages-tools?expand=0&rev=167 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/0001-Double-quote-to-avoid-substitution-during-build.patch b/0001-Double-quote-to-avoid-substitution-during-build.patch new file mode 100644 index 0000000..f9d3d1a --- /dev/null +++ b/0001-Double-quote-to-avoid-substitution-during-build.patch @@ -0,0 +1,25 @@ +From 5ede44f34a30011908b7dfc911d9c9bc270f1abc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Thu, 3 Oct 2024 11:21:43 +0200 +Subject: [PATCH] Double-quote to avoid substitution during build + +--- + macros.d/macros.jpackage | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/macros.d/macros.jpackage b/macros.d/macros.jpackage +index adfff436..55d4ba94 100644 +--- a/macros.d/macros.jpackage ++++ b/macros.d/macros.jpackage +@@ -37,7 +37,7 @@ cat > %{buildroot}%{_bindir}/%5 << EOF \ + # JPackage Project \ + \ + # Set default JAVA_HOME\ +-export JAVA_HOME="\\${JAVA_HOME:-%{?java_home}}"\ ++export JAVA_HOME="\\${JAVA_HOME:-%%{?java_home}}"\ + \ + # Source functions library\ + . @{javadir}-utils/java-functions\ +-- +2.46.1 + diff --git a/0001-Make-maven_depmap-order-of-aliases-reproducible.patch b/0001-Make-maven_depmap-order-of-aliases-reproducible.patch new file mode 100644 index 0000000..0b65085 --- /dev/null +++ b/0001-Make-maven_depmap-order-of-aliases-reproducible.patch @@ -0,0 +1,25 @@ +From 5cc434bdeffbee25158ae2bdcda08f4b07610f7a Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Mon, 4 Sep 2023 16:14:43 +0200 +Subject: [PATCH 1/2] Make maven_depmap order of aliases reproducible + +--- + java-utils/maven_depmap.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/java-utils/maven_depmap.py b/java-utils/maven_depmap.py +index 6a0520fa..4bfb877d 100644 +--- a/java-utils/maven_depmap.py ++++ b/java-utils/maven_depmap.py +@@ -213,7 +213,7 @@ def add_aliases(artifact, additions): + + aliases = additions.split(',') + result = list() +- for a in aliases: ++ for a in sorted(aliases): + alias = MetadataAlias.from_mvn_str(a) + alias.extension = artifact.extension + result.append(alias) +-- +2.42.0 + diff --git a/0002-Do-not-bomb-on-relativePath-construct.patch b/0002-Do-not-bomb-on-relativePath-construct.patch new file mode 100644 index 0000000..26550f0 --- /dev/null +++ b/0002-Do-not-bomb-on-relativePath-construct.patch @@ -0,0 +1,25 @@ +From d124f4d16883d74cdf8ab9064667e128a3695230 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Mon, 4 Sep 2023 22:44:10 +0200 +Subject: [PATCH 2/2] Do not bomb on construct + +--- + java-utils/mvn_artifact.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/java-utils/mvn_artifact.py b/java-utils/mvn_artifact.py +index a45946cd..b7520528 100644 +--- a/java-utils/mvn_artifact.py ++++ b/java-utils/mvn_artifact.py +@@ -167,7 +167,7 @@ def gather_dependencies(pom_path): + parent = pom.parent + while parent: + ppom = None +- if parent.relativePath: ++ if hasattr(parent, 'relativePath') and parent.relativePath: + try: + ppom_path = os.path.join(os.path.dirname(curr_pom._path), + parent.relativePath) +-- +2.42.0 + diff --git a/0003-Reproducible-exclusions-order-in-maven-metadata.patch b/0003-Reproducible-exclusions-order-in-maven-metadata.patch new file mode 100644 index 0000000..11c0aa8 --- /dev/null +++ b/0003-Reproducible-exclusions-order-in-maven-metadata.patch @@ -0,0 +1,52 @@ +From 66ba33a8c28497e01eddcb0cd17fbe324674eabc Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Mon, 11 Sep 2023 18:43:28 +0200 +Subject: [PATCH 3/3] Reproducible exclusions order in maven metadata + +--- + python/javapackages/metadata/dependency.py | 4 ++-- + python/javapackages/metadata/exclusion.py | 9 +++++++++ + 2 files changed, 11 insertions(+), 2 deletions(-) + +diff --git a/python/javapackages/metadata/dependency.py b/python/javapackages/metadata/dependency.py +index 1709e1fb..5931134d 100644 +--- a/python/javapackages/metadata/dependency.py ++++ b/python/javapackages/metadata/dependency.py +@@ -46,7 +46,7 @@ class MetadataDependency(ObjectBinding): + defaults = {'extension': 'jar', + 'requestedVersion': 'SYSTEM'} + types = {'optional': str, # todo bool +- 'exclusions': set([MetadataExclusion])} ++ 'exclusions': list([MetadataExclusion])} + + def is_optional(self): + if self.optional and self.optional.lower() == "true": +@@ -145,4 +145,4 @@ class MetadataDependency(ObjectBinding): + classifier=mvn_dep.classifier, + optional=mvn_dep.optional, + requestedVersion=mvn_dep.version, +- exclusions=exclusions) ++ exclusions=sorted(exclusions)) +diff --git a/python/javapackages/metadata/exclusion.py b/python/javapackages/metadata/exclusion.py +index 3152b090..5b9503c0 100644 +--- a/python/javapackages/metadata/exclusion.py ++++ b/python/javapackages/metadata/exclusion.py +@@ -41,6 +41,15 @@ class MetadataExclusion(ObjectBinding): + element_name = 'exclusion' + fields = ['groupId', 'artifactId'] + ++ def __lt__(self, other): ++ if self.groupId < other.groupId: ++ return True ++ if self.groupId > other.groupId: ++ return False ++ if self.artifactId < other.artifactId: ++ return True ++ return False ++ + def get_mvn_str(self): + return Printer.get_mvn_str(self.groupId, self.artifactId) + +-- +2.42.0 + diff --git a/0004-Reproducible-builds-keep-order-of-aliases-and-depend.patch b/0004-Reproducible-builds-keep-order-of-aliases-and-depend.patch new file mode 100644 index 0000000..c387837 --- /dev/null +++ b/0004-Reproducible-builds-keep-order-of-aliases-and-depend.patch @@ -0,0 +1,28 @@ +From f211da6e4cf216a020b47ccab9b2c7806c5a8a62 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Wed, 13 Sep 2023 15:47:54 +0200 +Subject: [PATCH 4/4] Reproducible builds: keep order of aliases and + dependencies + +--- + python/javapackages/metadata/artifact.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/python/javapackages/metadata/artifact.py b/python/javapackages/metadata/artifact.py +index 72e57e62..f5cbf3be 100644 +--- a/python/javapackages/metadata/artifact.py ++++ b/python/javapackages/metadata/artifact.py +@@ -52,8 +52,8 @@ class MetadataArtifact(ObjectBinding): + 'compatVersions', 'dependencies'] + defaults = {'extension': 'jar'} + types = {'compatVersions': set(['version']), +- 'aliases': set([MetadataAlias]), +- 'dependencies': set([MetadataDependency]), ++ 'aliases': list([MetadataAlias]), ++ 'dependencies': list([MetadataDependency]), + 'properties': dict} + + def __init__(self, *args, **kwargs): +-- +2.42.0 + diff --git a/0005-Interpolate-properties-also-in-the-current-artifact.patch b/0005-Interpolate-properties-also-in-the-current-artifact.patch new file mode 100644 index 0000000..2554137 --- /dev/null +++ b/0005-Interpolate-properties-also-in-the-current-artifact.patch @@ -0,0 +1,62 @@ +From d458bce49270bccfa40e9c4e288b3c9550aff741 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Wed, 4 Oct 2023 04:07:58 +0200 +Subject: [PATCH 5/5] Interpolate properties also in the current artifact + +--- + java-utils/install_pom.py | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +diff --git a/java-utils/install_pom.py b/java-utils/install_pom.py +index e0282773..5f9fd741 100644 +--- a/java-utils/install_pom.py ++++ b/java-utils/install_pom.py +@@ -31,6 +31,7 @@ + # Authors: Michal Srb + + from javapackages.maven.pom import POM, PomLoadingException ++from javapackages.maven.artifact import Artifact + + from javapackages.xmvn.xmvn_resolve import (XMvnResolve, ResolutionRequest, + XMvnResolveException) +@@ -164,7 +165,7 @@ def gather_dependencies(pom_path): + # only deps with scope "compile" or "runtime" are interesting + deps = [x for x in deps if x.scope in ["", "compile", "runtime"]] + +- return deps ++ return deps, props + + + def _get_dependencies(pom): +@@ -215,21 +216,23 @@ def _main(): + if uart.packaging and uart.packaging.lower() == 'pom': + tree = ElementTree.parse(args[0]) + else: ++ mvn_deps, props = gather_dependencies(pom_path) ++ mvn_art = Artifact.from_mvn_str(str(uart)) ++ mvn_art.interpolate(props) + result_pom = "\n" + result_pom += "\n" + result_pom += " 4.0.0\n" +- result_pom += (" {0}\n" ).format(uart.groupId) +- result_pom += (" {0}\n" ).format(uart.artifactId) +- result_pom += (" {0}\n").format(uart.version) ++ result_pom += (" {0}\n" ).format(mvn_art.groupId) ++ result_pom += (" {0}\n" ).format(mvn_art.artifactId) ++ result_pom += (" {0}\n").format(mvn_art.version) + + if hasattr(uart, "packaging") and uart.packaging != 'jar': + result_pom += (" {0}\n").format(uart.packaging) + if hasattr(uart, "extension") and uart.extension != 'jar': + result_pom += (" {0}\n").format(uart.extension) +- if hasattr(uart, "classifier") and uart.classifiler != '': ++ if hasattr(uart, "classifier") and uart.classifier != '': + result_pom += (" {0}\n").format(uart.classifier) + +- mvn_deps = gather_dependencies(pom_path) + if mvn_deps: + result_pom += " \n" + for d in mvn_deps: +-- +2.42.0 + diff --git a/0006-Test-variable-expansion-in-artifactId.patch b/0006-Test-variable-expansion-in-artifactId.patch new file mode 100644 index 0000000..8c74802 --- /dev/null +++ b/0006-Test-variable-expansion-in-artifactId.patch @@ -0,0 +1,713 @@ +From ce0929d03ba33ff98727fbd527f4ec94412f78bd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Wed, 4 Oct 2023 08:26:00 +0200 +Subject: [PATCH 6/7] Test variable expansion in artifactId + +--- + .../test_artifactid_expansion-want.xml | 34 ++ + test/data/install_pom/xgboost/pom.xml | 499 ++++++++++++++++++ + .../install_pom/xgboost/xgboost4j/pom.xml | 125 +++++ + test/install_pom_test.py | 7 + + 4 files changed, 665 insertions(+) + create mode 100644 test/data/install_pom/test_artifactid_expansion-want.xml + create mode 100644 test/data/install_pom/xgboost/pom.xml + create mode 100644 test/data/install_pom/xgboost/xgboost4j/pom.xml + +diff --git a/test/data/install_pom/test_artifactid_expansion-want.xml b/test/data/install_pom/test_artifactid_expansion-want.xml +new file mode 100644 +index 00000000..ce5fdcf8 +--- /dev/null ++++ b/test/data/install_pom/test_artifactid_expansion-want.xml +@@ -0,0 +1,34 @@ ++ ++ ++ 4.0.0 ++ ml.dmlc ++ xgboost4j_2.12 ++ 2.0.0 ++ ++ ++ org.scala-lang ++ scala-compiler ++ 2.12.18 ++ ++ ++ org.scala-lang ++ scala-library ++ 2.12.18 ++ ++ ++ org.scala-lang.modules ++ scala-collection-compat_2.12 ++ 2.10.0 ++ ++ ++ com.esotericsoftware ++ kryo ++ 5.5.0 ++ ++ ++ commons-logging ++ commons-logging ++ 1.2 ++ ++ ++ +\ No newline at end of file +diff --git a/test/data/install_pom/xgboost/pom.xml b/test/data/install_pom/xgboost/pom.xml +new file mode 100644 +index 00000000..80caa132 +--- /dev/null ++++ b/test/data/install_pom/xgboost/pom.xml +@@ -0,0 +1,499 @@ ++ ++ ++ 4.0.0 ++ ++ ml.dmlc ++ xgboost-jvm ++ 2.0.0 ++ pom ++ XGBoost JVM Package ++ JVM Package for XGBoost ++ https://github.com/dmlc/xgboost/tree/master/jvm-packages ++ ++ ++ The Apache License, Version 2.0 ++ http://www.apache.org/licenses/LICENSE-2.0.txt ++ ++ ++ ++ ++ CodingCat ++ codingcat@apache.org ++ ++ ++ ++ scm:git:git:/github.com/dmlc/xgboost.git ++ scm:git:ssh://github.com/dmlc/xgboost.git ++ https://github.com/dmlc/xgboost ++ ++ ++ UTF-8 ++ UTF-8 ++ 1.8 ++ 1.8 ++ 1.17.1 ++ 4.13.2 ++ 3.4.0 ++ 3.3.2 ++ 2.12.18 ++ 2.12 ++ 3.3.5 ++ 5 ++ OFF ++ OFF ++ 23.08.0 ++ 23.08.0 ++ cuda11 ++ 3.2.16 ++ 2.10.0 ++ ++ ++ ++ central_maven ++ central maven ++ https://repo1.maven.org/maven2 ++ ++ ++ ++ ++ ++ ++ ++ ++ default ++ ++ true ++ ++ ++ xgboost4j ++ xgboost4j-example ++ xgboost4j-spark ++ xgboost4j-flink ++ ++ ++ ++ ++ scala-2.13 ++ ++ 2.13 ++ 2.13.11 ++ ++ ++ ++ ++ ++ gpu ++ ++ ++ use.cuda ++ ON ++ ++ ++ ++ ON ++ ++ ++ xgboost4j-gpu ++ xgboost4j-spark-gpu ++ ++ ++ ++ ++ release ++ ++ xgboost4j ++ xgboost4j-example ++ xgboost4j-spark ++ xgboost4j-flink ++ xgboost4j-gpu ++ xgboost4j-spark-gpu ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-jar-plugin ++ 3.3.0 ++ ++ ++ empty-javadoc-jar ++ package ++ ++ jar ++ ++ ++ javadoc ++ ${basedir}/javadoc ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-release-plugin ++ 3.0.1 ++ ++ true ++ false ++ release ++ deploy ++ ++ ++ ++ org.apache.maven.plugins ++ maven-gpg-plugin ++ 3.1.0 ++ ++ ++ sign-artifacts ++ verify ++ ++ sign ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-source-plugin ++ 3.3.0 ++ ++ ++ attach-sources ++ ++ jar-no-fork ++ ++ ++ ++ ++ ++ org.sonatype.plugins ++ nexus-staging-maven-plugin ++ 1.6.13 ++ true ++ ++ ossrh ++ https://oss.sonatype.org/ ++ false ++ ++ ++ ++ org.apache.maven.plugins ++ maven-surefire-plugin ++ ++ true ++ ++ ++ ++ ++ ++ ++ assembly ++ ++ ++ ++ org.apache.maven.plugins ++ maven-assembly-plugin ++ 3.6.0 ++ ++ ++ jar-with-dependencies ++ ++ true ++ ++ ++ ++ make-assembly ++ package ++ ++ single ++ ++ ++ ++ ++ ++ ++ ++ ++ release-to-github ++ ++ ++ github.repo ++ Temporary Staging Repository ++ file://${project.build.directory}/mvn-repo ++ ++ ++ ++ github ++ ++ ++ xgboost4j ++ xgboost4j-example ++ xgboost4j-spark ++ xgboost4j-flink ++ xgboost4j-gpu ++ xgboost4j-spark-gpu ++ ++ ++ ++ ++ com.github.github ++ site-maven-plugin ++ 0.12 ++ ++ Maven artifacts for ${project.version} ++ true ++ ${project.build.directory}/mvn-repo ++ refs/heads/maven-repo ++ ++ *-with-dependencies.jar ++ ++ xgboost ++ CodingCat ++ true ++ ++ ++ ++ ++ ++ site ++ ++ deploy ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-deploy-plugin ++ 3.1.1 ++ ++ internal.repo::default::file://${project.build.directory}/mvn-repo ++ ++ ++ ++ org.apache.maven.plugins ++ maven-surefire-plugin ++ ++ true ++ ++ ++ ++ ++ ++ ++ release-to-s3 ++ ++ ++ maven-s3-snapshot-repo ++ s3://xgboost-maven-repo/snapshot ++ ++ ++ maven-s3-release-repo ++ s3://xgboost-maven-repo/release ++ ++ ++ ++ ++ maven-s3-snapshot-repo ++ https://s3.amazonaws.com/xgboost-maven-repo/snapshot ++ ++ ++ maven-s3-release-repo ++ https://s3.amazonaws.com/xgboost-maven-repo/release ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-surefire-plugin ++ ++ true ++ ++ ++ ++ ++ ++ ++ ++ ++ ossrh ++ https://oss.sonatype.org/content/repositories/snapshots ++ ++ ++ ++ ++ ++ src/main/resources ++ true ++ ++ ++ ++ ++ ++ ++ org.scalatest ++ scalatest-maven-plugin ++ 2.2.0 ++ ++ ++ test ++ ++ test ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ org.scalastyle ++ scalastyle-maven-plugin ++ 1.0.0 ++ ++ false ++ true ++ true ++ ${basedir}/src/main/scala ++ ${basedir}/src/test/scala ++ scalastyle-config.xml ++ UTF-8 ++ ++ ++ ++ checkstyle ++ validate ++ ++ check ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-site-plugin ++ 3.12.1 ++ ++ ++ org.apache.maven.plugins ++ maven-checkstyle-plugin ++ 3.3.0 ++ ++ checkstyle.xml ++ true ++ ++ ++ ++ checkstyle ++ validate ++ ++ check ++ ++ ++ ++ ++ ++ net.alchim31.maven ++ scala-maven-plugin ++ 4.8.1 ++ ++ ++ compile ++ ++ compile ++ ++ compile ++ ++ ++ test-compile ++ ++ testCompile ++ ++ test-compile ++ ++ ++ process-resources ++ ++ compile ++ ++ ++ ++ scala-compile-first ++ process-resources ++ ++ compile ++ add-source ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-surefire-plugin ++ 3.1.2 ++ ++ false ++ false ++ ++ ++ ++ org.scalatest ++ scalatest-maven-plugin ++ ++ ++ ++ ++ com.github.seahen ++ maven-s3-wagon ++ 1.3.3 ++ ++ ++ ++ ++ ++ ++ maven-project-info-reports-plugin ++ 3.4.5 ++ ++ ++ net.alchim31.maven ++ scala-maven-plugin ++ 4.8.1 ++ ++ ++ -Xms64m ++ -Xmx1024m ++ ++ ++ ++ ++ ++ ++ ++ com.esotericsoftware ++ kryo ++ 5.5.0 ++ ++ ++ commons-logging ++ commons-logging ++ 1.2 ++ ++ ++ org.scalatest ++ scalatest_${scala.binary.version} ++ ${scalatest.version} ++ test ++ ++ ++ org.scalactic ++ scalactic_${scala.binary.version} ++ ${scalatest.version} ++ test ++ ++ ++ +diff --git a/test/data/install_pom/xgboost/xgboost4j/pom.xml b/test/data/install_pom/xgboost/xgboost4j/pom.xml +new file mode 100644 +index 00000000..8d4f2c05 +--- /dev/null ++++ b/test/data/install_pom/xgboost/xgboost4j/pom.xml +@@ -0,0 +1,125 @@ ++ ++ ++ 4.0.0 ++ ++ ml.dmlc ++ xgboost-jvm ++ 2.0.0 ++ ++ xgboost4j ++ xgboost4j_${scala.binary.version} ++ 2.0.0 ++ jar ++ ++ ++ ++ org.scala-lang ++ scala-compiler ++ ${scala.version} ++ ++ ++ org.scala-lang ++ scala-library ++ ${scala.version} ++ ++ ++ org.scala-lang.modules ++ scala-collection-compat_${scala.binary.version} ++ ${scala-collection-compat.version} ++ ++ ++ org.apache.hadoop ++ hadoop-hdfs ++ ${hadoop.version} ++ provided ++ ++ ++ org.apache.hadoop ++ hadoop-common ++ ${hadoop.version} ++ provided ++ ++ ++ junit ++ junit ++ ${junit.version} ++ test ++ ++ ++ org.scalatest ++ scalatest_${scala.binary.version} ++ ${scalatest.version} ++ provided ++ ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-javadoc-plugin ++ 3.5.0 ++ ++ protected ++ true ++ ++ ++ ++ org.apache.maven.plugins ++ maven-assembly-plugin ++ ++ false ++ ++ ++ ++ exec-maven-plugin ++ org.codehaus.mojo ++ 3.1.0 ++ ++ ++ native ++ generate-sources ++ ++ exec ++ ++ ++ python ++ ++ create_jni.py ++ --log-capi-invocation ++ ${log.capi.invocation} ++ ++ ${user.dir} ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-jar-plugin ++ 3.3.0 ++ ++ ++ ++ test-jar ++ ++ ++ ++ ++ ++ org.apache.maven.plugins ++ maven-resources-plugin ++ 3.3.1 ++ ++ ++ dll ++ dylib ++ so ++ ++ ++ ++ ++ ++ +diff --git a/test/install_pom_test.py b/test/install_pom_test.py +index c6acc644..db79c001 100644 +--- a/test/install_pom_test.py ++++ b/test/install_pom_test.py +@@ -131,6 +131,13 @@ class TestInstallPom(unittest.TestCase): + result) + self.assertEqual(report, '', report) + ++ @install_pom(os.path.join('xgboost', 'xgboost4j', 'pom.xml')) ++ def test_artifactid_expansion(self, stdout, stderr, return_value, result): ++ self.assertEqual(return_value, 0, stderr) ++ report = self.check_result(inspect.currentframe().f_code.co_name, ++ result) ++ self.assertEqual(report, '', report) ++ + @install_pom('a_binary_file.pom') + def test_not_pom(self, stdout, stderr, return_value, result): + self.assertNotEqual(return_value, 0) +-- +2.42.0 + diff --git a/0007-Test-that-we-don-t-bomb-on-relativePath.patch b/0007-Test-that-we-don-t-bomb-on-relativePath.patch new file mode 100644 index 0000000..3793b9a --- /dev/null +++ b/0007-Test-that-we-don-t-bomb-on-relativePath.patch @@ -0,0 +1,268 @@ +From 3a32ce8695f891d8051cccd5273758d3cd9ce54c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Wed, 4 Oct 2023 08:32:33 +0200 +Subject: [PATCH 7/7] Test that we don't bomb on + +--- + test/data/install_pom/empty_relpath.pom | 182 ++++++++++++++++++ + .../install_pom/test_empty_relpath-want.xml | 39 ++++ + test/install_pom_test.py | 7 + + 3 files changed, 228 insertions(+) + create mode 100644 test/data/install_pom/empty_relpath.pom + create mode 100644 test/data/install_pom/test_empty_relpath-want.xml + +diff --git a/test/data/install_pom/empty_relpath.pom b/test/data/install_pom/empty_relpath.pom +new file mode 100644 +index 00000000..785b9710 +--- /dev/null ++++ b/test/data/install_pom/empty_relpath.pom +@@ -0,0 +1,182 @@ ++ ++ ++ ++ 4.0.0 ++ ++ ++ org.apache.maven.shared ++ maven-shared-components ++ 39 ++ ++ ++ ++ maven-filtering ++ 3.3.1 ++ ++ Apache Maven Filtering ++ A component to assist in filtering of resource files with properties from a Maven project. ++ ++ ++ ++ Graham Leggett ++ ++ ++ ++ ++ scm:git:https://gitbox.apache.org/repos/asf/maven-filtering.git ++ scm:git:https://gitbox.apache.org/repos/asf/maven-filtering.git ++ maven-filtering-3.3.1 ++ https://github.com/apache/maven-filtering/tree/${project.scm.tag} ++ ++ ++ JIRA ++ https://issues.apache.org/jira/issues/?jql=project%20%3D%20MSHARED%20AND%20component%20%3D%20maven-filtering ++ ++ ++ Jenkins ++ https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-filtering/ ++ ++ ++ ++ apache.website ++ scm:svn:https://svn.apache.org/repos/asf/maven/website/components/${maven.site.path} ++ ++ ++ ++ ++ 8 ++ 3.2.5 ++ 1.7.36 ++ 0.0.7 ++ 2023-03-21T10:53:39Z ++ ++ ++ ++ ++ javax.inject ++ javax.inject ++ 1 ++ ++ ++ org.slf4j ++ slf4j-api ++ ${slf4jVersion} ++ ++ ++ org.sonatype.plexus ++ plexus-build-api ++ ${plexusBuildApiVersion} ++ ++ ++ org.apache.maven ++ maven-core ++ ${mavenVersion} ++ provided ++ ++ ++ org.apache.maven ++ maven-model ++ ${mavenVersion} ++ provided ++ ++ ++ org.apache.maven ++ maven-settings ++ ${mavenVersion} ++ provided ++ ++ ++ org.codehaus.plexus ++ plexus-utils ++ 3.5.1 ++ ++ ++ org.codehaus.plexus ++ plexus-interpolation ++ 1.26 ++ ++ ++ commons-io ++ commons-io ++ 2.11.0 ++ ++ ++ ++ org.mockito ++ mockito-core ++ 4.7.0 ++ test ++ ++ ++ junit ++ junit ++ 4.13.2 ++ test ++ ++ ++ org.hamcrest ++ hamcrest-core ++ 2.2 ++ test ++ ++ ++ org.slf4j ++ slf4j-simple ++ ${slf4jVersion} ++ test ++ ++ ++ org.sonatype.plexus ++ plexus-build-api ++ ${plexusBuildApiVersion} ++ tests ++ test ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.plexus ++ test ++ ++ ++ org.eclipse.sisu ++ org.eclipse.sisu.inject ++ test ++ ++ ++ ++ ++ ++ ++ ++ org.apache.rat ++ apache-rat-plugin ++ ++ ++ src/test/units-files/** ++ ++ ++ ++ ++ org.eclipse.sisu ++ sisu-maven-plugin ++ ++ ++ ++ +diff --git a/test/data/install_pom/test_empty_relpath-want.xml b/test/data/install_pom/test_empty_relpath-want.xml +new file mode 100644 +index 00000000..03bd1115 +--- /dev/null ++++ b/test/data/install_pom/test_empty_relpath-want.xml +@@ -0,0 +1,39 @@ ++ ++ ++ 4.0.0 ++ org.apache.maven.shared ++ maven-filtering ++ 3.3.1 ++ ++ ++ javax.inject ++ javax.inject ++ 1 ++ ++ ++ org.slf4j ++ slf4j-api ++ 1.7.36 ++ ++ ++ org.sonatype.plexus ++ plexus-build-api ++ 0.0.7 ++ ++ ++ org.codehaus.plexus ++ plexus-utils ++ 3.5.1 ++ ++ ++ org.codehaus.plexus ++ plexus-interpolation ++ 1.26 ++ ++ ++ commons-io ++ commons-io ++ 2.11.0 ++ ++ ++ +\ No newline at end of file +diff --git a/test/install_pom_test.py b/test/install_pom_test.py +index db79c001..a39f3aa4 100644 +--- a/test/install_pom_test.py ++++ b/test/install_pom_test.py +@@ -103,6 +103,13 @@ class TestInstallPom(unittest.TestCase): + result) + self.assertEqual(report, '', report) + ++ @install_pom('empty_relpath.pom') ++ def test_empty_relpath(self, stdout, stderr, return_value, result): ++ self.assertEqual(return_value, 0, stderr) ++ report = self.check_result(inspect.currentframe().f_code.co_name, ++ result) ++ self.assertEqual(report, '', report) ++ + @install_pom(os.path.join('xmvn', 'xmvn-tools', 'xmvn-install', 'pom.xml')) + def test_parent_chain(self, stdout, stderr, return_value, result): + self.assertEqual(return_value, 0, stderr) +-- +2.42.0 + diff --git a/0008-Reproducible-builds-constant-timestamp-for-pom.prope.patch b/0008-Reproducible-builds-constant-timestamp-for-pom.prope.patch new file mode 100644 index 0000000..83d5ac1 --- /dev/null +++ b/0008-Reproducible-builds-constant-timestamp-for-pom.prope.patch @@ -0,0 +1,39 @@ +From 2ffdd71d859af3254732e30013bfddb2497c8a41 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Fridrich=20=C5=A0trba?= +Date: Tue, 16 Jul 2024 06:56:39 +0200 +Subject: [PATCH 8/8] Reproducible builds: constant timestamp for + pom.properties + +--- + java-utils/maven_depmap.py | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/java-utils/maven_depmap.py b/java-utils/maven_depmap.py +index 4bfb877d..693cf5e3 100644 +--- a/java-utils/maven_depmap.py ++++ b/java-utils/maven_depmap.py +@@ -43,7 +43,7 @@ import sys + + from os.path import basename, dirname + import zipfile +-from time import gmtime, strftime ++import time + from copy import deepcopy + + from javapackages.maven.pom import POM +@@ -172,7 +172,11 @@ def append_if_missing(archive_name, file_name, file_contents): + archive = zipfile.ZipFile(archive_name, 'a') + try: + if file_name not in archive.namelist(): +- archive.writestr(file_name, file_contents) ++ file_time = min(4354819199, ++ max(315532800, ++ int(os.environ.get('SOURCE_DATE_EPOCH', time.time())))) ++ file_zipinfo = zipfile.ZipInfo(file_name, date_time=time.gmtime(file_time)) ++ archive.writestr(file_zipinfo, file_contents) + finally: + archive.close() + +-- +2.45.2 + diff --git a/6.2.0.tar.gz b/6.2.0.tar.gz new file mode 100644 index 0000000..c2537e4 --- /dev/null +++ b/6.2.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9359a584df4034c14b7d9fd35e610caed8b7b82d33738a768f571c11f8a0e35e +size 185818 diff --git a/6.3.1.tar.gz b/6.3.1.tar.gz new file mode 100644 index 0000000..e172957 --- /dev/null +++ b/6.3.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c0083d0b436e542d440691244358483d37a2fa80e2801ec1a383a5406e28c170 +size 190957 diff --git a/6.3.2.tar.gz b/6.3.2.tar.gz new file mode 100644 index 0000000..e15805c --- /dev/null +++ b/6.3.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:08c5663e1f69c3d26f105dff181837b2be306ffd1ed1653fdbf3a63b60ab6274 +size 190905 diff --git a/6.3.4.tar.gz b/6.3.4.tar.gz new file mode 100644 index 0000000..8ec8076 --- /dev/null +++ b/6.3.4.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a27cd4b196f8993e64f134d70cfa4d9dfff042e4ed2efd2097bfc35f562ee89 +size 190937 diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..75e8197 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + extras + diff --git a/do-not-require-which.patch b/do-not-require-which.patch new file mode 100644 index 0000000..8a2cdbf --- /dev/null +++ b/do-not-require-which.patch @@ -0,0 +1,47 @@ +--- javapackages-6.3.2/javapackages-tools.spec 2024-10-08 08:19:44.208034468 +0200 ++++ javapackages-6.3.2/javapackages-tools.spec 2024-10-08 08:21:27.532053244 +0200 +@@ -22,7 +22,6 @@ + Source21: toolchains-openjdk21.xml + + BuildRequires: coreutils +-BuildRequires: which + BuildRequires: make + BuildRequires: rubygem-asciidoctor + BuildRequires: %{python_prefix}-devel +@@ -33,7 +32,6 @@ + Requires: javapackages-filesystem = %{version}-%{release} + Requires: coreutils + Requires: findutils +-Requires: which + + Provides: jpackage-utils = %{version}-%{release} + +--- javapackages-6.3.2/java-utils/java-functions 2024-10-08 08:19:44.211367825 +0200 ++++ javapackages-6.3.2/java-utils/java-functions 2024-10-08 08:21:27.535386599 +0200 +@@ -169,7 +169,7 @@ + done + fi + +- JAVACMD=$(which java 2>/dev/null || :) ++ JAVACMD=$(type -p java 2>/dev/null || :) + if [ -x "${JAVACMD}" ]; then + _log "Using JAVACMD from PATH: $JAVACMD" + if [ -n "${JAVACMD_OPTS}" ]; then +@@ -179,6 +179,8 @@ + JAVACMD="@{javadir}-utils/java-wrapper" + fi + return 0 ++ else ++ unset JAVACMD + fi + + _err "Failed to set JAVACMD" +@@ -315,7 +317,7 @@ + { + local IFS=: + local artifact="${1}" +- local cmd=$(which xmvn-resolve 2>/dev/null || :) ++ local cmd=$(type -p xmvn-resolve 2>/dev/null || :) + + # If artifact contains semicolon then assume it specifies Maven + # artifact coordinates. diff --git a/fix-broken-commands.patch b/fix-broken-commands.patch new file mode 100644 index 0000000..af30a1f --- /dev/null +++ b/fix-broken-commands.patch @@ -0,0 +1,18 @@ +--- a/macros.d/macros.jpackage ++++ b/macros.d/macros.jpackage +@@ -10,11 +10,11 @@ + #============================================================================== + # ---- default Java commands + +-%ant %{?jpb_env} JAVA_HOME=%{java_home} ant +-%jar %{java_home}/bin/jar ++%ant %{?jpb_env} ant ++%jar jar + %java %(. @{javadir}-utils/java-functions; set_javacmd; echo $JAVACMD) +-%javac %{java_home}/bin/javac +-%javadoc %{java_home}/bin/javadoc ++%javac javac ++%javadoc javadoc + + + # diff --git a/javapackages-tools.changes b/javapackages-tools.changes new file mode 100644 index 0000000..1ee28d8 --- /dev/null +++ b/javapackages-tools.changes @@ -0,0 +1,625 @@ +------------------------------------------------------------------- +Fri Oct 11 10:56:13 UTC 2024 - Fridrich Strba + +- Upgrade to upstream version 6.3.4 + * Changes: + + A corner case when which is not present + + Remove dependency on which + + Simplify after the which -> type -p change + + jpackage_script: Remove pointless assignment when %java_home + is unset + + Don't require %java_home for %java etc. + + Don't export JAVA_HOME +- Removed patches: + * do-not-require-which.patch + * fix-broken-commands.patch + * remove-pointless-assignment.patch + + integrated upstream +- Modified patch: + * python-optional.patch + + account for changed context + +------------------------------------------------------------------- +Wed Oct 9 07:27:42 UTC 2024 - Andreas Schwab + +- remove-pointless-assignment.patch: Remove pointless assignment if + %java_home is unset + +------------------------------------------------------------------- +Tue Oct 8 22:48:45 UTC 2024 - Fridrich Strba + +- Added patch: + * fix-broken-commands.patch + + fix commands broken after recent removal of the default + %%{java_home} macro + +------------------------------------------------------------------- +Mon Oct 7 17:38:56 UTC 2024 - Fridrich Strba + +- Added patch: + * do-not-require-which.patch + + do not fail launching scripts if which is not installed + (bsc#1231347) + +------------------------------------------------------------------- +Fri Oct 4 17:08:37 UTC 2024 - Fridrich Strba + +- Upgrade to upstream version 6.3.2 + * Changes + + spec: Update Obsoletes versions + + Search for JAVACMD under JAVA_HOME only if it's set + + Obsolete set_jvm and set_jvm_dirs functions + + Drop unneeded _set_java_home function + + Remove JAVA_HOME check from check_java_env function + + Bump codecov/codecov-action from 2.0.2 to 4.6.0 + + Bump actions/setup-python from 4 to 5 + + Bump actions/checkout from 2 to 4 + + Add custom dependabot config + + Remove the test for JAVA_HOME and error if it is not set + + java-functions: Remove unneeded local variables + + Fix build status shield +- Removed patch: + * 0001-Double-quote-to-avoid-substitution-during-build.patch + + Fixed differently in this version + +------------------------------------------------------------------- +Wed Oct 2 17:27:12 UTC 2024 - Fridrich Strba + +- Upgrade to upstream version 6.3.1 + * Changes: + + Allow missing components with abs2rel + + Fix tests with python 3.4 + + Sync spec file from Fedora + + Drop default JRE/JDK + + Fix the use of java-functions in scripts + + Update RPM spec file + + Reproducible builds: constant timestamp for pom.properties + + Test that we don't bomb on + + Test variable expansion in artifactId + + Interpolate properties also in the current artifact + + Rewrite abs2rel in shell + + Use asciidoctor instead of asciidoc + + Fix incompatibility with RPM 4.20 + + Don't define %topdir macro + + coverage: use usercustomize + + Reproducible builds: keep order of aliases and dependencies + + Reproducible exclusions order in maven metadata + + Do not bomb on construct + + Make maven_depmap order of aliases reproducible +- Removed patches: + * 0001-Make-maven_depmap-order-of-aliases-reproducible.patch + * 0002-Do-not-bomb-on-relativePath-construct.patch + * 0003-Reproducible-exclusions-order-in-maven-metadata.patch + * 0004-Reproducible-builds-keep-order-of-aliases-and-depend.patch + * 0005-Interpolate-properties-also-in-the-current-artifact.patch + * 0006-Test-variable-expansion-in-artifactId.patch + * 0007-Test-that-we-don-t-bomb-on-relativePath.patch + * 0008-Reproducible-builds-constant-timestamp-for-pom.prope.patch + + Integrated in this version +- Added patch: + * 0001-Double-quote-to-avoid-substitution-during-build.patch + + Double-quote a macro in macros.jpackages to avoid value + substitution during the build + +------------------------------------------------------------------- +Thu Jul 18 12:15:00 UTC 2024 - Fridrich Strba + +- Added patch: + * 0008-Reproducible-builds-constant-timestamp-for-pom.prope.patch + + use reproducible timestamp when post-processing jar files and + adding there the pom.properties file. + +------------------------------------------------------------------- +Wed Oct 4 07:18:58 UTC 2023 - Fridrich Strba + +- Added patches: + * 0005-Interpolate-properties-also-in-the-current-artifact.patch + + interpolate variables also in current artifactId, groupId and + version + * 0006-Test-variable-expansion-in-artifactId.patch + + test previous changes + * 0007-Test-that-we-don-t-bomb-on-relativePath.patch + + test gracious handling of empty in parent + reference of a pom file + +------------------------------------------------------------------- +Wed Sep 13 13:52:00 UTC 2023 - Fridrich Strba + +- Added patch: + * 0004-Reproducible-builds-keep-order-of-aliases-and-depend.patch + + make the aliases and dependencies lists so that the order is + kept + +------------------------------------------------------------------- +Tue Sep 12 09:54:08 UTC 2023 - Fridrich Strba + +- Added patch: + * 0003-Reproducible-exclusions-order-in-maven-metadata.patch + + sort exclusions in maven metadata + +------------------------------------------------------------------- +Tue Sep 5 11:40:09 UTC 2023 - Fridrich Strba + +- Modified patch: + * 0001-Make-the-alias-generation-reproducible.patch -> + 0001-Make-maven_depmap-order-of-aliases-reproducible.patch + + replace by the version of patch integrated by upstream +- Added patch: + * 0002-Do-not-bomb-on-relativePath-construct.patch + + integrated patch fixing parent recursion with empty + element + +------------------------------------------------------------------- +Sat Sep 2 23:07:32 UTC 2023 - Fridrich Strba + +- Upgrade to upstream version 6.2.0 + * Întegrate our changes from javapackages-6.1.0-maven-depmap.patch +- Removed patch: + * javapackages-6.1.0-maven-depmap.patch + + upstreamed +- Added patch: + * 0001-Make-the-alias-generation-reproducible.patch + + separate patch for our reproducible changes that was not + part of the integrated pull request + +------------------------------------------------------------------- +Mon Aug 21 14:49:36 UTC 2023 - Fridrich Strba + +- Modified patch: + * javapackages-6.1.0-maven-depmap.patch + + try to make the list of aliases more reproducible + +------------------------------------------------------------------- +Sun May 28 19:15:09 UTC 2023 - Fridrich Strba + +- Enable the tests also for older distributions +- Require python3-xml (python-xml for distributions that use + versioned modules), since module xml needed by some scripts. + +------------------------------------------------------------------- +Wed Nov 9 08:50:08 UTC 2022 - Fridrich Strba + +- Reflect the removal of gradle from repositories + +------------------------------------------------------------------- +Thu Jul 7 06:50:09 UTC 2022 - Fridrich Strba + +- Update to upstream version 6.1.0 + * Release version 6.1.0 + * Introduce common and extra subpackages + * Update documentation + * Add lua interpreter to check and GH actions + * Remove license headers from wrapper scripts + * Make scripts compatible with rpmlua + * Add more tests, fix behaviour + * Implement separate simple class name matching + * Minor changes + * Modularize Lua scripts + * Add Lua scripts for removing annotations + * Update build status badge in README.md + * Migrate CI from TravisCI to GitHub Actions + * Fix running tests without coverage + * Update ivy-local-classpath + * Release version 6.0.0 + * Fix extra XML handling of pom_change_dep + * Add reproducer for #82 + * Respect %jpb_env RPM macro + * Add bootstrap metadata to XMvn resolver config + * Delete run_tests.py + * Replace nose by pytest + * [install] Make glob pattern work with Python 3.10 + * Adding ppc64le architecture support on travis-ci + * Drop deprecated add_maven_depmap macro + * Drop SCL support + * Fix provides matching + * Fix builddep snippet generation + * [test] Add test for builddep snippet generation + * Add location of java binary used by the java-1.8.0-openjdk + (JRE) package so that setting JAVA_HOME will work correctly + * Use XMvn Javadoc MOJO by default + * Remove explicit import of Python 3 features + * Remove dependency on Six compatibility library + * Fix invalid in XMvn configuration + * [test] Don't try to kill PID 1 during tests + * [travis] Drop Python 2 from test matrix + * Add separate subpackage with RPM generators + * mvn_build: replace inline shell scriptlet with native python + code + * [test] Don't use networking during tests + * Add apache-rat-plugin to skippedPlugins + * Skip execution of various Maven plugins + * Remove Python 3.5 from .travis.yml + * Make generated javadoc package noarch +- Added patch: + * javapackages-6.1.0-maven-depmap.patch + + Bulk patch correspoding to our pull request + https://github.com/fedora-java/javapackages/pull/92 which + brings back some of the removed tools that we depend on + heavily +- Modified patches: + * python-optional.patch + * suse-use-libdir.patch + + Rediff to changed context +- Removed patches: + * 0001-Let-maven_depmap.py-generate-metadata-with-dependenc.patch + * 0002-Do-not-try-to-construct-POM-from-maven-coordinate-st.patch + * 0003-Fix-tests-after-the-recent-maven_depmap.py-changes.patch + + Already part of the above-mentioned bulk patch + * 0004-Remove-dependency-on-Six-compatibility-library.patch + + Upstream patch already integrated in the 6.x code-line + +------------------------------------------------------------------- +Sun Jun 5 20:04:33 UTC 2022 - Fridrich Strba + +- Fix wrong conditioning of the python-six require. + +------------------------------------------------------------------- +Fri Jun 3 10:11:21 UTC 2022 - Fridrich Strba + +- Added patch: + * 0004-Remove-dependency-on-Six-compatibility-library.patch + + remove dependency on python-six for newer distributions + +------------------------------------------------------------------- +Fri Apr 29 10:21:41 UTC 2022 - Fridrich Strba + +- Added patches: + * 0001-Let-maven_depmap.py-generate-metadata-with-dependenc.patch + * 0002-Do-not-try-to-construct-POM-from-maven-coordinate-st.patch + * 0003-Fix-tests-after-the-recent-maven_depmap.py-changes.patch + + Let maven_depmap.py generate metadata with dependencies under + certain circumstances + +------------------------------------------------------------------- +Thu Dec 30 11:49:00 UTC 2021 - David Anes + +- Fix typo in suse-use-libdir.patch: + %{_libdir}/jvm-commmon -> %{_libdir}/jvm-common + +------------------------------------------------------------------- +Tue Jul 27 13:39:39 UTC 2021 - Fridrich Strba + +- Do not run tests on SLE12, since python3-test is not accessible + +------------------------------------------------------------------- +Thu Mar 25 16:27:58 UTC 2021 - Ben Greiner + +- Can't assume non-existence of python38 macros in Leap. + gh#openSUSE/python-rpm-macros#107 + Test for suse_version instead. Only Tumbleweed has and needs the + python_subpackage_only support. + +------------------------------------------------------------------- +Sat Nov 28 09:37:25 UTC 2020 - Benjamin Greiner + +- Fix typo in spec file sitearch -> sitelib + +------------------------------------------------------------------- +Sun Nov 22 00:23:21 UTC 2020 - Benjamin Greiner + +- Fix the python subpackage generation + gh#openSUSE/python-rpm-macros#79 + +------------------------------------------------------------------- +Sat Nov 21 13:05:38 UTC 2020 - Benjamin Greiner + +- Support python subpackages for each flavor + gh#openSUSE/python-rpm-macros#66 +- Replace old nose with pytest gh#fedora-java/javapackages#86 + +------------------------------------------------------------------- +Mon Sep 7 12:50:32 UTC 2020 - Dominique Leuenberger + +- when building extra flavor, BuildRequire javapackages-filesystem: + /etc/java is being cleaned out of the filesystems package. + +------------------------------------------------------------------- +Thu Jul 16 07:23:37 UTC 2020 - Fridrich Strba + +- Upgrade to version 5.3.1 +- Modified patch: + * suse-use-libdir.patch + + rediff to changed context +- Define _rpmmacrodir for distributions that don't have it + +------------------------------------------------------------------- +Tue May 5 12:32:03 UTC 2020 - Dominique Leuenberger + +- Use %{_rpmmacrodir} instead of %{_libexecdir}/rpm/macros.d: this + just happens to overlap in some distros. + +------------------------------------------------------------------- +Sat Apr 6 07:15:46 UTC 2019 - Fridrich Strba + +- Rename gradle-local and ivy-local to javapackages-gradle and + javapackages-ivy and let them depend only on javapackages-tools + and javapackages-local. These packages only install files + produced during the javapackages-tools build. The dependencies + will be pulled by gradle-local, ivy-local and maven-local + meta-packages built in a separate spec file. + +------------------------------------------------------------------- +Thu Apr 4 08:01:41 UTC 2019 - Fridrich Strba + +- Split maven-local meta-package out of javapackages-tools spec + file + +------------------------------------------------------------------- +Wed Apr 3 09:42:32 UTC 2019 - Fridrich Strba + +- Make the ivy-local and maven-local sub-packages depend on the + right stuff, so that they actually can be used for building + +------------------------------------------------------------------- +Mon Mar 4 17:34:49 UTC 2019 - Fridrich Strba + +- Provide both com.sun:tools and sun.jdk:jconsole that are part of + standard OpenJDK installation. These provides cannot be generated + from metadata due to build sequence. + +------------------------------------------------------------------- +Tue Nov 27 18:36:57 UTC 2018 - Fridrich Strba + +- Modified patch: + * suse-use-libdir.patch + + fix directories for eclipse.conf too + +------------------------------------------------------------------- +Sun Nov 11 15:21:24 UTC 2018 - Fridrich Strba + +- Make the javapackages-local package depend on java-devel. It is + used for package building and this avoids each package to require + java-devel itself. + +------------------------------------------------------------------- +Mon Nov 5 09:34:51 UTC 2018 - Fridrich Strba + +- Replace the occurences of /usr/lib by libdir in configuration + files too + +------------------------------------------------------------------- +Wed Oct 24 08:19:24 UTC 2018 - Fridrich Strba + +- Update to version 5.3.0 +- Modified patch: + * suse-no-epoch.patch + + rediff to changed code +- Build the :extras flavour as noarch + +------------------------------------------------------------------- +Wed Oct 24 07:53:45 UTC 2018 - Fridrich Strba + +- Added patch: + * suse-no-epoch.patch + + we did not bump epoch of OpenJDK packages in SUSE + + fix a potential generation of unresolvable requires + + adapt the tests to not expect the epoch + +------------------------------------------------------------------- +Tue Jul 24 14:09:47 UTC 2018 - tchvatal@suse.com + +- Switch to multibuild layout + +------------------------------------------------------------------- +Tue Jul 24 13:45:21 UTC 2018 - tchvatal@suse.com + +- Update to version 5.2.0+git20180620.70fa2258: + * Rename the async kwarg in call_script to wait (reverses the logic) + * Actually bump version to 5.3.0 snapshot + * Bump version in VERSION file + * [man] s/Pacakge/Package/g + * Fix typos in README + * Fix configure-base.sh after filesystem macro split + * Split filesystem macros to separate macro file + * Introduce javapackages-filesystem package + * [java-functions] extend ABRT Java agent options + * change abrt-java-connector upstream URL + * Remove resolverSettings/prefixes from XMvn config + * Add macros to allow passing arbitrary options to XMvn + * [spec] Bump package version to 5.1.0 + * Allow specifying custom repo when calling xmvn-install +- Refresh patches: + * suse-use-libdir.patch + * python-optional.patch + +------------------------------------------------------------------- +Mon Jan 22 09:31:20 UTC 2018 - tchvatal@suse.com + +- Update to version 5.0.0+git20180104.9367c8f6: + * [java-functions] Avoid colons in jar names + * Workaround for SCL enable scripts not working with -e + * Second argument to pom_xpath_inject is mandatory + * [mvn_artifact] Provide more helpful error messages + * Fix traceback on corrupt zipfile + * [test] Add reproducer for rhbz#1481005 + * [spec] Fix default JRE path + * [readme] Fix typo + * Add initial content to README.md (#21) + * Decouple JAVA_HOME setting from java command alternatives +- Rebase patches: + * python-optional.patch + * suse-use-libdir.patch +- Drop merged patch fix-abs2rel.patch + +------------------------------------------------------------------- +Wed May 24 13:39:01 UTC 2017 - tchvatal@suse.com + +- Fix typo in suse-use-libdir.patch + +------------------------------------------------------------------- +Fri May 19 10:26:41 UTC 2017 - tchvatal@suse.com + +- Fix url to correct one https://github.com/fedora-java/javapackages + +------------------------------------------------------------------- +Thu May 18 20:11:39 UTC 2017 - tchvatal@suse.com + +- Split to python and non-python edition for smaller depgraph +- Add patch python-optional.patch +- Fix abs2rel shebang: + * fix-abs2rel.patch +- Fix Requires on subpackages to point to javapackages-tools proper + +------------------------------------------------------------------- +Thu May 18 19:40:26 UTC 2017 - tchvatal@suse.com + +- Update to version 4.7.0+git20170331.ef4057e7: + * Reimplement abs2rel in Python + * Don't expand {scl} in macro definitions + * Install expanded rpmfc attr files + * [spec] Avoid file conflicts between in SCL + * Fix macros.d directory ownership + * Make %ant macro enable SCL when needed + * [spec] Fix file conflicts between SCL and non-SCL packages + * Fix ownership of ivyxmldir + * [test] Force locale for python processes + * Don't include timestamp in generated pom.properties +- Remove patch merged by upstream: + * create_valid_xml_comments.patch +- Remove patch suse-macros-install-location.patch + * We switch to /usr/lib/ location for macros +- Try to reduce some dependencies bsc#1036025 +- Refresh patch suse-use-libdir.patch + +------------------------------------------------------------------- +Fri Feb 12 15:21:42 UTC 2016 - toddrme2178@gmail.com + +- Add create_valid_xml_comments.patch + python-lxml 3.5.0 introduces validation for xml comments, and + one of the comments created in this package were not valid. + This patch fixes the problem. It backported from upstream and + should be in the next release. + https://github.com/mizdebsk/javapackages/commit/84211c0ee761e93ee507f5d37e9fc80ec377e89d + +------------------------------------------------------------------- +Mon Feb 8 20:23:42 UTC 2016 - tchvatal@suse.com + +- Version update to 4.6.0: + * various bugfixes for maven tooling + * introduction to gradle-local package for gradle packaging + +------------------------------------------------------------------- +Wed Apr 1 08:40:57 UTC 2015 - tchvatal@suse.com + +- Drop dependency over source-highlight as it causes build cycle + +------------------------------------------------------------------- +Tue Mar 31 10:28:12 UTC 2015 - tchvatal@suse.com + +- Try to break buildcycle detected on Factory + +------------------------------------------------------------------- +Wed Mar 18 10:44:29 UTC 2015 - tchvatal@suse.com + +- Fix build on SLE11 + +------------------------------------------------------------------- +Tue Mar 17 14:39:51 UTC 2015 - tchvatal@suse.com + +- Use python-devel instead of pkgconfig to build on sle11 + +------------------------------------------------------------------- +Tue Mar 17 14:02:21 UTC 2015 - tchvatal@suse.com + +- Add python-javapackages as requirement for main package + +------------------------------------------------------------------- +Tue Mar 17 13:35:17 UTC 2015 - tchvatal@suse.com + +- Update requires on python packages to properly have all the needed + dependencies on runtime + +------------------------------------------------------------------- +Tue Mar 17 09:34:37 UTC 2015 - tchvatal@suse.com + +- Install macros to /etc/rpm as we do in SUSE: + * suse-macros-install-location.patch +- Cleanup with spec-cleaner + +------------------------------------------------------------------- +Fri Jan 23 20:59:04 UTC 2015 - mailaender@opensuse.org + +- Drop patches + * depgen.patch + * javapackages-2.0.1-fix-bashisms.patch + * javapackages-2.0.1-java9.patch + * maven_depmap-no-attribute-exit.patch +- Remove hacky workarounds +- Fix rpmlint errors +- Enable maven-local +- Avoid unsatisfiable dependencies +- Enable unit tests +- Update to version 4.4.0 + +------------------------------------------------------------------- +Mon Dec 8 13:02:05 UTC 2014 - fstrba@suse.com + +- Added patch: + * javapackages-2.0.1-java9.patch: create directories for java, + so that ant build works +- Add virtual provide jpackage-utils-java9 to be able to + distinguish the presence of java9 compatibility + +------------------------------------------------------------------- +Thu Oct 16 11:12:00 UTC 2014 - Led + +- fix bashisms +- Added patches: + * javapackages-2.0.1-fix-bashisms.patch + +------------------------------------------------------------------- +Mon Mar 10 13:52:26 UTC 2014 - darin@darins.net + +- maven_depmap-no-attribute-exit.patch: SLES patch for ZipFile + having no attribute '__exit__' which was causing ecj build + failures + +------------------------------------------------------------------- +Thu Mar 6 13:54:16 UTC 2014 - darin@darins.net + +- set correct libxslt package when building for SLES + +------------------------------------------------------------------- +Fri Nov 8 17:06:25 UTC 2013 - aj@ajaissle.de + +- BuildRequires xz +- Remove '/etc/java' and '/usr/share/java' from file list (both owned by system) +- Url changed + +------------------------------------------------------------------- +Wed Sep 11 15:50:05 UTC 2013 - schwab@suse.de + +- depgen.patch: drain stdin in dependency generator + +------------------------------------------------------------------- +Wed Aug 21 07:56:17 UTC 2013 - mvyskocil@suse.com + +- update to 2.0.1 + * Fix creation of artifact aliases, resolves: rhbz#988462 +- Update to upstream version 2.0.0 + * Merge functionality of jpackage-utils + * Provide and obsolete jpackage-utils + * %%add_maven_depmap macro now injects pom.properties to every JAR + * %%add_to_maven_depmap and %%update_maven_depmap macros were removed + * maven2jpp-mapdeps.xsl template has been removed + * Macros related to installation of icons and desktop files were removed + * 14 new manual pages were added + * Documentation specific to JPackage was removed + * Add BuildRequires: asciidoc, xmlto + * Add lua to Requires + * Add python-xml to Requires for xml.dom.minidom + +------------------------------------------------------------------- +Fri Jul 12 09:35:17 UTC 2013 - mvyskocil@suse.com + +- make maven-local package build optional to not add unsatisfied + dependencies to Factory + +------------------------------------------------------------------- +Tue Jul 2 14:06:39 UTC 2013 - mvyskocil@suse.com + +- Create javapackages-tools 0.15.0 from fc20 + * Added depmap for tools.jar + * Added support for versioned autorequires + * New plugin metadata from Maven Central + * move to independent package from jpackage-utils diff --git a/javapackages-tools.spec b/javapackages-tools.spec new file mode 100644 index 0000000..0b23878 --- /dev/null +++ b/javapackages-tools.spec @@ -0,0 +1,246 @@ +# +# spec file for package javapackages-tools +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{!?_rpmmacrodir:%global _rpmmacrodir %{_rpmconfigdir}/macros.d} +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "extras" +%bcond_without python +%else +%bcond_with python +%endif +%if %{with python} +%{?!python_module:%define python_module() python3-%{**}} +%define skip_python2 1 +Name: javapackages-tools-%{flavor} +%else +Name: javapackages-tools +%endif +Version: 6.3.4 +Release: 0 +Summary: Macros and scripts for Java packaging support +License: BSD-3-Clause +Group: Development/Languages/Java +URL: https://github.com/fedora-java/javapackages +Source0: https://github.com/fedora-java/javapackages/archive/%{version}.tar.gz +#PATCH-FIX-SUSE: SUSE does store jvm related things in libdir - ie /usr/lib64 on 64bits +# where Fedora use jpackage convention - usr/lib everywhere +Patch0: suse-use-libdir.patch +#PATCH-FIX-SUSE: allow building without python to reduce depgraph +Patch1: python-optional.patch +#PATCH-FIX-SUSE: SUSE did not bump epoch of openjdk packages, whereas Fedora did +# Avoid generating unresolvable requires +Patch2: suse-no-epoch.patch + +BuildRequires: fdupes +BuildRequires: perl +BuildRequires: rpm +BuildRequires: xmlto +BuildRequires: rubygem(asciidoctor) +%if %{with python} +BuildRequires: javapackages-filesystem +%else +Requires: javapackages-filesystem = %{version}-%{release} +%endif +# Used on too many places +Provides: jpackage-utils = %{version} +Obsoletes: %{name}-doc +Obsoletes: jpackage-utils < %{version} +%if %{with python} +BuildRequires: %{python_module lxml} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module setuptools} +BuildRequires: python-rpm-macros +BuildArch: noarch +%if 0%{?suse_version} >= 1550 +# TW: generate subpackages for every python3 flavor +%define python_subpackage_only 1 +%python_subpackages +%else +%define python_sitelib %python3_sitelib +%define python_files() -n python3-%{**} +%endif +%endif + +%description +This package provides macros and scripts to support Java packaging. + +%package -n javapackages-filesystem +Summary: Java packages filesystem layout +Group: Development/Languages/Java + +%description -n javapackages-filesystem +This package provides some basic directories into which Java packages +install their content. + +%if %{with python} +%package -n javapackages-ivy +Summary: Local mode for Apache Ivy (files) +Group: Development/Languages/Java +Requires: javapackages-local = %{version} +Requires: javapackages-tools = %{version} + +%description -n javapackages-ivy +This package contains files needed by local mode fow Apache Ivy, which +allows artifact resolution using XMvn resolver. + +%if 0%{?python_subpackage_only} +%package -n python-javapackages +Summary: Module for handling various files for Java packaging +Group: Development/Languages/Java +Requires: python-lxml +Requires: python-xml + +%description -n python-javapackages +Module for handling, querying and manipulating of various files for Java +packaging in Linux distributions + +%else + +%package -n python3-javapackages +Summary: Module for handling various files for Java packaging +Group: Development/Languages/Java +Requires: python3-lxml +Requires: python3-xml +Obsoletes: python-javapackages < %{version}-%{release} +Provides: python-javapackages = %{version}-%{release} + +%description -n python3-javapackages +Module for handling, querying and manipulating of various files for Java +packaging in Linux distributions +%endif + +%package -n javapackages-local +Summary: Non-essential macros and scripts for Java packaging support +Group: Development/Languages/Java +Requires: java-devel +Requires: javapackages-tools = %{version} +Requires: python3-javapackages = %{version} + +%description -n javapackages-local +This package provides non-essential macros and scripts to support Java packaging. +%endif + +%prep +%setup -q -n javapackages-%{version} +%autopatch -p1 + +# The usr/lib is hardcoded in configuration files too +new_dir=$(echo %{_libdir} | sed 's#/##') +perl -pi -e "s#usr/lib#${new_dir}#g" configs/*.xml + +%build +%configure \ +%if %{with python} + --pyinterpreter=%{_bindir}/python3 +%else + --pyinterpreter=%{nil} +%endif +./build +%if %{with python} +pushd python +%python_build +popd +%endif + +%install +./install +sed -e 's/.[17]$/&.gz/' -e 's/.py$/&*/' -i files-* + +%if %{with python} +pushd python +%python_install +popd +# kill all the common files +files=" +%{_bindir}/build-classpath +%{_bindir}/build-classpath-directory +%{_bindir}/build-jar-repository +%{_bindir}/check-binary-files +%{_bindir}/clean-binary-files +%{_bindir}/create-jar-links +%{_bindir}/diff-jars +%{_bindir}/find-jar +%{_bindir}/rebuild-jar-repository +%{_bindir}/shade-jar +%{_sysconfdir}/java/font.properties +%{_sysconfdir}/java/java.conf +%{_sysconfdir}/java/eclipse.conf +%{_datadir}/java-utils/java-functions +%{_datadir}/java-utils/java-wrapper +%{_datadir}/java-utils/scl-enable +%{_rpmmacrodir}/macros.jpackage +%{_rpmmacrodir}/macros.javapackages-filesystem +%{_mandir}/man1/build-classpath.1 +%{_mandir}/man1/build-jar-repository.1 +%{_mandir}/man1/diff-jars.1 +%{_mandir}/man1/rebuild-jar-repository.1 +%{_mandir}/man1/shade-jar.1 +%{_mandir}/man1/find-jar.1 +%{_datadir}/maven-metadata/javapackages-metadata.xml +%{_datadir}/xmvn/configuration.xml +%{_bindir}/gradle-local +%{_datadir}/gradle-local +%{_mandir}/man7/gradle_build.7 +" +for i in $files; do + rm -rf %{buildroot}/$i +done +%endif + +rm -rf %{buildroot}%{_datadir}/fedora-review/ + +%fdupes %{buildroot}/%{_prefix} + +%check +# reference: ./check, but we don't want to check coverage and don't need old nose +( +. ./config.status +for test in test/java-functions/*_test.sh; do + echo "`basename $test`:" + sh $test +done +) +%if %{with python} +pushd ./python +%pytest +popd +pushd ./test +%pytest +popd +%endif + +%if !%{with python} +%files -f files-tools +%license LICENSE + +%files -n javapackages-filesystem -f files-filesystem + +%else + +%files -n javapackages-local -f files-common -f files-compat -f files-generators +%dir %{_datadir}/java-utils + +%files -n javapackages-ivy -f files-ivy +%dir %{_sysconfdir}/ant.d + +%files %{python_files javapackages} +%license LICENSE +%{python_sitelib}/javapackages* +%endif + +%changelog diff --git a/python-optional.patch b/python-optional.patch new file mode 100644 index 0000000..bab35e1 --- /dev/null +++ b/python-optional.patch @@ -0,0 +1,35 @@ +Index: javapackages-5.2.0+git20180620.70fa2258/build +=================================================================== +--- javapackages-5.2.0+git20180620.70fa2258.orig/build ++++ javapackages-5.2.0+git20180620.70fa2258/build +@@ -117,5 +117,3 @@ manpage build-classpath + manpage build-jar-repository + manpage rebuild-jar-repository + manpage shade-jar +- +-(cd ./python && "${pyinterpreter}" setup.py build) +Index: javapackages-5.2.0+git20180620.70fa2258/install +=================================================================== +--- javapackages-5.2.0+git20180620.70fa2258.orig/install ++++ javapackages-5.2.0+git20180620.70fa2258/install +@@ -253,8 +253,3 @@ exec >files-gradle + inst_exec target/gradle-local "${bindir}" + inst_data gradle/init.gradle "${datadir}/gradle-local" + inst_data target/gradle_build.7 "${mandir}/man7" +- +-exec >files-python +-(cd ./python && "${pyinterpreter}" setup.py install -O1 --skip-build --prefix "${prefix}" --root "${DEST}") >&2 +-echo "${prefix}/lib/python*/site-packages/javapackages" +-echo "${prefix}/lib/python*/site-packages/javapackages-*.egg-info" +Index: javapackages-5.2.0+git20180620.70fa2258/configure-base.sh +=================================================================== +--- javapackages-5.2.0+git20180620.70fa2258.orig/configure ++++ javapackages-5.2.0+git20180620.70fa2258/configure +@@ -57,7 +57,6 @@ test -z "${rpmconfigdir}" && rpmconfigdi + test -z "${rpmmacrodir}" && rpmmacrodir="${rpmconfigdir}/macros.d" + + test -z "${m2home}" && m2home="${datadir}/xmvn" +-test -z "${pyinterpreter}" && pyinterpreter=$(type -p python) + test -z "${abrtlibdir}" && abrtlibdir="${prefix}/lib/abrt-java-connector" + + eval $(sed -n 's/^%_\('"$vars_re"'\)\ *\(.*\)$/\1="\2"/;T;s/%{_\(.*}\)/${\1/;p' macros.d/macros.javapackages-filesystem) diff --git a/remove-pointless-assignment.patch b/remove-pointless-assignment.patch new file mode 100644 index 0000000..a76c290 --- /dev/null +++ b/remove-pointless-assignment.patch @@ -0,0 +1,18 @@ +Index: javapackages-6.3.2/macros.d/macros.jpackage +=================================================================== +--- javapackages-6.3.2.orig/macros.d/macros.jpackage ++++ javapackages-6.3.2/macros.d/macros.jpackage +@@ -35,10 +35,10 @@ cat > %{buildroot}%{_bindir}/%5 << EOF \ + #\ + # %{name} script\ + # JPackage Project \ +-\ ++%{?java_home:\ + # Set default JAVA_HOME\ +-export JAVA_HOME="\\${JAVA_HOME:-%{?java_home}}"\ +-\ ++export JAVA_HOME="\\${JAVA_HOME:-%{java_home}}"\ ++}\ + # Source functions library\ + . @{javadir}-utils/java-functions\ + \ diff --git a/suse-no-epoch.patch b/suse-no-epoch.patch new file mode 100644 index 0000000..0b08bd4 --- /dev/null +++ b/suse-no-epoch.patch @@ -0,0 +1,70 @@ +--- javapackages-5.3.0/depgenerators/maven.req 2018-08-06 17:09:06.000000000 +0200 ++++ javapackages-5.3.0/depgenerators/maven.req 2018-10-24 10:29:11.404375107 +0200 +@@ -295,9 +295,9 @@ + def _get_java_requires(self, reqs): + major, minor = max([self._parse_java_requires(x) for x in reqs]) + if minor: +- return "1:{0}.{1}".format(major, minor) ++ return "{0}.{1}".format(major, minor) + else: +- return "1:{0}".format(major) ++ return "{0}".format(major) + + def _parse_java_requires(self, req): + match = re.match(r'^(\d+)(?:\.(\d+))?$', req) +--- javapackages-5.3.0/test/maven_req_test.py 2018-08-06 17:09:06.000000000 +0200 ++++ javapackages-5.3.0/test/maven_req_test.py 2018-10-24 10:28:59.408310751 +0200 +@@ -30,7 +30,7 @@ + self.assertEqual(return_value, 0, stderr) + sout = [x for x in stdout.split('\n') if x] + want = ("javapackages-filesystem", "mvn(org.apache.maven:maven-project)", +- "java-headless >= 1:1.6") ++ "java-headless >= 1.6") + self.assertEqual(set(want), set(sout)) + + @mavenreq(["require-java2/buildroot/usr/share/maven-metadata/require.xml"]) +@@ -38,7 +38,7 @@ + self.assertEqual(return_value, 0, stderr) + sout = [x for x in stdout.split('\n') if x] + want = ("javapackages-filesystem", "mvn(org.apache.maven:maven-project)", +- "java-headless >= 1:1.8") ++ "java-headless >= 1.8") + self.assertEqual(set(want), set(sout)) + + @mavenreq(["require-java3/buildroot/usr/share/maven-metadata/require.xml"]) +@@ -46,7 +46,7 @@ + self.assertEqual(return_value, 0, stderr) + sout = [x for x in stdout.split('\n') if x] + want = ("javapackages-filesystem", "mvn(org.apache.maven:maven-project)", +- "java-headless >= 1:1.8") ++ "java-headless >= 1.8") + self.assertEqual(set(want), set(sout)) + + @mavenreq(["require-java9/buildroot/usr/share/maven-metadata/require.xml"]) +@@ -54,7 +54,7 @@ + self.assertEqual(return_value, 0, stderr) + sout = [x for x in stdout.split('\n') if x] + want = ("javapackages-filesystem", "mvn(org.apache.maven:maven-project)", +- "java-headless >= 1:9") ++ "java-headless >= 9") + self.assertEqual(set(want), set(sout)) + + @mavenreq(["require-java10/buildroot/usr/share/maven-metadata/require.xml"]) +@@ -62,7 +62,7 @@ + self.assertEqual(return_value, 0, stderr) + sout = [x for x in stdout.split('\n') if x] + want = ("javapackages-filesystem", "mvn(org.apache.maven:maven-project)", +- "java-headless >= 1:10") ++ "java-headless >= 10") + self.assertEqual(set(want), set(sout)) + + @mavenreq(["require-java9and10/buildroot/usr/share/maven-metadata/require.xml"]) +@@ -70,7 +70,7 @@ + self.assertEqual(return_value, 0, stderr) + sout = [x for x in stdout.split('\n') if x] + want = ("javapackages-filesystem", "mvn(org.apache.maven:maven-project)", +- "java-headless >= 1:10") ++ "java-headless >= 10") + self.assertEqual(set(want), set(sout)) + + @mavenreq(["require-java-fail/buildroot/usr/share/maven-metadata/require.xml"]) diff --git a/suse-use-libdir.patch b/suse-use-libdir.patch new file mode 100644 index 0000000..6d63efa --- /dev/null +++ b/suse-use-libdir.patch @@ -0,0 +1,113 @@ +--- javapackages-5.3.1/configure 2019-06-14 12:26:27.000000000 +0200 ++++ javapackages-5.3.1/configure 2020-07-16 09:04:37.316453132 +0200 +@@ -14,6 +14,7 @@ + root_sysconfdir + rpmconfigdir + rpmmacrodir ++libdir + + m2home + +@@ -51,6 +52,7 @@ + test -z "${rundir}" && rundir="${localstatedir}/run" + test -z "${sysconfdir}" && sysconfdir="${prefix}/etc" + test -z "${root_sysconfdir}" && root_sysconfdir="${prefix}/etc" ++test -z "${libdir}" && libdir="${prefix}/lib/" + test -z "${rpmconfigdir}" && rpmconfigdir="${prefix}/lib/rpm" + test -z "${rpmmacrodir}" && rpmmacrodir="${rpmconfigdir}/macros.d" + +diff -urEbwB javapackages-5.3.1/etc/eclipse.conf javapackages-5.3.1/etc/eclipse.conf +--- javapackages-5.3.1/etc/eclipse.conf 2019-06-14 12:26:27.000000000 +0200 ++++ javapackages-5.3.1/etc/eclipse.conf 2020-07-16 09:04:37.316453132 +0200 +@@ -1,7 +1,7 @@ + # Eclipse filesystem configuration file + + # Eclipse platform root directory +-eclipse.root=@{prefix}/lib/eclipse ++eclipse.root=@{libdir}/eclipse + + # Location of architecture-independant dropins + eclipse.dropins.noarch=@{datadir}/eclipse/dropins +@@ -10,10 +10,10 @@ + eclipse.droplets.noarch=@{datadir}/eclipse/droplets + + # Location of architecture-dependant dropins +-eclipse.dropins.archful=@{prefix}/lib/eclipse/dropins ++eclipse.dropins.archful=@{libdir}/eclipse/dropins + + # Location of architecture-dependant droplets +-eclipse.droplets.archful=@{prefix}/lib/eclipse/droplets ++eclipse.droplets.archful=@{libdir}/eclipse/droplets + + # Comma-separated list of directories searched for external bundles + eclipse.bundles=@{javadir},@{jnidir} +--- javapackages-5.3.1/expand.sh 2019-06-14 12:26:27.000000000 +0200 ++++ javapackages-5.3.1/expand.sh 2020-07-16 09:04:37.316453132 +0200 +@@ -45,6 +45,7 @@ + sed \ + -e "s|@{bindir}|${bindir}|g" \ + -e "s|@{datadir}|${datadir}|g" \ ++ -e "s|@{libdir}|${libdir}|g" \ + -e "s|@{javaconfdir}|${javaconfdir}|g" \ + -e "s|@{javadir}|${javadir}|g" \ + -e "s|@{jnidir}|${jnidir}|g" \ +--- javapackages-5.3.1/install 2019-06-14 12:26:27.000000000 +0200 ++++ javapackages-5.3.1/install 2020-07-16 09:04:37.316453132 +0200 +@@ -90,11 +90,11 @@ + dir "${mavenpomdir}" + dir "${ivyxmldir}" + dir "${datadir}/maven-metadata" +-dir "${prefix}/lib/eclipse" +-dir "${prefix}/lib/eclipse/features" +-dir "${prefix}/lib/eclipse/plugins" +-dir "${prefix}/lib/eclipse/dropins" +-dir "${prefix}/lib/eclipse/droplets" ++dir "${libdir}/eclipse" ++dir "${libdir}/eclipse/features" ++dir "${libdir}/eclipse/plugins" ++dir "${libdir}/eclipse/dropins" ++dir "${libdir}/eclipse/droplets" + dir "${datadir}/eclipse" + dir "${datadir}/eclipse/dropins" + dir "${datadir}/eclipse/droplets" +--- javapackages-5.3.1/macros.d/macros.javapackages-filesystem 2019-06-14 12:26:27.000000000 +0200 ++++ javapackages-5.3.1/macros.d/macros.javapackages-filesystem 2020-07-16 09:05:34.448792440 +0200 +@@ -13,17 +13,17 @@ + # + # Root directory where all Java VMs/SDK/JREs are installed. + # +-%_jvmdir %{_prefix}/lib/jvm ++%_jvmdir %{_libdir}/jvm + + # + # Root directory for all Java VM/SDK/JRE's private things. + # +-%_jvmprivdir %{_prefix}/lib/jvm-private ++%_jvmprivdir %{_libdir}/jvm-private + + # + # Root directory for all architecture dependent parts of Java VM/SDK/JRE's + # +-%_jvmlibdir %{_prefix}/lib/jvm ++%_jvmlibdir %{_libdir}/jvm + + # + # Root directory for all architecture independent parts of Java VM/SDK/JRE's +@@ -38,7 +38,7 @@ + # + # Root directory for all common architecture dependent parts of Java VM/SDK/JRE's + # +-%_jvmcommonlibdir %{_prefix}/lib/jvm-common ++%_jvmcommonlibdir %{_libdir}/jvm-common + + # + # Root directory for all common architecture independent parts of Java VM/SDK/JRE's +@@ -64,7 +64,7 @@ + # + # Directory where arch-specific (JNI) version-independent jars are installed. + # +-%_jnidir %{_prefix}/lib/java ++%_jnidir %{_libdir}/java + + # + # Root directory where all javadoc is installed. Also already in RH macros.