Bootstrap Maven as non-modular packages

Resolves: rhbz#1951482
This commit is contained in:
Mikolaj Izdebski 2021-06-08 20:17:56 +02:00
parent 39ee8ddb44
commit 16a5289c6f
1 changed files with 100 additions and 26 deletions

View File

@ -1,17 +1,28 @@
# Workaround for rhbz#1969370: __bootstrap macro is not defined in
# CentOS Stream, See https://bugzilla.redhat.com/1969370
%global __bootstrap ~bootstrap
%bcond_without bootstrap
%if 0%{?fedora}
%bcond_without ivy
%else
%bcond_with ivy
%endif
# Don't generate requires on jpackage-utils and java-headless for # Don't generate requires on jpackage-utils and java-headless for
# provided pseudo-artifacts: com.sun:tools and sun.jdk:jconsole. # 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$ %global __requires_exclude_from %{?__requires_exclude_from:%__requires_exclude_from|}/maven-metadata/javapackages-metadata.xml$
%global python_prefix python3 %global python_prefix python3
%global python_interpreter %{?__python3}%{!?__python3:dummy} %global python_interpreter %{?__python3}%{!?__python3:dummy}
%global python_sitelib %{python3_sitelib}
%global default_jdk %{?_root_prefix}%{!?_root_prefix:%{_prefix}}/lib/jvm/java-11-openjdk %global default_jdk %{_prefix}/lib/jvm/java-11-openjdk
%global default_jre %{?_root_prefix}%{!?_root_prefix:%{_prefix}}/lib/jvm/jre-11-openjdk %global default_jre %{_prefix}/lib/jvm/jre-11-openjdk
Name: javapackages-tools Name: javapackages-tools
Version: 6.0.0~alpha Version: 6.0.0~alpha
Release: 1%{?dist} Release: 8%{?dist}
Summary: Macros and scripts for Java packaging support Summary: Macros and scripts for Java packaging support
License: BSD License: BSD
URL: https://github.com/fedora-java/javapackages URL: https://github.com/fedora-java/javapackages
@ -62,29 +73,21 @@ install their content.
Summary: Macros and scripts for Maven packaging support Summary: Macros and scripts for Maven packaging support
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Requires: javapackages-local = %{version}-%{release} Requires: javapackages-local = %{version}-%{release}
Requires: (%{_bindir}/xmvn or javapackages-bootstrap) %if %{without bootstrap}
Requires: (mvn(org.fedoraproject.xmvn:xmvn-mojo) or javapackages-bootstrap) Requires: %{_bindir}/xmvn
Requires: mvn(org.fedoraproject.xmvn:xmvn-mojo)
# Common Maven plugins required by almost every build. It wouldn't make # Common Maven plugins required by almost every build. It wouldn't make
# sense to explicitly require them in every package built with Maven. # sense to explicitly require them in every package built with Maven.
Requires: (mvn(org.apache.maven.plugins:maven-compiler-plugin) or javapackages-bootstrap) Requires: mvn(org.apache.maven.plugins:maven-compiler-plugin)
Requires: (mvn(org.apache.maven.plugins:maven-jar-plugin) or javapackages-bootstrap) Requires: mvn(org.apache.maven.plugins:maven-jar-plugin)
Requires: (mvn(org.apache.maven.plugins:maven-resources-plugin) or javapackages-bootstrap) Requires: mvn(org.apache.maven.plugins:maven-resources-plugin)
Requires: (mvn(org.apache.maven.plugins:maven-surefire-plugin) or javapackages-bootstrap) Requires: mvn(org.apache.maven.plugins:maven-surefire-plugin)
%endif
%description -n maven-local %description -n maven-local
This package provides macros and scripts to support packaging Maven artifacts. This package provides macros and scripts to support packaging Maven artifacts.
%package -n gradle-local %if %{with ivy}
Summary: Local mode for Gradle
Requires: %{name} = %{version}-%{release}
Requires: javapackages-local = %{version}-%{release}
Requires: gradle >= 2.2.1-2
Requires: xmvn-connector-gradle
%description -n gradle-local
This package implements local mode for Gradle, which allows artifact
resolution using XMvn resolver.
%package -n ivy-local %package -n ivy-local
Summary: Local mode for Apache Ivy Summary: Local mode for Apache Ivy
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
@ -95,6 +98,7 @@ Requires: xmvn-connector-ivy
%description -n ivy-local %description -n ivy-local
This package implements local mode for Apache Ivy, which allows This package implements local mode for Apache Ivy, which allows
artifact resolution using XMvn resolver. artifact resolution using XMvn resolver.
%endif
%package -n %{python_prefix}-javapackages %package -n %{python_prefix}-javapackages
Summary: Module for handling various files for Java packaging Summary: Module for handling various files for Java packaging
@ -107,11 +111,15 @@ packaging in Linux distributions
%package -n javapackages-local %package -n javapackages-local
Summary: Non-essential macros and scripts for Java packaging support Summary: Non-essential macros and scripts for Java packaging support
Requires: javapackages-generators = %{version}-%{release} Requires: javapackages-generators = %{version}-%{release}
Requires: (%{_bindir}/xmvn-install or javapackages-bootstrap) %if %{with bootstrap}
Requires: (%{_bindir}/xmvn-subst or javapackages-bootstrap) Requires: javapackages-bootstrap
Requires: (%{_bindir}/xmvn-resolve or javapackages-bootstrap) %else
Requires: %{_bindir}/xmvn-install
Requires: %{_bindir}/xmvn-subst
Requires: %{_bindir}/xmvn-resolve
# Java build systems don't have hard requirement on java-devel, so it should be there # Java build systems don't have hard requirement on java-devel, so it should be there
Requires: java-11-openjdk-devel Requires: java-11-openjdk-devel
%endif
%description -n javapackages-local %description -n javapackages-local
This package provides non-essential macros and scripts to support Java packaging. This package provides non-essential macros and scripts to support Java packaging.
@ -150,6 +158,14 @@ sed -i '/${mandir}/d' install
sed -e 's/.[17]$/&*/' -i files-* sed -e 's/.[17]$/&*/' -i files-*
rm -rf %{buildroot}%{_bindir}/gradle-local
rm -rf %{buildroot}%{_datadir}/gradle-local
rm -rf %{buildroot}%{_mandir}/man7/gradle_build.7
%if %{without ivy}
rm -rf %{buildroot}%{_sysconfdir}/ivy
rm -rf %{buildroot}%{_sysconfdir}/ant.d
%endif
mkdir -p %{buildroot}%{_datadir}/xmvn/conf/ mkdir -p %{buildroot}%{_datadir}/xmvn/conf/
cp -p %{SOURCE2} %{buildroot}%{_datadir}/xmvn/conf/toolchains.xml cp -p %{SOURCE2} %{buildroot}%{_datadir}/xmvn/conf/toolchains.xml
@ -170,9 +186,9 @@ install -p -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/java/javapackages-config
%files -n maven-local %files -n maven-local
%files -n gradle-local -f files-gradle %if %{with ivy}
%files -n ivy-local -f files-ivy %files -n ivy-local -f files-ivy
%endif
%files -n maven-local-openjdk8 %files -n maven-local-openjdk8
%{_datadir}/xmvn/conf %{_datadir}/xmvn/conf
@ -181,15 +197,61 @@ install -p -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/java/javapackages-config
%license LICENSE %license LICENSE
%changelog %changelog
* Tue Jun 08 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 6.0.0~alpha-8
- Bootstrap Maven for CentOS Stream 9
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 6.0.0~alpha-7
- Rebuilt for Python 3.10
* Mon May 17 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 6.0.0~alpha-6
- Bootstrap build
- Non-bootstrap build
* Mon May 17 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 6.0.0~alpha-5
- Implement bootstrap mode
* Thu May 13 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 6.0.0~alpha-4
- Disable skippedPlugins for now
* Thu May 13 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 6.0.0~alpha-3
- Fix typos in Requires
* Thu May 13 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 6.0.0~alpha-2
- Disable javapackages-bootstrap for now
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.0-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Nov 30 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.0-14
- Add javapackages-generators provides
* Wed Jul 29 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 6.0.0~alpha-1 * Wed Jul 29 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 6.0.0~alpha-1
- Update to upstream version 6.0.0~alpha - Update to upstream version 6.0.0~alpha
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.0-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jul 17 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-9 * Fri Jul 17 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-9
- Add separate subpackage with RPM generators - Add separate subpackage with RPM generators
* Thu Jul 16 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-8 * Thu Jul 16 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-8
- Don't use networking during tests - Don't use networking during tests
* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 5.3.0-12
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Wed Jun 10 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.0-11
- Use XMvn Javadoc MOJO for generating API docs
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 5.3.0-10
- Rebuilt for Python 3.9
* Tue Apr 28 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.0-10
- Switch to OpenJDK 11 as default JDK
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.0-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jan 23 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-7 * Thu Jan 23 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-7
- Add OpenJDK 8 toolchain configuration - Add OpenJDK 8 toolchain configuration
@ -199,6 +261,18 @@ install -p -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/java/javapackages-config
* Fri Oct 25 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-5 * Fri Oct 25 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-5
- Switch to OpenJDK 11 as default JDK - Switch to OpenJDK 11 as default JDK
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 5.3.0-8
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 5.3.0-7
- Rebuilt for Python 3.8
* Sun Aug 11 2019 Fabio Valentini <decathorpe@gmail.com> - 5.3.0-6
- Disable gradle support by default.
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 5.3.0-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Jun 28 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-4 * Fri Jun 28 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-4
- Enable namespaced dependency generation - Enable namespaced dependency generation