diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/kivy/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/kivy/default.nix | 52 |
1 files changed, 37 insertions, 15 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/kivy/default.nix b/nixpkgs/pkgs/development/python-modules/kivy/default.nix index d4fa39c0c363..0e8b81ed19cd 100644 --- a/nixpkgs/pkgs/development/python-modules/kivy/default.nix +++ b/nixpkgs/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')" ''; |