diff options
Diffstat (limited to 'dev-util/buildbot')
-rw-r--r-- | dev-util/buildbot/Manifest | 24 | ||||
-rw-r--r-- | dev-util/buildbot/buildbot-0.8.12-r3.ebuild | 147 | ||||
-rw-r--r-- | dev-util/buildbot/buildbot-0.9.10.ebuild | 211 | ||||
-rw-r--r-- | dev-util/buildbot/buildbot-0.9.11.ebuild | 202 | ||||
-rw-r--r-- | dev-util/buildbot/buildbot-0.9.4.ebuild | 216 | ||||
-rw-r--r-- | dev-util/buildbot/buildbot-0.9.7.ebuild | 193 | ||||
-rw-r--r-- | dev-util/buildbot/buildbot-0.9.8.ebuild | 194 | ||||
-rw-r--r-- | dev-util/buildbot/buildbot-9999.ebuild | 202 | ||||
-rw-r--r-- | dev-util/buildbot/files/buildbot-0.9.4.docs.patch | 130 | ||||
-rw-r--r-- | dev-util/buildbot/files/buildbot.service | 16 | ||||
-rw-r--r-- | dev-util/buildbot/files/buildmaster.confd | 10 | ||||
-rw-r--r-- | dev-util/buildbot/files/buildmaster.initd | 61 | ||||
-rw-r--r-- | dev-util/buildbot/files/buildmaster.target | 5 | ||||
-rw-r--r-- | dev-util/buildbot/files/buildmaster_at.service | 16 | ||||
-rw-r--r-- | dev-util/buildbot/files/buildmaster_at.service.conf | 5 | ||||
-rw-r--r-- | dev-util/buildbot/metadata.xml | 39 |
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> |