Closed Bug 1759125 Opened 2 years ago Closed 2 years ago

mach artifact toolchain no longer works and causes builds to fail

Categories

(Firefox Build System :: Mach Core, defect)

defect

Tracking

(firefox-esr91 unaffected, firefox98 unaffected, firefox99 unaffected, firefox100 fixed)

RESOLVED FIXED
100 Branch
Tracking Status
firefox-esr91 --- unaffected
firefox98 --- unaffected
firefox99 --- unaffected
firefox100 --- fixed

People

(Reporter: emilio, Assigned: mhentges)

References

(Blocks 1 open bug, Regression)

Details

(Keywords: regression)

Attachments

(1 file, 1 obsolete file)

I've only noticed this now because Mike landed a toolchain update, but bug 1758584 broke bootstrap / mach artifact toolchain.

Minimal STR:

$ mach artifact toolchain --from-build linux64-clang-tidy                                                                                                                                                                                
error: No such remote 'origin'
 0:03.10 Setting up artifact clang-tidy.tar.zst
 0:03.10 Using artifact from local cache: /home/emilio/.mozbuild/toolchains/521aa916b288a73e-clang-tidy.tar.zst
Error running mach:

    ['artifact', 'toolchain', '--from-build', 'linux64-clang-tidy']

The error occurred in code that was called by the mach command. This is either
a bug in the called code itself or in the way that mach is calling it.
You can invoke |./mach busted| to check if this issue is already on file. If it
isn't, please use |./mach busted file artifact| to report it. If |./mach busted| is
misbehaving, you can also inspect the dependencies of bug 1543241.

If filing a bug, please include the full output of mach, including this error
message.

The details of the failure are as follows:

ModuleNotFoundError: No module named 'zstandard'

  File "/home/emilio/src/moz/gecko-2/python/mozbuild/mozbuild/artifact_commands.py", line 576, in artifact_toolchain
    unpack_file(local)
  File "/home/emilio/src/moz/gecko-2/python/mozbuild/mozbuild/action/tooltool.py", line 993, in unpack_file
    import zstandard

Sentry event ID: 92ea5b8ab8594c43b8e2d1827e47fec2
Sentry is attempting to send 0 pending error messages
Waiting up to 2 seconds
Press Ctrl-C to quit
Flags: needinfo?(mhentges)

Reversing just https://hg.mozilla.org/mozilla-central/rev/1337faa66745 allows me to build / bootstrap again.

Path when bad:

'/home/emilio/src/moz/gecko-2/python/mozbuild/mozbuild/../../../taskcluster', '', '/usr/lib64/python310.zip', '/usr/lib64/python3.10', '/usr/lib64/python3.10/lib-dynload', '/home/emilio/src/moz/gecko-2/build', '/home/emilio/src/moz/gecko-2/config', '/home/emilio/src/moz/gecko-2/config/mozunit', '/home/emilio/src/moz/gecko-2/dom/bindings', '/home/emilio/src/moz/gecko-2/dom/bindings/parser', '/home/emilio/src/moz/gecko-2/layout/tools/reftest', '/home/emilio/src/moz/gecko-2/python/l10n', '/home/emilio/src/moz/gecko-2/python/mach', '/home/emilio/src/moz/gecko-2/python/mozboot', '/home/emilio/src/moz/gecko-2/python/mozbuild', '/home/emilio/src/moz/gecko-2/python/mozlint', '/home/emilio/src/moz/gecko-2/python/mozperftest', '/home/emilio/src/moz/gecko-2/python/mozrelease', '/home/emilio/src/moz/gecko-2/python/mozterm', '/home/emilio/src/moz/gecko-2/python/mozversioncontrol', '/home/emilio/src/moz/gecko-2/security/manager/tools', '/home/emilio/src/moz/gecko-2/taskcluster', '/home/emilio/src/moz/gecko-2/testing', '/home/emilio/src/moz/gecko-2/testing/awsy', '/home/emilio/src/moz/gecko-2/testing/condprofile', '/home/emilio/src/moz/gecko-2/testing/firefox-ui/harness', '/home/emilio/src/moz/gecko-2/testing/marionette/client', '/home/emilio/src/moz/gecko-2/testing/marionette/harness', '/home/emilio/src/moz/gecko-2/testing/mozbase/manifestparser', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozcrash', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozdebug', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozdevice', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozfile', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozgeckoprofiler', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozhttpd', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozinfo', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozinstall', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozleak', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozlog', '/home/emilio/src/moz/gecko-2/testing/mozbase/moznetwork', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozpower', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozprocess', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozprofile', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozproxy', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozrunner', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozscreenshot', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozsystemmonitor', '/home/emilio/src/moz/gecko-2/testing/mozbase/moztest', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozversion', '/home/emilio/src/moz/gecko-2/testing/raptor', '/home/emilio/src/moz/gecko-2/testing/talos', '/home/emilio/src/moz/gecko-2/testing/web-platform', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/funcsigs', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/h2', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/hpack', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/html5lib', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/hyperframe', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/pywebsocket3', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/webencodings', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/wptrunner', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/wptserve', '/home/emilio/src/moz/gecko-2/testing/xpcshell', '/home/emilio/src/moz/gecko-2/third_party/python/Jinja2', '/home/emilio/src/moz/gecko-2/third_party/python/MarkupSafe/src', '/home/emilio/src/moz/gecko-2/third_party/python/PyYAML/lib3', '/home/emilio/src/moz/gecko-2/third_party/python/aiohttp', '/home/emilio/src/moz/gecko-2/third_party/python/appdirs', '/home/emilio/src/moz/gecko-2/third_party/python/async_timeout', '/home/emilio/src/moz/gecko-2/third_party/python/attrs', '/home/emilio/src/moz/gecko-2/third_party/python/blessings', '/home/emilio/src/moz/gecko-2/third_party/python/cbor2', '/home/emilio/src/moz/gecko-2/third_party/python/certifi', '/home/emilio/src/moz/gecko-2/third_party/python/chardet', '/home/emilio/src/moz/gecko-2/third_party/python/click', '/home/emilio/src/moz/gecko-2/third_party/python/colorama', '/home/emilio/src/moz/gecko-2/third_party/python/compare_locales', '/home/emilio/src/moz/gecko-2/third_party/python/cookies', '/home/emilio/src/moz/gecko-2/third_party/python/cram', '/home/emilio/src/moz/gecko-2/third_party/python/diskcache', '/home/emilio/src/moz/gecko-2/third_party/python/distro', '/home/emilio/src/moz/gecko-2/third_party/python/dlmanager', '/home/emilio/src/moz/gecko-2/third_party/python/ecdsa', '/home/emilio/src/moz/gecko-2/third_party/python/esprima', '/home/emilio/src/moz/gecko-2/third_party/python/fluent.migrate', '/home/emilio/src/moz/gecko-2/third_party/python/fluent.syntax', '/home/emilio/src/moz/gecko-2/third_party/python/gyp/pylib', '/home/emilio/src/moz/gecko-2/third_party/python/idna', '/home/emilio/src/moz/gecko-2/third_party/python/idna-ssl', '/home/emilio/src/moz/gecko-2/third_party/python/importlib_metadata', '/home/emilio/src/moz/gecko-2/third_party/python/iso8601', '/home/emilio/src/moz/gecko-2/third_party/python/jsmin', '/home/emilio/src/moz/gecko-2/third_party/python/json-e', '/home/emilio/src/moz/gecko-2/third_party/python/jsonschema', '/home/emilio/src/moz/gecko-2/third_party/python/mohawk', '/home/emilio/src/moz/gecko-2/third_party/python/mozilla_version', '/home/emilio/src/moz/gecko-2/third_party/python/multidict', '/home/emilio/src/moz/gecko-2/third_party/python/packaging', '/home/emilio/src/moz/gecko-2/third_party/python/pathspec', '/home/emilio/src/moz/gecko-2/third_party/python/pip', '/home/emilio/src/moz/gecko-2/third_party/python/pip_tools', '/home/emilio/src/moz/gecko-2/third_party/python/ply', '/home/emilio/src/moz/gecko-2/third_party/python/pyasn1', '/home/emilio/src/moz/gecko-2/third_party/python/pyasn1_modules', '/home/emilio/src/moz/gecko-2/third_party/python/pylru', '/home/emilio/src/moz/gecko-2/third_party/python/pyparsing', '/home/emilio/src/moz/gecko-2/third_party/python/pyrsistent', '/home/emilio/src/moz/gecko-2/third_party/python/python-hglib', '/home/emilio/src/moz/gecko-2/third_party/python/pytoml', '/home/emilio/src/moz/gecko-2/third_party/python/redo', '/home/emilio/src/moz/gecko-2/third_party/python/requests', '/home/emilio/src/moz/gecko-2/third_party/python/requests_unixsocket', '/home/emilio/src/moz/gecko-2/third_party/python/responses', '/home/emilio/src/moz/gecko-2/third_party/python/rsa', '/home/emilio/src/moz/gecko-2/third_party/python/sentry_sdk', '/home/emilio/src/moz/gecko-2/third_party/python/setuptools', '/home/emilio/src/moz/gecko-2/third_party/python/six', '/home/emilio/src/moz/gecko-2/third_party/python/slugid', '/home/emilio/src/moz/gecko-2/third_party/python/taskcluster', '/home/emilio/src/moz/gecko-2/third_party/python/taskcluster_taskgraph', '/home/emilio/src/moz/gecko-2/third_party/python/taskcluster_urls', '/home/emilio/src/moz/gecko-2/third_party/python/tqdm', '/home/emilio/src/moz/gecko-2/third_party/python/typing_extensions', '/home/emilio/src/moz/gecko-2/third_party/python/urllib3', '/home/emilio/src/moz/gecko-2/third_party/python/voluptuous', '/home/emilio/src/moz/gecko-2/third_party/python/wheel', '/home/emilio/src/moz/gecko-2/third_party/python/yamllint', '/home/emilio/src/moz/gecko-2/third_party/python/yarl', '/home/emilio/src/moz/gecko-2/third_party/python/zipp', '/home/emilio/src/moz/gecko-2/toolkit/components/telemetry/tests/marionette/harness', '/home/emilio/src/moz/gecko-2/tools', '/home/emilio/src/moz/gecko-2/tools/moztreedocs', '/home/emilio/src/moz/gecko-2/xpcom/ds/tools', '/home/emilio/src/moz/gecko-2/xpcom/geckoprocesstypes_generator', '/home/emilio/src/moz/gecko-2/xpcom/idl-parser', '/home/emilio/.mozbuild/srcdirs/gecko-2-fab9452aa406/_virtualenvs/mach', '/home/emilio/.mozbuild/srcdirs/gecko-2-fab9452aa406/_virtualenvs/mach/lib/python3.10/site-packages'

Path when good (patch backed out):

'/home/emilio/src/moz/gecko-2/python/mozbuild/mozbuild/../../../taskcluster', '/home/emilio/.mozbuild/srcdirs/gecko-2-fab9452aa406/_virtualenvs/mach/lib64/python3.10/site-packages', '/home/emilio/src/moz/gecko-2/build', '/home/emilio/src/moz/gecko-2/config', '/home/emilio/src/moz/gecko-2/config/mozunit', '/home/emilio/src/moz/gecko-2/dom/bindings', '/home/emilio/src/moz/gecko-2/dom/bindings/parser', '/home/emilio/src/moz/gecko-2/layout/tools/reftest', '/home/emilio/src/moz/gecko-2/python/l10n', '/home/emilio/src/moz/gecko-2/python/mach', '/home/emilio/src/moz/gecko-2/python/mozboot', '/home/emilio/src/moz/gecko-2/python/mozbuild', '/home/emilio/src/moz/gecko-2/python/mozlint', '/home/emilio/src/moz/gecko-2/python/mozperftest', '/home/emilio/src/moz/gecko-2/python/mozrelease', '/home/emilio/src/moz/gecko-2/python/mozterm', '/home/emilio/src/moz/gecko-2/python/mozversioncontrol', '/home/emilio/src/moz/gecko-2/security/manager/tools', '/home/emilio/src/moz/gecko-2/taskcluster', '/home/emilio/src/moz/gecko-2/testing', '/home/emilio/src/moz/gecko-2/testing/awsy', '/home/emilio/src/moz/gecko-2/testing/condprofile', '/home/emilio/src/moz/gecko-2/testing/firefox-ui/harness', '/home/emilio/src/moz/gecko-2/testing/marionette/client', '/home/emilio/src/moz/gecko-2/testing/marionette/harness', '/home/emilio/src/moz/gecko-2/testing/mozbase/manifestparser', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozcrash', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozdebug', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozdevice', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozfile', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozgeckoprofiler', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozhttpd', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozinfo', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozinstall', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozleak', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozlog', '/home/emilio/src/moz/gecko-2/testing/mozbase/moznetwork', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozpower', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozprocess', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozprofile', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozproxy', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozrunner', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozscreenshot', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozsystemmonitor', '/home/emilio/src/moz/gecko-2/testing/mozbase/moztest', '/home/emilio/src/moz/gecko-2/testing/mozbase/mozversion', '/home/emilio/src/moz/gecko-2/testing/raptor', '/home/emilio/src/moz/gecko-2/testing/talos', '/home/emilio/src/moz/gecko-2/testing/web-platform', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/funcsigs', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/h2', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/hpack', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/html5lib', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/hyperframe', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/pywebsocket3', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/third_party/webencodings', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/wptrunner', '/home/emilio/src/moz/gecko-2/testing/web-platform/tests/tools/wptserve', '/home/emilio/src/moz/gecko-2/testing/xpcshell', '/home/emilio/src/moz/gecko-2/third_party/python/Jinja2', '/home/emilio/src/moz/gecko-2/third_party/python/MarkupSafe/src', '/home/emilio/src/moz/gecko-2/third_party/python/PyYAML/lib3', '/home/emilio/src/moz/gecko-2/third_party/python/aiohttp', '/home/emilio/src/moz/gecko-2/third_party/python/appdirs', '/home/emilio/src/moz/gecko-2/third_party/python/async_timeout', '/home/emilio/src/moz/gecko-2/third_party/python/attrs', '/home/emilio/src/moz/gecko-2/third_party/python/blessings', '/home/emilio/src/moz/gecko-2/third_party/python/cbor2', '/home/emilio/src/moz/gecko-2/third_party/python/certifi', '/home/emilio/src/moz/gecko-2/third_party/python/chardet', '/home/emilio/src/moz/gecko-2/third_party/python/click', '/home/emilio/src/moz/gecko-2/third_party/python/colorama', '/home/emilio/src/moz/gecko-2/third_party/python/compare_locales', '/home/emilio/src/moz/gecko-2/third_party/python/cookies', '/home/emilio/src/moz/gecko-2/third_party/python/cram', '/home/emilio/src/moz/gecko-2/third_party/python/diskcache', '/home/emilio/src/moz/gecko-2/third_party/python/distro', '/home/emilio/src/moz/gecko-2/third_party/python/dlmanager', '/home/emilio/src/moz/gecko-2/third_party/python/ecdsa', '/home/emilio/src/moz/gecko-2/third_party/python/esprima', '/home/emilio/src/moz/gecko-2/third_party/python/fluent.migrate', '/home/emilio/src/moz/gecko-2/third_party/python/fluent.syntax', '/home/emilio/src/moz/gecko-2/third_party/python/gyp/pylib', '/home/emilio/src/moz/gecko-2/third_party/python/idna', '/home/emilio/src/moz/gecko-2/third_party/python/idna-ssl', '/home/emilio/src/moz/gecko-2/third_party/python/importlib_metadata', '/home/emilio/src/moz/gecko-2/third_party/python/iso8601', '/home/emilio/src/moz/gecko-2/third_party/python/jsmin', '/home/emilio/src/moz/gecko-2/third_party/python/json-e', '/home/emilio/src/moz/gecko-2/third_party/python/jsonschema', '/home/emilio/src/moz/gecko-2/third_party/python/mohawk', '/home/emilio/src/moz/gecko-2/third_party/python/mozilla_version', '/home/emilio/src/moz/gecko-2/third_party/python/multidict', '/home/emilio/src/moz/gecko-2/third_party/python/packaging', '/home/emilio/src/moz/gecko-2/third_party/python/pathspec', '/home/emilio/src/moz/gecko-2/third_party/python/pip', '/home/emilio/src/moz/gecko-2/third_party/python/pip_tools', '/home/emilio/src/moz/gecko-2/third_party/python/ply', '/home/emilio/src/moz/gecko-2/third_party/python/pyasn1', '/home/emilio/src/moz/gecko-2/third_party/python/pyasn1_modules', '/home/emilio/src/moz/gecko-2/third_party/python/pylru', '/home/emilio/src/moz/gecko-2/third_party/python/pyparsing', '/home/emilio/src/moz/gecko-2/third_party/python/pyrsistent', '/home/emilio/src/moz/gecko-2/third_party/python/python-hglib', '/home/emilio/src/moz/gecko-2/third_party/python/pytoml', '/home/emilio/src/moz/gecko-2/third_party/python/redo', '/home/emilio/src/moz/gecko-2/third_party/python/requests', '/home/emilio/src/moz/gecko-2/third_party/python/requests_unixsocket', '/home/emilio/src/moz/gecko-2/third_party/python/responses', '/home/emilio/src/moz/gecko-2/third_party/python/rsa', '/home/emilio/src/moz/gecko-2/third_party/python/sentry_sdk', '/home/emilio/src/moz/gecko-2/third_party/python/setuptools', '/home/emilio/src/moz/gecko-2/third_party/python/six', '/home/emilio/src/moz/gecko-2/third_party/python/slugid', '/home/emilio/src/moz/gecko-2/third_party/python/taskcluster', '/home/emilio/src/moz/gecko-2/third_party/python/taskcluster_taskgraph', '/home/emilio/src/moz/gecko-2/third_party/python/taskcluster_urls', '/home/emilio/src/moz/gecko-2/third_party/python/tqdm', '/home/emilio/src/moz/gecko-2/third_party/python/typing_extensions', '/home/emilio/src/moz/gecko-2/third_party/python/urllib3', '/home/emilio/src/moz/gecko-2/third_party/python/voluptuous', '/home/emilio/src/moz/gecko-2/third_party/python/wheel', '/home/emilio/src/moz/gecko-2/third_party/python/yamllint', '/home/emilio/src/moz/gecko-2/third_party/python/yarl', '/home/emilio/src/moz/gecko-2/third_party/python/zipp', '/home/emilio/src/moz/gecko-2/toolkit/components/telemetry/tests/marionette/harness', '/home/emilio/src/moz/gecko-2/tools', '/home/emilio/src/moz/gecko-2/tools/moztreedocs', '/home/emilio/src/moz/gecko-2/xpcom/ds/tools', '/home/emilio/src/moz/gecko-2/xpcom/geckoprocesstypes_generator', '/home/emilio/src/moz/gecko-2/xpcom/idl-parser', '/home/emilio/.mozbuild/srcdirs/gecko-2-fab9452aa406/_virtualenvs/mach', '/home/emilio/.mozbuild/srcdirs/gecko-2-fab9452aa406/_virtualenvs/mach/lib/python3.10/site-packages', '', '/usr/lib64/python310.zip', '/usr/lib64/python3.10', '/usr/lib64/python3.10/lib-dynload'

/home/emilio/.mozbuild/srcdirs/gecko-2-fab9452aa406/_virtualenvs/mach/lib64/python3.10/site-packages does contain zstandard, but that path is no longer in sys.path.

ah, so virtualenv.site_packages_dir() is /home/emilio/.mozbuild/srcdirs/gecko-2-fab9452aa406/_virtualenvs/mach/lib/python3.10/site-packages but zstandard is in /home/emilio/.mozbuild/srcdirs/gecko-2-fab9452aa406/_virtualenvs/mach/lib64/python3.10/site-packages (lib/ vs. lib64/).

Set release status flags based on info from the regressing bug 1758584

Hmm, thanks for the report, I'll dig into this later today 👍

Assignee: nobody → mhentges
Status: NEW → ASSIGNED
Flags: needinfo?(mhentges)

On Emilio's system, the purelib and platlib are different directories (lib and lib64), and the libraries installed are intelligently put in the right ones (glean-sdk in lib, zstandard and cffi in lib64).

We didn't encounter this error before because virtualenv was handling which paths to add the sys.path, but we we're still being burnt because our Mach-specific code would only use the purelib path in pthfile references. That could've caused issues elsewhere.

TL;DR: the issue is to have site_packages_dir return multiple paths.

On newer systems, Python is intelligently populating pure-python and
platform-specific packages into //two different directories//.
Traditionally, these directories would be symlinked - or only one would
exist. However, to support these newer systems (and be better integrated
with Python conventions), we should handle both of these directories
properly.

The solution here is, when calculating the site_packages_dir(),
calculate all of them, and handle the multitude at all call sites.
The one use case where we want only one path (the resolving the location
for the mach.pth pthfile), I've opted for the platlib, since both
pure python dependencies //and// platform-specific dependencies are
referenced by the pthfile.

Now that we're using sysconfig instead of distutils, our purelib
and platlib paths should correctly point to python environment paths
without a spurious local/ component at their roots.

Depends on D140870

Attachment #9267438 - Attachment description: WIP: Bug 1759125: Venv site-packages should include both purelib and platlib → Bug 1759125: Venv site-packages should include both purelib and platlib
Attachment #9267439 - Attachment description: WIP: Bug 1759125: Remove workaround for handling `local/` in venv paths → Bug 1759125: Remove workaround for handling `local/` in venv paths

Comment on attachment 9267439 [details]
Bug 1759125: Remove workaround for handling local/ in venv paths

Revision D140871 was moved to bug 1759193. Setting attachment 9267439 [details] to obsolete.

Attachment #9267439 - Attachment is obsolete: true
Has Regression Range: --- → yes
Pushed by mhentges@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/edb59449970a
Venv site-packages should include both purelib and platlib r=ahochheiden
Status: ASSIGNED → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 100 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: