nixpkgs/pkgs/applications/networking/errbot/default.nix

77 lines
2.5 KiB
Nix
Raw Normal View History

2019-08-30 18:04:45 +01:00
{ lib, fetchFromGitHub, python, glibcLocales }:
let
py = python.override {
packageOverrides = self: super: {
# errbot requires markdown<3, and is not compatible with it either.
2019-08-30 18:04:45 +01:00
markdown = super.markdown.overridePythonAttrs (oldAttrs: rec {
version = "2.6.11";
src = super.fetchPypi {
pname = "Markdown";
inherit version;
sha256 = "108g80ryzykh8bj0i7jfp71510wrcixdi771lf2asyghgyf8cmm8";
};
});
# errbot requires slackclient 1.x, see https://github.com/errbotio/errbot/pull/1367
# latest 1.x release would be 1.3.2, but it requires an older websocket_client than the one in nixpkgs
# so let's just vendor the known-working version until they've migrated to 2.x.
slackclient = super.slackclient.overridePythonAttrs (oldAttrs: rec {
version = "1.2.1";
pname = "slackclient";
src = fetchFromGitHub {
owner = "slackapi";
repo = "python-slackclient";
rev = version;
sha256 = "073fwf6fm2sqdp5ms3vm1v3ljh0pldi69k048404rp6iy3cfwkp0";
};
propagatedBuildInputs = with self; [ websocket_client requests six ];
checkInputs = with self; [ pytest codecov coverage mock pytestcov pytest-mock responses flake8 ];
# test_server.py fails because it needs connection (I think);
checkPhase = ''
py.test --cov-report= --cov=slackclient tests --ignore=tests/test_server.py
'';
});
2019-08-30 18:04:45 +01:00
};
};
2016-07-01 15:04:01 +01:00
2019-08-30 18:04:45 +01:00
in
py.pkgs.buildPythonApplication rec {
pname = "errbot";
2019-08-30 18:04:45 +01:00
version = "6.1.1";
2016-07-01 15:04:01 +01:00
2019-08-30 18:04:45 +01:00
src = fetchFromGitHub {
owner = "errbotio";
repo = "errbot";
rev = version;
sha256 = "1s4dl1za5imwsv6j3y7m47dy91hmqd5n221kkqm9ni4mpzgpffz0";
2016-07-01 15:04:01 +01:00
};
2017-08-28 00:56:16 +01:00
LC_ALL = "en_US.utf8";
buildInputs = [ glibcLocales ];
2019-08-30 18:04:45 +01:00
propagatedBuildInputs = with py.pkgs; [
webtest requests jinja2 flask dulwich
pyopenssl colorlog markdown ansi pygments
2016-07-01 15:04:01 +01:00
daemonize pygments-markdown-lexer telegram irc slackclient
2019-08-30 18:04:45 +01:00
sleekxmpp pyasn1 pyasn1-modules hypchat
2016-07-01 15:04:01 +01:00
];
2019-08-30 18:04:45 +01:00
checkInputs = with py.pkgs; [ mock pytest ];
# avoid tests that do network calls
checkPhase = ''
pytest tests -k 'not backup and not broken_plugin and not plugin_cycle'
'';
meta = with lib; {
2016-07-01 15:04:01 +01:00
description = "Chatbot designed to be simple to extend with plugins written in Python";
homepage = "http://errbot.io/";
2016-09-28 18:26:47 +01:00
maintainers = with maintainers; [ fpletz globin ];
2016-07-01 15:04:01 +01:00
license = licenses.gpl3;
platforms = platforms.linux;
# flaky on darwin, "RuntimeError: can't start new thread"
2016-07-01 15:04:01 +01:00
};
}