From 3f9204f87fe5986544b0023dacb2222fe4b237f1 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 18 Dec 2024 11:56:52 +0100 Subject: [PATCH] Add bindings for XMvn toolchains Bootstrap build. Related: RHEL-71059 Related: RHEL-71062 --- build.bash | 59 ------------------------------------- fedora-rawhide-x86_64.cfg | 37 ----------------------- tests/Sanity/smoke/main.fmf | 3 ++ toolchains-openjdk21.xml | 11 +++++++ xmvn.spec | 21 +++++++++---- 5 files changed, 29 insertions(+), 102 deletions(-) delete mode 100644 build.bash delete mode 100644 fedora-rawhide-x86_64.cfg create mode 100644 toolchains-openjdk21.xml diff --git a/build.bash b/build.bash deleted file mode 100644 index ddff670..0000000 --- a/build.bash +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/bash -ex - -resultdir="/var/lib/mock/xmvn-rawhide/result" - -# create directories -repo=RPM/latest/ -[[ ! -d ${repo} ]] && mkdir -p ${repo} - -# update version and release tag in spec file -version=$(sed -n '//{s/.*>\(.*\)<.*/\1/;s/-SNAPSHOT$//;p;q}' pom.xml) -release=$(git describe --match="[^(jenkins)].*" --tags | sed 's/[^-]*-/0./;s/-/./;s/g/git/') -sed -i "s/^Version:\s\+[0-9.]*$/Version: ${version}/" xmvn.spec -sed -i "s/^Release:\s\+[0-9.]*%{?dist}$/Release: ${release}/" xmvn.spec - -# Skip patch application on Jenkins - it is supposed to always use the -# latest vanilla upstream snapshot. -sed -i "/^Patch[0-9]*:/d" xmvn.spec -sed -i "/^%patch[0-9]* -p/d" xmvn.spec - -# make tarball -git archive -v --prefix=xmvn-${version}/ HEAD | xz > xmvn-${version}.tar.xz - -# crate srpm -rm -f SRPMS/* -rpmbuild -bs --clean --define "_topdir `pwd`" --define "_sourcedir `pwd`" xmvn.spec - -# build RPM with custom mock config -rm -Rf ${resultdir}/* -# print root.log and build.log in case of failure -trap "cat ${resultdir}/{root,build}.log || :" 0 -mock -r ../..$PWD/fedora-rawhide-x86_64 SRPMS/*.src.rpm - -# remove unneeded stuff -rm -f xmvn-*.tar.xz - -last_bn=`grep "Build number" ${repo}/info.log | awk '{ print $3 }'` -if [ -n "${last_bn}" ]; then - mkdir -p RPM/${last_bn} - mv ${repo}/* RPM/${last_bn} - - # we only want keep RPMs from last 10 builds - blist=`find ./RPM/ -maxdepth 1 -name "[0-9]*"` - for bn in $blist; do - if [ `basename $bn` -lt `expr $last_bn - 10` ]; then - rm -Rf $bn - fi - done -fi - -# copy resulting RPMs to RPM/latest -cp ${resultdir}/* ${repo} - -tail -n 50 ${resultdir}/build.log - -createrepo ${repo} - -# store current build number into the file -echo "Build number: $BUILD_NUMBER" >> ${repo}/info.log - diff --git a/fedora-rawhide-x86_64.cfg b/fedora-rawhide-x86_64.cfg deleted file mode 100644 index f8d9e71..0000000 --- a/fedora-rawhide-x86_64.cfg +++ /dev/null @@ -1,37 +0,0 @@ -config_opts['root'] = 'xmvn-rawhide' -config_opts['target_arch'] = 'x86_64' -config_opts['legal_host_arches'] = ('x86_64',) -config_opts['chroot_setup_cmd'] = 'install @buildsys-build' -config_opts['dist'] = 'rawhide' # only useful for --resultdir variable subst -config_opts['extra_chroot_dirs'] = [ '/run/lock', ] -config_opts['releasever'] = '21' - -config_opts['yum.conf'] = """ -[main] -logfile=/var/log/yum.log -retries=20 -gpgcheck=0 -assumeyes=1 -syslog_ident=mock -syslog_device= -metadata_expire=1 -mirrorlist_expire=1 -debuglevel=2 - -[mock-rawhide] -name=mock-rawhide -mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=rawhide&arch=x86_64 -failovermethod=priority -cost=1000 - -[mock-koji] -name=mock-koji -baseurl=http://kojipkgs.fedoraproject.org/repos/rawhide/latest/x86_64/ -cost=2000 - -[mock-override] -name=mock-override -baseurl=http://people.redhat.com/~mizdebsk/jenkins-extra-repo/ -gpgcheck=0 -cost=500 -""" diff --git a/tests/Sanity/smoke/main.fmf b/tests/Sanity/smoke/main.fmf index aa4593e..2a35e02 100644 --- a/tests/Sanity/smoke/main.fmf +++ b/tests/Sanity/smoke/main.fmf @@ -2,5 +2,8 @@ summary: XMvn smoke test description: | Test basic functionality of XMvn. require: + - xmvn + - xmvn-minimal + - xmvn-tools - maven-dependency-plugin - junit diff --git a/toolchains-openjdk21.xml b/toolchains-openjdk21.xml new file mode 100644 index 0000000..6235342 --- /dev/null +++ b/toolchains-openjdk21.xml @@ -0,0 +1,11 @@ + + + jdk + + xmvn + + + /usr/lib/jvm/java-21-openjdk + + + diff --git a/xmvn.spec b/xmvn.spec index d1505ec..a511966 100644 --- a/xmvn.spec +++ b/xmvn.spec @@ -1,4 +1,4 @@ -%bcond_with bootstrap +%bcond_without bootstrap %if %{with bootstrap} %global mbi 1 @@ -6,7 +6,7 @@ Name: xmvn Version: 4.2.0 -Release: 13%{?dist} +Release: 14%{?dist} Summary: Local Extensions for Apache Maven License: Apache-2.0 URL: https://fedora-java.github.io/xmvn/ @@ -15,6 +15,8 @@ ExclusiveArch: %{java_arches} noarch Source0: https://github.com/fedora-java/xmvn/releases/download/%{version}/xmvn-%{version}.tar.xz +Source21: toolchains-openjdk21.xml + %if %{with bootstrap} BuildRequires: javapackages-bootstrap %else @@ -59,7 +61,6 @@ creating RPM packages containing Maven artifacts. Summary: Dependency-reduced version of XMvn Requires: %{name}-core = %{version}-%{release} Requires: apache-commons-cli -Requires: apache-commons-lang3 Requires: atinject Requires: google-guice Requires: guava @@ -125,7 +126,7 @@ Summary: API documentation for %{name} This package provides %{summary}. %prep -%setup -q +%autosetup -p1 %mvn_package ::tar.gz: __noinstall %mvn_package ":{xmvn,xmvn-connector}" xmvn @@ -139,7 +140,7 @@ This package provides %{summary}. # Copy Maven home packaged as RPM instead of unpacking Maven binary # tarball with maven-dependency-plugin %pom_remove_plugin :maven-dependency-plugin -maven_home=$(realpath $(dirname $(realpath $(%{?jpb_env} which mvn)))/..) +maven_home=$(realpath $(dirname $(realpath $(%{?jpb_env} type -p mvn)))/..) mver=$(sed -n '//{s/.*>\(.*\)<.*/\1/;p}' \ xmvn-parent/pom.xml) mkdir -p target/dependency/ @@ -170,7 +171,7 @@ rm -f %{name}-${version}/bin/* %mvn_install version=4.* -maven_home=$(realpath $(dirname $(realpath $(%{?jpb_env} which mvn)))/..) +maven_home=$(realpath $(dirname $(realpath $(%{?jpb_env} type -p mvn)))/..) install -d -m 755 %{buildroot}%{_datadir}/%{name} cp -r%{?mbi:L} %{name}-${version}/* %{buildroot}%{_datadir}/%{name}/ @@ -212,6 +213,11 @@ cp -P ${maven_home}/bin/m2.conf %{buildroot}%{_datadir}/%{name}/bin/ # Make sure javapackages config is not bundled rm -rf %{buildroot}%{_datadir}/%{name}/{configuration.xml,config.d/,conf/toolchains.xml,maven-metadata/} +# Toolchains +ln -sf %{_jpbindingdir}/xmvn-toolchains.xml %{buildroot}%{_datadir}/%{name}/conf/toolchains.xml +install -p -m 644 %{SOURCE21} %{buildroot}%{_datadir}/%{name}/conf/toolchains-openjdk21.xml +%jp_binding --verbose --base-pkg xmvn-minimal --binding-pkg xmvn-toolchain-openjdk21 --variant openjdk21 --ghost xmvn-toolchains.xml --target %{_datadir}/%{name}/conf/toolchains-openjdk21.xml --requires java-21-openjdk-devel + %files %{_bindir}/mvn-local @@ -244,6 +250,9 @@ rm -rf %{buildroot}%{_datadir}/%{name}/{configuration.xml,config.d/,conf/toolcha %license LICENSE NOTICE %changelog +* Mon Dec 23 2024 Mikolaj Izdebski - 4.2.0-14 +- Add bindings for XMvn toolchains + * Tue Oct 29 2024 Troy Dawson - 4.2.0-13 - Bump release for October 2024 mass rebuild: Resolves: RHEL-64018