diff --git a/.gitignore b/.gitignore
index 6bb0e60..81283e8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/6.0.0.tar.gz
+SOURCES/6.4.0.tar.gz
diff --git a/.javapackages-tools.metadata b/.javapackages-tools.metadata
index 2e2c2d2..5c7dc4f 100644
--- a/.javapackages-tools.metadata
+++ b/.javapackages-tools.metadata
@@ -1 +1 @@
-0c2f59a61e8e8eb664f679efab383deadaed2cc6 SOURCES/6.0.0.tar.gz
+deb1a7f4b84ee8a2c578ec60d9aba3989a764e0d SOURCES/6.4.0.tar.gz
diff --git a/SOURCES/javapackages-config.json b/SOURCES/javapackages-config.json
index d78ebe1..22f0259 100644
--- a/SOURCES/javapackages-config.json
+++ b/SOURCES/javapackages-config.json
@@ -1,8 +1,7 @@
{
"maven.req": {
"always_generate": [
- "javapackages-filesystem",
- "(java-headless or java-17-headless or java-11-headless or java-1.8.0-headless)"
+ "javapackages-filesystem"
],
"java_requires": {
"skip": true
diff --git a/SOURCES/toolchains-openjdk11.xml b/SOURCES/toolchains-openjdk11.xml
deleted file mode 100644
index 77e2202..0000000
--- a/SOURCES/toolchains-openjdk11.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- jdk
-
- xmvn
-
-
- /usr/lib/jvm/java-11-openjdk
-
-
-
diff --git a/SOURCES/toolchains-openjdk17.xml b/SOURCES/toolchains-openjdk17.xml
deleted file mode 100644
index 1302dce..0000000
--- a/SOURCES/toolchains-openjdk17.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- jdk
-
- xmvn
-
-
- /usr/lib/jvm/java-17-openjdk
-
-
-
diff --git a/SOURCES/toolchains-openjdk8.xml b/SOURCES/toolchains-openjdk8.xml
deleted file mode 100644
index 25d130f..0000000
--- a/SOURCES/toolchains-openjdk8.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- jdk
-
- xmvn
-
-
- /usr/lib/jvm/java-1.8.0-openjdk
-
-
-
diff --git a/SPECS/javapackages-tools.spec b/SPECS/javapackages-tools.spec
index e6ae8f3..576c13f 100644
--- a/SPECS/javapackages-tools.spec
+++ b/SPECS/javapackages-tools.spec
@@ -1,55 +1,40 @@
-%bcond_with bootstrap
-
+%if 0%{?fedora}
+%bcond_without ivy
+%else
%bcond_with ivy
-
-# Don't generate requires on jpackage-utils and java-headless for
-# provided pseudo-artifacts: com.sun:tools and sun.jdk:jconsole.
-%global __requires_exclude_from %{?__requires_exclude_from:%__requires_exclude_from|}/maven-metadata/javapackages-metadata.xml$
+%endif
%global python_prefix python3
%global python_interpreter %{?__python3}%{!?__python3:dummy}
-%global default_jdk %{_prefix}/lib/jvm/java-11-openjdk
-%global default_jre %{_prefix}/lib/jvm/jre-11-openjdk
+%global maven_home %{_usr}/share/xmvn
+
+%global _jpbindingdir %{_datadir}/jpbinding
Name: javapackages-tools
-Version: 6.0.0
-Release: 4%{?dist}
+Version: 6.4.0
+Release: 1%{?dist}
Summary: Macros and scripts for Java packaging support
-License: BSD
+License: BSD-3-Clause
URL: https://github.com/fedora-java/javapackages
BuildArch: noarch
Source0: https://github.com/fedora-java/javapackages/archive/%{version}.tar.gz
Source3: javapackages-config.json
-Source8: toolchains-openjdk8.xml
-Source11: toolchains-openjdk11.xml
-Source17: toolchains-openjdk17.xml
-
BuildRequires: coreutils
-BuildRequires: which
BuildRequires: make
+BuildRequires: rubygem-asciidoctor
BuildRequires: %{python_prefix}-devel
BuildRequires: %{python_prefix}-lxml
BuildRequires: %{python_prefix}-setuptools
-%if !0%{?rhel}
BuildRequires: %{python_prefix}-pytest
-BuildRequires: %{python_prefix}-pytest-cov
-%endif
Requires: javapackages-filesystem = %{version}-%{release}
Requires: coreutils
Requires: findutils
-Requires: which
-# default JRE
-Requires: java-11-openjdk-headless
Provides: jpackage-utils = %{version}-%{release}
-# These could be generated automatically, but then we would need to
-# depend on javapackages-local for dependency generator.
-Provides: mvn(com.sun:tools) = SYSTEM
-Provides: mvn(sun.jdk:jconsole) = SYSTEM
%description
This package provides macros and scripts to support Java packaging.
@@ -62,12 +47,13 @@ Provides: eclipse-filesystem = %{version}-%{release}
This package provides some basic directories into which Java packages
install their content.
-%package -n maven-local
+%package -n maven-local-openjdk8
Summary: Macros and scripts for Maven packaging support
+Requires: java-1.8.0-openjdk-devel
Requires: %{name} = %{version}-%{release}
-Requires: javapackages-local = %{version}-%{release}
-%if %{without bootstrap}
-Requires: %{_bindir}/xmvn
+Requires: javapackages-local-openjdk8 = %{version}-%{release}
+Requires: xmvn-minimal
+Requires: xmvn-toolchain-openjdk8
Requires: mvn(org.fedoraproject.xmvn:xmvn-mojo)
# Common Maven plugins required by almost every build. It wouldn't make
# sense to explicitly require them in every package built with Maven.
@@ -75,9 +61,64 @@ Requires: mvn(org.apache.maven.plugins:maven-compiler-plugin)
Requires: mvn(org.apache.maven.plugins:maven-jar-plugin)
Requires: mvn(org.apache.maven.plugins:maven-resources-plugin)
Requires: mvn(org.apache.maven.plugins:maven-surefire-plugin)
-%endif
-%description -n maven-local
+%description -n maven-local-openjdk8
+This package provides macros and scripts to support packaging Maven artifacts.
+
+%package -n maven-local-openjdk11
+Summary: Macros and scripts for Maven packaging support
+Obsoletes: maven-local < 6.3.0
+Provides: maven-local = %{version}-%{release}
+Requires: java-11-openjdk-devel
+Requires: %{name} = %{version}-%{release}
+Requires: javapackages-local-openjdk11 = %{version}-%{release}
+Requires: xmvn-minimal
+Requires: xmvn-toolchain-openjdk11
+Requires: mvn(org.fedoraproject.xmvn:xmvn-mojo)
+# Common Maven plugins required by almost every build. It wouldn't make
+# sense to explicitly require them in every package built with Maven.
+Requires: mvn(org.apache.maven.plugins:maven-compiler-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-jar-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-resources-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-surefire-plugin)
+
+%description -n maven-local-openjdk11
+This package provides macros and scripts to support packaging Maven artifacts.
+
+%package -n maven-local-openjdk17
+Summary: Macros and scripts for Maven packaging support
+Requires: java-17-openjdk-devel
+Requires: %{name} = %{version}-%{release}
+Requires: javapackages-local-openjdk17 = %{version}-%{release}
+Requires: xmvn-minimal
+Requires: xmvn-toolchain-openjdk17
+Requires: mvn(org.fedoraproject.xmvn:xmvn-mojo)
+# Common Maven plugins required by almost every build. It wouldn't make
+# sense to explicitly require them in every package built with Maven.
+Requires: mvn(org.apache.maven.plugins:maven-compiler-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-jar-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-resources-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-surefire-plugin)
+
+%description -n maven-local-openjdk17
+This package provides macros and scripts to support packaging Maven artifacts.
+
+%package -n maven-local-openjdk21
+Summary: Macros and scripts for Maven packaging support
+Requires: java-21-openjdk-devel
+Requires: %{name} = %{version}-%{release}
+Requires: javapackages-local-openjdk21 = %{version}-%{release}
+Requires: xmvn-minimal
+Requires: xmvn-toolchain-openjdk21
+Requires: mvn(org.fedoraproject.xmvn:xmvn-mojo)
+# Common Maven plugins required by almost every build. It wouldn't make
+# sense to explicitly require them in every package built with Maven.
+Requires: mvn(org.apache.maven.plugins:maven-compiler-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-jar-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-resources-plugin)
+Requires: mvn(org.apache.maven.plugins:maven-surefire-plugin)
+
+%description -n maven-local-openjdk21
This package provides macros and scripts to support packaging Maven artifacts.
%if %{with ivy}
@@ -101,20 +142,50 @@ Requires: %{python_prefix}-lxml
Module for handling, querying and manipulating of various files for Java
packaging in Linux distributions
-%package -n javapackages-local
+%package -n javapackages-local-openjdk8
Summary: Non-essential macros and scripts for Java packaging support
-Requires: javapackages-generators = %{version}-%{release}
-%if %{with bootstrap}
-Requires: javapackages-bootstrap
-%else
-Requires: %{_bindir}/xmvn-install
-Requires: %{_bindir}/xmvn-subst
-Requires: %{_bindir}/xmvn-resolve
+Requires: javapackages-common = %{version}-%{release}
+Requires: xmvn-tools
+# Java build systems don't have hard requirement on java-devel, so it should be there
+Requires: java-1.8.0-openjdk-devel
+Requires: (ant-openjdk8 if ant)
+
+%description -n javapackages-local-openjdk8
+This package provides non-essential macros and scripts to support Java packaging.
+
+%package -n javapackages-local-openjdk11
+Summary: Non-essential macros and scripts for Java packaging support
+Obsoletes: javapackages-local < 6.4.0
+Provides: javapackages-local = %{version}-%{release}
+Requires: javapackages-common = %{version}-%{release}
+Requires: xmvn-tools
# Java build systems don't have hard requirement on java-devel, so it should be there
Requires: java-11-openjdk-devel
-%endif
+Requires: (ant-openjdk11 if ant)
-%description -n javapackages-local
+%description -n javapackages-local-openjdk11
+This package provides non-essential macros and scripts to support Java packaging.
+
+%package -n javapackages-local-openjdk17
+Summary: Non-essential macros and scripts for Java packaging support
+Requires: javapackages-common = %{version}-%{release}
+Requires: xmvn-tools
+# Java build systems don't have hard requirement on java-devel, so it should be there
+Requires: java-17-openjdk-devel
+Requires: (ant-openjdk17 if ant)
+
+%description -n javapackages-local-openjdk17
+This package provides non-essential macros and scripts to support Java packaging.
+
+%package -n javapackages-local-openjdk21
+Summary: Non-essential macros and scripts for Java packaging support
+Requires: javapackages-common = %{version}-%{release}
+Requires: xmvn-tools
+# Java build systems don't have hard requirement on java-devel, so it should be there
+Requires: java-21-openjdk-devel
+Requires: (ant-openjdk21 if ant)
+
+%description -n javapackages-local-openjdk21
This package provides non-essential macros and scripts to support Java packaging.
%package -n javapackages-generators
@@ -126,43 +197,33 @@ Requires: %{python_interpreter}
%description -n javapackages-generators
RPM dependency generators to support Java packaging.
-%package -n maven-local-openjdk8
-Summary: OpenJDK 8 toolchain for XMvn
-RemovePathPostfixes: -openjdk8
-Requires: maven-local
-Requires: java-1.8.0-openjdk-devel
+%package -n javapackages-common
+Summary: Non-essential macros and scripts for Java packaging support
+Requires: javapackages-generators = %{version}-%{release}
-%description -n maven-local-openjdk8
-OpenJDK 8 toolchain for XMvn
+%description -n javapackages-common
+This package provides non-essential, but commonly used macros and
+scripts to support Java packaging.
-%package -n maven-local-openjdk11
-Summary: OpenJDK 11 toolchain for XMvn
-RemovePathPostfixes: -openjdk11
-Requires: maven-local
-Requires: java-11-openjdk-devel
+%package -n javapackages-compat
+Summary: Previously deprecated macros and scripts for Java packaging support
+Requires: javapackages-local = %{version}-%{release}
-%description -n maven-local-openjdk11
-OpenJDK 11 toolchain for XMvn
-
-%package -n maven-local-openjdk17
-Summary: OpenJDK 17 toolchain for XMvn
-RemovePathPostfixes: -openjdk17
-Requires: maven-local
-Requires: java-17-openjdk-devel
-
-%description -n maven-local-openjdk17
-OpenJDK 17 toolchain for XMvn
+%description -n javapackages-compat
+This package provides previously deprecated macros and scripts to
+support Java packaging as well as some additions to them.
%prep
-%setup -q -n javapackages-%{version}
-
-sed -i '/^manpage /d' build
-sed -i '/${mandir}/d' install
+%autosetup -p1 -n javapackages-%{version}
%build
%configure --pyinterpreter=%{python_interpreter} \
- --default_jdk=%{default_jdk} --default_jre=%{default_jre} \
- --rpmmacrodir=%{rpmmacrodir}
+ --rpmmacrodir=%{_rpmmacrodir} --rpmconfigdir=%{_rpmconfigdir} \
+ --m2home=%{maven_home} \
+ --jvm=openjdk8=%{_jvmdir}/java-1.8.0-openjdk \
+ --jvm=openjdk11=%{_jvmdir}/jre-11-openjdk \
+ --jvm=openjdk17=%{_jvmdir}/jre-17-openjdk \
+ --jvm=openjdk21=%{_jvmdir}/jre-21-openjdk
./build
%install
@@ -178,48 +239,99 @@ rm -rf %{buildroot}%{_sysconfdir}/ivy
rm -rf %{buildroot}%{_sysconfdir}/ant.d
%endif
-mkdir -p %{buildroot}%{_datadir}/xmvn/conf/
-cp -p %{SOURCE8} %{buildroot}%{_datadir}/xmvn/conf/toolchains.xml-openjdk8
-cp -p %{SOURCE11} %{buildroot}%{_datadir}/xmvn/conf/toolchains.xml-openjdk11
-cp -p %{SOURCE17} %{buildroot}%{_datadir}/xmvn/conf/toolchains.xml-openjdk17
-
install -p -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/java/javapackages-config.json
-%if !0%{?rhel}
%check
-#./check
-%endif
+./check
+
+%transfiletriggerin -- %{_jpbindingdir}
+shopt -s nullglob
+grep -E '^%{_jpbindingdir}/.*\.d/' | sed 's|%{_jpbindingdir}/\(.*\)/\(.*\)|\1 \2|' | while read dir tgt; do
+ lnk=${dir/%.d}
+ ln -sf "$dir/$tgt" %{_jpbindingdir}/"$lnk"
+done
+
+%transfiletriggerun -- %{_jpbindingdir}
+shopt -s nullglob
+grep -E '^%{_jpbindingdir}/.*\.d/' | sed 's|%{_jpbindingdir}/\(.*\)/\(.*\)|\1 \2|' | while read dir tgt; do
+ lnk=${dir/%.d}
+ was=$(readlink %{_jpbindingdir}/"$lnk" || :)
+ if [[ "$was" = "$dir/$tgt" ]]; then
+ unlink %{_jpbindingdir}/"$lnk"
+ fi
+done
+
+%transfiletriggerpostun -- %{_jpbindingdir}
+shopt -s nullglob
+for bindd in %{_jpbindingdir}/*.d/; do
+ lnk=${bindd/%.d\/}
+ if ! [[ -e "$lnk" ]]; then
+ for ftgt in "$bindd"*; do
+ tgt=$(realpath -m -s --relative-to=%{_jpbindingdir} "$ftgt")
+ ln -sf "$tgt" "$lnk"
+ break
+ done
+ fi
+done
%files -f files-tools
%files -n javapackages-filesystem -f files-filesystem
+%files -n javapackages-common -f files-common
+
%files -n javapackages-generators -f files-generators
-%files -n javapackages-local -f files-local
+%files -n javapackages-compat -f files-compat
-%files -n maven-local
+%files -n javapackages-local-openjdk8 -f files-local-openjdk8
+
+%files -n javapackages-local-openjdk11 -f files-local-openjdk11
+
+%files -n javapackages-local-openjdk17 -f files-local-openjdk17
+
+%files -n javapackages-local-openjdk21 -f files-local-openjdk21
+
+%files -n maven-local-openjdk8
+
+%files -n maven-local-openjdk11
+
+%files -n maven-local-openjdk17
+
+%files -n maven-local-openjdk21
%if %{with ivy}
%files -n ivy-local -f files-ivy
%endif
-%files -n maven-local-openjdk8
-%dir %{_datadir}/xmvn/conf
-%{_datadir}/xmvn/conf/toolchains.xml-openjdk8
-
-%files -n maven-local-openjdk11
-%dir %{_datadir}/xmvn/conf
-%{_datadir}/xmvn/conf/toolchains.xml-openjdk11
-
-%files -n maven-local-openjdk17
-%dir %{_datadir}/xmvn/conf
-%{_datadir}/xmvn/conf/toolchains.xml-openjdk17
-
%files -n %{python_prefix}-javapackages -f files-python
%license LICENSE
%changelog
+* Tue Dec 10 2024 Mikolaj Izdebski - 6.4.0-1
+- Update to upstream version 6.4.0
+
+* Sun Nov 24 2024 Mikolaj Izdebski - 6.0.0-9
+- Rebuild
+
+* Sun Nov 24 2024 Mikolaj Izdebski - 6.0.0-8
+- Rebuild
+
+* Mon Nov 18 2024 Marián Konček - 6.0.0-7
+- Use Java 11 build tool bindings for package builds
+
+* Mon Nov 04 2024 Marián Konček - 6.0.0-6
+- Drop generated Requires on various Java versions
+- Related: RHEL-62409
+
+* Mon Oct 21 2024 Marián Konček - 6.0.0-5
+- Include java-21-headless in generated auto-requires
+- Related: RHEL-62409
+
+* Mon Oct 21 2024 Marián Konček - 6.0.0-5
+- Make OpenJDK 17 the default JRE/JDK
+- Related: RHEL-62403
+
* Wed Jan 25 2023 Marián Konček - 6.0.0-4
- Add generated Requires on multiple versions of java-headless
- Related: rhbz#2164437