File derby.spec of Package derby
#
# spec file for package derby
#
# 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: derby
Version: 10.14.2.0
Release: 0
Summary: Embeddable Database Engine Written in Java
License: Apache-2.0
Group: Productivity/Databases/Servers
URL: https://db.apache.org/derby/
Source0: https://archive.apache.org/dist/db/derby/db-derby-%{version}/db-derby-%{version}-src.tar.gz
Source1: %{name}.service
Source2: %{name}-script
Source3: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}/%{version}/%{name}-%{version}.pom
Source4: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}client/%{version}/%{name}client-%{version}.pom
Source5: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}net/%{version}/%{name}net-%{version}.pom
Source6: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}tools/%{version}/%{name}tools-%{version}.pom
Source7: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_cs/%{version}/%{name}Locale_cs-%{version}.pom
Source8: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_de_DE/%{version}/%{name}Locale_de_DE-%{version}.pom
Source9: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_es/%{version}/%{name}Locale_es-%{version}.pom
Source10: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_fr/%{version}/%{name}Locale_fr-%{version}.pom
Source11: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_hu/%{version}/%{name}Locale_hu-%{version}.pom
Source12: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_it/%{version}/%{name}Locale_it-%{version}.pom
Source13: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_ja_JP/%{version}/%{name}Locale_ja_JP-%{version}.pom
Source14: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_ko_KR/%{version}/%{name}Locale_ko_KR-%{version}.pom
Source15: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_pl/%{version}/%{name}Locale_pl-%{version}.pom
Source16: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_pt_BR/%{version}/%{name}Locale_pt_BR-%{version}.pom
Source17: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_ru/%{version}/%{name}Locale_ru-%{version}.pom
Source18: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_zh_CN/%{version}/%{name}Locale_zh_CN-%{version}.pom
Source19: https://repo1.maven.org/maven2/org/apache/%{name}/%{name}Locale_zh_TW/%{version}/%{name}Locale_zh_TW-%{version}.pom
# https://issues.apache.org/jira/browse/DERBY-5125
Patch1: derby-javacc5.patch
# For compatibility with lucene >= 4.10
Patch2: derby-lucene.patch
Patch3: derby-taglet.patch
Patch4: derby-sourcetarget.patch
Patch5: derby-javadoc-encoding.patch
Patch6: derby-javacc7.patch
BuildRequires: ant
BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: glassfish-servlet-api
BuildRequires: jakarta-oro
BuildRequires: java-devel >= 1.8
BuildRequires: javacc
BuildRequires: javapackages-local >= 6
BuildRequires: junit
BuildRequires: lucene
BuildRequires: systemd
BuildRequires: xalan-j2
BuildRequires: xml-commons-apis
Requires: jakarta-oro
Requires: java >= 1.8
Requires: javapackages-tools
Requires: xalan-j2
Requires: xml-commons-apis
Requires(pre): shadow
BuildArch: noarch
%systemd_requires
%description
The Derby project develops open source database technology that is:
- Pure Java
- Easy to use
- Small footprint
- Standards based
- Secure
%package javadoc
Summary: Embeddable Database Engine Written in Java
Group: Development/Libraries/Java
%description javadoc
Javadoc generated documentation for derby database engine.
%prep
%setup -q -n db-derby-%{version}-src
find -name '*.jar' -delete
rm java/engine/org/apache/derby/impl/sql/compile/Token.java
rm java/build/org/apache/derbyBuild/javadoc/*.java
%patch -P 1
%patch -P 2
%patch -P 3
%patch -P 4 -p1
%patch -P 5 -p1
%patch -P 6
# Don't use Class-Path in manifests
sed -i -e '/Class-Path/d' build.xml
# Don't download online packagelists
sed -e 's/initjars,set-doclint,install_packagelists/initjars,set-doclint/' \
-e '/<link offline/,+1d' \
-i build.xml
dos2unix LICENSE NOTICE README
%build
# tools/ant/properties/extrapath.properties
ln -sf $(build-classpath javacc) tools/java/javacc.jar
ln -sf $(build-classpath glassfish-servlet-api) \
tools/java/geronimo-spec-servlet-2.4-rc4.jar
ln -sf $(build-classpath xalan-j2) tools/java/xalan.jar
ln -sf $(build-classpath xalan-j2-serializer) tools/java/serializer.jar
ln -sf $(build-classpath oro) tools/java/jakarta-oro-2.0.8.jar
ln -sf $(build-classpath junit) tools/java/junit.jar
ln -sf $(build-classpath lucene/lucene-core) tools/java/lucene-core.jar
ln -sf $(build-classpath lucene/lucene-analyzers) tools/java/lucene-analyzers-common.jar
ln -sf $(build-classpath lucene/xml-query-parser) tools/java/lucene-queryparser.jar
# So that the build doesn't fail on a stack overflow
export ANT_OPTS="-Xss2m"
export CLASSPATH="$(build-classpath xml-commons-apis)"
%{ant} \
-Dant.build.javac.{source,target}=8 \
buildsource buildjars javadoc
%install
# javadoc
install -dm0755 %{buildroot}%{_javadocdir}/%{name}
cp -pr javadoc/* %{buildroot}%{_javadocdir}/%{name}
# Systemd unit
install -dm0755 %{buildroot}%{_unitdir}
install -dm0755 %{buildroot}%{_sbindir}
install -pm0644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.service
ln -s service %{buildroot}%{_sbindir}/rc%{name}
# Derby home dir
install -dm0755 %{buildroot}%{_localstatedir}/lib/%{name}
# Library
install -dm0755 %{buildroot}%{_javadir}/%{name}
install -m0644 jars/sane/*.jar %{buildroot}%{_javadir}/%{name}
# POMs
install -dm0755 %{buildroot}%{_mavenpomdir}/%{name}
%{mvn_install_pom} %{SOURCE3} %{buildroot}%{_mavenpomdir}/%{name}/%{name}.pom
%{mvn_install_pom} %{SOURCE4} %{buildroot}%{_mavenpomdir}/%{name}/%{name}client.pom
%{mvn_install_pom} %{SOURCE5} %{buildroot}%{_mavenpomdir}/%{name}/%{name}net.pom
%{mvn_install_pom} %{SOURCE6} %{buildroot}%{_mavenpomdir}/%{name}/%{name}tools.pom
%{mvn_install_pom} %{SOURCE7} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_cs.pom
%{mvn_install_pom} %{SOURCE8} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_de_DE.pom
%{mvn_install_pom} %{SOURCE9} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_es.pom
%{mvn_install_pom} %{SOURCE10} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_fr.pom
%{mvn_install_pom} %{SOURCE11} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_hu.pom
%{mvn_install_pom} %{SOURCE12} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_it.pom
%{mvn_install_pom} %{SOURCE13} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_ja_JP.pom
%{mvn_install_pom} %{SOURCE14} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_ko_KR.pom
%{mvn_install_pom} %{SOURCE15} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_pl.pom
%{mvn_install_pom} %{SOURCE16} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_pt_BR.pom
%{mvn_install_pom} %{SOURCE17} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_ru.pom
%{mvn_install_pom} %{SOURCE18} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_zh_CN.pom
%{mvn_install_pom} %{SOURCE19} %{buildroot}%{_mavenpomdir}/%{name}/%{name}Locale_zh_TW.pom
%add_maven_depmap %{name}/%{name}.pom %{name}/%{name}.jar
%add_maven_depmap %{name}/%{name}client.pom %{name}/%{name}client.jar
%add_maven_depmap %{name}/%{name}net.pom %{name}/%{name}net.jar
%add_maven_depmap %{name}/%{name}tools.pom %{name}/%{name}tools.jar
%add_maven_depmap %{name}/%{name}Locale_cs.pom %{name}/%{name}Locale_cs.jar
%add_maven_depmap %{name}/%{name}Locale_de_DE.pom %{name}/%{name}Locale_de_DE.jar
%add_maven_depmap %{name}/%{name}Locale_es.pom %{name}/%{name}Locale_es.jar
%add_maven_depmap %{name}/%{name}Locale_fr.pom %{name}/%{name}Locale_fr.jar
%add_maven_depmap %{name}/%{name}Locale_hu.pom %{name}/%{name}Locale_hu.jar
%add_maven_depmap %{name}/%{name}Locale_it.pom %{name}/%{name}Locale_it.jar
%add_maven_depmap %{name}/%{name}Locale_ja_JP.pom %{name}/%{name}Locale_ja_JP.jar
%add_maven_depmap %{name}/%{name}Locale_ko_KR.pom %{name}/%{name}Locale_ko_KR.jar
%add_maven_depmap %{name}/%{name}Locale_pl.pom %{name}/%{name}Locale_pl.jar
%add_maven_depmap %{name}/%{name}Locale_pt_BR.pom %{name}/%{name}Locale_pt_BR.jar
%add_maven_depmap %{name}/%{name}Locale_ru.pom %{name}/%{name}Locale_ru.jar
%add_maven_depmap %{name}/%{name}Locale_zh_CN.pom %{name}/%{name}Locale_zh_CN.jar
%add_maven_depmap %{name}/%{name}Locale_zh_TW.pom %{name}/%{name}Locale_zh_TW.jar
# Wrapper scripts
install -dm0755 %{buildroot}%{_bindir}
install -pm0755 %{SOURCE2} %{buildroot}%{_bindir}/%{name}-ij
for P in sysinfo NetworkServerControl startNetworkServer stopNetworkServer ; do
ln %{buildroot}%{_bindir}/%{name}-ij %{buildroot}%{_bindir}/%{name}-$P
done
%fdupes %{buildroot}
%pre
getent group derby >/dev/null || groupadd -r derby
getent passwd derby >/dev/null || \
useradd -r -g derby -d %{_localstatedir}/lib/%{name} -s /sbin/nologin \
-c "Apache Derby service account" derby
%service_add_pre %{name}.service
%post
%service_add_post %{name}.service
%preun
%service_del_preun %{name}.service
%postun
%service_del_postun %{name}.service
%files -f .mfiles
%license LICENSE NOTICE
%doc README RELEASE-NOTES.html
%{_javadir}/%{name}/%{name}run.jar
%{_bindir}/derby-NetworkServerControl
%{_bindir}/derby-ij
%{_bindir}/derby-startNetworkServer
%{_bindir}/derby-stopNetworkServer
%{_bindir}/derby-sysinfo
%{_unitdir}/%{name}.service
%{_sbindir}/rc%{name}
%files javadoc
%license LICENSE NOTICE
%{_javadocdir}/%{name}
%changelog