D6065: setup: exclude some internal UCRT files

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Sun Mar 3 18:52:16 EST 2019


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

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,



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


More information about the Mercurial-devel mailing list