Uploaded image for project: 'Qpid Proton'
  1. Qpid Proton
  2. PROTON-2458

Python Qpid Proton won't compile on Windows with Python 3.10

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • proton-c-0.36.0
    • proton-c-0.38.0
    • python-binding
    • None

    Description

      https://github.com/jiridanek/qpid-proton/runs/4127177911?check_suite_focus=true#step:11:548

      This is main branch with one extra commit that changes Python version in GitHub Actions to 3.10. Note that in Yaml it is necessary to quote the 3.10, otherwise you end up passing a float of 3.1.

        cproton_wrap.c
      D:\a\qpid-proton\qpid-proton\BLD\python\dist\include\proton/object.h(242): error C2061: syntax error: identifier 'pn_list_index' [D:\a\qpid-proton\qpid-proton\BLD\python\py_pkg_wheel.vcxproj]
      D:\a\qpid-proton\qpid-proton\BLD\python\dist\include\proton/object.h(242): error C2059: syntax error: ';' [D:\a\qpid-proton\qpid-proton\BLD\python\py_pkg_wheel.vcxproj]
      D:\a\qpid-proton\qpid-proton\BLD\python\dist\include\proton/object.h(242): error C2059: syntax error: '<parameter-list>' [D:\a\qpid-proton\qpid-proton\BLD\python\py_pkg_wheel.vcxproj]
      D:\a\qpid-proton\qpid-proton\BLD\python\dist\include\proton/object.h(280): error C2061: syntax error: identifier 'pn_string_put' [D:\a\qpid-proton\qpid-proton\BLD\python\py_pkg_wheel.vcxproj]
      

      It looks that Python header file stopped defining ssize_t alias on Windows. The Proton headers have a special case for the define that assumes Python will define it.

      # ifndef PNI_DEFINE_SSIZE_T
      /* ssize_t def is needed, unless third party definition interferes, e.g. python/swig */
      #  ifndef Py_CONFIG_H
      #   define PNI_DEFINE_SSIZE_T
      #  endif
      # endif
      

      On the Python side, see https://bugs.python.org/issue11717 and https://github.com/python/cpython/pull/24479

      Attachments

        Activity

          People

            astitcher Andrew Stitcher
            jdanek Jiri Daněk
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: