diff --git a/db-derby-10.13.1.1-src.tar.gz b/db-derby-10.13.1.1-src.tar.gz new file mode 100644 index 0000000..d516381 Binary files /dev/null and b/db-derby-10.13.1.1-src.tar.gz differ diff --git a/derby-javacc.patch b/derby-javacc.patch new file mode 100644 index 0000000..2e070b2 --- /dev/null +++ b/derby-javacc.patch @@ -0,0 +1,21 @@ +--- ./java/tools/org/apache/derby/impl/tools/ij/UCode_CharStream.java.orig 2017-02-10 16:11:32.668177524 +0000 ++++ ./java/tools/org/apache/derby/impl/tools/ij/UCode_CharStream.java 2017-02-10 16:52:46.219879419 +0000 +@@ -50,6 +50,9 @@ + private int maxNextCharInd = 0; + private int nextCharInd = -1; + ++ private int tabSize = 1; ++ private boolean trackLineColumn = true; ++ + private final void ExpandBuff(boolean wrapAround) + { + char[] newbuffer = new char[bufsize + 2048]; +@@ -414,4 +417,8 @@ + column = bufcolumn[j]; + } + ++ public int getTabSize() { return tabSize; } ++ public void setTabSize(int i) { tabSize = i; } ++ public boolean getTrackLineColumn() { return trackLineColumn; } ++ public void setTrackLineColumn(boolean tlc) { trackLineColumn = tlc; } + } diff --git a/derby-lucene.patch b/derby-lucene.patch new file mode 100644 index 0000000..97d74c0 --- /dev/null +++ b/derby-lucene.patch @@ -0,0 +1,25 @@ +--- java/optional/org/apache/derby/optional/api/LuceneUtils.java.orig 2015-06-18 17:39:57.626721793 +0100 ++++ java/optional/org/apache/derby/optional/api/LuceneUtils.java 2015-06-18 17:40:24.430371127 +0100 +@@ -108,21 +108,7 @@ + @SuppressWarnings("deprecation") + public static Version currentVersion() + { +- Version retval = null; +- +- // the current version is the highest one +- for ( Version current : Version.values() ) +- { +- if ( current == Version.LUCENE_CURRENT ) { continue; } +- +- if ( retval == null ) { retval = current; } +- else +- { +- if ( current.onOrAfter( retval ) ) { retval = current; } +- } +- } +- +- return retval; ++ return Version.LATEST; + } + + /** diff --git a/derby-script b/derby-script new file mode 100644 index 0000000..97e0620 --- /dev/null +++ b/derby-script @@ -0,0 +1,63 @@ +#!/bin/bash +# +# Derby script +# Lubomir Rintel + +# Source functions library +if [ -f /usr/share/java-utils/java-functions ] ; then + . /usr/share/java-utils/java-functions +else + echo "Can't find functions library, aborting" + exit 1 +fi + +# Configuration +SCRIPT_PATH=$0 +PROGNAME=$(basename $SCRIPT_PATH |sed 's/^derby-//') + +# Wrappers +[ $PROGNAME = ij ] && MAIN_CLASS=org.apache.derby.tools.ij +[ $PROGNAME = sysinfo ] && MAIN_CLASS=org.apache.derby.tools.sysinfo +[ $PROGNAME = NetworkServerControl ] && MAIN_CLASS=org.apache.derby.drda.NetworkServerControl +[ $PROGNAME = startNetworkServer ] && MAIN_CLASS=org.apache.derby.drda.NetworkServerControl +[ $PROGNAME = stopNetworkServer ] && MAIN_CLASS=org.apache.derby.drda.NetworkServerControl + +# Default parameters +[ $PROGNAME = startNetworkServer ] && set -- start "$@" +[ $PROGNAME = stopNetworkServer ] && set -- shutdown "$@" + +# Load system-wide configuration +if [ -f /etc/derby.conf ]; then + . /etc/derby.conf +fi + +# Load user configuration +[ -f "$HOME/.derbyrc" ] && . "$HOME/.derbyrc" +[ -f "$HOME/.derby/startup" ] && . "$HOME/.derby/startup" + +# Bail out if there's nothing to run +if [ -z "$MAIN_CLASS" ] +then + echo "Can not determine main class for '$PROGNAME'" >&2 + exit 1 +fi + +# Not loading all of derby, so that secure class loader +# can kick in +BASE_JARS="$BASE_JARS derby/derby" +BASE_JARS="$BASE_JARS derby/derbynet" +BASE_JARS="$BASE_JARS derby/derbytools" +BASE_JARS="$BASE_JARS derby/derbyclient" + +# Set parameters +set_jvm +set_classpath $BASE_JARS +set_flags $BASE_FLAGS +set_options $BASE_OPTIONS $DERBY_OPTS + +# Add locales in a rather dirty way +CLASSPATH=$CLASSPATH:$(build-classpath derby |sed 's/:/\n/g' | + grep derbyLocale |xargs echo |sed 's/ /:/g') + +# Let's start +run "$@" diff --git a/derby.service b/derby.service new file mode 100644 index 0000000..e8ff28d --- /dev/null +++ b/derby.service @@ -0,0 +1,14 @@ +[Unit] +Description=Apache Derby Database Network Server +After=network.target + +[Service] +Type=simple +WorkingDirectory=/var/lib/derby +StandardOutput=syslog +User=derby +ExecStart=/usr/bin/derby-NetworkServerControl start +ExecStop=/usr/bin/derby-NetworkServerControl shutdown + +[Install] +WantedBy=multi-user.target diff --git a/derby.spec b/derby.spec new file mode 100644 index 0000000..8d6e889 --- /dev/null +++ b/derby.spec @@ -0,0 +1,115 @@ +Name: derby +Version: 10.13.1.1 +Release: 1 +Summary: Relational database implemented entirely in Java +License: ASL 2.0 +URL: http://db.apache.org/derby/ +Source0: http://archive.apache.org/dist/db/derby/db-derby-%{version}/db-derby-%{version}-src.tar.gz +Source1: derby-script +Source2: derby.service +Patch1: derby-javacc.patch +Patch2: derby-lucene.patch + +BuildRequires: apache-parent javapackages-local glassfish-servlet-api jakarta-oro javacc +BuildRequires: json_simple lucene4 junit ant systemd +Requires(pre): shadow-utils +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +BuildArch: noarch + +%description +Apache Derby, an Apache DB sub-project, is a relational database implemented +entirely in Java. Some key advantages include a small footprint, conformance +to Java, JDBC, and SQL standards and embedded JDBC driver. + +%package javadoc +Summary: API documentation for derby. + +%description javadoc +%{summary}. + +%prep +%setup -q -c +find -name '*.jar' -delete +find -name '*.class' -delete +pushd db-derby-%{version}-src +%patch1 -p0 +%patch2 -p0 +sed -i -e '/Class-Path/d' build.xml +sed -e 's/initjars,set-doclint,install_packagelists/initjars,set-doclint/' \ + -e '//dev/null || groupadd -r derby +getent passwd derby >/dev/null || \ + useradd -r -g derby -d /var/lib/derby -s /sbin/nologin \ + -c "Apache Derby service account" derby +exit 0 + +%post +%systemd_post derby.service + +%preun +%systemd_preun derby.service + +%postun +%systemd_postun_with_restart derby.service + +%files -f db-derby-%{version}-src/.mfiles +%{_bindir}/* +%doc db-%{name}-%{version}-src/published_api_overview.html +%doc db-%{name}-%{version}-src/RELEASE-NOTES.html +%doc db-%{name}-%{version}-src/README +%{_unitdir}/%{name}.service +%attr(755,derby,derby) %{_sharedstatedir}/%{name} +%license db-derby-%{version}-src/LICENSE +%license db-derby-%{version}-src/NOTICE + +%files javadoc -f db-derby-%{version}-src/.mfiles-javadoc +%license db-derby-%{version}-src/LICENSE +%license db-derby-%{version}-src/NOTICE + +%changelog +* Thu Jul 30 2020 leiju - 10.13.1.1-1 +- Package init diff --git a/derby.yaml b/derby.yaml new file mode 100644 index 0000000..f717be7 --- /dev/null +++ b/derby.yaml @@ -0,0 +1,4 @@ +version_control: svn +src_repo: https://svn.apache.org/repos/asf/db/derby/code/ +tag_prefix: "^" +seperator: "."