Import Xvfb for testing with Cypress
Signed-off-by: Philipp Schrader <philipp.schrader@gmail.com>
Change-Id: Ib972845e30a04b9ceb3f7fedf4a9d3ad32a7bdf1
diff --git a/WORKSPACE b/WORKSPACE
index 2b3531c..53e54aa 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -185,6 +185,10 @@
"//debian:libtinfo5_arm64.bzl",
libtinfo5_arm64_debs = "files",
)
+load(
+ "//debian:xvfb_amd64.bzl",
+ xvfb_amd64_debs = "files",
+)
load("//debian:packages.bzl", "generate_repositories_for_debs")
generate_repositories_for_debs(rsync_debs)
@@ -237,6 +241,8 @@
generate_repositories_for_debs(libtinfo5_arm64_debs)
+generate_repositories_for_debs(xvfb_amd64_debs)
+
local_repository(
name = "com_grail_bazel_toolchain",
path = "third_party/bazel-toolchain",
@@ -1213,6 +1219,16 @@
urls = ["https://www.frc971.org/Build-Dependencies/libtinfo5_arm64.tar.gz"],
)
+http_archive(
+ name = "xvfb_amd64",
+ build_file = "//third_party:xvfb/xvfb.BUILD",
+ patch_cmds = [
+ "unlink usr/bin/X11",
+ ],
+ sha256 = "a7491bf6c47ed0037992fa493f9c25af3ab00a695d706e1fdc122a8b798c0d7c",
+ urls = ["https://www.frc971.org/Build-Dependencies/xvfb_amd64.tar.gz"],
+)
+
local_repository(
name = "com_github_nlohmann_json",
path = "third_party/com_github_nlohmann_json",
diff --git a/debian/BUILD b/debian/BUILD
index ca6d134..e40bf8f 100644
--- a/debian/BUILD
+++ b/debian/BUILD
@@ -82,6 +82,10 @@
":libtinfo5_arm64.bzl",
libtinfo5_arm64_debs = "files",
)
+load(
+ ":xvfb_amd64.bzl",
+ xvfb_amd64_debs = "files",
+)
load(":packages.bzl", "download_packages", "generate_deb_tarball")
package(default_visibility = ["//visibility:public"])
@@ -423,6 +427,22 @@
target_compatible_with = ["@platforms//os:linux"],
)
+download_packages(
+ name = "download_xvfb_packages",
+ excludes = [
+ "libglx-mesa0",
+ ],
+ packages = [
+ "xvfb",
+ ],
+)
+
+generate_deb_tarball(
+ name = "xvfb_amd64",
+ files = xvfb_amd64_debs,
+ target_compatible_with = ["@platforms//os:linux"],
+)
+
exports_files([
"ssh_wrapper.sh",
"curl.BUILD",
diff --git a/debian/xvfb_amd64.bzl b/debian/xvfb_amd64.bzl
new file mode 100644
index 0000000..faa9046
--- /dev/null
+++ b/debian/xvfb_amd64.bzl
@@ -0,0 +1,33 @@
+files = {
+ "libaudit-common_3.0-2_all.deb": "0d52f4826a57aea13cea1a85bfae354024c7b2f7b95e39cd1ce225e4db27d0f6",
+ "libaudit1_3.0-2_amd64.deb": "e3aa1383e387dc077a1176f7f3cbfdbc084bcc270a8938f598d5cb119773b268",
+ "libbrotli1_1.0.9-2+b2_amd64.deb": "65ca7d8b03e9dac09c5d544a89dd52d1aeb74f6a19583d32e4ff5f0c77624c24",
+ "libcap-ng0_0.7.9-2.2+b1_amd64.deb": "d34e29769b8ef23e9b9920814afb7905b8ee749db0814e6a8d937ccc4f309830",
+ "libfontenc1_1.1.4-1_amd64.deb": "1d0aa6ea16a34a8de1ea170360c4cb699f3239aeddb292df2d2c4eb6e835de4b",
+ "libfreetype6_2.10.4+dfsg-1+deb11u1_amd64.deb": "b21cfdd12adf6cac4af320c2485fb62a8a5edc6f9768bc2288fd686f4fa6dfdf",
+ "libgcrypt20_1.8.7-6_amd64.deb": "7a2e0eef8e0c37f03f3a5fcf7102a2e3dc70ba987f696ab71949f9abf36f35ef",
+ "libgl1_1.3.2-1_amd64.deb": "f300f9610b5f05f1ce566c4095f1bf2170e512ac5d201c40d895b8fce29dec98",
+ "libglvnd0_1.3.2-1_amd64.deb": "52a4464d181949f5ed8f7e55cca67ba2739f019e93fcfa9d14e8d65efe98fffc",
+ "libglx0_1.3.2-1_amd64.deb": "cb642200f7e28e6dbb4075110a0b441880eeec35c8a00a2198c59c53309e5e17",
+ "libgpg-error0_1.38-2_amd64.deb": "16a507fb20cc58b5a524a0dc254a9cb1df02e1ce758a2d8abde0bc4a3c9b7c26",
+ "libice6_1.0.10-1_amd64.deb": "452796e565c9d42386bd59990000ae9c37d85e142e00ee2b14df0787e2bbf970",
+ "liblz4-1_1.9.3-2_amd64.deb": "79ac6e9ca19c483f2e8effcc3401d723dd9dbb3a4ae324714de802adb21a8117",
+ "libpixman-1-0_0.40.0-1.1~deb11u1_amd64.deb": "1d0b392aec96fc3dc9c9cffa1241f4abfa7be0282f3451fce72492a934477c3e",
+ "libpng16-16_1.6.37-3_amd64.deb": "7d5336af395d1f658d0e66d74d0e1f4c632028750e7e04314d1a650e0317f3d6",
+ "libsm6_1.2.3-1_amd64.deb": "22a420890489023346f30fecef14ea900a0788e7bf959ef826aabb83944fccfb",
+ "libsystemd0_247.3-7+deb11u1_amd64.deb": "0bce44fd32e9fa18b68cb89f4010939b9984b9782db2d1985b041fc96e9a02b8",
+ "libunwind8_1.3.2-2_amd64.deb": "a8cc1181a479375aeb603cfe748cc19dc3a700a47ffdcb09fa025fe02b0c73bf",
+ "libuuid1_2.36.1-8+deb11u1_amd64.deb": "31250af4dd3b7d1519326a9a6764d1466a93d8f498cf6545058761ebc38b2823",
+ "libxaw7_1.0.13-1.1_amd64.deb": "fa30777b3c23421d18ed8cd817df7b4dd29d4532d2af00f9d6d449f4ad00a6d4",
+ "libxfont2_2.0.4-1_amd64.deb": "db5b67a3fc9f3a6adef313cb977a5a2480d751424cca49b286799b4bb98d8694",
+ "libxkbfile1_1.1.0-1_amd64.deb": "7c58d9986f918b71568ad83dbb6f4ab22c185f243461d41acee920cc5e13d347",
+ "libxmu6_1.1.2-2+b3_amd64.deb": "912a1bfb3416f18193824a4ffc5fe8a3a6e6781d9f8e50e26400dd36a7ca5bd0",
+ "libxpm4_3.5.12-1_amd64.deb": "49e64f0923cdecb2aaf6c93f176c25f63b841da2a501651ae23070f998967aa7",
+ "libxt6_1.2.0-1_amd64.deb": "1b2014704c8fb393aa9797da7c6de248f2bbd89eec8dee07bfecd7f2f85cff4d",
+ "lsb-base_11.1.0_all.deb": "89ed6332074d827a65305f9a51e591dff20641d61ff5e11f4e1822a9987e96fe",
+ "x11-common_7.7+22_all.deb": "5d1c3287826f60c3a82158b803b9c0489b8aad845ca23a53a982eba3dbb82aa3",
+ "x11-xkb-utils_7.7+5_amd64.deb": "fffdfdaec5533c33ddfdf25657e95e62bfd0348f375d0594d1727630059d1d3d",
+ "xkb-data_2.29-2_all.deb": "9122cccc67e6b3c3aef2fa9c50ef9d793a12f951c76698a02b1f4ceb9e3634e5",
+ "xserver-common_1.20.11-1+deb11u5_all.deb": "2cf7af2824d158159e2088f667c789ee4b6a5f1f6f776cbe4f867fa1ae5679b5",
+ "xvfb_1.20.11-1+deb11u5_amd64.deb": "3cefb98b07557a68ef0aa521fe34c7ef5755ea6f872141b05d68981433158f6e",
+}
diff --git a/third_party/xvfb/xvfb.BUILD b/third_party/xvfb/xvfb.BUILD
new file mode 100644
index 0000000..91332ff
--- /dev/null
+++ b/third_party/xvfb/xvfb.BUILD
@@ -0,0 +1,43 @@
+load("@bazel_skylib//rules:write_file.bzl", "write_file")
+
+write_file(
+ name = "generate_wrapper",
+ out = "wrapped_bin/Xvfb.sh",
+ content = ["""\
+#!/bin/bash
+
+# --- begin runfiles.bash initialization v2 ---
+# Copy-pasted from the Bazel Bash runfiles library v2.
+set -uo pipefail; set +e; f=bazel_tools/tools/bash/runfiles/runfiles.bash
+source "${RUNFILES_DIR:-/dev/null}/$f" 2>/dev/null || \
+ source "$(grep -sm1 "^$f " "${RUNFILES_MANIFEST_FILE:-/dev/null}" | cut -f2- -d' ')" 2>/dev/null || \
+ source "$0.runfiles/$f" 2>/dev/null || \
+ source "$(grep -sm1 "^$f " "$0.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \
+ source "$(grep -sm1 "^$f " "$0.exe.runfiles_manifest" | cut -f2- -d' ')" 2>/dev/null || \
+ { echo>&2 "ERROR: cannot find $f"; exit 1; }; f=; set -e
+# --- end runfiles.bash initialization v2 ---
+
+
+runfiles_export_envvars
+
+export LD_LIBRARY_PATH="${RUNFILES_DIR}/xvfb_amd64/usr/lib/x86_64-linux-gnu"
+export LD_LIBRARY_PATH+=":${RUNFILES_DIR}/xvfb_amd64/lib/x86_64-linux-gnu"
+
+exec "${RUNFILES_DIR}/xvfb_amd64/usr/bin/Xvfb" "$@"
+"""],
+ is_executable = True,
+)
+
+sh_binary(
+ name = "wrapped_bin/Xvfb",
+ srcs = ["wrapped_bin/Xvfb.sh"],
+ deps = [
+ "@bazel_tools//tools/bash/runfiles",
+ ],
+ data = glob([
+ "usr/lib/**/*",
+ "lib/**/*",
+ "usr/bin/*",
+ ]),
+ visibility = ["//visibility:public"],
+)