summaryrefslogtreecommitdiff
path: root/dev-util/buildbot
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-util/buildbot
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-util/buildbot')
-rw-r--r--dev-util/buildbot/Manifest24
-rw-r--r--dev-util/buildbot/buildbot-0.8.12-r3.ebuild147
-rw-r--r--dev-util/buildbot/buildbot-0.9.10.ebuild211
-rw-r--r--dev-util/buildbot/buildbot-0.9.11.ebuild202
-rw-r--r--dev-util/buildbot/buildbot-0.9.4.ebuild216
-rw-r--r--dev-util/buildbot/buildbot-0.9.7.ebuild193
-rw-r--r--dev-util/buildbot/buildbot-0.9.8.ebuild194
-rw-r--r--dev-util/buildbot/buildbot-9999.ebuild202
-rw-r--r--dev-util/buildbot/files/buildbot-0.9.4.docs.patch130
-rw-r--r--dev-util/buildbot/files/buildbot.service16
-rw-r--r--dev-util/buildbot/files/buildmaster.confd10
-rw-r--r--dev-util/buildbot/files/buildmaster.initd61
-rw-r--r--dev-util/buildbot/files/buildmaster.target5
-rw-r--r--dev-util/buildbot/files/buildmaster_at.service16
-rw-r--r--dev-util/buildbot/files/buildmaster_at.service.conf5
-rw-r--r--dev-util/buildbot/metadata.xml39
16 files changed, 1671 insertions, 0 deletions
diff --git a/dev-util/buildbot/Manifest b/dev-util/buildbot/Manifest
new file mode 100644
index 000000000000..8a84d528d93d
--- /dev/null
+++ b/dev-util/buildbot/Manifest
@@ -0,0 +1,24 @@
+AUX buildbot-0.9.4.docs.patch 4619 SHA256 25e802ba82315e6f62b536e0002d7af8b6b6c814803d9f142cd70f4aa4e5b815 SHA512 c521b44c9db5d565302bf611842d1b607f240ba89988aacc4d988aa61626be125a5b20a7cc2135fb6e331a50f5de3fc6ba7fe0e5f5a42049700eea46f9cc1c8d WHIRLPOOL 3bead12e5d510d225ad3b8f4070c5d6d206287391c6c5262ae2573123bd1e2e33a214c56e0f88d223cd3df77b04221fb60016e50666ef277c0eab0de76084a40
+AUX buildbot.service 435 SHA256 a94170eaac47b72e3fe86eb3fa3e231c2977940fa77b84ab0736a20a7e68639d SHA512 0baf2696efe3843c93f90c4678696ffe1c7d5df2292b5b3ee48a4e30bf213956052f4772c8e7938f541c08c76b39157b246debf376f9fa26a8773be785cddeab WHIRLPOOL bd2802cc78c5a6a6672e8e84c1330c641911c31bc802be222b9e4c87e3be5ca9115f18e90f3a48012619f7e3bbaf9fddaa0af333526aa034b4d0eae2cd9256f8
+AUX buildmaster.confd 218 SHA256 bb7f93e3867b32a25e2445a66d40573fa5073a80e73e35ae2a904db715f870c6 SHA512 d9339c30d3a92e92b41b0e3139ec89ecbd1460b0e4ee6c6fe2560c4307b2eb3f29b838c2f2312b9c7049bd95eaf652d09039227c691af805bc25a36999ec1840 WHIRLPOOL 0e258348e5882db063e95b3c508f8d92e2a7598e5f76705da2ebba45b4893ae893b0ed67271a112255d3e5b8f5f1ace17b487fc885db30a774dde44be1944c4d
+AUX buildmaster.initd 1573 SHA256 03ee2ccd319a34192f9d42967211b88e32f573af7472e7e8c5149e3ea43a8bab SHA512 22d58baa3500de63ca3d278c2ed44c78694c8f022a9916b0f35344485dbbbe46b054ba9b0cc9a8c56948ea8726e419cb7e1177036124fc3fc5acc957d56f168c WHIRLPOOL 3f0edeaaa5a35c3eabb332b2e3a043a5b244bde966d04ba625906ffa057c762590e9c903f508fb951decaffa1d4ef37044b71fa7942fb280bb4406cdb34f5079
+AUX buildmaster.target 138 SHA256 f232ac65ec161308092cb4f86c43cba8bb9293cd89fe3a3a6c4ad26936067680 SHA512 c5f56688349af0adcfa644abc699445e2c61bb268d5407f8fc540ac80ea9be6aee615df16bbf0f41db272dd4159762d7be744b3116efc0f9bc7cb1d458edb050 WHIRLPOOL c2596791d8d61966bd5ce60763caf7baca27b579ff657e45c6ab428a1f7100dc8940d401f8fa3260dd532c203f6452d4d1c85f6c05950d4ed18404bdfe02d398
+AUX buildmaster_at.service 375 SHA256 ca2275a74de23c9294187edfff918344f66ed40eba4d9408a5065840a1934727 SHA512 c37f1c461a4c7ee741a839772a5feabf10103542e159c6ae4eddfa37a146732dfc23f91d867d69c3718a21714516a3847485ae4e6580c93a5aa94daec40dd093 WHIRLPOOL dce1174f424ae09a05c3a0e3e04ce547e8b584bf631fe7eae8def80e79b82a76413109e7b6b17cd474f8a623bff3be94528c573617ce71ce24e4105e9d979193
+AUX buildmaster_at.service.conf 150 SHA256 4056f0bf8713ca26e64cd8d3eb6c570156a2e03b8bbf5e6d2c24246e855f8089 SHA512 d533b95c5b180cda5aa73966c590b7828598d5b6bcd77147a88238941adaa4c3c78e5f17d771598f622212856b16ce4582ab915a4cb57f0dd633eb2ad6b4c10d WHIRLPOOL dac5dc509c3ccc8d53aa5aec8a39d30618f07729904235306f81b35e85ad8a5bdfb4ed75959260c51329e839082cf8f943bff6c735ad3881dd0407983b3236a1
+DIST buildbot-0.8.12.tar.gz 4834352 SHA256 c6b66976dff712268566574d57131ec15e5682f6d4390cd5c8559bab0980c4d6 SHA512 18c5144132fb033f3581d3c494d5e8ff35d3e8b1548764452ce9ae543d710e58a2c6e3e8e46a0ef237804f9a6a45485890ae4616ab655fb00d4ccf328d6f6645 WHIRLPOOL 5754b7c0278fb5e7da8a7dd66253f6f4d12f54c125f6a78aa9018a2b6b22fd88a27e79e6821ab05e4cd9e87bf0dd08c3c73c7914d4c499ac13c48ca232ed21c8
+DIST buildbot-0.9.10.tar.gz 3112750 SHA256 8c5ed75f3f16f4ff0f2c9e3f9b091acb5e6e1c0ef68ffa8f687a55413a833143 SHA512 95b489d5f7d0bc00ae5f71cd056b36fe689c4dc9408a7a0e4b1b45e036c9074832c8e3755981520a8c85a791b50f7f40765962c12a71887198dc0bbd0140d0e0 WHIRLPOOL 8d62d0aecdea4122709693ce48c72d5dbac2e946a6923a7ea41842dc759369a678e21a8abb0b4ff825e1ba559a9d490bcc4ff56fc5568a4f7f2d94b4f6c5f027
+DIST buildbot-0.9.11.tar.gz 3096455 SHA256 9be352c0aab5d1520fedac8d6b19aadda4f48763ac7f72bb00e5f8cc51107ee8 SHA512 c68a657213b0f878d8c2b4e6ebe18cfc9b3e19a4eecaf085fd3e5631bbb78dc9bd14e6b3d4b576e78eb1631329c86331371200a350d33696204fb76e7beae81c WHIRLPOOL 3b1804d7920e110ca1ae1d04e7a7c38fef0db4a2c7b448a21175a0f2693ba8725d228d27720ffdad976071d143e4158b41dc527d120e2c4928df3fdbd765285f
+DIST buildbot-0.9.4.docs.tar.xz 69224 SHA256 69fc33762a885568b02c42954a64d62d28bcb750b3aed011c3da8a9f84c13371 SHA512 906e551e0db32c8a0b4010b3b8b00c4776e3d1b7d7381e4dc0ccf01d361184e4605c3ab0ecaf4e42207bd73c3e72f8a570a4d4c29db72f4d68241abf48741d7e WHIRLPOOL 95f263e0b9ab22a649118f362d866b08cbdf62511f2a1f9bd6a7265103f174e35d0c8d86ad6a3b7dd5fd0b4277d60dbd25801c5e6f7e414e7fa634c241dae987
+DIST buildbot-0.9.4.tar.gz 3020851 SHA256 068161cd9ada10b87f40117c768a37ce796ebf5e7bf08f224f4c7ded88cd7472 SHA512 938a94192560b989a277d9650c50781d7e7c116bc5e2010ccb2e655df757de0ee254369531b2f432c835c0285c724e52d999a393d0ce1b104d4b9dcc5c6687da WHIRLPOOL 0ffe61b82ee93b78cdb3cb74ef96d5a3547e0fcab9ec8093b59a7212c5e2a1ad16eff046306bffcc0ea63b2e0bf2df1e54b5a0874dc78e27744db2088ccac804
+DIST buildbot-0.9.7.tar.gz 3092434 SHA256 8fcbf0e6536e5d60407f59d14f96d5f8386cd91846a4fa47b4336d71551a9e33 SHA512 3fd2b488cabac37e297bb1a475cdb115f261324a22ec4d6fbcf8dc5bfb6ee135fab3763998433be8795581d476f69e2adb6f42d248bf2131a42eecfc1667202a WHIRLPOOL 427d4c1c452f767550a3d2731b2e34480c399dcf50e57d4fb69f0a350f381e3e7ecc47d712fc8fbb99afcf8b230c7bd3afe8437ec3b24bf9ddbf7d35b4d1caad
+DIST buildbot-0.9.8.tar.gz 3101418 SHA256 39a2f7df458ec9be1009cf90a02d732d142a2ec3fbc0404e4f3fce4b8a4c3af7 SHA512 88800bad542d26aee6df348021faf5f76f36c250e9fb85c9abe3af7f13ec87fcae5727c8633772205f5c024709fd39b05d1d9c3aa1374b4ca72a528b5ec3ba83 WHIRLPOOL fafb46f6d6bc10f6073567cd6a6894cd67d61c4ff537b342060319874eb22ea45d816f6b764f0b9f841f9b7a5e127481a85dbb4abbacd228a8168a5e3e948b2b
+EBUILD buildbot-0.8.12-r3.ebuild 5490 SHA256 ab180e34963560c3a14df8a5f00f451bb469c25c37bf29a211e5c02eaf8bde24 SHA512 16e5f6ba87559ed9788f4cb7451020cfd0e3b2efe22f5126aca23d0b6e20b9ed6050e4dada0e9e595b28f8ddf4e5446c1217c2e77adfd44dc307fc0b8b5b654a WHIRLPOOL d01753e023dadfc3155308bbf9b41a1d1eea03a57d2ba6a5640989e3491977007dd7fe37ca072c1676dbe87b4a920ae294573770baaf53913f39ed5552108f73
+EBUILD buildbot-0.9.10.ebuild 7279 SHA256 bac78fde783e5642abb90ad826409209c4159cced413c7caa1ef374956d23e7c SHA512 6de67b6cf11bff7e21cedd159d6d253fb083cdf2094611410d94a0514d409849d1d8913e5e3ed18f2ca227d3acf2fd1f19e6fccaf31566c8d971ccd278a7e0e7 WHIRLPOOL 128616ff39de2340d10ec6f7f63d42780645c7a014c691172d1b942f030ea353ef03536e3690386ac1fbdc67755cd1962f6ac50d5f83114285c16071062662de
+EBUILD buildbot-0.9.11.ebuild 7053 SHA256 425c5dc4f36d6df2fc5cab17bc5dbad951658b012e8d983d95a286c926877ed3 SHA512 34ff2a130e1a2f44b570667db0ccc7acb1216a873a75491712d1cb3a8ca82a5dd1c081f42837f7ee23b69265298a3889467d646ed0d3fb7b944a38bf40bbb6fc WHIRLPOOL a906335ab4f067047516573c5c72243612a57a55f340f9a0ed1639ea430a3ebd8e89099c2ca14abc33fd95a1d25337666fccb45e8bbefdc36aa6d915ef8e1502
+EBUILD buildbot-0.9.4.ebuild 7076 SHA256 088566d6e59150e1bfbcbfd12a19168b43f9dc420da601ee7e27005c2d6ad299 SHA512 1f5a6fc87fbf5403090c2d573476a910b4b557babac8857512f27458cdf97844a47931884dcbf59eba646b45d8d0408ae15a41ef6eaa42ae0e86c9a0e9af6831 WHIRLPOOL 086a8b5108286ac8de15da37ab8959e76cf922bf2183225c41b5e9c327ec3ab0073339ab6272fc896f48f60488f3659cac5a2772f371a6dd6adb03270c9968d6
+EBUILD buildbot-0.9.7.ebuild 6682 SHA256 52d651cf20b067e0036bf70ba221ba4408d3c33b65c93a9cd2bec9f6d1c8608b SHA512 708ccb2387de7ee61f9c92f8c8a15d8cb39f67a2a161ef57fbecfb9debf5107d35515b7d4c84b6bfea7fbf3ec84b7096797416236ed9d9014958913ed77f631a WHIRLPOOL 45a86a824882a2c87b4a66c8c9b1975889247c1c7c969ea686066646b55917b04a4702755641e40aaf33917b892fde94a847aa5b5f83a5614e7c5d1b8801ef14
+EBUILD buildbot-0.9.8.ebuild 6730 SHA256 44bcdd947b81c7019ba92e7f715949e2b5b339022c3d399dcb772d18df136c83 SHA512 9e3a590fdb60ce3f5d3f24e62bbc3d245c9af9a7d858d69a984c461abb7eb07335ef6a00058987b1f944bef9c6604d129071227df7093e027c625a819856884c WHIRLPOOL 4033eed24f1e5f178810f3aac5781b78ed613ff4a1e9c1c34c9d9fadefa086c5b422f1c1724b2eb9fa2a80560ff3b3c8d73086b0d7f4eb1b76cce413bc064529
+EBUILD buildbot-9999.ebuild 7053 SHA256 425c5dc4f36d6df2fc5cab17bc5dbad951658b012e8d983d95a286c926877ed3 SHA512 34ff2a130e1a2f44b570667db0ccc7acb1216a873a75491712d1cb3a8ca82a5dd1c081f42837f7ee23b69265298a3889467d646ed0d3fb7b944a38bf40bbb6fc WHIRLPOOL a906335ab4f067047516573c5c72243612a57a55f340f9a0ed1639ea430a3ebd8e89099c2ca14abc33fd95a1d25337666fccb45e8bbefdc36aa6d915ef8e1502
+MISC ChangeLog 8474 SHA256 f17f98b73101e0c7ef4a57d9de67201ec8cb2e13dad90e31c9ebb4b22d3e8a47 SHA512 a86c113f5d2921f2077e3f69f599255e91ecdf31d4f04965881d7f3167c53084b4178a0dc3c87be499dce7b715b97ec7336aa9f24dbb97f0108a33d337bc6234 WHIRLPOOL 3003bee799a0509b76bd33d855f9addf2433ab05ae2fcc160a50b9a4f4c1974c9f76293bdcea45548b017df2f74c90064ddb8bf347685da5540b2f657ccd376f
+MISC ChangeLog-2015 23687 SHA256 01b29df49e2d44ead407b455fc3fdb5746b6a07fed70c6b91935490c4816200b SHA512 6b6a9680134503958352c40c3ca9ca3acde081b77cedab97e6eccbcba6716cf68101d592bcfcd4bbed226cd038d79d1b20d34e1532a63e30687d04b0e4bad00d WHIRLPOOL 45de95ee421fae3b3052d57e90bfdc49de53c1cafc185d12b0280873cd113bc0432ec253e0ed1e40fea0824c1f261f3907c3c78b9bf53ff147e935c970150952
+MISC metadata.xml 1543 SHA256 204ee06fb9b996162310b5404f2d7edbd3cf12d773f67ae1ce446cd5c207bfc7 SHA512 a5bd8e8b9fe253e2a4bb43c536dc9b0fdccca675d5381ba7f488d1127c73805838ce881b691f8c638f774706c4b025cd5b70145b10d6c3578b68399e1fcb628d WHIRLPOOL 2c9191bb2c0d125c008042702adc70b39ae82105a84c8afc373b37a3e3790fab791d8aac29bf005f6af871085842e6b3a23e4a7a0bd691f24610b2ac3052b644
diff --git a/dev-util/buildbot/buildbot-0.8.12-r3.ebuild b/dev-util/buildbot/buildbot-0.8.12-r3.ebuild
new file mode 100644
index 000000000000..67cc0e8a8dc2
--- /dev/null
+++ b/dev-util/buildbot/buildbot-0.8.12-r3.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_COMPAT=( python2_7 )
+PYTHON_REQ_USE="sqlite"
+
+inherit distutils-r1 readme.gentoo systemd user
+
+MY_PV="${PV/_p/p}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="BuildBot build automation system"
+HOMEPAGE="http://buildbot.net/ https://github.com/buildbot/buildbot https://pypi.python.org/pypi/buildbot"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris"
+IUSE="doc examples irc mail manhole test"
+
+RDEPEND=">=dev-python/jinja-2.1[${PYTHON_USEDEP}]
+ dev-python/twisted-core[${PYTHON_USEDEP}]
+ dev-python/twisted-web[${PYTHON_USEDEP}]
+ <=dev-python/sqlalchemy-0.7.10-r999[${PYTHON_USEDEP}]
+ ~dev-python/sqlalchemy-migrate-0.7.2[${PYTHON_USEDEP}]
+ irc? ( dev-python/twisted-words[${PYTHON_USEDEP}] )
+ mail? ( dev-python/twisted-mail[${PYTHON_USEDEP}] )
+ manhole? ( dev-python/twisted-conch[${PYTHON_USEDEP}] )"
+DEPEND="${DEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/twisted-mail[${PYTHON_USEDEP}]
+ dev-python/twisted-web[${PYTHON_USEDEP}]
+ dev-python/twisted-words[${PYTHON_USEDEP}]
+ )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ enewuser buildbot
+
+ DOC_CONTENTS="The \"buildbot\" user and the \"buildmaster\" init script has been added
+ to support starting buildbot through Gentoo's init system. To use this,
+ execute \"emerge --config =${CATEGORY}/${PF}\" to create a new instance.
+ The scripts can run as a different user if desired."
+}
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc; then
+ einfo "Generation of documentation"
+ pushd docs > /dev/null
+ #'man' target is currently broken
+ emake html
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ doman docs/buildbot.1
+
+ if use doc; then
+ dohtml -r docs/_build/html/
+ # TODO: install man pages
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r contrib docs/examples
+ fi
+
+ newconfd "${FILESDIR}/buildmaster.confd" buildmaster
+ newinitd "${FILESDIR}/buildmaster.initd" buildmaster
+ systemd_dounit "${FILESDIR}/buildmaster.target"
+ systemd_newunit "${FILESDIR}/buildmaster_at.service" "buildmaster@.service"
+ systemd_install_serviced "${FILESDIR}/buildmaster_at.service.conf" "buildmaster@.service"
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ ewarn
+ ewarn "Starting with buildbot-0.8.12-r2, more than one instance of buildmaster"
+ ewarn "can be run simultaneously. Note that \"BASEDIR\" in the buildbot configuration file"
+ ewarn "is now the common base directory for all instances. If you are migrating from an older"
+ ewarn "version, make sure that you copy the current contents of \"BASEDIR\" to a subdirectory."
+ ewarn "The name of the subdirectory corresponds to the name of the buildmaster instance."
+ ewarn "In order to start the service running OpenRC-based systems need to link to the init file:"
+ ewarn " ln --symbolic --relative /etc/init.d/buildmaster /etc/init.d/buildmaster.myinstance"
+ ewarn " rc-update add buildmaster.myinstance default"
+ ewarn " /etc/init.d/buildmaster.myinstance start"
+ ewarn "Systems using systemd can do the following:"
+ ewarn " systemctl enable buildmaster@myinstance.service"
+ ewarn " systemctl enable buildmaster.target"
+ ewarn " systemctl start buildmaster.target"
+ elog
+ elog "Upstream recommends the following when upgrading:"
+ elog "Each time you install a new version of Buildbot, you should run the"
+ elog "\"buildbot upgrade-master\" command on each of your pre-existing build masters."
+ elog "This will add files and fix (or at least detect) incompatibilities between"
+ elog "your old config and the new code."
+ fi
+ elog
+ elog "In order to create a new instance of buildmaster, execute:"
+ elog " emerge --config =${CATEGORY}/${PF}"
+}
+
+pkg_config() {
+ local buildmaster_path="/var/lib/buildmaster"
+ einfo "This will prepare a new buildmaster instance in ${buildmaster_path}."
+ einfo "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_path="${buildmaster_path}/${instance_name}"
+ if [[ -e "${instance_path}" ]]; then
+ eerror "The instance with the specified name already exists:"
+ eerror "${instance_path}"
+ die "Instance already exists"
+ fi
+
+ local buildbot="/usr/bin/buildbot"
+ if [[ ! -d "${buildmaster_path}" ]]; then
+ mkdir --parents "${buildmaster_path}" || die "Unable to create directory ${buildmaster_path}"
+ fi
+ "${buildbot}" create-master "${instance_path}" &>/dev/null || die "Creating instance failed"
+ chown --recursive buildbot "${instance_path}" || die "Setting permissions for instance failed"
+ mv "${instance_path}/master.cfg.sample" "${instance_path}/master.cfg" \
+ || die "Moving sample configuration failed"
+ ln --symbolic --relative "/etc/init.d/buildmaster" "/etc/init.d/buildmaster.${instance_name}" \
+ || die "Unable to create link to init file"
+
+ einfo "Successfully created a buildmaster instance at ${instance_path}."
+ einfo "To change the default settings edit the master.cfg file in this directory."
+}
diff --git a/dev-util/buildbot/buildbot-0.9.10.ebuild b/dev-util/buildbot/buildbot-0.9.10.ebuild
new file mode 100644
index 000000000000..0f493ccb8ffc
--- /dev/null
+++ b/dev-util/buildbot/buildbot-0.9.10.ebuild
@@ -0,0 +1,211 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_REQ_USE="sqlite"
+PYTHON_COMPAT=( python2_7 python3_5 )
+
+EGIT_REPO_URI="https://github.com/buildbot/${PN}.git"
+
+[[ ${PV} == *9999 ]] && inherit git-r3
+inherit readme.gentoo-r1 user systemd distutils-r1
+
+MY_PV="${PV/_p/.post}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="BuildBot build automation system"
+HOMEPAGE="https://buildbot.net/ https://github.com/buildbot/buildbot https://pypi.python.org/pypi/buildbot"
+[[ ${PV} == *9999 ]] || SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+if [[ ${PV} == *9999 ]]; then
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64"
+fi
+
+IUSE="crypt doc examples irc test"
+
+RDEPEND="
+ >=dev-python/jinja-2.1[${PYTHON_USEDEP}]
+ >=dev-python/twisted-17.5.0[${PYTHON_USEDEP}]
+ >=dev-python/autobahn-0.16.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-migrate-0.9[${PYTHON_USEDEP}]
+ crypt? (
+ >=dev-python/twisted-17.5.0[${PYTHON_USEDEP},crypt]
+ >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}]
+ )
+ irc? (
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ )
+ dev-python/future[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/txaio-2.2.2[${PYTHON_USEDEP}]
+ dev-python/pyjwt[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-4.1.1[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-21.2.1[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.4.3[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-blockdiag[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-spelling[${PYTHON_USEDEP}]
+ dev-python/pyenchant[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.8[${PYTHON_USEDEP}]
+ <dev-python/docutils-0.13.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-jinja[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ dev-python/pyjade[${PYTHON_USEDEP}]
+ dev-python/txgithub[${PYTHON_USEDEP}]
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ dev-python/lz4[${PYTHON_USEDEP}]
+ dev-python/treq[${PYTHON_USEDEP}]
+ dev-python/setuptools_trial[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+ )"
+
+S=${WORKDIR}/${MY_P}
+[[ ${PV} == *9999 ]] && S=${S}/master
+
+pkg_setup() {
+ enewuser buildbot
+
+ DOC_CONTENTS="The \"buildbot\" user and the \"buildmaster\" init script has been added
+ to support starting buildbot through Gentoo's init system. To use this,
+ execute \"emerge --config =${CATEGORY}/${PF}\" to create a new instance.
+ The scripts can run as a different user if desired."
+}
+
+python_prepare_all() {
+ # Disable distribution version test.
+ sed \
+ -e 's/self.assertNotIn("unknown", distro\[1\])//' \
+ -i buildbot/test/unit/test_buildbot_net_usage_data.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc; then
+ einfo "Generation of documentation"
+ pushd docs > /dev/null
+ #'man' target is currently broken
+ emake html
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ doman docs/buildbot.1
+
+ if use doc; then
+ dohtml -r docs/_build/html/
+ # TODO: install man pages
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r docker docs/examples
+ fi
+
+ newconfd "${FILESDIR}/buildmaster.confd" buildmaster
+ newinitd "${FILESDIR}/buildmaster.initd" buildmaster
+ systemd_dounit "${FILESDIR}/buildmaster.target"
+ systemd_newunit "${FILESDIR}/buildmaster_at.service" "buildmaster@.service"
+ systemd_install_serviced "${FILESDIR}/buildmaster_at.service.conf" "buildmaster@.service"
+
+ readme.gentoo_create_doc
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ ewarn
+ ewarn "Starting with buildbot-0.8.12-r2, more than one instance of buildmaster"
+ ewarn "can be run simultaneously. Note that \"BASEDIR\" in the buildbot configuration file"
+ ewarn "is now the common base directory for all instances. If you are migrating from an older"
+ ewarn "version, make sure that you copy the current contents of \"BASEDIR\" to a subdirectory."
+ ewarn "The name of the subdirectory corresponds to the name of the buildmaster instance."
+ ewarn "In order to start the service running OpenRC-based systems need to link to the init file:"
+ ewarn " ln --symbolic --relative /etc/init.d/buildmaster /etc/init.d/buildmaster.myinstance"
+ ewarn " rc-update add buildmaster.myinstance default"
+ ewarn " /etc/init.d/buildmaster.myinstance start"
+ ewarn "Systems using systemd can do the following:"
+ ewarn " systemctl enable buildmaster@myinstance.service"
+ ewarn " systemctl enable buildmaster.target"
+ ewarn " systemctl start buildmaster.target"
+ elog
+ elog "Upstream recommends the following when upgrading:"
+ elog "Each time you install a new version of Buildbot, you should run the"
+ elog "\"buildbot upgrade-master\" command on each of your pre-existing build masters."
+ elog "This will add files and fix (or at least detect) incompatibilities between"
+ elog "your old config and the new code."
+ fi
+ elog
+ elog "In order to create a new instance of buildmaster, execute:"
+ elog " emerge --config =${CATEGORY}/${PF}"
+}
+
+pkg_config() {
+ local buildmaster_path="/var/lib/buildmaster"
+ local log_path="/var/log/buildmaster"
+
+ einfo "This will prepare a new buildmaster instance in ${buildmaster_path}."
+ einfo "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_path="${buildmaster_path}/${instance_name}"
+ local instance_log_path="${log_path}/${instance_name}"
+
+ if [[ -e "${instance_path}" ]]; then
+ eerror "The instance with the specified name already exists:"
+ eerror "${instance_path}"
+ die "Instance already exists"
+ fi
+
+ local buildbot="/usr/bin/buildbot"
+ if [[ ! -d "${buildmaster_path}" ]]; then
+ mkdir --parents "${buildmaster_path}" || die "Unable to create directory ${buildmaster_path}"
+ fi
+ "${buildbot}" create-master "${instance_path}" &>/dev/null || die "Creating instance failed"
+ chown --recursive buildbot "${instance_path}" || die "Setting permissions for instance failed"
+ mv "${instance_path}/master.cfg.sample" "${instance_path}/master.cfg" \
+ || die "Moving sample configuration failed"
+ ln --symbolic --relative "/etc/init.d/buildmaster" "/etc/init.d/buildmaster.${instance_name}" \
+ || die "Unable to create link to init file"
+
+ if [[ ! -d "${instance_log_path}" ]]; then
+ mkdir --parents "${instance_log_path}" || die "Unable to create directory ${instance_log_path}"
+ fi
+ ln --symbolic --relative "${instance_log_path}/twistd.log" "${instance_path}/twistd.log" \
+ || die "Unable to create link to log file"
+
+ einfo "Successfully created a buildmaster instance at ${instance_path}."
+ einfo "To change the default settings edit the master.cfg file in this directory."
+}
diff --git a/dev-util/buildbot/buildbot-0.9.11.ebuild b/dev-util/buildbot/buildbot-0.9.11.ebuild
new file mode 100644
index 000000000000..694b31c8f116
--- /dev/null
+++ b/dev-util/buildbot/buildbot-0.9.11.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_REQ_USE="sqlite"
+PYTHON_COMPAT=( python2_7 python3_5 )
+
+EGIT_REPO_URI="https://github.com/buildbot/${PN}.git"
+
+[[ ${PV} == *9999 ]] && inherit git-r3
+inherit readme.gentoo-r1 user systemd distutils-r1
+
+MY_PV="${PV/_p/p}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="BuildBot build automation system"
+HOMEPAGE="https://buildbot.net/ https://github.com/buildbot/buildbot https://pypi.python.org/pypi/buildbot"
+[[ ${PV} == *9999 ]] || SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+if [[ ${PV} == *9999 ]]; then
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64"
+fi
+
+IUSE="crypt doc examples irc test"
+
+RDEPEND="
+ >=dev-python/jinja-2.1[${PYTHON_USEDEP}]
+ >=dev-python/twisted-17.5.0[${PYTHON_USEDEP}]
+ >=dev-python/autobahn-0.16.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-migrate-0.9[${PYTHON_USEDEP}]
+ dev-python/future[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/txaio-2.2.2[${PYTHON_USEDEP}]
+ dev-python/pyjwt[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-4.1.1[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+ crypt? (
+ >=dev-python/twisted-17.5.0[${PYTHON_USEDEP},crypt]
+ >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}]
+ )
+ irc? (
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-21.2.1[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.4.3[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-blockdiag[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-spelling[${PYTHON_USEDEP}]
+ dev-python/pyenchant[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.8[${PYTHON_USEDEP}]
+ <dev-python/docutils-0.13.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-jinja[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ dev-python/pyjade[${PYTHON_USEDEP}]
+ dev-python/txgithub[${PYTHON_USEDEP}]
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ dev-python/lz4[${PYTHON_USEDEP}]
+ dev-python/treq[${PYTHON_USEDEP}]
+ dev-python/setuptools_trial[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+ )"
+
+S=${WORKDIR}/${MY_P}
+[[ ${PV} == *9999 ]] && S=${S}/master
+
+pkg_setup() {
+ enewuser buildbot
+
+ DOC_CONTENTS="The \"buildbot\" user and the \"buildmaster\" init script has been added
+ to support starting buildbot through Gentoo's init system. To use this,
+ execute \"emerge --config =${CATEGORY}/${PF}\" to create a new instance.
+ The scripts can run as a different user if desired."
+}
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc; then
+ einfo "Generation of documentation"
+ pushd docs > /dev/null
+ #'man' target is currently broken
+ emake html
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ doman docs/buildbot.1
+
+ if use doc; then
+ dohtml -r docs/_build/html/
+ # TODO: install man pages
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r docker docs/examples
+ fi
+
+ newconfd "${FILESDIR}/buildmaster.confd" buildmaster
+ newinitd "${FILESDIR}/buildmaster.initd" buildmaster
+ systemd_dounit "${FILESDIR}/buildmaster.target"
+ systemd_newunit "${FILESDIR}/buildmaster_at.service" "buildmaster@.service"
+ systemd_install_serviced "${FILESDIR}/buildmaster_at.service.conf" "buildmaster@.service"
+
+ readme.gentoo_create_doc
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ ewarn
+ ewarn "Starting with buildbot-0.8.12-r2, more than one instance of buildmaster"
+ ewarn "can be run simultaneously. Note that \"BASEDIR\" in the buildbot configuration file"
+ ewarn "is now the common base directory for all instances. If you are migrating from an older"
+ ewarn "version, make sure that you copy the current contents of \"BASEDIR\" to a subdirectory."
+ ewarn "The name of the subdirectory corresponds to the name of the buildmaster instance."
+ ewarn "In order to start the service running OpenRC-based systems need to link to the init file:"
+ ewarn " ln --symbolic --relative /etc/init.d/buildmaster /etc/init.d/buildmaster.myinstance"
+ ewarn " rc-update add buildmaster.myinstance default"
+ ewarn " /etc/init.d/buildmaster.myinstance start"
+ ewarn "Systems using systemd can do the following:"
+ ewarn " systemctl enable buildmaster@myinstance.service"
+ ewarn " systemctl enable buildmaster.target"
+ ewarn " systemctl start buildmaster.target"
+ elog
+ elog "Upstream recommends the following when upgrading:"
+ elog "Each time you install a new version of Buildbot, you should run the"
+ elog "\"buildbot upgrade-master\" command on each of your pre-existing build masters."
+ elog "This will add files and fix (or at least detect) incompatibilities between"
+ elog "your old config and the new code."
+ fi
+ elog
+ elog "In order to create a new instance of buildmaster, execute:"
+ elog " emerge --config =${CATEGORY}/${PF}"
+}
+
+pkg_config() {
+ local buildmaster_path="/var/lib/buildmaster"
+ local log_path="/var/log/buildmaster"
+
+ einfo "This will prepare a new buildmaster instance in ${buildmaster_path}."
+ einfo "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_path="${buildmaster_path}/${instance_name}"
+ local instance_log_path="${log_path}/${instance_name}"
+
+ if [[ -e "${instance_path}" ]]; then
+ eerror "The instance with the specified name already exists:"
+ eerror "${instance_path}"
+ die "Instance already exists"
+ fi
+
+ local buildbot="/usr/bin/buildbot"
+ if [[ ! -d "${buildmaster_path}" ]]; then
+ mkdir --parents "${buildmaster_path}" || die "Unable to create directory ${buildmaster_path}"
+ fi
+ "${buildbot}" create-master "${instance_path}" &>/dev/null || die "Creating instance failed"
+ chown --recursive buildbot "${instance_path}" || die "Setting permissions for instance failed"
+ mv "${instance_path}/master.cfg.sample" "${instance_path}/master.cfg" \
+ || die "Moving sample configuration failed"
+ ln --symbolic --relative "/etc/init.d/buildmaster" "/etc/init.d/buildmaster.${instance_name}" \
+ || die "Unable to create link to init file"
+
+ if [[ ! -d "${instance_log_path}" ]]; then
+ mkdir --parents "${instance_log_path}" || die "Unable to create directory ${instance_log_path}"
+ fi
+ ln --symbolic --relative "${instance_log_path}/twistd.log" "${instance_path}/twistd.log" \
+ || die "Unable to create link to log file"
+
+ einfo "Successfully created a buildmaster instance at ${instance_path}."
+ einfo "To change the default settings edit the master.cfg file in this directory."
+}
diff --git a/dev-util/buildbot/buildbot-0.9.4.ebuild b/dev-util/buildbot/buildbot-0.9.4.ebuild
new file mode 100644
index 000000000000..4ee67e152c9c
--- /dev/null
+++ b/dev-util/buildbot/buildbot-0.9.4.ebuild
@@ -0,0 +1,216 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_REQ_USE="sqlite"
+PYTHON_COMPAT=( python2_7 )
+
+EGIT_REPO_URI="https://github.com/buildbot/${PN}.git"
+
+inherit readme.gentoo-r1 user systemd distutils-r1
+
+MY_PV="${PV/_p/p}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="BuildBot build automation system"
+HOMEPAGE="https://buildbot.net/ https://github.com/buildbot/buildbot https://pypi.python.org/pypi/buildbot"
+SRC_URI="
+ mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz
+ https://dev.gentoo.org/~dolsen/distfiles/buildbot-0.9.4.docs.tar.xz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+IUSE="crypt doc examples irc mail manhole test"
+
+RDEPEND=">=dev-python/jinja-2.1[${PYTHON_USEDEP}]
+ || (
+ >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-web-14.0.1[${PYTHON_USEDEP}]
+ )
+ >=dev-python/autobahn-0.16.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-migrate-0.9[${PYTHON_USEDEP}]
+ crypt? (
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}]
+ )
+ irc? (
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ || ( >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-words-14.0.1[${PYTHON_USEDEP}]
+ )
+ )
+ mail? (
+ || ( >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-mail-14.0.1[${PYTHON_USEDEP}]
+ )
+ )
+ manhole? (
+ || ( >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
+ >=dev-python/twisted-conch-14.0.1[${PYTHON_USEDEP}]
+ )
+ )
+ dev-python/future[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/txaio-2.2.2[${PYTHON_USEDEP}]
+ dev-python/pyjwt[${PYTHON_USEDEP}]
+ "
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-21.2.1[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.4.3[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-blockdiag[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-spelling[${PYTHON_USEDEP}]
+ dev-python/pyenchant[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.8[${PYTHON_USEDEP}]
+ dev-python/sphinx-jinja[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ || (
+ >=dev-python/twisted-16.0.0[${PYTHON_USEDEP}]
+ (
+ >=dev-python/twisted-mail-14.0.1[${PYTHON_USEDEP}]
+ >=dev-python/twisted-web-14.0.1[${PYTHON_USEDEP}]
+ >=dev-python/twisted-words-14.0.1[${PYTHON_USEDEP}]
+ )
+ )
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ dev-python/pyjade[${PYTHON_USEDEP}]
+ dev-python/txgithub[${PYTHON_USEDEP}]
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ )"
+
+S=${WORKDIR}/${MY_P}
+
+src_unpack() {
+ unpack ${MY_P}.tar.gz
+ cd ${MY_P}
+ unpack buildbot-0.9.4.docs.tar.xz
+}
+
+pkg_setup() {
+ enewuser buildbot
+
+ DOC_CONTENTS="The \"buildbot\" user and the \"buildmaster\" init script has been added
+ to support starting buildbot through Gentoo's init system. To use this,
+ execute \"emerge --config =${CATEGORY}/${PF}\" to create a new instance.
+ The scripts can run as a different user if desired."
+}
+
+python_prepare_all() {
+ if use doc; then
+ epatch "${FILESDIR}/buildbot-0.9.4.docs.patch"
+ fi
+ distutils-r1_python_prepare_all
+}
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc; then
+ einfo "Generation of documentation"
+ pushd docs > /dev/null
+ EPYTHON="python2.7" emake html
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ doman docs/buildbot.1
+
+ if use doc; then
+ dohtml -r docs/_build/html/
+ # TODO: install man pages
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r contrib docs/examples
+ fi
+
+ newconfd "${FILESDIR}/buildmaster.confd" buildmaster
+ newinitd "${FILESDIR}/buildmaster.initd" buildmaster
+ systemd_dounit "${FILESDIR}/buildmaster.target"
+ systemd_newunit "${FILESDIR}/buildmaster_at.service" "buildmaster@.service"
+ systemd_install_serviced "${FILESDIR}/buildmaster_at.service.conf" "buildmaster@.service"
+
+ readme.gentoo_create_doc
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ ewarn
+ ewarn "Starting with buildbot-0.8.12-r2, more than one instance of buildmaster"
+ ewarn "can be run simultaneously. Note that \"BASEDIR\" in the buildbot configuration file"
+ ewarn "is now the common base directory for all instances. If you are migrating from an older"
+ ewarn "version, make sure that you copy the current contents of \"BASEDIR\" to a subdirectory."
+ ewarn "The name of the subdirectory corresponds to the name of the buildmaster instance."
+ ewarn "In order to start the service running OpenRC-based systems need to link to the init file:"
+ ewarn " ln --symbolic --relative /etc/init.d/buildmaster /etc/init.d/buildmaster.myinstance"
+ ewarn " rc-update add buildmaster.myinstance default"
+ ewarn " /etc/init.d/buildmaster.myinstance start"
+ ewarn "Systems using systemd can do the following:"
+ ewarn " systemctl enable buildmaster@myinstance.service"
+ ewarn " systemctl enable buildmaster.target"
+ ewarn " systemctl start buildmaster.target"
+ elog
+ elog "Upstream recommends the following when upgrading:"
+ elog "Each time you install a new version of Buildbot, you should run the"
+ elog "\"buildbot upgrade-master\" command on each of your pre-existing build masters."
+ elog "This will add files and fix (or at least detect) incompatibilities between"
+ elog "your old config and the new code."
+ fi
+ elog
+ elog "In order to create a new instance of buildmaster, execute:"
+ elog " emerge --config =${CATEGORY}/${PF}"
+}
+
+pkg_config() {
+ local buildmaster_path="/var/lib/buildmaster"
+ einfo "This will prepare a new buildmaster instance in ${buildmaster_path}."
+ einfo "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_path="${buildmaster_path}/${instance_name}"
+ if [[ -e "${instance_path}" ]]; then
+ eerror "The instance with the specified name already exists:"
+ eerror "${instance_path}"
+ die "Instance already exists"
+ fi
+
+ local buildbot="/usr/bin/buildbot"
+ if [[ ! -d "${buildmaster_path}" ]]; then
+ mkdir --parents "${buildmaster_path}" || die "Unable to create directory ${buildmaster_path}"
+ fi
+ "${buildbot}" create-master "${instance_path}" &>/dev/null || die "Creating instance failed"
+ chown --recursive buildbot "${instance_path}" || die "Setting permissions for instance failed"
+ mv "${instance_path}/master.cfg.sample" "${instance_path}/master.cfg" \
+ || die "Moving sample configuration failed"
+ ln --symbolic --relative "/etc/init.d/buildmaster" "/etc/init.d/buildmaster.${instance_name}" \
+ || die "Unable to create link to init file"
+
+ einfo "Successfully created a buildmaster instance at ${instance_path}."
+ einfo "To change the default settings edit the master.cfg file in this directory."
+}
diff --git a/dev-util/buildbot/buildbot-0.9.7.ebuild b/dev-util/buildbot/buildbot-0.9.7.ebuild
new file mode 100644
index 000000000000..b82986878383
--- /dev/null
+++ b/dev-util/buildbot/buildbot-0.9.7.ebuild
@@ -0,0 +1,193 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_REQ_USE="sqlite"
+PYTHON_COMPAT=( python2_7 python3_5 )
+
+EGIT_REPO_URI="https://github.com/buildbot/${PN}.git"
+
+[[ ${PV} == *9999 ]] && inherit git-r3
+inherit readme.gentoo-r1 user systemd distutils-r1
+
+MY_PV="${PV/_p/p}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="BuildBot build automation system"
+HOMEPAGE="https://buildbot.net/ https://github.com/buildbot/buildbot https://pypi.python.org/pypi/buildbot"
+[[ ${PV} == *9999 ]] || SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+if [[ ${PV} == *9999 ]]; then
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64"
+fi
+
+IUSE="crypt doc examples irc test"
+
+RDEPEND="
+ >=dev-python/jinja-2.1[${PYTHON_USEDEP}]
+ >=dev-python/twisted-17.1.0[${PYTHON_USEDEP}]
+ >=dev-python/autobahn-0.16.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-migrate-0.9[${PYTHON_USEDEP}]
+ crypt? (
+ >=dev-python/twisted-17.1.0[${PYTHON_USEDEP},crypt]
+ >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}]
+ )
+ irc? (
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ )
+ dev-python/future[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/txaio-2.2.2[${PYTHON_USEDEP}]
+ dev-python/pyjwt[${PYTHON_USEDEP}]
+ dev-python/distro[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-4.1.1[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-21.2.1[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.4.3[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-blockdiag[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-spelling[${PYTHON_USEDEP}]
+ dev-python/pyenchant[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.8[${PYTHON_USEDEP}]
+ <dev-python/docutils-0.13.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-jinja[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ dev-python/pyjade[${PYTHON_USEDEP}]
+ dev-python/txgithub[${PYTHON_USEDEP}]
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ dev-python/lz4[${PYTHON_USEDEP}]
+ dev-python/treq[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+ )"
+
+S=${WORKDIR}/${MY_P}
+[[ ${PV} == *9999 ]] && S=${S}/master
+
+pkg_setup() {
+ enewuser buildbot
+
+ DOC_CONTENTS="The \"buildbot\" user and the \"buildmaster\" init script has been added
+ to support starting buildbot through Gentoo's init system. To use this,
+ execute \"emerge --config =${CATEGORY}/${PF}\" to create a new instance.
+ The scripts can run as a different user if desired."
+}
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc; then
+ einfo "Generation of documentation"
+ pushd docs > /dev/null
+ #'man' target is currently broken
+ emake html
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ doman docs/buildbot.1
+
+ if use doc; then
+ dohtml -r docs/_build/html/
+ # TODO: install man pages
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r docker docs/examples
+ fi
+
+ newconfd "${FILESDIR}/buildmaster.confd" buildmaster
+ newinitd "${FILESDIR}/buildmaster.initd" buildmaster
+ systemd_dounit "${FILESDIR}/buildmaster.target"
+ systemd_newunit "${FILESDIR}/buildmaster_at.service" "buildmaster@.service"
+ systemd_install_serviced "${FILESDIR}/buildmaster_at.service.conf" "buildmaster@.service"
+
+ readme.gentoo_create_doc
+}
+
+python_test() {
+ distutils_install_for_testing
+ export TEST_HYPER=1
+
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ ewarn
+ ewarn "Starting with buildbot-0.8.12-r2, more than one instance of buildmaster"
+ ewarn "can be run simultaneously. Note that \"BASEDIR\" in the buildbot configuration file"
+ ewarn "is now the common base directory for all instances. If you are migrating from an older"
+ ewarn "version, make sure that you copy the current contents of \"BASEDIR\" to a subdirectory."
+ ewarn "The name of the subdirectory corresponds to the name of the buildmaster instance."
+ ewarn "In order to start the service running OpenRC-based systems need to link to the init file:"
+ ewarn " ln --symbolic --relative /etc/init.d/buildmaster /etc/init.d/buildmaster.myinstance"
+ ewarn " rc-update add buildmaster.myinstance default"
+ ewarn " /etc/init.d/buildmaster.myinstance start"
+ ewarn "Systems using systemd can do the following:"
+ ewarn " systemctl enable buildmaster@myinstance.service"
+ ewarn " systemctl enable buildmaster.target"
+ ewarn " systemctl start buildmaster.target"
+ elog
+ elog "Upstream recommends the following when upgrading:"
+ elog "Each time you install a new version of Buildbot, you should run the"
+ elog "\"buildbot upgrade-master\" command on each of your pre-existing build masters."
+ elog "This will add files and fix (or at least detect) incompatibilities between"
+ elog "your old config and the new code."
+ fi
+ elog
+ elog "In order to create a new instance of buildmaster, execute:"
+ elog " emerge --config =${CATEGORY}/${PF}"
+}
+
+pkg_config() {
+ local buildmaster_path="/var/lib/buildmaster"
+ einfo "This will prepare a new buildmaster instance in ${buildmaster_path}."
+ einfo "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_path="${buildmaster_path}/${instance_name}"
+ if [[ -e "${instance_path}" ]]; then
+ eerror "The instance with the specified name already exists:"
+ eerror "${instance_path}"
+ die "Instance already exists"
+ fi
+
+ local buildbot="/usr/bin/buildbot"
+ if [[ ! -d "${buildmaster_path}" ]]; then
+ mkdir --parents "${buildmaster_path}" || die "Unable to create directory ${buildmaster_path}"
+ fi
+ "${buildbot}" create-master "${instance_path}" &>/dev/null || die "Creating instance failed"
+ chown --recursive buildbot "${instance_path}" || die "Setting permissions for instance failed"
+ mv "${instance_path}/master.cfg.sample" "${instance_path}/master.cfg" \
+ || die "Moving sample configuration failed"
+ ln --symbolic --relative "/etc/init.d/buildmaster" "/etc/init.d/buildmaster.${instance_name}" \
+ || die "Unable to create link to init file"
+
+ einfo "Successfully created a buildmaster instance at ${instance_path}."
+ einfo "To change the default settings edit the master.cfg file in this directory."
+}
diff --git a/dev-util/buildbot/buildbot-0.9.8.ebuild b/dev-util/buildbot/buildbot-0.9.8.ebuild
new file mode 100644
index 000000000000..7ab416edb5b3
--- /dev/null
+++ b/dev-util/buildbot/buildbot-0.9.8.ebuild
@@ -0,0 +1,194 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_REQ_USE="sqlite"
+PYTHON_COMPAT=( python2_7 python3_5 )
+
+EGIT_REPO_URI="https://github.com/buildbot/${PN}.git"
+
+[[ ${PV} == *9999 ]] && inherit git-r3
+inherit readme.gentoo-r1 user systemd distutils-r1
+
+MY_PV="${PV/_p/p}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="BuildBot build automation system"
+HOMEPAGE="https://buildbot.net/ https://github.com/buildbot/buildbot https://pypi.python.org/pypi/buildbot"
+[[ ${PV} == *9999 ]] || SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+if [[ ${PV} == *9999 ]]; then
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64"
+fi
+
+IUSE="crypt doc examples irc test"
+
+RDEPEND="
+ >=dev-python/jinja-2.1[${PYTHON_USEDEP}]
+ >=dev-python/twisted-17.5.0[${PYTHON_USEDEP}]
+ >=dev-python/autobahn-0.16.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-migrate-0.9[${PYTHON_USEDEP}]
+ crypt? (
+ >=dev-python/twisted-17.5.0[${PYTHON_USEDEP},crypt]
+ >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}]
+ )
+ irc? (
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ )
+ dev-python/future[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/txaio-2.2.2[${PYTHON_USEDEP}]
+ dev-python/pyjwt[${PYTHON_USEDEP}]
+ dev-python/distro[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-4.1.1[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-21.2.1[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.4.3[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-blockdiag[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-spelling[${PYTHON_USEDEP}]
+ dev-python/pyenchant[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.8[${PYTHON_USEDEP}]
+ <dev-python/docutils-0.13.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-jinja[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ dev-python/pyjade[${PYTHON_USEDEP}]
+ dev-python/txgithub[${PYTHON_USEDEP}]
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ dev-python/lz4[${PYTHON_USEDEP}]
+ dev-python/treq[${PYTHON_USEDEP}]
+ dev-python/setuptools_trial[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+ )"
+
+S=${WORKDIR}/${MY_P}
+[[ ${PV} == *9999 ]] && S=${S}/master
+
+pkg_setup() {
+ enewuser buildbot
+
+ DOC_CONTENTS="The \"buildbot\" user and the \"buildmaster\" init script has been added
+ to support starting buildbot through Gentoo's init system. To use this,
+ execute \"emerge --config =${CATEGORY}/${PF}\" to create a new instance.
+ The scripts can run as a different user if desired."
+}
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc; then
+ einfo "Generation of documentation"
+ pushd docs > /dev/null
+ #'man' target is currently broken
+ emake html
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ doman docs/buildbot.1
+
+ if use doc; then
+ dohtml -r docs/_build/html/
+ # TODO: install man pages
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r docker docs/examples
+ fi
+
+ newconfd "${FILESDIR}/buildmaster.confd" buildmaster
+ newinitd "${FILESDIR}/buildmaster.initd" buildmaster
+ systemd_dounit "${FILESDIR}/buildmaster.target"
+ systemd_newunit "${FILESDIR}/buildmaster_at.service" "buildmaster@.service"
+ systemd_install_serviced "${FILESDIR}/buildmaster_at.service.conf" "buildmaster@.service"
+
+ readme.gentoo_create_doc
+}
+
+python_test() {
+ distutils_install_for_testing
+ export TEST_HYPER=1
+
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ ewarn
+ ewarn "Starting with buildbot-0.8.12-r2, more than one instance of buildmaster"
+ ewarn "can be run simultaneously. Note that \"BASEDIR\" in the buildbot configuration file"
+ ewarn "is now the common base directory for all instances. If you are migrating from an older"
+ ewarn "version, make sure that you copy the current contents of \"BASEDIR\" to a subdirectory."
+ ewarn "The name of the subdirectory corresponds to the name of the buildmaster instance."
+ ewarn "In order to start the service running OpenRC-based systems need to link to the init file:"
+ ewarn " ln --symbolic --relative /etc/init.d/buildmaster /etc/init.d/buildmaster.myinstance"
+ ewarn " rc-update add buildmaster.myinstance default"
+ ewarn " /etc/init.d/buildmaster.myinstance start"
+ ewarn "Systems using systemd can do the following:"
+ ewarn " systemctl enable buildmaster@myinstance.service"
+ ewarn " systemctl enable buildmaster.target"
+ ewarn " systemctl start buildmaster.target"
+ elog
+ elog "Upstream recommends the following when upgrading:"
+ elog "Each time you install a new version of Buildbot, you should run the"
+ elog "\"buildbot upgrade-master\" command on each of your pre-existing build masters."
+ elog "This will add files and fix (or at least detect) incompatibilities between"
+ elog "your old config and the new code."
+ fi
+ elog
+ elog "In order to create a new instance of buildmaster, execute:"
+ elog " emerge --config =${CATEGORY}/${PF}"
+}
+
+pkg_config() {
+ local buildmaster_path="/var/lib/buildmaster"
+ einfo "This will prepare a new buildmaster instance in ${buildmaster_path}."
+ einfo "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_path="${buildmaster_path}/${instance_name}"
+ if [[ -e "${instance_path}" ]]; then
+ eerror "The instance with the specified name already exists:"
+ eerror "${instance_path}"
+ die "Instance already exists"
+ fi
+
+ local buildbot="/usr/bin/buildbot"
+ if [[ ! -d "${buildmaster_path}" ]]; then
+ mkdir --parents "${buildmaster_path}" || die "Unable to create directory ${buildmaster_path}"
+ fi
+ "${buildbot}" create-master "${instance_path}" &>/dev/null || die "Creating instance failed"
+ chown --recursive buildbot "${instance_path}" || die "Setting permissions for instance failed"
+ mv "${instance_path}/master.cfg.sample" "${instance_path}/master.cfg" \
+ || die "Moving sample configuration failed"
+ ln --symbolic --relative "/etc/init.d/buildmaster" "/etc/init.d/buildmaster.${instance_name}" \
+ || die "Unable to create link to init file"
+
+ einfo "Successfully created a buildmaster instance at ${instance_path}."
+ einfo "To change the default settings edit the master.cfg file in this directory."
+}
diff --git a/dev-util/buildbot/buildbot-9999.ebuild b/dev-util/buildbot/buildbot-9999.ebuild
new file mode 100644
index 000000000000..694b31c8f116
--- /dev/null
+++ b/dev-util/buildbot/buildbot-9999.ebuild
@@ -0,0 +1,202 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="5"
+PYTHON_REQ_USE="sqlite"
+PYTHON_COMPAT=( python2_7 python3_5 )
+
+EGIT_REPO_URI="https://github.com/buildbot/${PN}.git"
+
+[[ ${PV} == *9999 ]] && inherit git-r3
+inherit readme.gentoo-r1 user systemd distutils-r1
+
+MY_PV="${PV/_p/p}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="BuildBot build automation system"
+HOMEPAGE="https://buildbot.net/ https://github.com/buildbot/buildbot https://pypi.python.org/pypi/buildbot"
+[[ ${PV} == *9999 ]] || SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+if [[ ${PV} == *9999 ]]; then
+ KEYWORDS=""
+else
+ KEYWORDS="~amd64"
+fi
+
+IUSE="crypt doc examples irc test"
+
+RDEPEND="
+ >=dev-python/jinja-2.1[${PYTHON_USEDEP}]
+ >=dev-python/twisted-17.5.0[${PYTHON_USEDEP}]
+ >=dev-python/autobahn-0.16.0[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-0.8[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-migrate-0.9[${PYTHON_USEDEP}]
+ dev-python/future[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/txaio-2.2.2[${PYTHON_USEDEP}]
+ dev-python/pyjwt[${PYTHON_USEDEP}]
+ >=dev-python/zope-interface-4.1.1[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+ crypt? (
+ >=dev-python/twisted-17.5.0[${PYTHON_USEDEP},crypt]
+ >=dev-python/pyopenssl-16.0.0[${PYTHON_USEDEP}]
+ dev-python/idna[${PYTHON_USEDEP}]
+ dev-python/service_identity[${PYTHON_USEDEP}]
+ )
+ irc? (
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}
+ >=dev-python/setuptools-21.2.1[${PYTHON_USEDEP}]
+ doc? (
+ >=dev-python/sphinx-1.4.3[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-blockdiag[${PYTHON_USEDEP}]
+ dev-python/sphinxcontrib-spelling[${PYTHON_USEDEP}]
+ dev-python/pyenchant[${PYTHON_USEDEP}]
+ >=dev-python/docutils-0.8[${PYTHON_USEDEP}]
+ <dev-python/docutils-0.13.0[${PYTHON_USEDEP}]
+ dev-python/sphinx-jinja[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ )
+ test? (
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/boto3[${PYTHON_USEDEP}]
+ dev-python/ramlfications[${PYTHON_USEDEP}]
+ dev-python/pyjade[${PYTHON_USEDEP}]
+ dev-python/txgithub[${PYTHON_USEDEP}]
+ dev-python/txrequests[${PYTHON_USEDEP}]
+ dev-python/lz4[${PYTHON_USEDEP}]
+ dev-python/treq[${PYTHON_USEDEP}]
+ dev-python/setuptools_trial[${PYTHON_USEDEP}]
+ ~dev-util/buildbot-worker-${PV}[${PYTHON_USEDEP}]
+ )"
+
+S=${WORKDIR}/${MY_P}
+[[ ${PV} == *9999 ]] && S=${S}/master
+
+pkg_setup() {
+ enewuser buildbot
+
+ DOC_CONTENTS="The \"buildbot\" user and the \"buildmaster\" init script has been added
+ to support starting buildbot through Gentoo's init system. To use this,
+ execute \"emerge --config =${CATEGORY}/${PF}\" to create a new instance.
+ The scripts can run as a different user if desired."
+}
+
+src_compile() {
+ distutils-r1_src_compile
+
+ if use doc; then
+ einfo "Generation of documentation"
+ pushd docs > /dev/null
+ #'man' target is currently broken
+ emake html
+ popd > /dev/null
+ fi
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ doman docs/buildbot.1
+
+ if use doc; then
+ dohtml -r docs/_build/html/
+ # TODO: install man pages
+ fi
+
+ if use examples; then
+ insinto /usr/share/doc/${PF}
+ doins -r docker docs/examples
+ fi
+
+ newconfd "${FILESDIR}/buildmaster.confd" buildmaster
+ newinitd "${FILESDIR}/buildmaster.initd" buildmaster
+ systemd_dounit "${FILESDIR}/buildmaster.target"
+ systemd_newunit "${FILESDIR}/buildmaster_at.service" "buildmaster@.service"
+ systemd_install_serviced "${FILESDIR}/buildmaster_at.service.conf" "buildmaster@.service"
+
+ readme.gentoo_create_doc
+}
+
+python_test() {
+ distutils_install_for_testing
+
+ esetup.py test || die "Tests failed under ${EPYTHON}"
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ ewarn
+ ewarn "Starting with buildbot-0.8.12-r2, more than one instance of buildmaster"
+ ewarn "can be run simultaneously. Note that \"BASEDIR\" in the buildbot configuration file"
+ ewarn "is now the common base directory for all instances. If you are migrating from an older"
+ ewarn "version, make sure that you copy the current contents of \"BASEDIR\" to a subdirectory."
+ ewarn "The name of the subdirectory corresponds to the name of the buildmaster instance."
+ ewarn "In order to start the service running OpenRC-based systems need to link to the init file:"
+ ewarn " ln --symbolic --relative /etc/init.d/buildmaster /etc/init.d/buildmaster.myinstance"
+ ewarn " rc-update add buildmaster.myinstance default"
+ ewarn " /etc/init.d/buildmaster.myinstance start"
+ ewarn "Systems using systemd can do the following:"
+ ewarn " systemctl enable buildmaster@myinstance.service"
+ ewarn " systemctl enable buildmaster.target"
+ ewarn " systemctl start buildmaster.target"
+ elog
+ elog "Upstream recommends the following when upgrading:"
+ elog "Each time you install a new version of Buildbot, you should run the"
+ elog "\"buildbot upgrade-master\" command on each of your pre-existing build masters."
+ elog "This will add files and fix (or at least detect) incompatibilities between"
+ elog "your old config and the new code."
+ fi
+ elog
+ elog "In order to create a new instance of buildmaster, execute:"
+ elog " emerge --config =${CATEGORY}/${PF}"
+}
+
+pkg_config() {
+ local buildmaster_path="/var/lib/buildmaster"
+ local log_path="/var/log/buildmaster"
+
+ einfo "This will prepare a new buildmaster instance in ${buildmaster_path}."
+ einfo "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_path="${buildmaster_path}/${instance_name}"
+ local instance_log_path="${log_path}/${instance_name}"
+
+ if [[ -e "${instance_path}" ]]; then
+ eerror "The instance with the specified name already exists:"
+ eerror "${instance_path}"
+ die "Instance already exists"
+ fi
+
+ local buildbot="/usr/bin/buildbot"
+ if [[ ! -d "${buildmaster_path}" ]]; then
+ mkdir --parents "${buildmaster_path}" || die "Unable to create directory ${buildmaster_path}"
+ fi
+ "${buildbot}" create-master "${instance_path}" &>/dev/null || die "Creating instance failed"
+ chown --recursive buildbot "${instance_path}" || die "Setting permissions for instance failed"
+ mv "${instance_path}/master.cfg.sample" "${instance_path}/master.cfg" \
+ || die "Moving sample configuration failed"
+ ln --symbolic --relative "/etc/init.d/buildmaster" "/etc/init.d/buildmaster.${instance_name}" \
+ || die "Unable to create link to init file"
+
+ if [[ ! -d "${instance_log_path}" ]]; then
+ mkdir --parents "${instance_log_path}" || die "Unable to create directory ${instance_log_path}"
+ fi
+ ln --symbolic --relative "${instance_log_path}/twistd.log" "${instance_path}/twistd.log" \
+ || die "Unable to create link to log file"
+
+ einfo "Successfully created a buildmaster instance at ${instance_path}."
+ einfo "To change the default settings edit the master.cfg file in this directory."
+}
diff --git a/dev-util/buildbot/files/buildbot-0.9.4.docs.patch b/dev-util/buildbot/files/buildbot-0.9.4.docs.patch
new file mode 100644
index 000000000000..1a27713cb939
--- /dev/null
+++ b/dev-util/buildbot/files/buildbot-0.9.4.docs.patch
@@ -0,0 +1,130 @@
+diff --git a/docs/Makefile b/docs/Makefile
+index 55637302d..c4fde481e 100644
+--- a/docs/Makefile
++++ b/docs/Makefile
+@@ -24,7 +24,7 @@ PAPEROPT_a4 = -D latex_paper_size=a4
+ PAPEROPT_letter = -D latex_paper_size=letter
+ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+-.PHONY: help clean towncrier html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
++.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
+
+ help:
+ @echo "Please use \`make <target>' where <target> is one of"
+@@ -51,38 +51,38 @@ clean:
+ towncrier:
+ cd ../../; towncrier --draft |grep 'No significant changes.' || yes n | towncrier
+
+-html: conf.py towncrier
++html: conf.py
+ $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+-dirhtml: conf.py towncrier
++dirhtml: conf.py
+ $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+ @echo
+ @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+-singlehtml: conf.py towncrier
++singlehtml: conf.py
+ $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+ @echo
+ @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+-pickle: conf.py towncrier
++pickle: conf.py
+ $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+ @echo
+ @echo "Build finished; now you can process the pickle files."
+
+-json: conf.py towncrier
++json: conf.py
+ $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+ @echo
+ @echo "Build finished; now you can process the JSON files."
+
+-htmlhelp: conf.py towncrier
++htmlhelp: conf.py
+ $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+ @echo
+ @echo "Build finished; now you can run HTML Help Workshop with the" \
+ ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+-qthelp: conf.py towncrier
++qthelp: conf.py
+ $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+ @echo
+ @echo "Build finished; now you can run "qcollectiongenerator" with the" \
+@@ -91,7 +91,7 @@ qthelp: conf.py towncrier
+ @echo "To view the help file:"
+ @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/BuildbotTutorial.qhc"
+
+-devhelp: conf.py towncrier
++devhelp: conf.py
+ $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+ @echo
+ @echo "Build finished."
+@@ -100,52 +100,52 @@ devhelp: conf.py towncrier
+ @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/BuildbotTutorial"
+ @echo "# devhelp"
+
+-epub: conf.py towncrier
++epub: conf.py
+ $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+ @echo
+ @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+-latex: conf.py towncrier
++latex: conf.py
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo
+ @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+ @echo "Run \`make' in that directory to run these through (pdf)latex" \
+ "(use \`make latexpdf' here to do that automatically)."
+
+-latexpdf: conf.py towncrier
++latexpdf: conf.py
+ $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+ @echo "Running LaTeX files through pdflatex..."
+ make -C $(BUILDDIR)/latex all-pdf
+ @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+-text: conf.py towncrier
++text: conf.py
+ $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+ @echo
+ @echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+-man: conf.py towncrier
++man: conf.py
+ $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+ @echo
+ @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+-changes: conf.py towncrier
++changes: conf.py
+ $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+ @echo
+ @echo "The overview file is in $(BUILDDIR)/changes."
+
+-linkcheck: conf.py towncrier
++linkcheck: conf.py
+ $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+ @echo
+ @echo "Link check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/linkcheck/output.txt."
+
+-spelling: conf.py towncrier
++spelling: conf.py
+ $(SPHINXBUILD) -b spelling $(ALLSPHINXOPTS) $(BUILDDIR)/spelling
+ @echo
+ @echo "Spelling check complete; look for any errors in the above output " \
+ "or in $(BUILDDIR)/spelling/output.txt."
+
+-doctest: conf.py towncrier
++doctest: conf.py
+ $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+ @echo "Testing of doctests in the sources finished, look at the " \
+ "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/dev-util/buildbot/files/buildbot.service b/dev-util/buildbot/files/buildbot.service
new file mode 100644
index 000000000000..4581a13a0c48
--- /dev/null
+++ b/dev-util/buildbot/files/buildbot.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=buildbot master daemon
+After=local-fs.target network.target
+
+[Service]
+Type=forking
+User=buildbot
+WorkingDirectory=/var/lib/buildmaster
+# The following assume there is a 'master' directory
+# in $WorkingDirectory with the master configuration files
+ExecStartPre=/usr/bin/buildbot checkconfig master
+ExecStart=/usr/bin/buildbot start master
+ExecStop=/usr/bin/buildbot stop master
+
+[Install]
+WantedBy=multi-user.target
diff --git a/dev-util/buildbot/files/buildmaster.confd b/dev-util/buildbot/files/buildmaster.confd
new file mode 100644
index 000000000000..e489d66f9d4b
--- /dev/null
+++ b/dev-util/buildbot/files/buildmaster.confd
@@ -0,0 +1,10 @@
+
+# Path to the build master's basedir.
+BASEDIR=/var/lib/buildmaster
+
+# User account for the buildmaster.
+# The basedir should be owned by this user.
+USERNAME=buildbot
+
+# Extra options to pass to twistd.
+TWISTD_OPTS=""
diff --git a/dev-util/buildbot/files/buildmaster.initd b/dev-util/buildbot/files/buildmaster.initd
new file mode 100644
index 000000000000..29fd444d123f
--- /dev/null
+++ b/dev-util/buildbot/files/buildmaster.initd
@@ -0,0 +1,61 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="reload"
+
+BUILDMASTER_NAME=${RC_SVCNAME:12}
+BUILDMASTER_PATH="${BASEDIR}/${BUILDMASTER_NAME}"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ -z "${BUILDMASTER_NAME}" ]; then
+ eerror "Buildmaster name not defined. Please link buildmaster.foo to this file to start the buildmaster with the name \"foo\"."
+ return 1
+ fi
+ if [ -z "${BASEDIR}" ]; then
+ eerror "BASEDIR not set"
+ return 1
+ fi
+ if [ -z "${USERNAME}" ]; then
+ eerror "USERNAME not set"
+ return 1
+ fi
+ if [ ! -d "${BUILDMASTER_PATH}" ]; then
+ eerror "${BUILDMASTER_PATH} is not a directory"
+ return 1
+ fi
+ if [ ! -e "${BUILDMASTER_PATH}/buildbot.tac" ]; then
+ eerror "${BUILDMASTER_PATH} does not contain buildbot.tac"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting buildmaster in ${BUILDMASTER_PATH}"
+ start-stop-daemon --start -u "${USERNAME}" \
+ --pidfile "${BUILDMASTER_PATH}/buildmaster.pid" \
+ --exec /usr/bin/python2 -- /usr/bin/twistd \
+ --no_save \
+ --logfile="${BUILDMASTER_PATH}/twistd.log" \
+ --pidfile="${BUILDMASTER_PATH}/buildmaster.pid" \
+ --python="${BUILDMASTER_PATH}/buildbot.tac"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping buildmaster in ${BUILDMASTER_PATH}"
+ start-stop-daemon --stop --pidfile "${BUILDMASTER_PATH}/buildmaster.pid"
+ eend $?
+}
+
+reload() {
+ ebegin "Reconfiguring buildmaster in ${BUILDMASTER_PATH}"
+ start-stop-daemon --signal HUP --pidfile \
+ "${BUILDMASTER_PATH}"/buildmaster.pid
+ eend $?
+}
diff --git a/dev-util/buildbot/files/buildmaster.target b/dev-util/buildbot/files/buildmaster.target
new file mode 100644
index 000000000000..2bf1a361e6b0
--- /dev/null
+++ b/dev-util/buildbot/files/buildmaster.target
@@ -0,0 +1,5 @@
+[Unit]
+Description=Buildbot target that allows to start or stop all buildmaster@*.service instances
+
+[Install]
+WantedBy=multi-user.target
diff --git a/dev-util/buildbot/files/buildmaster_at.service b/dev-util/buildbot/files/buildmaster_at.service
new file mode 100644
index 000000000000..88f9f5712002
--- /dev/null
+++ b/dev-util/buildbot/files/buildmaster_at.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=buildbot master daemon
+After=local-fs.target network.target
+PartOf=buildmaster.target
+
+[Service]
+Environment=BASEDIR=/var/lib/buildmaster
+Type=forking
+User=buildbot
+ExecStartPre=/usr/bin/buildbot checkconfig ${BASEDIR}/%i
+ExecStart=/usr/bin/buildbot start ${BASEDIR}/%i
+ExecStop=/usr/bin/buildbot stop ${BASEDIR}/%i
+
+[Install]
+WantedBy=buildmaster.target
+
diff --git a/dev-util/buildbot/files/buildmaster_at.service.conf b/dev-util/buildbot/files/buildmaster_at.service.conf
new file mode 100644
index 000000000000..baf1ae74ec08
--- /dev/null
+++ b/dev-util/buildbot/files/buildmaster_at.service.conf
@@ -0,0 +1,5 @@
+# Uncomment the following lines to configure the base directory for all buildmaster instances.
+
+#[Service]
+#Environment=BASEDIR=/var/lib/buildmaster
+
diff --git a/dev-util/buildbot/metadata.xml b/dev-util/buildbot/metadata.xml
new file mode 100644
index 000000000000..dc8748343ec6
--- /dev/null
+++ b/dev-util/buildbot/metadata.xml
@@ -0,0 +1,39 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>dolsen@gentoo.org</email>
+ <name>Brian Dolbec</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>hwoarang@gentoo.org</email>
+ <name>Markos Chandras</name>
+ </maintainer>
+ <longdescription lang="en">
+ BuildBot is a system to automate the compile/test cycle required
+ by most software projects to validate code changes.
+ Features:
+ * run builds on a variety of slave platforms
+ * arbitrary build process: handles projects using C, Python, whatever
+ * minimal host requirements: python and Twisted
+ * slaves can be behind a firewall if they can still do checkout
+ * status delivery through web page, email, IRC, other protocols
+ * track builds in progress, provide estimated completion time
+ * flexible configuration by subclassing generic build process classes
+ * debug tools to force a new build, submit fake Changes, query slave status
+ * released under the GPL
+ </longdescription>
+ <use>
+ <flag name="irc">Add support for status delivery through an ircbot.</flag>
+ <flag name="mail">Add support for watching a maildir for commits.</flag>
+ <flag name="manhole">Add support for manhole (debug over ssh)</flag>
+ </use>
+ <upstream>
+ <maintainer>
+ <email>devel@buildbot.net</email>
+ <name>Developers List</name>
+ </maintainer>
+ <remote-id type="pypi">buildbot</remote-id>
+ <remote-id type="github">buildbot/buildbot</remote-id>
+ </upstream>
+</pkgmetadata>