Sync from SUSE:SLFO:Main javapackages-tools revision e36fa97d87bb726787cd3cfff9b51c90

This commit is contained in:
Adrian Schröter 2024-05-03 13:57:53 +02:00
commit 45a44bbc05
15 changed files with 2193 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

View File

@ -0,0 +1,25 @@
From 5cc434bdeffbee25158ae2bdcda08f4b07610f7a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
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

View File

@ -0,0 +1,25 @@
From d124f4d16883d74cdf8ab9064667e128a3695230 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Mon, 4 Sep 2023 22:44:10 +0200
Subject: [PATCH 2/2] Do not bomb on <relativePath/> 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

View File

@ -0,0 +1,52 @@
From 66ba33a8c28497e01eddcb0cd17fbe324674eabc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
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

View File

@ -0,0 +1,28 @@
From f211da6e4cf216a020b47ccab9b2c7806c5a8a62 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
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

View File

@ -0,0 +1,62 @@
From d458bce49270bccfa40e9c4e288b3c9550aff741 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
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 <msrb@redhat.com>
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 = "<?xml version='1.0' encoding='UTF-8'?>\n"
result_pom += "<project xmlns=\"http://maven.apache.org/POM/4.0.0\">\n"
result_pom += " <modelVersion>4.0.0</modelVersion>\n"
- result_pom += (" <groupId>{0}</groupId>\n" ).format(uart.groupId)
- result_pom += (" <artifactId>{0}</artifactId>\n" ).format(uart.artifactId)
- result_pom += (" <version>{0}</version>\n").format(uart.version)
+ result_pom += (" <groupId>{0}</groupId>\n" ).format(mvn_art.groupId)
+ result_pom += (" <artifactId>{0}</artifactId>\n" ).format(mvn_art.artifactId)
+ result_pom += (" <version>{0}</version>\n").format(mvn_art.version)
if hasattr(uart, "packaging") and uart.packaging != 'jar':
result_pom += (" <packaging>{0}</packaging>\n").format(uart.packaging)
if hasattr(uart, "extension") and uart.extension != 'jar':
result_pom += (" <extension>{0}</extension>\n").format(uart.extension)
- if hasattr(uart, "classifier") and uart.classifiler != '':
+ if hasattr(uart, "classifier") and uart.classifier != '':
result_pom += (" <classifier>{0}</classifier>\n").format(uart.classifier)
- mvn_deps = gather_dependencies(pom_path)
if mvn_deps:
result_pom += " <dependencies>\n"
for d in mvn_deps:
--
2.42.0

View File

@ -0,0 +1,713 @@
From ce0929d03ba33ff98727fbd527f4ec94412f78bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project xmlns="http://maven.apache.org/POM/4.0.0">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>ml.dmlc</groupId>
+ <artifactId>xgboost4j_2.12</artifactId>
+ <version>2.0.0</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-compiler</artifactId>
+ <version>2.12.18</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
+ <version>2.12.18</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang.modules</groupId>
+ <artifactId>scala-collection-compat_2.12</artifactId>
+ <version>2.10.0</version>
+ </dependency>
+ <dependency>
+ <groupId>com.esotericsoftware</groupId>
+ <artifactId>kryo</artifactId>
+ <version>5.5.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ </dependency>
+ </dependencies>
+</project>
\ 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <groupId>ml.dmlc</groupId>
+ <artifactId>xgboost-jvm</artifactId>
+ <version>2.0.0</version>
+ <packaging>pom</packaging>
+ <name>XGBoost JVM Package</name>
+ <description>JVM Package for XGBoost</description>
+ <url>https://github.com/dmlc/xgboost/tree/master/jvm-packages</url>
+ <licenses>
+ <license>
+ <name>The Apache License, Version 2.0</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
+ </license>
+ </licenses>
+ <developers>
+ <developer>
+ <name>CodingCat</name>
+ <email>codingcat@apache.org</email>
+ </developer>
+ </developers>
+ <scm>
+ <connection>scm:git:git:/github.com/dmlc/xgboost.git</connection>
+ <developerConnection>scm:git:ssh://github.com/dmlc/xgboost.git</developerConnection>
+ <url>https://github.com/dmlc/xgboost</url>
+ </scm>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+ <maven.compiler.source>1.8</maven.compiler.source>
+ <maven.compiler.target>1.8</maven.compiler.target>
+ <flink.version>1.17.1</flink.version>
+ <junit.version>4.13.2</junit.version>
+ <spark.version>3.4.0</spark.version>
+ <spark.version.gpu>3.3.2</spark.version.gpu>
+ <scala.version>2.12.18</scala.version>
+ <scala.binary.version>2.12</scala.binary.version>
+ <hadoop.version>3.3.5</hadoop.version>
+ <maven.wagon.http.retryHandler.count>5</maven.wagon.http.retryHandler.count>
+ <log.capi.invocation>OFF</log.capi.invocation>
+ <use.cuda>OFF</use.cuda>
+ <cudf.version>23.08.0</cudf.version>
+ <spark.rapids.version>23.08.0</spark.rapids.version>
+ <cudf.classifier>cuda11</cudf.classifier>
+ <scalatest.version>3.2.16</scalatest.version>
+ <scala-collection-compat.version>2.10.0</scala-collection-compat.version>
+ </properties>
+ <repositories>
+ <repository>
+ <id>central_maven</id>
+ <name>central maven</name>
+ <url>https://repo1.maven.org/maven2</url>
+ </repository>
+ </repositories>
+ <modules>
+ </modules>
+
+ <profiles>
+ <profile>
+ <!-- default active profile excluding gpu related test suites -->
+ <id>default</id>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+ <modules>
+ <module>xgboost4j</module>
+ <module>xgboost4j-example</module>
+ <module>xgboost4j-spark</module>
+ <module>xgboost4j-flink</module>
+ </modules>
+ </profile>
+
+ <profile>
+ <id>scala-2.13</id>
+ <properties>
+ <scala.binary.version>2.13</scala.binary.version>
+ <scala.version>2.13.11</scala.version>
+ </properties>
+ </profile>
+
+ <!-- gpu profile with both cpu and gpu test suites -->
+ <profile>
+ <id>gpu</id>
+ <activation>
+ <property>
+ <name>use.cuda</name>
+ <value>ON</value>
+ </property>
+ </activation>
+ <properties>
+ <use.cuda>ON</use.cuda>
+ </properties>
+ <modules>
+ <module>xgboost4j-gpu</module>
+ <module>xgboost4j-spark-gpu</module>
+ </modules>
+ </profile>
+
+ <profile>
+ <id>release</id>
+ <modules>
+ <module>xgboost4j</module>
+ <module>xgboost4j-example</module>
+ <module>xgboost4j-spark</module>
+ <module>xgboost4j-flink</module>
+ <module>xgboost4j-gpu</module>
+ <module>xgboost4j-spark-gpu</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.3.0</version>
+ <executions>
+ <execution>
+ <id>empty-javadoc-jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ <configuration>
+ <classifier>javadoc</classifier>
+ <classesDirectory>${basedir}/javadoc</classesDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-release-plugin</artifactId>
+ <version>3.0.1</version>
+ <configuration>
+ <autoVersionSubmodules>true</autoVersionSubmodules>
+ <useReleaseProfile>false</useReleaseProfile>
+ <releaseProfiles>release</releaseProfiles>
+ <goals>deploy</goals>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-gpg-plugin</artifactId>
+ <version>3.1.0</version>
+ <executions>
+ <execution>
+ <id>sign-artifacts</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>sign</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>3.3.0</version>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar-no-fork</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.sonatype.plugins</groupId>
+ <artifactId>nexus-staging-maven-plugin</artifactId>
+ <version>1.6.13</version>
+ <extensions>true</extensions>
+ <configuration>
+ <serverId>ossrh</serverId>
+ <nexusUrl>https://oss.sonatype.org/</nexusUrl>
+ <autoReleaseAfterClose>false</autoReleaseAfterClose>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>assembly</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>3.6.0</version>
+ <configuration>
+ <descriptorRefs>
+ <descriptorRef>jar-with-dependencies</descriptorRef>
+ </descriptorRefs>
+ <skipAssembly>true</skipAssembly>
+ </configuration>
+ <executions>
+ <execution>
+ <id>make-assembly</id>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>release-to-github</id>
+ <distributionManagement>
+ <repository>
+ <id>github.repo</id>
+ <name>Temporary Staging Repository</name>
+ <url>file://${project.build.directory}/mvn-repo</url>
+ </repository>
+ </distributionManagement>
+ <properties>
+ <github.global.server>github</github.global.server>
+ </properties>
+ <modules>
+ <module>xgboost4j</module>
+ <module>xgboost4j-example</module>
+ <module>xgboost4j-spark</module>
+ <module>xgboost4j-flink</module>
+ <module>xgboost4j-gpu</module>
+ <module>xgboost4j-spark-gpu</module>
+ </modules>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>com.github.github</groupId>
+ <artifactId>site-maven-plugin</artifactId>
+ <version>0.12</version>
+ <configuration>
+ <message>Maven artifacts for ${project.version}</message>
+ <noJekyll>true</noJekyll>
+ <outputDirectory>${project.build.directory}/mvn-repo</outputDirectory>
+ <branch>refs/heads/maven-repo</branch>
+ <excludes>
+ <exclude>*-with-dependencies.jar</exclude>
+ </excludes>
+ <repositoryName>xgboost</repositoryName>
+ <repositoryOwner>CodingCat</repositoryOwner>
+ <merge>true</merge>
+ </configuration>
+ <executions>
+ <!-- run site-maven-plugin's 'site' target as part of the build's normal 'deploy' phase -->
+ <execution>
+ <goals>
+ <goal>site</goal>
+ </goals>
+ <phase>deploy</phase>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>3.1.1</version>
+ <configuration>
+ <altDeploymentRepository>internal.repo::default::file://${project.build.directory}/mvn-repo</altDeploymentRepository>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>release-to-s3</id>
+ <distributionManagement>
+ <snapshotRepository>
+ <id>maven-s3-snapshot-repo</id>
+ <url>s3://xgboost-maven-repo/snapshot</url>
+ </snapshotRepository>
+ <repository>
+ <id>maven-s3-release-repo</id>
+ <url>s3://xgboost-maven-repo/release</url>
+ </repository>
+ </distributionManagement>
+ <repositories>
+ <repository>
+ <id>maven-s3-snapshot-repo</id>
+ <url>https://s3.amazonaws.com/xgboost-maven-repo/snapshot</url>
+ </repository>
+ <repository>
+ <id>maven-s3-release-repo</id>
+ <url>https://s3.amazonaws.com/xgboost-maven-repo/release</url>
+ </repository>
+ </repositories>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skipTests>true</skipTests>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <distributionManagement>
+ <snapshotRepository>
+ <id>ossrh</id>
+ <url>https://oss.sonatype.org/content/repositories/snapshots</url>
+ </snapshotRepository>
+ </distributionManagement>
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
+
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.scalatest</groupId>
+ <artifactId>scalatest-maven-plugin</artifactId>
+ <version>2.2.0</version>
+ <executions>
+ <execution>
+ <id>test</id>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+
+ <plugins>
+ <plugin>
+ <groupId>org.scalastyle</groupId>
+ <artifactId>scalastyle-maven-plugin</artifactId>
+ <version>1.0.0</version>
+ <configuration>
+ <verbose>false</verbose>
+ <failOnViolation>true</failOnViolation>
+ <includeTestSourceDirectory>true</includeTestSourceDirectory>
+ <sourceDirectory>${basedir}/src/main/scala</sourceDirectory>
+ <testSourceDirectory>${basedir}/src/test/scala</testSourceDirectory>
+ <configLocation>scalastyle-config.xml</configLocation>
+ <outputEncoding>UTF-8</outputEncoding>
+ </configuration>
+ <executions>
+ <execution>
+ <id>checkstyle</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.12.1</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <version>3.3.0</version>
+ <configuration>
+ <configLocation>checkstyle.xml</configLocation>
+ <failOnViolation>true</failOnViolation>
+ </configuration>
+ <executions>
+ <execution>
+ <id>checkstyle</id>
+ <phase>validate</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>net.alchim31.maven</groupId>
+ <artifactId>scala-maven-plugin</artifactId>
+ <version>4.8.1</version>
+ <executions>
+ <execution>
+ <id>compile</id>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ <phase>compile</phase>
+ </execution>
+ <execution>
+ <id>test-compile</id>
+ <goals>
+ <goal>testCompile</goal>
+ </goals>
+ <phase>test-compile</phase>
+ </execution>
+ <execution>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>scala-compile-first</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>compile</goal>
+ <goal>add-source</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>3.1.2</version>
+ <configuration>
+ <skipTests>false</skipTests>
+ <useSystemClassLoader>false</useSystemClassLoader>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.scalatest</groupId>
+ <artifactId>scalatest-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ <extensions>
+ <extension>
+ <groupId>com.github.seahen</groupId>
+ <artifactId>maven-s3-wagon</artifactId>
+ <version>1.3.3</version>
+ </extension>
+ </extensions>
+ </build>
+ <reporting>
+ <plugins>
+ <plugin>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>3.4.5</version>
+ </plugin>
+ <plugin>
+ <groupId>net.alchim31.maven</groupId>
+ <artifactId>scala-maven-plugin</artifactId>
+ <version>4.8.1</version>
+ <configuration>
+ <jvmArgs>
+ <jvmArg>-Xms64m</jvmArg>
+ <jvmArg>-Xmx1024m</jvmArg>
+ </jvmArgs>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+ <dependencies>
+ <dependency>
+ <groupId>com.esotericsoftware</groupId>
+ <artifactId>kryo</artifactId>
+ <version>5.5.0</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scalatest</groupId>
+ <artifactId>scalatest_${scala.binary.version}</artifactId>
+ <version>${scalatest.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.scalactic</groupId>
+ <artifactId>scalactic_${scala.binary.version}</artifactId>
+ <version>${scalatest.version}</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+</project>
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>ml.dmlc</groupId>
+ <artifactId>xgboost-jvm</artifactId>
+ <version>2.0.0</version>
+ </parent>
+ <name>xgboost4j</name>
+ <artifactId>xgboost4j_${scala.binary.version}</artifactId>
+ <version>2.0.0</version>
+ <packaging>jar</packaging>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-compiler</artifactId>
+ <version>${scala.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
+ <version>${scala.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang.modules</groupId>
+ <artifactId>scala-collection-compat_${scala.binary.version}</artifactId>
+ <version>${scala-collection-compat.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-hdfs</artifactId>
+ <version>${hadoop.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ <version>${hadoop.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>${junit.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.scalatest</groupId>
+ <artifactId>scalatest_${scala.binary.version}</artifactId>
+ <version>${scalatest.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>3.5.0</version>
+ <configuration>
+ <show>protected</show>
+ <nohelp>true</nohelp>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <configuration>
+ <skipAssembly>false</skipAssembly>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>exec-maven-plugin</artifactId>
+ <groupId>org.codehaus.mojo</groupId>
+ <version>3.1.0</version>
+ <executions>
+ <execution>
+ <id>native</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <executable>python</executable>
+ <arguments>
+ <argument>create_jni.py</argument>
+ <argument>--log-capi-invocation</argument>
+ <argument>${log.capi.invocation}</argument>
+ </arguments>
+ <workingDirectory>${user.dir}</workingDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.3.0</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>test-jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.3.1</version>
+ <configuration>
+ <nonFilteredFileExtensions>
+ <nonFilteredFileExtension>dll</nonFilteredFileExtension>
+ <nonFilteredFileExtension>dylib</nonFilteredFileExtension>
+ <nonFilteredFileExtension>so</nonFilteredFileExtension>
+ </nonFilteredFileExtensions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
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

View File

@ -0,0 +1,268 @@
From 3a32ce8695f891d8051cccd5273758d3cd9ce54c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fridrich=20=C5=A0trba?= <fridrich.strba@bluewin.ch>
Date: Wed, 4 Oct 2023 08:32:33 +0200
Subject: [PATCH 7/7] Test that we don't bomb on <relativePath/>
---
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-shared-components</artifactId>
+ <version>39</version>
+ <relativePath />
+ </parent>
+
+ <artifactId>maven-filtering</artifactId>
+ <version>3.3.1</version>
+
+ <name>Apache Maven Filtering</name>
+ <description>A component to assist in filtering of resource files with properties from a Maven project.</description>
+
+ <contributors>
+ <contributor>
+ <name>Graham Leggett</name>
+ </contributor>
+ </contributors>
+
+ <scm>
+ <connection>scm:git:https://gitbox.apache.org/repos/asf/maven-filtering.git</connection>
+ <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/maven-filtering.git</developerConnection>
+ <tag>maven-filtering-3.3.1</tag>
+ <url>https://github.com/apache/maven-filtering/tree/${project.scm.tag}</url>
+ </scm>
+ <issueManagement>
+ <system>JIRA</system>
+ <url>https://issues.apache.org/jira/issues/?jql=project%20%3D%20MSHARED%20AND%20component%20%3D%20maven-filtering</url>
+ </issueManagement>
+ <ciManagement>
+ <system>Jenkins</system>
+ <url>https://ci-maven.apache.org/job/Maven/job/maven-box/job/maven-filtering/</url>
+ </ciManagement>
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>scm:svn:https://svn.apache.org/repos/asf/maven/website/components/${maven.site.path}</url>
+ </site>
+ </distributionManagement>
+
+ <properties>
+ <javaVersion>8</javaVersion>
+ <mavenVersion>3.2.5</mavenVersion>
+ <slf4jVersion>1.7.36</slf4jVersion>
+ <plexusBuildApiVersion>0.0.7</plexusBuildApiVersion>
+ <project.build.outputTimestamp>2023-03-21T10:53:39Z</project.build.outputTimestamp>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>${slf4jVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.plexus</groupId>
+ <artifactId>plexus-build-api</artifactId>
+ <version>${plexusBuildApiVersion}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>${mavenVersion}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>${mavenVersion}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-settings</artifactId>
+ <version>${mavenVersion}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>3.5.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-interpolation</artifactId>
+ <version>1.26</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.11.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>4.7.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.13.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.hamcrest</groupId>
+ <artifactId>hamcrest-core</artifactId>
+ <version>2.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-simple</artifactId>
+ <version>${slf4jVersion}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.plexus</groupId>
+ <artifactId>plexus-build-api</artifactId>
+ <version>${plexusBuildApiVersion}</version>
+ <classifier>tests</classifier>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.sisu</groupId>
+ <artifactId>org.eclipse.sisu.plexus</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.sisu</groupId>
+ <artifactId>org.eclipse.sisu.inject</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <configuration>
+ <excludes combine.children="append">
+ <exclude>src/test/units-files/**</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.sisu</groupId>
+ <artifactId>sisu-maven-plugin</artifactId>
+ </plugin>
+ </plugins>
+ </build>
+</project>
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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<project xmlns="http://maven.apache.org/POM/4.0.0">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-filtering</artifactId>
+ <version>3.3.1</version>
+ <dependencies>
+ <dependency>
+ <groupId>javax.inject</groupId>
+ <artifactId>javax.inject</artifactId>
+ <version>1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.36</version>
+ </dependency>
+ <dependency>
+ <groupId>org.sonatype.plexus</groupId>
+ <artifactId>plexus-build-api</artifactId>
+ <version>0.0.7</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>3.5.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-interpolation</artifactId>
+ <version>1.26</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.11.0</version>
+ </dependency>
+ </dependencies>
+</project>
\ 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

BIN
6.2.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>extras</package>
</multibuild>

514
javapackages-tools.changes Normal file
View File

@ -0,0 +1,514 @@
-------------------------------------------------------------------
Wed Oct 4 07:18:58 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- 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 <relativePath/> in parent
reference of a pom file
-------------------------------------------------------------------
Wed Sep 13 13:52:00 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- 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 <fstrba@suse.com>
- 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 <fstrba@suse.com>
- 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
<relativePath/> element
-------------------------------------------------------------------
Sat Sep 2 23:07:32 UTC 2023 - Fridrich Strba <fstrba@suse.com>
- 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 <fstrba@suse.com>
- 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 <fstrba@suse.com>
- 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 <fstrba@suse.com>
- Reflect the removal of gradle from repositories
-------------------------------------------------------------------
Thu Jul 7 06:50:09 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- 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 <skippedPlugins> 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 <fstrba@suse.com>
- Fix wrong conditioning of the python-six require.
-------------------------------------------------------------------
Fri Jun 3 10:11:21 UTC 2022 - Fridrich Strba <fstrba@suse.com>
- 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 <fstrba@suse.com>
- 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 <david.anes@suse.com>
- Fix typo in suse-use-libdir.patch:
%{_libdir}/jvm-commmon -> %{_libdir}/jvm-common
-------------------------------------------------------------------
Tue Jul 27 13:39:39 UTC 2021 - Fridrich Strba <fstrba@suse.com>
- Do not run tests on SLE12, since python3-test is not accessible
-------------------------------------------------------------------
Thu Mar 25 16:27:58 UTC 2021 - Ben Greiner <code@bnavigator.de>
- 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 <code@bnavigator.de>
- Fix typo in spec file sitearch -> sitelib
-------------------------------------------------------------------
Sun Nov 22 00:23:21 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- Fix the python subpackage generation
gh#openSUSE/python-rpm-macros#79
-------------------------------------------------------------------
Sat Nov 21 13:05:38 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- 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 <dimstar@opensuse.org>
- 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 <fstrba@suse.com>
- 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 <dimstar@opensuse.org>
- 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 <fstrba@suse.com>
- 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 <fstrba@suse.com>
- Split maven-local meta-package out of javapackages-tools spec
file
-------------------------------------------------------------------
Wed Apr 3 09:42:32 UTC 2019 - Fridrich Strba <fstrba@suse.com>
- 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 <fstrba@suse.com>
- 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 <fstrba@suse.com>
- Modified patch:
* suse-use-libdir.patch
+ fix directories for eclipse.conf too
-------------------------------------------------------------------
Sun Nov 11 15:21:24 UTC 2018 - Fridrich Strba <fstrba@suse.com>
- 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 <fstrba@suse.com>
- Replace the occurences of /usr/lib by libdir in configuration
files too
-------------------------------------------------------------------
Wed Oct 24 08:19:24 UTC 2018 - Fridrich Strba <fstrba@suse.com>
- 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 <fstrba@suse.com>
- 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 <ledest@gmail.com>
- 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

259
javapackages-tools.spec Normal file
View File

@ -0,0 +1,259 @@
#
# spec file
#
# Copyright (c) 2023 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.2.0
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
#PATCH-FIX-UPSTREAM: Make maven_depmap order of aliases reproducible
Patch3: 0001-Make-maven_depmap-order-of-aliases-reproducible.patch
#PATCH-FIX-UPSTREAM: Do not bomb on <relativePath/> construct
Patch4: 0002-Do-not-bomb-on-relativePath-construct.patch
#PATCH-FIX-UPSTREAM: Sort exclusions when writing out metadata
Patch5: 0003-Reproducible-exclusions-order-in-maven-metadata.patch
#PATCH-FIX-UPSTREAM: make the aliases and dependencies lists so that the order is kept
Patch6: 0004-Reproducible-builds-keep-order-of-aliases-and-depend.patch
#PATCH-FIX-UPSTREAM: substitute variables like _${scala.binary.version} in artifact coordinates
Patch7: 0005-Interpolate-properties-also-in-the-current-artifact.patch
#PATCH-FIX-UPSTREAM: test changes from previous patch
Patch8: 0006-Test-variable-expansion-in-artifactId.patch
#PATCH-FIX-UPSTREAM: test gracious handling of <relativePath/> construct
Patch9: 0007-Test-that-we-don-t-bomb-on-relativePath.patch
BuildRequires: asciidoc
BuildRequires: fdupes
BuildRequires: perl
BuildRequires: rpm
BuildRequires: xmlto
%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

35
python-optional.patch Normal file
View File

@ -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=$(which 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)

70
suse-no-epoch.patch Normal file
View File

@ -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"])

113
suse-use-libdir.patch Normal file
View File

@ -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.