buildbot: assorted cleanups

Some changes to be more idiomatic and use stdenv building blocks more.
I also added a `buildbot.withPlugins` instead of the current plugins
mechanism, which forces an unnecessary rebuild of the package and reruns
all the tests. This should be equivalent and more pleasant to use in
practice.
This commit is contained in:
Dan Peebles 2017-03-08 10:55:16 -05:00
parent ebeb722e14
commit 49b20e5569
3 changed files with 85 additions and 82 deletions

View File

@ -1,12 +1,21 @@
{ stdenv, lib, fetchurl, coreutils, openssh, buildbot-worker, makeWrapper, { stdenv, lib, openssh, buildbot-worker, pythonPackages, runCommand, makeWrapper }:
pythonPackages, gnused, plugins ? [] }:
pythonPackages.buildPythonApplication (rec { let
withPlugins = plugins: runCommand "wrapped-${package.name}" {
buildInputs = [ makeWrapper ];
passthru.withPlugins = moarPlugins: withPlugins (moarPlugins ++ plugins);
} ''
makeWrapper ${package}/bin/buildbot $out/bin/buildbot \
--prefix PYTHONPATH : ${lib.makeSearchPathOutput "lib" pythonPackages.python.sitePackages plugins}
'';
package = pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "buildbot"; pname = "buildbot";
version = "0.9.4"; version = "0.9.4";
src = fetchurl {
url = "mirror://pypi/b/${pname}/${name}.tar.gz"; src = pythonPackages.fetchPypi {
inherit pname version;
sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086"; sha256 = "0wklrn4fszac9wi8zw3vbsznwyff6y57cz0i81zvh46skb6n3086";
}; };
@ -25,7 +34,6 @@ pythonPackages.buildPythonApplication (rec {
pyflakes pyflakes
openssh openssh
buildbot-worker buildbot-worker
makeWrapper
treq treq
]; ];
@ -57,15 +65,13 @@ pythonPackages.buildPythonApplication (rec {
ramlfications ramlfications
sphinx-jinja sphinx-jinja
] ++ plugins; ];
postPatch = '' postPatch = ''
${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot/scripts/logwatcher.py substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
''; '';
postFixup = '' passthru = { inherit withPlugins; };
makeWrapper $out/bin/.buildbot-wrapped $out/bin/buildbot --set PYTHONPATH "$PYTHONPATH"
'';
meta = with stdenv.lib; { meta = with stdenv.lib; {
homepage = http://buildbot.net/; homepage = http://buildbot.net/;
@ -73,4 +79,5 @@ pythonPackages.buildPythonApplication (rec {
maintainers = with maintainers; [ nand0p ryansydnor ]; maintainers = with maintainers; [ nand0p ryansydnor ];
license = licenses.gpl2; license = licenses.gpl2;
}; };
}) });
in package

View File

@ -1,12 +1,12 @@
{ stdenv, fetchurl, gnused, coreutils, pythonPackages }: { stdenv, pythonPackages }:
pythonPackages.buildPythonApplication (rec { pythonPackages.buildPythonApplication (rec {
name = "${pname}-${version}"; name = "${pname}-${version}";
pname = "buildbot-worker"; pname = "buildbot-worker";
version = "0.9.4"; version = "0.9.4";
src = fetchurl { src = pythonPackages.fetchPypi {
url = "mirror://pypi/b/${pname}/${name}.tar.gz"; inherit pname version;
sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj"; sha256 = "0rdrr8x7sn2nxl51p6h9ad42s3c28lb6sys84zrg0d7fm4zhv7hj";
}; };
@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication (rec {
propagatedBuildInputs = with pythonPackages; [ twisted future ]; propagatedBuildInputs = with pythonPackages; [ twisted future ];
postPatch = '' postPatch = ''
${gnused}/bin/sed -i 's|/usr/bin/tail|${coreutils}/bin/tail|' buildbot_worker/scripts/logwatcher.py substituteInPlace buildbot_worker/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
''; '';
meta = with stdenv.lib; { meta = with stdenv.lib; {

View File

@ -6220,12 +6220,8 @@ with pkgs;
buildbot-plugins = callPackage ../development/tools/build-managers/buildbot/plugins.nix { buildbot-plugins = callPackage ../development/tools/build-managers/buildbot/plugins.nix {
pythonPackages = python2Packages; pythonPackages = python2Packages;
}; };
buildbot-ui = self.buildbot.override { buildbot-ui = buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
plugins = with self.buildbot-plugins; [ www ]; buildbot-full = buildbot.withPlugins (with self.buildbot-plugins; [ www console-view waterfall-view ]);
};
buildbot-full = self.buildbot.override {
plugins = with self.buildbot-plugins; [ www console-view waterfall-view ];
};
buildkite-agent = callPackage ../development/tools/continuous-integration/buildkite-agent { }; buildkite-agent = callPackage ../development/tools/continuous-integration/buildkite-agent { };