-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[omnibus] Fix MacOS build conflicting with system Python 3 #5010
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for debugging this!
Made a small suggestion
tasks/agent.py
Outdated
# is pointing at), bypassing the "--prefix" option and making the build fail. | ||
# More info here: https://stackoverflow.com/questions/26323852/whats-the-meaning-of-pyvenv-launcher-environment-variable | ||
# This might be fixed by: https://github.com/pypa/virtualenv/pull/1648, so we should check again if this hack | ||
# is still needed in future releases. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the explanation! Since it's quite complex and long it might make sense to put the full explanation in the PR description, and link to the PR from here?
Codecov Report
@@ Coverage Diff @@
## master #5010 +/- ##
==========================================
+ Coverage 52.14% 52.16% +0.01%
==========================================
Files 719 719
Lines 52208 52225 +17
==========================================
+ Hits 27223 27242 +19
+ Misses 23365 23364 -1
+ Partials 1620 1619 -1
Continue to review full report at Codecov.
|
1 similar comment
Codecov Report
@@ Coverage Diff @@
## master #5010 +/- ##
==========================================
+ Coverage 52.14% 52.16% +0.01%
==========================================
Files 719 719
Lines 52208 52225 +17
==========================================
+ Hits 27223 27242 +19
+ Misses 23365 23364 -1
+ Partials 1620 1619 -1
Continue to review full report at Codecov.
|
What does this PR do?
Work around an implementation detail of Python 3 on MacOS making the build fail (because the embedded pip3 tries to use the system python3 instead of the embedded one).
Motivation
Make the MacOS build work with Python 3 installed on the system.
Full explanation
On MacOS, python3 does an ugly hack to circumvent the limits imposed on processes by Apple on framework builds (which is the case when installing python3 with brew).
This hack consists in setting
__PYVENV_LAUNCHER__
to the location of the system python3 executable, and using it instead ofargv[0]
(which is set by the OS). The problem is that this variable is not unset after it's read, so it's still set in all commands launched by omnibus.In particular, it's set during the pip installation (in
pip3.rb
), which makes the/opt/datadog-agent/embedded/bin/python3 setup.py install --prefix=/opt/datadog-agent/embedded
command link pip3 to the system python instead of the embedded python (since that's what the__PYVENV_LAUNCHER__
var is pointing at), bypassing the--prefix
option and making the build fail.More info here: https://stackoverflow.com/questions/26323852/whats-the-meaning-of-pyvenv-launcher-environment-variable
This might be fixed by: pypa/virtualenv#1648, so we should check again if this hack is still needed in future releases.