diff --git a/README.md b/README.md index e06e45c..b0f4986 100644 --- a/README.md +++ b/README.md @@ -227,3 +227,24 @@ That file must be written to `$XDG_CONFIG_HOME/flatpaker/config.toml` (if unset A Json based schema is provided, which can be used with VSCode's EvenBetterToml extension. It may be useful elsewhere. + +## FAQ and Things You Should Know + +### Ren'Py 7 Python 3 runtime + +tl;dr: This runtime is deprecated and will be removed in the future, unless +someone reports a game that uses it. + +This runtime is still based on the older Freedesktop 24.08 runtime. This runtime +will reach EOL in 2026/09. Updating to 25.08 or 26.08 is not trivial. + +Ren'Py 7 cannot be built with a Python newer than 3.12, due to it's reliance on +Cython 0.29, which does not support a new Python 3 release. This means I would +either need to build a second copy of Python 3 into the runtime (possible), +update Ren'Py 7 (and its dependencies) to build with newer Cython (possible, but +harder, more likley to introduce bugs). + +I also have yet to find a single Ren'Py game that actually uses it, everything +Python 3 based uses Ren'Py 8, and everythign using Ren'Py 7 uses Python 2 (or +works with Python 2). I originally created the Ren'Py 7 Python 3 runtime for +completeness and because it was interesting and easy. diff --git a/flatpaker/data/com.github.dcbaker.flatpaker.RPGM.Platform.yml b/flatpaker/data/com.github.dcbaker.flatpaker.RPGM.Platform.yml index 4984618..b023886 100644 --- a/flatpaker/data/com.github.dcbaker.flatpaker.RPGM.Platform.yml +++ b/flatpaker/data/com.github.dcbaker.flatpaker.RPGM.Platform.yml @@ -1,11 +1,12 @@ build-runtime: true id: com.github.dcbaker.flatpaker.RPGM.Platform -runtime-version: "24.08" +runtime-version: "25.08" runtime: org.freedesktop.Platform sdk: org.freedesktop.Sdk inherit-extensions: - "org.freedesktop.Platform.GL" - "org.freedesktop.Platform.VAAPI.Intel" + - "org.freedesktop.Platform.VAAPI.nvidia" modules: - name: "nwjs" buildsystem: "simple" diff --git a/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.7.py2.Sdk.yml b/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.7.py2.Sdk.yml index 32a277f..1266564 100644 --- a/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.7.py2.Sdk.yml +++ b/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.7.py2.Sdk.yml @@ -2,7 +2,7 @@ build-runtime: true id: com.github.dcbaker.flatpaker.RenPy.Sdk id-platform: com.github.dcbaker.flatpaker.RenPy.Platform branch: "7" -runtime-version: "24.08" +runtime-version: "25.08" runtime: org.freedesktop.Platform sdk: org.freedesktop.Sdk inherit-extensions: @@ -12,6 +12,7 @@ modules: - "modules/renpy-shared.yml" - "modules/python-2.7.json" - "modules/python2-requirements.json" + - "modules/sdl2.json" - name: PyGame_SDL2 buildsystem: simple build-commands: diff --git a/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.7.py3.Sdk.yml b/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.7.py3.Sdk.yml index 31c6cbd..d39988e 100644 --- a/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.7.py3.Sdk.yml +++ b/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.7.py3.Sdk.yml @@ -11,7 +11,16 @@ inherit-extensions: modules: - "modules/renpy-shared.yml" - "modules/python3-requirements.json" - - "modules/python3-cython0.yml" + - name: "python3-cython0" + buildsystem: "simple" + build-commands: + - pip3 install --prefix=${FLATPAK_DEST} --no-deps . --verbose --exists-action=i --no-index --no-build-isolation + sources: + - type: "git" + url: "https://github.com/dcbaker/cython.git" + branch: "cython0" + cleanup-platform: + - '*' - name: PyGame_SDL2 buildsystem: simple build-commands: diff --git a/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.8.Sdk.yml b/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.8.Sdk.yml index 30a163c..3a3f62a 100644 --- a/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.8.Sdk.yml +++ b/flatpaker/data/com.github.dcbaker.flatpaker.RenPy.8.Sdk.yml @@ -2,15 +2,17 @@ build-runtime: true id: com.github.dcbaker.flatpaker.RenPy.Sdk id-platform: com.github.dcbaker.flatpaker.RenPy.Platform branch: "8" -runtime-version: "24.08" +runtime-version: "25.08" runtime: org.freedesktop.Platform sdk: org.freedesktop.Sdk inherit-extensions: - "org.freedesktop.Platform.GL" - "org.freedesktop.Platform.VAAPI.Intel" + - "org.freedesktop.Platform.VAAPI.nvidia" modules: - "modules/renpy-shared.yml" - "modules/python3-requirements.json" + - "modules/sdl2.json" - name: assimp buildsystem: cmake-ninja config-opts: @@ -18,7 +20,7 @@ modules: - "-DASSIMP_WARNINGS_AS_ERRORS=OFF" - "-DASSIMP_BUILD_ASSIMP_TOOLS=OFF" - "-DASSIMP_BUILD_ZLIB=OFF" - cleanup: + cleanup-platform: - "/include" - "/lib/*/cmake" - "/lib/*/pkgconfig" @@ -47,9 +49,9 @@ modules: - "/lib/*.la" cleanup-platform: - "/include" - - "/lib/cmake" - - "/lib/pkgconfig" - - "/lib/*.a" + - "/lib/*/cmake" + - "/lib/*/pkgconfig" + - "/lib/*/*.a" sources: - type: "git" url: "https://github.com/frankheckenbach/ftgl" @@ -81,8 +83,8 @@ modules: - mv 00enabledebug.rpy renpy/common/ # TODO: calculate where site packages is instead of hardocding - - cp -rv renpy ${FLATPAK_DEST}/lib/python3.12/site-packages || exit 1 - - python -m compileall ${FLATPAK_DEST}/lib/python3.12/site-packages/renpy || exit 1 + - cp -rv renpy ${FLATPAK_DEST}/lib/python3.13/site-packages || exit 1 + - python -m compileall ${FLATPAK_DEST}/lib/python3.13/site-packages/renpy || exit 1 - install -Dm755 renpy-bin -t ${FLATPAK_DEST}/bin/ || exit 1 # the renpy script gets mad that /app/lib/game doesn't exist, use the @@ -92,7 +94,7 @@ modules: - | mkdir -p /app/lib/game/ || exit 1 mv the_question /app/lib/game/game || exit 1 - pushd ${FLATPAK_DEST}/lib/python3.12/site-packages/renpy || exit 1 + pushd ${FLATPAK_DEST}/lib/python3.13/site-packages/renpy || exit 1 ${FLATPAK_DEST}/bin/renpy-bin 'dummy' 'dummy' "/app/lib/game" compile || exit 1 popd rm -r /app/lib/game || exit 1 diff --git a/flatpaker/data/modules/python3-cython0.yml b/flatpaker/data/modules/python3-cython0.yml deleted file mode 100644 index e12c131..0000000 --- a/flatpaker/data/modules/python3-cython0.yml +++ /dev/null @@ -1,10 +0,0 @@ -name: "python3-cython0" -buildsystem: "simple" -build-commands: - - pip3 install --prefix=${FLATPAK_DEST} --no-deps . --verbose --exists-action=i --no-index --no-build-isolation -sources: - - type: "git" - url: "https://github.com/dcbaker/cython.git" - branch: "cython0" -cleanup-platform: - - '*' diff --git a/flatpaker/data/modules/sdl2.json b/flatpaker/data/modules/sdl2.json new file mode 100644 index 0000000..1c8ddd8 --- /dev/null +++ b/flatpaker/data/modules/sdl2.json @@ -0,0 +1,48 @@ +{ + "name": "sdl2", + "buildsystem": "simple", + "build-commands": [], + "modules": [ + { + "name": "SDL2_image", + "config-opts": [ + "-DSDL2IMAGE_DEPS_SHARED=OFF", + "-DSDL2IMAGE_STRICT=ON" + ], + "cleanup-platform": [ + "/include", + "/lib/*/cmake", + "/lib/*/pkgconfig" + ], + "buildsystem": "cmake-ninja", + "builddir": true, + "sources": [ + { + "type": "archive", + "url": "https://github.com/libsdl-org/SDL_image/releases/download/release-2.8.12/SDL2_image-2.8.12.tar.gz", + "sha256": "393f5efb50536ec13ca4f4affb69cc9966d3c3f969e6c5e701faddf9f9785381" + } + ] + }, + { + "name": "SDL2_ttf", + "config-opts": [ + "-DSDL2TTF_HARFBUZZ=ON" + ], + "cleanup-platform": [ + "/include", + "/lib/*/cmake", + "/lib/*/pkgconfig" + ], + "buildsystem": "cmake-ninja", + "builddir": true, + "sources": [ + { + "type": "archive", + "url": "https://github.com/libsdl-org/SDL_ttf/releases/download/release-2.24.0/SDL2_ttf-2.24.0.tar.gz", + "sha256": "0b2bf1e7b6568adbdbc9bb924643f79d9dedafe061fa1ed687d1d9ac4e453bfd" + } + ] + } + ] +}