From 875f8cbb3b1c897ba259f754294271a20a414856 Mon Sep 17 00:00:00 2001 From: Ivan Fontosh Date: Mon, 11 May 2026 22:51:35 +0800 Subject: [PATCH] ci: add wine->wine64 shim for electron-builder on Linux Co-authored-by: Cursor --- .gitea/workflows/release.yml | 4 ++++ docs/GITEA_AUTO_UPDATE.md | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 2ee0dcd..20f258c 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -31,6 +31,7 @@ jobs: # Не включаем i386 / wine32: на Debian с репами только amd64 (nginx, sury, …) # apt ломается на цепочке libgphoto2/libgd:i386. NSIS — нативный пакет `nsis`; # electron-builder подхватывает makensis; wine64 — для win-утилит (rcedit и т.п.). + # Пакет `wine` (мета) тянет wine32 → снова i386. electron-builder ищет именно `wine` в PATH. - name: Зависимости Win-сборки на Linux (amd64, без multiarch i386) run: | sudo apt-get update @@ -38,6 +39,9 @@ jobs: ca-certificates \ nsis \ wine64 + printf '%s\n' '#!/bin/sh' 'exec wine64 "$@"' | sudo tee /usr/local/bin/wine >/dev/null + sudo chmod +x /usr/local/bin/wine + wine --version - name: Версия из тега shell: bash diff --git a/docs/GITEA_AUTO_UPDATE.md b/docs/GITEA_AUTO_UPDATE.md index e9b8a01..2786ce2 100644 --- a/docs/GITEA_AUTO_UPDATE.md +++ b/docs/GITEA_AUTO_UPDATE.md @@ -100,7 +100,7 @@ Gitea **не запускает** workflow на своём процессе: н ### Требования к машине под наш `release.yml` -В workflow для job **`ubuntu-22.04`** идут **`sudo apt-get`** (пакеты **`nsis`**, **`wine64`**) на **Linux**. Multiarch **i386** намеренно не включается — на Debian с репозиториями только под amd64 (nginx, sury и т.п.) установка **wine32** часто падает с «unmet dependencies». Поэтому: +В workflow для job **`ubuntu-22.04`** идут **`sudo apt-get`** (пакеты **`nsis`**, **`wine64`**) на **Linux**. Multiarch **i386** намеренно не включается — на Debian с репозиториями только под amd64 (nginx, sury и т.п.) установка **wine32** часто падает с «unmet dependencies». После установки **`wine64`** в CI создаётся скрипт **`/usr/local/bin/wine`**, вызывающий **`wine64`**: electron-builder проверяет именно команду **`wine`** в `PATH`. Поэтому: - Нужен **Linux x86_64** (идеально **Ubuntu 22.04**), либо **WSL2** с Ubuntu 22.04 на Windows. - Запускать раннер на «голом» Windows с меткой `ubuntu-22.04` **бессмысленно** — шаги с `apt` не выполнятся. @@ -315,7 +315,7 @@ sudo journalctl -u gitea-act-runner -f - В **`.gitea/workflows/release.yml`** в `runs-on:` должна совпадать **именно метка `ubuntu-22.04`** (Gitea сопоставляет её и с **`ubuntu-22.04:host`**, и с **`ubuntu-22.04:docker://...`** — см. [Labels](https://docs.gitea.com/usage/actions/act-runner#labels) в документации act_runner). - Если при регистрации указал только **`self-hosted`** — добавь **`ubuntu-22.04:host`** (или поменяй `runs-on` в workflow на твои метки и закоммить). -Сборка **Windows (NSIS)** в CI идёт **на Linux**: нативный **`nsis`** (`makensis`) + **`wine64`** (без **wine32**/i386 — см. комментарий в `release.yml`). Отдельная **macOS**-сборка в workflow отключена, пока нет Mac-раннера (см. комментарии в `release.yml`). +Сборка **Windows (NSIS)** в CI идёт **на Linux**: нативный **`nsis`** (`makensis`) + **`wine64`** и обёртка **`wine`→`wine64`** (без **wine32**/i386 — см. `release.yml`). Отдельная **macOS**-сборка в workflow отключена, пока нет Mac-раннера (см. комментарии в `release.yml`). ---