commit:     ec82ed4b6f46718748dd6881c4217f40c791ff4c
Author:     Ultrabug <ultrabug <AT> gentoo <DOT> org>
AuthorDate: Thu May 26 08:42:39 2016 +0000
Commit:     Alexys Jacob <ultrabug <AT> gentoo <DOT> org>
CommitDate: Thu May 26 08:42:54 2016 +0000
URL:        https://gitweb.gentoo.org/dev/ultrabug.git/commit/?id=ec82ed4b

improved rethinkdb ebuild with enhanced config from bgo overlay

 dev-db/rethinkdb/Manifest                  |  6 ++-
 dev-db/rethinkdb/files/rethinkdb.initd     | 13 ++---
 dev-db/rethinkdb/files/rethinkdb.service   | 13 +++++
 dev-db/rethinkdb/files/rethinkdb.tmpfilesd |  1 +
 dev-db/rethinkdb/rethinkdb-2.3.2.ebuild    | 80 ++++++++++++++++++++++--------
 5 files changed, 85 insertions(+), 28 deletions(-)

diff --git a/dev-db/rethinkdb/Manifest b/dev-db/rethinkdb/Manifest
index 9a67776..eacf098 100644
--- a/dev-db/rethinkdb/Manifest
+++ b/dev-db/rethinkdb/Manifest
@@ -1,5 +1,7 @@
 AUX rethinkdb.confd 606 SHA256 
5d659a409a7b1a502a6362b818b01c1eb5f12e1bed273e9e876cc43758464659 SHA512 
3a07f9c78ef96b2ca37fca508ee14a644d3c08612f662ba5260182fbfcceba064d20253f1261f56dc0a2c28d1a4d5e2320872c3c4e7595cb7ab4e202eb28ad42
 WHIRLPOOL 
2598d32113314f60b9e64048ba148c6fb3653ab92f833da13cc58b080996b988a20a61b8821634889c735628421609cee36c88dede66d89d5de071011a7afc57
-AUX rethinkdb.initd 1593 SHA256 
9583d3acc484ed0ecf169b6b9c397bbfac0307c0cedc078c354db8aaecc8d7ff SHA512 
d28c056076b180344bbd5751ff233e6de9a0c8fe4631297f5968806aa7ce46113702393600454f3b59bda48af7dd84679466cc0934b7773b601287c6ab7ce8b0
 WHIRLPOOL 
106d5d0785b87310515400e86d680ce7421ce2e999508a6fe04ed2f45dc0e317dda8d2ffabd2d44b92b673cd9730e044a2802b267cb53422cde7aad9a25616b7
+AUX rethinkdb.initd 1651 SHA256 
3203f6ea1bfa5a124bdb8ef9ea282de69c82402b5875cf8ab987f9810fa69699 SHA512 
6f232b05539dde1a8aef86837d4a2df1b1d5152f4c1cb7dd88f6b9d6c4f1f40c37f908e2d01aade5fe296b389db9b5a4b409a147caa6223a98b35e419bb36dd5
 WHIRLPOOL 
0001a9933b15c0b7d87ce8f6c190695cd855a6c99a2cee92e70745aed2fdef41415c277a78d400d2457e54cf38a61501cc9ffb836db6740b6aa3a1288375aa65
+AUX rethinkdb.service 261 SHA256 
c831f179b0973ea5abb205a5aae3f4597d09bc7575f3a75fa6db5c32fce5f5ee SHA512 
70389797ae79481b7d47b45f1676bd0531bc830a2f2daf7baec87533a7a6a0e67177572bab7d42324fe719f8a056899babc5ab2358a679c6a59899ed1272374b
 WHIRLPOOL 
7e0259a1678a216a44ee1b64df65ad8c3d653887a392ed371b027f17fa91cc9cb1f315fdce4071e8c1403e9af7891d772089f85fb9291981fdbca08ed3e46b6a
+AUX rethinkdb.tmpfilesd 43 SHA256 
656d3a42e75d087e723f71aa320fdd91cbbb82071ef72eb11fd3e4a619b429a4 SHA512 
5996f72b8e08aac80285373e8e1b5a664177e9d0e8d13e5638c6b821fe5b7a0368001fbfa9ef3f6709dabf0616abcabea40adc4808d176572f8f99b7a3255bae
 WHIRLPOOL 
84ff192ff84922155cfacb26e8f9255d506c0733472d5b674ea61e1c2f805a0293da0f69622d52bd21b2822dcaaf3a641c2ec39321283af0b3f00b0fb37ba2c9
 DIST rethinkdb-2.3.2.tgz 76823279 SHA256 
af8760271c63496fdeaa8de8bae834febd4b6c09a57743570b30134e9837eaac SHA512 
da10c2fdcdb25a8af1dff9c42892b68e31a26f412b3af94d15da1532aec6a747a1f7044d4f42ea1f03334ebb48d1e7ef597a975d5bb96c65294b30018ff27e07
 WHIRLPOOL 
3ee3c6247d479cbaf0ee303d3ae8c8d4de2cf831db50e0fb8c2276844b0b8b75933a90b83cef95854cfddd00614f2660727bce1e2221077b0dccff56c84a4044
-EBUILD rethinkdb-2.3.2.ebuild 2038 SHA256 
d8c491c0d550731aa0719db6254657e337898429fb771f50a77bbf6081eeba4c SHA512 
cea5bb6081e73c1115ba490e561bd8d6070538ddf61c6b60ebbec42f350cffc099510782480c93a1677819ce53fed3316f2f1cd1621ef159ddb1155a84dd90fd
 WHIRLPOOL 
65047f36384b57cc21a3583cd6d002ef23ff453155d4a55835a2698ac477294b56617d3f7a7a995962946205b6bf10ca9a4e9db2773176f18be370f6286c0896
+EBUILD rethinkdb-2.3.2.ebuild 3552 SHA256 
8042c3f9edf9099b01129313c643825a94967ad7aab1af7110f37ac190307347 SHA512 
eef329014252903ad23da08fbd288361b3dd430834f403ccd4084c6079dd8f0b305eefedb6635d63dc25ad39e1901ceec6db9e58ac416fc15e91e4ef743e8efd
 WHIRLPOOL 
bacc0c204aded02440baff9be7277985232db7ef242b8ed046a47932d6133f33be77032dfd21461f4b680c4fc367c0b64f4088bed400b36a90e2d18604b39619
 MISC metadata.xml 471 SHA256 
65cad98fab9a780924012debe5906d7bab5831317aa4af2b37862a861b3f5bfa SHA512 
1fa850b4f60828a41d5a752813a78008f90771041e033f0bc74e899f9e23e61710f500fcb2cd4f34c8f10905d6d660b7dc75c1eb9b95892966a3b45f5b21f517
 WHIRLPOOL 
59d2b047291daf85464529164a1e41e1fd70d14282488d53a91a57ff43913293c75d1253119a7000d7f1cd19fee9925d0755acd9e617dac770722bfa51c31994

diff --git a/dev-db/rethinkdb/files/rethinkdb.initd 
b/dev-db/rethinkdb/files/rethinkdb.initd
index 4073181..429f041 100644
--- a/dev-db/rethinkdb/files/rethinkdb.initd
+++ b/dev-db/rethinkdb/files/rethinkdb.initd
@@ -1,15 +1,16 @@
 #!/sbin/runscript
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-config_file=${config_file:-/etc/rethinkdb/instances.d/${SVCNAME}.conf}
+instance_name=${SVCNAME/*.}
+config_file=${config_file:-/etc/rethinkdb/instances.d/${instance_name}.conf}
 run_dir=${run_dir:-/run/rethinkdb}
 
 command="/usr/bin/rethinkdb"
 command_args="--config-file ${config_file}"
 command_background="true"
-pidfile=${run_dir}/${SVCNAME}.pid
+pidfile=${run_dir}/${instance_name}.pid
 user=${user:-rethinkdb}
 group=${group:-rethinkdb}
 start_stop_daemon_args="--user ${user} --group ${group} --wait 2000"
@@ -20,7 +21,7 @@ depend() {
 
 start_pre() {
        checkpath -d -m 0750 -o "${user}":"${group}" "${run_dir}"
-       if [ "${SVCNAME}" == "rethinkdb" ]; then
+       if [ "${instance_name}" == "rethinkdb" ]; then
                eerror "You should not run this default init script directly"
                eerror "Create a symlink to an instance name"
                eerror "and create a configuration file in 
/etc/rethinkdb/instances.d/"
@@ -34,7 +35,7 @@ start_pre() {
                # respect configured directory or set a default
                directory=$(egrep -e '^directory=' "${config_file}" | cut -d'=' 
-f2)
                if [ -z "${directory}" ]; then
-                       directory=/var/lib/rethinkdb/instances.d/"${SVCNAME}"
+                       
directory=/var/lib/rethinkdb/instances.d/"${instance_name}"
                fi
                checkpath -d -m 0750 -o "${user}":"${group}" "${directory}"
                command_args="${command_args} --directory ${directory}"
@@ -42,7 +43,7 @@ start_pre() {
                # respect configured log-file or set a default
                log_file=$(egrep -e '^log_file=' "${config_file}" | cut -d'=' 
-f2)
                if [ -z "${log_file}" ]; then
-                       log_file=/var/log/rethinkdb/"${SVCNAME}".log
+                       log_file=/var/log/rethinkdb/"${instance_name}".log
                fi
                command_args="${command_args} --log-file ${log_file}"
        fi

diff --git a/dev-db/rethinkdb/files/rethinkdb.service 
b/dev-db/rethinkdb/files/rethinkdb.service
new file mode 100644
index 0000000..09645c2
--- /dev/null
+++ b/dev-db/rethinkdb/files/rethinkdb.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=RethinkDB database server for instance '%i'
+
+[Service]
+User=rethinkdb
+Group=rethinkdb
+ExecStart=/usr/bin/rethinkdb serve --config-file 
/etc/rethinkdb/instances.d/%i.conf
+KillMode=process
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
+

diff --git a/dev-db/rethinkdb/files/rethinkdb.tmpfilesd 
b/dev-db/rethinkdb/files/rethinkdb.tmpfilesd
new file mode 100644
index 0000000..694501e
--- /dev/null
+++ b/dev-db/rethinkdb/files/rethinkdb.tmpfilesd
@@ -0,0 +1 @@
+d /run/rethinkdb 0755 rethinkdb rethinkdb -
\ No newline at end of file

diff --git a/dev-db/rethinkdb/rethinkdb-2.3.2.ebuild 
b/dev-db/rethinkdb/rethinkdb-2.3.2.ebuild
index fc02aed..fe03609 100644
--- a/dev-db/rethinkdb/rethinkdb-2.3.2.ebuild
+++ b/dev-db/rethinkdb/rethinkdb-2.3.2.ebuild
@@ -1,10 +1,10 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
-EAPI="5"
+EAPI="6"
 
-inherit user
+inherit systemd user
 
 DESCRIPTION="The open-source database for the realtime web."
 HOMEPAGE="http://www.rethinkdb.com";
@@ -33,13 +33,12 @@ pkg_setup() {
 }
 
 src_prepare() {
-       # fix doc auto installation
-       sed -e 's/ install-docs / /g' -i mk/install.mk || die
+       eapply_user
 
-       # fix init script auto installation
-       sed -e 's/ install-init / /g' -i mk/install.mk || die
+       # fix doc and init script auto installation
+       sed -e 's/ install-docs / /g' -e 's/ install-init / /g' -i 
mk/install.mk || die
 
-       # default config
+       # default config for Gentoo
        # fix default pid-file path
        # fix default directory path
        # fix default log-file path
@@ -50,24 +49,27 @@ src_prepare() {
 
        # fix termcap detection
        #sed -e 's/termcap:termcap tinfo ncurses/termcap:ncurses termcap 
tinfo/g' -i configure || die
-
-       # v8 has to be bundled
-       # use dynamic libs
-       local myopts="--fetch v8 --dynamic all --dynamic gtest --dynamic re2"
-       if use tcmalloc ; then
-               myopts+=" --with-tcmalloc"
-       else
-               myopts+=" --with-jemalloc"
-       fi
-       echo "${myopts}" > configure.default
 }
 
 src_configure() {
-       ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+       local conf_opts=(
+               --prefix="/usr"
+               --sysconfdir="/etc"
+               --localstatedir="/var"
+               --static=none
+       )
+       if use jemalloc; then
+               conf_opts+=(--with-jemalloc)
+       elif use tcmalloc; then
+               conf_opts+=(--with-tcmalloc)
+       else
+               conf_opts+=(--with-system-malloc)
+       fi
+       ./configure "${conf_opts[@]}"
 }
 
 src_install() {
-       emake DESTDIR="${D}" install
+       emake DESTDIR="${D}" VERBOSE=1 install
 
        for x in /var/{lib,log}/${PN}; do
                keepdir "${x}"
@@ -77,5 +79,43 @@ src_install() {
        newconfd "${FILESDIR}/rethinkdb.confd" rethinkdb
        newinitd "${FILESDIR}/rethinkdb.initd" rethinkdb
 
+       systemd_newunit "${FILESDIR}/"${PN}.service "rethinkdb@.service"
+       systemd_newtmpfilesd "${FILESDIR}"/${PN}.tmpfilesd "rethinkdb.conf"
+
        use doc && dodoc COPYRIGHT NOTES.md README.md
 }
+
+pkg_config() {
+       einfo "This will prepare a new RethinkDB instance. Press Control-C to 
abort."
+
+       einfo "Enter the name for the new instance: "
+       read instance_name
+       [[ -z "${instance_name}" ]] && die "Invalid instance name"
+
+       local instance_data="/var/lib/rethinkdb/instances.d/${instance_name}"
+       local instance_config="/etc/rethinkdb/instances.d/${instance_name}.conf"
+       if [[ -e "${instance_data}" || -e "${instance_config}" ]]; then
+               eerror "An instance with the same name already exists:"
+               eerror "Check ${instance_data} or ${instance_config}."
+               die "Instance already exists"
+       fi
+
+       /usr/bin/rethinkdb create -d "${instance_data}" &>/dev/null \
+               || die "Creating instance failed"
+       chown -R rethinkdb:rethinkdb "${instance_data}" \
+               || die "Correcting permissions for instance failed"
+       cp /etc/rethinkdb/default.conf.sample "${instance_config}" \
+               || die "Creating configuration file failed"
+       sed -e "s:^# \(directory=\).*$:\1${instance_data}:" \
+               -i "${instance_config}" \
+               || die "Modifying configuration file failed"
+       ln -s /etc/init.d/rethinkdb "/etc/init.d/rethinkdb.${instance_name}" \
+               || die "Creating init script symlink failed"
+
+       einfo "Successfully created the instance at ${instance_data}."
+       einfo "To change the default settings edit the configuration file:"
+       einfo "${instance_config}"
+       einfo " "
+       einfo "To start your instance, run:"
+       einfo "/etc/init.d/rethinkdb.${instance_name}"
+}

Reply via email to