mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-03-11 03:52:40 +00:00
add xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi
This commit is contained in:
parent
6b3e392a65
commit
86d9a40624
4 changed files with 166 additions and 1 deletions
|
|
@ -182,3 +182,4 @@ git submodule update --init --recursive
|
|||
=> radicle-multi-network-seed-deployment.gmi Розгортання сіда Radicle в мульти-мережному середовищі
|
||||
=> radicle-web-service-deployment.gmi Розгортання Веб-інфраструктури Radicle на прикладі оверлейних мереж
|
||||
=> transfer-radicle-repository-to-another-git-upstream-while-preserving-rid.gmi Перенесення репозиторію Radicle на інший апстрім Git зі збереженням RID
|
||||
=> xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi Flatpak-збірка рушія Xash3D/FWGS з Half-Life на прикладі Radicle/Git
|
||||
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
### Нотатки
|
||||
|
||||
=> xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi 2026-02-21 Flatpak-збірка рушія Xash3D/FWGS з Half-Life на прикладі Radicle/Git
|
||||
=> git-repository-mirroring-with-local-gitmodules-dependencies-in-radicle.gmi 2026-02-19 Дзеркалювання репозиторію Git з локальними залежностями .gitmodules в Radicle
|
||||
=> transfer-radicle-repository-to-another-git-upstream-while-preserving-rid.gmi 2026-02-18 Перенесення репозиторію Radicle на інший апстрім Git зі збереженням RID
|
||||
=> build-xash3d-fwgs-half-life-on-haiku-os.gmi 2026-02-17 Розвідка боєм: Xash3D (FWGS) / Half-Life в Haiku OS
|
||||
|
|
|
|||
|
|
@ -285,4 +285,5 @@ rad:z4FoMnoSve6Ku6gz4qiuSpzmGr1YE
|
|||
=> radicle-web-service-deployment.gmi Розгортання Веб-інфраструктури Radicle на прикладі оверлейних мереж
|
||||
=> transfer-radicle-repository-to-another-git-upstream-while-preserving-rid.gmi Перенесення репозиторію Radicle на інший апстрім Git зі збереженням RID
|
||||
=> git-repository-mirroring-with-local-gitmodules-dependencies-in-radicle.gmi Дзеркалювання репозиторію Git з локальними залежностями .gitmodules в Radicle
|
||||
=> xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi Flatpak-збірка рушія Xash3D/FWGS з Half-Life на прикладі Radicle/Git
|
||||
=> rust-cross-compilation-with-cross-crate.gmi Простий спосіб крос-компіляції Rust з cross
|
||||
162
public/uk/xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi
Normal file
162
public/uk/xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi
Normal file
|
|
@ -0,0 +1,162 @@
|
|||
# Flatpak-збірка рушія Xash3D/FWGS з Half-Life на прикладі Radicle/Git
|
||||
|
||||
В прикладах наведено форк гілки `master` репозиторію Xash3D/FWGS з патчем маніфесту Flatpak:
|
||||
=> https://github.com/FWGS/xash3d-fwgs/blob/master/scripts/flatpak/su.xash.Engine.Compat.i386.yml
|
||||
|
||||
Цей патч включає репозиторій Radicle з оригінальними ігровими наборами Half-Life:
|
||||
=> https://store.steampowered.com/app/70/HalfLife/
|
||||
|
||||
``` scripts/flatpak/su.xash.Engine.Compat.i386.yml
|
||||
modules:
|
||||
- name: half-life-steam-id-70
|
||||
buildsystem: simple
|
||||
build-commands:
|
||||
- |
|
||||
mkdir -p /app/valve-default
|
||||
cp -r ./valve/. /app/valve-default
|
||||
cleanup:
|
||||
- ./*.pak
|
||||
- ./*.so*
|
||||
- ./hl_linux
|
||||
- ./hl.sh
|
||||
- ./platform
|
||||
- ./redist
|
||||
- ./valve
|
||||
- ./valve_hd
|
||||
sources:
|
||||
- type: git
|
||||
# without radicle-node running, try following web-seeds:
|
||||
# url: https://app.radicle.xyz/nodes/iris.radicle.xyz/rad%3Az3LRRg2os4mihf6n12P6m2Ukr4BfW
|
||||
# url: https://app.radicle.xyz/nodes/rosa.radicle.xyz/rad%3Az3LRRg2os4mihf6n12P6m2Ukr4BfW
|
||||
url: rad://z3LRRg2os4mihf6n12P6m2Ukr4BfW
|
||||
branch: master
|
||||
```
|
||||
* технічно, рядок `url` можна замінити на Інтернет-адресу проксі: наприклад, rosa, iris або іншими - тоді наявність локальної ноди Radicle не є обов'язковою.
|
||||
|
||||
Динамічні файли профілю, які входять до теки `valve`, повинні бути розташовані за рамками контейнера і мати доступ на запис. Тому форк включає також і патч лаунчера `scripts/flatpak/run.sh`, ~48 рядок:
|
||||
|
||||
``` scripts/flatpak/run.sh
|
||||
readonly _VALVE_DST="${XASH3D_BASEDIR%/}/valve"
|
||||
if [[ -d $_VALVE_DST ]]; then
|
||||
echo "loading game profile from $_VALVE_DST..."
|
||||
else
|
||||
echo "valve directory not found, initializing defaults..."
|
||||
mkdir -p $_VALVE_DST
|
||||
cp -r /app/valve-default/. $_VALVE_DST
|
||||
if [[ ! -d $_VALVE_DST ]]; then
|
||||
echo "could not init valve directory!"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
```
|
||||
|
||||
Таким чином, якщо користувач не вказав вибірковий шлях `XASH3D_BASEDIR` або в його стандартній теці (`$HOME/.local/share/xash3d-fwgs/valve`) не встановлено ігрові набори `valve` вручну, то вони будуть скопійовані туди з "внутрішньої пам'яті" контейнера (`/valve-default`) при першому запуску гри.
|
||||
|
||||
Це також дозволятиме користувачеві встановлювати різні модифікації, редагувати файли конфігурації, переглядати журнали, тощо.
|
||||
|
||||
## Готовий пакунок .flatpak
|
||||
|
||||
Мета цього гайду - розписати процес білду, тоді як пакунок містить ігрові асети Valve Corp., а отже розмістити його тут не можу. Утім, якщо у вас є мінімум CPU і 5 хвилин часу, можете зібрати і поширювати його для особистих потреб, користуючись інструкціями нижче.
|
||||
|
||||
## Готовий маніфест
|
||||
|
||||
Якщо ви не хочете вручну правити згадані вище файли і вам не потрібна остання версія Xash3D/FWGS:
|
||||
|
||||
``` bash
|
||||
rad clone rad:zQwuiSABZkACpAYgn5mJvf7y4QNm
|
||||
```
|
||||
|
||||
Або через Веб-проксі (сід підбирайте самі)
|
||||
```bash
|
||||
git clone https://iris.radicle.xyz/zQwuiSABZkACpAYgn5mJvf7y4QNm.git xash3d-fwgs
|
||||
```
|
||||
* тут вам все одно потрібно буде правити Веб-сорс в маніфесті, тому краще юзайте `rad`
|
||||
|
||||
Перед збіркою потрібно перемкнути гілку на `radicle-bundle`:
|
||||
|
||||
``` bash
|
||||
cd xash3d-fwgs
|
||||
git checkout radicle-bundle
|
||||
git submodule update --init --recursive
|
||||
```
|
||||
* останньою командою підтягуємо залежності `.gitmodules` (для них я поки не реалізував локальні дзеркала, тому поки використовуємо оригінальні джерела)
|
||||
|
||||
## Системні залежності
|
||||
|
||||
Для збірки пакунків `.flatpak`, потрібно встановити `flatpak-builder`. На Fedora, це робиться командою:
|
||||
|
||||
``` bash
|
||||
sudo dnf install flatpak flatpak-builder
|
||||
```
|
||||
|
||||
Надалі, я буду робити все в просторі користувача (`--user`). Якщо ви ставите глобально, то можете цей аргумент прибрати звідусіль.
|
||||
|
||||
Окремо додається стандартний репозиторій залежностей Flathub, якщо його не було додано раніше:
|
||||
|
||||
``` bash
|
||||
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
```
|
||||
|
||||
## Збірка і встановлення
|
||||
|
||||
Перед продовженням, для резольву префіксів `rad://`, не забудьте запустити локальний вузол Radicle:
|
||||
|
||||
``` bash
|
||||
rad node start --foreground --verbose
|
||||
```
|
||||
|
||||
З теки репозиторію:
|
||||
|
||||
``` bash
|
||||
flatpak-builder --force-clean build --install-deps-from=flathub --install --repo=repo --user scripts/flatpak/su.xash.Engine.Compat.i386.yml
|
||||
```
|
||||
|
||||
Після завершення збірки, працюючий вузол Radicle більше не потрібен.
|
||||
|
||||
### Запуск
|
||||
|
||||
Застосунок "**Xash3D FWGS**" буде доступним в меню системи, назву його поки не змінював. Опціонально, можна запустити командою, за необхідності вказавши там аргументи середовища типу `--env=XASH3D_BASEDIR=/`:
|
||||
|
||||
``` bash
|
||||
flatpak run su.xash.Engine.Compat.i386
|
||||
```
|
||||
|
||||
Якщо бачите помилку:
|
||||
|
||||
> Can't find 32-bit runtime extension. Try running 'flatpak install org.freedesktop.Platform.Compat.i386//25.08'
|
||||
|
||||
довстановіть середовище `flathub org.freedesktop.Platform.Compat.i386`:
|
||||
|
||||
``` bash
|
||||
flatpak install --user flathub org.freedesktop.Platform.Compat.i386
|
||||
```
|
||||
|
||||
Якщо:
|
||||
|
||||
> Can't initialize any renderer. Check your video drivers!
|
||||
|
||||
довстановіть 32-бітну версію `org.freedesktop.Platform.GL.default`:
|
||||
|
||||
``` bash
|
||||
flatpak install --user flathub org.freedesktop.Platform.GL32.default
|
||||
```
|
||||
|
||||
### Створення пакунку
|
||||
|
||||
Можна згенерувати пакунок `.flatpak` і встановити через менеджер додатків або поділитись з іншими:
|
||||
|
||||
``` bash
|
||||
flatpak build-bundle repo Half-Life.flatpak su.xash.Engine.Compat.i386
|
||||
```
|
||||
* в корені поточної теки буде створено файл `Half-Life.flatpak` (~230 Мб)
|
||||
|
||||
## Посилання
|
||||
|
||||
=> https://devzone.org.ua/post/flatpak-zbirka-xash3dfwgs-half-life-z-radiclegit Інтернет-адаптація цього матеріалу з коментарями на DevZone
|
||||
|
||||
### Дивіться також
|
||||
|
||||
=> radicle-is-decentralized-p2p-git-dvcs.gmi Radicle: децентралізований P2P хостинг Git/DVCS
|
||||
=> git-repository-mirroring-with-local-gitmodules-dependencies-in-radicle.gmi Дзеркалювання репозиторію Git з локальними залежностями .gitmodules в Radicle
|
||||
=> half-life-on-linux-using-xash3d-fwgs-engine.gmi Half-Life в Linux на базі рушія Xash3D / FWGS
|
||||
=> build-xash3d-fwgs-half-life-on-haiku-os.gmi Розвідка боєм: Xash3D (FWGS) / Half-Life в Haiku OS
|
||||
Loading…
Add table
Add a link
Reference in a new issue