Page MenuHomePhabricator

[electrum] build 64-bit windows binaries by default
ClosedPublic

Authored by PiRK on Thu, Feb 5, 13:56.

Details

Reviewers
bytesofman
Group Reviewers
Restricted Project
Commits
rABC5ff438e2cdad: [electrum] build 64-bit windows binaries by default
Summary

This adds support for 64-bit Windows releases, and makes it the default.

Required for qt6, and will help prevent MemoryError with large wallets.
32-bit Windows usage is now well under 1% of all running Windows computers.

The switch from wine makensis.exe (with a downloaded 32 bit makensis.exe) to the linux nsis package is a backport of electrum#8057

Test Plan
contrib/build-wine/build.sh
wine dist/ElectrumABC-5.4.4.exe
contrib/make_clean

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

electrum/contrib/build-wine/deterministic.spec
44 ↗(On Diff #58206)

tried replacing win32 with win64 here, and it didn't work. Keeping win32 also does not work, it doesn't find the file in the python package. So this is a fixme, I need a windows machine to test it.

electrum/contrib/build-wine/docker/Dockerfile
19 ↗(On Diff #58206)

https://launchpad.net/ubuntu/jammy/amd64/gnupg2

This is a dummy transitional package that provides symlinks from gpg2
to gpg.

And it seems like it was removed from the repo.

PiRK edited the summary of this revision. (Show Details)
PiRK edited the test plan for this revision. (Show Details)

fix the platform_tag for Satochip's pyscard shard lib

PiRK published this revision for review.Thu, Feb 5, 16:43

actually make it work for both win32 and win64, by simply using a wildcard for the platform tag. This way the switch from 64 to 32 bits will require only setting an ENV var WIN_ARCH=win64.

PiRK retitled this revision from [electrum] build 64-bit windows binaries to [electrum] build 64-bit windows binaries by default.
PiRK edited the summary of this revision. (Show Details)
PiRK edited the test plan for this revision. (Show Details)

properly support both win32 and win64 with a single ENV var (WIN_ARCH, defaults to win64)

bytesofman added a subscriber: bytesofman.
bytesofman added inline comments.
electrum/contrib/build-wine/electrum-abc.nsi
90 ↗(On Diff #58209)

seems like a weird change here? does this still work / is the relative path preferred?

is this related to the win64 change?

i see it's (kind of) in the backport but they were using "c:\" style lines (obi-wan-long-time.jpg)

This revision is now accepted and ready to land.Thu, Feb 5, 17:34
electrum/contrib/build-wine/electrum-abc.nsi
90 ↗(On Diff #58209)

Yes, i tried not changing it and it broke. Probably a difference in how makensis work on Windows vs the Linux command (previously we were running the windows executable via Wine, with some Wine path weirdness)

I'm going to edit the summary and test plan because for some reason I'm not able to make it work anymore for win32 (so i'll remove the claim that we support both)

electrum/contrib/build-wine/electrum-abc.nsi
90 ↗(On Diff #58209)
electrum/contrib/build-wine/electrum-abc.nsi
90 ↗(On Diff #58209)

👍