From 80d72a7243408cfd1e31011f1f67a03fd4f27cc8 Mon Sep 17 00:00:00 2001 From: makefu Date: Tue, 25 Jul 2017 15:04:16 +0200 Subject: buildbot: override sources instead of repackage --- krebs/3modules/buildbot/master.nix | 16 +++++- krebs/3modules/buildbot/slave.nix | 15 ++++- .../simple/buildbot-classic-slave/default.nix | 60 -------------------- krebs/5pkgs/simple/buildbot-classic/default.nix | 65 ---------------------- 4 files changed, 29 insertions(+), 127 deletions(-) delete mode 100644 krebs/5pkgs/simple/buildbot-classic-slave/default.nix delete mode 100644 krebs/5pkgs/simple/buildbot-classic/default.nix diff --git a/krebs/3modules/buildbot/master.nix b/krebs/3modules/buildbot/master.nix index dce3745dc..12c685b82 100644 --- a/krebs/3modules/buildbot/master.nix +++ b/krebs/3modules/buildbot/master.nix @@ -2,8 +2,22 @@ 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.overrideDerivation (old: { + postUnpack = "sourceRoot=\${sourceRoot}/master"; + patches = []; + src = pkgs.fetchFromGitHub { + owner = "krebscode"; + repo = "buildbot-classic"; + rev = "5b4f5f6f1"; + sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; };}); - buildbot = pkgs.buildbot-classic; 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 345d4a3ea..698bf3bcd 100644 --- a/krebs/3modules/buildbot/slave.nix +++ b/krebs/3modules/buildbot/slave.nix @@ -2,7 +2,20 @@ with import ; let - pkg = pkgs.buildbot-classic-slave; + # https://github.com/NixOS/nixpkgs/issues/14026 + nixpkgs-fix = import (pkgs.fetchgit { + url = https://github.com/nixos/nixpkgs; + rev = "e026b5c243ea39810826e68362718f5d703fb5d0"; + sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8"; + }) {}; + pkg = nixpkgs-fix.buildbot-slave.overrideDerivation (old: { + postUnpack = "sourceRoot=\${sourceRoot}/slave"; + patches = []; + src = pkgs.fetchFromGitHub { + owner = "krebscode"; + repo = "buildbot-classic"; + rev = "5b4f5f6f1"; + sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; };}); buildbot-slave-init = pkgs.writeText "buildbot-slave.tac" '' import os diff --git a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix deleted file mode 100644 index 0b1ea73a3..000000000 --- a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ stdenv, buildbot-classic, python2Packages, fetchFromGitHub, coreutils }: - -python2Packages.buildPythonApplication (rec { - name = "buildbot-slave-classic-2017-07-23"; - - src = buildbot-classic.src; - - postUnpack = "sourceRoot=\${sourceRoot}/slave"; - - propagatedBuildInputs = with python2Packages; [ twisted pathlib ]; - - # 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-classic/default.nix b/krebs/5pkgs/simple/buildbot-classic/default.nix deleted file mode 100644 index 5f1081278..000000000 --- a/krebs/5pkgs/simple/buildbot-classic/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ stdenv, python2Packages, fetchFromGitHub -, enableDebugClient ? false -}: - -# enableDebugClient enables "buildbot debugclient", a Gtk-based debug control -# panel. Its mostly for developers. - -assert enableDebugClient -> python2Packages.pygobject != null && python2Packages.pyGtkGlade != null; - -with python2Packages; buildPythonApplication (rec { - name = "buildbot-classic-2017-07-23"; - - src = fetchFromGitHub { - owner = "krebscode"; - repo = "buildbot-classic"; - rev = "5b4f5f6f1"; - sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93"; - }; - - propagatedBuildInputs = - [ twisted dateutil jinja2 sqlalchemy_migrate - ] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ]; - postUnpack = "sourceRoot=\${sourceRoot}/master"; - - # checkPhase = "trial buildbot"; - #doCheck = true; - - 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; - }; -}) -- cgit v1.2.3