diff --git a/pkgs/development/python-modules/kivy/default.nix b/pkgs/development/python-modules/kivy/default.nix index a0a9bbcd36be..3eff452ef759 100644 --- a/pkgs/development/python-modules/kivy/default.nix +++ b/pkgs/development/python-modules/kivy/default.nix @@ -3,6 +3,7 @@ stdenv, buildPythonPackage, fetchFromGitHub, + fetchpatch, pkg-config, cython, docutils, @@ -34,6 +35,15 @@ buildPythonPackage rec { hash = "sha256-q8BoF/pUTW2GMKBhNsqWDBto5+nASanWifS9AcNRc8Q="; }; + patches = [ + # Fix compat with newer Cython + (fetchpatch { + name = "0001-kivy-Remove-old-Python-2-long.patch"; + url = "https://github.com/kivy/kivy/commit/5a1b27d7d3bdee6cedb55440bfae9c4e66fb3c68.patch"; + hash = "sha256-GDNYL8dC1Rh4KJ8oPiIjegOJGzRQ1CsgWQeAvx9+Rc8="; + }) + ]; + postPatch = '' substituteInPlace pyproject.toml \ --replace-fail "setuptools~=69.2.0" "setuptools" \ @@ -43,7 +53,7 @@ buildPythonPackage rec { '' + lib.optionalString stdenv.hostPlatform.isLinux '' substituteInPlace kivy/lib/mtdev.py \ - --replace-fail "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${mtdev}/lib/libmtdev.so.1')" + --replace-fail "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${lib.getLib mtdev}/lib/libmtdev.so.1')" ''; build-system = [ @@ -85,20 +95,24 @@ buildPythonPackage rec { filetype ]; - KIVY_NO_CONFIG = 1; - KIVY_NO_ARGS = 1; - KIVY_NO_FILELOG = 1; - # prefer pkg-config over hardcoded framework paths - USE_OSX_FRAMEWORKS = 0; - # work around python distutils compiling C++ with $CC (see issue #26709) - env.NIX_CFLAGS_COMPILE = toString ( - lib.optionals stdenv.cc.isGNU [ - "-Wno-error=incompatible-pointer-types" - ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - "-I${lib.getInclude stdenv.cc.libcxx}/include/c++/v1" - ] - ); + env = { + KIVY_NO_CONFIG = 1; + KIVY_NO_ARGS = 1; + KIVY_NO_FILELOG = 1; + + # prefer pkg-config over hardcoded framework paths + USE_OSX_FRAMEWORKS = 0; + + # work around python distutils compiling C++ with $CC (see issue #26709) + NIX_CFLAGS_COMPILE = toString ( + lib.optionals stdenv.cc.isGNU [ + "-Wno-error=incompatible-pointer-types" + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + "-I${lib.getInclude stdenv.cc.libcxx}/include/c++/v1" + ] + ); + }; /* We cannot run tests as Kivy tries to import itself before being fully @@ -107,11 +121,11 @@ buildPythonPackage rec { doCheck = false; pythonImportsCheck = [ "kivy" ]; - meta = with lib; { + meta = { changelog = "https://github.com/kivy/kivy/releases/tag/${src.tag}"; description = "Library for rapid development of hardware-accelerated multitouch applications"; homepage = "https://github.com/kivy/kivy"; - license = licenses.mit; - maintainers = with maintainers; [ risson ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ risson ]; }; }