Merge pull request #604 from iyzsong/renpy

Add Ren'Py visual novel engine
This commit is contained in:
Peter Simons 2013-06-09 02:10:21 -07:00
commit cc6dc84603
5 changed files with 167 additions and 30 deletions

View file

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

View file

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

View file

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

View file

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

View file

@ -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 { });