From 6e1421013a299668fd610dd70b3ebd9105891b90 Mon Sep 17 00:00:00 2001 From: Andreas Rammhold Date: Thu, 3 Jun 2021 15:59:17 +0200 Subject: [PATCH] paperless: remove package & module as it has been superseded by paperless-ng The paperless project has moved on to paperless-ng and the original paperless package in Nixpkgs has stopped working recently (due to version incompatibility with the providede Django package). Instead of investing more time into the old module we should migrate all users to the new module instead. --- .../from_md/release-notes/rl-2111.section.xml | 84 ++++++++ .../manual/release-notes/rl-2111.section.md | 47 +++++ nixos/modules/module-list.nix | 1 - nixos/modules/services/misc/paperless-ng.nix | 16 +- nixos/modules/services/misc/paperless.nix | 183 ------------------ nixos/tests/all-tests.nix | 1 - nixos/tests/paperless.nix | 36 ---- .../applications/office/paperless/default.nix | 168 ---------------- .../paperless/python-modules/default.nix | 11 -- .../python-modules/django-crispy-forms.nix | 39 ---- .../python-modules/django-filter.nix | 26 --- .../office/paperless/withConfig.nix | 68 ------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 14 files changed, 140 insertions(+), 543 deletions(-) delete mode 100644 nixos/modules/services/misc/paperless.nix delete mode 100644 nixos/tests/paperless.nix delete mode 100644 pkgs/applications/office/paperless/default.nix delete mode 100644 pkgs/applications/office/paperless/python-modules/default.nix delete mode 100644 pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix delete mode 100644 pkgs/applications/office/paperless/python-modules/django-filter.nix delete mode 100644 pkgs/applications/office/paperless/withConfig.nix diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml index 8504593e768..5da5bb6e603 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml @@ -176,6 +176,90 @@
Backward Incompatibilities + + + The paperless module and package have been + removed. All users should migrate to the successor + paperless-ng instead. The Paperless project + has + been archived and advises all users to use + paperless-ng instead. + + + Users can use the services.paperless-ng + module as a replacement while noting the following + incompatibilities: + + + + + services.paperless.ocrLanguages has no + replacement. Users should migrate to + services.paperless-ng.extraConfig + instead: + + + + +{ + services.paperless-ng.extraConfig = { + # Provide languages as ISO 639-2 codes + # separated by a plus (+) sign. + # https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes + PAPERLESS_OCR_LANGUAGE = "deu+eng+jpn"; # German & English & Japanse + }; +} + + + + + If you previously specified + PAPERLESS_CONSUME_MAIL_* settings in + services.paperless.extraConfig you + should remove those options now. You now + must define those settings in the + admin interface of paperless-ng. + + + + + Option services.paperless.manage no + longer exists. Use the script at + ${services.paperless-ng.dataDir}/paperless-ng-manage + instead. Note that this script only exists after the + paperless-ng service has been started + at least once. + + + + + After switching to the new system configuration you should + run the Django management command to reindex your + documents and optionally create a user, if you don’t have + one already. + + + To do so, enter the data directory (the value of + services.paperless-ng.dataDir, + /var/lib/paperless by default), switch + to the paperless user and execute the management command + like below: + + +$ cd /var/lib/paperless +$ su paperless -s /bin/sh +$ ./paperless-ng-manage document_index reindex +# if not already done create a user account, paperless-ng requires a login +$ ./paperless-ng-manage createsuperuser +Username (leave blank to use 'paperless'): my-user-name +Email address: me@example.com +Password: ********** +Password (again): ********** +Superuser created successfully. + + + + The staticjinja package has been upgraded diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md index 024ed9c7399..19ba8739675 100644 --- a/nixos/doc/manual/release-notes/rl-2111.section.md +++ b/nixos/doc/manual/release-notes/rl-2111.section.md @@ -55,6 +55,53 @@ pt-services.clipcat.enable). ## Backward Incompatibilities {#sec-release-21.11-incompatibilities} +- The `paperless` module and package have been removed. All users should migrate to the + successor `paperless-ng` instead. The Paperless project [has been + archived](https://github.com/the-paperless-project/paperless/commit/9b0063c9731f7c5f65b1852cb8caff97f5e40ba4) + and advises all users to use `paperless-ng` instead. + + Users can use the `services.paperless-ng` module as a replacement while noting the following incompatibilities: + - `services.paperless.ocrLanguages` has no replacement. Users should migrate to [`services.paperless-ng.extraConfig`](options.html#opt-services.paperless-ng.extraConfig) instead: + ```nix + { + services.paperless-ng.extraConfig = { + # Provide languages as ISO 639-2 codes + # separated by a plus (+) sign. + # https://en.wikipedia.org/wiki/List_of_ISO_639-2_codes + PAPERLESS_OCR_LANGUAGE = "deu+eng+jpn"; # German & English & Japanse + }; + } + ``` + + - If you previously specified `PAPERLESS_CONSUME_MAIL_*` settings in + `services.paperless.extraConfig` you should remove those options now. You + now *must* define those settings in the admin interface of paperless-ng. + + - Option `services.paperless.manage` no longer exists. + Use the script at `${services.paperless-ng.dataDir}/paperless-ng-manage` instead. + Note that this script only exists after the `paperless-ng` service has been + started at least once. + + - After switching to the new system configuration you should run the Django + management command to reindex your documents and optionally create a user, + if you don't have one already. + + To do so, enter the data directory (the value of + `services.paperless-ng.dataDir`, `/var/lib/paperless` by default), switch + to the paperless user and execute the management command like below: + ``` + $ cd /var/lib/paperless + $ su paperless -s /bin/sh + $ ./paperless-ng-manage document_index reindex + # if not already done create a user account, paperless-ng requires a login + $ ./paperless-ng-manage createsuperuser + Username (leave blank to use 'paperless'): my-user-name + Email address: me@example.com + Password: ********** + Password (again): ********** + Superuser created successfully. + ``` + - The `staticjinja` package has been upgraded from 1.0.4 to 3.0.1 - The `erigon` ethereum node has moved to a new database format in `2021-05-04`, and requires a full resync diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 97d76e4984e..f4bd2d157a4 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -550,7 +550,6 @@ ./services/misc/ombi.nix ./services/misc/osrm.nix ./services/misc/packagekit.nix - ./services/misc/paperless.nix ./services/misc/paperless-ng.nix ./services/misc/parsoid.nix ./services/misc/plex.nix diff --git a/nixos/modules/services/misc/paperless-ng.nix b/nixos/modules/services/misc/paperless-ng.nix index 12d9a45d3a1..9eaf8fa8859 100644 --- a/nixos/modules/services/misc/paperless-ng.nix +++ b/nixos/modules/services/misc/paperless-ng.nix @@ -73,6 +73,14 @@ in { meta.maintainers = with maintainers; [ earvstedt Flakebi ]; + imports = [ + (mkRemovedOptionModule [ "services" "paperless"] '' + The paperless module has been removed as the upstream project died. + Users should migrate to the paperless-ng module (services.paperless-ng). + More information can be found in the NixOS 21.11 release notes. + '') + ]; + options.services.paperless-ng = { enable = mkOption { type = lib.types.bool; @@ -180,14 +188,6 @@ in }; config = mkIf cfg.enable { - assertions = [ - { - assertion = config.services.paperless.enable -> - (config.services.paperless.dataDir != cfg.dataDir && config.services.paperless.port != cfg.port); - message = "Paperless-ng replaces Paperless, either disable Paperless or assign a new dataDir and port to one of them"; - } - ]; - # Enable redis if no special url is set services.redis.enable = mkIf (!hasAttr "PAPERLESS_REDIS" env) true; diff --git a/nixos/modules/services/misc/paperless.nix b/nixos/modules/services/misc/paperless.nix deleted file mode 100644 index 43730b80eb2..00000000000 --- a/nixos/modules/services/misc/paperless.nix +++ /dev/null @@ -1,183 +0,0 @@ -{ config, pkgs, lib, ... }: - -with lib; -let - cfg = config.services.paperless; - - defaultUser = "paperless"; - - manage = cfg.package.withConfig { - config = { - PAPERLESS_CONSUMPTION_DIR = cfg.consumptionDir; - PAPERLESS_INLINE_DOC = "true"; - PAPERLESS_DISABLE_LOGIN = "true"; - } // cfg.extraConfig; - inherit (cfg) dataDir ocrLanguages; - paperlessPkg = cfg.package; - }; -in -{ - options.services.paperless = { - enable = mkOption { - type = lib.types.bool; - default = false; - description = '' - Enable Paperless. - - When started, the Paperless database is automatically created if it doesn't - exist and updated if the Paperless package has changed. - Both tasks are achieved by running a Django migration. - ''; - }; - - dataDir = mkOption { - type = types.str; - default = "/var/lib/paperless"; - description = "Directory to store the Paperless data."; - }; - - consumptionDir = mkOption { - type = types.str; - default = "${cfg.dataDir}/consume"; - defaultText = "\${dataDir}/consume"; - description = "Directory from which new documents are imported."; - }; - - consumptionDirIsPublic = mkOption { - type = types.bool; - default = false; - description = "Whether all users can write to the consumption dir."; - }; - - ocrLanguages = mkOption { - type = with types; nullOr (listOf str); - default = null; - description = '' - Languages available for OCR via Tesseract, specified as - ISO 639-2/T language codes. - If unset, defaults to all available languages. - ''; - example = [ "eng" "spa" "jpn" ]; - }; - - address = mkOption { - type = types.str; - default = "localhost"; - description = "Server listening address."; - }; - - port = mkOption { - type = types.port; - default = 28981; - description = "Server port to listen on."; - }; - - extraConfig = mkOption { - type = types.attrs; - default = {}; - description = '' - Extra paperless config options. - - The config values are evaluated as double-quoted Bash string literals. - - See paperless-src/paperless.conf.example for available options. - - To enable user authentication, set PAPERLESS_DISABLE_LOGIN = "false" - and run the shell command $dataDir/paperless-manage createsuperuser. - - To define secret options without storing them in /nix/store, use the following pattern: - PAPERLESS_PASSPHRASE = "$(< /etc/my_passphrase_file)" - ''; - example = literalExample '' - { - PAPERLESS_OCR_LANGUAGE = "deu"; - } - ''; - }; - - user = mkOption { - type = types.str; - default = defaultUser; - description = "User under which Paperless runs."; - }; - - package = mkOption { - type = types.package; - default = pkgs.paperless; - defaultText = "pkgs.paperless"; - description = "The Paperless package to use."; - }; - - manage = mkOption { - type = types.package; - readOnly = true; - default = manage; - description = '' - A script to manage the Paperless instance. - It wraps Django's manage.py and is also available at - $dataDir/manage-paperless - ''; - }; - }; - - config = mkIf cfg.enable { - - systemd.tmpfiles.rules = [ - "d '${cfg.dataDir}' - ${cfg.user} ${config.users.users.${cfg.user}.group} - -" - ] ++ (optional cfg.consumptionDirIsPublic - "d '${cfg.consumptionDir}' 777 - - - -" - # If the consumption dir is not created here, it's automatically created by - # 'manage' with the default permissions. - ); - - systemd.services.paperless-consumer = { - description = "Paperless document consumer"; - serviceConfig = { - User = cfg.user; - ExecStart = "${manage} document_consumer"; - Restart = "always"; - }; - after = [ "systemd-tmpfiles-setup.service" ]; - wantedBy = [ "multi-user.target" ]; - preStart = '' - if [[ $(readlink ${cfg.dataDir}/paperless-manage) != ${manage} ]]; then - ln -sf ${manage} ${cfg.dataDir}/paperless-manage - fi - - ${manage.setupEnv} - # Auto-migrate on first run or if the package has changed - versionFile="$PAPERLESS_DBDIR/src-version" - if [[ $(cat "$versionFile" 2>/dev/null) != ${cfg.package} ]]; then - python $paperlessSrc/manage.py migrate - echo ${cfg.package} > "$versionFile" - fi - ''; - }; - - systemd.services.paperless-server = { - description = "Paperless document server"; - serviceConfig = { - User = cfg.user; - ExecStart = "${manage} runserver --noreload ${cfg.address}:${toString cfg.port}"; - Restart = "always"; - }; - # Bind to `paperless-consumer` so that the server never runs - # during migrations - bindsTo = [ "paperless-consumer.service" ]; - after = [ "paperless-consumer.service" ]; - wantedBy = [ "multi-user.target" ]; - }; - - users = optionalAttrs (cfg.user == defaultUser) { - users.${defaultUser} = { - group = defaultUser; - uid = config.ids.uids.paperless; - home = cfg.dataDir; - }; - - groups.${defaultUser} = { - gid = config.ids.gids.paperless; - }; - }; - }; -} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index b41fc7a498d..33bb1306eb5 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -334,7 +334,6 @@ in pam-oath-login = handleTest ./pam-oath-login.nix {}; pam-u2f = handleTest ./pam-u2f.nix {}; pantheon = handleTest ./pantheon.nix {}; - paperless = handleTest ./paperless.nix {}; paperless-ng = handleTest ./paperless-ng.nix {}; pdns-recursor = handleTest ./pdns-recursor.nix {}; peerflix = handleTest ./peerflix.nix {}; diff --git a/nixos/tests/paperless.nix b/nixos/tests/paperless.nix deleted file mode 100644 index fb83e6f976d..00000000000 --- a/nixos/tests/paperless.nix +++ /dev/null @@ -1,36 +0,0 @@ -import ./make-test-python.nix ({ lib, ... } : { - name = "paperless"; - meta = with lib.maintainers; { - maintainers = [ earvstedt ]; - }; - - machine = { pkgs, ... }: { - environment.systemPackages = with pkgs; [ imagemagick jq ]; - services.paperless = { - enable = true; - ocrLanguages = [ "eng" ]; - }; - }; - - testScript = '' - machine.wait_for_unit("paperless-consumer.service") - - # Create test doc - machine.succeed( - "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black -annotate +5+20 'hello world 16-10-2005' /var/lib/paperless/consume/doc.png" - ) - - with subtest("Service gets ready"): - machine.wait_for_unit("paperless-server.service") - # Wait until server accepts connections - machine.wait_until_succeeds("curl -fs localhost:28981") - - with subtest("Test document is consumed"): - machine.wait_until_succeeds( - "(($(curl -fs localhost:28981/api/documents/ | jq .count) == 1))" - ) - assert "2005-10-16" in machine.succeed( - "curl -fs localhost:28981/api/documents/ | jq '.results | .[0] | .created'" - ) - ''; -}) diff --git a/pkgs/applications/office/paperless/default.nix b/pkgs/applications/office/paperless/default.nix deleted file mode 100644 index 74bdacd9584..00000000000 --- a/pkgs/applications/office/paperless/default.nix +++ /dev/null @@ -1,168 +0,0 @@ -{ stdenv -, lib -, fetchFromGitHub -, makeWrapper -, callPackage - -, python3 -, imagemagick -, ghostscript -, optipng -, tesseract -, unpaper -}: - -## Usage - -# ${paperless}/bin/paperless wraps manage.py - -# ${paperless}/share/paperless/setup-env.sh can be sourced from a -# shell script to setup a Paperless environment - -# paperless.withConfig is a convenience function to setup a -# configured Paperless instance. (See ./withConfig.nix) - -# For WSGI with gunicorn, use a shell script like this: -# let -# pythonEnv = paperless.python.withPackages (ps: paperless.runtimePackages ++ [ ps.gunicorn ]); -# in -# writers.writeBash "run-gunicorn" '' -# source ${paperless}/share/paperless/setup-env.sh -# PYTHONPATH=$paperlessSrc ${pythonEnv}/bin/gunicorn paperless.wsgi -# '' - -let - paperless = stdenv.mkDerivation rec { - pname = "paperless"; - version = "2.7.0"; - - src = fetchFromGitHub { - owner = "the-paperless-project"; - repo = "paperless"; - rev = version; - sha256 = "0pkmyky1crjnsg7r0gfk0fadisfsgzlsq6afpz16wx4hp6yvkkf7"; - }; - - nativeBuildInputs = [ makeWrapper ]; - - doCheck = true; - dontInstall = true; - - pythonEnv = python.withPackages (_: runtimePackages); - pythonCheckEnv = python.withPackages (_: (runtimePackages ++ checkPackages)); - - unpackPhase = '' - srcDir=$out/share/paperless - mkdir -p $srcDir - cp -r --no-preserve=mode $src/src/* $src/LICENSE $srcDir - ''; - - postPatch = '' - # django-cors-headers 3.x requires a scheme for allowed hosts - substituteInPlace $out/share/paperless/paperless/settings.py \ - --replace "localhost:8080" "http://localhost:8080" - ''; - - buildPhase = let - # Paperless has explicit runtime checks that expect these binaries to be in PATH - extraBin = lib.makeBinPath [ imagemagick ghostscript optipng tesseract unpaper ]; - in '' - ${python.interpreter} -m compileall $srcDir - - makeWrapper $pythonEnv/bin/python $out/bin/paperless \ - --set PATH ${extraBin} --add-flags $out/share/paperless/manage.py - - # A shell snippet that can be sourced to setup a paperless env - cat > $out/share/paperless/setup-env.sh <= 3 - factory_boy = customPkgs.factory_boy_2_12_0; - - # 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 {}; - }; - }; - - runtimePackages = with python.pkgs; [ - dateparser - python-dateutil - django - django-cors-headers - django-crispy-forms - django-filter - django_extensions - djangoql - djangorestframework - factory_boy - filemagic - fuzzywuzzy - langdetect - pdftotext - pillow - psycopg2 - pyocr - python-dotenv - python-gnupg - pytz - termcolor - ] ++ (lib.optional stdenv.isLinux inotify-simple); - - checkPackages = with python.pkgs; [ - pytest - pytest-django - pytest-env - pytest-xdist - ]; - - pyocrWithUserTesseract = pyPkgs: - let - pyocr = pyPkgs.pyocr.override { inherit tesseract; }; - in - if pyocr.outPath == pyPkgs.pyocr.outPath then - pyocr - else - # The user has provided a custom tesseract derivation that might be - # missing some languages that are required for PyOCR's tests. Disable them to - # avoid build errors. - pyocr.overridePythonAttrs (attrs: { - doCheck = false; - }); -in - paperless diff --git a/pkgs/applications/office/paperless/python-modules/default.nix b/pkgs/applications/office/paperless/python-modules/default.nix deleted file mode 100644 index e1fb227614f..00000000000 --- a/pkgs/applications/office/paperless/python-modules/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -pyPkgs: fetchFromGitHub: -{ - 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"; - }; - }); -} diff --git a/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix b/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix deleted file mode 100644 index f8b91a94ccc..00000000000 --- a/pkgs/applications/office/paperless/python-modules/django-crispy-forms.nix +++ /dev/null @@ -1,39 +0,0 @@ -{ lib -, buildPythonPackage -, fetchFromGitHub -, pytestCheckHook -, pytest-django -, django -}: - -buildPythonPackage rec { - pname = "django-crispy-forms"; - version = "1.10.0"; - - src = fetchFromGitHub { - owner = "django-crispy-forms"; - repo = "django-crispy-forms"; - rev = version; - sha256 = "0y6kskfxgckb9npcgwx4zrs5n9px159zh9zhinhxi3i7wlriqpf5"; - }; - - # For reasons unknown, the source dir must contain a dash - # for the tests to run successfully - postUnpack = '' - mv $sourceRoot source- - export sourceRoot=source- - ''; - - checkInputs = [ django pytest-django pytestCheckHook ]; - - preCheck = '' - export DJANGO_SETTINGS_MODULE=crispy_forms.tests.test_settings - ''; - - meta = with lib; { - description = "The best way to have DRY Django forms"; - homepage = "https://github.com/maraujop/django-crispy-forms"; - license = licenses.mit; - maintainers = with maintainers; [ earvstedt ]; - }; -} diff --git a/pkgs/applications/office/paperless/python-modules/django-filter.nix b/pkgs/applications/office/paperless/python-modules/django-filter.nix deleted file mode 100644 index d7f20bd9d37..00000000000 --- a/pkgs/applications/office/paperless/python-modules/django-filter.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ lib, buildPythonPackage, python, pythonOlder, fetchFromGitHub -, django, django-crispy-forms, djangorestframework, mock, pytz }: - -buildPythonPackage rec { - pname = "django-filter"; - version = "2.1.0-pre"; - disabled = pythonOlder "3.4"; - - src = fetchFromGitHub { - owner = "carltongibson"; - repo = pname; - rev = "24adad8c48bc9e7c7539b6510ffde4ce4effdc29"; - sha256 = "0hv4w95jnlzp9vdximl6bb27fyi75001jhvsbs0ikkd8amq8iaj7"; - }; - - checkInputs = [ django django-crispy-forms djangorestframework mock pytz ]; - - checkPhase = "${python.interpreter} runtests.py"; - - meta = with lib; { - description = "A reusable Django application for allowing users to filter querysets dynamically."; - homepage = "https://github.com/carltongibson/django-filter"; - license = licenses.bsd3; - maintainers = with maintainers; [ earvstedt ]; - }; -} diff --git a/pkgs/applications/office/paperless/withConfig.nix b/pkgs/applications/office/paperless/withConfig.nix deleted file mode 100644 index 652d1478c0c..00000000000 --- a/pkgs/applications/office/paperless/withConfig.nix +++ /dev/null @@ -1,68 +0,0 @@ -{ paperless, lib, writers }: - -## Usage -# -# nix-build --out-link ./paperless -E ' -# (import {}).paperless.withConfig { -# dataDir = /tmp/paperless-data; -# config = { -# PAPERLESS_DISABLE_LOGIN = "true"; -# }; -# }' -# -# Setup DB -# ./paperless migrate -# -# Consume documents in ${dataDir}/consume -# ./paperless document_consumer --oneshot -# -# Start web interface -# ./paperless runserver --noreload localhost:8000 - -{ config ? {}, dataDir ? null, ocrLanguages ? null -, paperlessPkg ? paperless, extraCmds ? "" }: -with lib; -let - paperless = if ocrLanguages == null then - paperlessPkg - else - (paperlessPkg.override { - tesseract = paperlessPkg.tesseract.override { - enableLanguages = ocrLanguages; - }; - }).overrideDerivation (_: { - # `ocrLanguages` might be missing some languages required by the tests. - doCheck = false; - }); - - envVars = (optionalAttrs (dataDir != null) { - PAPERLESS_CONSUMPTION_DIR = "${dataDir}/consume"; - PAPERLESS_MEDIADIR = "${dataDir}/media"; - PAPERLESS_STATICDIR = "${dataDir}/static"; - PAPERLESS_DBDIR = dataDir; - }) // config; - - envVarDefs = mapAttrsToList (n: v: ''export ${n}="${toString v}"'') envVars; - setupEnvVars = builtins.concatStringsSep "\n" envVarDefs; - - setupEnv = '' - source ${paperless}/share/paperless/setup-env.sh - ${setupEnvVars} - ${optionalString (dataDir != null) '' - mkdir -p "$PAPERLESS_CONSUMPTION_DIR" \ - "$PAPERLESS_MEDIADIR" \ - "$PAPERLESS_STATICDIR" \ - "$PAPERLESS_DBDIR" - ''} - ''; - - runPaperless = writers.writeBash "paperless" '' - set -e - ${setupEnv} - ${extraCmds} - exec python $paperlessSrc/manage.py "$@" - ''; -in - runPaperless // { - inherit paperless setupEnv; - } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 5a16b3c9e55..09e7b284f9b 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -553,6 +553,7 @@ mapAliases ({ owncloudclient = owncloud-client; # added 2016-08 ocz-ssd-guru = throw "ocz-ssd-guru has been removed due to there being no source available"; # added 2021-07-12 p11_kit = p11-kit; # added 2018-02-25 + paperless = paperless-ng; # added 2021-06-06 parity = openethereum; # added 2020-08-01 parquet-cpp = arrow-cpp; # added 2018-09-08 pass-otp = pass.withExtensions (ext: [ext.pass-otp]); # added 2018-05-04 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index af68bc489dc..fa4cc9c862d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7889,8 +7889,6 @@ with pkgs; pamtester = callPackage ../tools/security/pamtester { }; - paperless = callPackage ../applications/office/paperless { }; - paperless-ng = callPackage ../applications/office/paperless-ng { }; paperwork = callPackage ../applications/office/paperwork/paperwork-gtk.nix { };