lol
at v206 86 lines 3.2 kB view raw
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})