paperless-ngx/ansible

Install of latest version fails in Ubuntu 22.04 (latest LTS)

GamerBene19 opened this issue · 3 comments

When I try to install the latest version of paperless (1.17). The install fails with

Error log
stdout:
Looking in indexes: https://pypi.python.org/simple, https://www.piwheels.org/simple
Ignoring backports.zoneinfo: markers 'python_version < \"3.9\"' don't match your environment
Ignoring importlib-resources: markers 'python_version < \"3.9\"' don't match your environment
Ignoring typing-extensions: markers 'python_version < \"3.10\"' don't match your environment
Ignoring zipp: markers 'python_version < \"3.10\"' don't match your environment
Collecting amqp==5.1.1 (from -r /opt/paperless-ngx/requirements.txt (line 3))
  Downloading https://www.piwheels.org/simple/amqp/amqp-5.1.1-py3-none-any.whl (50 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 50.8/50.8 kB 596.0 kB/s eta 0:00:00
Collecting anyio==3.7.1 (from -r /opt/paperless-ngx/requirements.txt (line 4))
  Downloading https://www.piwheels.org/simple/anyio/anyio-3.7.1-py3-none-any.whl (80 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.9/80.9 kB 847.8 kB/s eta 0:00:00
Collecting asgiref==3.7.2 (from -r /opt/paperless-ngx/requirements.txt (line 5))
  Downloading https://www.piwheels.org/simple/asgiref/asgiref-3.7.2-py3-none-any.whl (24 kB)
Collecting async-timeout==4.0.2 (from -r /opt/paperless-ngx/requirements.txt (line 6))
  Downloading https://www.piwheels.org/simple/async-timeout/async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Collecting billiard==4.1.0 (from -r /opt/paperless-ngx/requirements.txt (line 8))
  Downloading https://www.piwheels.org/simple/billiard/billiard-4.1.0-py3-none-any.whl (86 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 86.7/86.7 kB 913.5 kB/s eta 0:00:00
Collecting bleach==6.0.0 (from -r /opt/paperless-ngx/requirements.txt (line 9))
  Downloading https://www.piwheels.org/simple/bleach/bleach-6.0.0-py3-none-any.whl (162 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 162.5/162.5 kB 1.7 MB/s eta 0:00:00
Collecting brotli==1.0.9 (from -r /opt/paperless-ngx/requirements.txt (line 10))
  Downloading Brotli-1.0.9-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (2.7 MB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.7/2.7 MB 7.6 MB/s eta 0:00:00
Collecting celery[redis]==5.3.1 (from -r /opt/paperless-ngx/requirements.txt (line 11))
  Downloading https://www.piwheels.org/simple/celery/celery-5.3.1-py3-none-any.whl (418 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 418.0/418.0 kB 4.3 MB/s eta 0:00:00
Collecting certifi==2023.7.22 (from -r /opt/paperless-ngx/requirements.txt (line 12))
  Downloading https://www.piwheels.org/simple/certifi/certifi-2023.7.22-py3-none-any.whl (158 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 158.3/158.3 kB 925.9 kB/s eta 0:00:00
Collecting cffi==1.15.1 (from -r /opt/paperless-ngx/requirements.txt (line 13))
  Downloading cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (441 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 441.8/441.8 kB 5.9 MB/s eta 0:00:00
Collecting channels==4.0.0 (from -r /opt/paperless-ngx/requirements.txt (line 14))
  Downloading https://www.piwheels.org/simple/channels/channels-4.0.0-py3-none-any.whl (28 kB)
Collecting channels-redis==4.1.0 (from -r /opt/paperless-ngx/requirements.txt (line 15))
  Downloading https://www.piwheels.org/simple/channels-redis/channels_redis-4.1.0-py3-none-any.whl (18 kB)
Collecting charset-normalizer==3.2.0 (from -r /opt/paperless-ngx/requirements.txt (line 16))
  Obtaining dependency information for charset-normalizer==3.2.0 from https://files.pythonhosted.org/packages/a4/65/057bf29660aae6ade0816457f8db4e749e5c0bfa2366eb5f67db9912fa4c/charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Downloading charset_normalizer-3.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (31 kB)
Collecting click==8.1.6 (from -r /opt/paperless-ngx/requirements.txt (line 17))
  Downloading https://www.piwheels.org/simple/click/click-8.1.6-py3-none-any.whl (97 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 kB 505.6 kB/s eta 0:00:00
Collecting click-didyoumean==0.3.0 (from -r /opt/paperless-ngx/requirements.txt (line 18))
  Downloading https://www.piwheels.org/simple/click-didyoumean/click_didyoumean-0.3.0-py3-none-any.whl (2.7 kB)
Collecting click-plugins==1.1.1 (from -r /opt/paperless-ngx/requirements.txt (line 19))
  Downloading https://www.piwheels.org/simple/click-plugins/click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
Collecting click-repl==0.3.0 (from -r /opt/paperless-ngx/requirements.txt (line 20))
  Downloading https://www.piwheels.org/simple/click-repl/click_repl-0.3.0-py3-none-any.whl (10 kB)
Collecting coloredlogs==15.0.1 (from -r /opt/paperless-ngx/requirements.txt (line 21))
  Downloading https://www.piwheels.org/simple/coloredlogs/coloredlogs-15.0.1-py2.py3-none-any.whl (46 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.0/46.0 kB 434.6 kB/s eta 0:00:00
Collecting concurrent-log-handler==0.9.24 (from -r /opt/paperless-ngx/requirements.txt (line 22))
  Downloading https://www.piwheels.org/simple/concurrent-log-handler/concurrent_log_handler-0.9.24-py3-none-any.whl (24 kB)
Collecting cryptography==40.0.1 (from -r /opt/paperless-ngx/requirements.txt (line 23))
  Downloading cryptography-40.0.1-cp36-abi3-manylinux_2_28_x86_64.whl (3.7 MB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.7/3.7 MB 11.8 MB/s eta 0:00:00
Collecting dateparser==1.1.8 (from -r /opt/paperless-ngx/requirements.txt (line 24))
  Downloading https://www.piwheels.org/simple/dateparser/dateparser-1.1.8-py2.py3-none-any.whl (293 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 293.8/293.8 kB 3.7 MB/s eta 0:00:00
Collecting deprecation==2.1.0 (from -r /opt/paperless-ngx/requirements.txt (line 25))
  Downloading https://www.piwheels.org/simple/deprecation/deprecation-2.1.0-py2.py3-none-any.whl (11 kB)
Collecting django==4.1.10 (from -r /opt/paperless-ngx/requirements.txt (line 26))
  Downloading https://www.piwheels.org/simple/django/Django-4.1.10-py3-none-any.whl (8.1 MB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.1/8.1 MB 8.9 MB/s eta 0:00:00
Collecting django-celery-results==2.5.1 (from -r /opt/paperless-ngx/requirements.txt (line 27))
  Downloading https://www.piwheels.org/simple/django-celery-results/django_celery_results-2.5.1-py3-none-any.whl (36 kB)
Collecting django-compression-middleware==0.5.0 (from -r /opt/paperless-ngx/requirements.txt (line 28))
  Downloading https://www.piwheels.org/simple/django-compression-middleware/django_compression_middleware-0.5.0-py2.py3-none-any.whl (8.2 kB)
Collecting django-cors-headers==4.2.0 (from -r /opt/paperless-ngx/requirements.txt (line 29))
  Downloading https://www.piwheels.org/simple/django-cors-headers/django_cors_headers-4.2.0-py3-none-any.whl (12 kB)
Collecting django-extensions==3.2.3 (from -r /opt/paperless-ngx/requirements.txt (line 30))
  Downloading https://www.piwheels.org/simple/django-extensions/django_extensions-3.2.3-py3-none-any.whl (229 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 3.2 MB/s eta 0:00:00
Collecting django-filter==23.2 (from -r /opt/paperless-ngx/requirements.txt (line 31))
  Downloading https://www.piwheels.org/simple/django-filter/django_filter-23.2-py3-none-any.whl (91 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 91.9/91.9 kB 1.0 MB/s eta 0:00:00
Collecting django-guardian==2.4.0 (from -r /opt/paperless-ngx/requirements.txt (line 32))
  Downloading https://www.piwheels.org/simple/django-guardian/django_guardian-2.4.0-py3-none-any.whl (106 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.1/106.1 kB 10.3 MB/s eta 0:00:00
Collecting djangorestframework==3.14.0 (from -r /opt/paperless-ngx/requirements.txt (line 33))
  Downloading https://www.piwheels.org/simple/djangorestframework/djangorestframework-3.14.0-py3-none-any.whl (1.1 MB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 5.9 MB/s eta 0:00:00
Collecting djangorestframework-guardian==0.3.0 (from -r /opt/paperless-ngx/requirements.txt (line 34))
  Downloading https://www.piwheels.org/simple/djangorestframework-guardian/djangorestframework_guardian-0.3.0-py2.py3-none-any.whl (6.9 kB)
Collecting exceptiongroup==1.1.2 (from -r /opt/paperless-ngx/requirements.txt (line 35))
  Downloading https://www.piwheels.org/simple/exceptiongroup/exceptiongroup-1.1.2-py3-none-any.whl (14 kB)
Collecting filelock==3.12.2 (from -r /opt/paperless-ngx/requirements.txt (line 36))
  Downloading https://www.piwheels.org/simple/filelock/filelock-3.12.2-py3-none-any.whl (10 kB)
Collecting flower==2.0.0 (from -r /opt/paperless-ngx/requirements.txt (line 37))
  Downloading https://www.piwheels.org/simple/flower/flower-2.0.0-py2.py3-none-any.whl (383 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 383.5/383.5 kB 12.2 MB/s eta 0:00:00
Collecting gunicorn==21.2.0 (from -r /opt/paperless-ngx/requirements.txt (line 38))
  Downloading https://www.piwheels.org/simple/gunicorn/gunicorn-21.2.0-py3-none-any.whl (80 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.2/80.2 kB 9.9 MB/s eta 0:00:00
Collecting h11==0.14.0 (from -r /opt/paperless-ngx/requirements.txt (line 39))
  Downloading https://www.piwheels.org/simple/h11/h11-0.14.0-py3-none-any.whl (58 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.3/58.3 kB 6.6 MB/s eta 0:00:00
Collecting hiredis==2.2.3 (from -r /opt/paperless-ngx/requirements.txt (line 40))
  Downloading hiredis-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (165 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 165.9/165.9 kB 16.3 MB/s eta 0:00:00
Collecting httpcore==0.17.3 (from -r /opt/paperless-ngx/requirements.txt (line 41))
  Downloading https://www.piwheels.org/simple/httpcore/httpcore-0.17.3-py3-none-any.whl (74 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 74.5/74.5 kB 6.8 MB/s eta 0:00:00
Collecting httptools==0.6.0 (from -r /opt/paperless-ngx/requirements.txt (line 42))
  Obtaining dependency information for httptools==0.6.0 from https://files.pythonhosted.org/packages/cf/09/b17fbf88d5c285e7cd8162539ba6f95c778dcd47e44240aa14afd0982bb8/httptools-0.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata
  Downloading httptools-0.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.6 kB)
Collecting httpx==0.24.1 (from -r /opt/paperless-ngx/requirements.txt (line 43))
  Downloading https://www.piwheels.org/simple/httpx/httpx-0.24.1-py3-none-any.whl (75 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 75.4/75.4 kB 16.7 MB/s eta 0:00:00
Collecting humanfriendly==10.0 (from -r /opt/paperless-ngx/requirements.txt (line 44))
  Downloading https://www.piwheels.org/simple/humanfriendly/humanfriendly-10.0-py2.py3-none-any.whl (89 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.9/89.9 kB 16.5 MB/s eta 0:00:00
Collecting humanize==4.7.0 (from -r /opt/paperless-ngx/requirements.txt (line 45))
  Downloading https://www.piwheels.org/simple/humanize/humanize-4.7.0-py3-none-any.whl (113 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 113.6/113.6 kB 21.7 MB/s eta 0:00:00
Collecting idna==3.4 (from -r /opt/paperless-ngx/requirements.txt (line 46))
  Downloading https://www.piwheels.org/simple/idna/idna-3.4-py3-none-any.whl (61 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.5/61.5 kB 16.5 MB/s eta 0:00:00
Collecting imap-tools==1.1.0 (from -r /opt/paperless-ngx/requirements.txt (line 47))
  Downloading https://www.piwheels.org/simple/imap-tools/imap_tools-1.1.0-py3-none-any.whl (31 kB)
Collecting img2pdf==0.4.4 (from -r /opt/paperless-ngx/requirements.txt (line 48))
  Downloading https://www.piwheels.org/simple/img2pdf/img2pdf-0.4.4-py3-none-any.whl (47 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 47.3/47.3 kB 12.1 MB/s eta 0:00:00
Collecting inotify-simple==1.3.5 (from -r /opt/paperless-ngx/requirements.txt (line 50))
  Downloading https://www.piwheels.org/simple/inotify-simple/inotify_simple-1.3.5-py3-none-any.whl (9.4 kB)
Collecting inotifyrecursive==0.3.5 (from -r /opt/paperless-ngx/requirements.txt (line 51))
  Downloading https://www.piwheels.org/simple/inotifyrecursive/inotifyrecursive-0.3.5-py3-none-any.whl (8.0 kB)
Collecting joblib==1.3.1 (from -r /opt/paperless-ngx/requirements.txt (line 52))
  Downloading https://www.piwheels.org/simple/joblib/joblib-1.3.1-py3-none-any.whl (301 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 302.0/302.0 kB 11.6 MB/s eta 0:00:00
Collecting kombu==5.3.1 (from -r /opt/paperless-ngx/requirements.txt (line 53))
  Downloading https://www.piwheels.org/simple/kombu/kombu-5.3.1-py3-none-any.whl (198 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 198.5/198.5 kB 11.8 MB/s eta 0:00:00
Collecting langdetect==1.0.9 (from -r /opt/paperless-ngx/requirements.txt (line 54))
  Downloading https://www.piwheels.org/simple/langdetect/langdetect-1.0.9-py3-none-any.whl (994 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 994.5/994.5 kB 12.1 MB/s eta 0:00:00
Collecting lxml==4.9.3 (from -r /opt/paperless-ngx/requirements.txt (line 55))
  Obtaining dependency information for lxml==4.9.3 from https://files.pythonhosted.org/packages/3c/d2/11533f0bc47ff4d828a20cfb702f3453fe714bd5b475fcdc8cec6e6b7dcf/lxml-4.9.3-cp310-cp310-manylinux_2_28_x86_64.whl.metadata
  Downloading lxml-4.9.3-cp310-cp310-manylinux_2_28_x86_64.whl.metadata (3.8 kB)
Collecting msgpack==1.0.5 (from -r /opt/paperless-ngx/requirements.txt (line 56))
  Downloading msgpack-1.0.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (316 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 316.8/316.8 kB 19.2 MB/s eta 0:00:00
Collecting mysqlclient==2.2.0 (from -r /opt/paperless-ngx/requirements.txt (line 57))
  Downloading mysqlclient-2.2.0.tar.gz (89 kB)
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.5/89.5 kB 11.4 MB/s eta 0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'

:stderr:   error: subprocess-exited-with-error
  
  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [24 lines of output]
      /bin/sh: 1: pkg-config: not found
      /bin/sh: 1: pkg-config: not found
      Trying pkg-config --exists mysqlclient
      Command 'pkg-config --exists mysqlclient' returned non-zero exit status 127.
      Trying pkg-config --exists mariadb
      Command 'pkg-config --exists mariadb' returned non-zero exit status 127.
      Traceback (most recent call last):
        File \"/opt/paperless-ngx/.venv/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py\", line 353, in <module>
          main()
        File \"/opt/paperless-ngx/.venv/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py\", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File \"/opt/paperless-ngx/.venv/lib/python3.10/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py\", line 118, in get_requires_for_build_wheel
          return hook(config_settings)
        File \"/tmp/pip-build-env-lo3uqz9g/overlay/lib/python3.10/site-packages/setuptools/build_meta.py\", line 355, in get_requires_for_build_wheel
          return self._get_build_requires(config_settings, requirements=['wheel'])
        File \"/tmp/pip-build-env-lo3uqz9g/overlay/lib/python3.10/site-packages/setuptools/build_meta.py\", line 325, in _get_build_requires
          self.run_setup()
        File \"/tmp/pip-build-env-lo3uqz9g/overlay/lib/python3.10/site-packages/setuptools/build_meta.py\", line 341, in run_setup
          exec(code, locals())
        File \"<string>\", line 154, in <module>
        File \"<string>\", line 48, in get_config_posix
        File \"<string>\", line 27, in find_package_name
      Exception: Can not find valid pkg-config name.
      Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

during "Install paperless-ngx python requirements" step. From my research it seems like mysqlclient 2.2.0 added a dependency on pkg-config.

I tried looking in this repo for the dependencies of paperless to see if I could figure out which package upgrade caused the issue, but I did not find them.

I have not tried out adding/installing pkg-config yet, but I will do so and report back once I did.

I just found out that v1.17 did bump mysqlclient to 2.2.0 (from 2.1.1)

Installing pkg-config did the trick. I think it has to be added as a required package.

Thank you very much for reporting the issue and providing a pr. I'll check it.