aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
diff options
context:
space:
mode:
authorMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
committerMx Kookie <kookie@spacekookie.de>2020-10-31 19:35:09 +0100
commitc4625b175f8200f643fd6e11010932ea44c78433 (patch)
treebce3f89888c8ac3991fa5569a878a9eab6801ccc /infra/libkookie/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
parent49f735974dd103039ddc4cb576bb76555164a9e7 (diff)
parentd661aa56a8843e991261510c1bb28fdc2f6975ae (diff)
Add 'infra/libkookie/' from commit 'd661aa56a8843e991261510c1bb28fdc2f6975ae'
git-subtree-dir: infra/libkookie git-subtree-mainline: 49f735974dd103039ddc4cb576bb76555164a9e7 git-subtree-split: d661aa56a8843e991261510c1bb28fdc2f6975ae
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/python-modules/buildbot/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/python-modules/buildbot/default.nix111
1 files changed, 111 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/python-modules/buildbot/default.nix b/infra/libkookie/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
new file mode 100644
index 000000000000..595f97bcb8fa
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
@@ -0,0 +1,111 @@
+{ stdenv, lib, buildPythonPackage, fetchPypi, fetchpatch, makeWrapper, isPy3k,
+ python, twisted, jinja2, zope_interface, future, sqlalchemy,
+ sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, treq,
+ txrequests, pyjade, boto3, moto, mock, python-lz4, setuptoolsTrial,
+ isort, pylint, flake8, buildbot-worker, buildbot-pkg, buildbot-plugins,
+ parameterized, git, openssh, glibcLocales, nixosTests }:
+
+let
+ withPlugins = plugins: buildPythonPackage {
+ name = "${package.name}-with-plugins";
+ phases = [ "installPhase" "fixupPhase" ];
+ buildInputs = [ makeWrapper ];
+ propagatedBuildInputs = plugins ++ package.propagatedBuildInputs;
+
+ installPhase = ''
+ makeWrapper ${package}/bin/buildbot $out/bin/buildbot \
+ --prefix PYTHONPATH : "${package}/${python.sitePackages}:$PYTHONPATH"
+ ln -sfv ${package}/lib $out/lib
+ '';
+
+ passthru = package.passthru // {
+ withPlugins = morePlugins: withPlugins (morePlugins ++ plugins);
+ };
+ };
+
+ package = buildPythonPackage rec {
+ pname = "buildbot";
+ version = "2.8.4";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0i2sbxhsqyk2yr234il0zsyp1rf2v1l5hmzvw0yrgds6jpr19cqv";
+ };
+
+ propagatedBuildInputs = [
+ # core
+ twisted
+ jinja2
+ zope_interface
+ sqlalchemy
+ sqlalchemy_migrate
+ dateutil
+ txaio
+ autobahn
+ pyjwt
+ pyyaml
+ ]
+ # tls
+ ++ twisted.extras.tls;
+
+ checkInputs = [
+ treq
+ txrequests
+ pyjade
+ boto3
+ moto
+ mock
+ python-lz4
+ setuptoolsTrial
+ isort
+ pylint
+ flake8
+ buildbot-worker
+ buildbot-pkg
+ buildbot-plugins.www
+ parameterized
+ git
+ openssh
+ glibcLocales
+ ];
+
+ patches = [
+ # This patch disables the test that tries to read /etc/os-release which
+ # is not accessible in sandboxed builds.
+ ./skip_test_linux_distro.patch
+
+ # fix compatibility with the latest SQLAlchemy
+ (fetchpatch {
+ url = "https://github.com/buildbot/buildbot/commit/96f3cd1c5f5c82b733baecb133576366ecf544fc.patch";
+ sha256 = "0n1jm13h08j7ksbs8ixayn3wziq5hzyp3kscz9fpgxd8gl885y5n";
+ stripLen = 1;
+ })
+ ];
+
+ postPatch = ''
+ substituteInPlace buildbot/scripts/logwatcher.py --replace '/usr/bin/tail' "$(type -P tail)"
+ '';
+
+ # TimeoutErrors on slow machines -> aarch64
+ doCheck = !stdenv.isAarch64;
+
+ preCheck = ''
+ export LC_ALL="en_US.UTF-8"
+ export PATH="$out/bin:$PATH"
+ '';
+
+ disabled = !isPy3k;
+
+ passthru = {
+ inherit withPlugins;
+ tests.buildbot = nixosTests.buildbot;
+ };
+
+ meta = with lib; {
+ homepage = "https://buildbot.net/";
+ description = "Buildbot is an open-source continuous integration framework for automating software build, test, and release processes";
+ maintainers = with maintainers; [ nand0p ryansydnor lopsided98 ];
+ license = licenses.gpl2;
+ };
+ };
+in package