Files
jaxb/jaxb.spec

228 lines
7.1 KiB
RPMSpec

#
# spec file for package jaxb
#
# 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: jaxb
Version: 4.0.5
Release: 0
Summary: JAXB Reference Implementation
License: BSD-3-Clause
URL: https://github.com/eclipse-ee4j/jaxb-ri
Source0: %{url}/archive/%{version}-RI/%{name}-%{version}.tar.gz
Patch0: reproducible-license-headers.patch
Patch1: reproducible-order.patch
BuildRequires: fdupes
BuildRequires: maven-local
BuildRequires: mvn(com.github.relaxng:relaxngDatatype)
BuildRequires: mvn(com.sun.istack:istack-commons-maven-plugin)
BuildRequires: mvn(com.sun.istack:istack-commons-runtime)
BuildRequires: mvn(com.sun.istack:istack-commons-tools)
BuildRequires: mvn(com.sun.xml.dtd-parser:dtd-parser)
BuildRequires: mvn(com.sun.xml.fastinfoset:FastInfoset)
BuildRequires: mvn(jakarta.activation:jakarta.activation-api)
BuildRequires: mvn(jakarta.xml.bind:jakarta.xml.bind-api)
BuildRequires: mvn(net.java.dev.msv:xsdlib)
BuildRequires: mvn(org.apache.ant:ant)
BuildRequires: mvn(org.apache.ant:ant-junit)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-assembly-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-enforcer-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
BuildRequires: mvn(org.codehaus.mojo:buildnumber-maven-plugin)
BuildRequires: mvn(org.eclipse.angus:angus-activation)
BuildRequires: mvn(org.jvnet.staxex:stax-ex)
#!BuildRequires: jaxb-dtd-parser
#!BuildRequires: jaxb-fi
#!BuildRequires: jaxb-istack-commons-maven-plugin
#!BuildRequires: jaxb-istack-commons-runtime
#!BuildRequires: jaxb-istack-commons-tools
#!BuildRequires: jaxb-stax-ex
BuildArch: noarch
%description
GlassFish JAXB Reference Implementation.
%package runtime
Summary: JAXB Runtime
%description runtime
JAXB (JSR 222) Reference Implementation
%package core
Summary: JAXB Core
%description core
JAXB Core module. Contains sources required by XJC, JXC and Runtime modules.
%package txw2
Summary: TXW2 Runtime
%description txw2
TXW is a library that allows you to write XML documents.
%package codemodel
Summary: Codemodel Core
%description codemodel
The core functionality of the CodeModel java source code generation
library.
%package codemodel-annotation-compiler
Summary: Codemodel Annotation Compiler
%description codemodel-annotation-compiler
The annotation compiler ant task for the CodeModel java source code
generation library.
%package xjc
Summary: JAXB XJC
%description xjc
JAXB Binding Compiler. Contains source code needed for binding
customization files into java sources. In other words: the tool to
generate java classes for the given xml representation.
%package rngom
Summary: RELAX NG Object Model/Parser
%description rngom
This package contains RELAX NG Object Model/Parser.
%package txwc2
Summary: TXW2 Compiler
%description txwc2
JAXB schema generator. The tool to generate XML schema based on java
classes.
%package xsom
Summary: XML Schema Object Model
%description xsom
XML Schema Object Model (XSOM) is a Java library that allows applications to
easily parse XML Schema documents and inspect information in them. It is
expected to be useful for applications that need to take XML Schema as an
input.
%package relaxng-datatype
Summary: RelaxNG Datatype
%description relaxng-datatype
RelaxNG Datatype library.
%prep
%setup -q -n jaxb-ri-%{version}-RI
# Delete precompiled jar and class files
find -type f '(' -iname '*.jar' -o -iname '*.class' ')' -print -delete
%patch -P 0 -p1
%patch -P 1 -p1
pushd jaxb-ri
# Remove unnecessary dep on ee4j parent pom (it adds nothing to our downstream builds)
%pom_remove_parent boms/bom external xsom codemodel
# SCM from parent: org.eclipse.ee4j:project:1.0.7
%pom_xpath_inject 'pom:project' \
'<scm>
<connection>scm:git:git@github.com:eclipse-ee4j/ee4j.git</connection>
<developerConnection>scm:git:git@github.com:eclipse-ee4j/ee4j.git</developerConnection>
<url>https://github.com/eclipse-ee4j/ee4j</url>
</scm>' external
# Missing dep: org.checkerframework:compiler
%pom_disable_module jxc
# Disable unneeded extra OSGi bundles
%pom_disable_module jxc bundles
%pom_disable_module core bundles
%pom_disable_module osgi bundles
%pom_disable_module ri bundles
%pom_disable_module runtime bundles
%pom_disable_module xjc bundles
# Ignore osgi tests
%pom_disable_module tools/osgi_tests
# lack of dependency when building documentation
%pom_disable_module release-documentation docs
%pom_disable_module www docs
%pom_xpath_set -r pom:copyright.ignoreyear "true"
# Don't install aggregator and parent poms
%{mvn_package} :jaxb-bom __noinstall
%{mvn_package} :jaxb-bom-ext __noinstall
%{mvn_package} :jaxb-bundles __noinstall
%{mvn_package} :jaxb-codemodel-parent __noinstall
%{mvn_package} :jaxb-docs-parent __noinstall
%{mvn_package} :jaxb-external-parent __noinstall
%{mvn_package} :jaxb-parent __noinstall
%{mvn_package} :jaxb-runtime-parent __noinstall
%{mvn_package} :jaxb-samples __noinstall
%{mvn_package} :jaxb-txw-parent __noinstall
%{mvn_package} :jaxb-www __noinstall
#{mvn_alias} org.glassfish.jaxb:jaxb-xjc "com.sun.xml.bind:jaxb-xjc"
#{mvn_alias} :jaxb-jxc :jaxb-jxc-jdk9
#{mvn_alias} :jaxb-xjc :jaxb-xjc-jdk9
popd
%build
pushd jaxb-ri
%{mvn_build} -s -f -j -- \
-Dcopyright.ignoreyear=true \
-Dmaven.compiler.source=1.8 \
-Dmaven.compiler.target=1.8 \
-Dproject.build.sourceEncoding=UTF-8
popd
%install
pushd jaxb-ri
%mvn_install
popd
%files codemodel -f jaxb-ri/.mfiles-codemodel
%license LICENSE.md NOTICE.md
%files codemodel-annotation-compiler -f jaxb-ri/.mfiles-codemodel-annotation-compiler
%license LICENSE.md NOTICE.md
%files core -f jaxb-ri/.mfiles-jaxb-core
%license LICENSE.md NOTICE.md
%files relaxng-datatype -f jaxb-ri/.mfiles-relaxng-datatype
%license LICENSE.md NOTICE.md
%files rngom -f jaxb-ri/.mfiles-rngom
%license LICENSE.md NOTICE.md
%files runtime -f jaxb-ri/.mfiles-jaxb-runtime
%license LICENSE.md NOTICE.md
%files txw2 -f jaxb-ri/.mfiles-txw2
%license LICENSE.md NOTICE.md
%files txwc2 -f jaxb-ri/.mfiles-txwc2
%license LICENSE.md NOTICE.md
%files xjc -f jaxb-ri/.mfiles-jaxb-xjc
%license LICENSE.md NOTICE.md
%files xsom -f jaxb-ri/.mfiles-xsom
%license LICENSE.md NOTICE.md
%changelog