diff --git a/pkgs/development/python-modules/cssmin/default.nix b/pkgs/development/python-modules/cssmin/default.nix new file mode 100644 index 000000000000..7cb01001fac2 --- /dev/null +++ b/pkgs/development/python-modules/cssmin/default.nix @@ -0,0 +1,20 @@ +{ stdenv, buildPythonPackage, fetchPypi }: + +buildPythonPackage rec { + pname = "cssmin"; + version = "0.2.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "1dk723nfm2yf8cp4pj785giqlwv42l0kj8rk40kczvq1hk6g04p0"; + }; + + # no tests + doCheck = false; + + meta = with stdenv.lib; { + description = "A Python port of the YUI CSS compression algorithm"; + homepage = http://github.com/zacharyvoase/cssmin; + license = licenses.bsd3; + }; +} diff --git a/pkgs/development/python-modules/django-paintstore/default.nix b/pkgs/development/python-modules/django-paintstore/default.nix new file mode 100644 index 000000000000..096215a70abf --- /dev/null +++ b/pkgs/development/python-modules/django-paintstore/default.nix @@ -0,0 +1,20 @@ +{ stdenv, buildPythonPackage, fetchPypi, requests, requests_oauthlib +, django, python3-openid }: + +buildPythonPackage rec { + pname = "django-paintstore"; + version = "0.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "12wxgwv1qbkfq7w5i7bm7aidv655c2sxp0ym73qf8606dxbjcwwg"; + }; + + doCheck = false; + + meta = with stdenv.lib; { + description = "Django app that integrates jQuery ColorPicker with the Django admin"; + homepage = https://github.com/gsiegman/django-paintstore; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/django-q/default.nix b/pkgs/development/python-modules/django-q/default.nix new file mode 100644 index 000000000000..f671674ffe2e --- /dev/null +++ b/pkgs/development/python-modules/django-q/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildPythonPackage, fetchPypi, django-picklefield, arrow +, blessed, django, future }: + +buildPythonPackage rec { + pname = "django-q"; + version = "1.0.1"; + + src = fetchPypi { + inherit pname version; + sha256 = "17mqxiacsp2yszak6j48fm7vx0w44pcg86flc63r9y5yhx490n5r"; + }; + + propagatedBuildInputs = [ + django-picklefield arrow blessed django future + ]; + + doCheck = false; + + meta = with stdenv.lib; { + description = "A multiprocessing distributed task queue for Django"; + homepage = https://django-q.readthedocs.org; + license = licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/robot-detection/default.nix b/pkgs/development/python-modules/robot-detection/default.nix new file mode 100644 index 000000000000..81428b44ad98 --- /dev/null +++ b/pkgs/development/python-modules/robot-detection/default.nix @@ -0,0 +1,22 @@ +{ stdenv, buildPythonPackage, fetchPypi, six }: + +buildPythonPackage rec { + pname = "robot-detection"; + version = "0.4"; + + src = fetchPypi { + inherit pname version; + sha256 = "1xd2jm3yn31bnk1kqzggils2rxj26ylxsfz3ap7bhr3ilhnbg3rx"; + }; + + propagatedBuildInputs = [ six ]; + + # no tests in archive + doCheck = false; + + meta = with stdenv.lib; { + description = "Library for detecting if a HTTP User Agent header is likely to be a bot"; + homepage = https://github.com/rory/robot-detection; + license = licenses.gpl3Plus; + }; +} diff --git a/pkgs/servers/mail/mailman/hyperkitty.nix b/pkgs/servers/mail/mailman/hyperkitty.nix new file mode 100644 index 000000000000..8f060da34461 --- /dev/null +++ b/pkgs/servers/mail/mailman/hyperkitty.nix @@ -0,0 +1,38 @@ +{ stdenv, buildPythonPackage, fetchPypi, coverage, mock +, robot-detection, django_extensions, rjsmin, cssmin, django-mailman3 +, django-haystack, lockfile, networkx, dateutil, defusedxml +, django-paintstore, djangorestframework, django, django-q +, django_compressor, beautifulsoup4, six, psycopg2, whoosh +}: + +buildPythonPackage rec { + pname = "HyperKitty"; + version = "1.2.2"; + + src = fetchPypi { + inherit pname version; + sha256 = "1z2zswlml6nppxhzw9a4nrj7i5wsxd29s3q78ka1rwr5m5n7s1rz"; + }; + + buildInputs = [ coverage mock ]; + propagatedBuildInputs = [ + robot-detection django_extensions rjsmin cssmin django-mailman3 + django-haystack lockfile networkx dateutil defusedxml + django-paintstore djangorestframework django django-q + django_compressor beautifulsoup4 six psycopg2 whoosh + ]; + + checkPhase = '' + cd $NIX_BUILD_TOP/$sourceRoot + PYTHONPATH=.:$PYTHONPATH python example_project/manage.py test \ + --settings=hyperkitty.tests.settings_test hyperkitty + ''; + + meta = { + homepage = "http://www.gnu.org/software/mailman/"; + description = "Archiver for GNU Mailman v3"; + license = stdenv.lib.licenses.gpl3; + platforms = stdenv.lib.platforms.linux; + maintainers = with stdenv.lib.maintainers; [ peti globin ]; + }; +} diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index e8dca7c924b7..bdaae932f68f 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -2720,6 +2720,16 @@ in { sunpy = callPackage ../development/python-modules/sunpy { }; + hyperkitty = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/hyperkitty.nix { }); + + robot-detection = callPackage ../development/python-modules/robot-detection {}; + + cssmin = callPackage ../development/python-modules/cssmin {}; + + django-paintstore = callPackage ../development/python-modules/django-paintstore {}; + + django-q = callPackage ../development/python-modules/django-q {}; + hyperlink = callPackage ../development/python-modules/hyperlink {}; zope_copy = callPackage ../development/python-modules/zope_copy {};