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