Compare commits

..

1 commit

Author SHA1 Message Date
Mikolaj Izdebski
cdfffe131a Switch to Java 21 for runtime 2024-02-29 22:28:39 +01:00
12 changed files with 126 additions and 224 deletions

6
.gitignore vendored
View file

@ -3,9 +3,3 @@
/xmvn-generator-1.2.0.tar.gz
/xmvn-generator-1.2.1.tar.gz
/xmvn-generator-1.2.2.tar.gz
/xmvn-generator-1.2.3.tar.gz
/xmvn-generator-2.0.0.tar.gz
/xmvn-generator-2.0.1.tar.gz
/xmvn-generator-2.0.2.tar.gz
/xmvn-generator-2.1.0.tar.gz
/xmvn-generator-2.1.1.tar.zst

View file

@ -1,24 +0,0 @@
From 6cd6f63c9745a2872ec42a55c3b5d96c16a632cb Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Sat, 11 Oct 2025 07:51:25 +0200
Subject: [PATCH] Add commons-lang3 to generator classpath
---
src/main/conf/xmvn-generator.conf | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/main/conf/xmvn-generator.conf b/src/main/conf/xmvn-generator.conf
index 4e72124..af77f8b 100644
--- a/src/main/conf/xmvn-generator.conf
+++ b/src/main/conf/xmvn-generator.conf
@@ -3,6 +3,7 @@ import io.kojan.dola.rpm from Realm:bsx-api
load /usr/share/java/objectweb-asm/asm.jar
load /usr/share/java/commons-compress.jar
load /usr/share/java/commons-io.jar
+load /usr/share/java/commons-lang3.jar
load /usr/share/java/xmvn/xmvn-api.jar
load /usr/share/java/xmvn/xmvn-core.jar
load /usr/share/java/maven/maven-model.jar
--
2.51.0

View file

@ -1,25 +0,0 @@
From 3333e26db4405a4606e2223f74c5b23d9b473c1a Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 30 Jun 2025 07:46:58 +0200
Subject: [PATCH 1/2] Disable verbose debug output by default
Resolves: rhbz#2375157
---
src/main/rpm/macros.xmvngen | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/rpm/macros.xmvngen b/src/main/rpm/macros.xmvngen
index 5623fb2..b29156e 100644
--- a/src/main/rpm/macros.xmvngen
+++ b/src/main/rpm/macros.xmvngen
@@ -1,6 +1,6 @@
# Debug enable flag.
# Setting this to non-empty value enables debugging output.
-%__xmvngen_debug 1
+%__xmvngen_debug %nil
# Path to JVM library (libjvm.so). Java 21 or newer is required.
%__xmvngen_libjvm %{_jvmdir}/jre-21-openjdk/lib/server/libjvm.so
--
2.49.0

25
0001-Use-OpenJDK-21.patch Normal file
View file

@ -0,0 +1,25 @@
From 089eacff83657ad118c1348ef521e46dc18645df Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Thu, 22 Feb 2024 05:30:33 +0100
Subject: [PATCH 1/2] Use OpenJDK 21
---
src/main/rpm/macros.xmvngen | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/rpm/macros.xmvngen b/src/main/rpm/macros.xmvngen
index 4ff3f22..0b124f4 100644
--- a/src/main/rpm/macros.xmvngen
+++ b/src/main/rpm/macros.xmvngen
@@ -3,7 +3,7 @@
%__xmvngen_debug %{nil}
# Path to JVM library (libjvm.so). Java 17 or newer is required.
-%__xmvngen_libjvm %{_jvmdir}/jre-17-openjdk/lib/server/libjvm.so
+%__xmvngen_libjvm %{_jvmdir}/jre-21-openjdk/lib/server/libjvm.so
# Class path of nested JVM. This should be a colon-separated list of
# JARs that contains xmvn-generator.jar, JARs with third-party
--
2.41.0

View file

@ -0,0 +1,39 @@
From 1f80a6d816dc3dde83dc3df0d94d97b8a7f62937 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Wed, 30 Aug 2023 15:53:26 +0200
Subject: [PATCH 2/2] Enable JPMS provides and JAR transformer
---
src/main/rpm/macros.xmvngen | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/main/rpm/macros.xmvngen b/src/main/rpm/macros.xmvngen
index 0b124f4..b1ef101 100644
--- a/src/main/rpm/macros.xmvngen
+++ b/src/main/rpm/macros.xmvngen
@@ -1,6 +1,6 @@
# Debug enable flag.
# Setting this to non-empty value enables debugging output.
-%__xmvngen_debug %{nil}
+%__xmvngen_debug 1
# Path to JVM library (libjvm.so). Java 17 or newer is required.
%__xmvngen_libjvm %{_jvmdir}/jre-21-openjdk/lib/server/libjvm.so
@@ -15,7 +15,7 @@
# generator factories (classes implementing GeneratorFactory interface).
# Available hook factories are:
# * org.fedoraproject.xmvn.generator.jpms.JPMSGeneratorFactory
-%__xmvngen_provides_generators %{nil}
+%__xmvngen_provides_generators org.fedoraproject.xmvn.generator.jpms.JPMSGeneratorFactory
%__xmvngen_requires_generators %{nil}
# Specify which post-install hooks should be ran.
@@ -23,4 +23,4 @@
# hook factories (classes implementing HookFactory interface).
# Available hook factories are:
# * org.fedoraproject.xmvn.generator.transformer.TransformerHookFactory
-%__xmvngen_post_install_hooks %{nil}
+%__xmvngen_post_install_hooks org.fedoraproject.xmvn.generator.transformer.TransformerHookFactory
--
2.41.0

View file

@ -1,111 +0,0 @@
From 35624a1e5972e4ddb8fefbcaa82ee6921ddd89b3 Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 30 Jun 2025 08:13:20 +0200
Subject: [PATCH 2/2] Suppress non-fatal stack traces unless debugging is
enabled
Resolves: rhbz#2375157
---
.../fedoraproject/xmvn/generator/jpms/JPMSGenerator.java | 4 +++-
.../xmvn/generator/jpscript/JPackageScriptGenerator.java | 3 ++-
.../org/fedoraproject/xmvn/generator/logging/Logger.java | 6 ++++++
.../fedoraproject/xmvn/generator/maven/MavenGenerator.java | 2 +-
.../xmvn/generator/transformer/TransformerHook.java | 6 ++++--
5 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/src/main/java/org/fedoraproject/xmvn/generator/jpms/JPMSGenerator.java b/src/main/java/org/fedoraproject/xmvn/generator/jpms/JPMSGenerator.java
index 6e5ec53..5808273 100644
--- a/src/main/java/org/fedoraproject/xmvn/generator/jpms/JPMSGenerator.java
+++ b/src/main/java/org/fedoraproject/xmvn/generator/jpms/JPMSGenerator.java
@@ -29,6 +29,7 @@ import java.util.stream.Stream;
import org.fedoraproject.xmvn.generator.BuildContext;
import org.fedoraproject.xmvn.generator.Collector;
import org.fedoraproject.xmvn.generator.Generator;
+import org.fedoraproject.xmvn.generator.logging.Logger;
class JPMSGenerator implements Generator {
private final BuildContext context;
@@ -75,7 +76,8 @@ class JPMSGenerator implements Generator {
}
}
} catch (IOException e) {
- e.printStackTrace();
+ // Continue despite exception
+ Logger.debug(e);
}
}
} catch (IOException e) {
diff --git a/src/main/java/org/fedoraproject/xmvn/generator/jpscript/JPackageScriptGenerator.java b/src/main/java/org/fedoraproject/xmvn/generator/jpscript/JPackageScriptGenerator.java
index dbcb537..cf81e43 100644
--- a/src/main/java/org/fedoraproject/xmvn/generator/jpscript/JPackageScriptGenerator.java
+++ b/src/main/java/org/fedoraproject/xmvn/generator/jpscript/JPackageScriptGenerator.java
@@ -24,6 +24,7 @@ import java.util.stream.Stream;
import org.fedoraproject.xmvn.generator.BuildContext;
import org.fedoraproject.xmvn.generator.Collector;
import org.fedoraproject.xmvn.generator.Generator;
+import org.fedoraproject.xmvn.generator.logging.Logger;
class JPackageScriptGenerator implements Generator {
private final BuildContext context;
@@ -51,7 +52,7 @@ class JPackageScriptGenerator implements Generator {
}
} catch (MalformedInputException e) {
// Continue despite exception
- e.printStackTrace();
+ Logger.debug(e);
} catch (IOException e) {
throw new UncheckedIOException(e);
}
diff --git a/src/main/java/org/fedoraproject/xmvn/generator/logging/Logger.java b/src/main/java/org/fedoraproject/xmvn/generator/logging/Logger.java
index 3aee1aa..55d189c 100644
--- a/src/main/java/org/fedoraproject/xmvn/generator/logging/Logger.java
+++ b/src/main/java/org/fedoraproject/xmvn/generator/logging/Logger.java
@@ -71,4 +71,10 @@ public class Logger {
BOX_BOTTOM_LEFT + repeat(BOX_BORDER_HORIZONTAL, BOX_WIDTH - 2) + BOX_BOTTOM_RIGHT);
flush();
}
+
+ public static void debug(Throwable t) {
+ if (debugEnabled) {
+ t.printStackTrace();
+ }
+ }
}
diff --git a/src/main/java/org/fedoraproject/xmvn/generator/maven/MavenGenerator.java b/src/main/java/org/fedoraproject/xmvn/generator/maven/MavenGenerator.java
index 69c5a46..ae63d1b 100644
--- a/src/main/java/org/fedoraproject/xmvn/generator/maven/MavenGenerator.java
+++ b/src/main/java/org/fedoraproject/xmvn/generator/maven/MavenGenerator.java
@@ -295,8 +295,8 @@ class MavenGenerator implements Generator {
try (StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw)) {
sw.append("Unable to generate POM dependencies: ");
- e.printStackTrace(pw);
Logger.debug(sw.toString());
+ Logger.debug(e);
} catch (IOException e1) {
throw new UncheckedIOException(e1);
}
diff --git a/src/main/java/org/fedoraproject/xmvn/generator/transformer/TransformerHook.java b/src/main/java/org/fedoraproject/xmvn/generator/transformer/TransformerHook.java
index 5914be4..436c59c 100644
--- a/src/main/java/org/fedoraproject/xmvn/generator/transformer/TransformerHook.java
+++ b/src/main/java/org/fedoraproject/xmvn/generator/transformer/TransformerHook.java
@@ -64,12 +64,14 @@ class TransformerHook implements Hook {
try {
jarTransformer.transformJar(filePath);
} catch (IOException e) {
- e.printStackTrace();
+ // Continue despite exception
+ Logger.debug(e);
}
}
}
} catch (IOException e) {
- e.printStackTrace();
+ // Continue despite exception
+ Logger.debug(e);
}
}
--
2.49.0

View file

@ -1,35 +0,0 @@
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Fri May 31 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.2-4
- Switch to a newer patch macro syntax
* Thu Feb 22 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.2-3
- Switch to Java 21 for runtime
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Dec 11 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.2-1
- Update to upstream version 1.2.2
* Wed Aug 30 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.1-4
- Enable JPMS provides and JAR transformation in ELN
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Mar 17 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.1-2
- Enable javadoc package
* Mon Mar 13 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.1-1
- Update to upstream version 1.2.1
* Fri Mar 10 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.0-1
- Update to upstream version 1.2.0
* Mon Mar 06 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1.0-1
- Update to upstream version 1.1.0
* Mon Mar 06 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.0.0-1
- Initial packaging

View file

@ -1,7 +1,7 @@
summary: Run javapackages-specific tests
discover:
how: fmf
url: https://gitlab.com/redhat/centos-stream/tests/javapackages.git
ref: f43
url: https://src.fedoraproject.org/tests/javapackages
ref: f40
execute:
how: tmt

View file

@ -1,4 +1,4 @@
summary: Basic smoke test
summary: Run smoke tests
discover:
how: fmf
execute:

View file

@ -1 +1 @@
SHA512 (xmvn-generator-2.1.1.tar.zst) = b3d0950fddd25bd9bc998c6b62b4a4784d36a00e06f2c2764cfb8a04ecd7397e771c925b7b0b0cb116664aeeae250e8fb9049a14b564392ae7d861cc4b40e0bd
SHA512 (xmvn-generator-1.2.2.tar.gz) = 7d4a71ed8847456d70df6357864ffd877bf36ffb843138f3ba0e932ee24957dcefe35c0f1bf2f2b7693ec927a58d0dc55e66edbcd15f6741d1149bf1799d4de1

View file

@ -6,6 +6,9 @@ rlJournalStart
rlPhaseStartSetup
rlAssertRpm xmvn-generator
rlAssertRpm javapackages-local
rlAssertRpm rpm-build
rlAssertRpm java-21-openjdk-devel
rlPhaseEnd
rlPhaseStartTest

View file

@ -1,43 +1,53 @@
%bcond bootstrap 0
%global debug_package %{nil}
%bcond_with bootstrap
Name: xmvn-generator
Version: 2.1.1
Release: %autorelease
Version: 1.2.2
Release: 3%{?dist}
Summary: RPM dependency generator for Java
License: Apache-2.0
URL: https://github.com/fedora-java/xmvn-generator
BuildArch: noarch
ExclusiveArch: %{java_arches} noarch
ExclusiveArch: %{java_arches}
Source: https://github.com/fedora-java/xmvn-generator/releases/download/%{version}/xmvn-generator-%{version}.tar.zst
Source0: https://github.com/fedora-java/xmvn-generator/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
# https://github.com/fedora-java/xmvn-generator/pull/37
Patch: 0001-Add-commons-lang3-to-generator-classpath.patch
Patch0: 0001-Use-OpenJDK-21.patch
Patch1: 0002-Enable-JPMS-provides-and-JAR-transformer.patch
BuildRequires: gcc
BuildRequires: rpm-devel
%if %{with bootstrap}
BuildRequires: javapackages-bootstrap
%else
BuildRequires: maven-local-openjdk25
BuildRequires: mvn(io.kojan:dola-bsx-api)
BuildRequires: maven-local
BuildRequires: mvn(org.apache.commons:commons-compress)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.easymock:easymock)
BuildRequires: mvn(org.junit.jupiter:junit-jupiter)
BuildRequires: mvn(org.ow2.asm:asm)
%endif
Requires: dola-bsx
# TODO Remove in Fedora 46
Obsoletes: %{name}-javadoc < 2.0.2-9
Requires: rpm-build
Requires: lujavrite
Requires: java-21-openjdk-headless
%description
XMvn Generator is a dependency generator for RPM Package Manager
written in Java and Lua.
written in Java and Lua, that uses LuJavRite library to call Java code
from Lua.
%{?javadoc_package}
%prep
%autosetup -p1 -C
%setup -q
%patch0 -p1
%if !0%{?fedora}
%patch1 -p1
%endif
%mvn_file : %{name}
%build
%mvn_build -j -- -P\!quality
%mvn_build
%install
%mvn_install
@ -45,16 +55,42 @@ install -D -p -m 644 src/main/lua/xmvn-generator.lua %{buildroot}%{_rpmluadir}/x
install -D -p -m 644 src/main/rpm/macros.xmvngen %{buildroot}%{_rpmmacrodir}/macros.xmvngen
install -D -p -m 644 src/main/rpm/macros.xmvngenhook %{buildroot}%{_sysconfdir}/rpm/macros.xmvngenhook
install -D -p -m 644 src/main/rpm/xmvngen.attr %{buildroot}%{_fileattrsdir}/xmvngen.attr
install -D -p -m 644 src/main/conf/xmvn-generator.conf %{buildroot}%{_javaconfdir}/dola/classworlds/90-xmvn-generator.conf
%files -f .mfiles
%{_rpmluadir}/*
%{_rpmmacrodir}/*
%{_fileattrsdir}/*
%{_sysconfdir}/rpm/*
%{_javaconfdir}/dola/classworlds/90-xmvn-generator.conf
%license LICENSE NOTICE
%doc README.md
%changelog
%autochangelog
* Thu Feb 22 2024 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.2-3
- Switch to Java 21 for runtime
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Mon Dec 11 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.2-1
- Update to upstream version 1.2.2
* Wed Aug 30 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.1-4
- Enable JPMS provides and JAR transformation in ELN
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Mar 17 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.1-2
- Enable javadoc package
* Mon Mar 13 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.1-1
- Update to upstream version 1.2.1
* Fri Mar 10 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.2.0-1
- Update to upstream version 1.2.0
* Mon Mar 06 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.1.0-1
- Update to upstream version 1.1.0
* Mon Mar 06 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.0.0-1
- Initial packaging