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

Building scancode from Git on Fedora 39 fails (Python 3.12) #3656

Closed
armijnhemel opened this issue Feb 15, 2024 · 5 comments
Closed

Building scancode from Git on Fedora 39 fails (Python 3.12) #3656

armijnhemel opened this issue Feb 15, 2024 · 5 comments
Labels

Comments

@armijnhemel
Copy link
Contributor

armijnhemel commented Feb 15, 2024

Description

The current Git checkout fails to build on Fedora 39 which uses Python 3.12 by default. The first error is related to intbitset:

Building wheels for collected packages: intbitset, lxml, scancode-toolkit
  Building wheel for intbitset (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [185 lines of output]
      /tmp/pip-install-4bs7yax9/intbitset_e259e1a669e94531942a037810dca7a9/setup.py:37: SyntaxWarning: invalid escape sequence '\s'
        version = re.search('__version__\s*=\s*"(?P<version>.*)"\n', f.read()).group("version")
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-312
      copying intbitset/intbitset_helper.py -> build/lib.linux-x86_64-cpython-312
      copying intbitset/intbitset_version.py -> build/lib.linux-x86_64-cpython-312
      running egg_info
      writing intbitset/intbitset.egg-info/PKG-INFO
      writing dependency_links to intbitset/intbitset.egg-info/dependency_links.txt
      writing requirements to intbitset/intbitset.egg-info/requires.txt
      writing top-level names to intbitset/intbitset.egg-info/top_level.txt
      reading manifest file 'intbitset/intbitset.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no files found matching '*.sh'
      warning: no files found matching '*.yml'
      warning: no files found matching '*.css' under directory 'docs/_themes'
      warning: no files found matching '*.css_t' under directory 'docs/_themes'
      warning: no files found matching '*.conf' under directory 'docs/_themes'
      warning: no files found matching '*.html' under directory 'docs/_themes'
      warning: no files found matching 'COPYING' under directory 'docs/_themes'
      warning: no files found matching 'README' under directory 'docs/_themes'
      warning: no files found matching '*.html' under directory 'docs/_templates'
      adding license file 'LICENSE'
      adding license file 'AUTHORS.rst'
      adding license file 'README.rst'
      adding license file 'CHANGELOG.rst'
      writing manifest file 'intbitset/intbitset.egg-info/SOURCES.txt'
      running build_ext
      building 'intbitset' extension
      creating build/temp.linux-x86_64-cpython-312
      creating build/temp.linux-x86_64-cpython-312/intbitset
      gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fPIC -I/home/armijn/git/scancode-toolkit/venv/include -I/usr/include/python3.12 -c intbitset/intbitset.c -o build/temp.linux-x86_64-cpython-312/intbitset/intbitset.o
      intbitset/intbitset.c: In function ‘__pyx_pf_9intbitset_9intbitset___cinit__’:
      intbitset/intbitset.c:2290:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       2290 |       __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_array); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 189, __pyx_L3_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from /usr/include/python3.12/dictobject.h:90,
                       from /usr/include/python3.12/Python.h:61,
                       from intbitset/intbitset.c:6:
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c:2325:13: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       2325 |             __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_array); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 191, __pyx_L16_error)
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c:2375:13: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       2375 |             __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_zlib); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 193, __pyx_L16_error)
            |             ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c:2405:13: warning: ‘PyObject_AsReadBuffer’ is deprecated [-Wdeprecated-declarations]
       2405 |             __pyx_t_4 = ((PyObject_AsReadBuffer(__pyx_v_tmp, (&__pyx_v_buf), (&__pyx_v_size)) < 0) != 0);
            |             ^~~~~~~~~
      In file included from /usr/include/python3.12/Python.h:100:
      /usr/include/python3.12/abstract.h:369:17: note: declared here
        369 | PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
            |                 ^~~~~~~~~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__pyx_pf_9intbitset_9intbitset_44__reduce__’:
      intbitset/intbitset.c:8182:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       8182 |   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s__12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 516, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__pyx_f_9intbitset_9intbitset_fastdump’:
      intbitset/intbitset.c:9379:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       9379 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_zlib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 569, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__pyx_f_9intbitset_9intbitset_fastload’:
      intbitset/intbitset.c:9583:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       9583 |       __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_array); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L3_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c:9633:7: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
       9633 |       __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_zlib); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 583, __pyx_L3_error)
            |       ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c:9663:7: warning: ‘PyObject_AsReadBuffer’ is deprecated [-Wdeprecated-declarations]
       9663 |       __pyx_t_9 = ((PyObject_AsReadBuffer(__pyx_v_tmp, (&__pyx_v_buf), (&__pyx_v_size)) < 0) != 0);
            |       ^~~~~~~~~
      /usr/include/python3.12/abstract.h:369:17: note: declared here
        369 | PyAPI_FUNC(int) PyObject_AsReadBuffer(PyObject *obj,
            |                 ^~~~~~~~~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__pyx_pf_9intbitset_18intbitset_iterator___cinit__’:
      intbitset/intbitset.c:13551:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      13551 |   __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_CFG_INTBITSET_ENABLE_SANITY_CHEC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 775, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__pyx_pymod_exec_intbitset’:
      intbitset/intbitset.c:15258:3: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      15258 |   __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_CFG_INTBITSET_ENABLE_SANITY_CHEC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 167, __pyx_L1_error)
            |   ^~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__Pyx_Raise’:
      intbitset/intbitset.c:15725:34: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘curexc_traceback’
      15725 |         PyObject* tmp_tb = tstate->curexc_traceback;
            |                                  ^~
      intbitset/intbitset.c:15728:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘curexc_traceback’
      15728 |             tstate->curexc_traceback = tb;
            |                   ^~
      intbitset/intbitset.c: In function ‘__Pyx_get_tp_dict_version’:
      intbitset/intbitset.c:15743:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      15743 |     return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0;
            |     ^~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__Pyx_get_object_dict_version’:
      intbitset/intbitset.c:15755:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      15755 |     return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0;
            |     ^~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__Pyx_object_dict_version_matches’:
      intbitset/intbitset.c:15759:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      15759 |     if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict)))
            |     ^~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__Pyx__GetModuleGlobalName’:
      intbitset/intbitset.c:15776:5: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      15776 |     __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version)
            |     ^~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__Pyx_CLineForTraceback’:
      intbitset/intbitset.c:17178:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      17178 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c:17178:9: warning: ‘ma_version_tag’ is deprecated [-Wdeprecated-declarations]
      17178 |         __PYX_PY_DICT_LOOKUP_IF_MODIFIED(
            |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/include/python3.12/cpython/dictobject.h:22:34: note: declared here
         22 |     Py_DEPRECATED(3.12) uint64_t ma_version_tag;
            |                                  ^~~~~~~~~~~~~~
      intbitset/intbitset.c: In function ‘__Pyx_PyInt_As_int’:
      intbitset/intbitset.c:17479:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      17479 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      intbitset/intbitset.c:17534:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      17534 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      intbitset/intbitset.c: In function ‘__Pyx_PyInt_As_unsigned_int’:
      intbitset/intbitset.c:17713:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      17713 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      intbitset/intbitset.c:17768:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      17768 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      intbitset/intbitset.c: In function ‘__Pyx_PyInt_As_long’:
      intbitset/intbitset.c:17947:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      17947 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      intbitset/intbitset.c:18002:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      18002 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
            |                                                     ^~
      intbitset/intbitset.c: In function ‘__Pyx_PyIndex_AsSsize_t’:
      intbitset/intbitset.c:18453:45: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      18453 |     const digit* digits = ((PyLongObject*)b)->ob_digit;
            |                                             ^~
      error: command '/usr/bin/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 intbitset
  Running setup.py clean for intbitset

The second error is related to lxml:

  Building wheel for lxml (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [199 lines of output]
      /tmp/pip-install-4bs7yax9/lxml_7fd072000bfc4c74b530c7911ccd2801/setup.py:117: SyntaxWarning: invalid escape sequence '\.'
        is_interesting_header = re.compile('^(zconf|zlib|.*charset)\.h$').match
      Building lxml version 4.9.2.
      Building without Cython.
      Building against libxml2 2.10.4 and libxslt 1.1.39
      running bdist_wheel
      running build
      running build_py
      creating build
      creating build/lib.linux-x86_64-cpython-312
      creating build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/ElementInclude.py -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/__init__.py -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/_elementpath.py -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/builder.py -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/cssselect.py -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/doctestcompare.py -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/pyclasslookup.py -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/sax.py -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/usedoctest.py -> build/lib.linux-x86_64-cpython-312/lxml
      creating build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/__init__.py -> build/lib.linux-x86_64-cpython-312/lxml/includes
      creating build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/ElementSoup.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/__init__.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/_diffcommand.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/_html5builder.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/_setmixin.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/builder.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/clean.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/defs.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/diff.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/formfill.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/html5parser.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/soupparser.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      copying src/lxml/html/usedoctest.py -> build/lib.linux-x86_64-cpython-312/lxml/html
      creating build/lib.linux-x86_64-cpython-312/lxml/isoschematron
      copying src/lxml/isoschematron/__init__.py -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron
      copying src/lxml/etree.h -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/etree_api.h -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/lxml.etree.h -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/lxml.etree_api.h -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/etree.pyx -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/objectify.pyx -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/apihelpers.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/classlookup.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/cleanup.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/debug.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/docloader.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/dtd.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/extensions.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/iterparse.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/nsclasses.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/objectpath.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/parser.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/parsertarget.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/proxy.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/public-api.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/readonlytree.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/relaxng.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/saxparser.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/schematron.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/serializer.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/xinclude.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/xmlerror.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/xmlid.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/xmlschema.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/xpath.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/xslt.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/xsltext.pxi -> build/lib.linux-x86_64-cpython-312/lxml
      copying src/lxml/includes/__init__.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/c14n.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/config.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/dtdvalid.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/etreepublic.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/htmlparser.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/relaxng.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/schematron.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/tree.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/uri.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/xinclude.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/xmlerror.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/xmlparser.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/xmlschema.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/xpath.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/xslt.pxd -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/etree_defs.h -> build/lib.linux-x86_64-cpython-312/lxml/includes
      copying src/lxml/includes/lxml-version.h -> build/lib.linux-x86_64-cpython-312/lxml/includes
      creating build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources
      creating build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/rng
      copying src/lxml/isoschematron/resources/rng/iso-schematron.rng -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/rng
      creating build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl
      copying src/lxml/isoschematron/resources/xsl/XSD2Schtrn.xsl -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl
      creating build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_abstract_expand.xsl -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_dsdl_include.xsl -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_skeleton_for_xslt1.xsl -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_svrl_for_xslt1.xsl -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      copying src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/readme.txt -> build/lib.linux-x86_64-cpython-312/lxml/isoschematron/resources/xsl/iso-schematron-xslt1
      running build_ext
      building 'lxml.etree' extension
      creating build/temp.linux-x86_64-cpython-312
      creating build/temp.linux-x86_64-cpython-312/src
      creating build/temp.linux-x86_64-cpython-312/src/lxml
      gcc -fno-strict-overflow -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -fexceptions -fcf-protection -fexceptions -fcf-protection -fexceptions -fcf-protection -fPIC -DCYTHON_CLINE_IN_TRACEBACK=0 -I/usr/include/libxml2 -Isrc -Isrc/lxml/includes -I/home/armijn/git/scancode-toolkit/venv/include -I/usr/include/python3.12 -c src/lxml/etree.c -o build/temp.linux-x86_64-cpython-312/src/lxml/etree.o -w
      src/lxml/etree.c: In function ‘__Pyx_Raise’:
      src/lxml/etree.c:262394:34: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘curexc_traceback’
      262394 |         PyObject* tmp_tb = tstate->curexc_traceback;
             |                                  ^~
      src/lxml/etree.c:262397:19: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘curexc_traceback’
      262397 |             tstate->curexc_traceback = tb;
             |                   ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_AddObjC’:
      src/lxml/etree.c:263340:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      263340 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
             |                                                   ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_EqObjC’:
      src/lxml/etree.c:263457:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      263457 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
             |                                                   ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_SubtractObjC’:
      src/lxml/etree.c:265182:51: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      265182 |         const digit* digits = ((PyLongObject*)op1)->ob_digit;
             |                                                   ^~
      src/lxml/etree.c: In function ‘__Pyx__Coroutine_GetAwaitableIter’:
      src/lxml/etree.c:267536:53: error: ‘PyGenObject’ has no member named ‘gi_code’
      267536 |     if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) {
             |                                                     ^~
      src/lxml/etree.c:267536:102: error: ‘PyGenObject’ has no member named ‘gi_code’
      267536 |     if (PyGen_CheckExact(obj) && ((PyGenObject*)obj)->gi_code && ((PyCodeObject *)((PyGenObject*)obj)->gi_code)->co_flags & CO_ITERABLE_COROUTINE) {
             |                                                                                                      ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_As_int’:
      src/lxml/etree.c:268588:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      268588 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c:268643:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      268643 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_As_size_t’:
      src/lxml/etree.c:268897:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      268897 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c:268952:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      268952 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_As_unsigned_int’:
      src/lxml/etree.c:269093:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269093 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c:269148:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269148 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_As_signed__char’:
      src/lxml/etree.c:269289:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269289 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c:269344:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269344 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_As_unsigned_short’:
      src/lxml/etree.c:269523:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269523 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c:269578:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269578 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_As_xmlChar’:
      src/lxml/etree.c:269757:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269757 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c:269812:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269812 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c: In function ‘__Pyx_PyInt_As_long’:
      src/lxml/etree.c:269960:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      269960 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c:270015:53: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      270015 |             const digit* digits = ((PyLongObject*)x)->ob_digit;
             |                                                     ^~
      src/lxml/etree.c: In function ‘__Pyx_PyIndex_AsSsize_t’:
      src/lxml/etree.c:270403:45: error: ‘PyLongObject’ {aka ‘struct _longobject’} has no member named ‘ob_digit’
      270403 |     const digit* digits = ((PyLongObject*)b)->ob_digit;
             |                                             ^~
      Compile failed: command '/usr/bin/gcc' failed with exit code 1
      creating tmp
      cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInit4y5kk819.c -o tmp/xmlXPathInit4y5kk819.o
      /tmp/xmlXPathInit4y5kk819.c: In function ‘main’:
      /tmp/xmlXPathInit4y5kk819.c:3:5: warning: ‘xmlXPathInit’ is deprecated [-Wdeprecated-declarations]
          3 |     xmlXPathInit();
            |     ^~~~~~~~~~~~
      In file included from /tmp/xmlXPathInit4y5kk819.c:1:
      /usr/include/libxml2/libxml/xpath.h:564:21: note: declared here
        564 |                     xmlXPathInit                (void);
            |                     ^~~~~~~~~~~~
      cc tmp/xmlXPathInit4y5kk819.o -lxml2 -o a.out
      error: command '/usr/bin/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 lxml
  Running setup.py clean for lxml

How To Reproduce

Tell us how to reproduce the issue.

$ git pull
$ ./configure --clean
$ ./configure

System configuration

Default Fedora 39 installation.

@armijnhemel
Copy link
Contributor Author

armijnhemel commented Feb 15, 2024

The errors go away when I edit requirements.txt and update intbitset and lxml to versions that work with Python 3.12:

$ git diff
diff --git a/requirements.txt b/requirements.txt
index 439a6966aa..ef04c2c75a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -28,14 +28,14 @@ html5lib==1.1
 idna==3.3
 importlib-metadata==4.12.0
 inflection==0.5.1
-intbitset==3.0.2
+intbitset==3.1.0
 isodate==0.6.1
 jaraco.functools==3.5.1
 javaproperties==0.8.1
 Jinja2==3.1.2
 jsonstreams==0.6.0
 license-expression==30.1.1
-lxml==4.9.2
+lxml==4.9.4
 MarkupSafe==2.1.2
 more-itertools==8.13.0
 normality==2.3.3

@armijnhemel armijnhemel changed the title Building scancode from Git on Fedora 39 fails Building scancode from Git on Fedora 39 fails (Python 3.12) Feb 15, 2024
@pombredanne
Copy link
Member

What command did you use to build? ./configure --dev ?

@pombredanne
Copy link
Member

I was blind... I see the command now

pombredanne added a commit that referenced this issue Feb 15, 2024
Contributed-by: @armijnhemel
Reported-by: @armijnhemel
Reference: #3656
Signed-off-by: Philippe Ombredanne <pombredanne@nexb.com>
@armijnhemel
Copy link
Contributor Author

I can confirm that the #3658 fixes the issue, so closing this issue.

@AyanSinhaMahapatra
Copy link
Member

Thanks for confirming @armijnhemel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants