From f83cbf20292cfde64e2df49bf0bd84338749c49e Mon Sep 17 00:00:00 2001 From: rardiol Date: Wed, 21 Mar 2018 23:26:29 -0300 Subject: [PATCH] Renpy and pygame_sdl2 update - 6.99.14 (#33943) * pygame_sdl2: 6.99.10.1227 -> 2.1.0-6.99.14 * renpy: 6.99.12.4 -> 6.99.14 --- .../interpreters/renpy/default.nix | 34 ++++++++++++------- .../interpreters/renpy/launcherenv.patch | 14 ++++++++ .../python-modules/pygame_sdl2/default.nix | 30 +++++++++++----- 3 files changed, 56 insertions(+), 22 deletions(-) create mode 100644 pkgs/development/interpreters/renpy/launcherenv.patch diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix index 658c5aebe5cb82..da271db2ff0e23 100644 --- a/pkgs/development/interpreters/renpy/default.nix +++ b/pkgs/development/interpreters/renpy/default.nix @@ -5,31 +5,37 @@ with pythonPackages; -stdenv.mkDerivation { - name = "renpy-6.99.12.4"; +stdenv.mkDerivation rec { + name = "renpy-${version}"; + version = "6.99.14"; - meta = { + meta = with stdenv.lib; { description = "Ren'Py Visual Novel Engine"; homepage = http://renpy.org/; - license = stdenv.lib.licenses.mit; - platforms = stdenv.lib.platforms.linux; - # This is an ancient version, last updated in 2014 (3d59f42ce); it fails to - # build with the most recent pygame version, and fails to run with 1.9.1. - broken = true; + license = licenses.mit; + platforms = platforms.linux; }; src = fetchurl { - url = "http://www.renpy.org/dl/6.99.12.4/renpy-6.99.12.4-source.tar.bz2"; - sha256 = "035342rr39zp7krp08z0xhcl73gqbqyilshgmljq0ynfrxxckn35"; + url = "https://www.renpy.org/dl/${version}/renpy-${version}-source.tar.bz2"; + sha256 = "00r1l9rd9wj8zfh279n7sak894xxhxqp3rcwg41g0md8yfiysc4h"; }; + patches = [ + ./launcherenv.patch + ]; + + postPatch = '' + substituteInPlace launcher/game/choose_directory.rpy --replace /usr/bin/python ${python.interpreter} + ''; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ - python cython wrapPython + python cython wrapPython tkinter SDL2 libpng ffmpeg freetype glew libGLU_combined fribidi zlib pygame_sdl2 glib ]; - pythonPath = [ pygame_sdl2 ]; + pythonPath = [ pygame_sdl2 tkinter ]; RENPY_DEPS_INSTALL = stdenv.lib.concatStringsSep "::" (map (path: "${path}") [ SDL2 SDL2.dev libpng ffmpeg ffmpeg.out freetype glew.dev glew.out libGLU_combined fribidi zlib @@ -41,7 +47,9 @@ stdenv.mkDerivation { installPhase = '' mkdir -p $out/share/renpy - cp -r renpy renpy.py $out/share/renpy + cp -vr * $out/share/renpy + rm -rf $out/share/renpy/module + python module/setup.py install --prefix=$out --install-lib=$out/share/renpy/module makeWrapper ${python}/bin/python $out/bin/renpy \ diff --git a/pkgs/development/interpreters/renpy/launcherenv.patch b/pkgs/development/interpreters/renpy/launcherenv.patch new file mode 100644 index 00000000000000..85a6c6439b9c00 --- /dev/null +++ b/pkgs/development/interpreters/renpy/launcherenv.patch @@ -0,0 +1,14 @@ +# The launcher game starts projects in a separate python process +# with the -E flag, which prevents the nix set PYTHONPATH envvar +# from taking effect, preventing the loading of pygame_sdl2 +--- a/launcher/game/project.rpy ++++ b/launcher/game/project.rpy +@@ -239,7 +239,7 @@ + raise Exception("Python interpreter not found: %r", executables) + + # Put together the basic command line. +- cmd = [ executable, "-EO", sys.argv[0] ] ++ cmd = [ executable, "-O", sys.argv[0] ] + + cmd.append(self.path) + cmd.extend(args) diff --git a/pkgs/development/python-modules/pygame_sdl2/default.nix b/pkgs/development/python-modules/pygame_sdl2/default.nix index eab56f9f7ac07a..08c266da6963af 100644 --- a/pkgs/development/python-modules/pygame_sdl2/default.nix +++ b/pkgs/development/python-modules/pygame_sdl2/default.nix @@ -1,18 +1,30 @@ -{ stdenv, pkgs, buildPythonPackage, fetchFromGitHub, isPy27 +{ stdenv, pkgs, buildPythonPackage, fetchurl, isPy27, fetchpatch , cython, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer, libjpeg, libpng }: buildPythonPackage rec { pname = "pygame_sdl2"; - version = "6.99.10.1227"; - name = "${pname}-${version}"; - - src = fetchFromGitHub { - owner = "renpy"; - repo = "${pname}"; - rev = "renpy-${version}"; - sha256 = "10n6janvqh5adn7pcijqwqfh234sybjz788kb8ac6b4l11hy2lx1"; + version = "2.1.0"; + renpy_version = "6.99.14"; + name = "${pname}-${version}-${renpy_version}"; + + src = fetchurl { + url = "https://www.renpy.org/dl/${renpy_version}/pygame_sdl2-${version}-for-renpy-${renpy_version}.tar.gz"; + sha256 = "1zsnb2bivbwysgxmfg9iv12arhpf3gqkmqinhciz955hlqv016b9"; }; + # force rebuild of headers needed for install + prePatch = '' + rm -rf gen gen3 + ''; + + patches = [ + # fix for recent sdl2 + (fetchpatch { + url = "https://github.com/apoleon/pygame_sdl2/commit/ced6051f4a4559a725804cc58c079e1efea0a573.patch"; + sha256 = "08rqjzvdlmmdf8kyd8ws5lzjy1mrwnds4fdy38inkyw7saydcxyr"; + }) + ]; + buildInputs = [ SDL2 SDL2_image SDL2_ttf SDL2_mixer cython libjpeg libpng