From 79693de9a7ad683e71a1760284915024171fbb8f Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Sun, 6 Sep 2020 12:15:20 +0200 Subject: [PATCH 1/3] python3Packages.django-picklefield: fix tests --- .../django-picklefield/default.nix | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/django-picklefield/default.nix b/pkgs/development/python-modules/django-picklefield/default.nix index a9a03e9066c4..4710de2c7ecb 100644 --- a/pkgs/development/python-modules/django-picklefield/default.nix +++ b/pkgs/development/python-modules/django-picklefield/default.nix @@ -1,16 +1,27 @@ -{ lib, buildPythonPackage, fetchPypi, django }: +{ lib, buildPythonPackage, fetchFromGitHub, django, pytest, pytest-django }: buildPythonPackage rec { pname = "django-picklefield"; version = "3.0.1"; - src = fetchPypi { - inherit pname version; - sha256 = "15ccba592ca953b9edf9532e64640329cd47b136b7f8f10f2939caa5f9ce4287"; + # The PyPi source doesn't contain tests + src = fetchFromGitHub { + owner = "gintas"; + repo = pname; + rev = "v${version}"; + sha256 = "0ni7bc86k0ra4pc8zv451pzlpkhs1nyil1sq9jdb4m2mib87b5fk"; }; propagatedBuildInputs = [ django ]; + checkInputs = [ pytest pytest-django ]; + + checkPhase = '' + PYTHONPATH="$(pwd):$PYTHONPATH" \ + DJANGO_SETTINGS_MODULE=tests.settings \ + pytest tests/tests.py + ''; + meta = { description = "A pickled object field for Django"; homepage = "https://github.com/gintas/django-picklefield"; From 72c9c5bea55ab878ecb8b446a924d23b6dbb2969 Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Sun, 6 Sep 2020 12:17:39 +0200 Subject: [PATCH 2/3] python3Packages.django_extensions: 2.2.8 -> 3.0.8 --- pkgs/development/python-modules/django-extensions/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/django-extensions/default.nix b/pkgs/development/python-modules/django-extensions/default.nix index 08b2460b1bbc..ecf400b21d86 100644 --- a/pkgs/development/python-modules/django-extensions/default.nix +++ b/pkgs/development/python-modules/django-extensions/default.nix @@ -18,13 +18,13 @@ buildPythonPackage rec { pname = "django-extensions"; - version = "2.2.8"; + version = "3.0.8"; src = fetchFromGitHub { owner = pname; repo = pname; rev = version; - sha256 = "1gd3nykwzh3azq1p9cvgkc3l5dwrv7y86sfjxd9llbyj8ky71iaj"; + sha256 = "1z2si9wpc8irqhi5i2wp4wr05dqxyw4mn2vj3amp0rvsvydws92c"; }; LC_ALL = "en_US.UTF-8"; From 83bc4e3caa3998f22d79bc784ab04af07b084256 Mon Sep 17 00:00:00 2001 From: Erik Arvstedt Date: Sun, 6 Sep 2020 12:53:49 +0200 Subject: [PATCH 3/3] paperless: fix build Paperless was dependent on older older versions of recently updated Python packages. --- .../applications/office/paperless/default.nix | 26 ++++++++-------- .../paperless/python-modules/default.nix | 30 +++++++++++++++++++ 2 files changed, 43 insertions(+), 13 deletions(-) create mode 100644 pkgs/applications/office/paperless/python-modules/default.nix diff --git a/pkgs/applications/office/paperless/default.nix b/pkgs/applications/office/paperless/default.nix index c549b107c541..ebd057da5ce1 100644 --- a/pkgs/applications/office/paperless/default.nix +++ b/pkgs/applications/office/paperless/default.nix @@ -106,26 +106,26 @@ let }; python = python3.override { - packageOverrides = self: super: { - # Paperless only supports Django 2.0 - django = django_2_0 super; + packageOverrides = self: super: let + customPkgs = import ./python-modules super fetchFromGitHub; in + { pyocr = pyocrWithUserTesseract super; + + # Paperless only supports Django 2.0 + django = customPkgs.django_2_0; + + # Paperless is incompatible with factory_boy >= 3 + factory_boy = customPkgs.factory_boy_2_12_0; + + # The current version of django_extensions is incompatible with django 2.0 + django_extensions = customPkgs.django_extensions_2_2_8; + # These are pre-release versions, hence they are private to this pkg django-filter = self.callPackage ./python-modules/django-filter.nix {}; django-crispy-forms = self.callPackage ./python-modules/django-crispy-forms.nix {}; }; }; - django_2_0 = pyPkgs: pyPkgs.django_2_2.overrideDerivation (_: rec { - pname = "Django"; - version = "2.0.12"; - name = "${pname}-${version}"; - src = pyPkgs.fetchPypi { - inherit pname version; - sha256 = "15s8z54k0gf9brnz06521bikm60ddw5pn6v3nbvnl47j1jjsvwz2"; - }; - }); - runtimePackages = with python.pkgs; [ dateparser dateutil diff --git a/pkgs/applications/office/paperless/python-modules/default.nix b/pkgs/applications/office/paperless/python-modules/default.nix new file mode 100644 index 000000000000..40a496312fa9 --- /dev/null +++ b/pkgs/applications/office/paperless/python-modules/default.nix @@ -0,0 +1,30 @@ +pyPkgs: fetchFromGitHub: +{ + django_2_0 = pyPkgs.django_2_2.overridePythonAttrs (old: rec { + version = "2.0.12"; + src = pyPkgs.fetchPypi { + inherit (old) pname; + inherit version; + sha256 = "15s8z54k0gf9brnz06521bikm60ddw5pn6v3nbvnl47j1jjsvwz2"; + }; + }); + + django_extensions_2_2_8 = pyPkgs.django_extensions.overridePythonAttrs (old: rec { + version = "2.2.8"; + src = fetchFromGitHub { + owner = old.pname; + repo = old.pname; + rev = version; + sha256 = "1gd3nykwzh3azq1p9cvgkc3l5dwrv7y86sfjxd9llbyj8ky71iaj"; + }; + }); + + factory_boy_2_12_0 = pyPkgs.factory_boy.overridePythonAttrs (old: rec { + version = "2.12.0"; + src = pyPkgs.fetchPypi { + inherit (old) pname; + inherit version; + sha256 = "0w53hjgag6ad5i2vmrys8ysk54agsqvgbjy9lg8g0d8pi9h8vx7s"; + }; + }); +}