summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Evans <grknight@gentoo.org>2022-06-03 06:28:26 +0100
committerSam James <sam@gentoo.org>2022-06-03 06:30:19 +0100
commit7dce4489ac962b89da6d80cd17abd971bee3fb92 (patch)
tree9c27e517c2d36cc9bae00e7cb16d47f953ac2c16 /dev-db/firebird
parentmedia-plugins/vdr-xineliboutput: Improve OpenRC script (diff)
downloadgentoo-7dce4489ac962b89da6d80cd17abd971bee3fb92.tar.gz
gentoo-7dce4489ac962b89da6d80cd17abd971bee3fb92.tar.bz2
gentoo-7dce4489ac962b89da6d80cd17abd971bee3fb92.zip
dev-db/firebird: Improve OpenRC script
The attached script updates a couple things which effectively is the same as the current model however it follows the modular nature of the declarative syntax. Changes: * Removes -p which is implied via pidfile= * Sets user via command_user * Moves the daemon options to command_args_background Closes: https://bugs.gentoo.org/828073 Signed-off-by: Brian Evans <grknight@gentoo.org> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-db/firebird')
-rw-r--r--dev-db/firebird/files/firebird.init.d.3.0-r122
-rw-r--r--dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild228
2 files changed, 250 insertions, 0 deletions
diff --git a/dev-db/firebird/files/firebird.init.d.3.0-r1 b/dev-db/firebird/files/firebird.init.d.3.0-r1
new file mode 100644
index 000000000000..c49ea97f9203
--- /dev/null
+++ b/dev-db/firebird/files/firebird.init.d.3.0-r1
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+name=${RC_SVCNAME}
+
+fbhomedir="/var/run/firebird"
+fblogdir="/var/log/firebird"
+pidfile="${fbhomedir}/firebird.pid"
+command="/usr/sbin/fbguard"
+command_args="-forever"
+command_args_background="-daemon -pidfile $pidfile"
+command_user="${FBUSER:-firebird}:${FBGROUP:-firebird}"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -q -d -m 0770 -o ${FBUSER:-firebird}:${FBGROUP:-firebird} ${fbhomedir} || return 1
+ checkpath -q -d -m 0770 -o ${FBUSER:-firebird}:${FBGROUP:-firebird} ${fblogdir} || return 1
+}
diff --git a/dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild b/dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild
new file mode 100644
index 000000000000..3ee04900edfe
--- /dev/null
+++ b/dev-db/firebird/firebird-3.0.4.33054.0-r3.ebuild
@@ -0,0 +1,228 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_P=${PN/f/F}-$(ver_rs 4 '-')
+inherit autotools flag-o-matic
+
+DESCRIPTION="Relational database offering many ANSI SQL:2003 and some SQL:2008 features"
+HOMEPAGE="https://www.firebirdsql.org/"
+SRC_URI="
+ https://github.com/FirebirdSQL/firebird/releases/download/R$(ver_rs 1-3 '_' $(ver_cut 1-3))/${MY_P}.tar.bz2
+ doc? ( ftp://ftpc.inprise.com/pub/interbase/techpubs/ib_b60_doc.zip )
+"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="IDPL Interbase-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples +server xinetd"
+
+BDEPEND="
+ >=dev-util/btyacc-3.0-r2
+ doc? ( app-arch/unzip )
+"
+# FIXME: cloop?
+DEPEND="
+ dev-libs/icu:=
+ dev-libs/libedit
+ dev-libs/libtommath
+"
+RDEPEND="
+ ${DEPEND}
+ acct-group/firebird
+ acct-user/firebird
+ xinetd? ( virtual/inetd )
+ !sys-cluster/ganglia
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.2.32703.0-unbundle.patch
+ "${FILESDIR}"/${PN}-3.0.2.32703.0-cloop-compiler.patch
+)
+
+pkg_pretend() {
+ if [[ -e /var/run/${PN}/${PN}.pid ]] ; then
+ ewarn
+ ewarn "The presence of server connections may prevent isql or gsec"
+ ewarn "from establishing an embedded connection. Accordingly,"
+ ewarn "creating employee.fdb or security3.fdb could fail."
+ ewarn "It is more secure to stop the firebird daemon before running emerge."
+ ewarn
+ fi
+}
+
+check_sed() {
+ MSG="sed of $3, required $2 line(s) modified $1"
+ einfo "${MSG}"
+ [[ $1 -ge $2 ]] || die "${MSG}"
+}
+
+src_unpack() {
+ unpack "${MY_P}.tar.bz2"
+ if use doc; then
+ # Unpack docs
+ mkdir "manuals" || die
+ cd "manuals" || die
+ unpack ib_b60_doc.zip
+ fi
+}
+
+src_prepare() {
+ default
+
+ # Rename references to isql to fbsql
+ # sed vs patch for portability and addtional location changes
+ check_sed "$(sed -i -e 's:"isql :"fbsql :w /dev/stdout' \
+ src/isql/isql.epp | wc -l)" "1" "src/isql/isql.epp" # 1 line
+ check_sed "$(sed -i -e 's:isql :fbsql :w /dev/stdout' \
+ src/msgs/history2.sql | wc -l)" "4" "src/msgs/history2.sql" # 4 lines
+ check_sed "$(sed -i -e 's:--- ISQL:--- FBSQL:w /dev/stdout' \
+ -e 's:isql :fbsql :w /dev/stdout' \
+ -e 's:ISQL :FBSQL :w /dev/stdout' \
+ src/msgs/messages2.sql | wc -l)" "6" "src/msgs/messages2.sql" # 6 lines
+
+ find . -name \*.sh -exec chmod +x {} + || die
+ rm -r extern/{btyacc,editline,icu} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ filter-flags -fprefetch-loop-arrays
+ filter-mfpmath sse
+
+ # otherwise this doesnt build with gcc-6
+ # http://tracker.firebirdsql.org/browse/CORE-5099
+ append-cflags -fno-sized-deallocation -fno-delete-null-pointer-checks
+ append-cxxflags -fno-sized-deallocation -fno-delete-null-pointer-checks -std=c++11
+
+ local myeconfargs=(
+ --prefix=/usr/$(get_libdir)/firebird
+ --with-editline
+ --with-system-editline
+ --with-fbbin=/usr/bin
+ --with-fbsbin=/usr/sbin
+ --with-fbconf=/etc/${PN}
+ --with-fblib=/usr/$(get_libdir)
+ --with-fbinclude=/usr/include
+ --with-fbdoc=/usr/share/doc/${PF}
+ --with-fbudf=/usr/$(get_libdir)/${PN}/UDF
+ --with-fbsample=/usr/share/doc/${PF}/examples
+ --with-fbsample-db=/usr/share/doc/${PF}/examples/db
+ --with-fbhelp=/usr/$(get_libdir)/${PN}/help
+ --with-fbintl=/usr/$(get_libdir)/${PN}/intl
+ --with-fbmisc=/usr/share/${PN}
+ --with-fbsecure-db=/etc/${PN}
+ --with-fbmsg=/usr/$(get_libdir)/${PN}
+ --with-fblog=/var/log/${PN}/
+ --with-fbglock=/var/run/${PN}
+ --with-fbplugins=/usr/$(get_libdir)/${PN}/plugins
+ --with-gnu-ld
+ )
+ econf "${myeconfargs[@]}"
+}
+
+# from linux underground, merging into this here
+src_install() {
+ if use doc; then
+ dodoc -r doc
+ find "${WORKDIR}"/manuals -type f -iname "*.pdf" -exec dodoc '{}' + || die
+ fi
+
+ cd "${S}/gen/Release/${PN}" || die
+
+ doheader include/*
+ dolib.so lib/*.so*
+
+ # links for backwards compatibility
+ insinto /usr/$(get_libdir)
+ dosym libfbclient.so /usr/$(get_libdir)/libgds.so
+ dosym libfbclient.so /usr/$(get_libdir)/libgds.so.0
+ dosym libfbclient.so /usr/$(get_libdir)/libfbclient.so.1
+
+ insinto /usr/share/${PN}/msg
+ doins *.msg
+
+ use server || return
+
+ einfo "Renaming isql -> fbsql"
+ mv bin/isql bin/fbsql || die "failed to rename isql -> fbsql"
+
+ dobin bin/{fb_config,fbsql,fbsvcmgr,fbtracemgr,gbak,gfix,gpre,gsec,gsplit,gstat,nbackup,qli}
+ dosbin bin/{firebird,fbguard,fb_lock_print}
+
+ insinto /usr/share/${PN}/help
+ # why???
+ insopts -m0660 -o firebird -g firebird
+ doins help/help.fdb
+
+ exeinto /usr/$(get_libdir)/${PN}/intl
+ doexe intl/libfbintl.so
+ dosym libfbintl.so /usr/$(get_libdir)/${PN}/intl/fbintl.so
+
+ insinto /usr/$(get_libdir)/${PN}/intl
+ insopts -m0644 -o root -g root
+ doins intl/fbintl.conf
+
+ # plugins
+ exeinto /usr/$(get_libdir)/${PN}/plugins
+ doexe plugins/*.so
+ exeinto /usr/$(get_libdir)/${PN}/plugins/udr
+ doexe plugins/udr/*.so
+
+ exeinto /usr/$(get_libdir)/${PN}/UDF
+ doexe UDF/*.so
+
+ # logging (do we really need the perms?)
+ diropts -m 755 -o firebird -g firebird
+ dodir /var/log/${PN}
+ keepdir /var/log/${PN}
+
+ # logrotate
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${PN}.logrotate" ${PN}
+
+ # configuration files
+ insinto /etc/${PN}/plugins
+ doins plugins/udr_engine.conf
+ insinto /etc/${PN}
+ doins {databases,fbtrace,firebird,plugins}.conf
+
+ # install secutity3.fdb
+ insopts -m0660 -o firebird -g firebird
+ doins security3.fdb
+
+ if use xinetd; then
+ insinto /etc/xinetd.d
+ newins "${FILESDIR}/${PN}.xinetd.3.0" ${PN}
+ else
+ newinitd "${FILESDIR}/${PN}.init.d.3.0-r1" ${PN}
+ fi
+
+ if use examples; then
+ cd examples || die
+ insinto /usr/share/${PN}/examples
+ insopts -m0644 -o root -g root
+ doins -r api
+ doins -r dbcrypt
+ doins -r include
+ doins -r interfaces
+ doins -r package
+ doins -r stat
+ doins -r udf
+ doins -r udr
+ doins CMakeLists.txt
+ doins functions.c
+ doins README
+ insinto /usr/share/${PN}/examples/empbuild
+ insopts -m0660 -o firebird -g firebird
+ doins empbuild/employee.fdb
+ fi
+
+ elog "Starting with version 3, server mode is set in firebird.conf"
+ elog "The default setting is superserver."
+ elog
+ elog "If you're using UDFs, please remember to move them to /usr/$(get_libdir)/firebird/UDF"
+}