Read about our upcoming Code of Conduct on this issue

Commit 07585c77 authored by Kyle Lippincott's avatar Kyle Lippincott
Browse files

pyoxidizer: disable using in-memory resources

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
```

Differential Revision: https://phab.mercurial-scm.org/D11697
parent 749946b6a641
......@@ -33,7 +33,8 @@ SIGNING_SUBJECT_NAME = VARS.get("SIGNING_SUBJECT_NAME")
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 @@ def make_distribution():
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 @@ def make_exe(dist):
# 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)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment