← Back to issue list

Python plugin: incompatibilities with python-packages attribute, build-packages and at least `libpq-dev`

View original Github issue

Metadata

Project
rockcraft
Number
#610
Type
issue
State
open
Author
javierdelapuente
Labels
Created
Updated
Closed

Current evaluation

Rockcraft python plugin fails to build C-extension packages (e.g. psycopg2) when python-packages is set, because the venv lacks Python.h; workaround is adding pip/setuptools/wheel to python-packages. No maintainer resolution; last activity 798 days ago.

Suggested action: needs triage

Reason: The issue has no labels, no assignee, and no maintainer decision — only a request for the full log, which the reporter provided via pastebin links. The root cause is a real plugin bug: craft-parts' PythonPlugin defaults python-packages to [pip, setuptools, wheel], so specifying any python-packages (e.g. gunicorn) drops wheel, and the log shows 'Using legacy setup.py install for psycopg2, since package wheel is not installed' followed by a Python.h failure. The issue is old (798 days) but the underlying venv/pip behavior in craft-parts may have changed, so it needs a maintainer to reproduce on a current release before closing.

Impact: 50 Quick Win: 22.5 Staleness: 80 Complexity: 55 Confidence: 60 Support Request: 15

Issue body

### Bug Description Using the python plugin, I tried to use the library `psycopg2==2.9.9` in the `requirements.txt` file. For that library, it is necessary to have the `libpq-dev` as a `build-package`. If no package is specified in the attribute`python-packages`, then the build works correctly. However, if a package is specified in the attribute `python-packages`, the build fails with an error related to `Python.h` file not found. ``` 2024-06-24 13:23:29.241 :: 2024-06-24 13:23:28.839 :: ./psycopg/psycopg.h:35:10: fatal error: Python.h: No such file or directory 2024-06-24 13:23:29.241 :: 2024-06-24 13:23:28.839 :: 35 | #include <Python.h> ``` Adding manually pip, setuptools and wheel to the `python-packages` make it work again. ### To Reproduce Add a requirements.txt file with: ``` psycopg2==2.9.9 ``` The following rockcraft.yaml fails in `rockcraft pack` ``` name: test base: ubuntu@22.04 version: '0.1' summary: summary description: description platforms: amd64: parts: dependencies: build-packages: - libpq-dev plugin: python source: . stage-packages: - python3.10-venv python-packages: - gunicorn python-requirements: - requirements.txt ``` with an error that contains: ``` 2024-06-24 13:23:29.241 :: 2024-06-24 13:23:28.839 :: ./psycopg/psycopg.h:35:10: fatal error: Python.h: No such file or directory 2024-06-24 13:23:29.241 :: 2024-06-24 13:23:28.839 :: 35 | #include <Python.h> ``` However this works (adding gunicorn to requirements.txt): ``` ... dependencies: build-packages: - libpq-dev plugin: python source: . stage-packages: [python3.10-venv] python-requirements: - requirements.txt ``` And this also works: ``` ... dependencies: build-packages: - libpq-dev plugin: python source: . stage-packages: [python3.10-venv] python-requirements: - requirements2.txt python-packages: - gunicorn - pip - setuptools - wheel ``` ### Environment Ubuntu 22.04 LTS with rockcraft built from the main branch. ### rockcraft.yaml ```shell name: test base: ubuntu@22.04 version: '0.1' summary: summary description: description platforms: amd64: parts: dependencies: build-packages: - libpq-dev plugin: python source: . stage-packages: - python3.10-venv python-packages: - gunicorn python-requirements: - requirements.txt ``` ### Relevant log output ```shell 2024-06-24 13:30:47.981 :: 2024-06-24 13:30:42.061 Executing PosixPath('/root/parts/dependencies/run/build.sh') 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:42.063 :: + [[ python3 = /* ]] 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:42.063 :: + python3 -m venv /root/parts/dependencies/install 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:44.680 :: + PARTS_PYTHON_VENV_INTERP_PATH=/root/parts/dependencies/install/bin/python3 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:44.681 :: + /root/parts/dependencies/install/bin/pip install -U gunicorn 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.032 :: Collecting gunicorn 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.107 :: Downloading gunicorn-22.0.0-py3-none-any.whl (84 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.146 :: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.4/84.4 KB 2.5 MB/s eta 0:00:00 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.202 :: Collecting packaging 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.214 :: Downloading packaging-24.1-py3-none-any.whl (53 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.239 :: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.0/54.0 KB 2.3 MB/s eta 0:00:00 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.270 :: Installing collected packages: packaging, gunicorn 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.341 :: Successfully installed gunicorn-22.0.0 packaging-24.1 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.405 :: + /root/parts/dependencies/install/bin/pip install -U -r requirements.txt 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.859 :: Collecting psycopg2==2.9.9 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:45.933 :: Downloading psycopg2-2.9.9.tar.gz (384 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.018 :: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 384.9/384.9 KB 4.8 MB/s eta 0:00:00 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.062 :: Preparing metadata (setup.py): started 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.221 :: Preparing metadata (setup.py): finished with status 'done' 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.269 :: Collecting Flask 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.281 :: Downloading flask-3.0.3-py3-none-any.whl (101 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.301 :: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.7/101.7 KB 6.4 MB/s eta 0:00:00 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.354 :: Collecting click>=8.1.3 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.370 :: Downloading click-8.1.7-py3-none-any.whl (97 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.385 :: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.9/97.9 KB 8.4 MB/s eta 0:00:00 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.448 :: Collecting Werkzeug>=3.0.0 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.464 :: Downloading werkzeug-3.0.3-py3-none-any.whl (227 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.494 :: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 227.3/227.3 KB 8.4 MB/s eta 0:00:00 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.527 :: Collecting itsdangerous>=2.1.2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.541 :: Downloading itsdangerous-2.2.0-py3-none-any.whl (16 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.592 :: Collecting Jinja2>=3.1.2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.608 :: Downloading jinja2-3.1.4-py3-none-any.whl (133 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.633 :: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.3/133.3 KB 5.8 MB/s eta 0:00:00 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.683 :: Collecting blinker>=1.6.2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.697 :: Downloading blinker-1.8.2-py3-none-any.whl (9.5 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.865 :: Collecting MarkupSafe>=2.0 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.877 :: Downloading MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (25 kB) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.895 :: Using legacy 'setup.py install' for psycopg2, since package 'wheel' is not installed. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.929 :: Installing collected packages: psycopg2, MarkupSafe, itsdangerous, click, blinker, Werkzeug, Jinja2, Flask 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:46.930 :: Running setup.py install for psycopg2: started 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.108 :: Running setup.py install for psycopg2: finished with status 'error' 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.114 :: error: subprocess-exited-with-error 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.114 :: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.114 :: × Running setup.py install for psycopg2 did not run successfully. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.114 :: │ exit code: 1 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: ╰─> [40 lines of output] 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: running install 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: /root/parts/dependencies/install/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: warnings.warn( 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: running build 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: running build_py 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: creating build 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: creating build/lib.linux-x86_64-3.10 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: creating build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: copying lib/__init__.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: copying lib/extras.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.115 :: copying lib/_json.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: copying lib/pool.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: copying lib/errors.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: copying lib/_ipaddress.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: copying lib/_range.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: copying lib/errorcodes.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: copying lib/sql.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: copying lib/extensions.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: copying lib/tz.py -> build/lib.linux-x86_64-3.10/psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.116 :: running build_ext 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.117 :: building 'psycopg2._psycopg' extension 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.117 :: creating build/temp.linux-x86_64-3.10 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.117 :: creating build/temp.linux-x86_64-3.10/psycopg 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.117 :: x86_64-linux-gnu-gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DPSYCOPG_VERSION=2.9.9 (dt dec pq3 ext lo64) -DPSYCOPG_DEBUG=1 -DPG_VERSION_NUM=140012 -DHAVE_LO64=1 -DPSYCOPG_DEBUG=1 -I/root/parts/dependencies/install/include -I/root/parts/dependencies/install/usr/include/python3.10 -I. -I/usr/include/postgresql -I/usr/include/postgresql/14/server -I/usr/include/libxml2 -c psycopg/adapter_asis.c -o build/temp.linux-x86_64-3.10/psycopg/adapter_asis.o -Wdeclaration-after-statement 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.118 :: In file included from psycopg/adapter_asis.c:28: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.118 :: ./psycopg/psycopg.h:35:10: fatal error: Python.h: No such file or directory 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.118 :: 35 | #include <Python.h> 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.118 :: | ^~~~~~~~~~ 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.118 :: compilation terminated. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.118 :: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.119 :: It appears you are missing some prerequisite to build the package from source. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.119 :: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.119 :: You may install a binary package by installing 'psycopg2-binary' from PyPI. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.119 :: If you want to install psycopg2 from source, please install the packages 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.119 :: required for the build and try again. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.119 :: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.120 :: For further information please check the 'doc/src/install.rst' file (also at 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.120 :: <https://www.psycopg.org/docs/install.html>). 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.120 :: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.120 :: error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.120 :: [end of output] 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.120 :: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.120 :: note: This error originates from a subprocess, and is likely not a problem with pip. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.121 :: error: legacy-install-failure 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.121 :: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.121 :: × Encountered error while trying to install package. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.121 :: ╰─> psycopg2 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.121 :: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.121 :: note: This is an issue with the package mentioned above, not pip. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.121 :: hint: See above for output from the failure. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.201 Failed to run the build script for part 'dependencies'. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 Traceback (most recent call last): 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/step_handler.py", line 148, in _builtin_build 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 _create_and_run_script( 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/step_handler.py", line 461, in _create_and_run_script 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 subprocess.run( 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/usr/lib/python3.10/subprocess.py", line 526, in run 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 raise CalledProcessError(retcode, process.args, 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 subprocess.CalledProcessError: Command '[PosixPath('/root/parts/dependencies/run/build.sh')]' returned non-zero exit status 1. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 The above exception was the direct cause of the following exception: 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 Traceback (most recent call last): 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_application/services/lifecycle.py", line 258, in run 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 aex.execute(action, stdout=stream, stderr=stream) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/executor.py", line 327, in execute 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 self._executor.execute(actions, stdout=stdout, stderr=stderr) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/executor.py", line 137, in execute 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 self._run_action(act, stdout=stdout, stderr=stderr) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/executor.py", line 214, in _run_action 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 handler.run_action(action, stdout=stdout, stderr=stderr) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/part_handler.py", line 170, in run_action 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 state = handler(step_info, stdout=stdout, stderr=stderr) 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/part_handler.py", line 309, in _run_build 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 self._run_step( 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/part_handler.py", line 491, in _run_step 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 return step_handler.run_builtin() 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/step_handler.py", line 108, in run_builtin 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 return handler() 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_parts/executor/step_handler.py", line 157, in _builtin_build 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 raise errors.PluginBuildError( 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 craft_parts.errors.PluginBuildError: Failed to run the build script for part 'dependencies'. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 Check the build output and verify the project can work with the 'python' plugin. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.208 Recommended resolution: Check the build output and verify the project can work with the 'python' plugin. 2024-06-24 13:30:47.982 :: 2024-06-24 13:30:47.209 For more information, check out: https://documentation.ubuntu.com/rockcraft/en/stable/reference/plugins.html 2024-06-24 13:30:47.983 Executing on host: lxc --project rockcraft config device show local:rockcraft-test-on-amd64-for-amd64-1290268 2024-06-24 13:30:48.081 Executing on host: lxc --project rockcraft config device remove local:rockcraft-test-on-amd64-for-amd64-1290268 disk-/root/project 2024-06-24 13:30:48.164 Executing on host: lxc --project rockcraft stop local:rockcraft-test-on-amd64-for-amd64-1290268 2024-06-24 13:30:52.334 Failed to execute rockcraft in instance. 2024-06-24 13:30:52.341 Traceback (most recent call last): 2024-06-24 13:30:52.341 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_application/application.py", line 370, in run_managed 2024-06-24 13:30:52.341 instance.execute_run( # pyright: ignore[reportUnknownMemberType,reportUnknownVariableType] 2024-06-24 13:30:52.341 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_providers/lxd/lxd_instance.py", line 293, in execute_run 2024-06-24 13:30:52.342 return self.lxc.exec( 2024-06-24 13:30:52.342 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_providers/lxd/lxc.py", line 387, in exec 2024-06-24 13:30:52.342 return runner(final_cmd, timeout=timeout, check=check, **kwargs) 2024-06-24 13:30:52.342 File "/snap/rockcraft/x1/usr/lib/python3.10/subprocess.py", line 526, in run 2024-06-24 13:30:52.342 raise CalledProcessError(retcode, process.args, 2024-06-24 13:30:52.342 subprocess.CalledProcessError: Command '['lxc', '--project', 'rockcraft', 'exec', 'local:rockcraft-test-on-amd64-for-amd64-1290268', '--cwd', '/root/project', '--', 'env', 'CRAFT_MANAGED_MODE=1', 'DEBIAN_FRONTEND=noninteractive', 'DEBCONF_NONINTERACTIVE_SEEN=true', 'DEBIAN_PRIORITY=critical', 'CRAFT_PLATFORM=amd64', 'CRAFT_VERBOSITY_LEVEL=BRIEF', 'rockcraft', 'pack']' returned non-zero exit status 1. 2024-06-24 13:30:52.342 2024-06-24 13:30:52.342 The above exception was the direct cause of the following exception: 2024-06-24 13:30:52.342 Traceback (most recent call last): 2024-06-24 13:30:52.342 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_application/application.py", line 535, in run 2024-06-24 13:30:52.342 self.run_managed(platform, build_for) 2024-06-24 13:30:52.342 File "/snap/rockcraft/x1/lib/python3.10/site-packages/craft_application/application.py", line 377, in run_managed 2024-06-24 13:30:52.342 raise craft_providers.ProviderError( 2024-06-24 13:30:52.342 craft_providers.errors.ProviderError: Failed to execute rockcraft in instance. 2024-06-24 13:30:52.342 Full execution log: '/home/ubuntu/.local/state/rockcraft/log/rockcraft-20240624-132944.870344.log' ```

Evaluation history

Date Model Scores Action Summary
qwen/qwen3.8-27b
Impact: 50
Quick Win: 22.5
Staleness: 80
Complexity: 55
Confidence: 60
Support Request: 15
needs triage Rockcraft python plugin fails to build C-extension packages (e.g. psycopg2) when python-packages is set, because the venv lacks Python.h; workaround is adding pip/setuptools/wheel to python-packages. No maintainer resolution; last activity 798 days ago.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 30
Confidence: 70
Support Request: 10
close stale Python plugin build failure with python-packages and libpq-dev due to missing Python.h. Issue is 758 days old with no maintainer response after logs were provided.
qwen3.6-35b-a3b-mtp-q6
Staleness: 90
Complexity: 40
Confidence: 70
Support Request: 10
needs triage Python plugin build fails with missing Python.h when python-packages is used. Issue is unlabelled and inactive for 743 days.
qwen3.6-35b-a3b-mtp-q6
Staleness: 90
Complexity: 40
Confidence: 85
Support Request: 15
needs triage Bug report detailing python plugin build failures when combining python-packages and build-packages. Includes reproduction steps and logs. Issue remains unlabelled and unassigned after 740 days of inactivity.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 35
Confidence: 85
Support Request: 10
close stale Rockcraft Python plugin fails to locate Python.h when python-packages is used with build-packages and python-requirements. Workaround: omit python-packages or add pip, setuptools, wheel. Issue is open, inactive for 721 days, and needs triage.

Update history

No update history recorded yet.

Related issues

No related issues found above the similarity threshold.