Michal Čihař - Vytváření binárek pro Windows bez použití Windows

Vytváření binárek pro Windows bez použití Windows

Jakmile jsem jednou vydal Wammu pro Windows, upletl jsem si na sebe bič. Chyby se opravují v nových verzích a shánět nějaké Windows na to, abych mohl vydat novou verzi mě už opravdu nebaví, takže binárka pro Windows je za aktuálním stavem docela daleko. Ale od čeho máme Wine? S tím by to přece mohlo jít nějak udělat…

Na celou myšlenku kompletní automatizace mě vlastně přivedl patch pro aktualizaci intrukcí pro vytvoření verze pro Windows . Sice tento návod měl spoustu nevyřešených problémů, ale nasměroval mě směrem, který se dal použít - vše udělat pomocí Pythonu pro Windows nainstalovaného ve Wine. Doposud jsem používal o něco obskurnější cestu s ručním linkováním proti rozbalenému Pythonu a občas věci prostě nefungovaly tak jak by měly.

Po úspěšném zkompilování python-gammu přišlo na řadu vytvoření instalačního balíčku z Wammu, protože většina uživatelů na Windows prostě není schopná (nebo ochotná) instalovat Python a jednotlivé moduly ručně. Bohužel Py2Exe , který pro tyto účely používám, trpí nějakou drobnou chybou, která po znásobení nenaimplementovanou funkcí ve Wine, způsobí, že to prostě nefunguje . Naštěstí je ve zmiňovaném bugu návod, jak to pomocí PE Tools opravit (je jen chybný nějaký údaj v PE hlavičce).

Po vytvoření binárky už jen stačí vytvořit instalátor. Naštěstí má Inno Setup i kompilátor pro příkazovou řádku, takže to už bylo bez jakýchkoliv komplikací.

Bohužel testování ve Wine však nezaručí, že program půjde spustit i na Windows (třeba výše zmiňovaná chyba v PE hlavičce Wine vůbec nevadí), ale snad se časem podaří verzi pro Windows odladit do rozumného stavu. Pokud se snad někdo chce zapojit do testování a má Windows, stahovat může dočasně tady .

Jak vypadají výsledné skripty pro kompilaci se můžete podívat v SVN pro Gammu , python-gammu a Wammu .