Doplňuje k linuxové binárce ještě Windows a macOS (Intel i Apple Silicon).
Proč přes GitHub
PyInstaller neumí křížovou kompilaci — binárku pro každý systém musí postavit ten systém. Vlastní runner pro Windows a hlavně pro macOS by byl nepoměr, tak si tyhle stroje půjčujeme od GitHub Actions.
GitHub je jen půjčená dílna, ne druhý domov projektu. Repozitář se tam z Gitey zrcadlí, hotové soubory se posílají zpátky na zdejší release přes Gitea API a stránka s releasy zůstává jedna — tahle. Linux se tam schválně nestaví: doma to jde proti glibc 2.17 a je to zároveň pojistka, kdyby GitHub vypadl.
Adresy. Rozhraní se hledala linuxovým ioctl. Na Windows chybí fcntl, na macOS to číslo znamená něco jiného — obojí propadlo až na zálohu přes hostname, která na macOS vrátí jedinou adresu. Tabule by tam nabídla jednu volbu, přesně to, co jsme minule opravovali. Přibyla mezizáloha přes ifconfig; běží jen tam, kde ioctl nic nenašel, takže na Linuxu se neplatí nic. Parsování je zvlášť jako čistá funkce a je otestované proti skutečnému výstupu z macOS.
Databáze. Z binárky mířila do XDG adresáře na všech systémech, takže na Windows do C:\Users\…\.local\share\. Teď podle systému: LOCALAPPDATA, Library/Application Support, XDG.
Co to bude chtít ručně
Sám to nespustím, tohle je na tobě:
založit veřejné repo na GitHubu,
v Gitee Nastavení → Zrcadlení → Push mirror na něj s GitHub PATem,
vyrobit Gitea token s write:repository a uložit ho na GitHubu jako secret GITEA_TOKEN.
Do té doby se v repu nic nezmění — .github/workflows/ je pro Giteu mrtvý soubor.
Ověřeno
99 testů (+4). Předpoklady té zkoušky po stavbě jsem projel proti běžícímu serveru: / i styly vrací 200, /board obsahuje vnucenou adresu a databáze se založí tam, kam se řekne.
Nepodepsané binárky si Gatekeeper ani SmartScreen nenechají líbit — README teď říká, co s tím. Certifikáty za tisíce ročně by na počitadlo kostek byly nesmysl.
Doplňuje k linuxové binárce ještě Windows a macOS (Intel i Apple Silicon).
## Proč přes GitHub
PyInstaller neumí křížovou kompilaci — binárku pro každý systém musí postavit ten systém. Vlastní runner pro Windows a hlavně pro macOS by byl nepoměr, tak si tyhle stroje půjčujeme od GitHub Actions.
**GitHub je jen půjčená dílna, ne druhý domov projektu.** Repozitář se tam z Gitey zrcadlí, hotové soubory se posílají zpátky na zdejší release přes Gitea API a stránka s releasy zůstává jedna — tahle. Linux se tam schválně nestaví: doma to jde proti glibc 2.17 a je to zároveň pojistka, kdyby GitHub vypadl.
| Kde | Co staví |
|---|---|
| vlastní runner | `kostky-linux-x86_64` |
| GitHub Actions | `kostky-windows-x86_64.exe`, `kostky-macos-x86_64`, `kostky-macos-arm64` |
Ke každé se jako dosud věší i `.sha256`.
## Dvě opravy, bez kterých by to bylo poloviční
**Adresy.** Rozhraní se hledala linuxovým ioctl. Na Windows chybí `fcntl`, na macOS to číslo znamená něco jiného — obojí propadlo až na zálohu přes hostname, která na macOS vrátí jedinou adresu. Tabule by tam nabídla jednu volbu, přesně to, co jsme minule opravovali. Přibyla mezizáloha přes `ifconfig`; běží jen tam, kde ioctl nic nenašel, takže na Linuxu se neplatí nic. Parsování je zvlášť jako čistá funkce a je otestované proti skutečnému výstupu z macOS.
**Databáze.** Z binárky mířila do XDG adresáře na všech systémech, takže na Windows do `C:\Users\…\.local\share\`. Teď podle systému: `LOCALAPPDATA`, `Library/Application Support`, XDG.
## Co to bude chtít ručně
Sám to nespustím, tohle je na tobě:
1. založit veřejné repo na GitHubu,
2. v Gitee **Nastavení → Zrcadlení → Push mirror** na něj s GitHub PATem,
3. vyrobit Gitea token s `write:repository` a uložit ho na GitHubu jako secret **`GITEA_TOKEN`**.
Do té doby se v repu nic nezmění — `.github/workflows/` je pro Giteu mrtvý soubor.
## Ověřeno
99 testů (+4). Předpoklady té zkoušky po stavbě jsem projel proti běžícímu serveru: `/` i styly vrací 200, `/board` obsahuje vnucenou adresu a databáze se založí tam, kam se řekne.
Nepodepsané binárky si Gatekeeper ani SmartScreen nenechají líbit — README teď říká, co s tím. Certifikáty za tisíce ročně by na počitadlo kostek byly nesmysl.
Než začneme rozdávat binárky pro macOS a Windows, musí se na nich chovat
rozumně to, co dosud počítalo s Linuxem.
Adresy rozhraní se hledaly linuxovým ioctl. Na Windows chybí fcntl, na
macOS to číslo znamená něco jiného, takže obojí propadlo až na poslední
zálohu přes hostname — a ta na macOS vrátí jednu adresu. Tabule by tam
nabídla jedinou volbu, přesně to, co jsme minule opravovali. Přibyla
mezizáloha přes ifconfig; spouští se jen tam, kde ioctl nic nenašel,
takže na Linuxu se neplatí nic. Parsování je zvlášť jako čistá funkce,
ať jde otestovat i bez macOS pod rukama.
Databáze z binárky mířila do XDG adresáře na všech systémech. Na Windows
by to znamenalo C:\Users\...\.local\share\, což tam nikdo nečeká. Teď se
volí podle systému: LOCALAPPDATA, Library/Application Support, XDG.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PyInstaller neumí křížovou kompilaci — binárku pro každý systém musí
postavit ten systém. Vlastní runner pro Windows a hlavně pro macOS by byl
nepoměr, tak si tyhle stroje půjčujeme od GitHub Actions.
GitHub je jen půjčená dílna, ne druhý domov projektu: repozitář se tam
z Gitey zrcadlí, hotové soubory se posílají zpátky na zdejší release přes
Gitea API a stránka s releasy zůstává jedna. Linux se tam schválně
nestaví; doma to jde proti glibc 2.17 a je to zároveň pojistka, kdyby
GitHub vypadl.
build.sh je společný pro všechny tři systémy, liší se jen tím, že Windows
dává spustitelné soubory venvu do Scripts/ místo bin/. Ořezání symbolů
zůstává jen Linuxu: na macOS by rozbilo podpis, který si PyInstaller sám
přidává a bez kterého se binárka na Apple Silicon vůbec nespustí.
Zkouška po stavbě je stejná jako u linuxové: nastartovat, stáhnout si
stránku i styly a ověřit, že se založila databáze.
Nepodepsané binárky si Gatekeeper ani SmartScreen nenechají líbit, tak je
v README napsané, co s tím — certifikáty za tisíce ročně by na počitadlo
kostek byly nesmysl.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Doplňuje k linuxové binárce ještě Windows a macOS (Intel i Apple Silicon).
Proč přes GitHub
PyInstaller neumí křížovou kompilaci — binárku pro každý systém musí postavit ten systém. Vlastní runner pro Windows a hlavně pro macOS by byl nepoměr, tak si tyhle stroje půjčujeme od GitHub Actions.
GitHub je jen půjčená dílna, ne druhý domov projektu. Repozitář se tam z Gitey zrcadlí, hotové soubory se posílají zpátky na zdejší release přes Gitea API a stránka s releasy zůstává jedna — tahle. Linux se tam schválně nestaví: doma to jde proti glibc 2.17 a je to zároveň pojistka, kdyby GitHub vypadl.
kostky-linux-x86_64kostky-windows-x86_64.exe,kostky-macos-x86_64,kostky-macos-arm64Ke každé se jako dosud věší i
.sha256.Dvě opravy, bez kterých by to bylo poloviční
Adresy. Rozhraní se hledala linuxovým ioctl. Na Windows chybí
fcntl, na macOS to číslo znamená něco jiného — obojí propadlo až na zálohu přes hostname, která na macOS vrátí jedinou adresu. Tabule by tam nabídla jednu volbu, přesně to, co jsme minule opravovali. Přibyla mezizáloha přesifconfig; běží jen tam, kde ioctl nic nenašel, takže na Linuxu se neplatí nic. Parsování je zvlášť jako čistá funkce a je otestované proti skutečnému výstupu z macOS.Databáze. Z binárky mířila do XDG adresáře na všech systémech, takže na Windows do
C:\Users\…\.local\share\. Teď podle systému:LOCALAPPDATA,Library/Application Support, XDG.Co to bude chtít ručně
Sám to nespustím, tohle je na tobě:
write:repositorya uložit ho na GitHubu jako secretGITEA_TOKEN.Do té doby se v repu nic nezmění —
.github/workflows/je pro Giteu mrtvý soubor.Ověřeno
99 testů (+4). Předpoklady té zkoušky po stavbě jsem projel proti běžícímu serveru:
/i styly vrací 200,/boardobsahuje vnucenou adresu a databáze se založí tam, kam se řekne.Nepodepsané binárky si Gatekeeper ani SmartScreen nenechají líbit — README teď říká, co s tím. Certifikáty za tisíce ročně by na počitadlo kostek byly nesmysl.