The OpenNET Project / Index page

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



"Раздел полезных советов: Установка движка графических квестов RenPy в Debian"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Установка движка графических квестов RenPy в Debian"  +/
Сообщение от auto_tips (??), 22-Янв-25, 20:09 
[[https://www.renpy.org/ 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/debia...
   curl -o 02_traceback.patch https://salsa.debian.org/games-team/renpy/-/raw/master/debia...
   curl -o 03_checkdir.patch https://salsa.debian.org/games-team/renpy/-/raw/master/debia...
   curl -o read-write-permissions.patch https://salsa.debian.org/games-team/renpy/-/raw/master/debia...

   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


URL: https://github.com/renpy/renpy
Обсуждается: https://www.opennet.ru/tips/info/3263.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Установка движка графических квестов RenPy в Debian"  +3 +/
Сообщение от Аноним (-), 22-Янв-25, 20:09 
О господи. У питонистов даже установить игру - целый нефиговый квест, с рюханием зависимостей самому и списком ценных инструкций на 2 экрана.
Ответить | Правка | Наверх | Cообщить модератору

3. "Установка движка графических квестов RenPy в Debian"  +2 +/
Сообщение от Аноним (3), 23-Янв-25, 23:00 
Это какая-то муть конкретного автора. Такое обычно бывает если виндузятник пакет поддерживает.
Ответить | Правка | Наверх | Cообщить модератору

2. "Установка движка графических квестов RenPy в Debian"  +3 +/
Сообщение от Аноним (2), 23-Янв-25, 03:14 
Когда квест начинается ещё до запуска игры, потому что сам запуск – и есть квест.
Ответить | Правка | Наверх | Cообщить модератору

4. "Установка движка графических квестов RenPy в Debian"  +1 +/
Сообщение от _kp (ok), 26-Янв-25, 00:51 
А нафига в систему ставить? Игры тупо могут разные версии компонентов требовать, там же Питон.
Сложите все одном каталоге, и будет pоrtable сборка, работающая на любой системе.
На Windows  и Маке же не складывают всё в одно корытце.
Можно сделать как portable игру, так и только движок.
И поделиться сборкой можно с большей пользой, чем тупиковой портянкой инструкций.
Помним, что RenPy игры ни разу не ресурсоёмкие, а на игровой машине есть Wine.
Решение не должно быть сложным, и привязываться к конкретной OS. То есть, если не Wine, то portable сборка.
Ответить | Правка | Наверх | Cообщить модератору

5. "Установка движка графических квестов RenPy в Debian"  +/
Сообщение от Аноним (5), 27-Янв-25, 21:51 
>Игры тупо могут разные версии компонентов требовать, там же Питон.

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

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

Ответить | Правка | Наверх | Cообщить модератору

7. "Установка движка графических квестов RenPy в Debian"  +/
Сообщение от _kp (ok), 28-Янв-25, 10:24 
> RenPy - это такое гумно по типу URQ>
> предпочитаю лично скомпилированный RenPy

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

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


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

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


Ответить | Правка | Наверх | Cообщить модератору

8. "Установка движка графических квестов RenPy в Debian"  +/
Сообщение от Аноним (8), 28-Янв-25, 14:32 
>Смотря какая цель. Если запустить, то что есть

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

Ответить | Правка | Наверх | Cообщить модератору

9. "Установка движка графических квестов RenPy в Debian"  +/
Сообщение от Аноним (8), 28-Янв-25, 14:44 
>Но, пихать всё в систему не одобряю. Лично скомпилированный компонент или из репозитория, из него все равно можно сделать portable приложение.

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

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

Ответить | Правка | К родителю #7 | Наверх | Cообщить модератору

10. "Установка движка графических квестов RenPy в Debian"  +/
Сообщение от Аноним (8), 28-Янв-25, 14:46 
> остатков адекватности

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

Ответить | Правка | Наверх | Cообщить модератору

12. "Установка движка графических квестов RenPy в Debian"  +/
Сообщение от _kp (ok), 28-Янв-25, 18:29 
> в снапе

Попрошу без мата  :)

> с половиной десктопного дистра

Там всего то 80-100 Мб, если без сжатия, а не пол-системы.  

>Дистры и пакетные менеджеры явно не для такого изобрели.

  Ну и что? В живой дектопной системе, не на виртуалке, Вы всё по возможности через пакетные менеджеры ставите? Да не смешите, так пока десятую часть желаемого ПО установите, система не раз рухнет. Или пока одно устанавливаете, другое загнется.
   Пакетные менеджеры для упорядоченных пакетов, и желательно в рамках одного дистрибутива или совместимых с ним.
   Я, то что не из дистрибутива, в системное дерево каталогов не пихаю. Ну, кроме случаев, когда по другому никак.


>>есть недоумки, которые питон 2 поставляют

  А есть старые проекты, в которых он исторически. И с ними как и с любым старым ПО, если запускается, работает, то и нефиг возиться.

  А кто вынужден активно использовать Питона, сколько его версий в системе? Обновить, как и даунгрейдить самого Питона не проблема,  проблемы будут со сторонними библиотеками для него. А тупо обновить библиотки нельзя, ибо API принято постоянно ломать, и ПО прибитое к одной библиотке с другой версией не работает. :(
А когда весь этот зоопарк надо перенести на другую машину, ну не собирать же все по папкам раскиданное.

  В том чтоб пересобрать ПО из надежных репозиториев нет ничего плохого, и даже наоборот.
Но в самом первом сообщении, не ПО ставится/компилируется, а ставятся патчи, патчи, под  очередной дистрибутив. Используется системный Питон. То есть, создается непереносимый результат, не только между разными Linux, но и между разными редакциями Debiana.
Более того не переносимый легко и на точно такую же машину с таким же Debian.
  А на одном Renpy всё не заканчивается, подобных поделок килотонны.
Не переписывать же всё.

  По сути, желание все пересобрать лично, в Вас от недоверия к ПО.
Но ведь проблему безопасности можно решать не только пересборкой, но запустить с учетом безопасности, и тем более не тяжелое ПО.

Ответить | Правка | К родителю #9 | Наверх | Cообщить модератору

6. "Установка движка графических квестов RenPy в Debian"  +/
Сообщение от Аноним (6), 28-Янв-25, 09:09 
> Патчи с улучшениями (ставятся на свой страх и риск, так как источник не проверен).

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

> 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.p... .

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

Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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