Merge pull request #311439 from pluiedev/zhf-24.05/renpy

renpy: 8.1.3 -> 8.2.1, unbreak, modernize
This commit is contained in:
7c6f434c 2024-05-14 00:06:20 +00:00 committed by GitHub
commit f778a3d907
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 107 additions and 49 deletions

View File

@ -1,6 +1,20 @@
{ lib, stdenv, fetchFromGitHub, python3, pkg-config, SDL2 {
, libpng, ffmpeg, freetype, glew, libGL, libGLU, fribidi, zlib lib,
, makeWrapper stdenv,
fetchFromGitHub,
python3,
pkg-config,
SDL2,
libpng,
ffmpeg,
freetype,
glew,
libGL,
libGLU,
fribidi,
zlib,
harfbuzz,
makeWrapper,
}: }:
let let
@ -8,42 +22,71 @@ let
# base_version is of the form major.minor.patch # base_version is of the form major.minor.patch
# vc_version is of the form YYMMDDCC # vc_version is of the form YYMMDDCC
# version corresponds to the tag on GitHub # version corresponds to the tag on GitHub
base_version = "8.1.3"; base_version = "8.2.1";
vc_version = "23091805"; vc_version = "24030407";
in stdenv.mkDerivation rec {
pname = "renpy";
version = "${base_version}.${vc_version}"; version = "${base_version}.${vc_version}";
in
stdenv.mkDerivation {
pname = "renpy";
inherit version;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "renpy"; owner = "renpy";
repo = "renpy"; repo = "renpy";
rev = version; rev = version;
sha256 = "sha256-bYqnKSWY8EEGr1+12cWeT9/ZSv5OrKLsRqCnnIruDQw="; hash = "sha256-07Hj8mJGR0+Pn1DQ+sK5YQ3x3CTMsZ5h5yEoz44b2TM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [
pkg-config pkg-config
makeWrapper makeWrapper
python3.pkgs.cython # Ren'Py currently does not compile on Cython 3.x.
# See https://github.com/renpy/renpy/issues/5359
python3.pkgs.cython_0
python3.pkgs.setuptools python3.pkgs.setuptools
]; ];
buildInputs = [ buildInputs =
SDL2 libpng ffmpeg freetype glew libGLU libGL fribidi zlib [
] ++ (with python3.pkgs; [ SDL2
python pygame-sdl2 tkinter future six pefile requests ecdsa libpng
ffmpeg
freetype
glew
libGLU
libGL
fribidi
zlib
harfbuzz
]
++ (with python3.pkgs; [
python
pygame-sdl2
tkinter
future
six
pefile
requests
ecdsa
]); ]);
RENPY_DEPS_INSTALL = lib.concatStringsSep "::" (map (path: path) [ RENPY_DEPS_INSTALL = lib.concatStringsSep "::" [
SDL2 SDL2.dev libpng ffmpeg.lib freetype glew.dev libGLU libGL fribidi zlib SDL2
]); SDL2.dev
libpng
ffmpeg.lib
freetype
glew.dev
libGLU
libGL
fribidi
zlib
harfbuzz.dev
];
enableParallelBuilding = true; enableParallelBuilding = true;
patches = [ patches = [ ./shutup-erofs-errors.patch ];
./shutup-erofs-errors.patch
];
postPatch = '' postPatch = ''
cp tutorial/game/tutorial_director.rpy{m,} cp tutorial/game/tutorial_director.rpy{m,}
@ -53,7 +96,7 @@ in stdenv.mkDerivation rec {
official = False official = False
nightly = False nightly = False
# Look at https://renpy.org/latest.html for what to put. # Look at https://renpy.org/latest.html for what to put.
version_name = 'Where No One Has Gone Before' version_name = '64bit Sensation'
EOF EOF
''; '';
@ -79,15 +122,17 @@ in stdenv.mkDerivation rec {
env.NIX_CFLAGS_COMPILE = with python3.pkgs; "-I${pygame-sdl2}/include/${python.libPrefix}"; env.NIX_CFLAGS_COMPILE = with python3.pkgs; "-I${pygame-sdl2}/include/${python.libPrefix}";
meta = with lib; { meta = {
description = "Visual Novel Engine"; description = "Visual Novel Engine";
mainProgram = "renpy"; mainProgram = "renpy";
homepage = "https://renpy.org/"; homepage = "https://renpy.org/";
changelog = "https://renpy.org/doc/html/changelog.html"; changelog = "https://renpy.org/doc/html/changelog.html";
license = licenses.mit; license = lib.licenses.mit;
platforms = platforms.linux; platforms = lib.platforms.linux;
maintainers = with maintainers; [ shadowrz ]; maintainers = with lib.maintainers; [ shadowrz ];
}; };
passthru = { inherit base_version vc_version; }; passthru = {
inherit base_version vc_version;
};
} }

View File

@ -1,16 +1,32 @@
{ lib, buildPythonPackage, fetchurl, isPy27, renpy {
, cython_0, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer, libjpeg, libpng }: lib,
buildPythonPackage,
buildPythonPackage rec { fetchurl,
isPy27,
renpy,
cython_0,
SDL2,
SDL2_image,
SDL2_ttf,
SDL2_mixer,
libjpeg,
libpng,
setuptools,
}:
let
pname = "pygame-sdl2"; pname = "pygame-sdl2";
version = "2.1.0"; version = "2.1.0";
format = "setuptools";
renpy_version = renpy.base_version; renpy_version = renpy.base_version;
in
buildPythonPackage {
inherit pname version;
name = "${pname}-${version}-${renpy_version}"; name = "${pname}-${version}-${renpy_version}";
pyproject = true;
src = fetchurl { src = fetchurl {
url = "https://www.renpy.org/dl/${renpy_version}/pygame_sdl2-${version}+renpy${renpy_version}.tar.gz"; url = "https://www.renpy.org/dl/${renpy_version}/pygame_sdl2-${version}+renpy${renpy_version}.tar.gz";
hash = "sha256-mrfrsRAVEqw7fwtYdeATp/8AtMn74x9pJEXwYZPOl2I="; hash = "sha256-Zib39NyQ1pGVCWPrK5/Tl3dAylUlmKZKxU8pf+OpAdY=";
}; };
# force rebuild of headers needed for install # force rebuild of headers needed for install
@ -24,27 +40,26 @@ buildPythonPackage rec {
''; '';
nativeBuildInputs = [ nativeBuildInputs = [
SDL2.dev cython_0 SDL2.dev
cython_0
setuptools
]; ];
buildInputs = [ buildInputs = [
SDL2 SDL2_image SDL2_ttf SDL2_mixer SDL2
libjpeg libpng SDL2_image
SDL2_ttf
SDL2_mixer
libjpeg
libpng
]; ];
doCheck = isPy27; # python3 tests are non-functional doCheck = isPy27; # python3 tests are non-functional
postInstall = '' meta = {
( cd "$out"/include/python*/ ;
ln -s pygame-sdl2 pygame_sdl2 || true ; )
'';
meta = with lib; {
description = "A reimplementation of parts of pygame API using SDL2"; description = "A reimplementation of parts of pygame API using SDL2";
homepage = "https://github.com/renpy/pygame_sdl2"; homepage = "https://github.com/renpy/pygame_sdl2";
# Some parts are also available under Zlib License license = with lib.licenses; [ lgpl2 zlib ];
license = licenses.lgpl2; maintainers = with lib.maintainers; [ raskin ];
maintainers = with maintainers; [ raskin ];
}; };
} }

View File

@ -12387,8 +12387,6 @@ with pkgs;
redsocks = callPackage ../tools/networking/redsocks { }; redsocks = callPackage ../tools/networking/redsocks { };
renpy = callPackage ../development/interpreters/renpy { };
rep = callPackage ../development/tools/rep { }; rep = callPackage ../development/tools/rep { };
repseek = callPackage ../applications/science/biology/repseek { }; repseek = callPackage ../applications/science/biology/repseek { };