diff --git a/SPECS/maven.spec b/SPECS/maven.spec index 8bc5301..0aa7e33 100644 --- a/SPECS/maven.spec +++ b/SPECS/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,13 +8,14 @@ Name: maven Epoch: 1 Version: 3.6.3 -Release: 15%{?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: %{java_arches} noarch Source0: https://archive.apache.org/dist/%{name}/%{name}-3/%{version}/source/apache-%{name}-%{version}-src.tar.gz Source1: maven-bash-completion @@ -79,8 +81,8 @@ BuildRequires: mvn(org.slf4j:slf4j-simple::sources:) %endif Requires: %{name}-lib = %{epoch}:%{version}-%{release} -Requires: %{name}-jdk-binding = %{epoch}:%{version}-%{release} -Suggests: %{name}-openjdk11 = %{epoch}:%{version}-%{release} +Requires: %{name}-jdk-binding +Suggests: %{name}-openjdk17 = %{epoch}:%{version}-%{release} Requires: which @@ -107,43 +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. -%{?javadoc_package} +%files openjdk17 +%ghost %{_jpbindingdir}/maven.conf +%dir %{_jpbindingdir}/maven.conf.d +%{_jpbindingdir}/maven.conf.d/openjdk17 + +%package openjdk21 +Summary: OpenJDK 21 binding for Maven +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. + +%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} @@ -151,10 +204,10 @@ Configures Maven to run with OpenJDK 17. find -name '*.java' -exec sed -i 's/\r//' {} + find -name 'pom.xml' -exec sed -i 's/\r//' {} + -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 -%patch4 -p1 +%patch -P 1 -p1 +%patch -P 2 -p1 +%patch -P 3 -p1 +%patch -P 4 -p1 # not really used during build, but a precaution find -name '*.jar' -not -path '*/test/*' -delete @@ -246,10 +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 +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 @@ -268,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 @@ -286,16 +351,37 @@ 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 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 + +* Sat Nov 23 2024 Marián Konček - 1:3.6.3-20 +- Disable building on i686 + +* Sat Nov 23 2024 Marián Konček - 1:3.6.3-19 +- Switch to Fedora tests + +* Thu Nov 21 2024 Marián Konček - 1:3.6.3-18 +- Fix patch usage + +* Wed Nov 20 2024 Marián Konček - 1:3.6.3-17 +- Rebuild with regenerated Requires on Java + +* Thu Oct 17 2024 Marián Konček - 1:3.6.3-16 +- Suggest maven-openjdk17 +- Resolves: RHEL-62398 + +* Thu Oct 17 2024 Marián Konček - 1:3.6.3-16 +- Add maven-openjdk21 +- Resolves: RHEL-62407 + * Tue Jan 31 2023 Mikolaj Izdebski - 1:3.6.3-15 - Add missing Requires on which - Resolves: rhbz#2165596