Win32 Buildsystem
John Ralls
jralls at ceridwen.us
Mon Jul 14 13:50:49 EDT 2025
Win32-interested devs:
I’ve built a new mingw-w64-i686-webkitgtk3-2.4.11-999.8-any.tar.zst and overhauled gnucash-on-windows/setup-mingw64.ps1 for the current MSYS2 installer. The MSYS2 folks are slowly dropping 32-bit packages and that includes some that affect GnuCash, so there are some adjustments. setup-mingw64.ps1 takes care of all of them for a new installation but if you’re upgrading an existing one you may need to make the adjustments by hand:
ICU is dropped with the last one being
https://repo.msys2.org/mingw/mingw32/mingw-w64-i686-icu-76.1-1-any.pkg.tar.zst
Consequently harfbuzz-icu is dropped; it naturally depends on a corresponding harfbuzz. Use
https://repo.msys2.org/mingw/mingw32/mingw-w64-i686-harfbuzz-icu-11.0.1-1-any.pkg.tar.zst
https://repo.msys2.org/mingw/mingw32/mingw-w64-i686-harfbuzz-icu-11.0.1-1-any.pkg.tar.zst
and set IgnorePkgs = mingw-w64-i686-harfbuzz in /etc/pacman.conf to prevent pacman from messing it up.
Libsoup-2, needed by WebKitGtk3, use
https://repo.msys2.org/mingw/mingw32/mingw-w64-i686-libsoup-2.74.3-1-any.pkg.tar.zst
Libmariadbclient, needed for the MySQL backend, use:
https://repo.msys2.org/mingw/mingw32/mingw-w64-i686-libmariadbclient-3.3.8-2-any.pkg.tar.zst
Postgresql, needed for that backend, and xmlsec, required for AQBanking (xmlsec is dropped from mingw64 too). I added those to build with jhbuild. Note that Postgresql has a malformed link command when building one of its libraries that causes it to try to link an installed library and that the old library is missing a symbol. You may need to uninstall it with
pacman -R mingw-w64-i686-postgresql
if the build fails.
Recent versions of pacman are more demanding about remote repository configuration and won’t install the webkit package from the Sourceforge URL so you must download both
mingw-w64-i686-webkitgtk3-2.4.11-999.8-any.tar.zst and
mingw-w64-i686-webkitgtk3-2.4.11-999.8-any.tar.zst.sig
then run pacman -U on the download path.
I also built mingw-w64-x86_64-webkitgtk3-2.4.11-999.8-any.tar.zst; for that the adjustments don’t apply. It’s built with ICU-77 and will break when that gets upgraded so those working in a mingw64 environment may want to add mingw-w64-x86_64-icu, mingw-w64-x86_64-harfbuzz, and mingw-w64-x86_64-harfbuzz-icu to their IgnorePkg.
Regards,
John Ralls
More information about the gnucash-devel
mailing list