pygame: update to 1.9.1

Enable PNG and JPEG support
Use pygame-v4l patch from AUR
This commit is contained in:
Song Wenwu 2013-06-09 12:12:15 +08:00
parent e094ccc10c
commit 2ff588bb5d
2 changed files with 109 additions and 30 deletions

@ -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+";
};
}

@ -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 ----