Error installing haddock3

while installing haddock3 I get the following:

Created wheel for haddock3: filename=haddock3-2025.11.0-cp313-cp313-linux_x86_64.whl size=15023319 sha256=5804a7e45a5ba804f4b803cc7b566a2eb89b0f1185fb72b971943297da4fbb9b
Stored in directory: /tmp/pip-ephem-wheel-cache-jfwpf27_/wheels/4c/eb/2b/7a26ab06ce9a0228848f73cfdad1de538efa171e88bb785e46
Building wheel for freesasa (pyproject.toml) … error
error: subprocess-exited-with-error

× Building wheel for freesasa (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [109 lines of output]
/tmp/pip-build-env-8vg9_wyb/overlay/lib/python3.13/site-packages/setuptools/_distutils/dist.py:287: UserWarning: Unknown distribution option: ‘test_suite’
warnings.warn(msg)
/tmp/pip-build-env-8vg9_wyb/overlay/lib/python3.13/site-packages/setuptools/dist.py:765: SetuptoolsDeprecationWarning: License classifiers are deprecated.
!!

          ********************************************************************************
          Please consider removing the following classifiers in favor of a SPDX license expression:

          License :: OSI Approved :: MIT License

          See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
          ********************************************************************************

  !!
    self._finalize_license_expression()
  Define environment variable USE_CYTHON to build from Cython source
  running bdist_wheel
  running build
  running build_ext
  building 'freesasa' extension
  creating build/temp.linux-x86_64-cpython-313/lib/src
  creating build/temp.linux-x86_64-cpython-313/src
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/classifier.c -o build/temp.linux-x86_64-cpython-313/lib/src/classifier.o -DHAVE_CONFIG_H -std=gnu99
  lib/src/classifier.c: In function ‘freesasa_atom_is_backbone’:
  lib/src/classifier.c:1102:19: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
   1102 |     for (i = 0; i < sizeof(bb) / sizeof(const char *); ++i) {
        |                   ^
  lib/src/classifier.c: In function ‘freesasa_classifier_add_type’:
  lib/src/classifier.c:415:21: warning: pointer ‘tn’ may be used after ‘realloc’ [-Wuse-after-free]
    415 |         types->name = tn;
        |         ~~~~~~~~~~~~^~~~
  lib/src/classifier.c:414:24: note: call to ‘realloc’ here
    414 |     if ((types->name = realloc(tn, sizeof(char *) * n)) == NULL) {
        |                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  lib/src/classifier.c:420:28: warning: pointer ‘tr’ may be used after ‘realloc’ [-Wuse-after-free]
    420 |         types->type_radius = tr;
        |         ~~~~~~~~~~~~~~~~~~~^~~~
  lib/src/classifier.c:419:31: note: call to ‘realloc’ here
    419 |     if ((types->type_radius = realloc(tr, sizeof(double) * n)) == NULL) {
        |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  lib/src/classifier.c:425:27: warning: pointer ‘tc’ may be used after ‘realloc’ [-Wuse-after-free]
    425 |         types->type_class = tc;
        |         ~~~~~~~~~~~~~~~~~~^~~~
  lib/src/classifier.c:424:30: note: call to ‘realloc’ here
    424 |     if ((types->type_class = realloc(tc, sizeof(int) * n)) == NULL) {
        |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
  lib/src/classifier.c: In function ‘freesasa_classifier_add_residue’:
  lib/src/classifier.c:567:25: warning: pointer ‘rn’ may be used after ‘realloc’ [-Wuse-after-free]
    567 |         c->residue_name = rn;
        |         ~~~~~~~~~~~~~~~~^~~~
  lib/src/classifier.c:566:28: note: call to ‘realloc’ here
    566 |     if ((c->residue_name = realloc(rn, sizeof(char *) * res)) == NULL) {
        |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  lib/src/classifier.c:572:20: warning: pointer ‘cr’ may be used after ‘realloc’ [-Wuse-after-free]
    572 |         c->residue = cr;
        |         ~~~~~~~~~~~^~~~
  lib/src/classifier.c:571:23: note: call to ‘realloc’ here
    571 |     if ((c->residue = realloc(cr, sizeof(struct classifier_residue *) * res)) == NULL) {
        |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  In function ‘strip_line’,
      inlined from ‘next_line’ at lib/src/classifier.c:244:12:
  lib/src/classifier.c:191:5: warning: ‘strncpy’ output may be truncated copying 256 bytes from a string of length 256 [-Wstringop-truncation]
    191 |     strncpy(line, first, MAX_LINE_LEN);
        |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/classifier_naccess.c -o build/temp.linux-x86_64-cpython-313/lib/src/classifier_naccess.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/classifier_oons.c -o build/temp.linux-x86_64-cpython-313/lib/src/classifier_oons.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/classifier_protor.c -o build/temp.linux-x86_64-cpython-313/lib/src/classifier_protor.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/coord.c -o build/temp.linux-x86_64-cpython-313/lib/src/coord.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/freesasa.c -o build/temp.linux-x86_64-cpython-313/lib/src/freesasa.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/lexer.c -o build/temp.linux-x86_64-cpython-313/lib/src/lexer.o -DHAVE_CONFIG_H -std=gnu99
  lexer.c: In function ‘yy_get_next_buffer’:
  lexer.c:679:18: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  lexer.c:1180:3: note: in expansion of macro ‘YY_INPUT’
  lexer.c: In function ‘freesasa_yy_scan_bytes’:
  lexer.c:1740:17: warning: comparison of integer expressions of different signedness: ‘yy_size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  lexer.c: At top level:
  lexer.c:1328:16: warning: ‘input’ defined but not used [-Wunused-function]
  lexer.c:1284:17: warning: ‘yyunput’ defined but not used [-Wunused-function]
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/log.c -o build/temp.linux-x86_64-cpython-313/lib/src/log.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/nb.c -o build/temp.linux-x86_64-cpython-313/lib/src/nb.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/node.c -o build/temp.linux-x86_64-cpython-313/lib/src/node.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/parser.c -o build/temp.linux-x86_64-cpython-313/lib/src/parser.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/pdb.c -o build/temp.linux-x86_64-cpython-313/lib/src/pdb.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/rsa.c -o build/temp.linux-x86_64-cpython-313/lib/src/rsa.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/sasa_lr.c -o build/temp.linux-x86_64-cpython-313/lib/src/sasa_lr.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/sasa_sr.c -o build/temp.linux-x86_64-cpython-313/lib/src/sasa_sr.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/selection.c -o build/temp.linux-x86_64-cpython-313/lib/src/selection.o -DHAVE_CONFIG_H -std=gnu99
  lib/src/selection.c: In function ‘freesasa_selection_atom’:
  lib/src/selection.c:133:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
    133 |         for (i = 0; i < strlen(e->value); ++i)
        |                       ^
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/structure.c -o build/temp.linux-x86_64-cpython-313/lib/src/structure.o -DHAVE_CONFIG_H -std=gnu99
  lib/src/structure.c: In function ‘structure_add_atom_wopt_impl’:
  lib/src/structure.c:731:9: warning: ‘strncpy’ specified bound 3 equals destination size [-Wstringop-truncation]
    731 |         strncpy(my_symbol, symbol, sizeof(my_symbol));
        |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  In function ‘guess_symbol’,
      inlined from ‘atom_new_from_line’ at lib/src/structure.c:222:9,
      inlined from ‘from_pdb_impl’ at lib/src/structure.c:653:17:
  lib/src/structure.c:426:13: warning: ‘strncpy’ output may be truncated copying 2 bytes from a string of length 4 [-Wstringop-truncation]
    426 |             strncpy(symbol, name, 2);
        |             ^~~~~~~~~~~~~~~~~~~~~~~~
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c lib/src/util.c -o build/temp.linux-x86_64-cpython-313/lib/src/util.o -DHAVE_CONFIG_H -std=gnu99
  x86_64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall -fPIC -Ilib/src -I. -I/opt/haddock/venv/include -I/usr/include/python3.13 -c src/freesasa.c -o build/temp.linux-x86_64-cpython-313/src/freesasa.o -DHAVE_CONFIG_H -std=gnu99
  src/freesasa.c:59:10: fatal error: Python.h: Datei oder Verzeichnis nicht gefunden
     59 | #include "Python.h"
        |          ^~~~~~~~~~
  compilation terminated.
  error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
  [end of output]

note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for freesasa
Successfully built haddock3
Failed to build freesasa
ERROR: Failed to build installable wheels for some pyproject.toml based projects (freesasa)
(venv) root@raxml:/opt/haddock/haddock3#

I try to follow haddock3/docs/INSTALL.md at main · haddocking/haddock3 · GitHub

can anyone pse give a hint?

Rainer

Seem like a gcc issue. Which version of gcc do you have?

issue is solved.

Please post the solution as it could be useful for others.