From f3a016707f09ff20ccffe6713622ed4add68f5d0 Mon Sep 17 00:00:00 2001 From: Ultrabug Date: Tue, 28 Jan 2020 14:30:52 +0100 Subject: dev-db/scylla: version bump Package-Manager: Portage-2.3.81, Repoman-2.3.20 Manifest-Sign-Key: 34FCB257983BA23A8CEC5EB7EB9E6405C24BFAE5 Signed-off-by: Alexys Jacob --- dev-db/scylla/Manifest | 19 ++- dev-db/scylla/files/5624.patch | 13 --- dev-db/scylla/scylla-3.2.0.ebuild | 240 -------------------------------------- dev-db/scylla/scylla-3.2.1.ebuild | 240 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 249 insertions(+), 263 deletions(-) delete mode 100644 dev-db/scylla/files/5624.patch delete mode 100644 dev-db/scylla/scylla-3.2.0.ebuild create mode 100644 dev-db/scylla/scylla-3.2.1.ebuild diff --git a/dev-db/scylla/Manifest b/dev-db/scylla/Manifest index 8537bf0..11ec383 100644 --- a/dev-db/scylla/Manifest +++ b/dev-db/scylla/Manifest @@ -7,7 +7,6 @@ AUX 10-scylla.conf 64 BLAKE2B 31ce1b2173214bcac351b71cf19e5506ab08cefbca446ce23a AUX 3.1-revert-64-bit-gc_clock.patch 1132 BLAKE2B 7ed59d5f898babc4940bcd10a8aaf467545c80fd8c7417e481d80abc07fc27b4859396cafa5b1d1da4d386f8c490e6f417c0ce63064eea7177ce869869387480 SHA512 8ff0019080687993939fb5c0bb24945214799dfe0942982d8154769155159c02bc75e448978343c1b08a162a6670bede3721247a70c6fabfe1cd9730dbf4f77a AUX 3.1-thrift-support.patch 39980 BLAKE2B 7de8bde052186b8a62ea83b7082e9828d4c320ed86381a93d5136906ba014631dc3b5e2a2b1dfd33bec21c6bd7d685fa3f1f270c97f233934cca24473d0e52b5 SHA512 d33e50dbef01dfd4845a093c160b5cbedc658770c1b5a5de063c56b43df0731329fe0cdb3ddfa5d72020ab25573682e4d14a3c39ad366a208694062a3fd49155 AUX 3.1.2-fix-read-amplification.patch 962 BLAKE2B bacd95cf99097254a3aca2a034ac38c6133039ab0487cb2880ef4fb3ed960c066bf96470a4c07cf800cd01810b7841c9740ea8204aa0ecd73b2b71489dfcc591 SHA512 59b8646378cc6ec9468920093169f1f537e9855e6b1f4a83f4abaaf15c1c2c66566877d3bae88b4f5b75ab0fb8958527f9a13f13f6a98e839c56bb0418b20c27 -AUX 5624.patch 1019 BLAKE2B f534e3b7d0a8d9ee08dac1fa21e54719c92f97758047f567382c94c249b1cb6e830405043fe6d4ae5f3130d78ecc96cb2ca077d86509eba33a6bf8d236740103 SHA512 8d98567913e7a9c660c65d4c55ac29c06dfeb2824b2886df83b5f08092d48141da4abe40ebeffa7f46843722af4f457c3d7dc7c2dd8aafa95cf07ecb27d8ccf7 AUX boost-1.65.0-icl-ttp-matching.patch 1427 BLAKE2B de9c77253963656f85ed2d05babd600bc5b59b567bc889ed815dfba97f2a1334df48dbb1e67879dea1419fb439c513c54a66531d4e8ec28a7848385f70471334 SHA512 aaa7959df631c17a80486e5b6724d76bf2193694f5559443350c74567506f36c133f740adcbb1b2d3a5a2760730f498f0fd655ec6eff6d20393b6e49549c6ec8 AUX fix-fmt-3.5.0-compilation.patch 3785 BLAKE2B 3cd23ccffe1ec33d5f7e2c6c3583631b294fc0e6d36e49eef582598fd168968805dd7ca4cc786c02cb20ae1e758a814e1b761dbd41a86330906cd4b5af5d6666 SHA512 d7606559fb2aef9ea009e8c417397dcc94d0c708da8283d4c1c6393c059ecca50d9806cfb19d1fe69b8d7898da2b8d194fbc8b8dd1aa9c12e0d6120d52bc2518 AUX scylla-server.confd 396 BLAKE2B dc522b308985e51c24449a333d793eaa777a74b8b5594f1ff4a092aae003202791019a255ea478c4e794a83ca0e01d2c49aac3d267501624f461fa3edfe1c41f SHA512 51739cdeedaedb1a73a345ec6a4a2761d29fac1b9cf61f02937559aed43f02112109464254213118d40af1fb7e8491c22f8cb88908c9c88523dfe1b78b8430c7 @@ -20,20 +19,20 @@ EBUILD scylla-3.1.1-r2.ebuild 7622 BLAKE2B 404ab3d8e42898a7379aa9872eb710aa183ca EBUILD scylla-3.1.1.ebuild 7497 BLAKE2B 9f9a71a22eecababea0ec5c4f156b50d2c858f3c764acaedb77eb159d0e4c6c9f8ce4c4efde856d04edce0a89d40759ed56bea62c7f693e44e489d3d69f8f6fa SHA512 b6fee615043cce8801f9d84d0599a6e6fb6ded7553b04b1b38bc7b560576ac918b20e542a8064d54ae9615bafa2fe7e854069bb749d0fd332c3c4584104a05a3 EBUILD scylla-3.1.2-r1.ebuild 7672 BLAKE2B 7249eb175499b7aa9ac0a5df43ffb4a573eca25d5f1b23c79935bd444320d977d7c2b3953c4569a606ded4a15028dc09c8374d1a0df8ce6dd45471a23fd2c662 SHA512 0e5ebf4b64ce7f4496ab94c87a3f8c432f762909f35b03501a4c84e6f6a7f780c35b947ececf0fd8e32a0a13dd011b8b074a955994cb46342336c2edb0e348c5 EBUILD scylla-3.1.2.ebuild 7075 BLAKE2B 6b690c242e061b69eb60d954cdbc00adc87651961cab3864b54b861b0349588110e4ba2c254076ae86a924e8f334937af9b60c11ca23a8f84553c11f920703cc SHA512 9a568b06f7b12ba8a09919c9f0a8f08c954a7a339eb1568026b6b2f8a8f5e8438f468c195ed6617402a2ef78aca42310f8388ce39312fb1b71bc09ea6c88990f -EBUILD scylla-3.2.0.ebuild 7132 BLAKE2B 2b6241d4d4e244ee151935547929e21d11bb8e6b50c2bc8fd6b7389301271783ff8db69906f8e3265b155d8d8659052c83cd7dc146c12522c410bed2746ff723 SHA512 6d00e98de81b952a3e8ab15c95977927f15f47c05144feea5fe424828d790a80cf29dec4b4497c9cfdb865e3616a72bed25c901eabd6a4970de6bbdb31edec2a +EBUILD scylla-3.2.1.ebuild 7109 BLAKE2B 4adf3d0426b3ba866e790529b9ce32e3c2ca98ef26bde98718bce166baeec6cb8ddea0d68cd935d07a77595cca8e7123d5ca831c2a7424e2b35241ba5354ffbb SHA512 aa2d6002cbcfbe2a14bceed5a9343df99c0a8bb400365ca7610ae8949c8ce83364f69b9629cc618f692ceb91232f4bad9d21b1b3093316f9546b85391294a4c9 EBUILD scylla-9999.ebuild 6403 BLAKE2B 4e176d656ed4224cf625562ffe89f422124bd05ae39f0d5d9b4e68093362bd8f4f44dd71f66e81d28c39c741ff4b9ba62c72fb237799a630d41e9d41b73ad250 SHA512 e04b414ee51c1b3ffea859c25f4ee40f75447d16b0494f25b1ca3bf756d7cce5823c9cb4d19be90dace91248edee826c20be608393eada09fda8913efe25c11b MISC metadata.xml 249 BLAKE2B 40afa233e18ae5678e52194be8b1235d8deda4810e55b33ea192ded6b09a158f1bc941544f90a1b9e396db00bc0fe277c072d267568473ae4aa2dec8bc5c2f89 SHA512 6eae78a65db44c8f7ef2d20c10c8612cd2072c0204c6294798e4bf94f1283c684c22d1ad28e0f68e78e82a0c60526d6786492c9dacc438d83405218e51c1bf9c -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 -iQGTBAEBCAB9FiEEB7NG2KqNbQw8gqQ7Uf8j8ayXdy8FAl4oNkNfFIAAAAAALgAo +iQGTBAEBCAB9FiEEB7NG2KqNbQw8gqQ7Uf8j8ayXdy8FAl4wN3BfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDA3 QjM0NkQ4QUE4RDZEMEMzQzgyQTQzQjUxRkYyM0YxQUM5Nzc3MkYACgkQUf8j8ayX -dy+Sagf/fyzy6F7ws7QQmTJFoKTzBgPPFRqQnwN3sIFAjV3e8eaZ8qN7CnXRN8io -NkG8T16iYJlRxUmQWKj12zdTuZ1rQS4HB7vbrL0oUbcSy0ppoVNTthsmoA5S0rGo -qtWRcsEVAn248bt5QpTcaLjj8VJdMLzIJW22ymsjRCeKthUKDPDSGehGH7sJ8cH2 -4SJ9ATVKVqqAnhtCD1qreFaq1U5Kq+uAHkxmQOTV3Bd3K6CVhz0anCOg1do4kGCC -8mTH6gw26xJhQTu3SiggbdsEW3BJlr2PeRht3SKDexhouUy2QWqNcKGcEYLPAScj -7bvfMMEpoccnHG+k4AJpqYJfCDgJfQ== -=qeVV +dy8HzAgArUPmYgCP0hF9dxg6fPS73VptdtWaLEoAo1Dq2i2jta2b486LAHw0513K +g07swHBVlIG16yAyHZsafF4BhMwu/khx4aDFxdApiMqSN6c4aAgeotYzUJTa1DBE +oX6O3OHSslSY5JDpq1SGSuixADEBAKrwqfmNwLMfoRU6JnMzgR9F4lTQXEWg4M55 +sPMrCX5klOL6Ycpu/IKTNLj1AK4TOCDr80kUn0w7PwhIhDFIf7GZYIUWeMn7iw+Q +CTAtsh4l+bwx+Zg6tqzAa0rZJAu0OlrUrRtUz6niavnyeN8cIRnW6oLlCRis1nxv +crBL0vC8hVa1aN1UykRAI7ShC9pcsw== +=aqat -----END PGP SIGNATURE----- diff --git a/dev-db/scylla/files/5624.patch b/dev-db/scylla/files/5624.patch deleted file mode 100644 index f4c64c0..0000000 --- a/dev-db/scylla/files/5624.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/db/view/view.cc b/db/view/view.cc -index d0242b3487..1ee3119101 100644 ---- a/db/view/view.cc -+++ b/db/view/view.cc -@@ -311,7 +311,7 @@ deletable_row& view_updates::get_view_row(const partition_key& base_key, const c - if (!cdef.is_computed()) { - //FIXME(sarna): this legacy code is here for backward compatibility and should be removed - // once "computed_columns feature" is supported by every node -- if (!service::get_local_storage_service().db().local().find_column_family(_base->id()).get_index_manager().is_index(*_base)) { -+ if (!service::get_local_storage_service().db().local().find_column_family(_base->id()).get_index_manager().is_index(*_view)) { - throw std::logic_error(format("Column {} doesn't exist in base and this view is not backing a secondary index", cdef.name_as_text())); - } - computed_value = token_column_computation().compute_value(*_base, base_key, update); diff --git a/dev-db/scylla/scylla-3.2.0.ebuild b/dev-db/scylla/scylla-3.2.0.ebuild deleted file mode 100644 index 97e9415..0000000 --- a/dev-db/scylla/scylla-3.2.0.ebuild +++ /dev/null @@ -1,240 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=6 - -MY_PV="${PV/_/.}" -EGIT_CLONE_TYPE="mirror" -EGIT_COMMIT="scylla-${MY_PV}" -EGIT_REPO_URI="https://github.com/scylladb/scylla.git" -inherit git-r3 - -PYTHON_COMPAT=( python3_{5,6} ) - -inherit autotools flag-o-matic linux-info python-r1 toolchain-funcs systemd user - -DESCRIPTION="NoSQL data store using the seastar framework, compatible with Apache Cassandra" -HOMEPAGE="http://scylladb.com/" - -KEYWORDS="~amd64" -LICENSE="AGPL-3" -SLOT="0" -IUSE="doc systemd" - -# NOTE: -# if you want to debug using backtraces, enable the 'splitdebug' FEATURE: -# https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces -# -# then check out: -# https://github.com/scylladb/scylla/wiki/How-to-resolve-backtrace - -RESTRICT="test" - -RDEPEND=" - =dev-libs/libfmt-3.2.1 - >=dev-libs/thrift-0.11.0 - >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}] - >=virtual/jdk-1.8.0:* - app-arch/lz4 - app-arch/snappy - app-arch/zstd - dev-cpp/antlr-cpp:3.5 - dev-cpp/yaml-cpp - dev-java/antlr:3.5 - dev-libs/boost[icu] - dev-libs/crypto++ - dev-libs/jsoncpp - dev-libs/libaio - dev-libs/libxml2 - dev-libs/protobuf - dev-libs/rapidjson - dev-python/psutil[${PYTHON_USEDEP}] - dev-python/pyparsing[${PYTHON_USEDEP}] - dev-python/pystache[${PYTHON_USEDEP}] - dev-python/pyudev[${PYTHON_USEDEP}] - dev-python/requests[${PYTHON_USEDEP}] - dev-python/urwid[${PYTHON_USEDEP}] - dev-util/systemtap - net-libs/gnutls - net-misc/lksctp-tools - sys-apps/ethtool - sys-fs/xfsprogs - sys-libs/libunwind - sys-libs/zlib - sys-process/numactl - systemd? ( sys-apps/systemd ) - x11-libs/libpciaccess - ~app-admin/scylla-jmx-${PV} - ~app-admin/scylla-tools-${PV} -" -DEPEND="${RDEPEND} - >=sys-kernel/linux-headers-3.5 - dev-util/ninja -" - -# Discussion about kernel configuration: -# https://groups.google.com/forum/#!topic/scylladb-dev/qJu2zrryv-s -CONFIG_CHECK="~NUMA_BALANCING ~SYN_COOKIES ~TRANSPARENT_HUGEPAGE" -ERROR_NUMA_BALANCING="${PN} recommends support for Memory placement aware NUMA scheduler (NUMA_BALANCING)." -ERROR_SYN_COOKIES="${PN} recommends support for TCP syncookie (SYN_COOKIES)." -ERROR_TRANSPARENT_HUGEPAGE="${PN} recommends support for Transparent Hugepage (TRANSPARENT_HUGEPAGE)." - -# NOTE: maybe later depending on upstream energy, support DPDK -# For DPDK, removed HUGETLBFS PROC_PAGE_MONITOR UIO_PCI_GENERIC in favor of VFIO -# CONFIG_CHECK="~NUMA_BALANCING ~SYN_COOKIES ~TRANSPARENT_HUGEPAGE ~VFIO" -# ERROR_VFIO="${PN} running with DPDK recommends support for Non-Privileged userspace driver framework (VFIO)." - -DOCS=( LICENSE.AGPL NOTICE.txt ORIGIN README.md ) -PATCHES=( "${FILESDIR}/5624.patch" ) - -pkg_setup() { - linux-info_pkg_setup - enewgroup scylla - enewuser scylla -1 -1 /var/lib/${PN} scylla -} - -src_prepare() { - default - - # set version - local git_commit=$(git log --pretty=format:'%h' -n 1) - echo "${PV}-${git_commit}" > version - - # fix jsoncpp detection - sed -e 's@json/json.h@jsoncpp/json/json.h@g' -i json.hh || die - - # QA: no -Werror (tho it does not propagate) - sed -e 's/\-Werror//g' -i configure.py || die - - # QA NOTE: respect -O3 as it is upstream recommended - # and because we would kill the RAM of the machine with lower optimization - # since some files can take up to 8GB of RAM to compile! - # sed -e 's/\-O3//g' -i configure.py || die - - # I don't agree with the old 4GB of RAM per job, it's more about 8GB now - sed -e 's/4000000000/8000000000/g' -i scripts/jobs || die - - # TODO: contribute me - # fix pyyaml vulnerability #659348 - # seastar/scripts/perftune.py - # dist/docker/redhat/scyllasetup.py - # dist/common/scripts/scylla_io_setup - # dist/common/scripts/scylla_fstrim - # dist/common/scripts/scylla_blocktune.py - # dist/common/scripts/scylla_util.py - # dist/common/scripts/scylla_config_get.py - # find "${S}/dist" -type f -exec sed -e 's/yaml.load(/yaml.full_load(/g' -i {} \+ || die - sed -e 's/yaml.load(/yaml.safe_load(/g' -i seastar/scripts/perftune.py || die - - # fix /opt/scylladb/scripts - sed -e 's@/opt/scylladb/scripts@/usr/lib/scylla@g' -i dist/common/scripts/* || die -} - -src_configure() { - python_setup - - # needed for blocked reactors logging as it disables -fomit-frame-pointers - append-cflags -g - - ${EPYTHON} configure.py --enable-gcc6-concepts --mode=release --with=scylla --disable-xen --c-compiler "$(tc-getCC)" --compiler "$(tc-getCXX)" --ldflags "${LDFLAGS}" --cflags "${CFLAGS}" --python ${EPYTHON} --with-antlr3 /usr/bin/antlr3.5 || die -} - -src_compile() { - # we use the provided 'scripts/jobs' to figure out how many parallel - # compilation jobs we can sustain - einfo "Compiling using $(scripts/jobs) jobs" - ninja -v build/release/scylla build/release/iotune -j$(scripts/jobs) || die -} - -src_install() { - # NOTE: - # I base myself on upstream's install.sh file - - default - - local MUSTACHE_DIST="\"debian\": true" - pystache dist/common/systemd/scylla-server.service.mustache "{ $MUSTACHE_DIST }" > build/scylla-server.service - pystache dist/common/systemd/scylla-housekeeping-daily.service.mustache "{ $MUSTACHE_DIST }" > build/scylla-housekeeping-daily.service - pystache dist/common/systemd/scylla-housekeeping-restart.service.mustache "{ $MUSTACHE_DIST }" > build/scylla-housekeeping-restart.service - - insinto /etc/default - doins dist/common/sysconfig/scylla-server - - insinto /etc/security/limits.d - doins dist/common/limits.d/scylla.conf - - insinto /etc/scylla.d - doins dist/common/scylla.d/*.conf - - insinto /etc/sysctl.d - doins dist/common/sysctl.d/*.conf - - insinto /etc/scylla - for config_file in scylla.yaml cassandra-rackdc.properties; do - doins conf/${config_file} - done - - systemd_dounit build/*.service - systemd_dounit dist/common/systemd/*.service - systemd_dounit dist/common/systemd/*.timer - - exeinto /usr/lib/scylla - doexe dist/common/scripts/* - doexe seastar/scripts/* - doexe scylla-gdb.py - - dobin build/release/iotune - dobin build/release/scylla - - insinto /usr/lib/scylla - doins dist/common/scripts/scylla_blocktune.py - - exeinto /usr/lib/scylla - doexe dist/common/scripts/scylla-blocktune - doexe dist/common/scripts/scylla-housekeeping - - insinto /etc/scylla.d - doins conf/housekeeping.cfg - - newinitd "${FILESDIR}/scylla-server.initd" ${PN}-server - newconfd "${FILESDIR}/scylla-server.confd" ${PN}-server - - dodoc -r licenses - - for x in /var/lib/${PN} /var/lib/${PN}/{data,commitlog,hints,coredump} /var/lib/scylla-housekeeping /var/log/scylla; do - keepdir "${x}" - fowners scylla:scylla "${x}" - done - - insinto /usr/lib/scylla/swagger-ui - doins -r swagger-ui/dist - - insinto /usr/lib/scylla/api - doins -r api/api-doc - - insinto /usr/lib/scylla/scyllatop - doins -r tools/scyllatop/* - fperms +x /usr/lib/scylla/scyllatop/scyllatop.py - dosym /usr/lib/scylla/scyllatop/scyllatop.py /usr/sbin/scyllatop - - for util in $(ls dist/common/sbin/); do - dosym /usr/lib/scylla/${util} /usr/sbin/${util} - done - - insinto /etc/sudoers.d - newins "${FILESDIR}"/scylla.sudoers scylla - - insinto /etc/rsyslog.d - doins "${FILESDIR}/10-scylla.conf" -} - -pkg_postinst() { - elog "You should run 'emerge --config dev-db/scylla' to finalize your ScyllaDB installation." -} - -pkg_config() { - elog "Running 'scylla_setup'..." - scylla_setup -} diff --git a/dev-db/scylla/scylla-3.2.1.ebuild b/dev-db/scylla/scylla-3.2.1.ebuild new file mode 100644 index 0000000..8bdf746 --- /dev/null +++ b/dev-db/scylla/scylla-3.2.1.ebuild @@ -0,0 +1,240 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +MY_PV="${PV/_/.}" +EGIT_CLONE_TYPE="mirror" +EGIT_COMMIT="scylla-${MY_PV}" +EGIT_REPO_URI="https://github.com/scylladb/scylla.git" +inherit git-r3 + +PYTHON_COMPAT=( python3_{5,6} ) + +inherit autotools flag-o-matic linux-info python-r1 toolchain-funcs systemd user + +DESCRIPTION="NoSQL data store using the seastar framework, compatible with Apache Cassandra" +HOMEPAGE="http://scylladb.com/" + +KEYWORDS="~amd64" +LICENSE="AGPL-3" +SLOT="0" +IUSE="doc systemd" + +# NOTE: +# if you want to debug using backtraces, enable the 'splitdebug' FEATURE: +# https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces +# +# then check out: +# https://github.com/scylladb/scylla/wiki/How-to-resolve-backtrace + +RESTRICT="test" + +RDEPEND=" + =dev-libs/libfmt-3.2.1 + >=dev-libs/thrift-0.11.0 + >=dev-python/pyyaml-5.1[${PYTHON_USEDEP}] + >=virtual/jdk-1.8.0:* + app-arch/lz4 + app-arch/snappy + app-arch/zstd + dev-cpp/antlr-cpp:3.5 + dev-cpp/yaml-cpp + dev-java/antlr:3.5 + dev-libs/boost[icu] + dev-libs/crypto++ + dev-libs/jsoncpp + dev-libs/libaio + dev-libs/libxml2 + dev-libs/protobuf + dev-libs/rapidjson + dev-python/psutil[${PYTHON_USEDEP}] + dev-python/pyparsing[${PYTHON_USEDEP}] + dev-python/pystache[${PYTHON_USEDEP}] + dev-python/pyudev[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/urwid[${PYTHON_USEDEP}] + dev-util/systemtap + net-libs/gnutls + net-misc/lksctp-tools + sys-apps/ethtool + sys-fs/xfsprogs + sys-libs/libunwind + sys-libs/zlib + sys-process/numactl + systemd? ( sys-apps/systemd ) + x11-libs/libpciaccess + ~app-admin/scylla-jmx-${PV} + ~app-admin/scylla-tools-${PV} +" +DEPEND="${RDEPEND} + >=sys-kernel/linux-headers-3.5 + dev-util/ninja +" + +# Discussion about kernel configuration: +# https://groups.google.com/forum/#!topic/scylladb-dev/qJu2zrryv-s +CONFIG_CHECK="~NUMA_BALANCING ~SYN_COOKIES ~TRANSPARENT_HUGEPAGE" +ERROR_NUMA_BALANCING="${PN} recommends support for Memory placement aware NUMA scheduler (NUMA_BALANCING)." +ERROR_SYN_COOKIES="${PN} recommends support for TCP syncookie (SYN_COOKIES)." +ERROR_TRANSPARENT_HUGEPAGE="${PN} recommends support for Transparent Hugepage (TRANSPARENT_HUGEPAGE)." + +# NOTE: maybe later depending on upstream energy, support DPDK +# For DPDK, removed HUGETLBFS PROC_PAGE_MONITOR UIO_PCI_GENERIC in favor of VFIO +# CONFIG_CHECK="~NUMA_BALANCING ~SYN_COOKIES ~TRANSPARENT_HUGEPAGE ~VFIO" +# ERROR_VFIO="${PN} running with DPDK recommends support for Non-Privileged userspace driver framework (VFIO)." + +DOCS=( LICENSE.AGPL NOTICE.txt ORIGIN README.md ) +PATCHES=( ) + +pkg_setup() { + linux-info_pkg_setup + enewgroup scylla + enewuser scylla -1 -1 /var/lib/${PN} scylla +} + +src_prepare() { + default + + # set version + local git_commit=$(git log --pretty=format:'%h' -n 1) + echo "${PV}-${git_commit}" > version + + # fix jsoncpp detection + sed -e 's@json/json.h@jsoncpp/json/json.h@g' -i json.hh || die + + # QA: no -Werror (tho it does not propagate) + sed -e 's/\-Werror//g' -i configure.py || die + + # QA NOTE: respect -O3 as it is upstream recommended + # and because we would kill the RAM of the machine with lower optimization + # since some files can take up to 8GB of RAM to compile! + # sed -e 's/\-O3//g' -i configure.py || die + + # I don't agree with the old 4GB of RAM per job, it's more about 8GB now + sed -e 's/4000000000/8000000000/g' -i scripts/jobs || die + + # TODO: contribute me + # fix pyyaml vulnerability #659348 + # seastar/scripts/perftune.py + # dist/docker/redhat/scyllasetup.py + # dist/common/scripts/scylla_io_setup + # dist/common/scripts/scylla_fstrim + # dist/common/scripts/scylla_blocktune.py + # dist/common/scripts/scylla_util.py + # dist/common/scripts/scylla_config_get.py + # find "${S}/dist" -type f -exec sed -e 's/yaml.load(/yaml.full_load(/g' -i {} \+ || die + # sed -e 's/yaml.load(/yaml.safe_load(/g' -i seastar/scripts/perftune.py || die + + # fix /opt/scylladb/scripts + sed -e 's@/opt/scylladb/scripts@/usr/lib/scylla@g' -i dist/common/scripts/* || die +} + +src_configure() { + python_setup + + # needed for blocked reactors logging as it disables -fomit-frame-pointers + append-cflags -g + + ${EPYTHON} configure.py --enable-gcc6-concepts --mode=release --with=scylla --disable-xen --c-compiler "$(tc-getCC)" --compiler "$(tc-getCXX)" --ldflags "${LDFLAGS}" --cflags "${CFLAGS}" --python ${EPYTHON} --with-antlr3 /usr/bin/antlr3.5 || die +} + +src_compile() { + # we use the provided 'scripts/jobs' to figure out how many parallel + # compilation jobs we can sustain + einfo "Compiling using $(scripts/jobs) jobs" + ninja -v build/release/scylla build/release/iotune -j$(scripts/jobs) || die +} + +src_install() { + # NOTE: + # I base myself on upstream's install.sh file + + default + + local MUSTACHE_DIST="\"debian\": true" + pystache dist/common/systemd/scylla-server.service.mustache "{ $MUSTACHE_DIST }" > build/scylla-server.service + pystache dist/common/systemd/scylla-housekeeping-daily.service.mustache "{ $MUSTACHE_DIST }" > build/scylla-housekeeping-daily.service + pystache dist/common/systemd/scylla-housekeeping-restart.service.mustache "{ $MUSTACHE_DIST }" > build/scylla-housekeeping-restart.service + + insinto /etc/default + doins dist/common/sysconfig/scylla-server + + insinto /etc/security/limits.d + doins dist/common/limits.d/scylla.conf + + insinto /etc/scylla.d + doins dist/common/scylla.d/*.conf + + insinto /etc/sysctl.d + doins dist/common/sysctl.d/*.conf + + insinto /etc/scylla + for config_file in scylla.yaml cassandra-rackdc.properties; do + doins conf/${config_file} + done + + systemd_dounit build/*.service + systemd_dounit dist/common/systemd/*.service + systemd_dounit dist/common/systemd/*.timer + + exeinto /usr/lib/scylla + doexe dist/common/scripts/* + doexe seastar/scripts/* + doexe scylla-gdb.py + + dobin build/release/iotune + dobin build/release/scylla + + insinto /usr/lib/scylla + doins dist/common/scripts/scylla_blocktune.py + + exeinto /usr/lib/scylla + doexe dist/common/scripts/scylla-blocktune + doexe dist/common/scripts/scylla-housekeeping + + insinto /etc/scylla.d + doins conf/housekeeping.cfg + + newinitd "${FILESDIR}/scylla-server.initd" ${PN}-server + newconfd "${FILESDIR}/scylla-server.confd" ${PN}-server + + dodoc -r licenses + + for x in /var/lib/${PN} /var/lib/${PN}/{data,commitlog,hints,coredump} /var/lib/scylla-housekeeping /var/log/scylla; do + keepdir "${x}" + fowners scylla:scylla "${x}" + done + + insinto /usr/lib/scylla/swagger-ui + doins -r swagger-ui/dist + + insinto /usr/lib/scylla/api + doins -r api/api-doc + + insinto /usr/lib/scylla/scyllatop + doins -r tools/scyllatop/* + fperms +x /usr/lib/scylla/scyllatop/scyllatop.py + dosym /usr/lib/scylla/scyllatop/scyllatop.py /usr/sbin/scyllatop + + for util in $(ls dist/common/sbin/); do + dosym /usr/lib/scylla/${util} /usr/sbin/${util} + done + + insinto /etc/sudoers.d + newins "${FILESDIR}"/scylla.sudoers scylla + + insinto /etc/rsyslog.d + doins "${FILESDIR}/10-scylla.conf" +} + +pkg_postinst() { + elog "You should run 'emerge --config dev-db/scylla' to finalize your ScyllaDB installation." +} + +pkg_config() { + elog "Running 'scylla_setup'..." + scylla_setup +} -- cgit v1.2.3