summaryrefslogtreecommitdiff
blob: 7ed7a5cbe4e8590a100e0bc402d18fbd9a9cba4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-util/buildbot/buildbot-0.8.0.ebuild,v 1.7 2010/07/24 14:52:04 maekke Exp $

EAPI="3"
PYTHON_DEPEND="2"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="3.*"
DISTUTILS_SRC_TEST="trial"
DISTUTILS_DISABLE_TEST_DEPENDENCY="1"

inherit distutils eutils

MY_PV="${PV/_p/p}"
MY_P="${PN}-${MY_PV}"

DESCRIPTION="A Python system to automate the compile/test cycle to validate code changes"
HOMEPAGE="http://buildbot.net/ http://pypi.python.org/pypi/buildbot"
SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 arm hppa ~ia64 ppc ~ppc64 ~s390 ~sh ~sparc x86"
IUSE="doc irc mail manhole test"

# sqlite3 module of Python 2.5 is not supported.
RDEPEND="dev-python/jinja
	|| ( dev-python/pysqlite:2 >=dev-lang/python-2.6[sqlite] )
	>=dev-python/twisted-2.0.1
	dev-python/twisted-web
	dev-python/twisted-mail
	irc? ( dev-python/twisted-words )
	mail? ( dev-python/twisted-mail )
	manhole? ( dev-python/twisted-conch )"
DEPEND="${DEPEND}
	doc? ( dev-python/epydoc )
	test? ( dev-python/twisted-mail
			dev-python/twisted-web
			dev-python/twisted-words )"

S="${WORKDIR}/${MY_P}"

pkg_setup() {
	enewuser buildbot
	python_pkg_setup
}

src_compile() {
	distutils_src_compile

	if use doc; then
		einfo "Generation of documentation"
		PYTHONPATH="." "$(PYTHON -f)" docs/epyrun -o docs/reference || die "Generation of documentation failed"
	fi
}

src_install() {
	distutils_src_install
	doinfo docs/buildbot.info
	dohtml -r docs/images

	insinto /usr/share/doc/${PF}
	doins -r contrib
	doins -r docs/examples

	if use doc; then
		doins -r docs/reference || die "doins failed"
	fi

	newconfd "${FILESDIR}/buildslave.confd" buildslave || die "newconfd failed"
	newinitd "${FILESDIR}/buildbot.initd-r1" buildslave || die "newinitd failed"
	newconfd "${FILESDIR}/buildmaster.confd" buildmaster || die "newconfd failed"
	newinitd "${FILESDIR}/buildbot.initd-r1" buildmaster || die "newinitd failed"

	# Make it print the right names when you start/stop the script.
	sed -e "s/@buildbot@/buildslave/" -i "${ED}etc/init.d/buildslave" || die "sed buildslave failed"
	sed -e "s/@buildbot@/buildmaster/" -i "${ED}etc/init.d/buildmaster" || die "sed buildmaster failed"
}

pkg_postinst() {
	distutils_pkg_postinst

	elog 'The "buildbot" user and the "buildmaster" and "buildslave" init'
	elog "scripts were added to support starting buildbot through gentoo's"
	elog "init system.  To use this set up your build master or build slave"
	elog "following the buildbot documentation, make sure the resulting"
	elog 'directories are owned by the "buildbot" user and point'
	elog "${ROOT}etc/conf.d/buildmaster or ${ROOT}etc/conf.d/buildslave"
	elog "at the right location.  The scripts can run as a different user"
	elog "if desired.  If you need to run more than one master or slave"
	elog "just copy the scripts."
	elog ""
	elog "Upstream recommends the following when upgrading:"
	elog "Each time you install a new version of Buildbot, you should run the new"
	elog "'buildbot upgrade-master' command on each of your pre-existing buildmasters."
	elog "This will add files and fix (or at least detect) incompatibilities between"
	elog "your old config and the new code."
}