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/aos/BUILD b/aos/BUILD
index 89948ab..2e73c51 100644
--- a/aos/BUILD
+++ b/aos/BUILD
@@ -1,62 +1,71 @@
filegroup(
- name = 'prime_binaries',
- visibility = ['//visibility:public'],
- srcs = [
- '//aos/linux_code:core',
- '//aos/common/logging:log_streamer',
- '//aos/common/logging:log_displayer',
- '//aos/linux_code/starter',
- ],
-)
-filegroup(
- name = 'prime_start_binaries',
- visibility = ['//visibility:public'],
- srcs = [
- '//aos/common/logging:binary_log_writer',
- ],
+ name = "prime_binaries",
+ srcs = [
+ "//aos/common/logging:log_displayer",
+ "//aos/common/logging:log_streamer",
+ "//aos/linux_code:core",
+ "//aos/linux_code/starter",
+ ],
+ visibility = ["//visibility:public"],
)
filegroup(
- name = 'prime_binaries_stripped',
- visibility = ['//visibility:public'],
- srcs = [
- # starter is hard coded to look for a non-stripped core...
- '//aos/linux_code:core',
- '//aos/common/logging:log_streamer.stripped',
- '//aos/common/logging:log_displayer.stripped',
- '//aos/linux_code/starter',
- ],
+ name = "prime_start_binaries",
+ srcs = [
+ "//aos/common/logging:binary_log_writer",
+ ],
+ visibility = ["//visibility:public"],
)
+
filegroup(
- name = 'prime_start_binaries_stripped',
- visibility = ['//visibility:public'],
- srcs = [
- '//aos/common/logging:binary_log_writer.stripped',
- ],
+ name = "prime_binaries_stripped",
+ srcs = [
+ # starter is hard coded to look for a non-stripped core...
+ "//aos/linux_code:core",
+ "//aos/common/logging:log_streamer.stripped",
+ "//aos/common/logging:log_displayer.stripped",
+ "//aos/linux_code/starter",
+ ],
+ visibility = ["//visibility:public"],
+)
+
+filegroup(
+ name = "prime_start_binaries_stripped",
+ srcs = [
+ "//aos/common/logging:binary_log_writer.stripped",
+ ],
+ visibility = ["//visibility:public"],
)
cc_library(
- name = 'once',
- visibility = ['//visibility:public'],
- hdrs = [
- 'once.h',
- ],
- srcs = [
- 'once-tmpl.h',
- ],
- deps = [
- '//aos/common:gtest_prod',
- '//aos/common:type_traits',
- ],
+ name = "once",
+ srcs = [
+ "once-tmpl.h",
+ ],
+ hdrs = [
+ "once.h",
+ ],
+ visibility = ["//visibility:public"],
+ deps = [
+ "//aos/common:gtest_prod",
+ "//aos/common:type_traits",
+ ],
)
+
cc_test(
- name = 'once_test',
- visibility = ['//visibility:public'],
- srcs = [
- 'once_test.cc',
- ],
- deps = [
- '//aos/testing:googletest',
- '//aos:once',
- ],
+ name = "once_test",
+ srcs = [
+ "once_test.cc",
+ ],
+ visibility = ["//visibility:public"],
+ deps = [
+ "//aos:once",
+ "//aos/testing:googletest",
+ ],
+)
+
+py_library(
+ name = "python_init",
+ srcs = ["__init__.py"],
+ visibility = ["//visibility:public"],
)
diff --git a/aos/__init__.py b/aos/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/aos/__init__.py
diff --git a/aos/common/BUILD b/aos/common/BUILD
index 4de57b6..b1c5b3b 100644
--- a/aos/common/BUILD
+++ b/aos/common/BUILD
@@ -400,3 +400,10 @@
"//aos/testing:googletest",
],
)
+
+py_library(
+ name = "python_init",
+ srcs = ["__init__.py"],
+ visibility = ["//visibility:public"],
+ deps = ["//aos:python_init"],
+)
diff --git a/aos/common/__init__.py b/aos/common/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/aos/common/__init__.py
diff --git a/aos/common/util/BUILD b/aos/common/util/BUILD
index cd58bbf..8fcd2fe 100644
--- a/aos/common/util/BUILD
+++ b/aos/common/util/BUILD
@@ -1,268 +1,278 @@
-package(default_visibility = ['//visibility:public'])
+package(default_visibility = ["//visibility:public"])
py_library(
- name = 'py_trapezoid_profile',
- srcs = [
- 'trapezoid_profile.py',
- ],
+ name = "py_trapezoid_profile",
+ srcs = [
+ "trapezoid_profile.py",
+ ],
+ deps = [
+ ":python_init",
+ ],
)
cc_library(
- name = 'run_command',
- srcs = [
- 'run_command.cc',
- ],
- hdrs = [
- 'run_command.h',
- ],
- deps = [
- '//aos/common/logging',
- ],
+ name = "run_command",
+ srcs = [
+ "run_command.cc",
+ ],
+ hdrs = [
+ "run_command.h",
+ ],
+ deps = [
+ "//aos/common/logging",
+ ],
)
cc_test(
- name = 'run_command_test',
- srcs = [
- 'run_command_test.cc',
- ],
- deps = [
- ':run_command',
- '//aos/testing:googletest',
- '//aos/common/logging',
- ':thread',
- ],
+ name = "run_command_test",
+ srcs = [
+ "run_command_test.cc",
+ ],
+ deps = [
+ ":run_command",
+ ":thread",
+ "//aos/common/logging",
+ "//aos/testing:googletest",
+ ],
)
cc_library(
- name = 'death_test_log_implementation',
- hdrs = [
- 'death_test_log_implementation.h',
- ],
- deps = [
- '//aos/common/logging:implementations',
- ],
+ name = "death_test_log_implementation",
+ hdrs = [
+ "death_test_log_implementation.h",
+ ],
+ deps = [
+ "//aos/common/logging:implementations",
+ ],
)
cc_library(
- name = 'inet_addr',
- srcs = [
- 'inet_addr.cc',
- ],
- hdrs = [
- 'inet_addr.h',
- ],
- deps = [
- '//aos/common:byteorder',
- '//aos/common:network_port',
- ],
+ name = "inet_addr",
+ srcs = [
+ "inet_addr.cc",
+ ],
+ hdrs = [
+ "inet_addr.h",
+ ],
+ deps = [
+ "//aos/common:byteorder",
+ "//aos/common:network_port",
+ ],
)
cc_library(
- name = 'phased_loop',
- srcs = [
- 'phased_loop.cc',
- ],
- hdrs = [
- 'phased_loop.h',
- ],
- deps = [
- '//aos/common/logging',
- '//aos/common:time',
- ],
+ name = "phased_loop",
+ srcs = [
+ "phased_loop.cc",
+ ],
+ hdrs = [
+ "phased_loop.h",
+ ],
+ deps = [
+ "//aos/common:time",
+ "//aos/common/logging",
+ ],
)
cc_library(
- name = 'log_interval',
- hdrs = [
- 'log_interval.h',
- ],
- deps = [
- '//aos/common:time',
- '//aos/common/logging',
- ],
+ name = "log_interval",
+ hdrs = [
+ "log_interval.h",
+ ],
+ deps = [
+ "//aos/common:time",
+ "//aos/common/logging",
+ ],
)
cc_library(
- name = 'string_to_num',
- hdrs = [
- 'string_to_num.h',
- ],
+ name = "string_to_num",
+ hdrs = [
+ "string_to_num.h",
+ ],
)
cc_test(
- name = 'string_to_num_test',
- srcs = [
- 'string_to_num_test.cc',
- ],
- deps = [
- ':string_to_num',
- '//aos/testing:googletest',
- ],
+ name = "string_to_num_test",
+ srcs = [
+ "string_to_num_test.cc",
+ ],
+ deps = [
+ ":string_to_num",
+ "//aos/testing:googletest",
+ ],
)
cc_library(
- name = 'thread',
- srcs = [
- 'thread.cc',
- ],
- hdrs = [
- 'thread.h',
- ],
- deps = [
- '//aos/common:macros',
- '//aos/common/logging',
- ],
+ name = "thread",
+ srcs = [
+ "thread.cc",
+ ],
+ hdrs = [
+ "thread.h",
+ ],
+ deps = [
+ "//aos/common:macros",
+ "//aos/common/logging",
+ ],
)
cc_library(
- name = 'trapezoid_profile',
- srcs = [
- 'trapezoid_profile.cc',
- ],
- hdrs = [
- 'trapezoid_profile.h',
- ],
- deps = [
- '//third_party/eigen',
- '//aos/common:time',
- '//aos/common/logging',
- ],
- linkopts = [
- '-lm',
- ],
+ name = "trapezoid_profile",
+ srcs = [
+ "trapezoid_profile.cc",
+ ],
+ hdrs = [
+ "trapezoid_profile.h",
+ ],
+ linkopts = [
+ "-lm",
+ ],
+ deps = [
+ "//aos/common:time",
+ "//aos/common/logging",
+ "//third_party/eigen",
+ ],
)
cc_test(
- name = 'trapezoid_profile_test',
- srcs = [
- 'trapezoid_profile_test.cc',
- ],
- deps = [
- ':trapezoid_profile',
- '//aos/testing:googletest',
- ],
+ name = "trapezoid_profile_test",
+ srcs = [
+ "trapezoid_profile_test.cc",
+ ],
+ deps = [
+ ":trapezoid_profile",
+ "//aos/testing:googletest",
+ ],
)
cc_library(
- name = 'wrapping_counter',
- srcs = [
- 'wrapping_counter.cc',
- ],
- hdrs = [
- 'wrapping_counter.h',
- ],
+ name = "wrapping_counter",
+ srcs = [
+ "wrapping_counter.cc",
+ ],
+ hdrs = [
+ "wrapping_counter.h",
+ ],
)
cc_test(
- name = 'wrapping_counter_test',
- srcs = [
- 'wrapping_counter_test.cc',
- ],
- deps = [
- ':wrapping_counter',
- '//aos/testing:googletest',
- ],
+ name = "wrapping_counter_test",
+ srcs = [
+ "wrapping_counter_test.cc",
+ ],
+ deps = [
+ ":wrapping_counter",
+ "//aos/testing:googletest",
+ ],
)
cc_library(
- name = 'options',
- hdrs = [
- 'options.h',
- ],
+ name = "options",
+ hdrs = [
+ "options.h",
+ ],
)
cc_test(
- name = 'options_test',
- srcs = [
- 'options_test.cc',
- ],
- deps = [
- ':options',
- '//aos/testing:googletest',
- ],
+ name = "options_test",
+ srcs = [
+ "options_test.cc",
+ ],
+ deps = [
+ ":options",
+ "//aos/testing:googletest",
+ ],
)
cc_library(
- name = 'compiler_memory_barrier',
- hdrs = [
- 'compiler_memory_barrier.h',
- ],
+ name = "compiler_memory_barrier",
+ hdrs = [
+ "compiler_memory_barrier.h",
+ ],
)
cc_library(
- name = 'global_factory',
- hdrs = [
- 'global_factory.h'
- ],
+ name = "global_factory",
+ hdrs = [
+ "global_factory.h",
+ ],
)
cc_test(
- name = 'global_factory_test',
- srcs = [
- 'global_factory_test.cc'
- ],
- deps = [
- '//aos/testing:googletest',
- ':global_factory'
- ],
+ name = "global_factory_test",
+ srcs = [
+ "global_factory_test.cc",
+ ],
+ deps = [
+ ":global_factory",
+ "//aos/testing:googletest",
+ ],
)
cc_library(
- name = 'linked_list',
- hdrs = [
- 'linked_list.h',
- ],
- deps = [
- '//aos/common:transaction',
- ],
+ name = "linked_list",
+ hdrs = [
+ "linked_list.h",
+ ],
+ deps = [
+ "//aos/common:transaction",
+ ],
)
cc_test(
- name = 'linked_list_test',
- srcs = [
- 'linked_list_test.cc',
- ],
- deps = [
- ':linked_list',
- '//aos/testing:googletest',
- '//aos/common/logging',
- ],
+ name = "linked_list_test",
+ srcs = [
+ "linked_list_test.cc",
+ ],
+ deps = [
+ ":linked_list",
+ "//aos/common/logging",
+ "//aos/testing:googletest",
+ ],
)
cc_test(
- name = 'phased_loop_test',
- srcs = [
- 'phased_loop_test.cc',
- ],
- deps = [
- ':phased_loop',
- '//aos/testing:googletest',
- '//aos/testing:test_logging',
- ],
+ name = "phased_loop_test",
+ srcs = [
+ "phased_loop_test.cc",
+ ],
+ deps = [
+ ":phased_loop",
+ "//aos/testing:googletest",
+ "//aos/testing:test_logging",
+ ],
)
cc_library(
- name = 'file',
- hdrs = [
- 'file.h',
- ],
- srcs = [
- 'file.cc',
- ],
- deps = [
- '//aos/common:scoped_fd',
- ],
+ name = "file",
+ srcs = [
+ "file.cc",
+ ],
+ hdrs = [
+ "file.h",
+ ],
+ deps = [
+ "//aos/common:scoped_fd",
+ ],
)
cc_test(
- name = 'file_test',
- srcs = [
- 'file_test.cc',
- ],
- deps = [
- ':file',
- '//aos/testing:googletest',
- '//aos/testing:test_logging',
- ],
- size = 'small',
+ name = "file_test",
+ size = "small",
+ srcs = [
+ "file_test.cc",
+ ],
+ deps = [
+ ":file",
+ "//aos/testing:googletest",
+ "//aos/testing:test_logging",
+ ],
+)
+
+py_library(
+ name = "python_init",
+ srcs = ["__init__.py"],
+ visibility = ["//visibility:public"],
+ deps = ["//aos/common:python_init"],
)
diff --git a/aos/common/util/__init__.py b/aos/common/util/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/aos/common/util/__init__.py
diff --git a/aos/externals/seasocks/gen_embedded.py b/aos/externals/seasocks/gen_embedded.py
index 416e37b..fdcdfd9 100755
--- a/aos/externals/seasocks/gen_embedded.py
+++ b/aos/externals/seasocks/gen_embedded.py
@@ -39,7 +39,7 @@
with open(f, 'rb') as file:
bytes = file.read()
o.write('{"/%s", {' % os.path.basename(f))
- o.write('"' + "".join(['\\x%02x' % ord(x) for x in bytes]) + '"')
+ o.write('"' + "".join(['\\x%02x' % x for x in bytes]) + '"')
o.write(',%d }},' % len(bytes))
o.write("""