Commit c1dede98 authored by Ben Wolsieffer's avatar Ben Wolsieffer Committed by github-actions[bot]
Browse files

python3Packages.pykdl: use system pybind11

pykdl 1.5.1 only supports using a vendored copy of pybind11, but this
version doesn't support Python 3.11. Therefore, backport an upstream
patch that allows using a system pybind11 installation.

(cherry picked from commit 20135add)
parent d572fb05
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
{ lib, stdenv, toPythonModule, cmake, orocos-kdl, eigen, python }:
{ lib, stdenv, toPythonModule, fetchpatch, cmake, pybind11, orocos-kdl, eigen
, python }:

toPythonModule (stdenv.mkDerivation {
  pname = "pykdl";
@@ -6,13 +7,22 @@ toPythonModule (stdenv.mkDerivation {

  sourceRoot = "${orocos-kdl.src.name}/python_orocos_kdl";

  patches = [
    # Support system pybind11; the vendored copy doesn't support Python 3.11
    (fetchpatch {
      url = "https://github.com/orocos/orocos_kinematics_dynamics/commit/e25a13fc5820dbca6b23d10506407bca9bcdd25f.patch";
      hash = "sha256-NGMVGEYsa7hVX+SgRZgeSm93BqxFR1uiyFvzyF5H0Y4=";
      stripLen = 1;
    })
  ];

  # Fix hardcoded installation path
  postPatch = ''
    substituteInPlace CMakeLists.txt \
      --replace dist-packages site-packages
  '';

  nativeBuildInputs = [ cmake ];
  nativeBuildInputs = [ cmake pybind11 ];
  buildInputs = [ orocos-kdl eigen ];
  propagatedBuildInputs = [ python ];