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

compat: backport bls-signatures#332 (python 3.11), fix CMake 3.14 compatibility #61

Merged
merged 3 commits into from
Jan 30, 2023

Conversation

kwvg
Copy link

@kwvg kwvg commented Jan 19, 2023

Description

This pull request aims to resolve two things

  • Failing builds on Python 3.11

    In file included from [...]/bls-signatures/python-bindings/pythonbindings.cpp:15:
    In file included from [...]/bls-signatures/build/_deps/pybind11-src/include/pybind11/operators.h:12:
    In file included from [...]/bls-signatures/build/_deps/pybind11-src/include/pybind11/pybind11.h:13:
    In file included from [...]/bls-signatures/build/_deps/pybind11-src/include/pybind11/attr.h:13:
    In file included from [...]/bls-signatures/build/_deps/pybind11-src/include/pybind11/cast.h:16:
    [...]/bls-signatures/build/_deps/pybind11-src/include/pybind11/detail/type_caster_base.h:482:26: error: member access into incomplete type 'PyFrameObject' (aka '_frame')
                frame = frame->f_back;
                             ^
    /usr/local/opt/python@3.11/Frameworks/Python.framework/Versions/3.11/include/python3.11/pytypedefs.h:22:16: note: forward declaration of '_frame'
    typedef struct _frame PyFrameObject;
                   ^
    [ 99%] Linking CXX executable runbench
    [ 99%] Built target runbench
    1 error generated.
    

    Rolling release distros have started to ship with Python 3.11. The functionality needed for Python 3.11 support was added to pybind in 2.10.0 and the version bump along with some other changes were already implemented upstream, so it was only backported.

  • Failing builds on CMake <3.19

    CMake Error at depends/catch2/CMakeLists.txt:22 (add_library):
      add_library INTERFACE library requires no source arguments.
    Call Stack (most recent call first):
      src/CMakeLists.txt:44 (include)
    
    
    CMake Error at depends/catch2/CMakeLists.txt:28 (target_include_directories):
      Cannot specify include directories for target "catch2" which is not built
      by this project.
    Call Stack (most recent call first):
      src/CMakeLists.txt:44 (include)
    

    Ubuntu 20.04 LTS (expected standard support sunset date April 2025) currently ships with CMake 3.16.3 and the develop's CMakeLists.txt requires a minimum version of 3.14.0 but with changes introduced with build: bump pybind, stop using FindPkgConfig for Catch2 #41, a dependent CMakeFile now relies on functionality introduced in CMake 3.19 ("An interface library target may be created with source files"), which may not be shipped in LTS distributions

@kwvg kwvg changed the title compat: backport bls-signatures#332 (python 3.11) compat: backport bls-signatures#332 (python 3.11), fix CMake 3.16 compatibility Jan 19, 2023
@kwvg kwvg changed the title compat: backport bls-signatures#332 (python 3.11), fix CMake 3.16 compatibility compat: backport bls-signatures#332 (python 3.11), fix CMake 3.14 compatibility Jan 19, 2023
@kwvg kwvg marked this pull request as ready for review January 19, 2023 14:09
Copy link

@UdjinM6 UdjinM6 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, utACK

Copy link
Member

@PastaPastaPasta PastaPastaPasta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

utACK

@PastaPastaPasta PastaPastaPasta merged commit 38a8f76 into dashpay:develop Jan 30, 2023
@kwvg kwvg deleted the compat_support branch May 28, 2023 09:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants