From e094ccc10cab3ddf31da47900b64f9d6d7ed11b5 Mon Sep 17 00:00:00 2001 From: Song Wenwu Date: Sun, 9 Jun 2013 08:33:34 +0800 Subject: [PATCH 1/3] glew: install libraries to $out/lib instead of $out/lib64 --- pkgs/development/libraries/glew/default.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix index 77686c9a7de..ebd60f61057 100644 --- a/pkgs/development/libraries/glew/default.nix +++ b/pkgs/development/libraries/glew/default.nix @@ -10,6 +10,10 @@ stdenv.mkDerivation rec { buildInputs = [ mesa x11 libXmu libXi ]; + patchPhase = '' + sed -i 's|lib64|lib|' config/Makefile.linux + ''; + installPhase = '' GLEW_DEST=$out make install mkdir -pv $out/share/doc/glew From 2ff588bb5d85a00f6e53b800f57d076b1eeb1dda Mon Sep 17 00:00:00 2001 From: Song Wenwu Date: Sun, 9 Jun 2013 12:12:15 +0800 Subject: [PATCH 2/3] pygame: update to 1.9.1 Enable PNG and JPEG support Use pygame-v4l patch from AUR --- .../python-modules/pygame/default.nix | 51 +++++------ .../python-modules/pygame/pygame-v4l.patch | 88 +++++++++++++++++++ 2 files changed, 109 insertions(+), 30 deletions(-) create mode 100644 pkgs/development/python-modules/pygame/pygame-v4l.patch diff --git a/pkgs/development/python-modules/pygame/default.nix b/pkgs/development/python-modules/pygame/default.nix index 347501f8a5b..912642e3ea9 100644 --- a/pkgs/development/python-modules/pygame/default.nix +++ b/pkgs/development/python-modules/pygame/default.nix @@ -1,46 +1,37 @@ -{ fetchurl, stdenv, python, pkgconfig, SDL, SDL_image, SDL_mixer, SDL_ttf -, numeric }: +{ stdenv, fetchurl, python, pkgconfig +, SDL, SDL_image, SDL_mixer, SDL_ttf, libpng, libjpeg +}: stdenv.mkDerivation { - name = "pygame-1.7"; + name = "pygame-1.9.1"; src = fetchurl { - url = http://www.pygame.org/ftp/pygame-1.7.1release.tar.gz ; - sha256 = "0hl0rmgjcqj217fibwyilz7w9jpg0kh7hsa7vyzd4cgqyliskpqi"; + url = "http://www.pygame.org/ftp/pygame-1.9.1release.tar.gz"; + sha256 = "0cyl0ww4fjlf289pjxa53q4klyn55ajvkgymw0qrdgp4593raq52"; }; - buildInputs = [python pkgconfig SDL SDL_image SDL_ttf numeric]; - + buildInputs = [ + python pkgconfig SDL SDL_image SDL_mixer SDL_ttf libpng libjpeg + ]; + + patches = [ ./pygame-v4l.patch ]; + configurePhase = '' - export LOCALBASE=/// - sed -e "/origincdirs =/a'${SDL_image}/include/SDL','${SDL_image}/include'," -i config_unix.py - sed -e "/origlibdirs =/aoriglibdirs += '${SDL_image}/lib'," -i config_unix.py - sed -e "/origincdirs =/a'${SDL_mixer}/include/SDL','${SDL_mixer}/include'," -i config_unix.py - sed -e "/origlibdirs =/aoriglibdirs += '${SDL_mixer}/lib'," -i config_unix.py - sed -e "/origincdirs =/a'${SDL_ttf}/include/SDL','${SDL_ttf}/include'," -i config_unix.py - sed -e "/origlibdirs =/aoriglibdirs += '${SDL_ttf}/lib'," -i config_unix.py - sed -e "/origincdirs =/a'${numeric}/include/python2.5'," -i config_unix.py + for i in ${SDL_image} ${SDL_mixer} ${SDL_ttf} ${libpng} ${libjpeg}; do + sed -e "/origincdirs =/a'$i/include'," -i config_unix.py + sed -e "/origlibdirs =/aoriglibdirs += '$i/lib'," -i config_unix.py + done - sed -e "s|get_python_inc(0)|\"${numeric}/include/python2.5\"|g" -i config_unix.py - - # XXX: `Numeric.pth' should be found by Python but it's not, hence the - # $PYTHONPATH setting below. Gobolinux has the same problem: - # http://bugs.python.org/issue1431 . - yes Y | \ - PYTHONPATH="${numeric}/lib/python2.5/site-packages/Numeric:$PYTHONPATH" \ - python config.py - - # That `config.py' is really deeply broken. - sed -i Setup \ - -e "s|^NUMERIC *=.*$|NUMERIC = -I${numeric}/include/python2.5|g ; - s|^MIXER *=.*$|MIXER = -I${SDL_mixer}/include -L${SDL_mixer}/lib -lSDL_mixer|g" + yes Y | LOCALBASE=/ python config.py ''; - buildPhase = "yes Y | python setup.py build"; + buildPhase = "python setup.py build"; - installPhase = "yes Y | python setup.py install --prefix=\${out} "; + installPhase = "python setup.py install --prefix=$out"; meta = { description = "Python library for games"; + homepage = "http://www.pygame.org/"; + licences = "LGPLv2.1+"; }; } diff --git a/pkgs/development/python-modules/pygame/pygame-v4l.patch b/pkgs/development/python-modules/pygame/pygame-v4l.patch new file mode 100644 index 00000000000..3b5a2b9d2bf --- /dev/null +++ b/pkgs/development/python-modules/pygame/pygame-v4l.patch @@ -0,0 +1,88 @@ +diff -crB pygame-1.9.1release/Setup.in pygame-1.9.1release-v4lpatch//Setup.in +*** pygame-1.9.1release/Setup.in Thu Jul 2 06:41:56 2009 +--- pygame-1.9.1release-v4lpatch//Setup.in Thu Mar 24 17:31:22 2011 +*************** +*** 34,40 **** + _numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG) + movie src/movie.c $(SDL) $(SMPEG) $(DEBUG) + scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG) +! _camera src/_camera.c src/camera_v4l2.c src/camera_v4l.c $(SDL) $(DEBUG) + pypm src/pypm.c $(SDL) $(PORTMIDI) $(PORTTIME) $(DEBUG) + + GFX = src/SDL_gfx/SDL_gfxPrimitives.c +--- 34,40 ---- + _numericsndarray src/_numericsndarray.c $(SDL) $(MIXER) $(DEBUG) + movie src/movie.c $(SDL) $(SMPEG) $(DEBUG) + scrap src/scrap.c $(SDL) $(SCRAP) $(DEBUG) +! _camera src/_camera.c src/camera_v4l2.c $(SDL) $(DEBUG) + pypm src/pypm.c $(SDL) $(PORTMIDI) $(PORTTIME) $(DEBUG) + + GFX = src/SDL_gfx/SDL_gfxPrimitives.c +diff -crB pygame-1.9.1release/src/_camera.c pygame-1.9.1release-v4lpatch//src/_camera.c +*** pygame-1.9.1release/src/_camera.c Sun Mar 15 20:30:41 2009 +--- pygame-1.9.1release-v4lpatch//src/_camera.c Thu Mar 24 16:58:18 2011 +*************** +*** 160,179 **** + { + #if defined(__unix__) + if (v4l2_open_device(self) == 0) { +! if (v4l_open_device(self) == 0) { +! v4l2_close_device(self); +! return NULL; +! } else { +! self->camera_type = CAM_V4L; +! if (v4l_init_device(self) == 0) { +! v4l2_close_device(self); +! return NULL; +! } +! if (v4l_start_capturing(self) == 0) { +! v4l2_close_device(self); +! return NULL; +! } +! } + } else { + self->camera_type = CAM_V4L2; + if (v4l2_init_device(self) == 0) { +--- 160,167 ---- + { + #if defined(__unix__) + if (v4l2_open_device(self) == 0) { +! v4l2_close_device(self); +! return NULL; + } else { + self->camera_type = CAM_V4L2; + if (v4l2_init_device(self) == 0) { +diff -crB pygame-1.9.1release/src/camera.h pygame-1.9.1release-v4lpatch//src/camera.h +*** pygame-1.9.1release/src/camera.h Fri Oct 10 04:37:10 2008 +--- pygame-1.9.1release-v4lpatch//src/camera.h Thu Mar 24 16:44:32 2011 +*************** +*** 39,45 **** + + #include /* for videodev2.h */ + +- #include + #include + #endif + +--- 39,44 ---- +*************** +*** 51,57 **** + #define RGB_OUT 1 + #define YUV_OUT 2 + #define HSV_OUT 4 +- #define CAM_V4L 1 + #define CAM_V4L2 2 + + struct buffer +--- 50,55 ---- +*************** +*** 111,118 **** + int v4l2_close_device (PyCameraObject* self); + int v4l2_open_device (PyCameraObject* self); + +- /* internal functions specific to v4l */ +- int v4l_open_device (PyCameraObject* self); +- int v4l_init_device(PyCameraObject* self); +- int v4l_start_capturing(PyCameraObject* self); + #endif +--- 109,112 ---- From d4c6b5924db3ea469233b12aeca498ac78016464 Mon Sep 17 00:00:00 2001 From: Song Wenwu Date: Sun, 9 Jun 2013 12:45:56 +0800 Subject: [PATCH 3/3] add Ren'Py 6.15.5 Ren'Py is a visual novel engine that helps you use words, images, and sounds to tell stories with the computer. This is just the minimal launcher. --- .../interpreters/renpy/default.nix | 49 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 5 ++ 2 files changed, 54 insertions(+) create mode 100644 pkgs/development/interpreters/renpy/default.nix diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix new file mode 100644 index 00000000000..9b34f9a1fef --- /dev/null +++ b/pkgs/development/interpreters/renpy/default.nix @@ -0,0 +1,49 @@ +{ stdenv, fetchurl, python, pkgconfig, wrapPython +, pygame, SDL, libpng, ffmpeg, freetype, glew, mesa, fribidi, zlib +}: + +stdenv.mkDerivation { + name = "renpy-6.15.5"; + + src = fetchurl { + url = "http://www.renpy.org/dl/6.15.5/renpy-6.15.5-source.tar.bz2"; + sha256 = "1k57dak1yk5iyxripqn2syhwwkh70y00pnnb9i1qf19lmiirxa60"; + }; + + buildInputs = [ + python pkgconfig wrapPython + SDL libpng ffmpeg freetype glew mesa fribidi zlib pygame + ]; + + pythonPath = [ pygame ]; + + RENPY_DEPS_INSTALL = stdenv.lib.concatStringsSep "::" (map (path: "${path}") [ + SDL libpng ffmpeg freetype glew mesa fribidi zlib + ]); + + buildPhase = '' + python module/setup.py build + ''; + + installPhase = '' + mkdir -p $out/share/renpy + cp -r renpy renpy.py $out/share/renpy + python module/setup.py install --prefix=$out --install-lib=$out/share/renpy/module + + wrapPythonPrograms + makeWrapper ${python}/bin/python $out/bin/renpy \ + --set PYTHONPATH $program_PYTHONPATH \ + --set RENPY_BASE $out/share/renpy \ + --set RENPY_LESS_UPDATES 1 \ + --add-flags "-O $out/share/renpy/renpy.py" + ''; + + NIX_CFLAGS_COMPILE = "-I${pygame}/include/${python.libPrefix}"; + + meta = { + description = "Ren'Py Visual Novel Engine"; + homepage = "http://renpy.org/"; + licence = "MIT"; + platforms = stdenv.lib.platforms.linux; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1d0a0bb3990..bf64937a1ce 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3026,6 +3026,11 @@ let regina = callPackage ../development/interpreters/regina {}; + renpy = callPackage ../development/intepreters/renpy { + ffmpeg = ffmpeg_1; + wrapPython = pythonPackages.wrapPython; + }; + ruby18 = callPackage ../development/interpreters/ruby/ruby-18.nix { }; ruby19 = callPackage ../development/interpreters/ruby/ruby-19.nix { }; ruby2 = lowPrio (callPackage ../development/interpreters/ruby/ruby-2.0.nix { });