diff options
author | 7c6f434c <7c6f434c@mail.ru> | 2024-05-14 00:06:20 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-14 00:06:20 +0000 |
commit | f778a3d90720e989fdf21b3d3cfe870cc91f397a (patch) | |
tree | b55ec7501aa2450dc2e2435681be8608ca326cea /pkgs/by-name/re | |
parent | 80bfa2e77402f3027112fe20bfd33d3929d3271a (diff) | |
parent | 3ac42f62c70eb9613f49458c5f3ab0ecdea8a9d8 (diff) |
Merge pull request #311439 from pluiedev/zhf-24.05/renpy
renpy: 8.1.3 -> 8.2.1, unbreak, modernize
Diffstat (limited to 'pkgs/by-name/re')
-rw-r--r-- | pkgs/by-name/re/renpy/package.nix | 138 | ||||
-rw-r--r-- | pkgs/by-name/re/renpy/shutup-erofs-errors.patch | 29 |
2 files changed, 167 insertions, 0 deletions
diff --git a/pkgs/by-name/re/renpy/package.nix b/pkgs/by-name/re/renpy/package.nix new file mode 100644 index 0000000000000..d31ad9ced8641 --- /dev/null +++ b/pkgs/by-name/re/renpy/package.nix @@ -0,0 +1,138 @@ +{ + lib, + stdenv, + fetchFromGitHub, + python3, + pkg-config, + SDL2, + libpng, + ffmpeg, + freetype, + glew, + libGL, + libGLU, + fribidi, + zlib, + harfbuzz, + makeWrapper, +}: + +let + # https://renpy.org/doc/html/changelog.html#versioning + # base_version is of the form major.minor.patch + # vc_version is of the form YYMMDDCC + # version corresponds to the tag on GitHub + base_version = "8.2.1"; + vc_version = "24030407"; + version = "${base_version}.${vc_version}"; +in +stdenv.mkDerivation { + pname = "renpy"; + inherit version; + + src = fetchFromGitHub { + owner = "renpy"; + repo = "renpy"; + rev = version; + hash = "sha256-07Hj8mJGR0+Pn1DQ+sK5YQ3x3CTMsZ5h5yEoz44b2TM="; + }; + + nativeBuildInputs = [ + pkg-config + makeWrapper + # 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 + ]; + + buildInputs = + [ + SDL2 + 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 "::" [ + SDL2 + SDL2.dev + libpng + ffmpeg.lib + freetype + glew.dev + libGLU + libGL + fribidi + zlib + harfbuzz.dev + ]; + + enableParallelBuilding = true; + + patches = [ ./shutup-erofs-errors.patch ]; + + postPatch = '' + cp tutorial/game/tutorial_director.rpy{m,} + + cat > renpy/vc_version.py << EOF + version = '${version}' + official = False + nightly = False + # Look at https://renpy.org/latest.html for what to put. + version_name = '64bit Sensation' + EOF + ''; + + buildPhase = with python3.pkgs; '' + runHook preBuild + ${python.pythonOnBuildForHost.interpreter} module/setup.py build --parallel=$NIX_BUILD_CORES + runHook postBuild + ''; + + installPhase = with python3.pkgs; '' + runHook preInstall + + ${python.pythonOnBuildForHost.interpreter} module/setup.py install_lib -d $out/${python.sitePackages} + mkdir -p $out/share/renpy + cp -vr sdk-fonts gui launcher renpy the_question tutorial renpy.py $out/share/renpy + + makeWrapper ${python.interpreter} $out/bin/renpy \ + --set PYTHONPATH "$PYTHONPATH:$out/${python.sitePackages}" \ + --add-flags "$out/share/renpy/renpy.py" + + runHook postInstall + ''; + + env.NIX_CFLAGS_COMPILE = with python3.pkgs; "-I${pygame-sdl2}/include/${python.libPrefix}"; + + meta = { + description = "Visual Novel Engine"; + mainProgram = "renpy"; + homepage = "https://renpy.org/"; + changelog = "https://renpy.org/doc/html/changelog.html"; + license = lib.licenses.mit; + platforms = lib.platforms.linux; + maintainers = with lib.maintainers; [ shadowrz ]; + }; + + passthru = { + inherit base_version vc_version; + }; +} diff --git a/pkgs/by-name/re/renpy/shutup-erofs-errors.patch b/pkgs/by-name/re/renpy/shutup-erofs-errors.patch new file mode 100644 index 0000000000000..9889c9f8ef858 --- /dev/null +++ b/pkgs/by-name/re/renpy/shutup-erofs-errors.patch @@ -0,0 +1,29 @@ +From 09e598ddf1f6af72ccb6c7c9301abff689e64f88 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E5=A4=9C=E5=9D=82=E9=9B=85?= + <23130178+ShadowRZ@users.noreply.github.com> +Date: Wed, 17 May 2023 14:32:03 +0800 +Subject: [PATCH] Don't print a backtrace on EROFS + +This can shut up EROFS errors caused by writing to read-only /nix/store. +--- + renpy/script.py | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/renpy/script.py b/renpy/script.py +index de35457ba..b7d511560 100644 +--- a/renpy/script.py ++++ b/renpy/script.py +@@ -705,6 +705,10 @@ class Script(object): + rpydigest = hashlib.md5(fullf.read()).digest() + + self.write_rpyc_md5(f, rpydigest) ++ except OSError as e: ++ if e.errno != 30: ++ import traceback ++ traceback.print_exc() + except Exception: + import traceback + traceback.print_exc() +-- +2.40.1 + |