From 8fbd420dce8836e6503b162092e07b6a77a89f1d Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Fri, 13 Oct 2017 21:03:07 +0100 Subject: gentoo resync : 13.10.2017 --- dev-db/rethinkdb/Manifest | 6 +- dev-db/rethinkdb/files/rethinkdb-2.3.5-gcc6.patch | 37 +++++ .../rethinkdb/files/rethinkdb-2.3.5-libressl.patch | 162 +++++++++++++++++++++ dev-db/rethinkdb/rethinkdb-2.3.5.ebuild | 134 ----------------- dev-db/rethinkdb/rethinkdb-2.3.6.ebuild | 139 ++++++++++++++++++ 5 files changed, 342 insertions(+), 136 deletions(-) create mode 100644 dev-db/rethinkdb/files/rethinkdb-2.3.5-gcc6.patch create mode 100644 dev-db/rethinkdb/files/rethinkdb-2.3.5-libressl.patch delete mode 100644 dev-db/rethinkdb/rethinkdb-2.3.5.ebuild create mode 100644 dev-db/rethinkdb/rethinkdb-2.3.6.ebuild (limited to 'dev-db/rethinkdb') diff --git a/dev-db/rethinkdb/Manifest b/dev-db/rethinkdb/Manifest index af1c839b4e5f..7b76bb0f8433 100644 --- a/dev-db/rethinkdb/Manifest +++ b/dev-db/rethinkdb/Manifest @@ -1,8 +1,10 @@ +AUX rethinkdb-2.3.5-gcc6.patch 1588 SHA256 2f9f6249c87ec2fc70c7cf94527e694c71c18a03131461eea96d0d35f64a1cc2 SHA512 ac902b1eea3dd5d5c2c76bf9aa1b513553624cccfbda282e9be50589f9f74f01cf4b9968f08b22c139af80e92f4e5a4930364c4af2977359ee95b7587c8f292c WHIRLPOOL 1365b9b21a5114ea0927f28f9ff04169d9400204a027b2d3f1be202f2ac5c10448386294fcec1d8e9ce98dfb8aa60e032fce988201396ae8bf7d5ffeadbf52cf +AUX rethinkdb-2.3.5-libressl.patch 4365 SHA256 24653857682178becdfbd34d40a57af03a12db33896065a1a46843a80ae1ece5 SHA512 ec18f3916def1f76ef58fcb1f077c8f405e86b3bc0ab660d547d5c4b4e7132495d35b4003d21ff019d660d03a14b205b74d1defb7e69f359903b4a9004f558f8 WHIRLPOOL 1f8cd026132e378fddfb333a3c388d2e19029f3a9c1598f139d12690f3a8a09b86f6a641ecd7e7d0066559cda23704fb660a5db3356fc81cbeb2efa63038d574 AUX rethinkdb.confd 606 SHA256 5d659a409a7b1a502a6362b818b01c1eb5f12e1bed273e9e876cc43758464659 SHA512 3a07f9c78ef96b2ca37fca508ee14a644d3c08612f662ba5260182fbfcceba064d20253f1261f56dc0a2c28d1a4d5e2320872c3c4e7595cb7ab4e202eb28ad42 WHIRLPOOL 2598d32113314f60b9e64048ba148c6fb3653ab92f833da13cc58b080996b988a20a61b8821634889c735628421609cee36c88dede66d89d5de071011a7afc57 AUX rethinkdb.initd 1645 SHA256 fea58f7423e160abd7470abcea821b5d502dff0314e94e81c5cbd0acbbbfc3d3 SHA512 4449b8a4d25232a1d8f375f161d3801d67d93756bd9b3e2f33b58a87e8a257e2e94e47f8aa4a74b69df3da528ffc349f15198a939552c3b5b9ffaacc18a096a9 WHIRLPOOL 6d1c2744ea27f9351e0165f711148581dadf472a7f88e65f08b23040f0e82c1c920e46506981550f3de0370017f96ae32dbac2ebbe12cc0f67ad3654586b564b AUX rethinkdb.service 261 SHA256 c831f179b0973ea5abb205a5aae3f4597d09bc7575f3a75fa6db5c32fce5f5ee SHA512 70389797ae79481b7d47b45f1676bd0531bc830a2f2daf7baec87533a7a6a0e67177572bab7d42324fe719f8a056899babc5ab2358a679c6a59899ed1272374b WHIRLPOOL 7e0259a1678a216a44ee1b64df65ad8c3d653887a392ed371b027f17fa91cc9cb1f315fdce4071e8c1403e9af7891d772089f85fb9291981fdbca08ed3e46b6a AUX rethinkdb.tmpfilesd 43 SHA256 656d3a42e75d087e723f71aa320fdd91cbbb82071ef72eb11fd3e4a619b429a4 SHA512 5996f72b8e08aac80285373e8e1b5a664177e9d0e8d13e5638c6b821fe5b7a0368001fbfa9ef3f6709dabf0616abcabea40adc4808d176572f8f99b7a3255bae WHIRLPOOL 84ff192ff84922155cfacb26e8f9255d506c0733472d5b674ea61e1c2f805a0293da0f69622d52bd21b2822dcaaf3a641c2ec39321283af0b3f00b0fb37ba2c9 -DIST rethinkdb-2.3.5.tgz 76829628 SHA256 dd8aeee169b177179bfe080725f0560443e0f26dae875b32ae25d90cf2f8ee10 SHA512 ac71656fd2451fd36432fa0f7d2c16c2be53888f748d88f0bfc2fb9ad7cd3c704b56551bc35eda72eb08fffdd799727a3cbe83830337cf71e17c159588d33c94 WHIRLPOOL 533a0a4db02672c4310ebd99a18517ff8a6e571e1c9a1c6b8f8ddc40e8b76c0506a56986857469a15ff74b6f80d2e5c830c0d606f67e4bf70eac4d59c7356652 -EBUILD rethinkdb-2.3.5.ebuild 3796 SHA256 2a2e3cd89d5323bd8f52fd899b82bf8e0328263b6806c4281102b0524ef97745 SHA512 95a8f533a12a939e03d5bab2076574bdd0c1c5f5cf1c5e45722c1bfd580f79a36c56fb903f063a057b0d3381317ff12577d4b1c5ae75fc4969d0d4d714513897 WHIRLPOOL bc29c69d86071912e33fa4ac6ebed4d5918bc345fdcb66d045be2d02e3b43934a628f0629c2a7cbb8d2f517d0c196b6205cdbb5678b94f05fda1e1c2c04a858f +DIST rethinkdb-2.3.6.tgz 76787356 SHA256 c42159666910ad01be295a57caf8839ec3a89227d8919be5418e3aa1f0a3dc28 SHA512 653177750f7439fa1d61a121e488d578be1eab90f87c7d17ad52b9793d8543f22bbe98f8d501c2ab2d7048c65118096430fe7bde945d87c7a3228905af801af2 WHIRLPOOL c8a65bc5861bf066c8d1b926e72a1c2029ba84b4d72f512d4b405cb8dfe0b9a183d72898d7b310a3507a0e30d6479ef7088516adffaed94b33e5837804d0f7d4 +EBUILD rethinkdb-2.3.6.ebuild 3885 SHA256 4528bf380fe71976bff596aff00a7913b0f3c856f0f09e2eb3c78508424f369f SHA512 4c070927a79bb4fb86871113e47eb5b07706f89578242de799fe2c9f18ebfcd40830fb9f2413f4742c96874b9c014d375373f23049cb18619ad392cd72427e33 WHIRLPOOL da794b0a69ababee51a2851c08f702a663e8a882ec8b319ac7a40c90daefa02c128422216217ec00d20f04725bbd28ff429176bd394ba9bcfd3c9a5de6d8034e MISC ChangeLog 811 SHA256 e88527a22732eb4670de3a12c546448deb0e77e1af8f70faa797b66cf850e09e SHA512 620ee0dbb9ecfc0c9244ab9caadd4f03948dfe9edb08596289ec5ac5166f8ceca1410752d272cb45398654b6299a8c78032bb91ac0ef7a8f1cf469a398942ccb WHIRLPOOL c811b8598672e07f87103fdce8883a9a5872d50bd59b78bfb0e961aa598c6567e46eb74f2149d26760340d620c958d19f93dc62ede049edada26fb86b39ce999 MISC metadata.xml 584 SHA256 78e93ccdd027b576957d5e3cd8fcc3ca75150d2591d70a4fd60f35c8c170293f SHA512 50641820a4f298ad66ceedafcb388b8f99d2732e0e7de9c0aa412d75482488a9d382845802ea55a451c39890ff5167715f47e3346aad29992fd3bc069d097dae WHIRLPOOL faf720da7b8edb0781aa3985e448c049fe8027bfec7771a2f6319b3a60f4aaf94b0218230760ec0c4000a9eab6557fc2ae1dcaefb4ccc3b80b3657366912fabc diff --git a/dev-db/rethinkdb/files/rethinkdb-2.3.5-gcc6.patch b/dev-db/rethinkdb/files/rethinkdb-2.3.5-gcc6.patch new file mode 100644 index 000000000000..e3d5eac88a45 --- /dev/null +++ b/dev-db/rethinkdb/files/rethinkdb-2.3.5-gcc6.patch @@ -0,0 +1,37 @@ +Bug: https://bugs.gentoo.org/594220 +Commit: https://github.com/rethinkdb/rethinkdb/commit/871bd3705a1f29c4ab07a096d562a4b06231a97c + +From 871bd3705a1f29c4ab07a096d562a4b06231a97c Mon Sep 17 00:00:00 2001 +From: Etienne Laurin +Date: Wed, 16 Nov 2016 04:17:41 +0000 +Subject: [PATCH] Workaround for building V8 with GCC 6.2 + +--- + mk/support/pkg/v8.sh | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/mk/support/pkg/v8.sh b/mk/support/pkg/v8.sh +index dc339ad0715..97f4d336c03 100644 +--- a/mk/support/pkg/v8.sh ++++ b/mk/support/pkg/v8.sh +@@ -44,8 +44,10 @@ pkg_install () { + arm*) arch=arm; arch_gypflags=$raspberry_pi_gypflags ;; + *) arch=native ;; + esac ++ + mode=release +- pkg_make $arch.$mode CXX=$CXX LINK=$CXX LINK.target=$CXX GYPFLAGS="-Dwerror= $arch_gypflags" V=1 ++ pkg_make $arch.$mode CXX=$CXX LINK=$CXX LINK.target=$CXX GYPFLAGS="-Dwerror= -Dv8_use_snapshot=false $arch_gypflags" V=1 ++ + for lib in `find "$build_dir/out/$arch.$mode" -maxdepth 1 -name \*.a` `find "$build_dir/out/$arch.$mode/obj.target" -name \*.a`; do + name=`basename $lib` + cp $lib "$install_dir/lib/${name/.$arch/}" +@@ -56,7 +58,7 @@ pkg_install () { + pkg_link-flags () { + # These are the necessary libraries recommended by the docs: + # https://developers.google.com/v8/get_started#hello +- for lib in libv8_{base,libbase,snapshot,libplatform}; do ++ for lib in libv8_{base,nosnapshot,libbase,libplatform}; do + echo "$install_dir/lib/$lib.a" + done + for lib in libicu{i18n,uc,data}; do diff --git a/dev-db/rethinkdb/files/rethinkdb-2.3.5-libressl.patch b/dev-db/rethinkdb/files/rethinkdb-2.3.5-libressl.patch new file mode 100644 index 000000000000..b79850b0b6b3 --- /dev/null +++ b/dev-db/rethinkdb/files/rethinkdb-2.3.5-libressl.patch @@ -0,0 +1,162 @@ +Bug: https://bugs.gentoo.org/594998 +Issue: https://github.com/rethinkdb/rethinkdb/issues/6336 +Patch: https://git.alpinelinux.org/cgit/aports/tree/community/rethinkdb/libressl.patch?id=146fb0d67a1b861d5c776d97f533efe0bb26af7a + +From d52a694a806c1a8b6dd4d7d17d0671a96240449a Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Wed, 4 Jan 2017 15:31:40 +0100 +Subject: [PATCH] Improve OpenSSL compatibility + +Refactor the conditionals for openssl 1.1 support so we avoid multiple +if/else and add a check for LibreSSL as well. +--- + src/crypto/hash.cc | 13 +++++-------- + src/crypto/hmac.cc | 34 ++++++++++++++++++---------------- + src/crypto/initialization_guard.cc | 15 ++++++--------- + 3 files changed, 29 insertions(+), 33 deletions(-) + +diff --git a/src/crypto/hash.cc b/src/crypto/hash.cc +index 4427dfddeb..e035f695fc 100644 +--- a/src/crypto/hash.cc ++++ b/src/crypto/hash.cc +@@ -8,27 +8,24 @@ + + #include "crypto/error.hpp" + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#define EVP_MD_CTX_new EVP_MD_CTX_create ++#define EVP_MD_CTX_free EVP_MD_CTX_destroy ++#endif ++ + namespace crypto { + + class evp_md_ctx_wrapper_t { + public: + evp_md_ctx_wrapper_t() { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +- m_evp_md_ctx = EVP_MD_CTX_create(); +-#else + m_evp_md_ctx = EVP_MD_CTX_new(); +-#endif + if (m_evp_md_ctx == nullptr) { + throw openssl_error_t(ERR_get_error()); + } + } + + ~evp_md_ctx_wrapper_t() { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +- EVP_MD_CTX_destroy(m_evp_md_ctx); +-#else + EVP_MD_CTX_free(m_evp_md_ctx); +-#endif + } + + EVP_MD_CTX *get() { +diff --git a/src/crypto/hmac.cc b/src/crypto/hmac.cc +index 2ac4314e24..0e3f91a0c1 100644 +--- a/src/crypto/hmac.cc ++++ b/src/crypto/hmac.cc +@@ -7,43 +7,45 @@ + + #include "crypto/error.hpp" + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++ ++inline HMAC_CTX *HMAC_CTX_new() { ++ HMAC_CTX *tmp = (HMAC_CTX *)OPENSSL_malloc(sizeof(HMAC_CTX)); ++ if (tmp) ++ HMAC_CTX_init(tmp); ++ return tmp; ++} ++ ++inline void HMAC_CTX_free(HMAC_CTX *ctx) { ++ if (ctx) { ++ HMAC_CTX_cleanup(ctx); ++ OPENSSL_free(ctx); ++ } ++} ++ ++#endif ++ + namespace crypto { + + class hmac_ctx_wrapper_t { + public: + hmac_ctx_wrapper_t() { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +- HMAC_CTX_init(&m_hmac_ctx); +-#else + m_hmac_ctx = HMAC_CTX_new(); + if (m_hmac_ctx == nullptr) { + throw openssl_error_t(ERR_get_error()); + } +-#endif + } + + ~hmac_ctx_wrapper_t() { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +- HMAC_CTX_cleanup(&m_hmac_ctx); +-#else + HMAC_CTX_free(m_hmac_ctx); +-#endif + } + + HMAC_CTX *get() { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +- return &m_hmac_ctx; +-#else + return m_hmac_ctx; +-#endif + } + + private: +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +- HMAC_CTX m_hmac_ctx; +-#else + HMAC_CTX *m_hmac_ctx; +-#endif + }; + + std::array detail::hmac_sha256( +diff --git a/src/crypto/initialization_guard.cc b/src/crypto/initialization_guard.cc +index ba0503efc6..f76ffd96da 100644 +--- a/src/crypto/initialization_guard.cc ++++ b/src/crypto/initialization_guard.cc +@@ -14,16 +14,17 @@ + #include "arch/io/concurrency.hpp" + #include "arch/runtime/runtime.hpp" + ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) ++#define OPENSSL_init_ssl(x, y) SSL_library_init() ++#define OPENSSL_init_crypto(x, y) SSL_load_error_strings() ++#define OPENSSL_cleanup ERR_free_strings ++#endif ++ + namespace crypto { + + initialization_guard_t::initialization_guard_t() { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +- SSL_library_init(); +- SSL_load_error_strings(); +-#else + OPENSSL_init_ssl(0, nullptr); + OPENSSL_init_crypto(0, nullptr); +-#endif + + // Make OpenSSL thread-safe by registering the required callbacks + CRYPTO_THREADID_set_callback([](CRYPTO_THREADID *thread_out) { +@@ -49,11 +50,7 @@ initialization_guard_t::initialization_guard_t() { + } + + initialization_guard_t::~initialization_guard_t() { +-#if OPENSSL_VERSION_NUMBER < 0x10100000L +- ERR_free_strings(); +-#else + OPENSSL_cleanup(); +-#endif + } + + } // namespace crypto +-- +2.11.0 + diff --git a/dev-db/rethinkdb/rethinkdb-2.3.5.ebuild b/dev-db/rethinkdb/rethinkdb-2.3.5.ebuild deleted file mode 100644 index 7dafd2bc1039..000000000000 --- a/dev-db/rethinkdb/rethinkdb-2.3.5.ebuild +++ /dev/null @@ -1,134 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -inherit python-utils-r1 systemd user - -DESCRIPTION="The open-source database for the realtime web." -HOMEPAGE="http://www.rethinkdb.com" -LICENSE="AGPL-3" -SLOT="0" -SRC_URI="http://download.rethinkdb.com/dist/${P}.tgz" - -KEYWORDS="~amd64 ~x86" -IUSE="doc +jemalloc tcmalloc" - -# TODO: rly need some webui libs ? -DEPEND=">=dev-libs/re2-0.2016.05.01 - dev-cpp/gtest - dev-libs/boost - dev-libs/protobuf-c - net-misc/curl - sys-libs/libunwind - sys-libs/ncurses:= - jemalloc? ( >=dev-libs/jemalloc-4.0 ) - tcmalloc? ( dev-util/google-perftools )" -RDEPEND="${DEPEND}" -REQUIRED_USE="?? ( tcmalloc jemalloc )" - -pkg_setup() { - enewgroup rethinkdb - enewuser rethinkdb -1 -1 /var/lib/${PN} rethinkdb -} - -src_prepare() { - eapply_user - - # don't use predefined configuration - rm configure.default - - # 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 for Gentoo - # fix default pid-file path - # fix default directory path - # fix default log-file path - sed -e 's@/var/run/@/run/@g' \ - -e 's@/var/lib/rethinkdb/@/var/lib/rethinkdb/instances.d/@g' \ - -e 's@/var/log/rethinkdb@/var/log/rethinkdb/default.log@g' \ - -i packaging/assets/config/default.conf.sample || die - - # proper CXX declaration - sed -e "s/CXX=\$(.*/CXX=$(tc-getCXX)/g" -i configure || die - - # respect user CXXFLAGS optimizations - sed -e 's/-O3//g' -i src/build.mk || die -} - -src_configure() { - local conf_opts=( - --prefix="/usr" - --sysconfdir="/etc" - --localstatedir="/var" - --static=none - --dynamic=gtest - --dynamic=re2 - ) - 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_compile() { - python_export python2.7 EPYTHON - emake VERBOSE=1 -} - -src_install() { - emake DESTDIR="${D}" VERBOSE=1 install - - for x in /var/{lib,log}/${PN}; do - keepdir "${x}" - fowners rethinkdb:rethinkdb "${x}" - done - - 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} start" -} diff --git a/dev-db/rethinkdb/rethinkdb-2.3.6.ebuild b/dev-db/rethinkdb/rethinkdb-2.3.6.ebuild new file mode 100644 index 000000000000..75c166abc66c --- /dev/null +++ b/dev-db/rethinkdb/rethinkdb-2.3.6.ebuild @@ -0,0 +1,139 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +inherit python-utils-r1 systemd user + +DESCRIPTION="The open-source database for the realtime web." +HOMEPAGE="http://www.rethinkdb.com" +LICENSE="AGPL-3" +SLOT="0" +SRC_URI="http://download.rethinkdb.com/dist/${P}.tgz" + +KEYWORDS="~amd64 ~x86" +IUSE="doc +jemalloc tcmalloc" + +# TODO: rly need some webui libs ? +DEPEND=">=dev-libs/re2-0.2016.05.01 + dev-cpp/gtest + dev-libs/boost + dev-libs/protobuf-c + net-misc/curl + sys-libs/libunwind + sys-libs/ncurses:= + jemalloc? ( >=dev-libs/jemalloc-4.0 ) + tcmalloc? ( dev-util/google-perftools )" +RDEPEND="${DEPEND}" +REQUIRED_USE="?? ( tcmalloc jemalloc )" + +pkg_setup() { + enewgroup rethinkdb + enewuser rethinkdb -1 -1 /var/lib/${PN} rethinkdb +} + +PATCHES=( + "${FILESDIR}"/${PN}-2.3.5-gcc6.patch + "${FILESDIR}"/${PN}-2.3.5-libressl.patch +) + +src_prepare() { + default + + # don't use predefined configuration + rm configure.default + + # 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 for Gentoo + # fix default pid-file path + # fix default directory path + # fix default log-file path + sed -e 's@/var/run/@/run/@g' \ + -e 's@/var/lib/rethinkdb/@/var/lib/rethinkdb/instances.d/@g' \ + -e 's@/var/log/rethinkdb@/var/log/rethinkdb/default.log@g' \ + -i packaging/assets/config/default.conf.sample || die + + # proper CXX declaration + sed -e "s/CXX=\$(.*/CXX=$(tc-getCXX)/g" -i configure || die + + # respect user CXXFLAGS optimizations + sed -e 's/-O3//g' -i src/build.mk || die +} + +src_configure() { + local conf_opts=( + --prefix="/usr" + --sysconfdir="/etc" + --localstatedir="/var" + --static=none + --dynamic=gtest + --dynamic=re2 + ) + 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_compile() { + python_export python2.7 EPYTHON + emake VERBOSE=1 +} + +src_install() { + emake DESTDIR="${D}" VERBOSE=1 install + + for x in /var/{lib,log}/${PN}; do + keepdir "${x}" + fowners rethinkdb:rethinkdb "${x}" + done + + 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} start" +} -- cgit v1.2.3