diff --git a/maven.spec b/maven.spec index ae9bd52..0aa7e33 100644 --- a/maven.spec +++ b/maven.spec @@ -1,5 +1,6 @@ %bcond_with bootstrap +%global java_arches aarch64 ppc64le s390x x86_64 %global bundled_slf4j_version 1.7.30 %global homedir %{_datadir}/%{name}%{?maven_version_suffix} %global confdir %{_sysconfdir}/%{name}%{?maven_version_suffix} @@ -7,14 +8,14 @@ Name: maven Epoch: 1 Version: 3.6.3 -Release: 21%{?dist} +Release: 22%{?dist} Summary: Java project management and project comprehension tool # maven itself is ASL 2.0 # bundled slf4j is MIT License: ASL 2.0 and MIT URL: https://maven.apache.org/ BuildArch: noarch -ExclusiveArch: aarch64 ppc64le s390x x86_64 noarch +ExclusiveArch: %{java_arches} noarch Source0: https://archive.apache.org/dist/%{name}/%{name}-3/%{version}/source/apache-%{name}-%{version}-src.tar.gz Source1: maven-bash-completion @@ -80,7 +81,7 @@ BuildRequires: mvn(org.slf4j:slf4j-simple::sources:) %endif Requires: %{name}-lib = %{epoch}:%{version}-%{release} -Requires: %{name}-jdk-binding = %{epoch}:%{version}-%{release} +Requires: %{name}-jdk-binding Suggests: %{name}-openjdk17 = %{epoch}:%{version}-%{release} Requires: which @@ -108,55 +109,94 @@ Provides: bundled(slf4j) = %{bundled_slf4j_version} %description lib Core part of Apache Maven that can be used as a library. +%package javadoc +Summary: API documentation for %{name} + +%description javadoc +This package provides %{summary}. + +%if !0%{?specpartsdir:1} + %package openjdk8 Summary: OpenJDK 8 binding for Maven -RemovePathPostfixes: -openjdk8 -Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} -Requires: maven = %{epoch}:%{version}-%{release} -Requires: java-1.8.0-openjdk-headless -Recommends: java-1.8.0-openjdk-devel -Conflicts: maven-jdk-binding +Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} +Requires: java-1.8.0-openjdk-headless +Recommends: java-1.8.0-openjdk-devel +Requires: javapackages-tools >= 6.4.0 +Requires(meta): maven = %{epoch}:%{version}-%{release} %description openjdk8 Configures Maven to run with OpenJDK 8. +%files openjdk8 +%ghost %{_jpbindingdir}/maven.conf +%dir %{_jpbindingdir}/maven.conf.d +%{_jpbindingdir}/maven.conf.d/openjdk8 + %package openjdk11 Summary: OpenJDK 11 binding for Maven -RemovePathPostfixes: -openjdk11 -Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} -Requires: maven = %{epoch}:%{version}-%{release} -Requires: java-11-openjdk-headless -Recommends: java-11-openjdk-devel -Conflicts: maven-jdk-binding +Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} +Requires: java-11-openjdk-headless +Recommends: java-11-openjdk-devel +Requires: javapackages-tools >= 6.4.0 +Requires(meta): maven = %{epoch}:%{version}-%{release} %description openjdk11 Configures Maven to run with OpenJDK 11. +%files openjdk11 +%ghost %{_jpbindingdir}/maven.conf +%dir %{_jpbindingdir}/maven.conf.d +%{_jpbindingdir}/maven.conf.d/openjdk11 + %package openjdk17 Summary: OpenJDK 17 binding for Maven -RemovePathPostfixes: -openjdk17 -Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} -Requires: maven = %{epoch}:%{version}-%{release} -Requires: java-17-openjdk-headless -Recommends: java-17-openjdk-devel -Conflicts: maven-jdk-binding +Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} +Requires: java-17-openjdk-headless +Recommends: java-17-openjdk-devel +Requires: javapackages-tools >= 6.4.0 +Requires(meta): maven = %{epoch}:%{version}-%{release} %description openjdk17 Configures Maven to run with OpenJDK 17. +%files openjdk17 +%ghost %{_jpbindingdir}/maven.conf +%dir %{_jpbindingdir}/maven.conf.d +%{_jpbindingdir}/maven.conf.d/openjdk17 + %package openjdk21 Summary: OpenJDK 21 binding for Maven -RemovePathPostfixes: -openjdk21 -Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} -Requires: maven = %{epoch}:%{version}-%{release} -Requires: java-21-openjdk-headless -Recommends: java-21-openjdk-devel -Conflicts: maven-jdk-binding +Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} +Requires: java-21-openjdk-headless +Recommends: java-21-openjdk-devel +Requires: javapackages-tools >= 6.4.0 +Requires(meta): maven = %{epoch}:%{version}-%{release} %description openjdk21 Configures Maven to run with OpenJDK 21. -%{?javadoc_package} +%files openjdk21 +%ghost %{_jpbindingdir}/maven.conf +%dir %{_jpbindingdir}/maven.conf.d +%{_jpbindingdir}/maven.conf.d/openjdk21 + +%package unbound +Summary: Unbound Maven binding +Provides: maven-jdk-binding = %{epoch}:%{version}-%{release} +Requires: javapackages-tools >= 6.4.0 +Requires(meta): maven = %{epoch}:%{version}-%{release} + +%description unbound +Configures Maven to run with Java discovered using JAVA_HOME and PATH +environment variables. + +%files unbound +%ghost %{_jpbindingdir}/maven.conf +%dir %{_jpbindingdir}/maven.conf.d +%{_jpbindingdir}/maven.conf.d/unbound + +%endif %prep %setup -q -n apache-%{name}-%{version} @@ -259,11 +299,21 @@ ln -s %{homedir}/bin/mvnDebug.1.gz %{buildroot}%{_mandir}/man1/mvnDebug%{maven_v %endif # JDK bindings +%if !0%{?specpartsdir:1} +export RPM_SPECPARTS_DIR=/tmp +%endif install -d -m 755 %{buildroot}%{_javaconfdir}/ -echo JAVA_HOME=%{_jvmlibdir}/jre-1.8.0-openjdk >%{buildroot}%{_javaconfdir}/maven.conf-openjdk8 -echo JAVA_HOME=%{_jvmlibdir}/jre-11-openjdk >%{buildroot}%{_javaconfdir}/maven.conf-openjdk11 -echo JAVA_HOME=%{_jvmlibdir}/jre-17-openjdk >%{buildroot}%{_javaconfdir}/maven.conf-openjdk17 -echo JAVA_HOME=%{_jvmlibdir}/jre-21-openjdk >%{buildroot}%{_javaconfdir}/maven.conf-openjdk21 +ln -sf %{_jpbindingdir}/maven%{?maven_version_suffix}.conf %{buildroot}%{_javaconfdir}/maven%{?maven_version_suffix}.conf +echo JAVA_HOME=%{_jvmdir}/jre-1.8.0-openjdk >%{buildroot}%{_javaconfdir}/maven%{?maven_version_suffix}-openjdk8.conf +echo JAVA_HOME=%{_jvmdir}/jre-11-openjdk >%{buildroot}%{_javaconfdir}/maven%{?maven_version_suffix}-openjdk11.conf +echo JAVA_HOME=%{_jvmdir}/jre-17-openjdk >%{buildroot}%{_javaconfdir}/maven%{?maven_version_suffix}-openjdk17.conf +echo JAVA_HOME=%{_jvmdir}/jre-21-openjdk >%{buildroot}%{_javaconfdir}/maven%{?maven_version_suffix}-openjdk21.conf +%jp_binding --verbose --variant openjdk8 --ghost maven%{?maven_version_suffix}.conf --target %{_javaconfdir}/maven%{?maven_version_suffix}-openjdk8.conf --provides %{name}-jdk-binding --requires java-1.8.0-openjdk-headless --recommends java-1.8.0-openjdk-devel +%jp_binding --verbose --variant openjdk11 --ghost maven%{?maven_version_suffix}.conf --target %{_javaconfdir}/maven%{?maven_version_suffix}-openjdk11.conf --provides %{name}-jdk-binding --requires java-11-openjdk-headless --recommends java-11-openjdk-devel +%jp_binding --verbose --variant openjdk17 --ghost maven%{?maven_version_suffix}.conf --target %{_javaconfdir}/maven%{?maven_version_suffix}-openjdk17.conf --provides %{name}-jdk-binding --requires java-17-openjdk-headless --recommends java-17-openjdk-devel +%jp_binding --verbose --variant openjdk21 --ghost maven%{?maven_version_suffix}.conf --target %{_javaconfdir}/maven%{?maven_version_suffix}-openjdk21.conf --provides %{name}-jdk-binding --requires java-21-openjdk-headless --recommends java-21-openjdk-devel +touch %{buildroot}%{_javaconfdir}/maven%{?maven_version_suffix}-unbound.conf +%jp_binding --verbose --variant unbound --ghost maven%{?maven_version_suffix}.conf --target %{_javaconfdir}/maven%{?maven_version_suffix}-unbound.conf --provides %{name}-jdk-binding %post @@ -282,6 +332,7 @@ if [[ $1 -eq 0 ]]; then update-alternatives --remove mvn %{homedir}/bin/mvn; fi %exclude %{homedir}/bin/mvn* %dir %{confdir} %dir %{confdir}/logging +%config %{_javaconfdir}/maven%{?maven_version_suffix}*.conf %config(noreplace) %{_sysconfdir}/m2%{?maven_version_suffix}.conf %config(noreplace) %{confdir}/settings.xml %config(noreplace) %{confdir}/logging/simplelogger.properties @@ -300,19 +351,14 @@ if [[ $1 -eq 0 ]]; then update-alternatives --remove mvn %{homedir}/bin/mvn; fi %{_mandir}/man1/mvnDebug%{maven_version_suffix}.1.gz %endif -%files openjdk8 -%config %{_javaconfdir}/maven.conf-openjdk8 - -%files openjdk11 -%config %{_javaconfdir}/maven.conf-openjdk11 - -%files openjdk17 -%config %{_javaconfdir}/maven.conf-openjdk17 - -%files openjdk21 -%config %{_javaconfdir}/maven.conf-openjdk21 +%files javadoc -f .mfiles-javadoc +%license LICENSE NOTICE %changelog +* Thu Dec 12 2024 Mikolaj Izdebski - 1:3.6.3-22 +- Implement new non-conflicting Java bindings +- Resolves: RHEL-54068, RHEL-54070, RHEL-54071, RHEL-54072 + * Sat Nov 23 2024 Marián Konček - 1:3.6.3-21 - Add noarch to ExclusiveArch