summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2017-07-23 23:05:25 +0200
committermakefu <github@syntax-fehler.de>2017-07-23 23:05:25 +0200
commit6d7dfa388e34e3ea43ebaaaa273d008a141ee503 (patch)
treec1c11333a68e48c880a3be53137952f530005c77 /krebs/5pkgs
parent01314f4b6639be3caf1f0b685a41e22794fd7ed8 (diff)
buildbot: cherry-pick working buildbot-classic definition from nixpkgs
Diffstat (limited to 'krebs/5pkgs')
-rw-r--r--krebs/5pkgs/simple/buildbot-slave/default.nix66
-rw-r--r--krebs/5pkgs/simple/buildbot/default.nix82
2 files changed, 148 insertions, 0 deletions
diff --git a/krebs/5pkgs/simple/buildbot-slave/default.nix b/krebs/5pkgs/simple/buildbot-slave/default.nix
new file mode 100644
index 000000000..30fbe0569
--- /dev/null
+++ b/krebs/5pkgs/simple/buildbot-slave/default.nix
@@ -0,0 +1,66 @@
+{ stdenv, buildPythonApplication, fetchurl, coreutils, twisted }:
+
+buildPythonApplication (rec {
+ name = "buildbot-slave-0.8.10";
+ namePrefix = "";
+
+ src = fetchurl {
+ url = "https://pypi.python.org/packages/source/b/buildbot-slave/${name}.tar.gz";
+ sha256 = "09pncw44c7vqrl7zyn1nvfismiqi9s51axk9cqxn9gq7jhj38mpg";
+ };
+
+ patchPhase = ''
+ substituteInPlace buildslave/scripts/logwatcher.py --replace /usr/bin/tail ${coreutils}/bin/tail
+ '';
+
+ propagatedBuildInputs = [ twisted ];
+
+ # What's up with this?! 'trial' should be 'test', no?
+ #
+ # running tests
+ # usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
+ # or: setup.py --help [cmd1 cmd2 ...]
+ # or: setup.py --help-commands
+ # or: setup.py cmd --help
+ #
+ # error: invalid command 'trial'
+ doCheck = false;
+
+ postInstall = ''
+ mkdir -p "$out/share/man/man1"
+ cp docs/buildslave.1 "$out/share/man/man1"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = http://buildbot.net/;
+
+ license = stdenv.lib.licenses.gpl2Plus;
+
+ description = "Continuous integration system that automates the build/test cycle";
+
+ longDescription =
+ '' The BuildBot is a system to automate the compile/test cycle
+ required by most software projects to validate code changes. By
+ automatically rebuilding and testing the tree each time something
+ has changed, build problems are pinpointed quickly, before other
+ developers are inconvenienced by the failure. The guilty
+ developer can be identified and harassed without human
+ intervention. By running the builds on a variety of platforms,
+ developers who do not have the facilities to test their changes
+ everywhere before checkin will at least know shortly afterwards
+ whether they have broken the build or not. Warning counts, lint
+ checks, image size, compile time, and other build parameters can
+ be tracked over time, are more visible, and are therefore easier
+ to improve.
+
+ The overall goal is to reduce tree breakage and provide a platform
+ to run tests or code-quality checks that are too annoying or
+ pedantic for any human to waste their time with. Developers get
+ immediate (and potentially public) feedback about their changes,
+ encouraging them to be more careful about testing before checking
+ in code.
+ '';
+ maintainers = with maintainers; [ bjornfor ];
+ platforms = platforms.all;
+ };
+})
diff --git a/krebs/5pkgs/simple/buildbot/default.nix b/krebs/5pkgs/simple/buildbot/default.nix
new file mode 100644
index 000000000..a246044d6
--- /dev/null
+++ b/krebs/5pkgs/simple/buildbot/default.nix
@@ -0,0 +1,82 @@
+{ stdenv, buildPythonApplication, fetchurl, twisted, dateutil, jinja2
+, sqlalchemy_migrate_0_7
+, enableDebugClient ? false, pygobject ? null, pyGtkGlade ? null
+}:
+
+# enableDebugClient enables "buildbot debugclient", a Gtk-based debug control
+# panel. Its mostly for developers.
+
+assert enableDebugClient -> pygobject != null && pyGtkGlade != null;
+
+buildPythonApplication (rec {
+ name = "buildbot-0.8.12";
+ namePrefix = "";
+
+ src = fetchurl {
+ url = "https://pypi.python.org/packages/source/b/buildbot/${name}.tar.gz";
+ sha256 = "1mn4h04sp6smr3ahqfflys15cpn13q9mfkapcs2jc4ppvxv6kdn6";
+ };
+
+ patchPhase =
+ # The code insists on /usr/bin/tail, /usr/bin/make, etc.
+ '' echo "patching erroneous absolute path references..."
+ for i in $(find -name \*.py)
+ do
+ sed -i "$i" \
+ -e "s|/usr/bin/python|$(type -P python)|g ; s|/usr/bin/||g"
+ done
+
+ sed -i 's/==/>=/' setup.py
+ '';
+
+ propagatedBuildInputs =
+ [ twisted dateutil jinja2 sqlalchemy_migrate_0_7
+ ] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ];
+
+ # What's up with this?! 'trial' should be 'test', no?
+ #
+ # running tests
+ # usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
+ # or: setup.py --help [cmd1 cmd2 ...]
+ # or: setup.py --help-commands
+ # or: setup.py cmd --help
+ #
+ # error: invalid command 'trial'
+ doCheck = false;
+
+ postInstall = ''
+ mkdir -p "$out/share/man/man1"
+ cp docs/buildbot.1 "$out/share/man/man1"
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = http://buildbot.net/;
+ license = stdenv.lib.licenses.gpl2Plus;
+ # Of course, we don't really need that on NixOS. :-)
+ description = "Continuous integration system that automates the build/test cycle";
+ longDescription =
+ '' The BuildBot is a system to automate the compile/test cycle
+ required by most software projects to validate code changes. By
+ automatically rebuilding and testing the tree each time something
+ has changed, build problems are pinpointed quickly, before other
+ developers are inconvenienced by the failure. The guilty
+ developer can be identified and harassed without human
+ intervention. By running the builds on a variety of platforms,
+ developers who do not have the facilities to test their changes
+ everywhere before checkin will at least know shortly afterwards
+ whether they have broken the build or not. Warning counts, lint
+ checks, image size, compile time, and other build parameters can
+ be tracked over time, are more visible, and are therefore easier
+ to improve.
+
+ The overall goal is to reduce tree breakage and provide a platform
+ to run tests or code-quality checks that are too annoying or
+ pedantic for any human to waste their time with. Developers get
+ immediate (and potentially public) feedback about their changes,
+ encouraging them to be more careful about testing before checking
+ in code.
+ '';
+ maintainers = with maintainers; [ bjornfor ];
+ platforms = platforms.all;
+ };
+})