"error processing command" when virtualenvs are created
Categories
(Firefox Build System :: Mach Core, defect)
Tracking
(firefox90 fixed)
Tracking | Status | |
---|---|---|
firefox90 | --- | fixed |
People
(Reporter: mhentges, Assigned: mhentges)
Details
Attachments
(2 files, 1 obsolete file)
When optional:packages.txt:comm/build/virtualenv_packages
fails on non-Thunderbird checkouts, the following error is raised
Error processing command. Ignoring because optional. (optional:packages.txt:comm/build/virtualenv_packages.txt)
I don't think that optional
is the right mechanism here: it's not a "optional system constraint", it's a contextual constraint: to exaggerate, this is like warning that we haven't found a compiler when we're doing an artifact build. The warning confuses users who aren't sure if it's something they can ignore or just the system working like normal.
The solution here is not to print the error in Firefox checkouts.
Comment 1•3 years ago
|
||
Incomplete. mach_sys_path still needs updating to work with VIRTUALENV_PACKAGES.
The os.path.isdir("comm/build") condition could be handled nicer since right now
the working directory needs to be topsrcdir.
Assignee | ||
Comment 2•3 years ago
|
||
Avoid the "Error processing command" warning when building virtualenvs
in a Firefox checkout
Depends on D115921
Updated•3 years ago
|
Updated•3 years ago
|
Comment 4•3 years ago
|
||
bugherder |
I build FF and TB from a mozilla-unified repository for REL set to esr.., or release, or beta, or central, with a comm directory in the mozilla top level.
comm is empty for FF builds, and comm-$REL is mounted to it for TB builds.
This is now causing a build error for a FF90 build:
AssertionError: '/mozbuild/mozilla/comm/build/virtualenv_packages.txt' does not exist
....
Exception: Error populating virtualenv.
Error running mach:
['build']
This patch avoids that failure for FF whether comm doesn't exist, exists and is empty, or has comm-$REL content:
--- python/mozbuild/mozbuild/virtualenv.py
+++ python/mozbuild/mozbuild/virtualenv.py
@@ -336 +336 @@
- is_thunderbird = os.path.exists(os.path.join(self.topsrcdir, "comm"))
+ is_thunderbird = os.path.exists(os.path.join(self.topsrcdir, "comm/mail"))
Assignee | ||
Comment 6•3 years ago
|
||
There's always an edge case to an edge case, eh?
I'll set up a patch today, thanks for the report.
Assignee | ||
Comment 7•3 years ago
|
||
Some developers hold onto a comm
directory as a mount point
that they conditionally populate depending on whether they're working on
Firefox or Thunderbird.
The "comm
directory exists == is a thunderbird checkout"
assumption isn't compatible with this workflow.
The fix embraced by this patch is to check if the comm
directory has
any contents.
Comment 9•3 years ago
|
||
bugherder |
Description
•