Merge pull request #208723 from gador/paperless-ngx-add-poppler

paperless-ngx: fix build

authored by Luke Granger-Brown and committed by GitHub 5a236902 d77928b9

+17 -10
+11 -10
nixos/modules/services/misc/paperless.nix
··· 212 212 213 213 systemd.services.paperless-scheduler = { 214 214 description = "Paperless Celery Beat"; 215 + wantedBy = [ "multi-user.target" ]; 216 + wants = [ "paperless-consumer.service" "paperless-web.service" "paperless-task-queue.service" ]; 215 217 serviceConfig = defaultServiceConfig // { 216 218 User = cfg.user; 217 219 ExecStart = "${pkg}/bin/celery --app paperless beat --loglevel INFO"; 218 220 Restart = "on-failure"; 219 221 }; 220 222 environment = env; 221 - wantedBy = [ "multi-user.target" ]; 222 - wants = [ "paperless-consumer.service" "paperless-web.service" "paperless-task-queue.service" ]; 223 223 224 224 preStart = '' 225 225 ln -sf ${manage} ${cfg.dataDir}/paperless-manage ··· 248 248 249 249 systemd.services.paperless-task-queue = { 250 250 description = "Paperless Celery Workers"; 251 + after = [ "paperless-scheduler.service" ]; 251 252 serviceConfig = defaultServiceConfig // { 252 253 User = cfg.user; 253 254 ExecStart = "${pkg}/bin/celery --app paperless worker --loglevel INFO"; ··· 275 276 276 277 systemd.services.paperless-consumer = { 277 278 description = "Paperless document consumer"; 279 + # Bind to `paperless-scheduler` so that the consumer never runs 280 + # during migrations 281 + bindsTo = [ "paperless-scheduler.service" ]; 282 + after = [ "paperless-scheduler.service" ]; 278 283 serviceConfig = defaultServiceConfig // { 279 284 User = cfg.user; 280 285 ExecStart = "${pkg}/bin/paperless-ngx document_consumer"; 281 286 Restart = "on-failure"; 282 287 }; 283 288 environment = env; 284 - # Bind to `paperless-scheduler` so that the consumer never runs 285 - # during migrations 286 - bindsTo = [ "paperless-scheduler.service" ]; 287 - after = [ "paperless-scheduler.service" ]; 288 289 }; 289 290 290 291 systemd.services.paperless-web = { 291 292 description = "Paperless web server"; 293 + # Bind to `paperless-scheduler` so that the web server never runs 294 + # during migrations 295 + bindsTo = [ "paperless-scheduler.service" ]; 296 + after = [ "paperless-scheduler.service" ]; 292 297 serviceConfig = defaultServiceConfig // { 293 298 User = cfg.user; 294 299 ExecStart = '' ··· 312 317 # Allow the web interface to access the private /tmp directory of the server. 313 318 # This is required to support uploading files via the web interface. 314 319 unitConfig.JoinsNamespaceOf = "paperless-task-queue.service"; 315 - # Bind to `paperless-scheduler` so that the web server never runs 316 - # during migrations 317 - bindsTo = [ "paperless-scheduler.service" ]; 318 - after = [ "paperless-scheduler.service" ]; 319 320 }; 320 321 321 322 users = optionalAttrs (cfg.user == defaultUser) {
+4
nixos/tests/paperless.nix
··· 26 26 # Wait until server accepts connections 27 27 machine.wait_until_succeeds("curl -fs localhost:28981") 28 28 29 + # Required for consuming documents via the web interface 30 + with subtest("Task-queue gets ready"): 31 + machine.wait_for_unit("paperless-task-queue.service") 32 + 29 33 with subtest("Add a document via the web interface"): 30 34 machine.succeed( 31 35 "convert -size 400x40 xc:white -font 'DejaVu-Sans' -pointsize 20 -fill black "
+2
pkgs/applications/office/paperless-ngx/default.nix
··· 10 10 , qpdf 11 11 , tesseract5 12 12 , unpaper 13 + , poppler_utils 13 14 , liberation_ttf 14 15 , fetchFromGitHub 15 16 }: ··· 75 76 qpdf 76 77 tesseract5 77 78 unpaper 79 + poppler_utils 78 80 ]; 79 81 in 80 82 python.pkgs.pythonPackages.buildPythonApplication rec {