From 56bd759df1d0c750a065b8c845e93d5dfa6b549d Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Sat, 8 Aug 2015 13:49:04 -0700 Subject: proj/gentoo: Initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson X-Thanks: Alec Warner - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring - wrote much python to improve cvs2svn X-Thanks: Rich Freeman - validation scripts X-Thanks: Patrick Lauer - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed --- dev-util/buildbot/Manifest | 2 + dev-util/buildbot/buildbot-0.8.10.ebuild | 98 +++++++++++++++++++++++++++ dev-util/buildbot/buildbot-0.8.12.ebuild | 98 +++++++++++++++++++++++++++ dev-util/buildbot/buildbot-9999.ebuild | 107 ++++++++++++++++++++++++++++++ dev-util/buildbot/files/buildbot.service | 16 +++++ dev-util/buildbot/files/buildmaster.confd | 10 +++ dev-util/buildbot/files/buildmaster.initd | 54 +++++++++++++++ dev-util/buildbot/metadata.xml | 33 +++++++++ 8 files changed, 418 insertions(+) create mode 100644 dev-util/buildbot/Manifest create mode 100644 dev-util/buildbot/buildbot-0.8.10.ebuild create mode 100644 dev-util/buildbot/buildbot-0.8.12.ebuild create mode 100644 dev-util/buildbot/buildbot-9999.ebuild create mode 100644 dev-util/buildbot/files/buildbot.service create mode 100644 dev-util/buildbot/files/buildmaster.confd create mode 100644 dev-util/buildbot/files/buildmaster.initd create mode 100644 dev-util/buildbot/metadata.xml (limited to 'dev-util/buildbot') diff --git a/dev-util/buildbot/Manifest b/dev-util/buildbot/Manifest new file mode 100644 index 000000000000..eae5a7202c72 --- /dev/null +++ b/dev-util/buildbot/Manifest @@ -0,0 +1,2 @@ +DIST buildbot-0.8.10.tar.gz 4822307 SHA256 c4964d2ebd81cb80a14cb058fb2aab0572a1d8d86672d514e775b42deb08a5f4 SHA512 e148a1670a56837587d858d1697fe117661cbbfedab42bf7be905f9e8e4266e4ff0170b0cd81aed61234d30497a05427061c3084033f09811d0bc306b200661b WHIRLPOOL 26397b6f914266201aba4feb4df7353facad4fd0f51bdf7e35cf25205c45eadcf83f24c265e540b13d327750ce9561362be6a5aa237152cf1298d970c504f76c +DIST buildbot-0.8.12.tar.gz 4834352 SHA256 c6b66976dff712268566574d57131ec15e5682f6d4390cd5c8559bab0980c4d6 SHA512 18c5144132fb033f3581d3c494d5e8ff35d3e8b1548764452ce9ae543d710e58a2c6e3e8e46a0ef237804f9a6a45485890ae4616ab655fb00d4ccf328d6f6645 WHIRLPOOL 5754b7c0278fb5e7da8a7dd66253f6f4d12f54c125f6a78aa9018a2b6b22fd88a27e79e6821ab05e4cd9e87bf0dd08c3c73c7914d4c499ac13c48ca232ed21c8 diff --git a/dev-util/buildbot/buildbot-0.8.10.ebuild b/dev-util/buildbot/buildbot-0.8.10.ebuild new file mode 100644 index 000000000000..0b4328197706 --- /dev/null +++ b/dev-util/buildbot/buildbot-0.8.10.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +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/ http://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 ~x86-interix ~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}] ) + test? ( + dev-python/python-dateutil[${PYTHON_USEDEP}] + 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, + set up your build master following the documentation, make sure the + resulting directories are owned by the \"buildbot\" user and point + \"${EROOT}etc/conf.d/buildmaster\" at the right location. The scripts can + run as a different user if desired. If you need to run more than one + build master, just copy the scripts." +} + +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}"/${PN}.service + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog + 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." +} diff --git a/dev-util/buildbot/buildbot-0.8.12.ebuild b/dev-util/buildbot/buildbot-0.8.12.ebuild new file mode 100644 index 000000000000..0b4328197706 --- /dev/null +++ b/dev-util/buildbot/buildbot-0.8.12.ebuild @@ -0,0 +1,98 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +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/ http://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 ~x86-interix ~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}] ) + test? ( + dev-python/python-dateutil[${PYTHON_USEDEP}] + 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, + set up your build master following the documentation, make sure the + resulting directories are owned by the \"buildbot\" user and point + \"${EROOT}etc/conf.d/buildmaster\" at the right location. The scripts can + run as a different user if desired. If you need to run more than one + build master, just copy the scripts." +} + +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}"/${PN}.service + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog + 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." +} diff --git a/dev-util/buildbot/buildbot-9999.ebuild b/dev-util/buildbot/buildbot-9999.ebuild new file mode 100644 index 000000000000..db790c18eaac --- /dev/null +++ b/dev-util/buildbot/buildbot-9999.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" +PYTHON_COMPAT=( python2_7 ) +PYTHON_REQ_USE="sqlite" + +EGIT_REPO_URI="https://github.com/buildbot/${PN}.git" + +[[ ${PV} = 9999 ]] && inherit git-2 +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/ http://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="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-interix ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris" +fi +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}] ) + test? ( + dev-python/python-dateutil[${PYTHON_USEDEP}] + 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, + set up your build master following the documentation, make sure the + resulting directories are owned by the \"buildbot\" user and point + \"${EROOT}etc/conf.d/buildmaster\" at the right location. The scripts can + run as a different user if desired. If you need to run more than one + build master, just copy the scripts." +} + +src_compile() { + [[ ${PV} = 9999 ]] && cd master/ + 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() { + [[ ${PV} = 9999 ]] && cd master/ + 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}"/${PN}.service + + readme.gentoo_create_doc +} + +pkg_postinst() { + readme.gentoo_print_elog + 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." +} 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..313365f3a676 --- /dev/null +++ b/dev-util/buildbot/files/buildmaster.initd @@ -0,0 +1,54 @@ +#!/sbin/runscript +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_started_commands="reload" + +depend() { + need net +} + +checkconfig() { + if [ -z "${BASEDIR}" ]; then + eerror "BASEDIR not set" + return 1 + fi + if [ -z "${USERNAME}" ]; then + eerror "USERNAME not set" + return 1 + fi + if [ ! -d "${BASEDIR}" ]; then + eerror "${BASEDIR} is not a directory" + return 1 + fi + if [ ! -e "${BASEDIR}/buildbot.tac" ]; then + eerror "${BASEDIR} does not contain buildbot.tac" + return 1 + fi +} + +start() { + checkconfig || return 1 + ebegin "Starting buildmaster in ${BASEDIR}" + start-stop-daemon --start -u "${USERNAME}" \ + --pidfile "${BASEDIR}/buildmaster.pid" \ + --exec /usr/bin/python -- /usr/bin/twistd \ + --no_save \ + --logfile="${BASEDIR}/twistd.log" \ + --pidfile="${BASEDIR}/buildmaster.pid" \ + --python="${BASEDIR}/buildbot.tac" + eend $? +} + +stop() { + ebegin "Stopping buildmaster in ${BASEDIR}" + start-stop-daemon --stop --pidfile "${BASEDIR}/buildmaster.pid" + eend $? +} + +reload() { + ebegin "Reconfiguring buildmaster in ${BASEDIR}" + start-stop-daemon --signal HUP --pidfile \ + "${BASEDIR}"/buildmaster.pid + eend $? +} diff --git a/dev-util/buildbot/metadata.xml b/dev-util/buildbot/metadata.xml new file mode 100644 index 000000000000..1cd84ffdae76 --- /dev/null +++ b/dev-util/buildbot/metadata.xml @@ -0,0 +1,33 @@ + + + + + hwoarang@gentoo.org + Markos Chandras + + The 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 + + Add support for status delivery through an ircbot. + Add support for watching a maildir for commits. + Add support for manhole (debug over ssh) + + + + dustin@v.igoro.us + Dustin J. Mitchell + + buildbot + + -- cgit v1.2.3-65-gdbad