( )⚙ D6135 packaging: don't bundle DLLs in py2exe library.zip for x86 builds

This is an archive of the discontinued Mercurial Phabricator instance.

packaging: don't bundle DLLs in py2exe library.zip for x86 builds
ClosedPublic

Authored by indygreg on Mar 14 2019, 9:39 PM.

Details

Summary

I had ported the x86/x64 behavior difference from the Inno
Setup installer files. Why things were this way, I'm not sure.

The WiX configuration files are expecting to have standalone
DLL files for both configurations. And the 32-bit WiX installers
were broken due to missing DLLs.

Let's standardize on standalone DLL files on all configurations
for consistency. I /think/ this will be faster, as I /think/
py2exe binaries would have to extract the DLL to a temporary file
in order to load it. But I'm not 100% sure about that.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

indygreg created this revision.Mar 14 2019, 9:39 PM
This revision was automatically updated to reflect the committed changes.

According to a private email, things were inconsistent because py2exe didn't (doesn't?) support bundling DLLs in the zip several years ago, so things *had* to be a certain way.

I haven't tested things today, but py2exe does have code to load DLLs from a memory location. So it /might/ be loading from the zip without filesystem I/O. If it does, we may want to change this to level 2 by default.

It's not a big deal though and can be done as a follow-up.