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 c5e1c399f1
commit 84c9504368
6 changed files with 113 additions and 325 deletions

View File

@ -1,14 +1,14 @@
From 05a8a2fa49e92ad36a86d5d73588a2e46bf9ff95 Mon Sep 17 00:00:00 2001 From cf7e676edc7ab9d4b8b130ca4d8ecbd291995dea Mon Sep 17 00:00:00 2001
From: Michael Simacek <msimacek@redhat.com> From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Mon, 23 Jul 2018 14:30:14 +0200 Date: Mon, 20 Apr 2020 09:29:12 +0200
Subject: [PATCH] Adapt build Subject: [PATCH] Adapt build
--- ---
build.xml | 40 +++++++++++++++++++++++++--------------- build.xml | 54 +++---------------------------------------------------
1 file changed, 25 insertions(+), 15 deletions(-) 1 file changed, 3 insertions(+), 51 deletions(-)
diff --git a/build.xml b/build.xml diff --git a/build.xml b/build.xml
index cd7c2ed..10d8df6 100644 index cd7c2ed..16368e2 100644
--- a/build.xml --- a/build.xml
+++ b/build.xml +++ b/build.xml
@@ -112,17 +112,7 @@ For instructions on how to build JDOM, please view the README.txt file. @@ -112,17 +112,7 @@ For instructions on how to build JDOM, please view the README.txt file.
@ -30,72 +30,83 @@ index cd7c2ed..10d8df6 100644
</path> </path>
<path id="core.class.path"> <path id="core.class.path">
@@ -289,6 +279,7 @@ For instructions on how to build JDOM, please view the README.txt file. @@ -296,7 +286,7 @@ For instructions on how to build JDOM, please view the README.txt file.
header="&lt;b&gt;${Name}&lt;br&gt;&lt;font size='-1'&gt;${version}&lt;/font&gt;&lt;/b&gt;" <!-- =================================================================== -->
bottom="Copyright &#169; ${year} Jason Hunter, Brett McLaughlin. All Rights Reserved."> <!-- Creates the jars -->
<classpath refid="base.class.path"/> <!-- =================================================================== -->
+ <link href="${j2se.apidoc}"/> - <target name="jars" depends="compile, javadoc"
</javadoc> + <target name="jars" depends="compile.core, javadoc"
description="Builds the Jars">
<fixcrlf srcdir="." includes="**/*.bat" excludes="build*.*" eol="crlf"/>
<fixcrlf srcdir="." includes="**/*.sh" excludes="build*.*" eol="lf"/>
@@ -316,21 +306,6 @@ For instructions on how to build JDOM, please view the README.txt file.
<fileset dir="${core.build}" includes="**/*.class" />
<fileset dir="${metainf.build}" excludes="**/MANIFEST.MF" />
</jar>
- <jar jarfile="${package}/${jarbase}-contrib.jar" >
- <fileset dir="${contrib.build}" includes="**/*" />
- <fileset dir="${metainf.build}" excludes="**/MANIFEST.MF" />
- </jar>
- <jar jarfile="${package}/${jarbase}-junit.jar" >
- <fileset dir="${junit.build}" includes="**/*" />
- <fileset dir="${metainf.build}" excludes="**/MANIFEST.MF" />
- </jar>
- <jar destfile="${package}/${jarbase}-javadoc.jar"
- basedir="${build.javadocs}" includes="**/*" />
- <jar jarfile="${package}/${jarbase}-sources.jar" >
- <fileset dir="${core.src}" includes="**/*" />
- <fileset dir="${junit.src}" includes="**/*" />
- <fileset dir="${contrib.src}" includes="**/*" />
- </jar>
</target> </target>
@@ -373,11 +364,11 @@ For instructions on how to build JDOM, please view the README.txt file. @@ -500,7 +475,7 @@ For instructions on how to build JDOM, please view the README.txt file.
<!-- =================================================================== --> <delete dir="${mavendir}" includes="**/*" failonerror="false"/>
<target name="package" depends="coverage, jars"
description="Creates the class package">
- <zip destfile="${package}/${jarbase}.zip">
+ <!--<zip destfile="${package}/${jarbase}.zip">
<fileset dir="${package}" includes="${jarbase}*.jar" />
<fileset dir="${basedir}" includes="lib/xerces* lib/jaxen* lib/xml* lib/xalan/**" />
<fileset dir="${basedir}" includes="LICENSE.txt README.txt" />
- </zip>
+ </zip>-->
</target> </target>
<!-- =================================================================== --> - <target name="maven" depends="maven.clean, package"
@@ -401,6 +392,7 @@ For instructions on how to build JDOM, please view the README.txt file. + <target name="maven" depends="maven.clean, jars"
<include name="**/*.class"/> description="Prepares Maven bundle to load on to Sonatype Nexus for Maven-Central">
<!-- exclude name="**/**/jaxen/**/*.class"/ --> <mkdir dir="${mavendir}" />
</fileset> <mkdir dir="${mavendir}/core" />
+ <classpath refid="junit.class.path" /> @@ -512,8 +487,6 @@ For instructions on how to build JDOM, please view the README.txt file.
</cobertura-instrument>
<property name="forkjunit" value="true" /> <!-- copy the build jar -->
@@ -528,7 +520,25 @@ For instructions on how to build JDOM, please view the README.txt file. <copy tofile="${mavendir}/core/${mavenbase}.jar" file="${package}/${jarbase}.jar"/>
- <copy tofile="${mavendir}/core/${mavenbase}-javadoc.jar" file="${package}/${jarbase}-javadoc.jar"/>
- <copy tofile="${mavendir}/core/${mavenbase}-sources.jar" file="${package}/${jarbase}-sources.jar"/>
<!-- load the license in to the ${license} property -->
<loadfile property="license" srcfile="LICENSE.txt" />
@@ -528,27 +501,6 @@ For instructions on how to build JDOM, please view the README.txt file.
</filterset> </filterset>
</copy> </copy>
- <exec dir="${mavendir}/core" executable="${gpg}"> - <exec dir="${mavendir}/core" executable="${gpg}">
+ <copy filtering="true" file="maven/contrib.pom" tofile="${mavendir}/core/${mavenbase}-contrib.pom"> - <arg value="-abv"/>
+ <filterset> - <arg value="${mavenbase}.pom"/>
+ <filter token="artifactID" value="${mavenartifact}"/>
+ <filter token="version" value="${version}" />
+ <filter token="jdk" value="${compile.target}" />
+ <filter token="license" value="${license}" />
+ </filterset>
+ </copy>
+
+ <copy filtering="true" file="maven/junit.pom" tofile="${mavendir}/core/${mavenbase}-junit.pom">
+ <filterset>
+ <filter token="artifactID" value="${mavenartifact}"/>
+ <filter token="version" value="${version}" />
+ <filter token="jdk" value="${compile.target}" />
+ <filter token="license" value="${license}" />
+ </filterset>
+ </copy>
+
+ <!--exec dir="${mavendir}/core" executable="${gpg}">
<arg value="-abv"/>
<arg value="${mavenbase}.pom"/>
</exec>
@@ -543,7 +553,7 @@ For instructions on how to build JDOM, please view the README.txt file.
<exec dir="${mavendir}/core" executable="${gpg}">
<arg value="-abv"/>
<arg value="${mavenbase}-javadoc.jar"/>
- </exec> - </exec>
+ </exec--> - <exec dir="${mavendir}/core" executable="${gpg}">
- <arg value="-abv"/>
- <arg value="${mavenbase}.jar"/>
- </exec>
- <exec dir="${mavendir}/core" executable="${gpg}">
- <arg value="-abv"/>
- <arg value="${mavenbase}-sources.jar"/>
- </exec>
- <exec dir="${mavendir}/core" executable="${gpg}">
- <arg value="-abv"/>
- <arg value="${mavenbase}-javadoc.jar"/>
- </exec>
-
- <jar destfile="${mavendir}/${mavenbase}-maven-bundle.jar"
- basedir="${mavendir}/core"
- includes="${mavenbase}*" excludes="*maven-bundle*" />
-
</target>
<jar destfile="${mavendir}/${mavenbase}-maven-bundle.jar" </project>
basedir="${mavendir}/core"
-- --
2.17.1 2.25.2

View File

@ -1,15 +0,0 @@
diff --git a/build.xml b/build.xml
index cd7c2ed..f86b76a 100644
--- a/build.xml
+++ b/build.xml
@@ -47,8 +47,8 @@ For instructions on how to build JDOM, please view the README.txt file.
<property name="compile.debug" value="true" />
<property name="compile.optimize" value="true" />
- <property name="compile.target" value="1.5" />
- <property name="compile.source" value="1.5" />
+ <property name="compile.target" value="1.8" />
+ <property name="compile.source" value="1.8" />
<property name="compile.deprecation" value="true" />
<property name="build" value="./build"/>

View File

@ -9,7 +9,7 @@ wget "https://github.com/hunterhacker/jdom/archive/JDOM-${version}.tar.gz" -O "$
rm -rf tarball-tmp rm -rf tarball-tmp
mkdir tarball-tmp mkdir tarball-tmp
cd tarball-tmp pushd tarball-tmp
tar xf "../${name}-${version}.orig.tar.gz" tar xf "../${name}-${version}.orig.tar.gz"
# CLEAN TARBALL # CLEAN TARBALL
@ -17,6 +17,6 @@ rm -r */lib */*/lib
find -name '*.jar' -delete find -name '*.jar' -delete
find -name '*.class' -delete find -name '*.class' -delete
tar cf "../${name}-${version}.tar.gz" * tar -czf "../${name}-${version}.tar.gz" *
cd .. popd
rm -r tarball-tmp "${name}-${version}.orig.tar.gz" rm -r tarball-tmp "${name}-${version}.orig.tar.gz"

View File

@ -1,96 +0,0 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jdom</groupId>
<artifactId>@artifactID@-contrib</artifactId>
<packaging>jar</packaging>
<name>JDOM Contrib</name>
<version>@version@</version>
<description>
A complete, Java-based solution for accessing, manipulating,
and outputting XML data
</description>
<url>http://www.jdom.org</url>
<organization>
<name>JDOM</name>
<url>http://www.jdom.org</url>
</organization>
<mailingLists>
<mailingList>
<name>JDOM-interest Mailing List</name>
<post>jdom-interest@jdom.org</post>
<archive>http://jdom.markmail.org/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Similar to Apache License but with the acknowledgment clause removed</name>
<url>https://raw.github.com/hunterhacker/jdom/master/LICENSE.txt</url>
<distribution>repo</distribution>
<comments xml:space="preserve"><![CDATA[
@license@
]]></comments>
</license>
</licenses>
<scm>
<url>git@github.com:/hunterhacker/jdom</url>
<connection>scm:git:git@github.com:hunterhacker/jdom</connection>
<developerConnection>scm:git:git@github.com:hunterhacker/jdom</developerConnection>
</scm>
<developers>
<developer>
<id>hunterhacker</id>
<name>Jason Hunter</name>
<email>jhunter@servlets.com</email>
</developer>
<developer>
<id>rolfl</id>
<name>Rolf Lear</name>
<email>jdom@tuis.net</email>
</developer>
</developers>
<dependencies>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>@artifactID@</artifactId>
<version>@version@</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.10.0</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>isorelax</groupId>
<artifactId>isorelax</artifactId>
<version>20030108</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>stax</groupId>
<artifactId>stax-api</artifactId>
<version>1.0.1</version>
<optional>true</optional>
</dependency>
</dependencies>
<properties>
<jdk.version>@jdk@</jdk.version>
</properties>
</project>

View File

@ -1,120 +0,0 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jdom</groupId>
<artifactId>@artifactID@-junit</artifactId>
<packaging>jar</packaging>
<name>JDOM Junit</name>
<version>@version@</version>
<description>
A complete, Java-based solution for accessing, manipulating,
and outputting XML data
</description>
<url>http://www.jdom.org</url>
<organization>
<name>JDOM</name>
<url>http://www.jdom.org</url>
</organization>
<mailingLists>
<mailingList>
<name>JDOM-interest Mailing List</name>
<post>jdom-interest@jdom.org</post>
<archive>http://jdom.markmail.org/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Similar to Apache License but with the acknowledgment clause removed</name>
<url>https://raw.github.com/hunterhacker/jdom/master/LICENSE.txt</url>
<distribution>repo</distribution>
<comments xml:space="preserve"><![CDATA[
@license@
]]></comments>
</license>
</licenses>
<scm>
<url>git@github.com:/hunterhacker/jdom</url>
<connection>scm:git:git@github.com:hunterhacker/jdom</connection>
<developerConnection>scm:git:git@github.com:hunterhacker/jdom</developerConnection>
</scm>
<developers>
<developer>
<id>hunterhacker</id>
<name>Jason Hunter</name>
<email>jhunter@servlets.com</email>
</developer>
<developer>
<id>rolfl</id>
<name>Rolf Lear</name>
<email>jdom@tuis.net</email>
</developer>
</developers>
<dependencies>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>@artifactID@</artifactId>
<version>@version@</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.4</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.10.0</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.3.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>asm</groupId>
<artifactId>asm-tree</artifactId>
<version>3.3.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.13.3</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.sourceforge.cobertura</groupId>
<artifactId>cobertura</artifactId>
<version>1.9.4.1</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>net.sourceforge.cobertura</groupId>
<artifactId>cobertura-runtime</artifactId>
<version>1.9.4.1</version>
<optional>true</optional>
</dependency>
</dependencies>
<properties>
<jdk.version>@jdk@</jdk.version>
</properties>
</project>

View File

@ -1,14 +1,17 @@
# Workaround for rhbz#1969370: __bootstrap macro is not defined in
# CentOS Stream, See https://bugzilla.redhat.com/1969370
%global __bootstrap ~bootstrap
%bcond_without bootstrap
Name: jdom2 Name: jdom2
Version: 2.0.6 Version: 2.0.6
Release: 22%{?dist} Release: 23%{?dist}
Summary: Java manipulation of XML made easy Summary: Java manipulation of XML made easy
License: Saxpath License: Saxpath
URL: http://www.jdom.org/ URL: http://www.jdom.org/
# ./generate-tarball.sh # ./generate-tarball.sh
Source0: %{name}-%{version}.tar.gz Source0: %{name}-%{version}.tar.gz
# originally taken from http://repo1.maven.org/maven2/org/jdom/jdom-contrib/1.1.3/jdom-contrib-1.1.3.pom
Source1: jdom-contrib-template.pom
Source2: jdom-junit-template.pom
# Bnd tool configuration # Bnd tool configuration
Source3: bnd.properties Source3: bnd.properties
# Remove bundled jars that might not have clear licensing # Remove bundled jars that might not have clear licensing
@ -17,16 +20,14 @@ Source4: generate-tarball.sh
# Disable gpg signatures # Disable gpg signatures
# Process contrib and junit pom files # Process contrib and junit pom files
Patch0: 0001-Adapt-build.patch Patch0: 0001-Adapt-build.patch
Patch1: 0002-More-adapt-build-javac-1.8.patch
BuildRequires: javapackages-local BuildRequires: javapackages-local
%if %{with bootstrap}
BuildRequires: javapackages-bootstrap
%else
BuildRequires: ant BuildRequires: ant
BuildRequires: ant-junit BuildRequires: ant-junit
BuildRequires: jaxen %endif
BuildRequires: xalan-j2
BuildRequires: xerces-j2
BuildRequires: xml-commons-apis
BuildRequires: aqute-bnd
BuildArch: noarch BuildArch: noarch
@ -51,34 +52,28 @@ This package contains javadoc for %{name}.
%setup -q -n jdom-JDOM-%{version} %setup -q -n jdom-JDOM-%{version}
%patch0 -p1 %patch0 -p1
%patch1 -p1
cp -p %{SOURCE1} maven/contrib.pom
cp -p %{SOURCE2} maven/junit.pom
sed -i 's/\r//' LICENSE.txt README.txt sed -i 's/\r//' LICENSE.txt README.txt
# Unable to run coverage: use log4j12 but switch to log4j 2.x # Unable to run coverage: use log4j12 but switch to log4j 2.x
sed -i.coverage "s|coverage, jars|jars|" build.xml sed -i.coverage "s|coverage, jars|jars|" build.xml
mkdir lib # XPath functionality is not needed
build-jar-repository lib xerces-j2 xml-commons-apis jaxen junit xalan-j2 xalan-j2-serializer rm -rf core/src/java/org/jdom2/xpath/
sed -i '/import org.jdom2.xpath.XPathFactory/d' core/src/java/org/jdom2/JDOMConstants.java
# drop optional isorelax verifier support from contrib
rm -r contrib/src/java/org/jdom2/contrib/schema
%build %build
ant -Dversion=%{version} -Dj2se.apidoc=%{_javadocdir}/java maven mkdir lib
%ant -Dversion=%{version} -Dcompile.source=1.6 -Dcompile.target=1.6 -Dj2se.apidoc=%{_javadocdir}/java maven
# Make jar into an OSGi bundle # Make jar into an OSGi bundle
bnd wrap --output build/package/jdom-%{version}.bar --properties %{SOURCE3} \ # XXX disabled until BND is fixed
--version %{version} build/package/jdom-%{version}.jar #bnd wrap --output build/package/jdom-%{version}.bar --properties %{SOURCE3} \
mv build/package/jdom-%{version}.bar build/package/jdom-%{version}.jar # --version %{version} build/package/jdom-%{version}.jar
#mv build/package/jdom-%{version}.bar build/package/jdom-%{version}.jar
%install %install
%mvn_artifact build/maven/core/%{name}-%{version}.pom build/package/jdom-%{version}.jar %mvn_artifact build/maven/core/%{name}-%{version}.pom build/package/jdom-%{version}.jar
%mvn_artifact build/maven/core/%{name}-%{version}-contrib.pom build/package/jdom-%{version}-contrib.jar
%mvn_artifact build/maven/core/%{name}-%{version}-junit.pom build/package/jdom-%{version}-junit.jar
%mvn_install -J build/apidocs %mvn_install -J build/apidocs
%files -f .mfiles %files -f .mfiles
@ -89,8 +84,12 @@ mv build/package/jdom-%{version}.bar build/package/jdom-%{version}.jar
%license LICENSE.txt %license LICENSE.txt
%changelog %changelog
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 2.0.6-22 * Tue Jun 08 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.0.6-23
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 - Bootstrap Maven for CentOS Stream 9
* Mon May 17 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.0.6-22
- Bootstrap build
- Non-bootstrap build
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-21 * Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
@ -110,12 +109,21 @@ mv build/package/jdom-%{version}.bar build/package/jdom-%{version}.jar
* Thu May 07 2020 Fabio Valentini <decathorpe@gmail.com> - 2.0.6-16 * Thu May 07 2020 Fabio Valentini <decathorpe@gmail.com> - 2.0.6-16
- Drop optional isorelax verifier support from contrib. - Drop optional isorelax verifier support from contrib.
* Mon Apr 20 2020 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.0.6-15
- Disable contrib module
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-15 * Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Nov 05 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.0.6-14
- Mass rebuild for javapackages-tools 201902
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-14 * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri May 24 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.0.6-13
- Mass rebuild for javapackages-tools 201901
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-13 * Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.6-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild