nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{ stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k
2, python, twisted, jinja2, msgpack, zope_interface, sqlalchemy, alembic
3, python-dateutil, txaio, autobahn, pyjwt, pyyaml, treq, txrequests, pypugjs
4, boto3, moto, mock, lz4, setuptoolsTrial, isort, pylint, flake8
5, buildbot-worker, buildbot-pkg, buildbot-plugins, parameterized, git, openssh
6, glibcLocales
7, nixosTests
8}:
9
10let
11 withPlugins = plugins: buildPythonPackage {
12 pname = "${package.pname}-with-plugins";
13 inherit (package) version;
14
15 dontUnpack = true;
16 dontBuild = true;
17 doCheck = false;
18
19 nativeBuildInputs = [ makeWrapper ];
20 propagatedBuildInputs = plugins ++ package.propagatedBuildInputs;
21
22 installPhase = ''
23 makeWrapper ${package}/bin/buildbot $out/bin/buildbot \
24 --prefix PYTHONPATH : "${package}/${python.sitePackages}:$PYTHONPATH"
25 ln -sfv ${package}/lib $out/lib
26 '';
27
28 passthru = package.passthru // {
29 withPlugins = morePlugins: withPlugins (morePlugins ++ plugins);
30 };
31 };
32
33 package = buildPythonPackage rec {
34 pname = "buildbot";
35 version = "3.5.0";
36
37 src = fetchPypi {
38 inherit pname version;
39 sha256 = "sha256-woGHdCan5qTp00toNkWa821EgVQMrPK+OWXoqFcgIDQ=";
40 };
41
42 propagatedBuildInputs = [
43 # core
44 twisted
45 jinja2
46 msgpack
47 zope_interface
48 sqlalchemy
49 alembic
50 python-dateutil
51 txaio
52 autobahn
53 pyjwt
54 pyyaml
55 ]
56 # tls
57 ++ twisted.optional-dependencies.tls;
58
59 checkInputs = [
60 treq
61 txrequests
62 pypugjs
63 boto3
64 moto
65 mock
66 lz4
67 setuptoolsTrial
68 isort
69 pylint
70 flake8
71 buildbot-worker
72 buildbot-pkg
73 buildbot-plugins.www
74 parameterized
75 git
76 openssh
77 glibcLocales
78 ];
79
80 patches = [
81 # This patch disables the test that tries to read /etc/os-release which
82 # is not accessible in sandboxed builds.
83 ./skip_test_linux_distro.patch
84 ];
85
86 postPatch = ''
87 substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
88 '';
89
90 # TimeoutErrors on slow machines -> aarch64
91 doCheck = !stdenv.isAarch64;
92
93 preCheck = ''
94 export LC_ALL="en_US.UTF-8"
95 export PATH="$out/bin:$PATH"
96
97 # remove testfile which is missing configuration file from sdist
98 rm buildbot/test/integration/test_graphql.py
99 '';
100
101 disabled = !isPy3k;
102
103 passthru = {
104 inherit withPlugins;
105 tests.buildbot = nixosTests.buildbot;
106 updateScript = ./update.sh;
107 };
108
109 meta = with lib; {
110 broken = stdenv.isDarwin;
111 homepage = "https://buildbot.net/";
112 description = "An open-source continuous integration framework for automating software build, test, and release processes";
113 maintainers = with maintainers; [ ryansydnor lopsided98 ];
114 license = licenses.gpl2;
115 };
116 };
117in package