Skip to content

Commit

Permalink
dev-util/buildbot: Version bump, enable docs use flag
Browse files Browse the repository at this point in the history
I now have sphinx docs generation working for this ebuild.
Patches submitted upstream for missing files.

Package-Manager: Portage-2.3.3_p38, Repoman-2.3.1_p31
Signed-off-by: Brian Dolbec <[email protected]>
  • Loading branch information
dol-sen committed Feb 10, 2017
1 parent 3bad8a0 commit c55e4f1
Show file tree
Hide file tree
Showing 5 changed files with 361 additions and 9 deletions.
2 changes: 2 additions & 0 deletions dev-util/buildbot/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ DIST buildbot-0.9.0.post1.tar.gz 3013406 SHA256 afd8229c9fd33daa6d8227cd665c75b1
DIST buildbot-0.9.1.tar.gz 3051975 SHA256 a9f385f66f5cc3021f4cbfce92496673ebf9171578fa9e5ae4f66732276d64ce SHA512 c3b845a3607c5eaa0a5076755bc0e285ba7c6809f9d7934fab7c6cf8299610e921034656cf3792113961176a821138c6d069122d4d1f1698f16badf3ef9a0dea WHIRLPOOL 6767878665f09ff7b6219ddcda73487b441f3e33ce580fc2df2f16d430217d4ac38b93e22a3f3abd9c8380ac6e6c93de6767faec1aa5615f82fbe8d8e20759e1
DIST buildbot-0.9.2.tar.gz 3026977 SHA256 d33ec059941cf830c8f7b7f336a76e32e7122e2690a27b784efeddc6dbf4564a SHA512 a1c6345bcceb5c8f4ed600542625eee81e59af00a1b12054fe77e3b4ed5536b7004fcbd07cfc96baa3061193eb79e4290e056cf7157b71831370654c057a2c57 WHIRLPOOL 075a00d85df5321180345348a02ac12cc8a1bea36d6e60617ebe54de71ce5a989fcf009822834dad1994a6f83ebb5c6132f350902fd31d5b279c5c13014bb4b9
DIST buildbot-0.9.3.tar.gz 3031033 SHA256 c2bc6a8139b0f97d304bfa047a4c414e42ea12ba94e34d82ae7cb356a69d87fb SHA512 a6f18e88c33fe1eafe0b9b154fb77f0d93db71145faab527ecd5ce53fcbbff48b915de4a02461da87eefbd58a649a56d3a9b16ba759d978e70a70898a15681b7 WHIRLPOOL b62fd5bea0b647b703674024e50731e7713e9488dec570d8e42beabaa2135a81349b955164cf01898b12ab0123d9a8f3b76e3364f65003b8af85a54755b6ad22
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-test_templates.tar.xz 304 SHA256 3d581b74c21f88119f7e5f93f381f2004662ca7219aae9a05f0bd3f8cae48317 SHA512 87ba914896d86f70e2e4b24a51248c475bf24fad4c02e3a99d6d7fa41b5a57f369865b20a7c30dafa3162ba50ccb04de1809b0cf9d53e45537738e4821229866 WHIRLPOOL 151dc42ceed8e90c96cdd0b6e937f13019c0d6cd5e2e878ee971cbc69ce4ea56b240b58fa743766bd0d71cafa38279e37be077324eb5ece7b99df46eaf566dfe
216 changes: 216 additions & 0 deletions dev-util/buildbot/buildbot-0.9.4.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,216 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

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="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
http://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
}

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" "[email protected]"
systemd_install_serviced "${FILESDIR}/buildmaster_at.service.conf" "[email protected]"

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 [email protected]"
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."
}
17 changes: 9 additions & 8 deletions dev-util/buildbot/buildbot-9999.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,18 @@ RDEPEND=">=dev-python/jinja-2.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}] )
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}]
)
test? (
>=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
>=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
Expand All @@ -83,13 +91,6 @@ DEPEND="${RDEPEND}
dev-python/txrequests[${PYTHON_USEDEP}]
)"

# still yet to be added deps
# doc? ( 'sphinxcontrib-blockdiag',
# 'sphinxcontrib-spelling',
# 'pyenchant',
# 'docutils>=0.8',
# 'sphinx-jinja',)

S=${WORKDIR}/${MY_P}
[[ ${PV} == *9999 ]] && S=${S}/master

Expand Down
130 changes: 130 additions & 0 deletions dev-util/buildbot/files/buildbot-0.9.4.docs.patch
Original file line number Diff line number Diff line change
@@ -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."
Loading

0 comments on commit c55e4f1

Please sign in to comment.