commit:     8cf3dbfb4f16004632912760ba527a6bc83b0b0f
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Sat Jun 15 06:57:17 2024 +0000
Commit:     Miroslav Šulc <fordfrog <AT> gentoo <DOT> org>
CommitDate: Sun Jun 30 11:14:09 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8cf3dbfb

dev-db/hsqldb: add 2.7.3

- Builds without BSFIX, does not inherit java-ant-2
- Installs hsqldb.jar hsqldbutil.jar sqltool.jar

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Closes: https://github.com/gentoo/gentoo/pull/37349
Signed-off-by: Miroslav Šulc <fordfrog <AT> gentoo.org>

 dev-db/hsqldb/Manifest                             |   1 +
 dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.conf.patch |  30 ++++
 dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.init.patch |  20 +++
 dev-db/hsqldb/hsqldb-2.7.3.ebuild                  | 181 +++++++++++++++++++++
 4 files changed, 232 insertions(+)

diff --git a/dev-db/hsqldb/Manifest b/dev-db/hsqldb/Manifest
index c8808162e0b8..4f76610cc00a 100644
--- a/dev-db/hsqldb/Manifest
+++ b/dev-db/hsqldb/Manifest
@@ -1 +1,2 @@
+DIST hsqldb-2.7.3.zip 11778622 BLAKE2B 
9e7f6a0e0bdf8602c87ab770dcb43c17db9ae6dc5d50fda079a44a42b0ccb64a20f74d020b2dbedbbc6b6c6ee57acf062d2c74d53a7d34fe932dbd79b0cc86d0
 SHA512 
06825d5f1428630dae476d78de9e2c48834a34a8678adf0e6af594594c5e1a7efdf99e366add4f6bbc24136e6aaa8fcbf54bd7ff2f2c459c20f9f02f7415b70a
 DIST hsqldb_1_8_1_3.zip 3170550 BLAKE2B 
0664bfa259af5091e3e76ca804e9c9890457ecc982ab07ee37640dc713053fb63d6dd295e9db4adb5e5436fac6275745526d3e830dd84e5daa3a32162627dc76
 SHA512 
0483ca3299b63b4931b07d49588c729231efca76a317b9620abbd5039127f3f79449eaa1e9d29c52782c58bdb0cc4879b1e3f30f669d2c02c880818f531a8442

diff --git a/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.conf.patch 
b/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.conf.patch
new file mode 100644
index 000000000000..2f34a0b3b55d
--- /dev/null
+++ b/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.conf.patch
@@ -0,0 +1,30 @@
+Patch created with sed expression borrowed from 1.8.1.3-r4.ebuild
+
+       # sample-hsqldb.cfg seems to have moved/renamed to sample/hsqldb.conf
+       sed -e 
"s/^HSQLDB_JAR_PATH=.*$/HSQLDB_JAR_PATH=${EPREFIX//\//\\/}${HSQLDB_JAR//\//\\/}/g"
 \
+               -e 
"s/^SERVER_HOME=.*$/SERVER_HOME=${EPREFIX//\//\\/}\/var\/lib\/hsqldb/g" \
+               -e "s/^HSQLDB_OWNER=.*$/HSQLDB_OWNER=hsqldb/g" \
+               -e 's/^#AUTH_FILE=.*$/AUTH_FILE=${SERVER_HOME}\/sqltool.rc/g' \
+               -i sample/hsqldb.conf || die
+
+--- a/sample/hsqldb.conf
++++ b/sample/hsqldb.conf
+@@ -34,7 +34,7 @@ SQLTOOL_JAR_PATH=/opt/hsqldb-2.0.0/hsqldb/lib/sqltool.jar
+ # /opt/hsqldb-2.0.0/hsqldb/lib/hsqldb*.jar.
+ 
+ # Where the file "server.properties" or "webserver.properties" resides.
+-SERVER_HOME=/opt/hsqldb-2.0.0/hsqldb/data
++SERVER_HOME=/var/lib/hsqldb
+ 
+ # What UNIX user the server will run as.
+ # (The shutdown client is always run as root or the invoker of the init 
script).
+@@ -91,7 +91,7 @@ URLIDS='localhostdb1'
+ # root who runs the init script.
+ # (See the SqlTool chapter of the HyperSQL Utilities Guide if you don't
+ # understand this).
+-#AUTH_FILE=/home/blaine/sqltool.rc
++AUTH_FILE=${SERVER_HOME}/sqltool.rc
+ 
+ # Typical users will leave this unset and it will default to
+ # org.hsqldb.server.Server.  If you need to run the HSQLDB WebServer class
+

diff --git a/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.init.patch 
b/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.init.patch
new file mode 100644
index 000000000000..bb4984691936
--- /dev/null
+++ b/dev-db/hsqldb/files/hsqldb-2.7.3-hsqldb.init.patch
@@ -0,0 +1,20 @@
+--- a/sample/hsqldb.init
++++ b/sample/hsqldb.init
+@@ -57,7 +57,7 @@ SERVICE=hsqldb
+ # chkconfig: 345 87 13
+ # description: HyperSQL Database, A High Performance Java Database Server
+ # pidfile: /run/hsqldb.pid
+-# config: /etc/sysconfig/hsqldb
++# config: /etc/conf.d/hsqldb
+ 
+ # This block only used by insserv systems (incl. SuSE Linux).
+ ### BEGIN INIT INFO
+@@ -198,7 +198,7 @@ case "`uname`" in
+ esac
+ 
+ for candidate in /etc/hsqldb/${SERVICE}.conf  \
+-        /etc/sysconfig/${SERVICE} /etc/${SERVICE}.conf  \
++        /etc/conf.d/${SERVICE} /etc/${SERVICE}.conf  \
+         /etc/${SERVICE}.cfg  /Library/Hsqldb/conf/${SERVICE}.cfg  \
+         /Library/Hsqldb/${SERVICE}.cfg /usr/local/etc/${SERVICE}.cfg; do
+     [ -f $candidate ] && {

diff --git a/dev-db/hsqldb/hsqldb-2.7.3.ebuild 
b/dev-db/hsqldb/hsqldb-2.7.3.ebuild
new file mode 100644
index 000000000000..e0bb6b6b5a4a
--- /dev/null
+++ b/dev-db/hsqldb/hsqldb-2.7.3.ebuild
@@ -0,0 +1,181 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="org.hsqldb:hsqldb:${PV}"
+
+inherit java-pkg-2
+
+MY_PV="$(ver_cut 1-2)"
+MY_PV="${MY_PV//./_}"
+
+DESCRIPTION="HSQLDB - Lightweight 100% Java SQL Database Engine"
+HOMEPAGE="https://hsqldb.org";
+SRC_URI="https://downloads.sourceforge.net/project/hsqldb/hsqldb/hsqldb_${MY_PV}/${P}.zip";
+S="${WORKDIR}/${P}/${PN}"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos 
~x64-macos ~x64-solaris"
+
+BDEPEND="
+       app-arch/unzip
+       >=dev-java/ant-1.10.14-r3:0
+"
+
+COMMON_DEPEND="
+       acct-group/hsqldb
+       acct-user/hsqldb
+"
+
+DEPEND="${COMMON_DEPEND}
+       dev-java/javax-servlet-api:3.1
+       >=virtual/jdk-11:*
+       test? (
+               >=dev-java/ant-1.10.14-r3:0[junit]
+               dev-java/junit:0
+       )"
+
+RDEPEND="${COMMON_DEPEND}
+       >=virtual/jre-11:*"
+
+DOCS=( readme.txt doc/{changelist_2_0,odbc,readme-docauthors}.txt )
+
+PATCHES=(
+       "${FILESDIR}/hsqldb-2.7.3-hsqldb.conf.patch"
+       "${FILESDIR}/hsqldb-2.7.3-hsqldb.init.patch"
+)
+
+HSQLDB_JAR=/usr/share/hsqldb/lib/hsqldb.jar
+HSQLDB_HOME=/var/lib/hsqldb
+
+src_prepare() {
+       default #780585
+       java-pkg-2_src_prepare
+       java-pkg_clean
+
+       # bin/hsqldb seems to have moved/renamed to sample/hsqldb.init
+       mv sample/hsqldb{.init,} || die
+
+       mkdir conf
+       # sample-hsqldb.cfg seems to have moved/renamed to sample/hsqldb.conf
+       mv sample/hsqldb.conf conf/hsqldb || die
+
+       cp "${FILESDIR}/server.properties" conf/ || die
+       cp "${FILESDIR}/sqltool.rc" conf/ || die
+}
+
+src_compile() {
+       local targets=( hsqldb hsqldbutil sqltool )
+       if use doc; then
+               mkdir doc-src/apidocs || die
+               cp doc{,-src}/apidocs/javadoc.css || die
+               rm -r doc/apidocs || die
+               targets+=( javadoc )
+       fi
+       use test && targets+=( preprocessor )
+       eant \
+               -f build/build.xml \
+               -Dservletapi.lib="$(java-pkg_getjars --build-only 
javax-servlet-api-3.1)" \
+               -Djavac.bootcp.override \
+               -Dant.java.iscjava11 \
+               -Dant.build.javac.source="11" \
+               -Dant.build.javac.target="11" \
+               "${targets[@]}"
+}
+
+src_test() {
+       mkdir -p 
test-src/org/hsqldb/{resources,jdbc/resources/{xml,sql},util/preprocessor} || 
die
+       eant -v \
+               -f build/test.xml \
+               -Dservletapi.lib="$(java-pkg_getjars --build-only 
javax-servlet-api-3.1)" \
+               -Djunit.jar="$(java-pkg_getjars --build-only junit)" \
+               -Djavac.bootcp.override \
+               -Dant.java.iscjava11 \
+               -Dant.build.javac.source="11" \
+               -Dant.build.javac.target="11" \
+               make.test.suite run.test.suite
+}
+
+src_install() {
+       java-pkg_dojar lib/{hsqldb{,util},sqltool}.jar
+
+       einstalldocs
+       use doc && java-pkg_dojavadoc doc/apidocs
+
+       use source && java-pkg_dosrc src/*
+
+       echo "CONFIG_PROTECT=\"${HSQLDB_HOME}\"" > "${T}"/35hsqldb || die
+       doenvd "${T}"/35hsqldb
+
+       # Put init, configuration and authorization files in /etc
+       doinitd "${FILESDIR}/hsqldb"
+       doconfd conf/hsqldb
+       insinto /etc/hsqldb
+       # Change the ownership of server.properties and sqltool.rc
+       # files to hsqldb:hsqldb. (resolves Bug #111963)
+       use prefix || insopts -m0600 -o hsqldb -g hsqldb
+       doins conf/server.properties
+       use prefix || insopts -m0600 -o hsqldb -g hsqldb
+       doins conf/sqltool.rc
+
+       # Install init script
+       dodir "${HSQLDB_HOME}/bin"
+       keepdir "${HSQLDB_HOME}"
+       exeinto "${HSQLDB_HOME}/bin"
+       doexe sample/hsqldb
+
+       # Make sure that files have correct permissions
+       use prefix || chown -R hsqldb:hsqldb "${ED}${HSQLDB_HOME}" || die
+       chmod o-rwx "${ED}${HSQLDB_HOME}" || die
+
+       # Create symlinks to authorization files in the server home dir
+       # (required by the hqldb init script)
+       insinto "${HSQLDB_HOME}"
+       dosym ../../../etc/hsqldb/server.properties 
"${HSQLDB_HOME}/server.properties"
+       dosym ../../../etc/hsqldb/sqltool.rc "${HSQLDB_HOME}/sqltool.rc"
+}
+
+pkg_postinst() {
+       ewarn "If you intend to run Hsqldb in Server mode and you want to 
create"
+       ewarn "additional databases, remember to put correct information in 
both"
+       ewarn "'server.properties' and 'sqltool.rc' files."
+       ewarn "(read the 'Init script Setup Procedure' section of the 'Chapter 
3."
+       ewarn "UNIX Quick Start' in the Hsqldb docs for more information)"
+       echo
+       elog "Example:"
+       echo
+       elog "${EPREFIX}/etc/hsqldb/server.properties"
+       elog "============================="
+       elog "server.database.1=file:xdb/xdb"
+       elog "server.dbname.1=xdb"
+       elog "server.urlid.1=xdb"
+       elog
+       elog "${EPREFIX}/etc/hsqldb/sqltool.rc"
+       elog "======================"
+       elog "urlid xdb"
+       elog "url jdbc:hsqldb:hsql://localhost/xdb"
+       elog "username sa"
+       elog "password "
+       echo
+       elog "Also note that each hsqldb server can serve only up to 10"
+       elog "different databases simultaneously (with consecutive {0-9}"
+       elog "suffixes in the 'server.properties' file)."
+       echo
+       ewarn "For data manipulation use:"
+       ewarn
+       ewarn "# java -classpath ${EPREFIX}${HSQLDB_JAR} 
org.hsqldb.util.DatabaseManager"
+       ewarn "# java -classpath ${EPREFIX}${HSQLDB_JAR} 
org.hsqldb.util.DatabaseManagerSwing"
+       ewarn "# java -classpath ${EPREFIX}${HSQLDB_JAR} 
org.hsqldb.util.SqlTool \\"
+       ewarn "  --rcFile ${EPREFIX}/var/lib/hsqldb/sqltool.rc <dbname>"
+       echo
+       elog "The Hsqldb can be run in multiple modes - read 'Chapter 1. 
Running'"
+       elog "and Using Hsqldb' in the Hsqldb docs at:"
+       elog "  http://hsqldb.org/web/hsqlDocsFrame.html";
+       elog "If you intend to run it in the Server mode, it is suggested to 
add the"
+       elog "init script to your start-up scripts, this should be done like 
this:"
+       elog "  \`rc-update add hsqldb default\`"
+       echo
+}

Reply via email to