summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2017-07-25 23:10:51 +0200
committerlassulus <lassulus@lassul.us>2017-07-25 23:18:38 +0200
commit7aa31b7babafb2e10bbf8418800ef561bccbd67b (patch)
treec0d87b752e939d07facb64f1d69a569c963a773c
parent826da6c222d359ede5d032173c204bf37715cdc8 (diff)
krebs buildbot: reintroduce packages with minimal overrides
-rw-r--r--krebs/3modules/buildbot/master.nix28
-rw-r--r--krebs/3modules/buildbot/slave.nix19
-rw-r--r--krebs/5pkgs/simple/buildbot-classic-slave/default.nix21
-rw-r--r--krebs/5pkgs/simple/buildbot-classic/default.nix47
4 files changed, 76 insertions, 39 deletions
diff --git a/krebs/3modules/buildbot/master.nix b/krebs/3modules/buildbot/master.nix
index 12c685b82..a7624c8f2 100644
--- a/krebs/3modules/buildbot/master.nix
+++ b/krebs/3modules/buildbot/master.nix
@@ -2,22 +2,6 @@
with import <stockholm/lib>;
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-master-config = pkgs.writeText "buildbot-master.cfg" ''
# -*- python -*-
from buildbot.plugins import *
@@ -364,7 +348,7 @@ let
set -efux
if [ ! -e ${workdir} ];then
mkdir -p ${workdir}
- ${buildbot}/bin/buildbot create-master -r -l 10 -f ${workdir}
+ ${pkgs.buildbot-classic}/bin/buildbot create-master -r -l 10 -f ${workdir}
fi
# always override the master.cfg
cp ${buildbot-master-config} ${workdir}/master.cfg
@@ -373,18 +357,18 @@ let
${ concatMapStringsSep "\n"
(f: "cp ${secretsdir}/${f} ${workdir}/${f}" ) cfg.secrets }
# sanity
- ${buildbot}/bin/buildbot checkconfig ${workdir}
+ ${pkgs.buildbot-classic}/bin/buildbot checkconfig ${workdir}
# TODO: maybe upgrade? not sure about this
# normally we should write buildbot.tac by our own
- # ${buildbot}/bin/buildbot upgrade-master ${workdir}
+ # ${pkgs.buildbot-classic}/bin/buildbot upgrade-master ${workdir}
chmod 700 -R ${workdir}
chown buildbotMaster:buildbotMaster -R ${workdir}
'';
- ExecStart = "${buildbot}/bin/buildbot start ${workdir}";
- ExecStop = "${buildbot}/bin/buildbot stop ${workdir}";
- ExecReload = "${buildbot}/bin/buildbot reconfig ${workdir}";
+ ExecStart = "${pkgs.buildbot-classic}/bin/buildbot start ${workdir}";
+ ExecStop = "${pkgs.buildbot-classic}/bin/buildbot stop ${workdir}";
+ ExecReload = "${pkgs.buildbot-classic}/bin/buildbot reconfig ${workdir}";
PrivateTmp = "true";
User = "buildbotMaster";
Restart = "always";
diff --git a/krebs/3modules/buildbot/slave.nix b/krebs/3modules/buildbot/slave.nix
index 698bf3bcd..544f9c4e0 100644
--- a/krebs/3modules/buildbot/slave.nix
+++ b/krebs/3modules/buildbot/slave.nix
@@ -2,20 +2,6 @@
with import <stockholm/lib>;
let
- # 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
@@ -166,7 +152,6 @@ let
workdir = shell.escape cfg.workDir;
contact = shell.escape cfg.contact;
description = shell.escape cfg.description;
- buildbot = pkg;
# TODO:make this
in {
PermissionsStartOnly = true;
@@ -183,8 +168,8 @@ let
chown buildbotSlave:buildbotSlave -R ${workdir}
chmod 700 -R ${workdir}
'';
- ExecStart = "${buildbot}/bin/buildslave start ${workdir}";
- ExecStop = "${buildbot}/bin/buildslave stop ${workdir}";
+ ExecStart = "${pkgs.buildbot-classic-slave}/bin/buildslave start ${workdir}";
+ ExecStop = "${pkgs.buildbot-classic-slave}/bin/buildslave stop ${workdir}";
PrivateTmp = "true";
User = "buildbotSlave";
Restart = "always";
diff --git a/krebs/5pkgs/simple/buildbot-classic-slave/default.nix b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix
new file mode 100644
index 000000000..193df579f
--- /dev/null
+++ b/krebs/5pkgs/simple/buildbot-classic-slave/default.nix
@@ -0,0 +1,21 @@
+{ coreutils, fetchgit, fetchFromGitHub, buildbot-classic, python2Packages, ... }:
+
+python2Packages.buildPythonApplication {
+ name = "buildbot-slave-0.8.12";
+ namePrefix = "";
+
+ src = buildbot-classic.src;
+ postUnpack = "sourceRoot=\${sourceRoot}/slave";
+
+ patchPhase = ''
+ substituteInPlace buildslave/scripts/logwatcher.py --replace /usr/bin/tail ${coreutils}/bin/tail
+ '';
+
+ propagatedBuildInputs = [ python2Packages.twisted ];
+ doCheck = false;
+
+ postInstall = ''
+ mkdir -p "$out/share/man/man1"
+ cp docs/buildslave.1 "$out/share/man/man1"
+ '';
+}
diff --git a/krebs/5pkgs/simple/buildbot-classic/default.nix b/krebs/5pkgs/simple/buildbot-classic/default.nix
new file mode 100644
index 000000000..c28f77ef3
--- /dev/null
+++ b/krebs/5pkgs/simple/buildbot-classic/default.nix
@@ -0,0 +1,47 @@
+{ fetchgit, fetchFromGitHub, python2Packages, ... }:
+let
+ # https://github.com/NixOS/nixpkgs/issues/14026
+ nixpkgs-fix = import (fetchgit {
+ url = https://github.com/nixos/nixpkgs;
+ rev = "e026b5c243ea39810826e68362718f5d703fb5d0";
+ sha256 = "11lqd480bi6xbi7xbh4krrxmbp6a6iafv1d0q3sj461al0x0has8";
+ }) {};
+
+in nixpkgs-fix.buildPythonApplication {
+ name = "buildbot-0.8.12";
+ namePrefix = "";
+ patches = [];
+
+ src = fetchFromGitHub {
+ owner = "krebscode";
+ repo = "buildbot-classic";
+ rev = "5b4f5f6f1";
+ sha256 = "1j3xn1gjzvsf90jvfmyln71fzlhjx642ivrqf47zfxpkacljja93";
+ };
+ postUnpack = "sourceRoot=\${sourceRoot}/master";
+
+ 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 = [
+ python2Packages.jinja2
+ python2Packages.twisted
+ nixpkgs-fix.pythonPackages.dateutil_1_5
+ nixpkgs-fix.pythonPackages.sqlalchemy_migrate_0_7
+ ];
+ doCheck = false;
+ postInstall = ''
+ mkdir -p "$out/share/man/man1"
+ cp docs/buildbot.1 "$out/share/man/man1"
+ '';
+}
+