summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
authorSong Wenwu <iyzsong@gmail.com>2013-06-09 12:12:15 +0800
committerSong Wenwu <iyzsong@gmail.com>2013-06-09 12:12:15 +0800
commit2ff588bb5d85a00f6e53b800f57d076b1eeb1dda (patch)
tree961d271f2348a5f7b80d6538725758e0746c55c1 /pkgs/development/python-modules
parente094ccc10cab3ddf31da47900b64f9d6d7ed11b5 (diff)
downloadnixlib-2ff588bb5d85a00f6e53b800f57d076b1eeb1dda.tar
nixlib-2ff588bb5d85a00f6e53b800f57d076b1eeb1dda.tar.gz
nixlib-2ff588bb5d85a00f6e53b800f57d076b1eeb1dda.tar.bz2
nixlib-2ff588bb5d85a00f6e53b800f57d076b1eeb1dda.tar.lz
nixlib-2ff588bb5d85a00f6e53b800f57d076b1eeb1dda.tar.xz
nixlib-2ff588bb5d85a00f6e53b800f57d076b1eeb1dda.tar.zst
nixlib-2ff588bb5d85a00f6e53b800f57d076b1eeb1dda.zip
pygame: update to 1.9.1
Enable PNG and JPEG support
Use pygame-v4l patch from AUR
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/pygame/default.nix53
-rw-r--r--pkgs/development/python-modules/pygame/pygame-v4l.patch88
2 files changed, 110 insertions, 31 deletions
diff --git a/pkgs/development/python-modules/pygame/default.nix b/pkgs/development/python-modules/pygame/default.nix
index 347501f8a5b7..912642e3ea94 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
-
-    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"
+    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
+
+    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 000000000000..3b5a2b9d2bf9
--- /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 <asm/types.h>          /* for videodev2.h */
+  
+-     #include <linux/videodev.h>
+      #include <linux/videodev2.h>
+  #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 ----