language/python: allow formulae to restrict access to system site packages
Also, clean up one use of an `options` hash, because this is no longer needed. Closes #11885.
This commit is contained in:
parent
91acec50f9
commit
09570fc7a6
@ -128,10 +128,10 @@ module Language
|
||||
# or "python3.x")
|
||||
# @param formula [Formula] the active {Formula}
|
||||
# @return [Virtualenv] a {Virtualenv} instance
|
||||
def virtualenv_create(venv_root, python = "python", formula = self)
|
||||
def virtualenv_create(venv_root, python = "python", formula = self, system_site_packages: true)
|
||||
ENV.refurbish_args
|
||||
venv = Virtualenv.new formula, venv_root, python
|
||||
venv.create
|
||||
venv.create(system_site_packages: system_site_packages)
|
||||
|
||||
# Find any Python bindings provided by recursive dependencies
|
||||
formula_deps = formula.recursive_dependencies
|
||||
@ -174,8 +174,7 @@ module Language
|
||||
# formula preference for python or python@x.y, or to resolve an ambiguous
|
||||
# case where it's not clear whether python or python@x.y should be the
|
||||
# default guess.
|
||||
def virtualenv_install_with_resources(options = {})
|
||||
python = options[:using]
|
||||
def virtualenv_install_with_resources(using: nil, system_site_packages: true)
|
||||
if python.nil?
|
||||
wanted = python_names.select { |py| needs_python?(py) }
|
||||
raise FormulaUnknownPythonError, self if wanted.empty?
|
||||
@ -184,7 +183,7 @@ module Language
|
||||
python = wanted.first
|
||||
python = "python3" if python == "python"
|
||||
end
|
||||
venv = virtualenv_create(libexec, python.delete("@"))
|
||||
venv = virtualenv_create(libexec, python.delete("@"), system_site_packages: system_site_packages)
|
||||
venv.pip_install resources
|
||||
venv.pip_install_and_link buildpath
|
||||
venv
|
||||
@ -215,10 +214,12 @@ module Language
|
||||
# Obtains a copy of the virtualenv library and creates a new virtualenv on disk.
|
||||
#
|
||||
# @return [void]
|
||||
def create
|
||||
def create(system_site_packages: true)
|
||||
return if (@venv_root/"bin/python").exist?
|
||||
|
||||
@formula.system @python, "-m", "venv", "--system-site-packages", @venv_root
|
||||
args = ["-m", "venv"]
|
||||
args << "--system-site-packages" if system_site_packages
|
||||
@formula.system @python, *args, @venv_root
|
||||
|
||||
# Robustify symlinks to survive python patch upgrades
|
||||
@venv_root.find do |f|
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user