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
Раздел:    Корень / Пользователю / Файлы, копирование, архивация

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, Аноним (-), 20:09, 22/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    О господи. У питонистов даже установить игру - целый нефиговый квест, с рюханием зависимостей самому и списком ценных инструкций на 2 экрана.
     
     
  • 2.3, Аноним (3), 23:00, 23/01/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это какая-то муть конкретного автора. Такое обычно бывает если виндузятник пакет поддерживает.
     

  • 1.2, Аноним (2), 03:14, 23/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Когда квест начинается ещё до запуска игры, потому что сам запуск – и есть квест.
     
  • 1.4, _kp (ok), 00:51, 26/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А нафига в систему ставить? Игры тупо могут разные версии компонентов требовать, там же Питон.
    Сложите все одном каталоге, и будет pоrtable сборка, работающая на любой системе.
    На Windows  и Маке же не складывают всё в одно корытце.
    Можно сделать как portable игру, так и только движок.
    И поделиться сборкой можно с большей пользой, чем тупиковой портянкой инструкций.
    Помним, что RenPy игры ни разу не ресурсоёмкие, а на игровой машине есть Wine.
    Решение не должно быть сложным, и привязываться к конкретной OS. То есть, если не Wine, то portable сборка.
     
     
  • 2.5, Аноним (5), 21:51, 27/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Игры тупо могут разные версии компонентов требовать, там же Питон.

    Не выдумывай. RenPy - это такое гумно по типу URQ - там даже виджета инвентаря нет. Да, там можно питон. Но большинство игр написаны на DSLе, никаких либ не юзают.

    При этом есть недоумки, которые питон 2 поставляют с непонятного источника. Я им как-то не доверяю. Вместо этого предпочитаю лично скомпилированный RenPy, на системном питоне. А игры - декомпилированные. Вернее на RenPy я вообще в игры не играю. Не понравился мне это RenPy. inSTEAD гораздо лучше, хоть Пётр и дичь в персональном блоге пишет, от которой волосы на голове шевелятся.

     
     
  • 3.7, _kp (ok), 10:24, 28/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > RenPy - это такое гумно по типу URQ>
    > предпочитаю лично скомпилированный RenPy

    Смотря какая цель. Если запустить, то что есть, то мой вариант.
    А если ковыряться c ПО, то Ваш.

    Но, пихать всё в систему не одобряю. Лично скомпилированный компонент или из репозитория, из него все равно можно сделать portable приложение.


    > я вообще в игры не играю.

    Да я и сам предпочитаю игры в которых можно или покопаться, или нестандартно играть.
    А те кто играют "правильно", обычно моды, фиксы и дополнения не делают. :)


     
     
  • 4.8, Аноним (8), 14:32, 28/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Смотря какая цель. Если запустить, то что есть

    Тем на винду и в Steam.

     
  • 4.9, Аноним (8), 14:44, 28/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Но, пихать всё в систему не одобряю. Лично скомпилированный компонент или из репозитория, из него все равно можно сделать portable приложение.

    Которое в virtualenv, который вместе с питоном - в снапе вместе с половиной десктопного дистра, который в образе виртуальной машины поставляется, чтобы работало всё кросс-платформенно.

    Сам такое юзай. А я ещё сохранил слишком много остатков адекватности, чтобы иметь понимание, что ради воспроизведения десяти текстовых файлов на килобайты (и кучи сраной графики к ним уже на сотни мегабайт, но это уже полностью вина автора игры) не надо к каждому экземпляру цеплять по полдистра. Дистры и пакетные менеджеры явно не для такого изобрели.

     
     
  • 5.10, Аноним (8), 14:46, 28/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > остатков адекватности

    Но они стремительно теряются с каждым контактом с неадекватными проектами, разрабатываемыми и сопровождаемыми неадекватными людьми.

     
  • 5.12, _kp (ok), 18:29, 28/01/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Попрошу без мата Там всего то 80-100 Мб, если без сжатия, а не пол-системы ... большой текст свёрнут, показать
     

  • 1.6, Аноним (6), 09:09, 28/01/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Патчи с улучшениями (ставятся на свой страх и риск, так как источник не проверен).

    В оригинале было

    > Upstreamable improvement patches (and I suspect that the URLs there are not secure).

    Смысл тут в том, что pastebin Дебиана урезанные хеши SHA1 от содержимого использует как идентификаторы для файлов. https://github.com/formorer/paste.pl/blob/master/lib/Paste.pm#L267 .

    То есть можно в принципе подобрать коллизию.

     


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




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

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