Use a (mostly) hermetic Python interpreter
It still requires python to be installed on the host to run the wrapper
scripts, but it's close to being fully hermetic.
This also requires/enables the following changes, unfortunately all at
the same time:
* Use a downloaded f2py
* Use a downloaded scipy/numpy/matplotlib
* Fix a few things that don't run with the python version in their #!
* Stop using bazel-generated __init__.py files, because those interfere
with importing matplotlib nicely
Change-Id: Ife280464613d67cece9587b7d947f0b1d5466d7e
diff --git a/debian/download_packages.py b/debian/download_packages.py
index ca36b4b..5ad46e1 100755
--- a/debian/download_packages.py
+++ b/debian/download_packages.py
@@ -19,13 +19,25 @@
deps.update(get_deps(package))
return deps
+def map_virtual_packages(packages):
+ '''Maps known virtual packages to the preferred concrete packages which
+ provide them.'''
+ for package in packages:
+ if package == b'python-numpy-abi9':
+ yield b'python-numpy'
+ continue
+ if package == b'python3-numpy-abi9':
+ yield b'python3-numpy'
+ continue
+ yield package
+
def download_deps(packages, excludes, force_includes):
deps = get_all_deps(packages)
exclude_deps = get_all_deps(excludes)
deps -= exclude_deps
force_include_deps = get_all_deps(force_includes)
deps |= force_include_deps
- subprocess.check_call([b"apt-get", b"download"] + list(deps))
+ subprocess.check_call([b"apt-get", b"download"] + list(map_virtual_packages(deps)))
def fixup_files():
# Gotta remove those pesky epoch numbers in the file names. Bazel doesn't