[PATCH 2 of 2 STABLE] setup: forcibly include cext/pure packages in py2exe (issue5625)
Pascal Quantin
pascal.quantin at gmail.com
Fri Jul 21 01:54:38 EDT 2017
Hi Matt and Yuya,
2017-07-21 4:16 GMT+02:00 Matt Harbison <mharbison72 at gmail.com>:
> On Thu, 20 Jul 2017 10:39:53 -0400, Yuya Nishihara <yuya at tcha.org> wrote:
>
> # HG changeset patch
>> # User Yuya Nishihara <yuya at tcha.org>
>> # Date 1500558460 -32400
>> # Thu Jul 20 22:47:40 2017 +0900
>> # Branch stable
>> # Node ID d5bb7d09db154036eaf1173c5445356218b8291e
>> # Parent 3f8f39ef616024ac0722c701aeae9105a52728fa
>> setup: forcibly include cext/pure packages in py2exe (issue5625)
>>
>> Since these modules are implicitly imported by policy.importmod(), py2exe
>> can't track them statically. cffi modules are excluded for now because
>> they
>> wouldn't be useful in frozen (i.e. CPython) environment.
>>
>> diff --git a/setup.py b/setup.py
>> --- a/setup.py
>> +++ b/setup.py
>> @@ -889,7 +889,12 @@ setup(name='mercurial',
>> package_data=packagedata,
>> cmdclass=cmdclass,
>> distclass=hgdist,
>> - options={'py2exe': {'packages': ['hgdemandimport', 'hgext',
>> 'email']},
>> + options={'py2exe': {'packages': ['hgdemandimport', 'hgext',
>> 'email',
>> + # implicitly imported per module
>> policy
>> + # (cffi wouldn't be used as a
>> frozen exe)
>> + 'mercurial.cext',
>> + #'mercurial.cffi',
>> + 'mercurial.pure']},
>> 'bdist_mpkg': {'zipdist': False,
>> 'license': 'COPYING',
>> 'readme': 'contrib/macosx/Readme.html',
>>
>
> For reasons that baffle me, this allows the Wix installer to get further
> than without this change, but it still fails on the linker. I ran the
> failing command manually, and it says parsers and diffhelpers are still
> missing:
>
> C:\Users\Matt\Projects\thg-build\winbuild\build>"C:\Program Files
> (x86)\WiX Toolset v3.10\bin\light.exe" -nologo -ext WixUIExtension -sw1076
> -spdb -o ..\..\output\mercurial-stable-4.3.103-x64.msi hg\help.wixobj
> hg\templates.wixobj hg\locale.wixobj hg\doc.wixobj hg\contrib.wixobj
> hg\dist.wixobj hg\mercurial.wixobj hg\i18n.wixobj
> c:\Users\Matt\projects\thg-build\winbuild\build\hg\contrib\wix\dist.wxs(17)
> : error LGHT0103 : The system cannot find the file
> '..\hg\dist/lib\mercurial.cext.diffhelpers.pyd'.
> c:\Users\Matt\projects\thg-build\winbuild\build\hg\contrib\wix\dist.wxs(20)
> : error LGHT0103 : The system cannot find the file
> '..\hg\dist/lib\mercurial.cext.parsers.pyd'.
>
> Indeed, these two files aren't listed in the '*** copy extensions ***'
> phase of the build. (So I have no idea why it works for Inno.) But adding
> this to the py2exe dict allows the MSI to be built:
>
> 'includes': ['mercurial.cext.diffhelpers', 'mercurial.cext.parsers']
>
I confirm that the initial patch is sufficient for the Inno Setup installer.
Best regards,
Pascal.
> Once installed, a side by side compare to 4.2.2 shows the renamed cext
> files as the only orphans, so I think everything else is accounted for in
> the Wix installer.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20170721/6a4f057d/attachment.html>
More information about the Mercurial-devel
mailing list