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
# 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 python_prefix python3
%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_jre %{?_root_prefix}%{!?_root_prefix:%{_prefix}}/lib/jvm/jre-11-openjdk
%global default_jdk %{_prefix}/lib/jvm/java-11-openjdk
%global default_jre %{_prefix}/lib/jvm/jre-11-openjdk
Name: javapackages-tools
Version: 6.0.0~alpha
Release: 1%{?dist}
Release: 8%{?dist}
Summary: Macros and scripts for Java packaging support
License: BSD
URL: https://github.com/fedora-java/javapackages
@ -62,29 +73,21 @@ install their content.
Summary: Macros and scripts for Maven packaging support
Requires: %{name} = %{version}-%{release}
Requires: javapackages-local = %{version}-%{release}
Requires: (%{_bindir}/xmvn or javapackages-bootstrap)
Requires: (mvn(org.fedoraproject.xmvn:xmvn-mojo) or javapackages-bootstrap)
%if %{without bootstrap}
Requires: %{_bindir}/xmvn
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) or javapackages-bootstrap)
Requires: (mvn(org.apache.maven.plugins:maven-jar-plugin) or javapackages-bootstrap)
Requires: (mvn(org.apache.maven.plugins:maven-resources-plugin) or javapackages-bootstrap)
Requires: (mvn(org.apache.maven.plugins:maven-surefire-plugin) or javapackages-bootstrap)
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
This package provides macros and scripts to support packaging Maven artifacts.
%package -n gradle-local
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.
%if %{with ivy}
%package -n ivy-local
Summary: Local mode for Apache Ivy
Requires: %{name} = %{version}-%{release}
@ -95,6 +98,7 @@ Requires: xmvn-connector-ivy
%description -n ivy-local
This package implements local mode for Apache Ivy, which allows
artifact resolution using XMvn resolver.
%endif
%package -n %{python_prefix}-javapackages
Summary: Module for handling various files for Java packaging
@ -107,11 +111,15 @@ packaging in Linux distributions
%package -n javapackages-local
Summary: Non-essential macros and scripts for Java packaging support
Requires: javapackages-generators = %{version}-%{release}
Requires: (%{_bindir}/xmvn-install or javapackages-bootstrap)
Requires: (%{_bindir}/xmvn-subst or javapackages-bootstrap)
Requires: (%{_bindir}/xmvn-resolve or javapackages-bootstrap)
%if %{with bootstrap}
Requires: 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
Requires: java-11-openjdk-devel
%endif
%description -n javapackages-local
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-*
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/
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 gradle-local -f files-gradle
%if %{with ivy}
%files -n ivy-local -f files-ivy
%endif
%files -n maven-local-openjdk8
%{_datadir}/xmvn/conf
@ -181,15 +197,61 @@ install -p -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/java/javapackages-config
%license LICENSE
%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
- 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
- Add separate subpackage with RPM generators
* Thu Jul 16 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 5.3.1-8
- 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
- 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
- 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
- Enable namespaced dependency generation