modello/modello.spec

180 lines
6.0 KiB
RPMSpec

#
# spec file for package modello
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: modello
Version: 2.4.0
Release: 0
Summary: Modello Data Model toolkit
License: Apache-2.0 AND MIT
Group: Development/Libraries/Java
URL: https://codehaus-plexus.github.io/modello
Source0: https://repo1.maven.org/maven2/org/codehaus/%{name}/%{name}/%{version}/%{name}-%{version}-source-release.zip
Source1: https://www.apache.org/licenses/LICENSE-2.0.txt
Source100: %{name}-build.tar.xz
Patch0: 0001-Upgrade-to-SnakeYaml-2.2-439.patch
Patch1: 0002-Update-build-get-rid-of-legacy-fix-CLI-452.patch
Patch2: 0003-Add-support-for-domAsXpp3-and-fail-if-the-old-Java5-.patch
BuildRequires: ant
BuildRequires: atinject
BuildRequires: fdupes
BuildRequires: guava
BuildRequires: jackson-core
BuildRequires: javadoc-parser
BuildRequires: javapackages-local >= 6
BuildRequires: jsoup
BuildRequires: junit
BuildRequires: plexus-build-api >= 1.0
BuildRequires: plexus-compiler
BuildRequires: plexus-utils
BuildRequires: plexus-xml
BuildRequires: sisu-inject
BuildRequires: sisu-plexus
BuildRequires: slf4j
BuildRequires: snakeyaml
BuildRequires: unzip
BuildRequires: velocity
Requires: aopalliance
Requires: atinject
Requires: google-guice
Requires: guava
Requires: jackson-core
Requires: javadoc-parser
Requires: javapackages-tools
Requires: plexus-build-api
Requires: plexus-build-api0
Requires: plexus-classworlds
Requires: plexus-containers-component-annotations
Requires: plexus-utils
Requires: plexus-xml
Requires: sisu-inject
Requires: sisu-plexus
Requires: slf4j
Requires: snakeyaml
Requires: velocity
BuildArch: noarch
%description
Modello is a Data Model toolkit in use by the Apache Maven Project.
Modello is a framework for code generation from a simple model.
Modello generates code from a simple model format based on a plugin
architecture, various types of code and descriptors can be generated
from the single model, including Java POJOs, XML
marshallers/unmarshallers, XSD and documentation.
%package test
Summary: Modello Test Package
Group: Development/Libraries/Java
Requires: %{name} = %{version}
%description test
Modello Test Package contains the basis to create Modello generator
unit-tests, including sample models and xml files to test every
feature for every plugin.
%package javadoc
Summary: Javadoc for %{name}
Group: Development/Libraries/Java
%description javadoc
API documentation for %{name}.
%prep
%setup -q -a100
%patch -P 0 -p1
%patch -P 1 -p1
%patch -P 2 -p1
cp -p %{SOURCE1} .
%pom_remove_plugin :maven-site-plugin
%pom_remove_plugin :maven-enforcer-plugin
%pom_remove_plugin :sisu-maven-plugin
%pom_add_dep org.codehaus.plexus:plexus-xml:3.0.0 modello-core
# This builds correctly with the older velocity 1.x and avoids build cycles
%pom_change_dep -r :velocity-engine-core :velocity
%pom_remove_dep :jackson-bom
%build
mkdir -p lib
build-jar-repository -s lib \
atinject \
guava/guava \
jackson-core \
javadoc-parser \
jsoup \
junit \
org.eclipse.sisu.inject \
org.eclipse.sisu.plexus \
plexus/cli \
plexus-compiler \
plexus/plexus-build-api \
plexus/utils \
plexus/xml \
slf4j/api \
snakeyaml \
velocity
%{ant} \
-Dtest.skip=true \
package javadoc
%install
# jars
install -dm 0755 %{buildroot}%{_javadir}/%{name}
# poms
install -dm 0755 %{buildroot}%{_mavenpomdir}/%{name}
# javadoc
install -dm 0755 %{buildroot}%{_javadocdir}/%{name}
for i in core test; do
install -pm 0644 %{name}-${i}/target/%{name}-${i}-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}-${i}.jar
%{mvn_install_pom} %{name}-${i}/pom.xml %{buildroot}%{_mavenpomdir}/%{name}/%{name}-${i}.pom
%add_maven_depmap %{name}/%{name}-${i}.pom %{name}/%{name}-${i}.jar -f ${i}
install -dm 0755 %{buildroot}%{_javadocdir}/%{name}/%{name}-${i}
cp -pr %{name}-${i}/target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}/%{name}-${i}/
done
for i in converters dom4j java jdom sax stax xdoc xml xpp3 xsd jackson jsonschema snakeyaml velocity; do
install -pm 0644 %{name}-plugins/%{name}-plugin-${i}/target/%{name}-plugin-${i}-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}-plugin-${i}.jar
%{mvn_install_pom} %{name}-plugins/%{name}-plugin-${i}/pom.xml %{buildroot}%{_mavenpomdir}/%{name}/%{name}-plugin-${i}.pom
%add_maven_depmap %{name}/%{name}-plugin-${i}.pom %{name}/%{name}-plugin-${i}.jar
install -dm 0755 %{buildroot}%{_javadocdir}/%{name}/%{name}-plugin-${i}
cp -pr %{name}-plugins/%{name}-plugin-${i}/target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}/%{name}-plugin-${i}/
done
%fdupes -s %{buildroot}%{_javadocdir}
# script
%jpackage_script org.codehaus.modello.ModelloCli "" "" modello:aopalliance:atinject:google-guice:guava:jackson-core:javadoc-parser:plexus/plexus-build-api:plexus/plexus-build-api0:plexus/classworlds:plexus-containers/plexus-component-annotations:plexus/utils:plexus/xml:org.eclipse.sisu.inject:org.eclipse.sisu.plexus:slf4j/api:slf4j/simple:snakeyaml:velocity %{name} true
%files -f .mfiles -f .mfiles-core
%license LICENSE.txt LICENSE-2.0.txt
%{_bindir}/*
%files test -f .mfiles-test
%license LICENSE.txt LICENSE-2.0.txt
%files javadoc
%license LICENSE.txt LICENSE-2.0.txt
%{_javadocdir}/%{name}
%changelog