Patchwork D11697: pyoxidizer: disable using in-memory resources

login
register
mail settings
Submitter phabricator
Date Oct. 19, 2021, 9 p.m.
Message ID <differential-rev-PHID-DREV-f6dblnjvrbrx7sem3mzj-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/50021/
State Superseded
Headers show

Comments

phabricator - Oct. 19, 2021, 9 p.m.
spectral created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  It's possible that the errors are due to using an incompatible version of
  PyOxidizer; unfortunately the README.md file in this directory says to fetch a
  copy of PyOxidizer matching the commit in this pyoxidizer.bzl file, and yet the
  pyoxidizer.bzl file does not actually have a commit mentioned in it.
  
  By disabling in-memory modules, this appears to work on all platforms using the
  current head version of PyOxidizer, so let's disable them for now.
  
  Sample error (during `pyoxidizer build`):
  
    error[PYOXIDIZER_PYTHON_EXECUTABLE]: adding PythonExtensionModule<name=hgext.fsmonitor.pywatchman.bser>
    
    Caused by:
        extension module hgext.fsmonitor.pywatchman.bser cannot be loaded from memory but memory loading required
       --> ./pyoxidizer.bzl:140:5
        |
    140 |     exe.add_python_resources(exe.pip_install(["--verbose", ROOT]))
        |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ add_python_resources()
    
    
    error: adding PythonExtensionModule<name=hgext.fsmonitor.pywatchman.bser>
    
    Caused by:
        extension module hgext.fsmonitor.pywatchman.bser cannot be loaded from memory but memory loading required

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  rust/hgcli/pyoxidizer.bzl

CHANGE DETAILS




To: spectral, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/rust/hgcli/pyoxidizer.bzl b/rust/hgcli/pyoxidizer.bzl
--- a/rust/hgcli/pyoxidizer.bzl
+++ b/rust/hgcli/pyoxidizer.bzl
@@ -33,7 +33,8 @@ 
 TIME_STAMP_SERVER_URL = VARS.get("TIME_STAMP_SERVER_URL", "http://timestamp.digicert.com")
 
 IS_WINDOWS = "windows" in BUILD_TARGET_TRIPLE
-IS_MACOS = "darwin" in BUILD_TARGET_TRIPLE
+
+USE_IN_MEMORY_RESOURCES = False
 
 # Code to run in Python interpreter.
 RUN_CODE = """
@@ -84,7 +85,7 @@ 
     return default_python_distribution(python_version = "3.9")
 
 def resource_callback(policy, resource):
-    if not (IS_WINDOWS or IS_MACOS):
+    if USE_IN_MEMORY_RESOURCES:
         resource.add_location = "in-memory"
         return
 
@@ -115,7 +116,7 @@ 
     # extensions.
     packaging_policy.extension_module_filter = "all"
     packaging_policy.resources_location = "in-memory"
-    if IS_WINDOWS or IS_MACOS:
+    if not USE_IN_MEMORY_RESOURCES:
         packaging_policy.resources_location_fallback = "filesystem-relative:lib"
     packaging_policy.register_resource_callback(resource_callback)