summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUltrabug <ultrabug@gentoo.org>2017-08-08 10:26:45 +0200
committerUltrabug <ultrabug@gentoo.org>2017-08-08 10:26:45 +0200
commit63d619338d64442b77fd55e9537941b276d1dc5a (patch)
tree805fbbeaba0c351c2803357a59b3bdd649252cce
parentdev-db/scylla: remove ragel version constraint (diff)
downloadultrabug-63d619338d64442b77fd55e9537941b276d1dc5a.tar.gz
ultrabug-63d619338d64442b77fd55e9537941b276d1dc5a.tar.bz2
ultrabug-63d619338d64442b77fd55e9537941b276d1dc5a.zip
dev-db/scylla: proper ebuild without git on specific versions, uses git for live builds only
-rw-r--r--dev-db/scylla/Manifest11
-rw-r--r--dev-db/scylla/scylla-1.7.4.ebuild170
-rw-r--r--dev-db/scylla/scylla-9999.ebuild167
3 files changed, 224 insertions, 124 deletions
diff --git a/dev-db/scylla/Manifest b/dev-db/scylla/Manifest
index cc24ab2..f6c9df6 100644
--- a/dev-db/scylla/Manifest
+++ b/dev-db/scylla/Manifest
@@ -1,6 +1,13 @@
AUX 10-scylla.conf 64 SHA256 47a2a3b9d581f289ad5bfaa78f92cc01e7f12ddc6e66ee08ceb27463ec0dbcc5 SHA512 c24b3ec2f0ea3b1ad0792c05a8eb044b3a157862b59759e020586ae872f9789a558d423fe1dff1a8c6d8342049cf4d919faf31a1439a6a1c69af915365b4ec82 WHIRLPOOL 0d5a3cae1ae3f29e77d58c010284c3dcadf556c2a5ec67624c010b18b43b3aac477eab5abe9dd70fdaabba02287a01d56cac65929528fe6541b6c8b268d23cf9
AUX scylla-server.confd 386 SHA256 b0da01117d51478b8cf0e0bc77829c7dab0bd8aeadef100f25ebf098d050b3d0 SHA512 5d3c55933a02d3b16837013b37110f6669c14e01599532f30935b5dc29871a5bed897c9eb01a6e89469eab7d645c9231745a06c2ef827f6700e13c8faa9cdb87 WHIRLPOOL 7c0a17760ae83b34384f17abf81e1cd8e9da54c764102320fe237f74fcf94de9396ca1fd8e6576c72c54d7c504cf6daa54847db548cd7900069bdd972efe5676
AUX scylla-server.initd 964 SHA256 b99672314a6e236939fcb19d37c89f98098e34227ea77ff79cb2ce01873408a8 SHA512 e72b817e8a42d843f6766b0cd25c33b8231efbd223f4ad31bca9a2610f670b3980c1be256343f5e3b0fe0f54ba460713f6db8de92c27cf67653140794299f760 WHIRLPOOL 89c88dddfedbc317046ad441a5a4bd2c3a8dde92ca4e81001da47909a4d05f74eb3296141c2f9fd02f57317a02e286f159c53c4909d3f0e2b0594d5cac1be14c
-EBUILD scylla-1.7.4.ebuild 5058 SHA256 9f1b28b3032da5b0330fec6172dfb040ce652e1220a816411528d9b03ea75ddd SHA512 28e0f0cd5f869975a9178d32fbe3dd89b3ebceec8f5b9632c0237ede61a25822ea525712be6c72505553cd730fc06f3521d6508bafc5fac562ee976bf45a6f59 WHIRLPOOL 3e3fce1c0b49737bcc0ee1c4ac2a2e535716b3d1a884e5b4e3e9a5095849a7401d38e5a6c858051f3fb334df5ceabe2a2a6e88da0c66edde3081c2926c799f31
-EBUILD scylla-9999.ebuild 5118 SHA256 a5742437f11528c5ddf50f7ff9bff18902c5ffc78255df649573d6ec726936e6 SHA512 6e47c3ff88a30e23c57029fdd9797ee8d4a68e94c3ed69ef25eb29464e3f530d991d28605ae9a7ff24b129e89dd572f681a13cd44b900e38dc32cb8f2621d863 WHIRLPOOL 0cbc88d29c32e47d238671f2844ef5101ede89fb6be75f73642ea9330f8a822b91fdab96ee882058b30a88f5a81ff7bd8349d8d377e650e5d148fa2b756713d5
+DIST c-ares-fd6124c74da0801f23f9d324559d8b66fb83f533.tar.gz 1643982 SHA256 fceaa0d2644e94422e56e66d6198cf391626b4faa3544701ae4684e2d1140c06 SHA512 5848f480574e41dfd44a65085c7141233f1575f650bc704f92ac5f30f1a27f423d26c76969f84d2b27411660909428449c7bc593f756ee9a1f68991318fc961b WHIRLPOOL a9e562c284806b137dfc1925d31acadab12d34db8911da85c88113b4342a327a65436b14e5bd5c908e3ef48f0781851afd84c2df763e0c2bc7711817c7e0c0b6
+DIST dpdk-af56afcd99004edfc9dd53d162ab3dadf1ac03d7.tar.gz 10873177 SHA256 cf1ab6413bbd32a7c52ba0896bc0b1c2672501822802577bad2837bbff654e51 SHA512 7b441a8fc967cf975d53b87f81b59c92b27c9d7f65498d42d2fc09b4a429d5445115da7b14fa3c52a8fc3b97898cf2b7bdf78b3df5e22401fddec07ccf90d362 WHIRLPOOL a4b4f175c8ce448a996886fe62b56a5c3e1821df3d64a9f1b37ea8bcac2675a8bb3fc4f6af81901a78cb32ce403eade1f9daa09ca3c74fad6ab5857f45e79bb2
+DIST fmt-0a2032577d18afa12e426ec9637e81d5dd50a9ac.tar.gz 608445 SHA256 c18b9f2494cc822be3c14ded3e200df4c7814a09fae50b23dd26284de29a553c SHA512 02bcec0484bc688f7deb4246a50cffbcb64a78bbd5dd360fca4300a0282f28433386cce67365144d9279f28911614ce6684036bf44a38777c073c7b1d7a10bdf WHIRLPOOL 4dca07a8b00112f28f19f5a29636ba0b6578098ec88937ada85a2afb3ecc0d79e611003a5a1b78f98c4bdac1bcf225e8cc5c8591e7f095a6adb562e07afdf10c
+DIST scylla-1.7.4.tar.gz 2245888 SHA256 2232bd8c56de69e34adb799eb0bd168afb4248aed51a16cfec14de4458165f40 SHA512 5dde95adccaf1af17968f3311ac11ff5d72437aca54344aad1139cae0bcf3cc59baf49b30f4a1ca43a2f662aa3eb8c2065f65622032c29dc528f8a79f04c255b WHIRLPOOL 1d7851acfc721624651ba88e0d96cb13a04189cac3b7c0961e4f086c753a1f61021b6c8f872eb278d6d8dad7abfe0520ac20c863c4e8b82aaed6f43cd9d0fa46
+DIST scylla-ami-407e8f37cac3dc46bbf50e798efaa96bce072e0a.tar.gz 9479 SHA256 75c67f7ffdfb215cfdfd382630fb7b5b7b84529b5149b32718133c94207fc77d SHA512 4f8262d2282838445a8c926191f97dc5b6dc8a50757e03f6c86df9c27343520864fc96ce06da1a1970b456b9228ddf7af2e9179b6a96565c53e41906c59c1332 WHIRLPOOL 175a1ac4befdfac4622283c49712a628736d1373c98551642993b484f389c1871ab572444eaf9592a9017331fd3ab6654e9c6140f8ff3777da7c9e93dea4ca69
+DIST scylla-seastar-8d9fd92d5dc215b1fef9d3af0630d5929e8ea488.tar.gz 693687 SHA256 0a788b1b59ca9fedf3508896b3b9b5977476d8fef015a4ea42ccac5fa0b8173e SHA512 9b543d8f7bfee58c03aa47d261924cd22e0daabb1ada1369f48e2774e859348dff81da93c09a082ec14b25e7c510c12af0a5e64202198f63c4601788903e1a84 WHIRLPOOL 0d897720b9184de4d1a07119d5bdf8ffebf41a97a130ffabda26c4ded334f475d82940fdd898b786f09c2ea00032d4464e514960be01a72db17d4eb1200342e7
+DIST scylla-swagger-ui-1b212bbe713905aac22af1edb836f5cf8cc39cc2.tar.gz 1372033 SHA256 ea8589de7031945bb9a378708486d0e641ebbfab1c1cedb1a77215437db2ba8b SHA512 c726a4dac73d3e9d16624727f4f0703688b7205783c627dd7b88b688b165c9055a1884cf7e9987d8c235d3fa470578852a951e34819431aec12059988394da99 WHIRLPOOL ca3387d1703bbcc854750d6b67102e16bab185265b762d4fe2ae0a0fbc6f4545ef6ea1495be68a8933b7717f03799fc96ac91715c2472f3806660fff37b7c19c
+EBUILD scylla-1.7.4.ebuild 6948 SHA256 ee2ebc955082b2826601b3ee4c9ebde9dbb93db99d21c41933cc582df1b14edc SHA512 c0642e0470811a6566dca2386b64b210190dc687ea99bbdb402cef4a8ca190d387c215ad0eaacd1de8dabd407f84c95b844ca8f56fbca1012c7f6affb348185a WHIRLPOOL 3c42bf603c22f3fac0118ff7a7057a0911b018468a9aef49be555603010d4b2d20b71ba93f535f69361dce6860c750c3a07d6d16639b5d125c55ec38bcf49566
+EBUILD scylla-9999.ebuild 6708 SHA256 6c2105e75c08191cb7167ea6dcce47f05f1de04a25cd183831c3848821376758 SHA512 090f8e0651cea7cdf654e340a2be776302b3f2cabeb599e7e5857e44ba612a0a83dc27ef21f198d93cd254b047d86f4a236b5ba614e5eee3cbb4df3902f5da6e WHIRLPOOL 9c5e06b08c77ca0a3a2486a1fcb7ed8d196749670bb56a777f160032519b97fc57ddbe50a536dece522db74846644d2629f8e967889cdfd87a7019e4d1bd910b
MISC metadata.xml 249 SHA256 658f3f0cb7921722166c25f4a815ec0d7418ad183b9e8a0377eb08b3c3139173 SHA512 6eae78a65db44c8f7ef2d20c10c8612cd2072c0204c6294798e4bf94f1283c684c22d1ad28e0f68e78e82a0c60526d6786492c9dacc438d83405218e51c1bf9c WHIRLPOOL 6031231a9c8d06218c688115fb3e0f734964735d3af0b4e4a932afa78cbebecd6586293a16cbf69985fbaad4dce3594b1095a00d91a3a131cf8d683e88c34841
diff --git a/dev-db/scylla/scylla-1.7.4.ebuild b/dev-db/scylla/scylla-1.7.4.ebuild
index 6e2a97e..4563ff4 100644
--- a/dev-db/scylla/scylla-1.7.4.ebuild
+++ b/dev-db/scylla/scylla-1.7.4.ebuild
@@ -3,23 +3,47 @@
EAPI=6
-EGIT_REPO_URI="https://github.com/scylladb/scylla.git"
-EGIT_COMMIT="scylla-${PV}"
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/scylladb/scylla.git"
+ inherit git-r3
+else
+ AMI_COMMIT="407e8f37cac3dc46bbf50e798efaa96bce072e0a"
+ C_ARES_COMMIT="fd6124c74da0801f23f9d324559d8b66fb83f533"
+ DPDK_COMMIT="af56afcd99004edfc9dd53d162ab3dadf1ac03d7"
+ FMT_COMMIT="0a2032577d18afa12e426ec9637e81d5dd50a9ac"
+ SEASTAR_COMMIT="8d9fd92d5dc215b1fef9d3af0630d5929e8ea488"
+ SWAGGER_COMMIT="1b212bbe713905aac22af1edb836f5cf8cc39cc2"
+ SRC_URI="
+ https://github.com/scylladb/${PN}/archive/scylla-${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/scylladb/scylla-seastar/archive/${SEASTAR_COMMIT}.tar.gz -> scylla-seastar-${SEASTAR_COMMIT}.tar.gz
+ https://github.com/scylladb/scylla-swagger-ui/archive/${SWAGGER_COMMIT}.tar.gz -> scylla-swagger-ui-${SWAGGER_COMMIT}.tar.gz
+ https://github.com/scylladb/dpdk/archive/${DPDK_COMMIT}.tar.gz -> dpdk-${DPDK_COMMIT}.tar.gz
+ https://github.com/scylladb/fmt/archive/${FMT_COMMIT}.tar.gz -> fmt-${FMT_COMMIT}.tar.gz
+ https://github.com/scylladb/c-ares/archive/${C_ARES_COMMIT}.tar.gz -> c-ares-${C_ARES_COMMIT}.tar.gz
+ https://github.com/scylladb/scylla-ami/archive/${AMI_COMMIT}.tar.gz -> scylla-ami-${AMI_COMMIT}.tar.gz
+ "
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/scylla-${P}"
+fi
+
PYTHON_COMPAT=( python3_{4,5,6} )
-inherit git-r3 linux-info python-r1 toolchain-funcs systemd user
+inherit autotools linux-info python-r1 toolchain-funcs systemd user
DESCRIPTION="NoSQL data store using the seastar framework, compatible with Apache Cassandra"
HOMEPAGE="http://scylladb.com/"
LICENSE="AGPL-3"
SLOT="0"
-KEYWORDS="~amd64"
IUSE="doc systemd"
+RESTRICT="test"
+
RDEPEND="
app-admin/collectd
app-arch/lz4
+ =app-admin/scylla-tools-${PV}
+ =app-admin/scylla-jmx-${PV}
app-arch/snappy
dev-cpp/antlr-cpp:3.5
dev-cpp/yaml-cpp
@@ -45,6 +69,7 @@ RDEPEND="
sys-libs/zlib
sys-process/numactl
x11-libs/libpciaccess
+ systemd? ( sys-apps/systemd )
"
DEPEND="${RDEPEND}
>=sys-kernel/linux-headers-3.5
@@ -60,7 +85,7 @@ ERROR_SYN_COOKIES="${PN} recommends support for TCP syncookie (SYN_COOKIES)."
ERROR_TRANSPARENT_HUGEPAGE="${PN} recommends support for Transparent Hugepage (TRANSPARENT_HUGEPAGE)."
ERROR_VFIO="${PN} running with DPDK recommends support for Non-Privileged userspace driver framework (VFIO)."
-DOCS=( LICENSE.AGPL README.md )
+DOCS=( LICENSE.AGPL NOTICE.txt ORIGIN README.md README-DPDK.md )
PATCHES=()
pkg_setup() {
@@ -71,11 +96,34 @@ pkg_setup() {
src_prepare() {
default
- eapply_user
- # set version
- local git_commit=$(git log --pretty=format:'%h' -n 1)
- echo "${PV}-${git_commit}" > version
+ # replace git submodules by symlinks
+ if [[ ${PV} == "9999" ]] ; then
+ # set version
+ local git_commit=$(git log --pretty=format:'%h' -n 1)
+ echo "${PV}-${git_commit}" > version
+ else
+ rmdir seastar || die
+ mv "${WORKDIR}/scylla-seastar-${SEASTAR_COMMIT}" seastar || die
+
+ rmdir seastar/dpdk || die
+ mv "${WORKDIR}/dpdk-${DPDK_COMMIT}" seastar/dpdk || die
+
+ rmdir seastar/c-ares || die
+ mv "${WORKDIR}/c-ares-${C_ARES_COMMIT}" seastar/c-ares || die
+
+ rmdir seastar/fmt || die
+ mv "${WORKDIR}/fmt-${FMT_COMMIT}" seastar/fmt || die
+
+ rmdir swagger-ui || die
+ mv "${WORKDIR}/scylla-swagger-ui-${SWAGGER_COMMIT}" swagger-ui || die
+
+ rmdir dist/ami/files/scylla-ami || die
+ mv "${WORKDIR}/scylla-ami-${AMI_COMMIT}" dist/ami/files/scylla-ami || die
+
+ # set version
+ echo "${PV}-gentoo" > version
+ fi
# fix slotted antlr3 path
sed -e 's/antlr3 /antlr3.5 /g' -i configure.py || die
@@ -84,14 +132,17 @@ src_prepare() {
sed -e 's@json/json.h@jsoncpp/json/json.h@g' -i json.hh || die
# fix systemd service config path
- cp dist/common/systemd/scylla-server.service.in dist/common/systemd/scylla-server.service || die
- sed -e "s#@@SYSCONFDIR@@#/etc/sysconfig#g" -i dist/common/systemd/scylla-server.service || die
+ mkdir build || die
+ cp dist/common/systemd/scylla-server.service.in build/scylla-server.service || die
+ sed -e "s#@@SYSCONFDIR@@#/etc/sysconfig#g" -i build/scylla-server.service || die
# fix seastar -Werror crashing build
- sed -e 's/ -Werror//g' -i seastar/configure.py || die
+ # sed -e 's/ -Werror//g' -i seastar/configure.py || die
- # fix ragel-7.0 bug
- # https://github.com/scylladb/seastar/issues/296
+ # run a clean autoreconf on c-ares
+ pushd seastar/c-ares
+ eautoreconf || die
+ popd
}
src_configure() {
@@ -100,86 +151,83 @@ src_configure() {
}
src_compile() {
- # force MAKEOPTS because ninja does a bad job in guessing and the default
- # build will kill your RAM/Swap in no time
+ # force number of parallel builds because ninja does a bad job in guessing
+ # and the default build will kill your RAM/Swap in no time
ninja -v build/release/scylla build/release/iotune -j4 || die
}
src_install() {
- # executables
+ default
+
+ insinto /etc/default
+ doins dist/common/sysconfig/scylla-server
+
+ insinto /etc/security/limits.d
+ doins dist/common/limits.d/scylla.conf
+
+ insinto /etc/collectd.d
+ doins dist/common/collectd.d/scylla.conf
+
+ insinto /etc/scylla.d
+ mv conf/housekeeping.cfg dist/common/scylla.d/
+ doins dist/common/scylla.d/*.conf
+
+ insinto /etc/sysctl.d
+ doins dist/common/sysctl.d/*.conf
+
+ insinto /etc/modprobe.d
+ doins dist/common/modprobe.d/*
+
+ insinto /etc/scylla
+ doins conf/*
+
+ systemd_dounit build/*.service
+ systemd_dounit dist/common/systemd/*.service
+ systemd_dounit dist/common/systemd/*.timer
+
+ newinitd "${FILESDIR}/scylla-server.initd" ${PN}-server
+ newconfd "${FILESDIR}/scylla-server.confd" ${PN}-server
+
exeinto /usr/lib/scylla
doexe dist/common/scripts/*
- doexe dist/debian/scripts/*
doexe seastar/scripts/*
doexe seastar/dpdk/usertools/dpdk-devbind.py
doexe scylla-blocktune
doexe scylla-housekeeping
- # scyllatop
- insinto /usr/lib/scylla/scyllatop
- doins -r tools/scyllatop/*
- fperms +x /usr/lib/scylla/scyllatop/scyllatop.py
+ dobin build/release/iotune
+ dobin build/release/scylla
+ dobin dist/common/bin/scyllatop
+
+ dodoc -r licenses
- # swagger-ui
insinto /usr/lib/scylla/swagger-ui
doins -r swagger-ui/dist
- # bin
- dobin build/release/iotune
- dobin build/release/scylla
- dobin dist/common/bin/scyllatop
+ 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
- # sbin symlinks
for util in $(ls dist/common/sbin/); do
dosym /usr/lib/scylla/${util} /usr/sbin/${util}
done
- insinto /etc/collectd.d
- doins dist/common/collectd.d/scylla.conf
-
for x in /var/lib/${PN}/{data,commitlog,coredump} /var/lib/scylla-housekeeping /var/log/scylla; do
keepdir "${x}"
fowners scylla:scylla "${x}"
done
- insinto /etc/scylla.d
- mv conf/housekeeping.cfg dist/common/scylla.d/
- doins dist/common/scylla.d/*.conf
-
- insinto /etc/scylla
- doins conf/*
-
- insinto /etc/security/limits.d
- doins dist/common/limits.d/scylla.conf
-
insinto /etc/sudoers.d
doins dist/debian/sudoers.d/scylla
- insinto /etc/sysctl.d
- doins dist/debian/sysctl.d/99-scylla.conf
-
- insinto /etc/default
- doins dist/common/sysconfig/scylla-server
-
- insinto /etc/modprobe.d
- doins dist/common/modprobe.d/*
-
insinto /etc/rsyslog.d
doins "${FILESDIR}/10-scylla.conf"
insinto /etc/cron.d
newins dist/debian/scylla-server.cron.d scylla_delay_fstrim
-
- newinitd "${FILESDIR}/scylla-server.initd" ${PN}-server
- newconfd "${FILESDIR}/scylla-server.confd" ${PN}-server
- systemd_dounit dist/common/systemd/*.service
- systemd_dounit dist/common/systemd/*.timer
-
- # TODO: api docs are simple JSON files!?
- if use doc; then
- insinto /usr/lib/scylla/api
- doins -r api/api-doc
- fi
}
pkg_postinst() {
diff --git a/dev-db/scylla/scylla-9999.ebuild b/dev-db/scylla/scylla-9999.ebuild
index 882588f..216a824 100644
--- a/dev-db/scylla/scylla-9999.ebuild
+++ b/dev-db/scylla/scylla-9999.ebuild
@@ -3,18 +3,38 @@
EAPI=6
-#EGIT_COMMIT="scylla-${PV}"
-EGIT_REPO_URI="https://github.com/scylladb/scylla.git"
+if [[ ${PV} == "9999" ]] ; then
+ EGIT_REPO_URI="https://github.com/scylladb/scylla.git"
+ inherit git-r3
+else
+ AMI_COMMIT=""
+ C_ARES_COMMIT=""
+ DPDK_COMMIT=""
+ FMT_COMMIT=""
+ SEASTAR_COMMIT=""
+ SWAGGER_COMMIT=""
+ SRC_URI="
+ https://github.com/scylladb/${PN}/archive/scylla-${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/scylladb/scylla-seastar/archive/${SEASTAR_COMMIT}.tar.gz -> scylla-seastar-${SEASTAR_COMMIT}.tar.gz
+ https://github.com/scylladb/scylla-swagger-ui/archive/${SWAGGER_COMMIT}.tar.gz -> scylla-swagger-ui-${SWAGGER_COMMIT}.tar.gz
+ https://github.com/scylladb/dpdk/archive/${DPDK_COMMIT}.tar.gz -> dpdk-${DPDK_COMMIT}.tar.gz
+ https://github.com/scylladb/fmt/archive/${FMT_COMMIT}.tar.gz -> fmt-${FMT_COMMIT}.tar.gz
+ https://github.com/scylladb/c-ares/archive/${C_ARES_COMMIT}.tar.gz -> c-ares-${C_ARES_COMMIT}.tar.gz
+ https://github.com/scylladb/scylla-ami/archive/${AMI_COMMIT}.tar.gz -> scylla-ami-${AMI_COMMIT}.tar.gz
+ "
+ KEYWORDS="~amd64"
+ S="${WORKDIR}/scylla-${P}"
+fi
+
PYTHON_COMPAT=( python3_{4,5,6} )
-inherit git-r3 linux-info python-r1 toolchain-funcs systemd user
+inherit autotools linux-info python-r1 toolchain-funcs systemd user
DESCRIPTION="NoSQL data store using the seastar framework, compatible with Apache Cassandra"
HOMEPAGE="http://scylladb.com/"
LICENSE="AGPL-3"
SLOT="0"
-KEYWORDS="~amd64"
IUSE="doc systemd"
RESTRICT="test"
@@ -38,7 +58,7 @@ RDEPEND="
dev-python/pyparsing[${PYTHON_USEDEP}]
dev-python/pyudev[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
- dev-util/ragel
+ <dev-util/ragel-7.0
dev-python/urwid[${PYTHON_USEDEP}]
dev-util/systemtap
net-libs/gnutls
@@ -49,6 +69,7 @@ RDEPEND="
sys-libs/zlib
sys-process/numactl
x11-libs/libpciaccess
+ systemd? ( sys-apps/systemd )
"
DEPEND="${RDEPEND}
>=sys-kernel/linux-headers-3.5
@@ -64,7 +85,7 @@ ERROR_SYN_COOKIES="${PN} recommends support for TCP syncookie (SYN_COOKIES)."
ERROR_TRANSPARENT_HUGEPAGE="${PN} recommends support for Transparent Hugepage (TRANSPARENT_HUGEPAGE)."
ERROR_VFIO="${PN} running with DPDK recommends support for Non-Privileged userspace driver framework (VFIO)."
-DOCS=( LICENSE.AGPL README.md )
+DOCS=( LICENSE.AGPL NOTICE.txt ORIGIN README.md README-DPDK.md )
PATCHES=()
pkg_setup() {
@@ -76,9 +97,33 @@ pkg_setup() {
src_prepare() {
default
- # set version
- local git_commit=$(git log --pretty=format:'%h' -n 1)
- echo "${PV}-${git_commit}" > version
+ # replace git submodules by symlinks
+ if [[ ${PV} == "9999" ]] ; then
+ # set version
+ local git_commit=$(git log --pretty=format:'%h' -n 1)
+ echo "${PV}-${git_commit}" > version
+ else
+ rmdir seastar || die
+ mv "${WORKDIR}/scylla-seastar-${SEASTAR_COMMIT}" seastar || die
+
+ rmdir seastar/dpdk || die
+ mv "${WORKDIR}/dpdk-${DPDK_COMMIT}" seastar/dpdk || die
+
+ rmdir seastar/c-ares || die
+ mv "${WORKDIR}/c-ares-${C_ARES_COMMIT}" seastar/c-ares || die
+
+ rmdir seastar/fmt || die
+ mv "${WORKDIR}/fmt-${FMT_COMMIT}" seastar/fmt || die
+
+ rmdir swagger-ui || die
+ mv "${WORKDIR}/scylla-swagger-ui-${SWAGGER_COMMIT}" swagger-ui || die
+
+ rmdir dist/ami/files/scylla-ami || die
+ mv "${WORKDIR}/scylla-ami-${AMI_COMMIT}" dist/ami/files/scylla-ami || die
+
+ # set version
+ echo "${PV}-gentoo" > version
+ fi
# fix slotted antlr3 path
sed -e 's/antlr3 /antlr3.5 /g' -i configure.py || die
@@ -87,14 +132,17 @@ src_prepare() {
sed -e 's@json/json.h@jsoncpp/json/json.h@g' -i json.hh || die
# fix systemd service config path
- cp dist/common/systemd/scylla-server.service.in dist/common/systemd/scylla-server.service || die
- sed -e "s#@@SYSCONFDIR@@#/etc/sysconfig#g" -i dist/common/systemd/scylla-server.service || die
+ mkdir build || die
+ cp dist/common/systemd/scylla-server.service.in build/scylla-server.service || die
+ sed -e "s#@@SYSCONFDIR@@#/etc/sysconfig#g" -i build/scylla-server.service || die
# fix seastar -Werror crashing build
- sed -e 's/ -Werror//g' -i seastar/configure.py || die
+ # sed -e 's/ -Werror//g' -i seastar/configure.py || die
- # fix ragel-7.0 bug
- # https://github.com/scylladb/seastar/issues/296
+ # run a clean autoreconf on c-ares
+ pushd seastar/c-ares
+ eautoreconf || die
+ popd
}
src_configure() {
@@ -103,86 +151,83 @@ src_configure() {
}
src_compile() {
- # force MAKEOPTS because ninja does a bad job in guessing and the default
- # build will kill your RAM/Swap in no time
+ # force number of parallel builds because ninja does a bad job in guessing
+ # and the default build will kill your RAM/Swap in no time
ninja -v build/release/scylla build/release/iotune -j4 || die
}
src_install() {
- # executables
+ default
+
+ insinto /etc/default
+ doins dist/common/sysconfig/scylla-server
+
+ insinto /etc/security/limits.d
+ doins dist/common/limits.d/scylla.conf
+
+ insinto /etc/collectd.d
+ doins dist/common/collectd.d/scylla.conf
+
+ insinto /etc/scylla.d
+ mv conf/housekeeping.cfg dist/common/scylla.d/
+ doins dist/common/scylla.d/*.conf
+
+ insinto /etc/sysctl.d
+ doins dist/common/sysctl.d/*.conf
+
+ insinto /etc/modprobe.d
+ doins dist/common/modprobe.d/*
+
+ insinto /etc/scylla
+ doins conf/*
+
+ systemd_dounit build/*.service
+ systemd_dounit dist/common/systemd/*.service
+ systemd_dounit dist/common/systemd/*.timer
+
+ newinitd "${FILESDIR}/scylla-server.initd" ${PN}-server
+ newconfd "${FILESDIR}/scylla-server.confd" ${PN}-server
+
exeinto /usr/lib/scylla
doexe dist/common/scripts/*
- doexe dist/debian/scripts/*
doexe seastar/scripts/*
doexe seastar/dpdk/usertools/dpdk-devbind.py
doexe scylla-blocktune
doexe scylla-housekeeping
- # scyllatop
- insinto /usr/lib/scylla/scyllatop
- doins -r tools/scyllatop/*
- fperms +x /usr/lib/scylla/scyllatop/scyllatop.py
+ dobin build/release/iotune
+ dobin build/release/scylla
+ dobin dist/common/bin/scyllatop
+
+ dodoc -r licenses
- # swagger-ui
insinto /usr/lib/scylla/swagger-ui
doins -r swagger-ui/dist
- # bin
- dobin build/release/iotune
- dobin build/release/scylla
- dobin dist/common/bin/scyllatop
+ 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
- # sbin symlinks
for util in $(ls dist/common/sbin/); do
dosym /usr/lib/scylla/${util} /usr/sbin/${util}
done
- insinto /etc/collectd.d
- doins dist/common/collectd.d/scylla.conf
-
for x in /var/lib/${PN}/{data,commitlog,coredump} /var/lib/scylla-housekeeping /var/log/scylla; do
keepdir "${x}"
fowners scylla:scylla "${x}"
done
- insinto /etc/scylla.d
- mv conf/housekeeping.cfg dist/common/scylla.d/
- doins dist/common/scylla.d/*.conf
-
- insinto /etc/scylla
- doins conf/*
-
- insinto /etc/security/limits.d
- doins dist/common/limits.d/scylla.conf
-
insinto /etc/sudoers.d
doins dist/debian/sudoers.d/scylla
- insinto /etc/sysctl.d
- doins dist/debian/sysctl.d/99-scylla.conf
-
- insinto /etc/default
- doins dist/common/sysconfig/scylla-server
-
- insinto /etc/modprobe.d
- doins dist/common/modprobe.d/*
-
insinto /etc/rsyslog.d
doins "${FILESDIR}/10-scylla.conf"
insinto /etc/cron.d
newins dist/debian/scylla-server.cron.d scylla_delay_fstrim
-
- newinitd "${FILESDIR}/scylla-server.initd" ${PN}-server
- newconfd "${FILESDIR}/scylla-server.confd" ${PN}-server
- systemd_dounit dist/common/systemd/*.service
- systemd_dounit dist/common/systemd/*.timer
-
- # TODO: api docs are simple JSON files!?
- if use doc; then
- insinto /usr/lib/scylla/api
- doins -r api/api-doc
- fi
}
pkg_postinst() {