From 01314f4b6639be3caf1f0b685a41e22794fd7ed8 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Jul 2017 23:00:25 +0200 Subject: [PATCH 1/4] shoney: do not deploy torrent --- makefu/1systems/shoney/config.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/makefu/1systems/shoney/config.nix b/makefu/1systems/shoney/config.nix index 6cec260d2..ba9d0911e 100644 --- a/makefu/1systems/shoney/config.nix +++ b/makefu/1systems/shoney/config.nix @@ -14,7 +14,6 @@ in { - ]; From 6d7dfa388e34e3ea43ebaaaa273d008a141ee503 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Jul 2017 23:05:25 +0200 Subject: [PATCH 2/4] buildbot: cherry-pick working buildbot-classic definition from nixpkgs --- krebs/3modules/buildbot/master.nix | 9 +- krebs/3modules/buildbot/slave.nix | 7 +- krebs/5pkgs/simple/buildbot-slave/default.nix | 66 +++++++++++++++ krebs/5pkgs/simple/buildbot/default.nix | 82 +++++++++++++++++++ 4 files changed, 150 insertions(+), 14 deletions(-) create mode 100644 krebs/5pkgs/simple/buildbot-slave/default.nix create mode 100644 krebs/5pkgs/simple/buildbot/default.nix diff --git a/krebs/3modules/buildbot/master.nix b/krebs/3modules/buildbot/master.nix index 6c7af6da5..432b93b05 100644 --- a/krebs/3modules/buildbot/master.nix +++ b/krebs/3modules/buildbot/master.nix @@ -3,14 +3,7 @@ with import ; let - # https://github.com/NixOS/nixpkgs/issues/14026 - nixpkgs-fix = import (pkgs.fetchgit { - url = https://github.com/nixos/nixpkgs; - rev = "e026b5c243ea39810826e68362718f5d703fb5d0"; - sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8"; - }) {}; - - buildbot = nixpkgs-fix.buildbot; + buildbot = pkgs.buildbot; buildbot-master-config = pkgs.writeText "buildbot-master.cfg" '' # -*- python -*- from buildbot.plugins import * diff --git a/krebs/3modules/buildbot/slave.nix b/krebs/3modules/buildbot/slave.nix index 932923ae5..e93c190dc 100644 --- a/krebs/3modules/buildbot/slave.nix +++ b/krebs/3modules/buildbot/slave.nix @@ -2,11 +2,6 @@ with import ; let - nixpkgs-fix = import (pkgs.fetchgit { - url = https://github.com/nixos/nixpkgs; - rev = "e026b5c243ea39810826e68362718f5d703fb5d0"; - sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8"; - }) {}; buildbot-slave-init = pkgs.writeText "buildbot-slave.tac" '' import os @@ -158,7 +153,7 @@ let workdir = shell.escape cfg.workDir; contact = shell.escape cfg.contact; description = shell.escape cfg.description; - buildbot = nixpkgs-fix.buildbot-slave; + buildbot = pkgs.buildbot-slave; # TODO:make this in { PermissionsStartOnly = true; 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; + }; +}) From 4c698a40dc7a7537b588985130fd6e40fea8ba9b Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Jul 2017 23:46:20 +0200 Subject: [PATCH 3/4] buildbot: use buildbot-classic from staging --- krebs/5pkgs/simple/buildbot/default.nix | 36 +++++++++---------------- 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/krebs/5pkgs/simple/buildbot/default.nix b/krebs/5pkgs/simple/buildbot/default.nix index a246044d6..5b35a9cdc 100644 --- a/krebs/5pkgs/simple/buildbot/default.nix +++ b/krebs/5pkgs/simple/buildbot/default.nix @@ -1,38 +1,26 @@ -{ stdenv, buildPythonApplication, fetchurl, twisted, dateutil, jinja2 -, sqlalchemy_migrate_0_7 -, enableDebugClient ? false, pygobject ? null, pyGtkGlade ? null +{ stdenv, python2Packages, fetchFromGitHub +, enableDebugClient ? false }: # enableDebugClient enables "buildbot debugclient", a Gtk-based debug control # panel. Its mostly for developers. -assert enableDebugClient -> pygobject != null && pyGtkGlade != null; +assert enableDebugClient -> python2Packages.pygobject != null && python2Packages.pyGtkGlade != null; -buildPythonApplication (rec { - name = "buildbot-0.8.12"; - namePrefix = ""; +with python2Packages; buildPythonApplication (rec { + name = "buildbot-classic-2017-07-23"; - src = fetchurl { - url = "https://pypi.python.org/packages/source/b/buildbot/${name}.tar.gz"; - sha256 = "1mn4h04sp6smr3ahqfflys15cpn13q9mfkapcs2jc4ppvxv6kdn6"; + src = fetchFromGitHub { + owner = "krebscode"; + repo = "buildbot-classic"; + rev = "2ef3315e0ac8f387ab751d02ee68d166909283aa"; + sha256 = "00amqarknbh1p141h14jw4r8d23ih0xgf1h4jscp76ba340drjfj"; }; - 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 + [ twisted dateutil jinja2 sqlalchemy_migrate pathlib ] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ]; - + postUnpack = "sourceRoot=\${sourceRoot}/master"; # What's up with this?! 'trial' should be 'test', no? # # running tests From f5459736cfbf2f3f23d525887184eadd743e6e91 Mon Sep 17 00:00:00 2001 From: makefu Date: Sun, 23 Jul 2017 23:52:01 +0200 Subject: [PATCH 4/4] buildbot-slave: use buildbot-classic --- krebs/5pkgs/simple/buildbot-slave/default.nix | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/krebs/5pkgs/simple/buildbot-slave/default.nix b/krebs/5pkgs/simple/buildbot-slave/default.nix index 30fbe0569..7cf7cd5e3 100644 --- a/krebs/5pkgs/simple/buildbot-slave/default.nix +++ b/krebs/5pkgs/simple/buildbot-slave/default.nix @@ -1,19 +1,18 @@ -{ stdenv, buildPythonApplication, fetchurl, coreutils, twisted }: +{ stdenv, python2Packages, fetchFromGitHub, coreutils }: -buildPythonApplication (rec { - name = "buildbot-slave-0.8.10"; - namePrefix = ""; +python2Packages.buildPythonApplication (rec { + name = "buildbot-slave-classic-2017-07-23"; - src = fetchurl { - url = "https://pypi.python.org/packages/source/b/buildbot-slave/${name}.tar.gz"; - sha256 = "09pncw44c7vqrl7zyn1nvfismiqi9s51axk9cqxn9gq7jhj38mpg"; + src = fetchFromGitHub { + owner = "krebscode"; + repo = "buildbot-classic"; + rev = "7c2826756a00ade7a1d6d20b4e9430710d2bc29e"; + sha256 = "0za2k5kap6zky304rjknlvm3gyvw0q0p52c3jjmkf708s9gmyfyg"; }; - patchPhase = '' - substituteInPlace buildslave/scripts/logwatcher.py --replace /usr/bin/tail ${coreutils}/bin/tail - ''; + postUnpack = "sourceRoot=\${sourceRoot}/slave"; - propagatedBuildInputs = [ twisted ]; + propagatedBuildInputs = with python2Packages; [ twisted pathlib ]; # What's up with this?! 'trial' should be 'test', no? #