Patchwork D6065: setup: exclude some internal UCRT files

login
register
mail settings
Submitter phabricator
Date March 3, 2019, 11:52 p.m.
Message ID <differential-rev-PHID-DREV-xyas76mzvohq6gafbfgk-req@phab.mercurial-scm.org>
Download mbox | patch
Permalink /patch/39032/
State Superseded
Headers show

Comments

phabricator - March 3, 2019, 11:52 p.m.
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  When attempting to build the Inno installer locally, I was getting
  several file not found errors when py2exe was crawling DLL
  dependencies. The missing DLLs appear to be "internal" DLLs
  used by the Universal C Runtime (UCRT). In many cases, the
  missing DLLs don't appear to exist on my system at all!
  Some of the DLLs have version numbers that appear to be N+1
  of what the existing version number is. Maybe the "public" UCRT
  DLLs are probing for version N+1 at load time and py2exe is
  picking these up? Who knows.
  
  This commit adds the non-public UCRT DLLs as found by
  py2exe on my system to the excluded DLLs set. After this
  change, I'm able to produce an Inno installer with an
  appropriate set of DLLs.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D6065

AFFECTED FILES
  setup.py

CHANGE DETAILS




To: indygreg, #hg-reviewers
Cc: mercurial-devel

Patch

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -1372,6 +1372,14 @@ 
       options={
           'py2exe': {
               'packages': py2exepackages,
+              'dll_excludes': [
+                  'api-ms-win-core-apiquery-l1-1-0.dll',
+                  'api-ms-win-core-delayload-l1-1-0.dll',
+                  'api-ms-win-core-delayload-l1-1-1.dll',
+                  'api-ms-win-core-heap-l2-1-0.dll',
+                  'api-ms-win-core-libraryloader-l1-2-0.dll',
+                  'api-ms-win-core-registry-l1-1-0.dll',
+              ]
           },
           'bdist_mpkg': {
               'zipdist': False,