lol
1{ stdenv, buildPythonPackage, fetchurl, twisted, dateutil, jinja2
2, sqlalchemy , sqlalchemy_migrate
3, enableDebugClient ? false, pygobject ? null, pyGtkGlade ? null
4}:
5
6# enableDebugClient enables "buildbot debugclient", a Gtk-based debug control
7# panel. Its mostly for developers.
8
9assert enableDebugClient -> pygobject != null && pyGtkGlade != null;
10
11buildPythonPackage (rec {
12 name = "buildbot-0.8.10";
13 namePrefix = "";
14
15 src = fetchurl {
16 url = "https://pypi.python.org/packages/source/b/buildbot/${name}.tar.gz";
17 sha256 = "1x5513mjvd3mwwadawk6v3ca2wh5mcmgnn5h9jhq1jw1plp4v5n4";
18 };
19
20 patchPhase =
21 # The code insists on /usr/bin/tail, /usr/bin/make, etc.
22 '' echo "patching erroneous absolute path references..."
23 for i in $(find -name \*.py)
24 do
25 sed -i "$i" \
26 -e "s|/usr/bin/python|$(type -P python)|g ; s|/usr/bin/||g"
27 done
28 '';
29
30 buildInputs = [ ];
31
32 propagatedBuildInputs =
33 [ twisted dateutil jinja2 sqlalchemy sqlalchemy_migrate
34 ] ++ stdenv.lib.optional enableDebugClient [ pygobject pyGtkGlade ];
35
36 # What's up with this?! 'trial' should be 'test', no?
37 #
38 # running tests
39 # usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
40 # or: setup.py --help [cmd1 cmd2 ...]
41 # or: setup.py --help-commands
42 # or: setup.py cmd --help
43 #
44 # error: invalid command 'trial'
45 doCheck = false;
46
47 postInstall = ''
48 mkdir -p "$out/share/man/man1"
49 cp docs/buildbot.1 "$out/share/man/man1"
50 '';
51
52 meta = with stdenv.lib; {
53 homepage = http://buildbot.net/;
54
55 license = stdenv.lib.licenses.gpl2Plus;
56
57 # Of course, we don't really need that on NixOS. :-)
58 description = "Continuous integration system that automates the build/test cycle";
59
60 longDescription =
61 '' The BuildBot is a system to automate the compile/test cycle
62 required by most software projects to validate code changes. By
63 automatically rebuilding and testing the tree each time something
64 has changed, build problems are pinpointed quickly, before other
65 developers are inconvenienced by the failure. The guilty
66 developer can be identified and harassed without human
67 intervention. By running the builds on a variety of platforms,
68 developers who do not have the facilities to test their changes
69 everywhere before checkin will at least know shortly afterwards
70 whether they have broken the build or not. Warning counts, lint
71 checks, image size, compile time, and other build parameters can
72 be tracked over time, are more visible, and are therefore easier
73 to improve.
74
75 The overall goal is to reduce tree breakage and provide a platform
76 to run tests or code-quality checks that are too annoying or
77 pedantic for any human to waste their time with. Developers get
78 immediate (and potentially public) feedback about their changes,
79 encouraging them to be more careful about testing before checking
80 in code.
81 '';
82
83 maintainers = with maintainers; [ bjornfor ];
84 platforms = platforms.all;
85 };
86})