diff options
author | Ryan Burns <52847440+r-burns@users.noreply.github.com> | 2021-10-23 00:56:23 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-23 00:56:23 -0700 |
commit | 7dba0602cf86f794b0efa7942655881176e76f5e (patch) | |
tree | 1acfea61444978e7129c50d9be037866afb77f47 | |
parent | 8d61c37c925993ec6829f871f3adc43c4a8b2fa0 (diff) | |
parent | 5b6d500300ba282f966d2da530eda0b4b96262b9 (diff) |
Merge pull request #141434 from bmwalters/kivy-darwin
python3Packages.kivy: add darwin support
-rw-r--r-- | pkgs/development/python-modules/kivy/default.nix | 52 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 1 |
2 files changed, 38 insertions, 15 deletions
diff --git a/pkgs/development/python-modules/kivy/default.nix b/pkgs/development/python-modules/kivy/default.nix index d4fa39c0c3631..0e8b81ed19cd8 100644 --- a/pkgs/development/python-modules/kivy/default.nix +++ b/pkgs/development/python-modules/kivy/default.nix @@ -1,8 +1,11 @@ -{ lib -, buildPythonPackage, fetchPypi +{ lib, stdenv +, buildPythonPackage, fetchFromGitHub, fetchpatch , pkg-config, cython, docutils , kivy-garden -, mesa, mtdev, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer, gst_all_1 +, mesa, mtdev, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer +, ApplicationServices, AVFoundation, libcxx +, withGstreamer ? true +, gst_all_1 , pillow, requests, pygments }: @@ -10,11 +13,21 @@ buildPythonPackage rec { pname = "Kivy"; version = "2.0.0"; - src = fetchPypi { - inherit pname version; - sha256 = "1n0j9046vgjncy50v06r3wcg3q2l37jp8n0cznr64dz48kml8pnj"; + # use github since pypi line endings are CRLF and patches do not apply + src = fetchFromGitHub { + owner = "kivy"; + repo = "kivy"; + rev = version; + sha256 = "sha256-/7GSVQUkYSBEnLVBizMnZAZZxvXVN4r4lskyOgLEcew="; }; + patches = [ + (fetchpatch { + url = "https://github.com/kivy/kivy/commit/1c0656c4472817677cf3b08be504de9ca6b1713f.patch"; + sha256 = "sha256-phAjMaC3LQuvufwiD0qXzie5B+kezCf8FpKeQMhy/ms="; + }) + ]; + nativeBuildInputs = [ pkg-config cython @@ -22,19 +35,24 @@ buildPythonPackage rec { ]; buildInputs = [ - mesa - mtdev SDL2 SDL2_image SDL2_ttf SDL2_mixer - + ] ++ lib.optionals stdenv.isLinux [ + mesa + mtdev + ] ++ lib.optionals stdenv.isDarwin [ + ApplicationServices + AVFoundation + libcxx + ] ++ lib.optionals withGstreamer (with gst_all_1; [ # NOTE: The degree to which gstreamer actually works is unclear - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - gst_all_1.gst-plugins-bad - ]; + gstreamer + gst-plugins-base + gst-plugins-good + gst-plugins-bad + ]); propagatedBuildInputs = [ kivy-garden @@ -46,8 +64,12 @@ buildPythonPackage rec { 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 = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1"; - postPatch = '' + postPatch = lib.optionalString stdenv.isLinux '' substituteInPlace kivy/lib/mtdev.py \ --replace "LoadLibrary('libmtdev.so.1')" "LoadLibrary('${mtdev}/lib/libmtdev.so.1')" ''; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index fafa812eb6ea7..71ce88d4672f7 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -4105,6 +4105,7 @@ in { kivy = callPackage ../development/python-modules/kivy { inherit (pkgs) mesa; + inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices AVFoundation; }; kivy-garden = callPackage ../development/python-modules/kivy-garden { }; |