The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Установка движка графических квестов RenPy в Debian
RenPy не ставится в Debian Sid из пакетов из-за конфликта зависимостей. При
этом оригинальный  RenPy вообще не рассчитан на установку, и setuptools там
используется для создания отдельно поставляемых бинарных сборок.

Инструкция действительна для коммита
"4957280f4c39446d1683accc02355b26848b88c2". Если патчи не применяются - то
склонируйте начиная с этого коммита, примените патчи к нему, и перебазируйте на
ветку "master".

1. Необходимо поставить зависимости, и dev-пакеты, указанные в README.rst в
репозитории, а также свежий Cython и пакет python3-ecdsa

   sudo apt install python3-ecdsa

Ещё требуется поставить утилиту "b3sum", так как через неё мы проверяем
целостность (работает намного быстрее, чем sha256sum).

2. Выполняем скрипт руками и по-частям, проверяя, что делает каждый шаг:

   set -e
   git clone https://github.com/renpy/renpy --depth=1

   cd renpy
   git checkout -b fixed

   mkdir patches
   cd patches

   # Патчи, требуемые для Debian (остальные уже приняты в основной состав).
   curl -o 01_abspath.patch https://salsa.debian.org/games-team/renpy/-/raw/master/debian/patches/01_abspath.patch
   curl -o 02_traceback.patch https://salsa.debian.org/games-team/renpy/-/raw/master/debian/patches/02_traceback.patch
   curl -o 03_checkdir.patch https://salsa.debian.org/games-team/renpy/-/raw/master/debian/patches/03_checkdir.patch
   curl -o read-write-permissions.patch https://salsa.debian.org/games-team/renpy/-/raw/master/debian/patches/read-write-permissions.patch

   b3sum -c - << END
   bd44121b2b9306a452746f3a7ba18994f80a247b386eda5cdb9756ba0d9de444  ./01_abspath.patch
   42f4f7d6a2d8870641460f16b675bd969fe32e9cb44b2980d0d41b8ebdcc7cc9  ./02_traceback.patch
   5d0a905b30eb69044c35b38074f9e55b1f1399bcab6c2b91490ad31f82232308  ./03_checkdir.patch
   d5cfcafbf18a39c5994915d36fa20a3b213bcf6683c5440ee71d54f3c868e9c7  ./read-write-permissions.patch
   END

   git am ./*.patch
   rm ./*.patch

   # Патчи с улучшениями (ставятся на свой страх и риск, так как источник не проверен). Есть пожелание - заапстримьте патчи в https://github.com/renpy/renpy , если там не примут - то в Debian.
   curl https://paste.debian.net/plainh/d75623bc -o 0001-Enable-usage-of-Limited-API-https-docs.python.org-3-.patch
   curl https://paste.debian.net/plainh/f10de1ca -o 0002-Make-pefile-a-non-mandatory-import.-On-Linux-we-don-.patch
   curl https://paste.debian.net/plainh/052354ff -o 0003-Fix-the-incompatibility-in-The-Question-demo.patch
   curl https://paste.debian.net/plainh/b6045a63 -o 0004-Fix-the-problems-in-source-code-relying-on-the-hardc.patch
   curl https://paste.debian.net/plainh/178cdd86 -o 0005-Move-the-bundled-system-modules-in-their-proper-plac.patch
   curl https://paste.debian.net/plainh/28af4ca7 -o 0006-Add-package-metadata-and-create-a-proper-Python-pack.patch
   curl https://paste.debian.net/plainh/93de5501 -o 0007-Add-a-command-to-easily-run-the-launcher.patch
   curl https://paste.debian.net/plainh/3d481187 -o 0008-Define-macros-for-security-hardening-of-standard-lib.patch

   b3sum -c - << END
   1ed9ed915b52050ec1f68883510269a161021105158d53fcafa6d1cd6749140a  ./0001-Enable-usage-of-Limited-API-https-docs.python.org-3-.patch
   bf6521898d17de04a48aaaac5de4b9919000df6b73b3a87cdcbd31e10fd4ae94  ./0002-Make-pefile-a-non-mandatory-import.-On-Linux-we-don-.patch
   de66d94a487f683224032303f3bd43267d3a9bda2d2710b640e338f45b09addd  ./0003-Fix-the-incompatibility-in-The-Question-demo.patch
   8ddc41a139366103f08be55c863236cccad60ddc1658240c5452b4086279edf2  ./0004-Fix-the-problems-in-source-code-relying-on-the-hardc.patch
   adf26e49250fb07dcb860dd2d4f75740b957a165ff6bcd545aec24b1c262d905  ./0005-Move-the-bundled-system-modules-in-their-proper-plac.patch
   5dd9a8833d0d9139f7ba28fa5f25d413aaf39303c8af8c18383a425c23500667  ./0006-Add-package-metadata-and-create-a-proper-Python-pack.patch
   c326a3ab80eccb0c4cacd429551c44d94e0b5ad7171cd874fe88f43dd445386d  ./0007-Add-a-command-to-easily-run-the-launcher.patch
   3c3652f648acf54803c192c0e32f6b4093f5081cbbc55e6f5300c9f78fd82721  ./0008-Define-macros-for-security-hardening-of-standard-lib.patch
   END

   git am ./*.patch
   rm ./*.patch

   # временные патчи, не рассчитанные для передачи в основной проект
   curl https://paste.debian.net/plainh/db96ffcc -o 0009-Upgrade-the-langs-used-C-C-to-fresh-versions.-Should.patch
   curl https://0x0.st/8Hc0.patch -o ./0010-Tweak-config-for-using-system-fonts-and-lazily-loadi.patch
   curl https://0x0.st/8HcD.patch -o ./0011-Hardcode-some-versions-of-freetype.-Because-the-disc.patch

   b3sum -c - << END
   7b98689b1ae71640d455576d596d9ecfaa40c6845fd045f68e821cfc2ab5a1eb  ./0009-Upgrade-the-langs-used-C-C-to-fresh-versions.-Should.patch
   3a70cf47b366a93286bc8727a25bebc02def95a410e2513068fe90a59572bff8  ./0010-Tweak-config-for-using-system-fonts-and-lazily-loadi.patch
   7a4f14953827e1cb9d6a15b6934f59a47a96b10a6c24efcccb6cd331ab3905e4  ./0011-Hardcode-some-versions-of-freetype.-Because-the-disc.patch
   END

   git am ./*.patch
   rm ./*.patch

   cd ..

   # Важно - вручную cython-изировать все файлы. Потому что иначе "setup.py" запустит ОДНОВРЕМЕННО огромное число процессов cython, и всё встанет (если у вас не серверный Xeon с 128 ядрами и огромным объёмом памяти). Я просто завершил по максимуму процессы в сеансе чтобы освободить память (шутка, на самом деле их прибил SysRQ + f), и через ЗАРАНЕЕ ЗАПУЩЕННЫЙ htop в отдельной виртуальной консоли прибил большую часть процессов.

   # find ./renpy -name "*.pyx" -exec cythonize -3 тут ещё много флагов {} \\;

   # важно - сгенерировать файл с версиями, он импортируется!
   python3 -m renpy.versions --nightly

   # Собираем бинарный пакет, рекомендуется использовать CC="clang -flto" CXX="clang++ -flto"
   CC="clang -flto" CXX="clang++ -flto" python3 -m build -nwx .

   sudo pip3 install --upgrade ./dist/*.whl

   cd the_question/game

   # Игра требует CJK-шрифт безусловно
   ln -s ../../sdk-fonts ./fonts
   cd ../..


В результате запускать игры можно как

   renpy ./the_question/game
   renpy ./tutorial/game

и лончер как

   renpy.launcher
 
19.01.2025 , Автор: Аноним , Источник: https://github.com/renpy/renpy...
Ключи: renpy, game, debian, build, git, patch
Раздел:    Корень / Пользователю / Файлы, копирование, архивация

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру