Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't install v6.24.0 with raw pip under Debian 12 "Bookworm" #4261

Open
aag-norbert-lange opened this issue Jun 17, 2024 · 6 comments
Open
Labels
CI 📦 dev env ⛑️ Development environment package-Python 🐍 Issues related to the officially supplied PyPI (pip) package

Comments

@aag-norbert-lange
Copy link

Describe the bug

CodeChecker version
6.24.0

To Reproduce
Steps to reproduce the behaviour:

  1. Start a new debian container: podman run --rm -it debian:bookworm
  2. Try to install codechecker 6.24.0 via pip:
    apt-get install -y --no-install-recommends python3-pip gcc python3-dev git
    pip3 install --break-system-packages git+https://github.com/Ericsson/[email protected]
  3. Observe the error : error: error in 'egg_base' option: 'build_dist/CodeChecker/lib/python3' does not exist or is not a directory

Expected behaviour
Codechecker to be installed and usable

Desktop (please complete the following information)

  • OS: Linux (-Container)
  • Browser - None

Additional context

Full PIP Output

pip3 install --break-system-packages git+https://github.com/Ericsson/[email protected]
Collecting git+https://github.com/Ericsson/[email protected]
Cloning https://github.com/Ericsson/codechecker.git (to revision v6.24.0) to /tmp/pip-req-build-nslj_fpn
Running command git clone --filter=blob:none --quiet https://github.com/Ericsson/codechecker.git /tmp/pip-req-build-nslj_fpn
Resolved https://github.com/Ericsson/codechecker.git to commit ea79507
Preparing metadata (setup.py) ... done
Requirement already satisfied: PyYAML==6.0.1 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (6.0.1)
Requirement already satisfied: alembic==1.5.5 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (1.5.5)
Requirement already satisfied: gitpython==3.1.41 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (3.1.41)
Requirement already satisfied: lxml==4.9.3 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (4.9.3)
Requirement already satisfied: multiprocess==0.70.15 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (0.70.15)
Requirement already satisfied: portalocker==2.2.1 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (2.2.1)
Requirement already satisfied: psutil==5.8.0 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (5.8.0)
Requirement already satisfied: sarif-tools==1.0.0 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (1.0.0)
Requirement already satisfied: sqlalchemy==1.3.23 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (1.3.23)
Requirement already satisfied: thrift==0.13.0 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (0.13.0)
Requirement already satisfied: types-PyYAML==6.0.12.12 in /usr/local/lib/python3.11/dist-packages (from codechecker==6.24.0) (6.0.12.12)
Requirement already satisfied: Mako in /usr/local/lib/python3.11/dist-packages (from alembic==1.5.5->codechecker==6.24.0) (1.3.5)
Requirement already satisfied: python-editor>=0.3 in /usr/local/lib/python3.11/dist-packages (from alembic==1.5.5->codechecker==6.24.0) (1.0.4)
Requirement already satisfied: python-dateutil in /usr/local/lib/python3.11/dist-packages (from alembic==1.5.5->codechecker==6.24.0) (2.9.0.post0)
Requirement already satisfied: gitdb<5,>=4.0.1 in /usr/local/lib/python3.11/dist-packages (from gitpython==3.1.41->codechecker==6.24.0) (4.0.11)
Requirement already satisfied: dill>=0.3.7 in /usr/local/lib/python3.11/dist-packages (from multiprocess==0.70.15->codechecker==6.24.0) (0.3.8)
Requirement already satisfied: jinja2<4.0.0,>=3.1.2 in /usr/local/lib/python3.11/dist-packages (from sarif-tools==1.0.0->codechecker==6.24.0) (3.1.4)
Requirement already satisfied: matplotlib<4.0.0,>=3.5.1 in /usr/local/lib/python3.11/dist-packages (from sarif-tools==1.0.0->codechecker==6.24.0) (3.9.0)
Requirement already satisfied: python-docx<0.9.0,>=0.8.11 in /usr/local/lib/python3.11/dist-packages (from sarif-tools==1.0.0->codechecker==6.24.0) (0.8.11)
Requirement already satisfied: six>=1.7.2 in /usr/local/lib/python3.11/dist-packages (from thrift==0.13.0->codechecker==6.24.0) (1.16.0)
Requirement already satisfied: smmap<6,>=3.0.1 in /usr/local/lib/python3.11/dist-packages (from gitdb<5,>=4.0.1->gitpython==3.1.41->codechecker==6.24.0) (5.0.1)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.11/dist-packages (from jinja2<4.0.0,>=3.1.2->sarif-tools==1.0.0->codechecker==6.24.0) (2.1.5)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib<4.0.0,>=3.5.1->sarif-tools==1.0.0->codechecker==6.24.0) (1.2.1)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib<4.0.0,>=3.5.1->sarif-tools==1.0.0->codechecker==6.24.0) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib<4.0.0,>=3.5.1->sarif-tools==1.0.0->codechecker==6.24.0) (4.53.0)
Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib<4.0.0,>=3.5.1->sarif-tools==1.0.0->codechecker==6.24.0) (1.4.5)
Requirement already satisfied: numpy>=1.23 in /usr/local/lib/python3.11/dist-packages (from matplotlib<4.0.0,>=3.5.1->sarif-tools==1.0.0->codechecker==6.24.0) (2.0.0)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib<4.0.0,>=3.5.1->sarif-tools==1.0.0->codechecker==6.24.0) (24.1)
Requirement already satisfied: pillow>=8 in /usr/local/lib/python3.11/dist-packages (from matplotlib<4.0.0,>=3.5.1->sarif-tools==1.0.0->codechecker==6.24.0) (10.3.0)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib<4.0.0,>=3.5.1->sarif-tools==1.0.0->codechecker==6.24.0) (3.1.2)
Building wheels for collected packages: codechecker
Building wheel for codechecker (setup.py) ... error
error: subprocess-exited-with-error

× python setup.py bdist_wheel did not run successfully.
│ exit code: 1
╰─> [60 lines of output]
running bdist_wheel
running build
running build_ext
building 'codechecker_analyzer.ld_logger.lib.ldlogger' extension
creating build
creating build/temp.linux-x86_64-cpython-311
creating build/temp.linux-x86_64-cpython-311/analyzer
creating build/temp.linux-x86_64-cpython-311/analyzer/tools
creating build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger
creating build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-hooks.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-hooks.o
analyzer/tools/build-logger/src/ldlogger-hooks.c: In function ‘unsetLDPRELOAD’:
analyzer/tools/build-logger/src/ldlogger-hooks.c:68:64: warning: the comparison will always evaluate as ‘true’ for the pointer operand in ‘pos + -1’ must not be NULL [-Waddress]
68 | if ((prefix_length == pos_number) && ( pos_number == 0 || (pos-1 && *--pos == '/')))
| ^~~
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-logger.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-logger.o
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-tool-gcc.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool-gcc.o
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-tool-javac.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool-javac.o
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-tool.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool.o
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-util.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-util.o
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/codechecker_analyzer
creating build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger
creating build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger/lib
creating build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger/lib/x86_64
x86_64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-hooks.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-logger.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool-gcc.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool-javac.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-util.o -L/usr/lib/x86_64-linux-gnu -o build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger/lib/x86_64/ldlogger.so -O2 -fomit-frame-pointer -fvisibility=hidden -pedantic -Wl,--no-as-needed -ldl
running build_scripts
creating build/scripts-3.11
copying and adjusting scripts/gerrit_changed_files_to_skipfile.py -> build/scripts-3.11
changing mode of build/scripts-3.11/gerrit_changed_files_to_skipfile.py from 644 to 755
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/codechecker_analyzer
creating build/bdist.linux-x86_64/wheel/codechecker_analyzer/ld_logger
creating build/bdist.linux-x86_64/wheel/codechecker_analyzer/ld_logger/lib
creating build/bdist.linux-x86_64/wheel/codechecker_analyzer/ld_logger/lib/x86_64
copying build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger/lib/x86_64/ldlogger.so -> build/bdist.linux-x86_64/wheel/codechecker_analyzer/ld_logger/lib/x86_64
running install_data
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/docs
copying docs/README.md -> build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/docs
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/analyzer
copying analyzer/requirements.txt -> build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/analyzer
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/web
copying web/requirements.txt -> build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/web
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/ld_logger
creating build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/ld_logger/include
copying analyzer/tools/build-logger/src/ldlogger-hooks.h -> build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/ld_logger/include
copying analyzer/tools/build-logger/src/ldlogger-tool.h -> build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/ld_logger/include
copying analyzer/tools/build-logger/src/ldlogger-util.h -> build/bdist.linux-x86_64/wheel/codechecker-6.24.0.data/data/share/codechecker/ld_logger/include
running install_egg_info
error: error in 'egg_base' option: 'build_dist/CodeChecker/lib/python3' does not exist or is not a directory
[end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for codechecker
Running setup.py clean for codechecker
Failed to build codechecker
Installing collected packages: codechecker
Running setup.py install for codechecker ... error
error: subprocess-exited-with-error

× Running setup.py install for codechecker did not run successfully.
│ exit code: 1
╰─> [43 lines of output]
running install
/usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
warnings.warn(
running build
running build_ext
building 'codechecker_analyzer.ld_logger.lib.ldlogger' extension
creating build
creating build/temp.linux-x86_64-cpython-311
creating build/temp.linux-x86_64-cpython-311/analyzer
creating build/temp.linux-x86_64-cpython-311/analyzer/tools
creating build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger
creating build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-hooks.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-hooks.o
analyzer/tools/build-logger/src/ldlogger-hooks.c: In function ‘unsetLDPRELOAD’:
analyzer/tools/build-logger/src/ldlogger-hooks.c:68:64: warning: the comparison will always evaluate as ‘true’ for the pointer operand in ‘pos + -1’ must not be NULL [-Waddress]
68 | if ((prefix_length == pos_number) && ( pos_number == 0 || (pos-1 && *--pos == '/')))
| ^~~
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-logger.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-logger.o
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-tool-gcc.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool-gcc.o
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-tool-javac.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool-javac.o
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-tool.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool.o
x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -D__LOGGER_MAIN__ -D_GNU_SOURCE -I/usr/include/python3.11 -c analyzer/tools/build-logger/src/ldlogger-util.c -o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-util.o
creating build/lib.linux-x86_64-cpython-311
creating build/lib.linux-x86_64-cpython-311/codechecker_analyzer
creating build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger
creating build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger/lib
creating build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger/lib/x86_64
x86_64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -g -fwrapv -O2 build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-hooks.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-logger.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool-gcc.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool-javac.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-tool.o build/temp.linux-x86_64-cpython-311/analyzer/tools/build-logger/src/ldlogger-util.o -L/usr/lib/x86_64-linux-gnu -o build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger/lib/x86_64/ldlogger.so -O2 -fomit-frame-pointer -fvisibility=hidden -pedantic -Wl,--no-as-needed -ldl
running build_scripts
creating build/scripts-3.11
copying and adjusting scripts/gerrit_changed_files_to_skipfile.py -> build/scripts-3.11
changing mode of build/scripts-3.11/gerrit_changed_files_to_skipfile.py from 644 to 755
running install_lib
copying build/lib.linux-x86_64-cpython-311/codechecker_analyzer/ld_logger/lib/x86_64/ldlogger.so -> /usr/local/lib/python3.11/dist-packages/codechecker_analyzer/ld_logger/lib/x86_64
running install_data
copying docs/README.md -> /usr/local/share/codechecker/docs
copying analyzer/requirements.txt -> /usr/local/share/codechecker/analyzer
copying web/requirements.txt -> /usr/local/share/codechecker/web
copying analyzer/tools/build-logger/src/ldlogger-hooks.h -> /usr/local/share/codechecker/ld_logger/include
copying analyzer/tools/build-logger/src/ldlogger-tool.h -> /usr/local/share/codechecker/ld_logger/include
copying analyzer/tools/build-logger/src/ldlogger-util.h -> /usr/local/share/codechecker/ld_logger/include
running install_egg_info
error: error in 'egg_base' option: 'build_dist/CodeChecker/lib/python3' does not exist or is not a directory
[end of output]

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

× Encountered error while trying to install package.
╰─> codechecker

note: This is an issue with the package mentioned above, not pip.
hint: See above for output from the failure.

@whisperity whisperity added dev env ⛑️ Development environment package-Python 🐍 Issues related to the officially supplied PyPI (pip) package labels Jun 17, 2024
@whisperity
Copy link
Member

whisperity commented Jun 17, 2024

Unfortunately, the structure of the repository in its source form is not canonical, so tool breakages like this is expectable.

There are several ways of installing the package in a Linux environment, but directly pulling the Git repository is not one of them. You should either follow the install guide in the README (there is a need for a virtualenv and then run the appropriate make command such that the package structure comes together as expected), OR use the PyPI package as published to PyPI.

I can see that the PyPI package is not available yet, we only did the release a few workdays ago and still need to clear several internal steps to verify that everything works as expected. (We had issues prior where the PyPI package had to be recalled, but this recall is an action which forever prohibits using that version number ever again, so deployment to PyPI is postponed until we are sure that everything works fine.)

@aag-norbert-lange
Copy link
Author

The package not being in PyPI is the reason I resorted to git. What could go wrong =).

Should the Archive work?

@whisperity whisperity changed the title Cant install 6.24.0 on debian bookworm Cant install 6.24.0 on Debian 12.0 Bookworm Jun 17, 2024
@whisperity whisperity changed the title Cant install 6.24.0 on Debian 12.0 Bookworm Can't install v6.24.0 with raw pip under Debian 12 "Bookworm" Jun 17, 2024
@whisperity
Copy link
Member

whisperity commented Jun 17, 2024

The package not being in PyPI is the reason I resorted to git. What could go wrong =).

I would like to apologise on behalf of the entire team. We will likely get on with finishing up the deployment to PyPI soon.

Should the Archive work?

Unlikely. That is the exact same as what is available in the repository in source form. (For a built distribution to work, there are compiled C libraries that are part of the deployment.) The install guide for Linux platforms is available here: https://github.com/Ericsson/codechecker?tab=readme-ov-file#linux

This is primarily tested for Ubuntu, but should be applicable to upstream Debian as well. Basically you need a few packages related to GCC, if you want to use the Web interface, you need a more recent version of NodeJS, and you will need to create a Python virtualenv such that Python dependencies are available. But the virtualenv and the full package is assembled by calling make appropriately, so the only "system-level" things you have to deal with is the GCC-related packages and NodeJS's core installation.

If you want to run only the web interface ("server", and not do any analysis), then it is possible to run CodeChecker directly in Docker: v6.24.0 web is available: https://hub.docker.com/layers/codechecker/codechecker-web/6.24.0/images/sha256-23d67c8112f2c85ed7cbf16fe0e98187e03a58e63eeeac86476984797c9e0eaf?context=explore

@whisperity
Copy link
Member

What could work (but only as a test and NOT RECOMMENDED for long-term use!!!!) is the raw PyPI distribution artefact from the CI job: https://github.com/Ericsson/codechecker/actions/runs/9484608612.

Doing the steps outlined in the installation guide is definitely safer and better tested.

If you are fine with running CodeChecker inside Docker, an alternative starting point is the Dockerfile for the web system: https://github.com/Ericsson/codechecker/blob/master/web/docker/Dockerfile. I think this file could be patched to install the analyze requirements and to have a Clang inside it and then you should have an environment in which analysis can be run. I had done some prior work (actually, several, but #2888 is the most recent) for running analysis inside Docker, but it is non-trivial, because the analysis environment must contain the environment where the project-to-be-analysed can successfully compile (including all C or C++ system library dependencies, etc.).

@aag-norbert-lange
Copy link
Author

I am not looking for the Web version (theres a working docker image on the hub), but building a container which has clang, cmake and the CodeChecker binary for analyze.
Thanks, I will patiently wait until PyPI is updated

@whisperity whisperity added this to the release 6.24.0 milestone Jun 17, 2024
@whisperity whisperity reopened this Jun 17, 2024
@whisperity
Copy link
Member

(I reopened the issue such that we can see that this still needs to be done and should not consider 6.24.0 as something that is truly finished, just yet.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI 📦 dev env ⛑️ Development environment package-Python 🐍 Issues related to the officially supplied PyPI (pip) package
Projects
None yet
Development

No branches or pull requests

2 participants