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 +}
