diff --git a/public/uk/git-repository-mirroring-with-local-gitmodules-dependencies-in-radicle.gmi b/public/uk/git-repository-mirroring-with-local-gitmodules-dependencies-in-radicle.gmi index b859f6a..eeb67b9 100644 --- a/public/uk/git-repository-mirroring-with-local-gitmodules-dependencies-in-radicle.gmi +++ b/public/uk/git-repository-mirroring-with-local-gitmodules-dependencies-in-radicle.gmi @@ -181,4 +181,5 @@ git submodule update --init --recursive => radicle-is-decentralized-p2p-git-dvcs.gmi Radicle: децентралізований P2P хостинг Git/DVCS => 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 \ No newline at end of file +=> 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 \ No newline at end of file diff --git a/public/uk/index.gmi b/public/uk/index.gmi index 54f7ba2..0f5323b 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -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 diff --git a/public/uk/radicle-is-decentralized-p2p-git-dvcs.gmi b/public/uk/radicle-is-decentralized-p2p-git-dvcs.gmi index e9822c3..c9aa931 100644 --- a/public/uk/radicle-is-decentralized-p2p-git-dvcs.gmi +++ b/public/uk/radicle-is-decentralized-p2p-git-dvcs.gmi @@ -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 \ No newline at end of file diff --git a/public/uk/xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi b/public/uk/xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi new file mode 100644 index 0000000..6e56bb0 --- /dev/null +++ b/public/uk/xash3d-fwgs-half-life-flatpak-build-with-radicle.gmi @@ -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 \ No newline at end of file