From 9d5f4cab112d81e6db8ad9c81c09bd83f15c991b Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Wed, 4 Sep 2024 10:29:36 +0100 Subject: [PATCH 1/4] feat: add `//debian/{amd64,arm64}/qemu-system-{arm,x86}` targets --- .bazelrc | 3 + MODULE.bazel | 247 ++++++++++ MODULE.bazel.lock | 482 +++++++++++++++++++- debian/README.md | 63 +++ debian/amd64/libc6/BUILD.bazel | 13 + debian/amd64/qemu-system-arm/BUILD.bazel | 141 ++++++ debian/amd64/qemu-system-x86/BUILD.bazel | 142 ++++++ debian/amd64/tar/BUILD.bazel | 13 + debian/arm64/libc6/BUILD.bazel | 13 + debian/arm64/qemu-system-arm/BUILD.bazel | 140 ++++++ debian/arm64/qemu-system-x86/BUILD.bazel | 142 ++++++ debian/arm64/tar/BUILD.bazel | 13 + debian/launcher/BUILD.bazel | 6 + debian/launcher/defs.bzl | 5 + debian/launcher/elf/interpreter/BUILD.bazel | 23 + debian/launcher/elf/interpreter/Info.bzl | 29 ++ debian/launcher/elf/interpreter/defs.bzl | 7 + debian/launcher/elf/interpreter/rule.bzl | 24 + debian/launcher/library/path/BUILD.bazel | 29 ++ debian/launcher/library/path/Info.bzl | 29 ++ debian/launcher/library/path/defs.bzl | 7 + debian/launcher/library/path/rule.bzl | 25 + debian/launcher/posix.tmpl.sh | 73 +++ debian/launcher/rule.bzl | 94 ++++ e2e/.bazelrc | 3 + e2e/MODULE.bazel | 1 + e2e/MODULE.bazel.lock | 481 ++++++++++++++++++- labgrid/toolchain/qemu-system/BUILD.bazel | 48 ++ 28 files changed, 2292 insertions(+), 4 deletions(-) create mode 100644 debian/README.md create mode 100644 debian/amd64/libc6/BUILD.bazel create mode 100644 debian/amd64/qemu-system-arm/BUILD.bazel create mode 100644 debian/amd64/qemu-system-x86/BUILD.bazel create mode 100644 debian/amd64/tar/BUILD.bazel create mode 100644 debian/arm64/libc6/BUILD.bazel create mode 100644 debian/arm64/qemu-system-arm/BUILD.bazel create mode 100644 debian/arm64/qemu-system-x86/BUILD.bazel create mode 100644 debian/arm64/tar/BUILD.bazel create mode 100644 debian/launcher/BUILD.bazel create mode 100644 debian/launcher/defs.bzl create mode 100644 debian/launcher/elf/interpreter/BUILD.bazel create mode 100644 debian/launcher/elf/interpreter/Info.bzl create mode 100644 debian/launcher/elf/interpreter/defs.bzl create mode 100644 debian/launcher/elf/interpreter/rule.bzl create mode 100644 debian/launcher/library/path/BUILD.bazel create mode 100644 debian/launcher/library/path/Info.bzl create mode 100644 debian/launcher/library/path/defs.bzl create mode 100644 debian/launcher/library/path/rule.bzl create mode 100644 debian/launcher/posix.tmpl.sh create mode 100644 debian/launcher/rule.bzl create mode 100644 labgrid/toolchain/qemu-system/BUILD.bazel diff --git a/.bazelrc b/.bazelrc index 3c92822a..1eb348b6 100644 --- a/.bazelrc +++ b/.bazelrc @@ -22,5 +22,8 @@ common --attempt_to_print_relative_paths # Enable hermetic `rules_python` common --@rules_labgrid//python:bootstrap=script +# Enable built Zstandard toolchain +common --extra_toolchains=@rules_zstd//zstd/toolchain/zstd:built + # User-specific .bazelrc try-import %workspace%/.bazelrc.user diff --git a/MODULE.bazel b/MODULE.bazel index e3e61798..ba7170a7 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -10,6 +10,10 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1") bazel_dep(name = "toolchain_utils", version = "1.0.0-beta.14") bazel_dep(name = "rules_python", version = "0.33.2") bazel_dep(name = "ape", version = "1.0.0-beta.12") +bazel_dep(name = "download_utils", version = "1.0.0-beta.2") +bazel_dep(name = "rules_tar", version = "1.0.0-beta.3") +bazel_dep(name = "rules_zstd", version = "1.0.0-beta.3") +bazel_dep(name = "platforms", version = "0.0.10") bazel_dep(name = "hermetic_cc_toolchain", version = "3.1.0", dev_dependency = True) @@ -46,3 +50,246 @@ pip.parse( requirements_lock = "//python:requirements.txt", ) use_repo(pip, "pip") + +# Download Debian QEMU +download_archive = use_repo_rule("@download_utils//download/archive:defs.bzl", "download_archive") + +[ + download_archive( + name = "{cpu}-{name}".format( + name = name.replace("+", "x"), + cpu = cpu, + ), + integrity = integrity, + urls = [ + "https://deb.debian.org/debian/pool/main/{letter}/{group}/{name}_{version}_{cpu}.deb".format( + name = name, + cpu = cpu, + group = group, + letter = letter, + version = version, + ), + ], + ) + for cpu, name, version, letter, group, integrity in ( + ("all", "adduser", "3.134", "a", "adduser", "sha256-wk/k645g2GMtcu0QTM58ks/yAIR8iX3IunZLbEe1GeA="), + ("all", "debconf", "1.5.82", "d", "debconf", "sha256-dKsUGUo3YrL8cXkX3P2kKSmrmOPFkpWgYzRNxVHNfMg="), + ("all", "ipxe-qemu", "1.0.0+git-20190125.36a4c85-5.1", "i", "ipxe", "sha256-XCQZzgf02ArF6I4yrAnNxSPASK+GxHMNaCupadMYnbI="), + ("all", "iso-codes", "4.15.0-1", "i", "iso-codes", "sha256-sb64aTAyKcOCiNTdrP1YLJH1lHWbV2fJzs69h/Fv9w4="), + ("all", "libasound2-data", "1.2.8-1", "a", "alsa-lib", "sha256-/geA0tNnSyl34Kyw1ItEitcroWQlZLfcU39V6DmYTC0="), + ("all", "libaudit-common", "3.0.9-1", "a", "audit", "sha256-F9A0HKbOYEzlnClngKwsKiQUGnaYI8UGaa+ULAJeZZE="), + ("all", "libdrm-common", "2.4.114-1", "libd", "libdrm", "sha256-MvlmQTiziyJDg8aYZFfVrS7I79VZsaDOd0lAX3pFGq0="), + ("all", "libsemanage-common", "3.4-1", "libs", "libsemanage", "sha256-g1+AbCGuJeOQU70wVwUWQDQbDPCOHbl0b9guNw2C+jA="), + ("all", "qemu-system-data", "7.2+dfsg-7+deb12u7", "q", "qemu", "sha256-SYbtlNWvP/Gw6Cm0Qqg/O8lErczThTXdTa/xxCNbiSM="), + ("all", "readline-common", "8.2-1.3", "r", "readline", "sha256-aTF1I/5WQpqjYVRUFq0znROMFQDlpgSFaoDdkHS041w="), + ("all", "seabios", "1.16.2-1", "s", "seabios", "sha256-COWz92E3nxemBRcxyvoD6XaGBJ4swbi9zMWpEGRuLY4="), + ("amd64", "cdebconf", "0.270", "c", "cdebconf", "sha256-Lp3oi0y4os6tt4X6v/Ao2IP5psNSiRZGT7OPSDfBVic="), + ("amd64", "dpkg", "1.21.22", "d", "dpkg", "sha256-nZfyfYqKBt1IAOjgKRM3ygLhHN/X3wmkVmqYKm2f5MQ="), + ("amd64", "gcc-12-base", "12.2.0-14", "g", "gcc-12", "sha256-GgPfWleDPWW1uwjPoZ1Q528pCI3J5k+5NK9C2QI6CAc="), + ("amd64", "install-info", "6.8-6+b1", "t", "texinfo", "sha256-AVsZhv2KLcjjf+jN3/5iY3ULzsznlG3E34Dv+UDf6QA="), + ("amd64", "libaio1", "0.3.113-4", "liba", "libaio", "sha256-0UduS+qz2F+KfTHelMJ0cnEe0+85nOcHCOJLJZQmEls="), + ("amd64", "libasound2", "1.2.8-1+b1", "a", "alsa-lib", "sha256-RMd7B2p7Ea6ZcSQ5Ai2CIkWxmUxDXaVk69Mgu2dvr0w="), + ("amd64", "libaudit1", "3.0.9-1", "a", "audit", "sha256-MJVN9LWnxQVmG6iuXm6pT1gF5AiJn7QAeDuxZutf8wY="), + ("amd64", "libblkid1", "2.38.1-5+deb12u1", "u", "util-linux", "sha256-FR9Zyitzzo+FpXaYDwGdu/nUTdb/QzH3lUFj43BMHAY="), + ("amd64", "libbpf1", "1.1.0-1", "libb", "libbpf", "sha256-GzeHeHuITYNewQCO1R5izZJWzh7YoNKRfZllrwgUBnQ="), + ("amd64", "libbrlapi0.8", "6.5-7+deb12u1", "b", "brltty", "sha256-fIv8Tx+wo587vIinfwtG+P65I8QYIgepXqGe8BqaQ8c="), + ("amd64", "libbsd0", "0.11.7-2", "libb", "libbsd", "sha256-uzHMi0D5YqhbLOyXD395zHBKGuS60kJXqCIFVASyxgs="), + ("amd64", "libbz2-1.0", "1.0.8-5+b1", "b", "bzip2", "sha256-VBSdo/RLItUjsmtpIDO4RQPYIsxRIv7WBuppzIPKWus="), + ("amd64", "libc6", "2.36-9+deb12u8", "g", "glibc", "sha256-27Un2GGB9LUO31eQw0xNC0zqx/GZsSZqkza1cI+Ol5g="), + ("amd64", "libcacard0", "2.8.0-3", "libc", "libcacard", "sha256-arCZ/I7gjrxSuFpNx1NNet2c79bg9FADe3ikLmWARFQ="), + ("amd64", "libcap-ng0", "0.8.3-1+b3", "libc", "libcap-ng", "sha256-tLVHacd+SnHIszruTWALooqZlKHG9g1V1Ovn/ESILgc="), + ("amd64", "libcap2", "2.66-4", "libc", "libcap2", "sha256-s2/v6YZ/nlm1QPlS6VenLr3CQemXF52CbaGalRGt5KM="), + ("amd64", "libcap2-bin", "2.66-4", "libc", "libcap2", "sha256-ctpgOId8xcfXFTilR+ItAzRrHvmaNRadf/NQD1Z13x4="), + ("amd64", "libcapstone4", "4.0.2-5", "c", "capstone", "sha256-QSd/A4gYT247n8Au2jGEr7yZkxSyW3ftdegElCi9/l4="), + ("amd64", "libcrypt1", "4.4.33-2", "libx", "libxcrypt", "sha256-9fYKXN/U5OqpQ4reUHild0Gnp41ln8sMcBIE9SPovSk="), + ("amd64", "libdaxctl1", "76.1-1", "n", "ndctl", "sha256-r1+f/mQq4lMB64j9svqePAbc/F4TH7zudXWt8K3Mmrs="), + ("amd64", "libdb5.3", "5.3.28+dfsg2-1", "d", "db5.3", "sha256-fcUSe43Q2oDpkrpZSVTABa5DWdg5ok62XQ2BKbUjXIQ="), + ("amd64", "libdebian-installer4", "0.124", "libd", "libdebian-installer", "sha256-oHiQJtxirz49KjOXXayo197xFVUxUuSSVKvwj760KVs="), + ("amd64", "libdrm2", "2.4.114-1+b1", "libd", "libdrm", "sha256-vhj7ZweXujLalijPPorNgxYNjbjI3YQlAd2OQBw7U3E="), + ("amd64", "libdw1", "0.188-2.1", "e", "elfutils", "sha256-/9exutmCrRr9nCt1qy7dGOIpUI33Maj02EQ/CTqRRC8="), + ("amd64", "libelf1", "0.188-2.1", "e", "elfutils", "sha256-YZrdN5xgazrGwaF1hTuRjmk5WYqD2Out8739UNELPIw="), + ("amd64", "libelogind0", "246.10-1debian1", "e", "elogind", "sha256-8YUzZ6MPHH++fKosuUrsaWf5jBNrFmHktRVdY+jEKUw="), + ("amd64", "libepoxy0", "1.5.10-1", "libe", "libepoxy", "sha256-BQy+3JwqXM6XYVHHIKOBfyEDoB5qwlW91vLGp1CbBMM="), + ("amd64", "libexecs0", "1.3-2", "libe", "libexecs", "sha256-NQZVVvBsXeH8ScQJlDqJUWOOTp+OIb0G9mtQj66TXRs="), + ("amd64", "libexpat1", "2.5.0-1", "e", "expat", "sha256-/jan81Nh/EDQBX70R6cwL9QdUXQNUcmPs4cLvtW5blY="), + ("amd64", "libfdt1", "1.6.1-4+b1", "d", "device-tree-compiler", "sha256-5zErYSZ5eaWK4fqeNHRtB3cHVgyVX2RV0Cqf8Pj6eZU="), + ("amd64", "libffi8", "3.4.4-1", "libf", "libffi", "sha256-bZ9sJcMO/Mzm1LzqpI6obDKaNDKrs2ChQfdqwiOkw0o="), + ("amd64", "libfuse3-3", "3.14.0-4", "f", "fuse3", "sha256-v1Nc7F6WWCP9AxmbQCn56fOVIRHrEoJLXSuWyMyhqRg="), + ("amd64", "libgbm1", "22.3.6-1+deb12u1", "m", "mesa", "sha256-sO3/wjGzJh7tvtfR+vq/HxzATKPBScK+gyLscN0X54Y="), + ("amd64", "libgcc-s1", "12.2.0-14", "g", "gcc-12", "sha256-89HUjAWZrqhbfyB3oB0oW63EKZjBoedHOTXVz5lcgUE="), + ("amd64", "libgcrypt20", "1.10.1-3", "libg", "libgcrypt20", "sha256-v/ysfk9p45031KM+hB1jcayLWrps1VVGs4Xcf/bHAvU="), + ("amd64", "libglib2.0-0", "2.74.6-2+deb12u3", "g", "glib2.0", "sha256-avMjwCCk3/PP6B7NdCUiszy9dTCfW6omRgXm4XkyBjk="), + ("amd64", "libgmp10", "6.2.1+dfsg1-1.1", "g", "gmp", "sha256-GHrt7y7XY/QlweUjdTuXGWd2M8fu3mYEAXOenIk0gr0="), + ("amd64", "libgnutls30", "3.7.9-2+deb12u3", "g", "gnutls28", "sha256-zuQX1BB7vpTdzBJFJDZupnXonRBrcJaafVCO8m6SpxM="), + ("amd64", "libgpg-error0", "1.46-1", "libg", "libgpg-error", "sha256-iZRO4R1zcM5u9G/FLwlMSmUS7/iUPsTG6+/q5jYM6to="), + ("amd64", "libgstreamer-plugins-base1.0-0", "1.22.0-3+deb12u2", "g", "gst-plugins-base1.0", "sha256-Ow649KNLIzV9quRu6hxmF3opCjLkwCVszqKXAZxwNyw="), + ("amd64", "libgstreamer1.0-0", "1.22.0-2", "g", "gstreamer1.0", "sha256-hRI+MHmLAo9dNEsG23cg/WSnWl6F9LttkuZVVoOKA0Q="), + ("amd64", "libhogweed6", "3.8.1-2", "n", "nettle", "sha256-7YGFwosstRl0SlpGLc1yDTszLJuIodAALqwG3IVQy5Q="), + ("amd64", "libibverbs1", "44.0-2", "r", "rdma-core", "sha256-NQVIFSWf7kYXMkAlQkbQO2c6XNXFKKqslv0VrEKKjVk="), + ("amd64", "libidn2-0", "2.3.3-1+b1", "libi", "libidn2", "sha256-1QcW1YJAg9ZnQngX1Qa0XT9Z3HfhylLeAA8/YtSRivo="), + ("amd64", "libjpeg62-turbo", "2.1.5-2", "libj", "libjpeg-turbo", "sha256-lewwFAeJo0Kt2Pg3HtAYkk3lG1OQVlIrZvIHsly6nK0="), + ("amd64", "libkmod2", "30+20221128-1", "k", "kmod", "sha256-r2O7v8FfvR8lSxXDk7O5WxixjMgTSPwbTxycNLTWctc="), + ("amd64", "liblz4-1", "1.9.4-1", "l", "lz4", "sha256-ZM3obO8d6vgovWApeDm1lxC1zY3FDv1PEmQ8qu6TidM="), + ("amd64", "liblzma5", "5.4.1-0.2", "x", "xz-utils", "sha256-1LdzblhRKisEf5y5G3HbWjz500URkvxtoETHe/Uf6Gk="), + ("amd64", "libmd0", "1.0.4-2", "libm", "libmd", "sha256-A1Of0wxQnicQHROlblLtqQYr3xrv4zfAerVt7yWhPqs="), + ("amd64", "libmount1", "2.38.1-5+deb12u1", "u", "util-linux", "sha256-olnYLMvPojC0knUtjVJdCkDXk4v2L7kOg+FgSO6Iv4M="), + ("amd64", "libncursesw6", "6.4-4", "n", "ncurses", "sha256-mPp6U9xWWji2X7cEIq0IABv1Nh2PvHQlUoDDKZlqa+w="), + ("amd64", "libndctl6", "76.1-1", "n", "ndctl", "sha256-NlTdOgoF/cKK+LzTBxCexBqeqSIYvymBb/RnqMXn1X8="), + ("amd64", "libnettle8", "3.8.1-2", "n", "nettle", "sha256-RZIubiif/ZLw+S0ruRWehCNv8gLVUqRhvxDlM1s/AmE="), + ("amd64", "libnewt0.52", "0.52.23-1+b1", "n", "newt", "sha256-Sw7KNw6OZSaKCnkX3YKi1hXvWufLoQMttrUfmYz7JdU="), + ("amd64", "libnl-3-200", "3.7.0-0.2+b1", "libn", "libnl3", "sha256-0fw+nrjnm0yWsKZMPYyeBori9mXKtxvRn0F//QRTqJA="), + ("amd64", "libnl-route-3-200", "3.7.0-0.2+b1", "libn", "libnl3", "sha256-D9zEJa4pgniMCFx2p8sO2j49uZ1BvRzlYILuGOnx4h8="), + ("amd64", "libnspr4", "4.35-1", "n", "nspr", "sha256-bMoJdn6U5LXSiI7zGteXvT587Cf7vpi0mxDUiEdGznc="), + ("amd64", "libnss3", "3.87.1-1", "n", "nss", "sha256-c68MQzu9urqtKLIjxdL5yKo5n3ZKcs/JwaYlw9WH8nk="), + ("amd64", "libnuma1", "2.0.16-1", "n", "numactl", "sha256-Y54atr1m6tQNuKIsMy1xmWefoi2yYcrDRETrjrTBfdo="), + ("amd64", "libopus0", "1.3.1-3", "o", "opus", "sha256-wXLiEvkDnnQZFqqOEvNnDR4EncDBZoUyVkEojC2D+qc="), + ("amd64", "liborc-0.4-0", "0.4.33-2", "o", "orc", "sha256-8rd1xCgfxNAkMoM87ydM+qknpEa99hnwIpK9g7IB/jo="), + ("amd64", "libp11-kit0", "0.24.1-2", "p", "p11-kit", "sha256-JRMw+t2/AT8GD820H0sMA3yKbom6fAmwS/zE4/CAeyI="), + ("amd64", "libpam-modules", "1.5.2-6+deb12u1", "p", "pam", "sha256-hR0nDjZwd4erHNJp29lZeGT+rz+EU+zTxCbKqlYUIiI="), + ("amd64", "libpam0g", "1.5.2-6+deb12u1", "p", "pam", "sha256-42C+Xxf5wJyPF7roCfbG8JHFu2qxpE/DPk+4bF5VWd8="), + ("amd64", "libpcre2-8-0", "10.42-1", "p", "pcre2", "sha256-Aw21T012zf4r8OjrX57+oCM6s8eqlC1nLHtjtS26+TU="), + ("amd64", "libpcsclite1", "1.9.9-2", "p", "pcsc-lite", "sha256-0bs3P60HREO4PpbtMYANWhKWTa+CDB2utwGGfaCJpyg="), + ("amd64", "libpixman-1-0", "0.42.2-1", "p", "pixman", "sha256-ntde+BtrHrqeE1f4sM4B0xESsOB7K2hb7iz2J6iTKJI="), + ("amd64", "libpmem1", "1.12.1-2", "p", "pmdk", "sha256-Y+0Aghrs21U3tRtvN4z1cRRNAqw68vlRQb+g45c1mnY="), + ("amd64", "libpng16-16", "1.6.39-2", "libp", "libpng1.6", "sha256-3DJyfcqah7oxfaeYlXIBFmn1aNEBWbnYZ17Xrt0m1oY="), + ("amd64", "librdmacm1", "44.0-2", "r", "rdma-core", "sha256-FrGGJYNDcdAjuBR3gjB06g00xHjVjb7z8BEHmE9H0DQ="), + ("amd64", "libreadline8", "8.2-1.3", "r", "readline", "sha256-4C6703Ac9Gjb+Y1tkX++AyXogfB/6LMWFQyNKmRIbmY="), + ("amd64", "libsasl2-2", "2.1.28+dfsg-10", "c", "cyrus-sasl2", "sha256-Ee4ZCtOfjXr0QdLINHOIuUSUNMc6zGe0s3JEWsQVLvo="), + ("amd64", "libsasl2-modules-db", "2.1.28+dfsg-10", "c", "cyrus-sasl2", "sha256-OsT9bL47OwbmjSS5Mb8+uThbQvFWBKN+0lMQ6UjKDuY="), + ("amd64", "libseccomp2", "2.5.4-1+deb12u1", "libs", "libseccomp", "sha256-EI/meVfKfPm6UdgBEYobN9QEvqe242UCXNAHeenso40="), + ("amd64", "libselinux1", "3.4-1+b6", "libs", "libselinux", "sha256-Kwf1KHuRBfQBWLVuTXDMFlLaxWpAjzUHtKs9Bh7tQl8="), + ("amd64", "libsemanage2", "3.4-1+b5", "libs", "libsemanage", "sha256-/TbQlyhmrd5aUiaaMJ/OzXao5F5VfdDs0zqiIcq8Kow="), + ("amd64", "libsepol2", "3.4-2.1", "libs", "libsepol", "sha256-uZiUa7mBipezh6ligmyq4zvH/cttcGsngsBHBRC+a0g="), + ("amd64", "libslang2", "2.3.3-3", "s", "slang2", "sha256-WzzsyCnvIpEls0DM0spFztddJOmqGRkSEFAWsa+UQT8="), + ("amd64", "libslirp0", "4.7.0-1", "libs", "libslirp", "sha256-4h4Z8OmeV/JUFi9hQW6oLwDLxquetr6tT1paiUTt4n4="), + ("amd64", "libsndio7.0", "1.9.0-0.3+b2", "s", "sndio", "sha256-xMyXkSbMVYVJ2yXULihJqdXc33ko4OzmnDjDdAIaB4s="), + ("amd64", "libspice-server1", "0.15.1-1", "s", "spice", "sha256-hM7SYmqlXYdsCEBkkgBMbk5TM1jp+vh0WZPHI0Dq2mA="), + ("amd64", "libsqlite3-0", "3.40.1-2", "s", "sqlite3", "sha256-qLEaFmSpmMwkmfsEMn0fbE6Pd7eOqLb4QY2W/FTjcx8="), + ("amd64", "libssl3", "3.0.14-1%7edeb12u2", "o", "openssl", "sha256-swio/ZiJ/X5XuAFRHj9CogNnW2sAh0Val30lt2M6EpY="), + ("amd64", "libstdc++6", "12.2.0-14", "g", "gcc-12", "sha256-mxsmkCDOxqztOznwlve2ft0fDUqyT0EstlBtCADhnL8="), + ("amd64", "libsystemd0", "252.30-1%7edeb12u2", "s", "systemd", "sha256-JbPTQVIoJyBZovLmDzbjYfzbz2+fQIy91HgGdDwK/N8="), + ("amd64", "libtasn1-6", "4.19.0-2", "libt", "libtasn1-6", "sha256-7sTcnZSdLGZrHaP6dio0DouhDDoE0+7TJ0mpdpXBVkE="), + ("amd64", "libtextwrap1", "0.1-16", "libt", "libtextwrap", "sha256-2cYZY0TwW9yDEpIVLXP8kfVEjx/RDkaLoYP/xF7yHxM="), + ("amd64", "libtinfo6", "6.4-4", "n", "ncurses", "sha256-By2Qjzj1EJDKKMpa+jtGspV9xh/jUJTAuFFCaFmkmlE="), + ("amd64", "libudev1", "252.30-1%7edeb12u2", "s", "systemd", "sha256-bxT4XzTC9QNsEiYBkPh8roP88ojvLfK/YQnVOLhhf9E="), + ("amd64", "libunistring2", "1.0-2", "libu", "libunistring", "sha256-1Ga7/gEddk15PB2dd3ytnHz2W5OOEVmPJ0CBca2VqVE="), + ("amd64", "libunwind8", "1.6.2-3", "libu", "libunwind", "sha256-eyl4aGgoNuTIe+NJ8X5KVrwodYbjV2UD6EpctUhc6SU="), + ("amd64", "liburing2", "2.3-3", "libu", "liburing", "sha256-wjB342QObLS4GcE0s/QdXPIbPtrAmWVLG0FCwwaaOaM="), + ("amd64", "libusb-1.0-0", "1.0.26-1", "libu", "libusb-1.0", "sha256-CopsSn2URTjyggy94qMT8v5vlMIf/s6ebzcvwquAcuE="), + ("amd64", "libusbredirparser1", "0.13.0-2", "u", "usbredir", "sha256-iFc0hf9AloUOvLyzaPI+bCLpTlFiLk1ZLsudFcpRC4I="), + ("amd64", "libuuid1", "2.38.1-5+deb12u1", "u", "util-linux", "sha256-H/FlF/0c+qJm3kclW5jET/UeihZT99jx/pw4b/Dxqn4="), + ("amd64", "libvdeplug2", "4.0.1-4", "v", "vdeplug4", "sha256-Gs6OZXEAm7S448Xgk2CfMPP/ypZXjTXWEQDx5z/SEQ0="), + ("amd64", "libwayland-server0", "1.21.0-1", "w", "wayland", "sha256-3wOWIh17eUSWpofsYfroK2RlZIvAq2UBugpe1/VuuNY="), + ("amd64", "libzstd1", "1.5.4+dfsg2-5", "libz", "libzstd", "sha256-YxW1rDi3JKcQ+5a/EEIBk5jLZWcYsVIieaUYXtOTGPo="), + ("amd64", "passwd", "4.13+dfsg1-1+b1", "s", "shadow", "sha256-NDtgp1XOssNof5pcnJ3ADuoORKfeSaU3w23xeJT3hLM="), + ("amd64", "qemu-system-arm", "7.2+dfsg-7+deb12u7", "q", "qemu", "sha256-llrNtFofZ2Mo1q2/p0zulUMdYyeZnWWds4Yts+newK4="), + ("amd64", "qemu-system-common", "7.2+dfsg-7+deb12u7", "q", "qemu", "sha256-iceCZbuQVXcKx35Ek7aLMmORVpe2OHm+rZsqiKA3HbM="), + ("amd64", "qemu-system-x86", "7.2+dfsg-7+deb12u7", "q", "qemu", "sha256-VaXr97K2OjvpDo3vxtDCMgUMwwccioc/lMoCJlXg8ns="), + ("amd64", "tar", "1.34+dfsg-1.2+deb12u1", "t", "tar", "sha256-JPuS6YwpaRcfgai1iSY9cF9rFnD5XRIc10yBDUYFrMM="), + ("amd64", "zlib1g", "1.2.13.dfsg-1", "z", "zlib", "sha256-190dFBH+3yf14nZQpu/yDvKUB3tWj0yMXlFGbcfAjOQ="), + ("arm64", "cdebconf", "0.270", "c", "cdebconf", "sha256-2+ud0mgrQXyhXCYEQkgJVebH5wzVHx8IvikL/NAoqSc="), + ("arm64", "dpkg", "1.21.22", "d", "dpkg", "sha256-R3W18nMVBUxoYPQC0e90YUCQ5hpBkuycY87JyIp1+cI="), + ("arm64", "gcc-12-base", "12.2.0-14", "g", "gcc-12", "sha256-4fL7chJUbA42CvjfJjA2CPewnhI6ycluFYctHsHOMnU="), + ("arm64", "install-info", "6.8-6+b1", "t", "texinfo", "sha256-7Agg0hIEJdOw0a2aVOQ+o4ko4ZRNii5jFcj0XysuBBs="), + ("arm64", "libaio1", "0.3.113-4", "liba", "libaio", "sha256-pl2nRw0zbuoUauLjNkC+UwkQPSAT6LPpjbfIG5WnVvM="), + ("arm64", "libasound2", "1.2.8-1+b1", "a", "alsa-lib", "sha256-n6iJQA/O5Lksj0ovr7t/LNM0RNnsFmWnEAKrZ8BhFLs="), + ("arm64", "libaudit1", "3.0.9-1", "a", "audit", "sha256-YZYGQnozTLqVXgr7GL9KY230FB0y6kdKecxRK1yjWOc="), + ("arm64", "libblkid1", "2.38.1-5+deb12u1", "u", "util-linux", "sha256-ej7FI6skQtXRJKIqRRVR7Q3OLODKOSXLmEX0tNxdOZc="), + ("arm64", "libbpf1", "1.1.0-1", "libb", "libbpf", "sha256-HJ5YqU7M8Zmpyhj4VnUDZUnQbden/P5gLXFeN6SKVD4="), + ("arm64", "libbrlapi0.8", "6.5-7+deb12u1", "b", "brltty", "sha256-RozpOLry69PPH38EGkMqlkBAx7/nl0NtSCWQpSyESxo="), + ("arm64", "libbsd0", "0.11.7-2", "libb", "libbsd", "sha256-7wDxMt3SaO5n11aZhyPuGFQ9snqzSTDAqfHP91z1U4I="), + ("arm64", "libbz2-1.0", "1.0.8-5+b1", "b", "bzip2", "sha256-06luzgMyZJizn/CTp2gA38vLHUBJ1q5un2+hqnpZCtY="), + ("arm64", "libc6", "2.36-9+deb12u8", "g", "glibc", "sha256-ALLJme12NCgk4mxGuyMTPwe7qX6RHTS2hVrdxOk+Vjg="), + ("arm64", "libcacard0", "2.8.0-3", "libc", "libcacard", "sha256-Sx/neGlprfadszxWU//qHsalaJYlOWpMtbXQii0A5XE="), + ("arm64", "libcap-ng0", "0.8.3-1+b3", "libc", "libcap-ng", "sha256-JOdK0po30qOUC4l30RKYp6/Hc3nvQUtWHXnGQUfXQOA="), + ("arm64", "libcap2", "2.66-4", "libc", "libcap2", "sha256-yW2+Ojc4XJ8KXVWdVbvZfDquZJ4nuo9QK3gXL3iFnkY="), + ("arm64", "libcap2-bin", "2.66-4", "libc", "libcap2", "sha256-epKPorF0sC3moHnr3m3rAHYb8N6PnP68nmY2xIjTZw8="), + ("arm64", "libcapstone4", "4.0.2-5", "c", "capstone", "sha256-gPikausKx/n3s1Vym6VxpYrtMbmNDby6Y0+Ax7SdJmM="), + ("arm64", "libcrypt1", "4.4.33-2", "libx", "libxcrypt", "sha256-7qCtdupetQcSf+oMKRYi6k7Nu3HEuajtnHauM/waASc="), + ("arm64", "libdaxctl1", "76.1-1", "n", "ndctl", "sha256-nRo3ZIAhr9+qZcAaOlf2VZrS3HEahidloqYPpmo7HJg="), + ("arm64", "libdb5.3", "5.3.28+dfsg2-1", "d", "db5.3", "sha256-NENnYI1iIpij2Rb0zuPcMXMobzsh+PSXqyHnF4upMPk="), + ("arm64", "libdebian-installer4", "0.124", "libd", "libdebian-installer", "sha256-XUAPL/cm2fv1B/Qx7Ik/vYVTyUoWGNVp1CYkRWoyFkA="), + ("arm64", "libdrm2", "2.4.114-1+b1", "libd", "libdrm", "sha256-9fFaRtAs9dn6UtTxxUuM+Aw5hxGtdxqZOLEjmbjYCQw="), + ("arm64", "libdw1", "0.188-2.1", "e", "elfutils", "sha256-O0A8iGZT4upJa3TPO1yJqg9Qp8Kvnto0O+GFlw0/RA0="), + ("arm64", "libelf1", "0.188-2.1", "e", "elfutils", "sha256-MpcZUtj11WNEe/J18k4mBXUAkk2i2FXB7bU7DwQAvRE="), + ("arm64", "libelogind0", "246.10-1debian1", "e", "elogind", "sha256-2gI4fezSshP0Z/6UnyqIpz2qTyZOmrvxDXgyD3qLh3c="), + ("arm64", "libepoxy0", "1.5.10-1", "libe", "libepoxy", "sha256-+c+CcrWrvMhymZNH3AhtustPtYlgJPbZ1GY2nCbBues="), + ("arm64", "libexecs0", "1.3-2", "libe", "libexecs", "sha256-NAPhGxMYPVnKga5XuewPEtbqJprOcYXTXyBM9rNTYg8="), + ("arm64", "libexpat1", "2.5.0-1", "e", "expat", "sha256-Od59F8sxLXb1hoZqONdkkQIXiizbf0zvG08nnqPOvwc="), + ("arm64", "libfdt1", "1.6.1-4+b1", "d", "device-tree-compiler", "sha256-Y/lgisZT9l71dZbKGLl8OZ/zd5LrT4o15uwfjuSaXdA="), + ("arm64", "libffi8", "3.4.4-1", "libf", "libffi", "sha256-gLXDYXfcDinVMcft2+08xzVctJDkn4z6WVlXLRYfJ7M="), + ("arm64", "libfuse3-3", "3.14.0-4", "f", "fuse3", "sha256-aSinfjVL9m3a4E8HDF5b1vPRd7kYn8kdCxXjVQDdHbo="), + ("arm64", "libgbm1", "22.3.6-1+deb12u1", "m", "mesa", "sha256-x2eQ4RqsRuMotqE7NMzNPvAfrXnP6A0sSqI4Ssndsfg="), + ("arm64", "libgcc-s1", "12.2.0-14", "g", "gcc-12", "sha256-b84iaNjzFSpOhGNPWiQTPTxikDsvmxG5xZI1y7wbI6g="), + ("arm64", "libgcrypt20", "1.10.1-3", "libg", "libgcrypt20", "sha256-efxnwhaEaJcoyDINiisKcgTfIdxMDaT644KM6zieK6I="), + ("arm64", "libglib2.0-0", "2.74.6-2+deb12u3", "g", "glib2.0", "sha256-53sv5fzxCwSN/BOWhWsUFdb660oFjFoQRq/y4K5gjpU="), + ("arm64", "libgmp10", "6.2.1+dfsg1-1.1", "g", "gmp", "sha256-mQY4fB3YBlGMkVvYYW0HLHQQYdf6JrIi5SdjRWBgsxo="), + ("arm64", "libgnutls30", "3.7.9-2+deb12u3", "g", "gnutls28", "sha256-xXIR1z7zjjEu67CAIQR08Q3Gavc2+GaJkZDh7go3rZ0="), + ("arm64", "libgpg-error0", "1.46-1", "libg", "libgpg-error", "sha256-r/bOARrpq/cJDpBvDPa8K0R7vEzH4D/xF/nXNSiFc1I="), + ("arm64", "libgstreamer-plugins-base1.0-0", "1.22.0-3+deb12u2", "g", "gst-plugins-base1.0", "sha256-ZSvV6GOc/9XHDXZuZbpA+pdZp6pweHsDdv1+7+YTvbs="), + ("arm64", "libgstreamer1.0-0", "1.22.0-2", "g", "gstreamer1.0", "sha256-HO73p6mNYau3hkMCNq5V4SY1qlivpltQIyjYbdbdNQQ="), + ("arm64", "libhogweed6", "3.8.1-2", "n", "nettle", "sha256-5lOhp+WkS+D3tkQ9xqyGXSUE5JFJZg/CU2VSRZZeFX8="), + ("arm64", "libibverbs1", "44.0-2", "r", "rdma-core", "sha256-sHFNcnQNFVJVDRvuZ9PqQ3oSgIPG8dtXxngOFfPiaUY="), + ("arm64", "libidn2-0", "2.3.3-1+b1", "libi", "libidn2", "sha256-EqPvwFZnG/HBvtTDREwlWcjV4MFYoTMW/HKPJjuD3cQ="), + ("arm64", "libjpeg62-turbo", "2.1.5-2", "libj", "libjpeg-turbo", "sha256-3mbxhvP/PB0Qwuda4FawGbP38JH1EJagbK3kiy3qh1s="), + ("arm64", "libkmod2", "30+20221128-1", "k", "kmod", "sha256-o9E7Gl0B//dANW06ja1sE/NJiBgKXWipouCVmVBU2Cg="), + ("arm64", "liblz4-1", "1.9.4-1", "l", "lz4", "sha256-8GEhbOEaq7qPAy39bHXBgeeC/vdJMDO5YhqMOylTuH4="), + ("arm64", "liblzma5", "5.4.1-0.2", "x", "xz-utils", "sha256-SCFt8KsVv3VxdkF8FUwnogi4KqQrAKFnlORpnsno4uM="), + ("arm64", "libmd0", "1.0.4-2", "libm", "libmd", "sha256-majH3Vkfrp+zfYv439/6hQ4gf6QFsxmMWyRxGl+XI4E="), + ("arm64", "libmount1", "2.38.1-5+deb12u1", "u", "util-linux", "sha256-VK/aYth1sUrt0uLbVxoq0f275Zyjkpgb7FpEQMEDHcA="), + ("arm64", "libncursesw6", "6.4-4", "n", "ncurses", "sha256-zzLLZ1FxiHLG3vRIuCIR7sSU9oji8aPmxxv9r2sHIsU="), + ("arm64", "libndctl6", "76.1-1", "n", "ndctl", "sha256-Iw3O3Qzec4rB1k5cCsU5mXq4cU+EM3a00rjnDqJ0Fvg="), + ("arm64", "libnettle8", "3.8.1-2", "n", "nettle", "sha256-yUX/IQ32nPe5XpNbj6k26BwcH0dTVePV24NRCxdPDNY="), + ("arm64", "libnewt0.52", "0.52.23-1+b1", "n", "newt", "sha256-35UMik9htzoW/dhl2Q5Ph3yzCv4u3HU+OcbNt2R2LPg="), + ("arm64", "libnl-3-200", "3.7.0-0.2+b1", "libn", "libnl3", "sha256-crhcjQfd/RNamjcvFWUAlh+VzhCUdOladuTeKpb5RAE="), + ("arm64", "libnl-route-3-200", "3.7.0-0.2+b1", "libn", "libnl3", "sha256-ETHrdczm85QuZ+BGH4jtUH1DRC7BMHwQq3W88+L33Ks="), + ("arm64", "libnspr4", "4.35-1", "n", "nspr", "sha256-Oqa8Who/g2J/c1uXEu7XTtLDRa6RSOnYdoh6l5gq4o0="), + ("arm64", "libnss3", "3.87.1-1", "n", "nss", "sha256-lrOQ0hzM3EMJgoJhfQWT7SMGJiLaPnYvc+uHZrrvhgY="), + ("arm64", "libnuma1", "2.0.16-1", "n", "numactl", "sha256-tO0lR/OH6y6X0TwLQjsDTSpNBSshMd/gQ+RahJFUUsU="), + ("arm64", "libopus0", "1.3.1-3", "o", "opus", "sha256-p++wbaFcx/H//2K/3Xe6Q/KiBluLWRha0dFAMcWp41Q="), + ("arm64", "liborc-0.4-0", "0.4.33-2", "o", "orc", "sha256-1ir3uaSfWFjGw9jakRUFnlKvR3DTSr3uPPEypSvSQH4="), + ("arm64", "libp11-kit0", "0.24.1-2", "p", "p11-kit", "sha256-0fH1UCPp/Ahbnr/JxBE9LS2rLca4GjN/J0t1yVrY3Ao="), + ("arm64", "libpam-modules", "1.5.2-6+deb12u1", "p", "pam", "sha256-8qz6F2azGisricev4R91fIjsLx2KvIzlvXfE3T5foks="), + ("arm64", "libpam0g", "1.5.2-6+deb12u1", "p", "pam", "sha256-dDIxEyPnZIpxBN3DMy2ZRgDPDSob1OKkRnmwbp2TLro="), + ("arm64", "libpcre2-8-0", "10.42-1", "p", "pcre2", "sha256-skSNCoo9t/vqwjHn75OBE0bB+1+WzPb2MXAdik6zkgY="), + ("arm64", "libpcsclite1", "1.9.9-2", "p", "pcsc-lite", "sha256-32AhLV683BedbmOYu/i7b1blda/vczzwmwTixB3p8VM="), + ("arm64", "libpixman-1-0", "0.42.2-1", "p", "pixman", "sha256-oY2xo7260WjHFotSi7sHtHMW/5/pdyBqeA3MIbN25QE="), + ("arm64", "libpmem1", "1.12.1-2", "p", "pmdk", "sha256-0KaqiFSo9byKOhw6IUHfuVurV3ejUXhCCnXyrVNzZdI="), + ("arm64", "libpng16-16", "1.6.39-2", "libp", "libpng1.6", "sha256-rofGJRoD++RmIooFj8uqW2pE8VYWbBulEYAkrEv2W3U="), + ("arm64", "librdmacm1", "44.0-2", "r", "rdma-core", "sha256-shi4eUvgJ+6W10llY7xuBtL2i8fu3NBgK+PZ6QUzrSA="), + ("arm64", "libreadline8", "8.2-1.3", "r", "readline", "sha256-87Fit8HgVDBgfnkuvb/EF8vR8dMs+DZkEzrmPYEactI="), + ("arm64", "libsasl2-2", "2.1.28+dfsg-10", "c", "cyrus-sasl2", "sha256-Ydy7ZWDi6yC/8lbxtEWsmvE6phxqauEVrYy5bJxQ6jg="), + ("arm64", "libsasl2-modules-db", "2.1.28+dfsg-10", "c", "cyrus-sasl2", "sha256-VtnDWsZymwL3iQAXVVfdNr7yZhHauJWE8p2hVjFiiGk="), + ("arm64", "libseccomp2", "2.5.4-1+deb12u1", "libs", "libseccomp", "sha256-vmdc87d3jYjo9hVsUB0y/L53Y2s9zxi/K8fl2vPd4lY="), + ("arm64", "libselinux1", "3.4-1+b6", "libs", "libselinux", "sha256-KSAe3yPrrkCETWwomv25u6Uvkn1VCW7Rsc034EATXtw="), + ("arm64", "libsemanage2", "3.4-1+b5", "libs", "libsemanage", "sha256-bRlYsprGItNS4A+d5V2d6K6hK9DCfe6LUi4FKs48Z70="), + ("arm64", "libsepol2", "3.4-2.1", "libs", "libsepol", "sha256-IrAEGgSvNk9kP/Ln/4jqrs3wcU3P0lPoyZpqlSrh/sY="), + ("arm64", "libslang2", "2.3.3-3", "s", "slang2", "sha256-na/K4hH1/M0UeFg4TdTvFh+uin1oElaqp6dyy84V31U="), + ("arm64", "libslirp0", "4.7.0-1", "libs", "libslirp", "sha256-VLqjJyoKrWQTGGp+arJ2K4GB81c+ZaqC7svsmlWp3+I="), + ("arm64", "libsndio7.0", "1.9.0-0.3+b2", "s", "sndio", "sha256-58eHiV6s+DY6TepqDLMjeniFdpHY1T9goaP/7qOBmAg="), + ("arm64", "libspice-server1", "0.15.1-1", "s", "spice", "sha256-ngCWDJ3EATziaRFy8bbT6qccl9D8IVrH3jN2HVA3A0A="), + ("arm64", "libsqlite3-0", "3.40.1-2", "s", "sqlite3", "sha256-h+iRkmuodMn1+9O0jVZM8QPdl9t48tg/0RdYJncdrP0="), + ("arm64", "libssl3", "3.0.14-1%7edeb12u2", "o", "openssl", "sha256-h7yAkuONp3n2PH7yvudqSaB0fJaMjgEpEwpkA9e1dag="), + ("arm64", "libstdc++6", "12.2.0-14", "g", "gcc-12", "sha256-IelxxdNQb3g7ie/o4SrIUIHd2SE+T2UpJivP6VwyZnA="), + ("arm64", "libsystemd0", "252.30-1%7edeb12u2", "s", "systemd", "sha256-Hq3+VXq3eVQvb6xmPSpIpS4Dzs21Ct6//c6H9BzwS/M="), + ("arm64", "libtasn1-6", "4.19.0-2", "libt", "libtasn1-6", "sha256-I14Al+zzdC6+oBaRzhsBtVBLXeIFc02rSlNT8MMk8/M="), + ("arm64", "libtextwrap1", "0.1-16", "libt", "libtextwrap", "sha256-Nwi4nBoH7hwGSfSJdLH8G0+1rXh+17DgaYeRWSF/zHc="), + ("arm64", "libtinfo6", "6.4-4", "n", "ncurses", "sha256-uu8PZ3b4TH7tTxFG1uV3RolWfa1DIWiU1B2gLmYI5LM="), + ("arm64", "libudev1", "252.30-1%7edeb12u2", "s", "systemd", "sha256-XwQAXjcVgQNkTi3IWRHVLJV9KIMJrodYsV4e6k7AM/w="), + ("arm64", "libunistring2", "1.0-2", "libu", "libunistring", "sha256-BbC3cAv+Jp/3r2H0XpIFXX70xTLJWE5OKjUs8L1N5bE="), + ("arm64", "libunwind8", "1.6.2-3", "libu", "libunwind", "sha256-+DznxYyq8Vz7C2ztU4dR6hHe2SBEOuz+YXBJrhhLcV4="), + ("arm64", "liburing2", "2.3-3", "libu", "liburing", "sha256-hASGMnBS3zl9eJZunWXTVATP4MHqopU4Qs/7pCf4/98="), + ("arm64", "libusb-1.0-0", "1.0.26-1", "libu", "libusb-1.0", "sha256-4GSAhrIxySBFFNMUgNUXyxtR4wGsOeaTNaZ9Aex4Vgg="), + ("arm64", "libusbredirparser1", "0.13.0-2", "u", "usbredir", "sha256-I87drCAYor6vuWksMO6qQma4QelHSTfs4eZrdHZl9iA="), + ("arm64", "libuuid1", "2.38.1-5+deb12u1", "u", "util-linux", "sha256-ffbDgPY2rvy3mxTKXYlHZ4NNDKh9so1Aqcfq8qywvTw="), + ("arm64", "libvdeplug2", "4.0.1-4", "v", "vdeplug4", "sha256-H10OQ0sN+0unwNfrm9v5isiLKTYvYTV9GGnPwDZ3s9E="), + ("arm64", "libwayland-server0", "1.21.0-1", "w", "wayland", "sha256-TZnn4FA/2qmZ5n1H2GEsBGXnder6R4GVc9pQvbCQZPI="), + ("arm64", "libzstd1", "1.5.4+dfsg2-5", "libz", "libzstd", "sha256-leFzyVOPlu3k/Cdex4Y/OVqX3Q6mJFS+m8kU76G5vpM="), + ("arm64", "passwd", "4.13+dfsg1-1+b1", "s", "shadow", "sha256-yOaJ6+9cOtT7OeqLDUnDOkg4ed0PR3oH1xD3YJgJ1pc="), + ("arm64", "qemu-system-arm", "7.2+dfsg-7+deb12u7", "q", "qemu", "sha256-Z0ZzfQd2ApSBlm2GDmd7sI7vbrkKRdVOOuUINr5clUE="), + ("arm64", "qemu-system-common", "7.2+dfsg-7+deb12u7", "q", "qemu", "sha256-5eDw7Q02g5hDmfiDpRHsouDtoOTL1kE38F6/YyFQDrg="), + ("arm64", "qemu-system-x86", "7.2+dfsg-7+deb12u7", "q", "qemu", "sha256-r+gePAEzWb7l094dhRMRGwTAoqRDStPhIx2QbtCdz4M="), + ("arm64", "tar", "1.34+dfsg-1.2+deb12u1", "t", "tar", "sha256-BKlF1PJAaPnUxEKUAU71oz/GF5pXAhl4r8fQg1jhPfM="), + ("arm64", "zlib1g", "1.2.13.dfsg-1", "z", "zlib", "sha256-Uri4oUW74ZVruoIDT3cCLL7ww9CIXJ4y2YF6eTL+GRM="), + ) +] diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index 76902f23..bdaad19e 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -7,13 +7,21 @@ "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/source.json": "7e3a9adf473e9af076ae485ed649d5641ad50ec5c11718103f34de03170d94ad", "https://bcr.bazel.build/modules/ape/1.0.0-beta.12/MODULE.bazel": "e75be27b37a2f7cf83dbeb497aeac93f8da9aa55fc2b35a9a1cb46db9b7f8885", "https://bcr.bazel.build/modules/ape/1.0.0-beta.12/source.json": "4b9e00b30d41ff209d7deddba1fbb4538cdfc7a54b4e07e607134ccc147e6a29", + "https://bcr.bazel.build/modules/ape/1.0.0-beta.6/MODULE.bazel": "247bcdbc358206c37ce8bf1c850115002c6560570d96f9ac8a79dd810b18ea85", + "https://bcr.bazel.build/modules/ape/1.0.0-beta.7/MODULE.bazel": "cb8163d01ede65cb41bf1449d6e5091e6da8d927cf700103d9a0c48517f3c1bf", "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.0/MODULE.bazel": "2ee4360a135da51ec06ca49cc4310f5a4c2839118f38ea8417f7f2db56967285", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.0/source.json": "c34612bffaaccfd7b86667be4cfdd8532b5e197939224be8d53398e5851ea24a", + "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.13.0/MODULE.bazel": "c14c33c7c3c730612bdbe14ebbb5e61936b6f11322ea95a6e91cd1ba962f94df", "https://bcr.bazel.build/modules/bazel_features/1.13.0/source.json": "b01f6aaaf93527ff4267421ef416debbd89b3166b70af5c89400c6a95a89c133", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", @@ -25,6 +33,12 @@ "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", "https://bcr.bazel.build/modules/download_utils/1.0.0-beta.2/MODULE.bazel": "bced1551849a5d1ca00b985c0d267ab690af840f04c685f2c62f40e92f66fac0", "https://bcr.bazel.build/modules/download_utils/1.0.0-beta.2/source.json": "0ab7ebbc57f39a7fe96190e01fe9773482bc4e3d465e9cd9b239bb44ad57791d", + "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8", + "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350", + "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a", + "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0", + "https://bcr.bazel.build/modules/gazelle/0.38.0/MODULE.bazel": "51bb3ca009bc9320492894aece6ba5f50aae68a39fff2567844b77fc12e2d0a5", + "https://bcr.bazel.build/modules/gazelle/0.38.0/source.json": "7fedf9b531bcbbe90b009e4d3aef478a2defb8b8a6e31e931445231e425fc37c", "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", "https://bcr.bazel.build/modules/googletest/1.11.0/source.json": "c73d9ef4268c91bd0c1cd88f1f9dfa08e814b1dbe89b5f594a9f08ba0244d206", "https://bcr.bazel.build/modules/hermetic_cc_toolchain/3.1.0/MODULE.bazel": "ea4b3a25a9417a7db57a8a2f9ebdee91d679823c6274b482b817ed128d81c594", @@ -40,13 +54,28 @@ "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", "https://bcr.bazel.build/modules/protobuf/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b", "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573", "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/rules_bzip2/1.0.0-beta.1/MODULE.bazel": "d45e0cac04248d32babf99b96cdb7c82aed6f36657b31647d2e40d45ed262b85", + "https://bcr.bazel.build/modules/rules_bzip2/1.0.0-beta.1/source.json": "6b6ae325f3e3414d54f1c974ee044d6f49d23ba326b9d702ba7021c9cbda7ce5", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.1/MODULE.bazel": "159a59bd049c72ade6f0b617cc06c78ff72ef83dd8e331a038739561e4416e0e", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.6/MODULE.bazel": "d767c0dce8cca10f507ff4df59b6be1023b155e9aa92dc075f564a2ed3713615", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.6/source.json": "5970522e4551e83d36886874b2ff7fc6718884670b6961bcf298aaaa608251c5", + "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8", + "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270", + "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd", + "https://bcr.bazel.build/modules/rules_go/0.47.0/MODULE.bazel": "e425890d2a4d668abc0f59d8388b70bf63ad025edec76a385c35d85882519417", + "https://bcr.bazel.build/modules/rules_go/0.49.0/MODULE.bazel": "61cfc1ba17123356d1b12b6c50f6e0162b2cc7fd6f51753c12471e973a0f72a5", + "https://bcr.bazel.build/modules/rules_go/0.49.0/source.json": "ab2261ea5e29d29a41c8e5c67896f946ab7855b786d28fe25d74987b84e5e85d", + "https://bcr.bazel.build/modules/rules_gzip/1.0.0-beta.1/MODULE.bazel": "4bc3bb009698531db230bb85a290355e7805d0cf7b5e8b60f62ee8ac65af0405", + "https://bcr.bazel.build/modules/rules_gzip/1.0.0-beta.1/source.json": "cd92050d1eb80a80f1bac8e94ec7d99ffc58e2e6ae2cd18bdcf8efd3e44a2b8f", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", "https://bcr.bazel.build/modules/rules_java/7.6.1/source.json": "8f3f3076554e1558e8e468b2232991c510ecbcbed9e6f8c06ac31c93bcf38362", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", @@ -59,14 +88,22 @@ "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", - "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/source.json": "8d8448e71706df7450ced227ca6b3812407ff5e2ccad74a43a9fbe79c84e34e0", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/source.json": "de77e10ff0ab16acbf54e6b46eecd37a99c5b290468ea1aee6e95eb1affdaed7", "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", "https://bcr.bazel.build/modules/rules_python/0.33.2/source.json": "e539592cd3aae4492032cecea510e46ca16eeb972271560b922cae9893944e2f", "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_tar/1.0.0-beta.3/MODULE.bazel": "not found", + "https://bcr.bazel.build/modules/rules_xz/1.0.0-beta.1/MODULE.bazel": "0934987548deaa03cca973e6e700d88daadb736d816af5907e93633747c7a9c5", + "https://bcr.bazel.build/modules/rules_xz/1.0.0-beta.1/source.json": "155e565725363efca12521ef8c30551978c48e6f3b4640fc6796c3dbcae73d81", + "https://bcr.bazel.build/modules/rules_zstd/1.0.0-beta.1/MODULE.bazel": "979e286e40ec27423d4c93ff15e3e17b212e8b83b07157d3c61d1f265c4fa16a", + "https://bcr.bazel.build/modules/rules_zstd/1.0.0-beta.3/MODULE.bazel": "not found", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", - "https://bcr.bazel.build/modules/stardoc/0.5.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.4/source.json": "a961f58a71e735aa9dcb2d79b288e06b0a2d860ba730302c8f11be411b76631e", + "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.12/MODULE.bazel": "947cf935fa609c91b05bd8c8c1be38b9e10b7bc8949cf3092ee416ed30995078", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.14/MODULE.bazel": "not found", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.9/MODULE.bazel": "9a8edfa6905229b899225489cbd6db36f073d9455c77238bd6ae6c52da5256d8", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", @@ -75,7 +112,16 @@ "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", "https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72", "https://bcr.bazel.build/modules/zlib/1.3/source.json": "b6b43d0737af846022636e6e255fd4a96fee0d34f08f3830e6e0bac51465c37c", + "https://bcr.bazel.build/modules/zstd/1.5.6/MODULE.bazel": "471ebe7d3cdd8c6469390fcf623eb4779ff55fbee0a87f1dc57a1def468b96d4", + "https://bcr.bazel.build/modules/zstd/1.5.6/source.json": "02010c3333fc89b44fe861db049968decb6e688411f7f9d4f6791d74f9adfb51", + "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/bazel_registry.json": "not found", + "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/rules_tar/1.0.0-beta.3/MODULE.bazel": "64e7c453ec8915d362017208ca94fc204526032a4847ae4e3af94d2b368e30d3", + "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/rules_tar/1.0.0-beta.3/source.json": "c83aaf04a1abcd6cd88e3a017ff7041c4b059d984a9839e7ef327142904c1fb3", + "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/rules_zstd/1.0.0-beta.3/MODULE.bazel": "not found", "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/toolchain_utils/1.0.0-beta.14/MODULE.bazel": "not found", + "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/bazel_registry.json": "not found", + "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/rules_zstd/1.0.0-beta.3/MODULE.bazel": "a1386815d57563c8288e12bff7195e59f898f82aa39251291f088b4696ce265c", + "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/rules_zstd/1.0.0-beta.3/source.json": "03c5addba144297bf0905f6a4a807f1c8f829cdb7a6a355e1822a5711f70584a", "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/toolchain_utils/1.0.0-beta.14/MODULE.bazel": "not found", "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.14/downloads/bazel_registry.json": "not found", "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.14/downloads/modules/toolchain_utils/1.0.0-beta.14/MODULE.bazel": "ed32c210fdf14321f9adf35a298c87fcc2b6f10ca5afe250b9733f9f98e80d5e", @@ -111,6 +157,438 @@ ] } }, + "@@aspect_bazel_lib~//lib:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "mGLF7b1ofhbx/nwdvORAoZCZrI+aPzrKLPxbbv9iIFQ=", + "usagesDigest": "ryO4L8fmiBbPJNLDmOClk61bqNT5nJtVIN5vzfep7X8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "expand_template_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_to_directory_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "jq_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "1.7" + } + }, + "copy_to_directory_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "expand_template_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "jq_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "1.7" + } + }, + "coreutils_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "0.0.23" + } + }, + "copy_to_directory_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_directory_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "coreutils_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "0.0.23" + } + }, + "coreutils_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "0.0.23" + } + }, + "yq_linux_s390x": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_s390x", + "version": "4.25.2" + } + }, + "yq": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_host_alias_repo", + "attributes": {} + }, + "expand_template_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_directory_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "jq_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "1.7" + } + }, + "yq_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "4.25.2" + } + }, + "copy_directory_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "expand_template_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_toolchains_repo", + "attributes": { + "user_repository_name": "expand_template" + } + }, + "bats_assert": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "98ca3b685f8b8993e48ec057565e6e2abcc541034ed5b0e81f191505682037fd", + "urls": [ + "https://github.com/bats-core/bats-assert/archive/v2.1.0.tar.gz" + ], + "strip_prefix": "bats-assert-2.1.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"assert\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-assert\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "copy_to_directory_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "yq_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_toolchains_repo", + "attributes": { + "user_repository_name": "yq" + } + }, + "bats_support": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "7815237aafeb42ddcc1b8c698fc5808026d33317d8701d5ec2396e9634e2918f", + "urls": [ + "https://github.com/bats-core/bats-support/archive/v0.3.0.tar.gz" + ], + "strip_prefix": "bats-support-0.3.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"support\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-support\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "bsd_tar_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "jq": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_host_alias_repo", + "attributes": {} + }, + "expand_template_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_to_directory_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "coreutils_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "0.0.23" + } + }, + "copy_directory_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_directory" + } + }, + "yq_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "4.25.2" + } + }, + "copy_to_directory_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "coreutils_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_toolchains_repo", + "attributes": { + "user_repository_name": "coreutils" + } + }, + "copy_directory_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "bats_file": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "9b69043241f3af1c2d251f89b4fcafa5df3f05e97b89db18d7c9bdf5731bb27a", + "urls": [ + "https://github.com/bats-core/bats-file/archive/v0.4.0.tar.gz" + ], + "strip_prefix": "bats-file-0.4.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"file\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-file\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "expand_template_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "jq_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "1.7" + } + }, + "bsd_tar_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar" + } + }, + "bats_toolchains": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "a1a9f7875aa4b6a9480ca384d5865f1ccf1b0b1faead6b47aa47d79709a5c5fd", + "urls": [ + "https://github.com/bats-core/bats-core/archive/v1.10.0.tar.gz" + ], + "strip_prefix": "bats-core-1.10.0", + "build_file_content": "load(\"@local_config_platform//:constraints.bzl\", \"HOST_CONSTRAINTS\")\nload(\"@aspect_bazel_lib//lib/private:bats_toolchain.bzl\", \"bats_toolchain\")\nload(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"core\",\n hardlink = \"on\",\n srcs = glob([\n \"lib/**\",\n \"libexec/**\"\n ]) + [\"bin/bats\"],\n out = \"bats-core\",\n)\n\nbats_toolchain(\n name = \"toolchain\",\n core = \":core\",\n libraries = [\"@bats_support//:support\", \"@bats_assert//:assert\", \"@bats_file//:file\"]\n)\n\ntoolchain(\n name = \"bats_toolchain\",\n exec_compatible_with = HOST_CONSTRAINTS,\n toolchain = \":toolchain\",\n toolchain_type = \"@aspect_bazel_lib//lib:bats_toolchain_type\",\n)\n" + } + }, + "yq_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "4.25.2" + } + }, + "jq_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "1.7" + } + }, + "expand_template_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "yq_linux_ppc64le": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_ppc64le", + "version": "4.25.2" + } + }, + "copy_to_directory_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_to_directory" + } + }, + "jq_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_toolchains_repo", + "attributes": { + "user_repository_name": "jq" + } + }, + "copy_directory_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_directory_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "yq_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "4.25.2" + } + }, + "coreutils_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "0.0.23" + } + }, + "yq_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "4.25.2" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "aspect_bazel_lib~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_bazel_lib~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, "@@hermetic_cc_toolchain~//toolchain:ext.bzl%toolchains": { "general": { "bzlTransitiveDigest": "L0EDVXQ1bqh5CxjodeVieW+SjWsjwxFXYEKhUNgMY50=", diff --git a/debian/README.md b/debian/README.md new file mode 100644 index 00000000..75e7c8bf --- /dev/null +++ b/debian/README.md @@ -0,0 +1,63 @@ +# Debian + +Provides targets that can run binaries from downloaded Debian packages. + +## Packages + +Start up a container for the Debian release required: + +```console +podman --rm -it debian:bookworm /bin/bash +``` + +Update the package lists: + +```console +apt update +``` + +Install some needed tools: + +```console +apt install xxd +``` + +Run the script to get the package metadata: + +```console +apt download --print-uris $( + apt-cache depends \ + --recurse \ + --no-recommends \ + --no-suggests \ + --no-conflicts \ + --no-breaks \ + --no-replaces \ + --no-enhances \ + --no-pre-depends \ + qemu-system-arm | + grep '^\w' | + LC_ALL=C sort +) | + while IFS=" " read -r URI PKG _ CKSUM; do + URI="${URI#\'}" + URI="${URI%\'}" + URI="${URI//%2b/+}" + ALGO="$(printf '%s' "${CKSUM%%:*}" | tr '[:upper:]' '[:lower:]')" + DIGEST="${CKSUM#*:}" + INTEGRITY="${ALGO}-$(printf '%s' "${DIGEST}" | xxd -r -p | base64)" + echo "${URI##*/main/}" | + while IFS=/ read -r GROUP PROJECT PKG; do + echo "${PKG%.deb}" | + while IFS=_ read -r NAME VERSION CPU; do + printf '("%s", "%s", "%s", "%s", "%s", "%s"),\n' \ + "${CPU}" "${NAME}" "${VERSION}" "${GROUP}" "${PROJECT}" "${INTEGRITY}" + printf >&2 '"@%s-%s//:data.tar.xz",\n' \ + "${CPU}" "${NAME//+/x}" + done + done + done 2> >(LC_ALL=C sort | tee /tmp/BUILD.bazel) | + LC_ALL=C sort | tee /tmp/MODULE.bazel +``` + +The `stdout` can be copied into `MODULE.bazel`, `stderr` can be copied into the `BUILD.bazel` files. diff --git a/debian/amd64/libc6/BUILD.bazel b/debian/amd64/libc6/BUILD.bazel new file mode 100644 index 00000000..c627932c --- /dev/null +++ b/debian/amd64/libc6/BUILD.bazel @@ -0,0 +1,13 @@ +load("@rules_tar//tar/filter:defs.bzl", "tar_filter") + +# FIXME: this should actually change the link to be relative instead +tar_filter( + name = "data.tar.zst", + src = "@amd64-libc6//:data.tar.xz", + compress = "@rules_zstd//zstd/toolchain/zstd:resolved", + patterns = [ + "!./lib64/ld-linux-x86-64.so.2", + "**/*", + ], + visibility = ["//debian/amd64:__subpackages__"], +) diff --git a/debian/amd64/qemu-system-arm/BUILD.bazel b/debian/amd64/qemu-system-arm/BUILD.bazel new file mode 100644 index 00000000..1f73dbf9 --- /dev/null +++ b/debian/amd64/qemu-system-arm/BUILD.bazel @@ -0,0 +1,141 @@ +load("//debian/launcher:defs.bzl", "debian_launcher") +load("@rules_tar//tar/concatenate:defs.bzl", "tar_concatenate") +load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") + +tar_concatenate( + name = "data.tar.zst", + srcs = [ + "//debian/amd64/libc6:data.tar.zst", + "//debian/amd64/tar:data.tar.zst", + "@all-adduser//:data.tar.xz", + "@all-debconf//:data.tar.xz", + "@all-iso-codes//:data.tar.xz", + "@all-libasound2-data//:data.tar.xz", + "@all-libaudit-common//:data.tar.xz", + "@all-libdrm-common//:data.tar.xz", + "@all-libsemanage-common//:data.tar.xz", + "@all-qemu-system-data//:data.tar.xz", + "@all-readline-common//:data.tar.xz", + "@amd64-cdebconf//:data.tar.xz", + "@amd64-dpkg//:data.tar.xz", + "@amd64-gcc-12-base//:data.tar.xz", + "@amd64-install-info//:data.tar.xz", + "@amd64-libaio1//:data.tar.xz", + "@amd64-libasound2//:data.tar.xz", + "@amd64-libaudit1//:data.tar.xz", + "@amd64-libblkid1//:data.tar.xz", + "@amd64-libbpf1//:data.tar.xz", + "@amd64-libbrlapi0.8//:data.tar.xz", + "@amd64-libbsd0//:data.tar.xz", + "@amd64-libbz2-1.0//:data.tar.xz", + "@amd64-libcacard0//:data.tar.xz", + "@amd64-libcap-ng0//:data.tar.xz", + "@amd64-libcap2-bin//:data.tar.xz", + "@amd64-libcap2//:data.tar.xz", + "@amd64-libcapstone4//:data.tar.xz", + "@amd64-libcrypt1//:data.tar.xz", + "@amd64-libdaxctl1//:data.tar.xz", + "@amd64-libdb5.3//:data.tar.xz", + "@amd64-libdebian-installer4//:data.tar.xz", + "@amd64-libdrm2//:data.tar.xz", + "@amd64-libdw1//:data.tar.xz", + "@amd64-libelf1//:data.tar.xz", + "@amd64-libelogind0//:data.tar.xz", + "@amd64-libepoxy0//:data.tar.xz", + "@amd64-libexecs0//:data.tar.xz", + "@amd64-libexpat1//:data.tar.xz", + "@amd64-libfdt1//:data.tar.xz", + "@amd64-libffi8//:data.tar.xz", + "@amd64-libfuse3-3//:data.tar.xz", + "@amd64-libgbm1//:data.tar.xz", + "@amd64-libgcc-s1//:data.tar.xz", + "@amd64-libgcrypt20//:data.tar.xz", + "@amd64-libglib2.0-0//:data.tar.xz", + "@amd64-libgmp10//:data.tar.xz", + "@amd64-libgnutls30//:data.tar.xz", + "@amd64-libgpg-error0//:data.tar.xz", + "@amd64-libgstreamer-plugins-base1.0-0//:data.tar.xz", + "@amd64-libgstreamer1.0-0//:data.tar.xz", + "@amd64-libhogweed6//:data.tar.xz", + "@amd64-libibverbs1//:data.tar.xz", + "@amd64-libidn2-0//:data.tar.xz", + "@amd64-libjpeg62-turbo//:data.tar.xz", + "@amd64-libkmod2//:data.tar.xz", + "@amd64-liblz4-1//:data.tar.xz", + "@amd64-liblzma5//:data.tar.xz", + "@amd64-libmd0//:data.tar.xz", + "@amd64-libmount1//:data.tar.xz", + "@amd64-libncursesw6//:data.tar.xz", + "@amd64-libndctl6//:data.tar.xz", + "@amd64-libnettle8//:data.tar.xz", + "@amd64-libnewt0.52//:data.tar.xz", + "@amd64-libnl-3-200//:data.tar.xz", + "@amd64-libnl-route-3-200//:data.tar.xz", + "@amd64-libnspr4//:data.tar.xz", + "@amd64-libnss3//:data.tar.xz", + "@amd64-libnuma1//:data.tar.xz", + "@amd64-libopus0//:data.tar.xz", + "@amd64-liborc-0.4-0//:data.tar.xz", + "@amd64-libp11-kit0//:data.tar.xz", + "@amd64-libpam-modules//:data.tar.xz", + "@amd64-libpam0g//:data.tar.xz", + "@amd64-libpcre2-8-0//:data.tar.xz", + "@amd64-libpcsclite1//:data.tar.xz", + "@amd64-libpixman-1-0//:data.tar.xz", + "@amd64-libpmem1//:data.tar.xz", + "@amd64-libpng16-16//:data.tar.xz", + "@amd64-librdmacm1//:data.tar.xz", + "@amd64-libreadline8//:data.tar.xz", + "@amd64-libsasl2-2//:data.tar.xz", + "@amd64-libsasl2-modules-db//:data.tar.xz", + "@amd64-libseccomp2//:data.tar.xz", + "@amd64-libselinux1//:data.tar.xz", + "@amd64-libsemanage2//:data.tar.xz", + "@amd64-libsepol2//:data.tar.xz", + "@amd64-libslang2//:data.tar.xz", + "@amd64-libslirp0//:data.tar.xz", + "@amd64-libsndio7.0//:data.tar.xz", + "@amd64-libspice-server1//:data.tar.xz", + "@amd64-libsqlite3-0//:data.tar.xz", + "@amd64-libssl3//:data.tar.xz", + "@amd64-libstdcxx6//:data.tar.xz", + "@amd64-libsystemd0//:data.tar.xz", + "@amd64-libtasn1-6//:data.tar.xz", + "@amd64-libtextwrap1//:data.tar.xz", + "@amd64-libtinfo6//:data.tar.xz", + "@amd64-libudev1//:data.tar.xz", + "@amd64-libunistring2//:data.tar.xz", + "@amd64-libunwind8//:data.tar.xz", + "@amd64-liburing2//:data.tar.xz", + "@amd64-libusb-1.0-0//:data.tar.xz", + "@amd64-libusbredirparser1//:data.tar.xz", + "@amd64-libuuid1//:data.tar.xz", + "@amd64-libvdeplug2//:data.tar.xz", + "@amd64-libwayland-server0//:data.tar.xz", + "@amd64-libzstd1//:data.tar.xz", + "@amd64-passwd//:data.tar.xz", + "@amd64-qemu-system-arm//:data.tar.xz", + "@amd64-qemu-system-common//:data.tar.xz", + "@amd64-zlib1g//:data.tar.xz", + ], + compress = "@rules_zstd//zstd/toolchain/zstd:resolved", + duplicate = "skip", +) + +tar_unpack( + name = "unpack", + src = ":data.tar.zst", + visibility = ["//debian/qemu-system-aarch64/amd64:__pkg__"], +) + +debian_launcher( + name = "qemu-system-arm", + src = ":unpack", + visibility = ["//:__subpackages__"], +) + +debian_launcher( + name = "qemu-system-aarch64", + src = ":unpack", + visibility = ["//:__subpackages__"], +) diff --git a/debian/amd64/qemu-system-x86/BUILD.bazel b/debian/amd64/qemu-system-x86/BUILD.bazel new file mode 100644 index 00000000..d476afa5 --- /dev/null +++ b/debian/amd64/qemu-system-x86/BUILD.bazel @@ -0,0 +1,142 @@ +load("//debian/launcher:defs.bzl", "debian_launcher") +load("@rules_tar//tar/concatenate:defs.bzl", "tar_concatenate") +load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") + +tar_concatenate( + name = "data.tar.zst", + srcs = [ + "//debian/amd64/libc6:data.tar.zst", + "//debian/amd64/tar:data.tar.zst", + "@all-adduser//:data.tar.xz", + "@all-debconf//:data.tar.xz", + "@all-ipxe-qemu//:data.tar.xz", + "@all-iso-codes//:data.tar.xz", + "@all-libasound2-data//:data.tar.xz", + "@all-libaudit-common//:data.tar.xz", + "@all-libdrm-common//:data.tar.xz", + "@all-libsemanage-common//:data.tar.xz", + "@all-qemu-system-data//:data.tar.xz", + "@all-readline-common//:data.tar.xz", + "@all-seabios//:data.tar.xz", + "@amd64-cdebconf//:data.tar.xz", + "@amd64-dpkg//:data.tar.xz", + "@amd64-gcc-12-base//:data.tar.xz", + "@amd64-install-info//:data.tar.xz", + "@amd64-libaio1//:data.tar.xz", + "@amd64-libasound2//:data.tar.xz", + "@amd64-libaudit1//:data.tar.xz", + "@amd64-libblkid1//:data.tar.xz", + "@amd64-libbpf1//:data.tar.xz", + "@amd64-libbrlapi0.8//:data.tar.xz", + "@amd64-libbsd0//:data.tar.xz", + "@amd64-libbz2-1.0//:data.tar.xz", + "@amd64-libcacard0//:data.tar.xz", + "@amd64-libcap-ng0//:data.tar.xz", + "@amd64-libcap2-bin//:data.tar.xz", + "@amd64-libcap2//:data.tar.xz", + "@amd64-libcapstone4//:data.tar.xz", + "@amd64-libcrypt1//:data.tar.xz", + "@amd64-libdaxctl1//:data.tar.xz", + "@amd64-libdb5.3//:data.tar.xz", + "@amd64-libdebian-installer4//:data.tar.xz", + "@amd64-libdrm2//:data.tar.xz", + "@amd64-libdw1//:data.tar.xz", + "@amd64-libelf1//:data.tar.xz", + "@amd64-libelogind0//:data.tar.xz", + "@amd64-libepoxy0//:data.tar.xz", + "@amd64-libexecs0//:data.tar.xz", + "@amd64-libexpat1//:data.tar.xz", + "@amd64-libfdt1//:data.tar.xz", + "@amd64-libffi8//:data.tar.xz", + "@amd64-libfuse3-3//:data.tar.xz", + "@amd64-libgbm1//:data.tar.xz", + "@amd64-libgcc-s1//:data.tar.xz", + "@amd64-libgcrypt20//:data.tar.xz", + "@amd64-libglib2.0-0//:data.tar.xz", + "@amd64-libgmp10//:data.tar.xz", + "@amd64-libgnutls30//:data.tar.xz", + "@amd64-libgpg-error0//:data.tar.xz", + "@amd64-libgstreamer-plugins-base1.0-0//:data.tar.xz", + "@amd64-libgstreamer1.0-0//:data.tar.xz", + "@amd64-libhogweed6//:data.tar.xz", + "@amd64-libibverbs1//:data.tar.xz", + "@amd64-libidn2-0//:data.tar.xz", + "@amd64-libjpeg62-turbo//:data.tar.xz", + "@amd64-libkmod2//:data.tar.xz", + "@amd64-liblz4-1//:data.tar.xz", + "@amd64-liblzma5//:data.tar.xz", + "@amd64-libmd0//:data.tar.xz", + "@amd64-libmount1//:data.tar.xz", + "@amd64-libncursesw6//:data.tar.xz", + "@amd64-libndctl6//:data.tar.xz", + "@amd64-libnettle8//:data.tar.xz", + "@amd64-libnewt0.52//:data.tar.xz", + "@amd64-libnl-3-200//:data.tar.xz", + "@amd64-libnl-route-3-200//:data.tar.xz", + "@amd64-libnspr4//:data.tar.xz", + "@amd64-libnss3//:data.tar.xz", + "@amd64-libnuma1//:data.tar.xz", + "@amd64-libopus0//:data.tar.xz", + "@amd64-liborc-0.4-0//:data.tar.xz", + "@amd64-libp11-kit0//:data.tar.xz", + "@amd64-libpam-modules//:data.tar.xz", + "@amd64-libpam0g//:data.tar.xz", + "@amd64-libpcre2-8-0//:data.tar.xz", + "@amd64-libpcsclite1//:data.tar.xz", + "@amd64-libpixman-1-0//:data.tar.xz", + "@amd64-libpmem1//:data.tar.xz", + "@amd64-libpng16-16//:data.tar.xz", + "@amd64-librdmacm1//:data.tar.xz", + "@amd64-libreadline8//:data.tar.xz", + "@amd64-libsasl2-2//:data.tar.xz", + "@amd64-libsasl2-modules-db//:data.tar.xz", + "@amd64-libseccomp2//:data.tar.xz", + "@amd64-libselinux1//:data.tar.xz", + "@amd64-libsemanage2//:data.tar.xz", + "@amd64-libsepol2//:data.tar.xz", + "@amd64-libslang2//:data.tar.xz", + "@amd64-libslirp0//:data.tar.xz", + "@amd64-libsndio7.0//:data.tar.xz", + "@amd64-libspice-server1//:data.tar.xz", + "@amd64-libsqlite3-0//:data.tar.xz", + "@amd64-libssl3//:data.tar.xz", + "@amd64-libstdcxx6//:data.tar.xz", + "@amd64-libsystemd0//:data.tar.xz", + "@amd64-libtasn1-6//:data.tar.xz", + "@amd64-libtextwrap1//:data.tar.xz", + "@amd64-libtinfo6//:data.tar.xz", + "@amd64-libudev1//:data.tar.xz", + "@amd64-libunistring2//:data.tar.xz", + "@amd64-libunwind8//:data.tar.xz", + "@amd64-liburing2//:data.tar.xz", + "@amd64-libusb-1.0-0//:data.tar.xz", + "@amd64-libusbredirparser1//:data.tar.xz", + "@amd64-libuuid1//:data.tar.xz", + "@amd64-libvdeplug2//:data.tar.xz", + "@amd64-libwayland-server0//:data.tar.xz", + "@amd64-libzstd1//:data.tar.xz", + "@amd64-passwd//:data.tar.xz", + "@amd64-qemu-system-common//:data.tar.xz", + "@amd64-qemu-system-x86//:data.tar.xz", + "@amd64-zlib1g//:data.tar.xz", + ], + compress = "@rules_zstd//zstd/toolchain/zstd:resolved", + duplicate = "skip", +) + +tar_unpack( + name = "unpack", + src = ":data.tar.zst", +) + +debian_launcher( + name = "qemu-system-i386", + src = ":unpack", + visibility = ["//:__subpackages__"], +) + +debian_launcher( + name = "qemu-system-x86_64", + src = ":unpack", + visibility = ["//:__subpackages__"], +) diff --git a/debian/amd64/tar/BUILD.bazel b/debian/amd64/tar/BUILD.bazel new file mode 100644 index 00000000..b1927476 --- /dev/null +++ b/debian/amd64/tar/BUILD.bazel @@ -0,0 +1,13 @@ +load("@rules_tar//tar/filter:defs.bzl", "tar_filter") + +# Remove dangling symlink +tar_filter( + name = "data.tar.zst", + src = "@amd64-tar//:data.tar.xz", + compress = "@rules_zstd//zstd/toolchain/zstd:resolved", + patterns = [ + "!./etc/rmt", + "**/*", + ], + visibility = ["//debian/amd64:__subpackages__"], +) diff --git a/debian/arm64/libc6/BUILD.bazel b/debian/arm64/libc6/BUILD.bazel new file mode 100644 index 00000000..f5bd5327 --- /dev/null +++ b/debian/arm64/libc6/BUILD.bazel @@ -0,0 +1,13 @@ +load("@rules_tar//tar/filter:defs.bzl", "tar_filter") + +# FIXME: this should actually change the link to be relative instead +tar_filter( + name = "data.tar.zst", + src = "@arm64-libc6//:data.tar.xz", + compress = "@rules_zstd//zstd/toolchain/zstd:resolved", + patterns = [ + "!./lib64/ld-linux-x86-64.so.2", + "**/*", + ], + visibility = ["//debian/arm64:__subpackages__"], +) diff --git a/debian/arm64/qemu-system-arm/BUILD.bazel b/debian/arm64/qemu-system-arm/BUILD.bazel new file mode 100644 index 00000000..0635712c --- /dev/null +++ b/debian/arm64/qemu-system-arm/BUILD.bazel @@ -0,0 +1,140 @@ +load("//debian/launcher:defs.bzl", "debian_launcher") +load("@rules_tar//tar/concatenate:defs.bzl", "tar_concatenate") +load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") + +tar_concatenate( + name = "data.tar.zst", + srcs = [ + "//debian/arm64/libc6:data.tar.zst", + "//debian/arm64/tar:data.tar.zst", + "@all-adduser//:data.tar.xz", + "@all-debconf//:data.tar.xz", + "@all-iso-codes//:data.tar.xz", + "@all-libasound2-data//:data.tar.xz", + "@all-libaudit-common//:data.tar.xz", + "@all-libdrm-common//:data.tar.xz", + "@all-libsemanage-common//:data.tar.xz", + "@all-qemu-system-data//:data.tar.xz", + "@all-readline-common//:data.tar.xz", + "@arm64-cdebconf//:data.tar.xz", + "@arm64-dpkg//:data.tar.xz", + "@arm64-gcc-12-base//:data.tar.xz", + "@arm64-install-info//:data.tar.xz", + "@arm64-libaio1//:data.tar.xz", + "@arm64-libasound2//:data.tar.xz", + "@arm64-libaudit1//:data.tar.xz", + "@arm64-libblkid1//:data.tar.xz", + "@arm64-libbpf1//:data.tar.xz", + "@arm64-libbrlapi0.8//:data.tar.xz", + "@arm64-libbsd0//:data.tar.xz", + "@arm64-libbz2-1.0//:data.tar.xz", + "@arm64-libcacard0//:data.tar.xz", + "@arm64-libcap-ng0//:data.tar.xz", + "@arm64-libcap2-bin//:data.tar.xz", + "@arm64-libcap2//:data.tar.xz", + "@arm64-libcapstone4//:data.tar.xz", + "@arm64-libcrypt1//:data.tar.xz", + "@arm64-libdaxctl1//:data.tar.xz", + "@arm64-libdb5.3//:data.tar.xz", + "@arm64-libdebian-installer4//:data.tar.xz", + "@arm64-libdrm2//:data.tar.xz", + "@arm64-libdw1//:data.tar.xz", + "@arm64-libelf1//:data.tar.xz", + "@arm64-libelogind0//:data.tar.xz", + "@arm64-libepoxy0//:data.tar.xz", + "@arm64-libexecs0//:data.tar.xz", + "@arm64-libexpat1//:data.tar.xz", + "@arm64-libfdt1//:data.tar.xz", + "@arm64-libffi8//:data.tar.xz", + "@arm64-libfuse3-3//:data.tar.xz", + "@arm64-libgbm1//:data.tar.xz", + "@arm64-libgcc-s1//:data.tar.xz", + "@arm64-libgcrypt20//:data.tar.xz", + "@arm64-libglib2.0-0//:data.tar.xz", + "@arm64-libgmp10//:data.tar.xz", + "@arm64-libgnutls30//:data.tar.xz", + "@arm64-libgpg-error0//:data.tar.xz", + "@arm64-libgstreamer-plugins-base1.0-0//:data.tar.xz", + "@arm64-libgstreamer1.0-0//:data.tar.xz", + "@arm64-libhogweed6//:data.tar.xz", + "@arm64-libibverbs1//:data.tar.xz", + "@arm64-libidn2-0//:data.tar.xz", + "@arm64-libjpeg62-turbo//:data.tar.xz", + "@arm64-libkmod2//:data.tar.xz", + "@arm64-liblz4-1//:data.tar.xz", + "@arm64-liblzma5//:data.tar.xz", + "@arm64-libmd0//:data.tar.xz", + "@arm64-libmount1//:data.tar.xz", + "@arm64-libncursesw6//:data.tar.xz", + "@arm64-libndctl6//:data.tar.xz", + "@arm64-libnettle8//:data.tar.xz", + "@arm64-libnewt0.52//:data.tar.xz", + "@arm64-libnl-3-200//:data.tar.xz", + "@arm64-libnl-route-3-200//:data.tar.xz", + "@arm64-libnspr4//:data.tar.xz", + "@arm64-libnss3//:data.tar.xz", + "@arm64-libnuma1//:data.tar.xz", + "@arm64-libopus0//:data.tar.xz", + "@arm64-liborc-0.4-0//:data.tar.xz", + "@arm64-libp11-kit0//:data.tar.xz", + "@arm64-libpam-modules//:data.tar.xz", + "@arm64-libpam0g//:data.tar.xz", + "@arm64-libpcre2-8-0//:data.tar.xz", + "@arm64-libpcsclite1//:data.tar.xz", + "@arm64-libpixman-1-0//:data.tar.xz", + "@arm64-libpmem1//:data.tar.xz", + "@arm64-libpng16-16//:data.tar.xz", + "@arm64-librdmacm1//:data.tar.xz", + "@arm64-libreadline8//:data.tar.xz", + "@arm64-libsasl2-2//:data.tar.xz", + "@arm64-libsasl2-modules-db//:data.tar.xz", + "@arm64-libseccomp2//:data.tar.xz", + "@arm64-libselinux1//:data.tar.xz", + "@arm64-libsemanage2//:data.tar.xz", + "@arm64-libsepol2//:data.tar.xz", + "@arm64-libslang2//:data.tar.xz", + "@arm64-libslirp0//:data.tar.xz", + "@arm64-libsndio7.0//:data.tar.xz", + "@arm64-libspice-server1//:data.tar.xz", + "@arm64-libsqlite3-0//:data.tar.xz", + "@arm64-libssl3//:data.tar.xz", + "@arm64-libstdcxx6//:data.tar.xz", + "@arm64-libsystemd0//:data.tar.xz", + "@arm64-libtasn1-6//:data.tar.xz", + "@arm64-libtextwrap1//:data.tar.xz", + "@arm64-libtinfo6//:data.tar.xz", + "@arm64-libudev1//:data.tar.xz", + "@arm64-libunistring2//:data.tar.xz", + "@arm64-libunwind8//:data.tar.xz", + "@arm64-liburing2//:data.tar.xz", + "@arm64-libusb-1.0-0//:data.tar.xz", + "@arm64-libusbredirparser1//:data.tar.xz", + "@arm64-libuuid1//:data.tar.xz", + "@arm64-libvdeplug2//:data.tar.xz", + "@arm64-libwayland-server0//:data.tar.xz", + "@arm64-libzstd1//:data.tar.xz", + "@arm64-passwd//:data.tar.xz", + "@arm64-qemu-system-arm//:data.tar.xz", + "@arm64-qemu-system-common//:data.tar.xz", + "@arm64-zlib1g//:data.tar.xz", + ], + compress = "@rules_zstd//zstd/toolchain/zstd:resolved", + duplicate = "skip", +) + +tar_unpack( + name = "unpack", + src = ":data.tar.zst", +) + +debian_launcher( + name = "qemu-system-arm", + src = ":unpack", + visibility = ["//:__subpackages__"], +) + +debian_launcher( + name = "qemu-system-aarch64", + src = ":unpack", + visibility = ["//:__subpackages__"], +) diff --git a/debian/arm64/qemu-system-x86/BUILD.bazel b/debian/arm64/qemu-system-x86/BUILD.bazel new file mode 100644 index 00000000..d464f495 --- /dev/null +++ b/debian/arm64/qemu-system-x86/BUILD.bazel @@ -0,0 +1,142 @@ +load("//debian/launcher:defs.bzl", "debian_launcher") +load("@rules_tar//tar/concatenate:defs.bzl", "tar_concatenate") +load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") + +tar_concatenate( + name = "data.tar.zst", + srcs = [ + "//debian/arm64/libc6:data.tar.zst", + "//debian/arm64/tar:data.tar.zst", + "@all-adduser//:data.tar.xz", + "@all-debconf//:data.tar.xz", + "@all-ipxe-qemu//:data.tar.xz", + "@all-iso-codes//:data.tar.xz", + "@all-libasound2-data//:data.tar.xz", + "@all-libaudit-common//:data.tar.xz", + "@all-libdrm-common//:data.tar.xz", + "@all-libsemanage-common//:data.tar.xz", + "@all-qemu-system-data//:data.tar.xz", + "@all-readline-common//:data.tar.xz", + "@all-seabios//:data.tar.xz", + "@arm64-cdebconf//:data.tar.xz", + "@arm64-dpkg//:data.tar.xz", + "@arm64-gcc-12-base//:data.tar.xz", + "@arm64-install-info//:data.tar.xz", + "@arm64-libaio1//:data.tar.xz", + "@arm64-libasound2//:data.tar.xz", + "@arm64-libaudit1//:data.tar.xz", + "@arm64-libblkid1//:data.tar.xz", + "@arm64-libbpf1//:data.tar.xz", + "@arm64-libbrlapi0.8//:data.tar.xz", + "@arm64-libbsd0//:data.tar.xz", + "@arm64-libbz2-1.0//:data.tar.xz", + "@arm64-libcacard0//:data.tar.xz", + "@arm64-libcap-ng0//:data.tar.xz", + "@arm64-libcap2-bin//:data.tar.xz", + "@arm64-libcap2//:data.tar.xz", + "@arm64-libcapstone4//:data.tar.xz", + "@arm64-libcrypt1//:data.tar.xz", + "@arm64-libdaxctl1//:data.tar.xz", + "@arm64-libdb5.3//:data.tar.xz", + "@arm64-libdebian-installer4//:data.tar.xz", + "@arm64-libdrm2//:data.tar.xz", + "@arm64-libdw1//:data.tar.xz", + "@arm64-libelf1//:data.tar.xz", + "@arm64-libelogind0//:data.tar.xz", + "@arm64-libepoxy0//:data.tar.xz", + "@arm64-libexecs0//:data.tar.xz", + "@arm64-libexpat1//:data.tar.xz", + "@arm64-libfdt1//:data.tar.xz", + "@arm64-libffi8//:data.tar.xz", + "@arm64-libfuse3-3//:data.tar.xz", + "@arm64-libgbm1//:data.tar.xz", + "@arm64-libgcc-s1//:data.tar.xz", + "@arm64-libgcrypt20//:data.tar.xz", + "@arm64-libglib2.0-0//:data.tar.xz", + "@arm64-libgmp10//:data.tar.xz", + "@arm64-libgnutls30//:data.tar.xz", + "@arm64-libgpg-error0//:data.tar.xz", + "@arm64-libgstreamer-plugins-base1.0-0//:data.tar.xz", + "@arm64-libgstreamer1.0-0//:data.tar.xz", + "@arm64-libhogweed6//:data.tar.xz", + "@arm64-libibverbs1//:data.tar.xz", + "@arm64-libidn2-0//:data.tar.xz", + "@arm64-libjpeg62-turbo//:data.tar.xz", + "@arm64-libkmod2//:data.tar.xz", + "@arm64-liblz4-1//:data.tar.xz", + "@arm64-liblzma5//:data.tar.xz", + "@arm64-libmd0//:data.tar.xz", + "@arm64-libmount1//:data.tar.xz", + "@arm64-libncursesw6//:data.tar.xz", + "@arm64-libndctl6//:data.tar.xz", + "@arm64-libnettle8//:data.tar.xz", + "@arm64-libnewt0.52//:data.tar.xz", + "@arm64-libnl-3-200//:data.tar.xz", + "@arm64-libnl-route-3-200//:data.tar.xz", + "@arm64-libnspr4//:data.tar.xz", + "@arm64-libnss3//:data.tar.xz", + "@arm64-libnuma1//:data.tar.xz", + "@arm64-libopus0//:data.tar.xz", + "@arm64-liborc-0.4-0//:data.tar.xz", + "@arm64-libp11-kit0//:data.tar.xz", + "@arm64-libpam-modules//:data.tar.xz", + "@arm64-libpam0g//:data.tar.xz", + "@arm64-libpcre2-8-0//:data.tar.xz", + "@arm64-libpcsclite1//:data.tar.xz", + "@arm64-libpixman-1-0//:data.tar.xz", + "@arm64-libpmem1//:data.tar.xz", + "@arm64-libpng16-16//:data.tar.xz", + "@arm64-librdmacm1//:data.tar.xz", + "@arm64-libreadline8//:data.tar.xz", + "@arm64-libsasl2-2//:data.tar.xz", + "@arm64-libsasl2-modules-db//:data.tar.xz", + "@arm64-libseccomp2//:data.tar.xz", + "@arm64-libselinux1//:data.tar.xz", + "@arm64-libsemanage2//:data.tar.xz", + "@arm64-libsepol2//:data.tar.xz", + "@arm64-libslang2//:data.tar.xz", + "@arm64-libslirp0//:data.tar.xz", + "@arm64-libsndio7.0//:data.tar.xz", + "@arm64-libspice-server1//:data.tar.xz", + "@arm64-libsqlite3-0//:data.tar.xz", + "@arm64-libssl3//:data.tar.xz", + "@arm64-libstdcxx6//:data.tar.xz", + "@arm64-libsystemd0//:data.tar.xz", + "@arm64-libtasn1-6//:data.tar.xz", + "@arm64-libtextwrap1//:data.tar.xz", + "@arm64-libtinfo6//:data.tar.xz", + "@arm64-libudev1//:data.tar.xz", + "@arm64-libunistring2//:data.tar.xz", + "@arm64-libunwind8//:data.tar.xz", + "@arm64-liburing2//:data.tar.xz", + "@arm64-libusb-1.0-0//:data.tar.xz", + "@arm64-libusbredirparser1//:data.tar.xz", + "@arm64-libuuid1//:data.tar.xz", + "@arm64-libvdeplug2//:data.tar.xz", + "@arm64-libwayland-server0//:data.tar.xz", + "@arm64-libzstd1//:data.tar.xz", + "@arm64-passwd//:data.tar.xz", + "@arm64-qemu-system-common//:data.tar.xz", + "@arm64-qemu-system-x86//:data.tar.xz", + "@arm64-zlib1g//:data.tar.xz", + ], + compress = "@rules_zstd//zstd/toolchain/zstd:resolved", + duplicate = "skip", +) + +tar_unpack( + name = "unpack", + src = ":data.tar.zst", +) + +debian_launcher( + name = "qemu-system-i386", + src = ":unpack", + visibility = ["//:__subpackages__"], +) + +debian_launcher( + name = "qemu-system-x86_64", + src = ":unpack", + visibility = ["//:__subpackages__"], +) diff --git a/debian/arm64/tar/BUILD.bazel b/debian/arm64/tar/BUILD.bazel new file mode 100644 index 00000000..66ffe37f --- /dev/null +++ b/debian/arm64/tar/BUILD.bazel @@ -0,0 +1,13 @@ +load("@rules_tar//tar/filter:defs.bzl", "tar_filter") + +# Remove dangling symlink +tar_filter( + name = "data.tar.zst", + src = "@arm64-tar//:data.tar.xz", + compress = "@rules_zstd//zstd/toolchain/zstd:resolved", + patterns = [ + "!./etc/rmt", + "**/*", + ], + visibility = ["//debian/arm64:__subpackages__"], +) diff --git a/debian/launcher/BUILD.bazel b/debian/launcher/BUILD.bazel new file mode 100644 index 00000000..dfd1c9fb --- /dev/null +++ b/debian/launcher/BUILD.bazel @@ -0,0 +1,6 @@ +alias( + name = "template", + actual = select({ + "//conditions:default": ":posix.tmpl.sh", + }), +) diff --git a/debian/launcher/defs.bzl b/debian/launcher/defs.bzl new file mode 100644 index 00000000..59f626e2 --- /dev/null +++ b/debian/launcher/defs.bzl @@ -0,0 +1,5 @@ +load(":rule.bzl", _launcher = "launcher") + +visibility("//debian/...") + +debian_launcher = _launcher diff --git a/debian/launcher/elf/interpreter/BUILD.bazel b/debian/launcher/elf/interpreter/BUILD.bazel new file mode 100644 index 00000000..1d56679a --- /dev/null +++ b/debian/launcher/elf/interpreter/BUILD.bazel @@ -0,0 +1,23 @@ +load(":defs.bzl", "debian_launcher_elf_interpreter") + +debian_launcher_elf_interpreter( + name = "amd64", + path = "lib/x86_64-linux-gnu/ld-linux-x86-64.so.2", +) + +debian_launcher_elf_interpreter( + name = "arm64", + path = "lib/aarch64-linux-gnu/ld-linux-aarch64.so.1", +) + +alias( + name = "interpreter", + actual = select( + { + "@platforms//cpu:x86_64": ":amd64", + "@platforms//cpu:aarch64": ":arm64", + }, + no_match_error = "No Debian ELF interpreter path for platform.", + ), + visibility = ["//debian:__subpackages__"], +) diff --git a/debian/launcher/elf/interpreter/Info.bzl b/debian/launcher/elf/interpreter/Info.bzl new file mode 100644 index 00000000..206815f7 --- /dev/null +++ b/debian/launcher/elf/interpreter/Info.bzl @@ -0,0 +1,29 @@ +load("@bazel_skylib//lib:types.bzl", "types") + +visibility("//...") + +def init(path): + """ + Initializes a `DebianLauncherELFInterpreterInfo` provider. + + Args: + path: The ELF interpreter path. + """ + if not types.is_string(path): + fail("`DebianLauncherELFInterpreterInfo.path` must be a str: {}".format(path)) + + if path.startswith("/"): + fail("`DebianLauncherELFInterpreterInfo.path` must not be absolute: {}".format(path)) + + return {"path": path} + +DebianLauncherELFInterpreterInfo, debian_launcher_elf_interpreter_info = provider( + "ELF interpreter for the Debian launcher.", + fields = ["path"], + init = init, +) + +InterpreterInfo = DebianLauncherELFInterpreterInfo +interpreter_info = debian_launcher_elf_interpreter_info +Info = DebianLauncherELFInterpreterInfo +info = debian_launcher_elf_interpreter_info diff --git a/debian/launcher/elf/interpreter/defs.bzl b/debian/launcher/elf/interpreter/defs.bzl new file mode 100644 index 00000000..e0256668 --- /dev/null +++ b/debian/launcher/elf/interpreter/defs.bzl @@ -0,0 +1,7 @@ +load("rule.bzl", _interpreter = "interpreter") +load("Info.bzl", _Info = "Info") + +visibility("//debian/...") + +debian_launcher_elf_interpreter = _interpreter +DebianLauncherELFInterpreterInfo = _Info diff --git a/debian/launcher/elf/interpreter/rule.bzl b/debian/launcher/elf/interpreter/rule.bzl new file mode 100644 index 00000000..ad6347d2 --- /dev/null +++ b/debian/launcher/elf/interpreter/rule.bzl @@ -0,0 +1,24 @@ +load("Info.bzl", "DebianLauncherELFInterpreterInfo") + +visibility("//...") + +DOC = "" + +ATTRS = { + "path": attr.string( + doc = "The ELF interpreter path.", + mandatory = True, + ), +} + +def implementation(ctx): + return DebianLauncherELFInterpreterInfo(ctx.attr.path) + +debian_launcher_elf_interpreter = rule( + doc = DOC, + attrs = ATTRS, + implementation = implementation, + provides = [DebianLauncherELFInterpreterInfo], +) + +interpreter = debian_launcher_elf_interpreter diff --git a/debian/launcher/library/path/BUILD.bazel b/debian/launcher/library/path/BUILD.bazel new file mode 100644 index 00000000..1053821d --- /dev/null +++ b/debian/launcher/library/path/BUILD.bazel @@ -0,0 +1,29 @@ +load(":defs.bzl", "debian_launcher_library_path") + +debian_launcher_library_path( + name = "amd64", + paths = [ + "${ORIGIN}/../lib/x86_64-linux-gnu", + "${ORIGIN}/../../lib/x86_64-linux-gnu", + ], +) + +debian_launcher_library_path( + name = "arm64", + paths = [ + "${ORIGIN}/../lib/aarch64-linux-gnu", + "${ORIGIN}/../../lib/aarch64-linux-gnu", + ], +) + +alias( + name = "path", + actual = select( + { + "@platforms//cpu:x86_64": ":amd64", + "@platforms//cpu:aarch64": ":arm64", + }, + no_match_error = "No Debian launcher library path for platform.", + ), + visibility = ["//debian:__subpackages__"], +) diff --git a/debian/launcher/library/path/Info.bzl b/debian/launcher/library/path/Info.bzl new file mode 100644 index 00000000..c58577a7 --- /dev/null +++ b/debian/launcher/library/path/Info.bzl @@ -0,0 +1,29 @@ +load("@bazel_skylib//lib:types.bzl", "types") + +visibility("//...") + +def init(paths): + """ + Initializes a `DebianLauncherLibraryPathInfo` provider. + + Args: + paths: The library load paths. Should use `${ORIGIN}` + """ + if not types.is_list(paths): + fail("`DebianLauncherLibraryPathInfo.paths` must be a list: {}".format(paths)) + + if not all([types.is_string(s) for s in paths]): + fail("`DebianLauncherLibraryPathInfo.paths` must be a list of strings: {}".format(paths)) + + return {"paths": paths} + +DebianLauncherLibraryPathInfo, debian_launcher_library_path_info = provider( + "Library load paths for the Debian launcher.", + fields = ["paths"], + init = init, +) + +PathInfo = DebianLauncherLibraryPathInfo +path_info = debian_launcher_library_path_info +Info = DebianLauncherLibraryPathInfo +info = debian_launcher_library_path_info diff --git a/debian/launcher/library/path/defs.bzl b/debian/launcher/library/path/defs.bzl new file mode 100644 index 00000000..a6686513 --- /dev/null +++ b/debian/launcher/library/path/defs.bzl @@ -0,0 +1,7 @@ +load("rule.bzl", _path = "path") +load("Info.bzl", _Info = "Info") + +visibility("//debian/...") + +debian_launcher_library_path = _path +DebianLauncherLibraryPathInfo = _Info diff --git a/debian/launcher/library/path/rule.bzl b/debian/launcher/library/path/rule.bzl new file mode 100644 index 00000000..3d094926 --- /dev/null +++ b/debian/launcher/library/path/rule.bzl @@ -0,0 +1,25 @@ +load("Info.bzl", "DebianLauncherLibraryPathInfo") + +visibility("//...") + +DOC = "" + +ATTRS = { + "paths": attr.string_list( + doc = "The library load paths to provide to the launcher.", + mandatory = True, + allow_empty = False, + ), +} + +def implementation(ctx): + return DebianLauncherLibraryPathInfo(ctx.attr.paths) + +debian_launcher_library_path = rule( + doc = DOC, + attrs = ATTRS, + implementation = implementation, + provides = [DebianLauncherLibraryPathInfo], +) + +path = debian_launcher_library_path diff --git a/debian/launcher/posix.tmpl.sh b/debian/launcher/posix.tmpl.sh new file mode 100644 index 00000000..815a1dfb --- /dev/null +++ b/debian/launcher/posix.tmpl.sh @@ -0,0 +1,73 @@ +#! /usr/bin/env sh + +# Strict shell +set -o errexit +set -o nounset + +# Substitutions +ROOT="{{root}}" +BINARY="{{binary}}" +LLP="{{llp}}" +INTERPRETER="{{interpreter}}" +readonly ROOT BINARY LLP INTERPRETER + +# Check the root is available +if ! test -d "${ROOT}"; then + printf >&2 "Root is not a directory: %s\n" "${ROOT}" + exit 1 +fi + +# Check the binary is executable +if ! test -e "${BINARY}"; then + printf >&2 "Binary does not exist: %s\n" "${BINARY}" + exit 1 +elif ! test -f "${BINARY}"; then + printf >&2 "Binary not a file: %s\n" "${BINARY}" + exit 1 +elif ! test -x "${BINARY}"; then + printf >&2 "Binary is not executable: %s\n" "${BINARY}" + exit 1 +fi + +# Check the interpreter is executable +if ! test -e "${INTERPRETER}"; then + printf >&2 "ELF interpreter does not exist: %s\n" "${INTERPRETER}" + exit 1 +elif ! test -f "${INTERPRETER}"; then + printf >&2 "ELF interpreter is not a file: %s\n" "${INTERPRETER}" + exit 1 +elif ! test -x "${INTERPRETER}"; then + printf >&2 "ELF interpreter is not executable: %s\n" "${INTERPRETER}" + exit 1 +fi + +# FIXME: figure out a robust solution for launching the binary +# +# Launching with the ELF interpreter side-steps the fact that each +# Debian binary will have `/lib/ld-linux-${ARCH}.so.{1,2}` as the +# `PT_INTERP` ELF entry. +# +# Any binary that is launched will end up using the host ELF interpreter +# and crash with a `SIGABORT` (or worse). +# +# The `PT_INTERP` should be changed with `patchelf` to point at the correct +# ELF interpreter. However, that cannot be done ahead of time because the +# `${ROOT}` will be mounted at different sandbox execution roots. Linux +# does not support `${ORIGIN}` in the `PT_INTERP` as Solaris does. +# +# As the `${ROOT}` is mounted read-only, we cannot patch on the fly. +# +# Another option is to change into the `${ROOT}` with a fake-chroot but +# that would affect anything else running within the action sandbox. +# +# The _ideal_ solution would be a `fake-chroot` that runs _just_ the +# binary underneath: +# +# fake-chroot --root="${ROOT}" "${RELATIVE_BINARY_PATH}" "${@}" +# +# That would not affect anything else running in the sandbox and would +# solve the interpreter issue *and* solve any configuration file lookup +# issues where the absolute root path has been baked into the executable. + +# Run the binary +LD_LIBRARY_PATH="${LLP}" "${INTERPRETER}" "${BINARY}" "${@}" diff --git a/debian/launcher/rule.bzl b/debian/launcher/rule.bzl new file mode 100644 index 00000000..fdc2a436 --- /dev/null +++ b/debian/launcher/rule.bzl @@ -0,0 +1,94 @@ +load("//debian/launcher/library/path:defs.bzl", "DebianLauncherLibraryPathInfo") +load("//debian/launcher/elf/interpreter:defs.bzl", "DebianLauncherELFInterpreterInfo") + +visibility("//...") + +DOC = "" + +ATTRS = { + "src": attr.label( + doc = "The unpacked Debian archives.", + allow_single_file = True, + mandatory = True, + ), + "executable": attr.label( + doc = "The relative path to the executable within the unpacked Debian packages.", + ), + "data": attr.label_list( + doc = "Runfile data to provide to the launcher.", + allow_files = True, + ), + "env": attr.string_dict( + doc = "Environment variables to provide to the launcher. Supports Make function expansions.", + ), + "_llp": attr.label( + doc = "The library load path.", + providers = [DebianLauncherLibraryPathInfo], + default = "//debian/launcher/library/path", + ), + "_interpreter": attr.label( + doc = "The library interpreter path.", + providers = [DebianLauncherELFInterpreterInfo], + default = "//debian/launcher/elf/interpreter", + ), + "_template": attr.label( + doc = "The launcher script.", + allow_single_file = [".sh"], + default = ":template", + ), +} + +def implementation(ctx): + if not ctx.file.src.is_directory: + fail("`src` must be a directory") + + root = ctx.file.src.short_path + relative = ctx.attr.executable or "usr/bin/{}".format(ctx.label.name) + relative = relative.removeprefix("/") + + def _escape(p): + split = p.split("\\$") + escaped = [s.replace("$", "\\$") for s in split] + joined = "\\$".join(escaped) + if not joined.startswith(("/", "\\$")): + return "{}/{}".format(root, joined) + return joined + + paths = ctx.attr._llp[DebianLauncherLibraryPathInfo].paths + paths = [_escape(p) for p in paths] + llp = ":".join(paths) + + interpreter = ctx.attr._interpreter[DebianLauncherELFInterpreterInfo].path + + rendered = ctx.actions.declare_file("{}.{}".format(ctx.label.name, ctx.file._template.extension)) + substitutions = ctx.actions.template_dict() + substitutions.add("{{root}}", root) + substitutions.add("{{binary}}", "{}/{}".format(root, relative)) + substitutions.add("{{interpreter}}", "{}/{}".format(root, interpreter)) + substitutions.add("{{llp}}", llp) + ctx.actions.expand_template( + output = rendered, + template = ctx.file._template, + computed_substitutions = substitutions, + is_executable = True, + ) + + data = depset(transitive = [d.files for d in ctx.attr.data]) + runfiles = ctx.runfiles([ctx.file.src], transitive_files = data) + runfiles = runfiles.merge(ctx.attr.src.default_runfiles) + runfiles = runfiles.merge_all([d.default_runfiles for d in ctx.attr.data]) + + env = {k: ctx.expand_location(v, targets = ctx.attr.data) for k, v in ctx.attr.env.items()} + return [ + DefaultInfo(executable = rendered, runfiles = runfiles), + RunEnvironmentInfo(env), + ] + +debian_launcher = rule( + doc = DOC, + attrs = ATTRS, + implementation = implementation, + executable = True, +) + +launcher = debian_launcher diff --git a/e2e/.bazelrc b/e2e/.bazelrc index 3c92822a..1eb348b6 100644 --- a/e2e/.bazelrc +++ b/e2e/.bazelrc @@ -22,5 +22,8 @@ common --attempt_to_print_relative_paths # Enable hermetic `rules_python` common --@rules_labgrid//python:bootstrap=script +# Enable built Zstandard toolchain +common --extra_toolchains=@rules_zstd//zstd/toolchain/zstd:built + # User-specific .bazelrc try-import %workspace%/.bazelrc.user diff --git a/e2e/MODULE.bazel b/e2e/MODULE.bazel index cde04f73..0473e352 100644 --- a/e2e/MODULE.bazel +++ b/e2e/MODULE.bazel @@ -9,6 +9,7 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1") bazel_dep(name = "toolchain_utils", version = "1.0.0-beta.14") bazel_dep(name = "rules_python", version = "0.33.2") bazel_dep(name = "rules_diff", version = "1.0.0-beta.3") +bazel_dep(name = "rules_zstd", version = "1.0.0-beta.3") bazel_dep(name = "ape", version = "1.0.0-beta.12") bazel_dep(name = "rules_labgrid") local_path_override( diff --git a/e2e/MODULE.bazel.lock b/e2e/MODULE.bazel.lock index 18075ffa..c143b3bc 100644 --- a/e2e/MODULE.bazel.lock +++ b/e2e/MODULE.bazel.lock @@ -8,13 +8,20 @@ "https://bcr.bazel.build/modules/ape/1.0.0-beta.12/MODULE.bazel": "e75be27b37a2f7cf83dbeb497aeac93f8da9aa55fc2b35a9a1cb46db9b7f8885", "https://bcr.bazel.build/modules/ape/1.0.0-beta.12/source.json": "4b9e00b30d41ff209d7deddba1fbb4538cdfc7a54b4e07e607134ccc147e6a29", "https://bcr.bazel.build/modules/ape/1.0.0-beta.6/MODULE.bazel": "247bcdbc358206c37ce8bf1c850115002c6560570d96f9ac8a79dd810b18ea85", + "https://bcr.bazel.build/modules/ape/1.0.0-beta.7/MODULE.bazel": "cb8163d01ede65cb41bf1449d6e5091e6da8d927cf700103d9a0c48517f3c1bf", "https://bcr.bazel.build/modules/apple_support/1.5.0/MODULE.bazel": "50341a62efbc483e8a2a6aec30994a58749bd7b885e18dd96aa8c33031e558ef", "https://bcr.bazel.build/modules/apple_support/1.5.0/source.json": "eb98a7627c0bc486b57f598ad8da50f6625d974c8f723e9ea71bd39f709c9862", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.0/MODULE.bazel": "2ee4360a135da51ec06ca49cc4310f5a4c2839118f38ea8417f7f2db56967285", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.7.0/source.json": "c34612bffaaccfd7b86667be4cfdd8532b5e197939224be8d53398e5851ea24a", + "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", "https://bcr.bazel.build/modules/bazel_features/1.13.0/MODULE.bazel": "c14c33c7c3c730612bdbe14ebbb5e61936b6f11322ea95a6e91cd1ba962f94df", "https://bcr.bazel.build/modules/bazel_features/1.13.0/source.json": "b01f6aaaf93527ff4267421ef416debbd89b3166b70af5c89400c6a95a89c133", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", @@ -26,6 +33,12 @@ "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", "https://bcr.bazel.build/modules/download_utils/1.0.0-beta.2/MODULE.bazel": "bced1551849a5d1ca00b985c0d267ab690af840f04c685f2c62f40e92f66fac0", "https://bcr.bazel.build/modules/download_utils/1.0.0-beta.2/source.json": "0ab7ebbc57f39a7fe96190e01fe9773482bc4e3d465e9cd9b239bb44ad57791d", + "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8", + "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350", + "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a", + "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0", + "https://bcr.bazel.build/modules/gazelle/0.38.0/MODULE.bazel": "51bb3ca009bc9320492894aece6ba5f50aae68a39fff2567844b77fc12e2d0a5", + "https://bcr.bazel.build/modules/gazelle/0.38.0/source.json": "7fedf9b531bcbbe90b009e4d3aef478a2defb8b8a6e31e931445231e425fc37c", "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", "https://bcr.bazel.build/modules/googletest/1.11.0/source.json": "c73d9ef4268c91bd0c1cd88f1f9dfa08e814b1dbe89b5f594a9f08ba0244d206", "https://bcr.bazel.build/modules/hermetic_cc_toolchain/3.1.0/MODULE.bazel": "ea4b3a25a9417a7db57a8a2f9ebdee91d679823c6274b482b817ed128d81c594", @@ -41,15 +54,30 @@ "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", "https://bcr.bazel.build/modules/protobuf/21.7/source.json": "bbe500720421e582ff2d18b0802464205138c06056f443184de39fbb8187b09b", "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573", "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/rules_bzip2/1.0.0-beta.1/MODULE.bazel": "d45e0cac04248d32babf99b96cdb7c82aed6f36657b31647d2e40d45ed262b85", + "https://bcr.bazel.build/modules/rules_bzip2/1.0.0-beta.1/source.json": "6b6ae325f3e3414d54f1c974ee044d6f49d23ba326b9d702ba7021c9cbda7ce5", "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", "https://bcr.bazel.build/modules/rules_cc/0.0.9/source.json": "1f1ba6fea244b616de4a554a0f4983c91a9301640c8fe0dd1d410254115c8430", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.1/MODULE.bazel": "159a59bd049c72ade6f0b617cc06c78ff72ef83dd8e331a038739561e4416e0e", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.6/MODULE.bazel": "d767c0dce8cca10f507ff4df59b6be1023b155e9aa92dc075f564a2ed3713615", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.0-beta.6/source.json": "5970522e4551e83d36886874b2ff7fc6718884670b6961bcf298aaaa608251c5", "https://bcr.bazel.build/modules/rules_diff/1.0.0-beta.3/MODULE.bazel": "4bcae1c5e3c7fa1169f9940f548f7b8b3316944b4367771b168f925b7a9ee74e", "https://bcr.bazel.build/modules/rules_diff/1.0.0-beta.3/source.json": "b5db3fcd469061f2051188da97345162f294fc59e7fdf477beb306dbe950566a", + "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8", + "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270", + "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd", + "https://bcr.bazel.build/modules/rules_go/0.47.0/MODULE.bazel": "e425890d2a4d668abc0f59d8388b70bf63ad025edec76a385c35d85882519417", + "https://bcr.bazel.build/modules/rules_go/0.49.0/MODULE.bazel": "61cfc1ba17123356d1b12b6c50f6e0162b2cc7fd6f51753c12471e973a0f72a5", + "https://bcr.bazel.build/modules/rules_go/0.49.0/source.json": "ab2261ea5e29d29a41c8e5c67896f946ab7855b786d28fe25d74987b84e5e85d", + "https://bcr.bazel.build/modules/rules_gzip/1.0.0-beta.1/MODULE.bazel": "4bc3bb009698531db230bb85a290355e7805d0cf7b5e8b60f62ee8ac65af0405", + "https://bcr.bazel.build/modules/rules_gzip/1.0.0-beta.1/source.json": "cd92050d1eb80a80f1bac8e94ec7d99ffc58e2e6ae2cd18bdcf8efd3e44a2b8f", "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", "https://bcr.bazel.build/modules/rules_java/7.6.1/source.json": "8f3f3076554e1558e8e468b2232991c510ecbcbed9e6f8c06ac31c93bcf38362", "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", @@ -62,14 +90,22 @@ "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", - "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/source.json": "8d8448e71706df7450ced227ca6b3812407ff5e2ccad74a43a9fbe79c84e34e0", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/source.json": "de77e10ff0ab16acbf54e6b46eecd37a99c5b290468ea1aee6e95eb1affdaed7", "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", "https://bcr.bazel.build/modules/rules_python/0.33.2/source.json": "e539592cd3aae4492032cecea510e46ca16eeb972271560b922cae9893944e2f", "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_tar/1.0.0-beta.3/MODULE.bazel": "not found", + "https://bcr.bazel.build/modules/rules_xz/1.0.0-beta.1/MODULE.bazel": "0934987548deaa03cca973e6e700d88daadb736d816af5907e93633747c7a9c5", + "https://bcr.bazel.build/modules/rules_xz/1.0.0-beta.1/source.json": "155e565725363efca12521ef8c30551978c48e6f3b4640fc6796c3dbcae73d81", + "https://bcr.bazel.build/modules/rules_zstd/1.0.0-beta.1/MODULE.bazel": "979e286e40ec27423d4c93ff15e3e17b212e8b83b07157d3c61d1f265c4fa16a", + "https://bcr.bazel.build/modules/rules_zstd/1.0.0-beta.3/MODULE.bazel": "not found", "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", - "https://bcr.bazel.build/modules/stardoc/0.5.1/source.json": "a96f95e02123320aa015b956f29c00cb818fa891ef823d55148e1a362caacf29", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.4/source.json": "a961f58a71e735aa9dcb2d79b288e06b0a2d860ba730302c8f11be411b76631e", + "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.12/MODULE.bazel": "947cf935fa609c91b05bd8c8c1be38b9e10b7bc8949cf3092ee416ed30995078", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.14/MODULE.bazel": "not found", "https://bcr.bazel.build/modules/toolchain_utils/1.0.0-beta.9/MODULE.bazel": "9a8edfa6905229b899225489cbd6db36f073d9455c77238bd6ae6c52da5256d8", "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", @@ -78,7 +114,16 @@ "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", "https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72", "https://bcr.bazel.build/modules/zlib/1.3/source.json": "b6b43d0737af846022636e6e255fd4a96fee0d34f08f3830e6e0bac51465c37c", + "https://bcr.bazel.build/modules/zstd/1.5.6/MODULE.bazel": "471ebe7d3cdd8c6469390fcf623eb4779ff55fbee0a87f1dc57a1def468b96d4", + "https://bcr.bazel.build/modules/zstd/1.5.6/source.json": "02010c3333fc89b44fe861db049968decb6e688411f7f9d4f6791d74f9adfb51", + "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/bazel_registry.json": "not found", + "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/rules_tar/1.0.0-beta.3/MODULE.bazel": "64e7c453ec8915d362017208ca94fc204526032a4847ae4e3af94d2b368e30d3", + "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/rules_tar/1.0.0-beta.3/source.json": "c83aaf04a1abcd6cd88e3a017ff7041c4b059d984a9839e7ef327142904c1fb3", + "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/rules_zstd/1.0.0-beta.3/MODULE.bazel": "not found", "https://gitlab.arm.com/bazel/rules_tar/-/releases/v1.0.0-beta.3/downloads/modules/toolchain_utils/1.0.0-beta.14/MODULE.bazel": "not found", + "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/bazel_registry.json": "not found", + "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/rules_zstd/1.0.0-beta.3/MODULE.bazel": "a1386815d57563c8288e12bff7195e59f898f82aa39251291f088b4696ce265c", + "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/rules_zstd/1.0.0-beta.3/source.json": "03c5addba144297bf0905f6a4a807f1c8f829cdb7a6a355e1822a5711f70584a", "https://gitlab.arm.com/bazel/rules_zstd/-/releases/v1.0.0-beta.3/downloads/modules/toolchain_utils/1.0.0-beta.14/MODULE.bazel": "not found", "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.14/downloads/bazel_registry.json": "not found", "https://gitlab.arm.com/bazel/toolchain_utils/-/releases/v1.0.0-beta.14/downloads/modules/toolchain_utils/1.0.0-beta.14/MODULE.bazel": "ed32c210fdf14321f9adf35a298c87fcc2b6f10ca5afe250b9733f9f98e80d5e", @@ -114,6 +159,438 @@ ] } }, + "@@aspect_bazel_lib~//lib:extensions.bzl%toolchains": { + "general": { + "bzlTransitiveDigest": "mGLF7b1ofhbx/nwdvORAoZCZrI+aPzrKLPxbbv9iIFQ=", + "usagesDigest": "ryO4L8fmiBbPJNLDmOClk61bqNT5nJtVIN5vzfep7X8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "expand_template_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "copy_to_directory_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "jq_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "1.7" + } + }, + "copy_to_directory_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "expand_template_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "jq_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "1.7" + } + }, + "coreutils_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "0.0.23" + } + }, + "copy_to_directory_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "bsd_tar_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "copy_directory_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "coreutils_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "0.0.23" + } + }, + "coreutils_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "0.0.23" + } + }, + "yq_linux_s390x": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_s390x", + "version": "4.25.2" + } + }, + "yq": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_host_alias_repo", + "attributes": {} + }, + "expand_template_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "copy_directory_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "jq_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "1.7" + } + }, + "yq_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "4.25.2" + } + }, + "copy_directory_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "expand_template_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_toolchains_repo", + "attributes": { + "user_repository_name": "expand_template" + } + }, + "bats_assert": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "98ca3b685f8b8993e48ec057565e6e2abcc541034ed5b0e81f191505682037fd", + "urls": [ + "https://github.com/bats-core/bats-assert/archive/v2.1.0.tar.gz" + ], + "strip_prefix": "bats-assert-2.1.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"assert\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-assert\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "copy_to_directory_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "yq_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_toolchains_repo", + "attributes": { + "user_repository_name": "yq" + } + }, + "bats_support": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "7815237aafeb42ddcc1b8c698fc5808026d33317d8701d5ec2396e9634e2918f", + "urls": [ + "https://github.com/bats-core/bats-support/archive/v0.3.0.tar.gz" + ], + "strip_prefix": "bats-support-0.3.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"support\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-support\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "bsd_tar_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "jq": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_host_alias_repo", + "attributes": {} + }, + "expand_template_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "bsd_tar_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_to_directory_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "linux_amd64" + } + }, + "coreutils_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "0.0.23" + } + }, + "copy_directory_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_directory" + } + }, + "yq_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "4.25.2" + } + }, + "copy_to_directory_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "coreutils_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_toolchains_repo", + "attributes": { + "user_repository_name": "coreutils" + } + }, + "copy_directory_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "bats_file": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "9b69043241f3af1c2d251f89b4fcafa5df3f05e97b89db18d7c9bdf5731bb27a", + "urls": [ + "https://github.com/bats-core/bats-file/archive/v0.4.0.tar.gz" + ], + "strip_prefix": "bats-file-0.4.0", + "build_file_content": "load(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"file\",\n hardlink = \"on\",\n srcs = glob([\n \"src/**\",\n \"load.bash\",\n ]),\n out = \"bats-file\",\n visibility = [\"//visibility:public\"]\n)\n" + } + }, + "expand_template_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "linux_arm64" + } + }, + "jq_linux_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "1.7" + } + }, + "bsd_tar_darwin_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "bsdtar_binary_repo", + "attributes": { + "platform": "darwin_amd64" + } + }, + "bsd_tar_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:tar_toolchain.bzl", + "ruleClassName": "tar_toolchains_repo", + "attributes": { + "user_repository_name": "bsd_tar" + } + }, + "bats_toolchains": { + "bzlFile": "@@bazel_tools//tools/build_defs/repo:http.bzl", + "ruleClassName": "http_archive", + "attributes": { + "sha256": "a1a9f7875aa4b6a9480ca384d5865f1ccf1b0b1faead6b47aa47d79709a5c5fd", + "urls": [ + "https://github.com/bats-core/bats-core/archive/v1.10.0.tar.gz" + ], + "strip_prefix": "bats-core-1.10.0", + "build_file_content": "load(\"@local_config_platform//:constraints.bzl\", \"HOST_CONSTRAINTS\")\nload(\"@aspect_bazel_lib//lib/private:bats_toolchain.bzl\", \"bats_toolchain\")\nload(\"@aspect_bazel_lib//lib:copy_to_directory.bzl\", \"copy_to_directory\")\n\ncopy_to_directory(\n name = \"core\",\n hardlink = \"on\",\n srcs = glob([\n \"lib/**\",\n \"libexec/**\"\n ]) + [\"bin/bats\"],\n out = \"bats-core\",\n)\n\nbats_toolchain(\n name = \"toolchain\",\n core = \":core\",\n libraries = [\"@bats_support//:support\", \"@bats_assert//:assert\", \"@bats_file//:file\"]\n)\n\ntoolchain(\n name = \"bats_toolchain\",\n exec_compatible_with = HOST_CONSTRAINTS,\n toolchain = \":toolchain\",\n toolchain_type = \"@aspect_bazel_lib//lib:bats_toolchain_type\",\n)\n" + } + }, + "yq_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "4.25.2" + } + }, + "jq_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "1.7" + } + }, + "expand_template_freebsd_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:expand_template_toolchain.bzl", + "ruleClassName": "expand_template_platform_repo", + "attributes": { + "platform": "freebsd_amd64" + } + }, + "yq_linux_ppc64le": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_ppc64le", + "version": "4.25.2" + } + }, + "copy_to_directory_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_to_directory_toolchain.bzl", + "ruleClassName": "copy_to_directory_toolchains_repo", + "attributes": { + "user_repository_name": "copy_to_directory" + } + }, + "jq_toolchains": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:jq_toolchain.bzl", + "ruleClassName": "jq_toolchains_repo", + "attributes": { + "user_repository_name": "jq" + } + }, + "copy_directory_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "darwin_arm64" + } + }, + "copy_directory_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:copy_directory_toolchain.bzl", + "ruleClassName": "copy_directory_platform_repo", + "attributes": { + "platform": "windows_amd64" + } + }, + "yq_darwin_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "4.25.2" + } + }, + "coreutils_windows_amd64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:coreutils_toolchain.bzl", + "ruleClassName": "coreutils_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "0.0.23" + } + }, + "yq_linux_arm64": { + "bzlFile": "@@aspect_bazel_lib~//lib/private:yq_toolchain.bzl", + "ruleClassName": "yq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "4.25.2" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib~", + "aspect_bazel_lib", + "aspect_bazel_lib~" + ], + [ + "aspect_bazel_lib~", + "bazel_skylib", + "bazel_skylib~" + ], + [ + "aspect_bazel_lib~", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, "@@hermetic_cc_toolchain~//toolchain:ext.bzl%toolchains": { "general": { "bzlTransitiveDigest": "L0EDVXQ1bqh5CxjodeVieW+SjWsjwxFXYEKhUNgMY50=", diff --git a/labgrid/toolchain/qemu-system/BUILD.bazel b/labgrid/toolchain/qemu-system/BUILD.bazel new file mode 100644 index 00000000..354522b9 --- /dev/null +++ b/labgrid/toolchain/qemu-system/BUILD.bazel @@ -0,0 +1,48 @@ +load("@toolchain_utils//toolchain/info:defs.bzl", "toolchain_info") +load("@toolchain_utils//toolchain/test:defs.bzl", "toolchain_test") + +toolchain_type( + name = "type", + visibility = ["//visibility:public"], +) + +[ + ( + toolchain_info( + name = "{}-{}-qemu-system-{}".format(cpu, os, bin), + target = "//debian/{}/qemu-system-{}:qemu-system-{}".format(cpu, pkg, bin), + ), + toolchain( + name = "{}-{}-qemu-system-{}-toolchain".format(cpu, os, bin), + exec_compatible_with = [ + "@platforms//cpu:{}".format({ + "amd64": "x86_64", + "arm64": "aarch64", + }[cpu]), + "@platforms//os:{}".format(os), + ], + target_compatible_with = ["@platforms//cpu:{}".format(bin)], + toolchain = ":{}-{}-qemu-system-{}".format(cpu, os, bin), + toolchain_type = ":type", + ), + ) + for cpu, os, pkg, bin in ( + ("amd64", "linux", "x86", "x86_64"), + ("arm64", "linux", "x86", "x86_64"), + ("amd64", "linux", "arm", "aarch64"), + ("arm64", "linux", "arm", "aarch64"), + ) +] + +alias( + name = "resolved", + actual = "@resolved-qemu-system", + visibility = ["//visibility:public"], +) + +toolchain_test( + name = "test", + size = "small", + args = ["--version"], + toolchains = [":resolved"], +) -- GitLab From 0650f378c3fc611dbf26f724ed92da7929b929a7 Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Fri, 6 Sep 2024 11:57:18 +0100 Subject: [PATCH 2/4] feat: add `//labgrid/toolchain/qemu-system:type` toolchain --- MODULE.bazel | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index ba7170a7..c567e14a 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -20,10 +20,13 @@ bazel_dep(name = "hermetic_cc_toolchain", version = "3.1.0", dev_dependency = Tr # Register LabGrid toolchains resolved = use_repo_rule("@toolchain_utils//toolchain/resolved:defs.bzl", "toolchain_resolved") -resolved( - name = "resolved-executor", - toolchain_type = "//labgrid/toolchain/executor:type", -) +[ + resolved( + name = "resolved-{}".format(kind), + toolchain_type = "//labgrid/toolchain/{}:type".format(kind), + ) + for kind in ("executor", "qemu-system") +] register_toolchains("//labgrid/toolchain/...") -- GitLab From 8525d2823e0ced48be301f520e4b135de789734d Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Thu, 12 Sep 2024 12:26:14 +0100 Subject: [PATCH 3/4] refactor: move Debian packages into `srcs.bzl` file Helps read-ability of the `BUILD.bazel` files. --- debian/amd64/qemu-system-arm/BUILD.bazel | 116 +--------------------- debian/amd64/qemu-system-arm/srcs.bzl | 116 ++++++++++++++++++++++ debian/amd64/qemu-system-x86/BUILD.bazel | 118 +---------------------- debian/amd64/qemu-system-x86/srcs.bzl | 118 +++++++++++++++++++++++ debian/arm64/qemu-system-arm/BUILD.bazel | 116 +--------------------- debian/arm64/qemu-system-arm/srcs.bzl | 116 ++++++++++++++++++++++ debian/arm64/qemu-system-x86/BUILD.bazel | 118 +---------------------- debian/arm64/qemu-system-x86/srcs.bzl | 118 +++++++++++++++++++++++ 8 files changed, 476 insertions(+), 460 deletions(-) create mode 100644 debian/amd64/qemu-system-arm/srcs.bzl create mode 100644 debian/amd64/qemu-system-x86/srcs.bzl create mode 100644 debian/arm64/qemu-system-arm/srcs.bzl create mode 100644 debian/arm64/qemu-system-x86/srcs.bzl diff --git a/debian/amd64/qemu-system-arm/BUILD.bazel b/debian/amd64/qemu-system-arm/BUILD.bazel index 1f73dbf9..59e9a88f 100644 --- a/debian/amd64/qemu-system-arm/BUILD.bazel +++ b/debian/amd64/qemu-system-arm/BUILD.bazel @@ -1,123 +1,11 @@ load("//debian/launcher:defs.bzl", "debian_launcher") load("@rules_tar//tar/concatenate:defs.bzl", "tar_concatenate") load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") +load(":srcs.bzl", "SRCS") tar_concatenate( name = "data.tar.zst", - srcs = [ - "//debian/amd64/libc6:data.tar.zst", - "//debian/amd64/tar:data.tar.zst", - "@all-adduser//:data.tar.xz", - "@all-debconf//:data.tar.xz", - "@all-iso-codes//:data.tar.xz", - "@all-libasound2-data//:data.tar.xz", - "@all-libaudit-common//:data.tar.xz", - "@all-libdrm-common//:data.tar.xz", - "@all-libsemanage-common//:data.tar.xz", - "@all-qemu-system-data//:data.tar.xz", - "@all-readline-common//:data.tar.xz", - "@amd64-cdebconf//:data.tar.xz", - "@amd64-dpkg//:data.tar.xz", - "@amd64-gcc-12-base//:data.tar.xz", - "@amd64-install-info//:data.tar.xz", - "@amd64-libaio1//:data.tar.xz", - "@amd64-libasound2//:data.tar.xz", - "@amd64-libaudit1//:data.tar.xz", - "@amd64-libblkid1//:data.tar.xz", - "@amd64-libbpf1//:data.tar.xz", - "@amd64-libbrlapi0.8//:data.tar.xz", - "@amd64-libbsd0//:data.tar.xz", - "@amd64-libbz2-1.0//:data.tar.xz", - "@amd64-libcacard0//:data.tar.xz", - "@amd64-libcap-ng0//:data.tar.xz", - "@amd64-libcap2-bin//:data.tar.xz", - "@amd64-libcap2//:data.tar.xz", - "@amd64-libcapstone4//:data.tar.xz", - "@amd64-libcrypt1//:data.tar.xz", - "@amd64-libdaxctl1//:data.tar.xz", - "@amd64-libdb5.3//:data.tar.xz", - "@amd64-libdebian-installer4//:data.tar.xz", - "@amd64-libdrm2//:data.tar.xz", - "@amd64-libdw1//:data.tar.xz", - "@amd64-libelf1//:data.tar.xz", - "@amd64-libelogind0//:data.tar.xz", - "@amd64-libepoxy0//:data.tar.xz", - "@amd64-libexecs0//:data.tar.xz", - "@amd64-libexpat1//:data.tar.xz", - "@amd64-libfdt1//:data.tar.xz", - "@amd64-libffi8//:data.tar.xz", - "@amd64-libfuse3-3//:data.tar.xz", - "@amd64-libgbm1//:data.tar.xz", - "@amd64-libgcc-s1//:data.tar.xz", - "@amd64-libgcrypt20//:data.tar.xz", - "@amd64-libglib2.0-0//:data.tar.xz", - "@amd64-libgmp10//:data.tar.xz", - "@amd64-libgnutls30//:data.tar.xz", - "@amd64-libgpg-error0//:data.tar.xz", - "@amd64-libgstreamer-plugins-base1.0-0//:data.tar.xz", - "@amd64-libgstreamer1.0-0//:data.tar.xz", - "@amd64-libhogweed6//:data.tar.xz", - "@amd64-libibverbs1//:data.tar.xz", - "@amd64-libidn2-0//:data.tar.xz", - "@amd64-libjpeg62-turbo//:data.tar.xz", - "@amd64-libkmod2//:data.tar.xz", - "@amd64-liblz4-1//:data.tar.xz", - "@amd64-liblzma5//:data.tar.xz", - "@amd64-libmd0//:data.tar.xz", - "@amd64-libmount1//:data.tar.xz", - "@amd64-libncursesw6//:data.tar.xz", - "@amd64-libndctl6//:data.tar.xz", - "@amd64-libnettle8//:data.tar.xz", - "@amd64-libnewt0.52//:data.tar.xz", - "@amd64-libnl-3-200//:data.tar.xz", - "@amd64-libnl-route-3-200//:data.tar.xz", - "@amd64-libnspr4//:data.tar.xz", - "@amd64-libnss3//:data.tar.xz", - "@amd64-libnuma1//:data.tar.xz", - "@amd64-libopus0//:data.tar.xz", - "@amd64-liborc-0.4-0//:data.tar.xz", - "@amd64-libp11-kit0//:data.tar.xz", - "@amd64-libpam-modules//:data.tar.xz", - "@amd64-libpam0g//:data.tar.xz", - "@amd64-libpcre2-8-0//:data.tar.xz", - "@amd64-libpcsclite1//:data.tar.xz", - "@amd64-libpixman-1-0//:data.tar.xz", - "@amd64-libpmem1//:data.tar.xz", - "@amd64-libpng16-16//:data.tar.xz", - "@amd64-librdmacm1//:data.tar.xz", - "@amd64-libreadline8//:data.tar.xz", - "@amd64-libsasl2-2//:data.tar.xz", - "@amd64-libsasl2-modules-db//:data.tar.xz", - "@amd64-libseccomp2//:data.tar.xz", - "@amd64-libselinux1//:data.tar.xz", - "@amd64-libsemanage2//:data.tar.xz", - "@amd64-libsepol2//:data.tar.xz", - "@amd64-libslang2//:data.tar.xz", - "@amd64-libslirp0//:data.tar.xz", - "@amd64-libsndio7.0//:data.tar.xz", - "@amd64-libspice-server1//:data.tar.xz", - "@amd64-libsqlite3-0//:data.tar.xz", - "@amd64-libssl3//:data.tar.xz", - "@amd64-libstdcxx6//:data.tar.xz", - "@amd64-libsystemd0//:data.tar.xz", - "@amd64-libtasn1-6//:data.tar.xz", - "@amd64-libtextwrap1//:data.tar.xz", - "@amd64-libtinfo6//:data.tar.xz", - "@amd64-libudev1//:data.tar.xz", - "@amd64-libunistring2//:data.tar.xz", - "@amd64-libunwind8//:data.tar.xz", - "@amd64-liburing2//:data.tar.xz", - "@amd64-libusb-1.0-0//:data.tar.xz", - "@amd64-libusbredirparser1//:data.tar.xz", - "@amd64-libuuid1//:data.tar.xz", - "@amd64-libvdeplug2//:data.tar.xz", - "@amd64-libwayland-server0//:data.tar.xz", - "@amd64-libzstd1//:data.tar.xz", - "@amd64-passwd//:data.tar.xz", - "@amd64-qemu-system-arm//:data.tar.xz", - "@amd64-qemu-system-common//:data.tar.xz", - "@amd64-zlib1g//:data.tar.xz", - ], + srcs = SRCS, compress = "@rules_zstd//zstd/toolchain/zstd:resolved", duplicate = "skip", ) diff --git a/debian/amd64/qemu-system-arm/srcs.bzl b/debian/amd64/qemu-system-arm/srcs.bzl new file mode 100644 index 00000000..cf10ee25 --- /dev/null +++ b/debian/amd64/qemu-system-arm/srcs.bzl @@ -0,0 +1,116 @@ +visibility("//debian/amd64/qemu-system-arm/...") + +SRCS = ( + "//debian/amd64/libc6:data.tar.zst", + "//debian/amd64/tar:data.tar.zst", + "@all-adduser//:data.tar.xz", + "@all-debconf//:data.tar.xz", + "@all-iso-codes//:data.tar.xz", + "@all-libasound2-data//:data.tar.xz", + "@all-libaudit-common//:data.tar.xz", + "@all-libdrm-common//:data.tar.xz", + "@all-libsemanage-common//:data.tar.xz", + "@all-qemu-system-data//:data.tar.xz", + "@all-readline-common//:data.tar.xz", + "@amd64-cdebconf//:data.tar.xz", + "@amd64-dpkg//:data.tar.xz", + "@amd64-gcc-12-base//:data.tar.xz", + "@amd64-install-info//:data.tar.xz", + "@amd64-libaio1//:data.tar.xz", + "@amd64-libasound2//:data.tar.xz", + "@amd64-libaudit1//:data.tar.xz", + "@amd64-libblkid1//:data.tar.xz", + "@amd64-libbpf1//:data.tar.xz", + "@amd64-libbrlapi0.8//:data.tar.xz", + "@amd64-libbsd0//:data.tar.xz", + "@amd64-libbz2-1.0//:data.tar.xz", + "@amd64-libcacard0//:data.tar.xz", + "@amd64-libcap-ng0//:data.tar.xz", + "@amd64-libcap2-bin//:data.tar.xz", + "@amd64-libcap2//:data.tar.xz", + "@amd64-libcapstone4//:data.tar.xz", + "@amd64-libcrypt1//:data.tar.xz", + "@amd64-libdaxctl1//:data.tar.xz", + "@amd64-libdb5.3//:data.tar.xz", + "@amd64-libdebian-installer4//:data.tar.xz", + "@amd64-libdrm2//:data.tar.xz", + "@amd64-libdw1//:data.tar.xz", + "@amd64-libelf1//:data.tar.xz", + "@amd64-libelogind0//:data.tar.xz", + "@amd64-libepoxy0//:data.tar.xz", + "@amd64-libexecs0//:data.tar.xz", + "@amd64-libexpat1//:data.tar.xz", + "@amd64-libfdt1//:data.tar.xz", + "@amd64-libffi8//:data.tar.xz", + "@amd64-libfuse3-3//:data.tar.xz", + "@amd64-libgbm1//:data.tar.xz", + "@amd64-libgcc-s1//:data.tar.xz", + "@amd64-libgcrypt20//:data.tar.xz", + "@amd64-libglib2.0-0//:data.tar.xz", + "@amd64-libgmp10//:data.tar.xz", + "@amd64-libgnutls30//:data.tar.xz", + "@amd64-libgpg-error0//:data.tar.xz", + "@amd64-libgstreamer-plugins-base1.0-0//:data.tar.xz", + "@amd64-libgstreamer1.0-0//:data.tar.xz", + "@amd64-libhogweed6//:data.tar.xz", + "@amd64-libibverbs1//:data.tar.xz", + "@amd64-libidn2-0//:data.tar.xz", + "@amd64-libjpeg62-turbo//:data.tar.xz", + "@amd64-libkmod2//:data.tar.xz", + "@amd64-liblz4-1//:data.tar.xz", + "@amd64-liblzma5//:data.tar.xz", + "@amd64-libmd0//:data.tar.xz", + "@amd64-libmount1//:data.tar.xz", + "@amd64-libncursesw6//:data.tar.xz", + "@amd64-libndctl6//:data.tar.xz", + "@amd64-libnettle8//:data.tar.xz", + "@amd64-libnewt0.52//:data.tar.xz", + "@amd64-libnl-3-200//:data.tar.xz", + "@amd64-libnl-route-3-200//:data.tar.xz", + "@amd64-libnspr4//:data.tar.xz", + "@amd64-libnss3//:data.tar.xz", + "@amd64-libnuma1//:data.tar.xz", + "@amd64-libopus0//:data.tar.xz", + "@amd64-liborc-0.4-0//:data.tar.xz", + "@amd64-libp11-kit0//:data.tar.xz", + "@amd64-libpam-modules//:data.tar.xz", + "@amd64-libpam0g//:data.tar.xz", + "@amd64-libpcre2-8-0//:data.tar.xz", + "@amd64-libpcsclite1//:data.tar.xz", + "@amd64-libpixman-1-0//:data.tar.xz", + "@amd64-libpmem1//:data.tar.xz", + "@amd64-libpng16-16//:data.tar.xz", + "@amd64-librdmacm1//:data.tar.xz", + "@amd64-libreadline8//:data.tar.xz", + "@amd64-libsasl2-2//:data.tar.xz", + "@amd64-libsasl2-modules-db//:data.tar.xz", + "@amd64-libseccomp2//:data.tar.xz", + "@amd64-libselinux1//:data.tar.xz", + "@amd64-libsemanage2//:data.tar.xz", + "@amd64-libsepol2//:data.tar.xz", + "@amd64-libslang2//:data.tar.xz", + "@amd64-libslirp0//:data.tar.xz", + "@amd64-libsndio7.0//:data.tar.xz", + "@amd64-libspice-server1//:data.tar.xz", + "@amd64-libsqlite3-0//:data.tar.xz", + "@amd64-libssl3//:data.tar.xz", + "@amd64-libstdcxx6//:data.tar.xz", + "@amd64-libsystemd0//:data.tar.xz", + "@amd64-libtasn1-6//:data.tar.xz", + "@amd64-libtextwrap1//:data.tar.xz", + "@amd64-libtinfo6//:data.tar.xz", + "@amd64-libudev1//:data.tar.xz", + "@amd64-libunistring2//:data.tar.xz", + "@amd64-libunwind8//:data.tar.xz", + "@amd64-liburing2//:data.tar.xz", + "@amd64-libusb-1.0-0//:data.tar.xz", + "@amd64-libusbredirparser1//:data.tar.xz", + "@amd64-libuuid1//:data.tar.xz", + "@amd64-libvdeplug2//:data.tar.xz", + "@amd64-libwayland-server0//:data.tar.xz", + "@amd64-libzstd1//:data.tar.xz", + "@amd64-passwd//:data.tar.xz", + "@amd64-qemu-system-arm//:data.tar.xz", + "@amd64-qemu-system-common//:data.tar.xz", + "@amd64-zlib1g//:data.tar.xz", +) diff --git a/debian/amd64/qemu-system-x86/BUILD.bazel b/debian/amd64/qemu-system-x86/BUILD.bazel index d476afa5..03e88f94 100644 --- a/debian/amd64/qemu-system-x86/BUILD.bazel +++ b/debian/amd64/qemu-system-x86/BUILD.bazel @@ -1,125 +1,11 @@ load("//debian/launcher:defs.bzl", "debian_launcher") load("@rules_tar//tar/concatenate:defs.bzl", "tar_concatenate") load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") +load(":srcs.bzl", "SRCS") tar_concatenate( name = "data.tar.zst", - srcs = [ - "//debian/amd64/libc6:data.tar.zst", - "//debian/amd64/tar:data.tar.zst", - "@all-adduser//:data.tar.xz", - "@all-debconf//:data.tar.xz", - "@all-ipxe-qemu//:data.tar.xz", - "@all-iso-codes//:data.tar.xz", - "@all-libasound2-data//:data.tar.xz", - "@all-libaudit-common//:data.tar.xz", - "@all-libdrm-common//:data.tar.xz", - "@all-libsemanage-common//:data.tar.xz", - "@all-qemu-system-data//:data.tar.xz", - "@all-readline-common//:data.tar.xz", - "@all-seabios//:data.tar.xz", - "@amd64-cdebconf//:data.tar.xz", - "@amd64-dpkg//:data.tar.xz", - "@amd64-gcc-12-base//:data.tar.xz", - "@amd64-install-info//:data.tar.xz", - "@amd64-libaio1//:data.tar.xz", - "@amd64-libasound2//:data.tar.xz", - "@amd64-libaudit1//:data.tar.xz", - "@amd64-libblkid1//:data.tar.xz", - "@amd64-libbpf1//:data.tar.xz", - "@amd64-libbrlapi0.8//:data.tar.xz", - "@amd64-libbsd0//:data.tar.xz", - "@amd64-libbz2-1.0//:data.tar.xz", - "@amd64-libcacard0//:data.tar.xz", - "@amd64-libcap-ng0//:data.tar.xz", - "@amd64-libcap2-bin//:data.tar.xz", - "@amd64-libcap2//:data.tar.xz", - "@amd64-libcapstone4//:data.tar.xz", - "@amd64-libcrypt1//:data.tar.xz", - "@amd64-libdaxctl1//:data.tar.xz", - "@amd64-libdb5.3//:data.tar.xz", - "@amd64-libdebian-installer4//:data.tar.xz", - "@amd64-libdrm2//:data.tar.xz", - "@amd64-libdw1//:data.tar.xz", - "@amd64-libelf1//:data.tar.xz", - "@amd64-libelogind0//:data.tar.xz", - "@amd64-libepoxy0//:data.tar.xz", - "@amd64-libexecs0//:data.tar.xz", - "@amd64-libexpat1//:data.tar.xz", - "@amd64-libfdt1//:data.tar.xz", - "@amd64-libffi8//:data.tar.xz", - "@amd64-libfuse3-3//:data.tar.xz", - "@amd64-libgbm1//:data.tar.xz", - "@amd64-libgcc-s1//:data.tar.xz", - "@amd64-libgcrypt20//:data.tar.xz", - "@amd64-libglib2.0-0//:data.tar.xz", - "@amd64-libgmp10//:data.tar.xz", - "@amd64-libgnutls30//:data.tar.xz", - "@amd64-libgpg-error0//:data.tar.xz", - "@amd64-libgstreamer-plugins-base1.0-0//:data.tar.xz", - "@amd64-libgstreamer1.0-0//:data.tar.xz", - "@amd64-libhogweed6//:data.tar.xz", - "@amd64-libibverbs1//:data.tar.xz", - "@amd64-libidn2-0//:data.tar.xz", - "@amd64-libjpeg62-turbo//:data.tar.xz", - "@amd64-libkmod2//:data.tar.xz", - "@amd64-liblz4-1//:data.tar.xz", - "@amd64-liblzma5//:data.tar.xz", - "@amd64-libmd0//:data.tar.xz", - "@amd64-libmount1//:data.tar.xz", - "@amd64-libncursesw6//:data.tar.xz", - "@amd64-libndctl6//:data.tar.xz", - "@amd64-libnettle8//:data.tar.xz", - "@amd64-libnewt0.52//:data.tar.xz", - "@amd64-libnl-3-200//:data.tar.xz", - "@amd64-libnl-route-3-200//:data.tar.xz", - "@amd64-libnspr4//:data.tar.xz", - "@amd64-libnss3//:data.tar.xz", - "@amd64-libnuma1//:data.tar.xz", - "@amd64-libopus0//:data.tar.xz", - "@amd64-liborc-0.4-0//:data.tar.xz", - "@amd64-libp11-kit0//:data.tar.xz", - "@amd64-libpam-modules//:data.tar.xz", - "@amd64-libpam0g//:data.tar.xz", - "@amd64-libpcre2-8-0//:data.tar.xz", - "@amd64-libpcsclite1//:data.tar.xz", - "@amd64-libpixman-1-0//:data.tar.xz", - "@amd64-libpmem1//:data.tar.xz", - "@amd64-libpng16-16//:data.tar.xz", - "@amd64-librdmacm1//:data.tar.xz", - "@amd64-libreadline8//:data.tar.xz", - "@amd64-libsasl2-2//:data.tar.xz", - "@amd64-libsasl2-modules-db//:data.tar.xz", - "@amd64-libseccomp2//:data.tar.xz", - "@amd64-libselinux1//:data.tar.xz", - "@amd64-libsemanage2//:data.tar.xz", - "@amd64-libsepol2//:data.tar.xz", - "@amd64-libslang2//:data.tar.xz", - "@amd64-libslirp0//:data.tar.xz", - "@amd64-libsndio7.0//:data.tar.xz", - "@amd64-libspice-server1//:data.tar.xz", - "@amd64-libsqlite3-0//:data.tar.xz", - "@amd64-libssl3//:data.tar.xz", - "@amd64-libstdcxx6//:data.tar.xz", - "@amd64-libsystemd0//:data.tar.xz", - "@amd64-libtasn1-6//:data.tar.xz", - "@amd64-libtextwrap1//:data.tar.xz", - "@amd64-libtinfo6//:data.tar.xz", - "@amd64-libudev1//:data.tar.xz", - "@amd64-libunistring2//:data.tar.xz", - "@amd64-libunwind8//:data.tar.xz", - "@amd64-liburing2//:data.tar.xz", - "@amd64-libusb-1.0-0//:data.tar.xz", - "@amd64-libusbredirparser1//:data.tar.xz", - "@amd64-libuuid1//:data.tar.xz", - "@amd64-libvdeplug2//:data.tar.xz", - "@amd64-libwayland-server0//:data.tar.xz", - "@amd64-libzstd1//:data.tar.xz", - "@amd64-passwd//:data.tar.xz", - "@amd64-qemu-system-common//:data.tar.xz", - "@amd64-qemu-system-x86//:data.tar.xz", - "@amd64-zlib1g//:data.tar.xz", - ], + srcs = SRCS, compress = "@rules_zstd//zstd/toolchain/zstd:resolved", duplicate = "skip", ) diff --git a/debian/amd64/qemu-system-x86/srcs.bzl b/debian/amd64/qemu-system-x86/srcs.bzl new file mode 100644 index 00000000..33db02f7 --- /dev/null +++ b/debian/amd64/qemu-system-x86/srcs.bzl @@ -0,0 +1,118 @@ +visibility("//debian/amd64/qemu-system-x86/...") + +SRCS = ( + "//debian/amd64/libc6:data.tar.zst", + "//debian/amd64/tar:data.tar.zst", + "@all-adduser//:data.tar.xz", + "@all-debconf//:data.tar.xz", + "@all-ipxe-qemu//:data.tar.xz", + "@all-iso-codes//:data.tar.xz", + "@all-libasound2-data//:data.tar.xz", + "@all-libaudit-common//:data.tar.xz", + "@all-libdrm-common//:data.tar.xz", + "@all-libsemanage-common//:data.tar.xz", + "@all-qemu-system-data//:data.tar.xz", + "@all-readline-common//:data.tar.xz", + "@all-seabios//:data.tar.xz", + "@amd64-cdebconf//:data.tar.xz", + "@amd64-dpkg//:data.tar.xz", + "@amd64-gcc-12-base//:data.tar.xz", + "@amd64-install-info//:data.tar.xz", + "@amd64-libaio1//:data.tar.xz", + "@amd64-libasound2//:data.tar.xz", + "@amd64-libaudit1//:data.tar.xz", + "@amd64-libblkid1//:data.tar.xz", + "@amd64-libbpf1//:data.tar.xz", + "@amd64-libbrlapi0.8//:data.tar.xz", + "@amd64-libbsd0//:data.tar.xz", + "@amd64-libbz2-1.0//:data.tar.xz", + "@amd64-libcacard0//:data.tar.xz", + "@amd64-libcap-ng0//:data.tar.xz", + "@amd64-libcap2-bin//:data.tar.xz", + "@amd64-libcap2//:data.tar.xz", + "@amd64-libcapstone4//:data.tar.xz", + "@amd64-libcrypt1//:data.tar.xz", + "@amd64-libdaxctl1//:data.tar.xz", + "@amd64-libdb5.3//:data.tar.xz", + "@amd64-libdebian-installer4//:data.tar.xz", + "@amd64-libdrm2//:data.tar.xz", + "@amd64-libdw1//:data.tar.xz", + "@amd64-libelf1//:data.tar.xz", + "@amd64-libelogind0//:data.tar.xz", + "@amd64-libepoxy0//:data.tar.xz", + "@amd64-libexecs0//:data.tar.xz", + "@amd64-libexpat1//:data.tar.xz", + "@amd64-libfdt1//:data.tar.xz", + "@amd64-libffi8//:data.tar.xz", + "@amd64-libfuse3-3//:data.tar.xz", + "@amd64-libgbm1//:data.tar.xz", + "@amd64-libgcc-s1//:data.tar.xz", + "@amd64-libgcrypt20//:data.tar.xz", + "@amd64-libglib2.0-0//:data.tar.xz", + "@amd64-libgmp10//:data.tar.xz", + "@amd64-libgnutls30//:data.tar.xz", + "@amd64-libgpg-error0//:data.tar.xz", + "@amd64-libgstreamer-plugins-base1.0-0//:data.tar.xz", + "@amd64-libgstreamer1.0-0//:data.tar.xz", + "@amd64-libhogweed6//:data.tar.xz", + "@amd64-libibverbs1//:data.tar.xz", + "@amd64-libidn2-0//:data.tar.xz", + "@amd64-libjpeg62-turbo//:data.tar.xz", + "@amd64-libkmod2//:data.tar.xz", + "@amd64-liblz4-1//:data.tar.xz", + "@amd64-liblzma5//:data.tar.xz", + "@amd64-libmd0//:data.tar.xz", + "@amd64-libmount1//:data.tar.xz", + "@amd64-libncursesw6//:data.tar.xz", + "@amd64-libndctl6//:data.tar.xz", + "@amd64-libnettle8//:data.tar.xz", + "@amd64-libnewt0.52//:data.tar.xz", + "@amd64-libnl-3-200//:data.tar.xz", + "@amd64-libnl-route-3-200//:data.tar.xz", + "@amd64-libnspr4//:data.tar.xz", + "@amd64-libnss3//:data.tar.xz", + "@amd64-libnuma1//:data.tar.xz", + "@amd64-libopus0//:data.tar.xz", + "@amd64-liborc-0.4-0//:data.tar.xz", + "@amd64-libp11-kit0//:data.tar.xz", + "@amd64-libpam-modules//:data.tar.xz", + "@amd64-libpam0g//:data.tar.xz", + "@amd64-libpcre2-8-0//:data.tar.xz", + "@amd64-libpcsclite1//:data.tar.xz", + "@amd64-libpixman-1-0//:data.tar.xz", + "@amd64-libpmem1//:data.tar.xz", + "@amd64-libpng16-16//:data.tar.xz", + "@amd64-librdmacm1//:data.tar.xz", + "@amd64-libreadline8//:data.tar.xz", + "@amd64-libsasl2-2//:data.tar.xz", + "@amd64-libsasl2-modules-db//:data.tar.xz", + "@amd64-libseccomp2//:data.tar.xz", + "@amd64-libselinux1//:data.tar.xz", + "@amd64-libsemanage2//:data.tar.xz", + "@amd64-libsepol2//:data.tar.xz", + "@amd64-libslang2//:data.tar.xz", + "@amd64-libslirp0//:data.tar.xz", + "@amd64-libsndio7.0//:data.tar.xz", + "@amd64-libspice-server1//:data.tar.xz", + "@amd64-libsqlite3-0//:data.tar.xz", + "@amd64-libssl3//:data.tar.xz", + "@amd64-libstdcxx6//:data.tar.xz", + "@amd64-libsystemd0//:data.tar.xz", + "@amd64-libtasn1-6//:data.tar.xz", + "@amd64-libtextwrap1//:data.tar.xz", + "@amd64-libtinfo6//:data.tar.xz", + "@amd64-libudev1//:data.tar.xz", + "@amd64-libunistring2//:data.tar.xz", + "@amd64-libunwind8//:data.tar.xz", + "@amd64-liburing2//:data.tar.xz", + "@amd64-libusb-1.0-0//:data.tar.xz", + "@amd64-libusbredirparser1//:data.tar.xz", + "@amd64-libuuid1//:data.tar.xz", + "@amd64-libvdeplug2//:data.tar.xz", + "@amd64-libwayland-server0//:data.tar.xz", + "@amd64-libzstd1//:data.tar.xz", + "@amd64-passwd//:data.tar.xz", + "@amd64-qemu-system-common//:data.tar.xz", + "@amd64-qemu-system-x86//:data.tar.xz", + "@amd64-zlib1g//:data.tar.xz", +) diff --git a/debian/arm64/qemu-system-arm/BUILD.bazel b/debian/arm64/qemu-system-arm/BUILD.bazel index 0635712c..7e03bba4 100644 --- a/debian/arm64/qemu-system-arm/BUILD.bazel +++ b/debian/arm64/qemu-system-arm/BUILD.bazel @@ -1,123 +1,11 @@ load("//debian/launcher:defs.bzl", "debian_launcher") load("@rules_tar//tar/concatenate:defs.bzl", "tar_concatenate") load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") +load(":srcs.bzl", "SRCS") tar_concatenate( name = "data.tar.zst", - srcs = [ - "//debian/arm64/libc6:data.tar.zst", - "//debian/arm64/tar:data.tar.zst", - "@all-adduser//:data.tar.xz", - "@all-debconf//:data.tar.xz", - "@all-iso-codes//:data.tar.xz", - "@all-libasound2-data//:data.tar.xz", - "@all-libaudit-common//:data.tar.xz", - "@all-libdrm-common//:data.tar.xz", - "@all-libsemanage-common//:data.tar.xz", - "@all-qemu-system-data//:data.tar.xz", - "@all-readline-common//:data.tar.xz", - "@arm64-cdebconf//:data.tar.xz", - "@arm64-dpkg//:data.tar.xz", - "@arm64-gcc-12-base//:data.tar.xz", - "@arm64-install-info//:data.tar.xz", - "@arm64-libaio1//:data.tar.xz", - "@arm64-libasound2//:data.tar.xz", - "@arm64-libaudit1//:data.tar.xz", - "@arm64-libblkid1//:data.tar.xz", - "@arm64-libbpf1//:data.tar.xz", - "@arm64-libbrlapi0.8//:data.tar.xz", - "@arm64-libbsd0//:data.tar.xz", - "@arm64-libbz2-1.0//:data.tar.xz", - "@arm64-libcacard0//:data.tar.xz", - "@arm64-libcap-ng0//:data.tar.xz", - "@arm64-libcap2-bin//:data.tar.xz", - "@arm64-libcap2//:data.tar.xz", - "@arm64-libcapstone4//:data.tar.xz", - "@arm64-libcrypt1//:data.tar.xz", - "@arm64-libdaxctl1//:data.tar.xz", - "@arm64-libdb5.3//:data.tar.xz", - "@arm64-libdebian-installer4//:data.tar.xz", - "@arm64-libdrm2//:data.tar.xz", - "@arm64-libdw1//:data.tar.xz", - "@arm64-libelf1//:data.tar.xz", - "@arm64-libelogind0//:data.tar.xz", - "@arm64-libepoxy0//:data.tar.xz", - "@arm64-libexecs0//:data.tar.xz", - "@arm64-libexpat1//:data.tar.xz", - "@arm64-libfdt1//:data.tar.xz", - "@arm64-libffi8//:data.tar.xz", - "@arm64-libfuse3-3//:data.tar.xz", - "@arm64-libgbm1//:data.tar.xz", - "@arm64-libgcc-s1//:data.tar.xz", - "@arm64-libgcrypt20//:data.tar.xz", - "@arm64-libglib2.0-0//:data.tar.xz", - "@arm64-libgmp10//:data.tar.xz", - "@arm64-libgnutls30//:data.tar.xz", - "@arm64-libgpg-error0//:data.tar.xz", - "@arm64-libgstreamer-plugins-base1.0-0//:data.tar.xz", - "@arm64-libgstreamer1.0-0//:data.tar.xz", - "@arm64-libhogweed6//:data.tar.xz", - "@arm64-libibverbs1//:data.tar.xz", - "@arm64-libidn2-0//:data.tar.xz", - "@arm64-libjpeg62-turbo//:data.tar.xz", - "@arm64-libkmod2//:data.tar.xz", - "@arm64-liblz4-1//:data.tar.xz", - "@arm64-liblzma5//:data.tar.xz", - "@arm64-libmd0//:data.tar.xz", - "@arm64-libmount1//:data.tar.xz", - "@arm64-libncursesw6//:data.tar.xz", - "@arm64-libndctl6//:data.tar.xz", - "@arm64-libnettle8//:data.tar.xz", - "@arm64-libnewt0.52//:data.tar.xz", - "@arm64-libnl-3-200//:data.tar.xz", - "@arm64-libnl-route-3-200//:data.tar.xz", - "@arm64-libnspr4//:data.tar.xz", - "@arm64-libnss3//:data.tar.xz", - "@arm64-libnuma1//:data.tar.xz", - "@arm64-libopus0//:data.tar.xz", - "@arm64-liborc-0.4-0//:data.tar.xz", - "@arm64-libp11-kit0//:data.tar.xz", - "@arm64-libpam-modules//:data.tar.xz", - "@arm64-libpam0g//:data.tar.xz", - "@arm64-libpcre2-8-0//:data.tar.xz", - "@arm64-libpcsclite1//:data.tar.xz", - "@arm64-libpixman-1-0//:data.tar.xz", - "@arm64-libpmem1//:data.tar.xz", - "@arm64-libpng16-16//:data.tar.xz", - "@arm64-librdmacm1//:data.tar.xz", - "@arm64-libreadline8//:data.tar.xz", - "@arm64-libsasl2-2//:data.tar.xz", - "@arm64-libsasl2-modules-db//:data.tar.xz", - "@arm64-libseccomp2//:data.tar.xz", - "@arm64-libselinux1//:data.tar.xz", - "@arm64-libsemanage2//:data.tar.xz", - "@arm64-libsepol2//:data.tar.xz", - "@arm64-libslang2//:data.tar.xz", - "@arm64-libslirp0//:data.tar.xz", - "@arm64-libsndio7.0//:data.tar.xz", - "@arm64-libspice-server1//:data.tar.xz", - "@arm64-libsqlite3-0//:data.tar.xz", - "@arm64-libssl3//:data.tar.xz", - "@arm64-libstdcxx6//:data.tar.xz", - "@arm64-libsystemd0//:data.tar.xz", - "@arm64-libtasn1-6//:data.tar.xz", - "@arm64-libtextwrap1//:data.tar.xz", - "@arm64-libtinfo6//:data.tar.xz", - "@arm64-libudev1//:data.tar.xz", - "@arm64-libunistring2//:data.tar.xz", - "@arm64-libunwind8//:data.tar.xz", - "@arm64-liburing2//:data.tar.xz", - "@arm64-libusb-1.0-0//:data.tar.xz", - "@arm64-libusbredirparser1//:data.tar.xz", - "@arm64-libuuid1//:data.tar.xz", - "@arm64-libvdeplug2//:data.tar.xz", - "@arm64-libwayland-server0//:data.tar.xz", - "@arm64-libzstd1//:data.tar.xz", - "@arm64-passwd//:data.tar.xz", - "@arm64-qemu-system-arm//:data.tar.xz", - "@arm64-qemu-system-common//:data.tar.xz", - "@arm64-zlib1g//:data.tar.xz", - ], + srcs = SRCS, compress = "@rules_zstd//zstd/toolchain/zstd:resolved", duplicate = "skip", ) diff --git a/debian/arm64/qemu-system-arm/srcs.bzl b/debian/arm64/qemu-system-arm/srcs.bzl new file mode 100644 index 00000000..55e1acea --- /dev/null +++ b/debian/arm64/qemu-system-arm/srcs.bzl @@ -0,0 +1,116 @@ +visibility("//debian/arm64/qemu-system-arm/...") + +SRCS = ( + "//debian/arm64/libc6:data.tar.zst", + "//debian/arm64/tar:data.tar.zst", + "@all-adduser//:data.tar.xz", + "@all-debconf//:data.tar.xz", + "@all-iso-codes//:data.tar.xz", + "@all-libasound2-data//:data.tar.xz", + "@all-libaudit-common//:data.tar.xz", + "@all-libdrm-common//:data.tar.xz", + "@all-libsemanage-common//:data.tar.xz", + "@all-qemu-system-data//:data.tar.xz", + "@all-readline-common//:data.tar.xz", + "@arm64-cdebconf//:data.tar.xz", + "@arm64-dpkg//:data.tar.xz", + "@arm64-gcc-12-base//:data.tar.xz", + "@arm64-install-info//:data.tar.xz", + "@arm64-libaio1//:data.tar.xz", + "@arm64-libasound2//:data.tar.xz", + "@arm64-libaudit1//:data.tar.xz", + "@arm64-libblkid1//:data.tar.xz", + "@arm64-libbpf1//:data.tar.xz", + "@arm64-libbrlapi0.8//:data.tar.xz", + "@arm64-libbsd0//:data.tar.xz", + "@arm64-libbz2-1.0//:data.tar.xz", + "@arm64-libcacard0//:data.tar.xz", + "@arm64-libcap-ng0//:data.tar.xz", + "@arm64-libcap2-bin//:data.tar.xz", + "@arm64-libcap2//:data.tar.xz", + "@arm64-libcapstone4//:data.tar.xz", + "@arm64-libcrypt1//:data.tar.xz", + "@arm64-libdaxctl1//:data.tar.xz", + "@arm64-libdb5.3//:data.tar.xz", + "@arm64-libdebian-installer4//:data.tar.xz", + "@arm64-libdrm2//:data.tar.xz", + "@arm64-libdw1//:data.tar.xz", + "@arm64-libelf1//:data.tar.xz", + "@arm64-libelogind0//:data.tar.xz", + "@arm64-libepoxy0//:data.tar.xz", + "@arm64-libexecs0//:data.tar.xz", + "@arm64-libexpat1//:data.tar.xz", + "@arm64-libfdt1//:data.tar.xz", + "@arm64-libffi8//:data.tar.xz", + "@arm64-libfuse3-3//:data.tar.xz", + "@arm64-libgbm1//:data.tar.xz", + "@arm64-libgcc-s1//:data.tar.xz", + "@arm64-libgcrypt20//:data.tar.xz", + "@arm64-libglib2.0-0//:data.tar.xz", + "@arm64-libgmp10//:data.tar.xz", + "@arm64-libgnutls30//:data.tar.xz", + "@arm64-libgpg-error0//:data.tar.xz", + "@arm64-libgstreamer-plugins-base1.0-0//:data.tar.xz", + "@arm64-libgstreamer1.0-0//:data.tar.xz", + "@arm64-libhogweed6//:data.tar.xz", + "@arm64-libibverbs1//:data.tar.xz", + "@arm64-libidn2-0//:data.tar.xz", + "@arm64-libjpeg62-turbo//:data.tar.xz", + "@arm64-libkmod2//:data.tar.xz", + "@arm64-liblz4-1//:data.tar.xz", + "@arm64-liblzma5//:data.tar.xz", + "@arm64-libmd0//:data.tar.xz", + "@arm64-libmount1//:data.tar.xz", + "@arm64-libncursesw6//:data.tar.xz", + "@arm64-libndctl6//:data.tar.xz", + "@arm64-libnettle8//:data.tar.xz", + "@arm64-libnewt0.52//:data.tar.xz", + "@arm64-libnl-3-200//:data.tar.xz", + "@arm64-libnl-route-3-200//:data.tar.xz", + "@arm64-libnspr4//:data.tar.xz", + "@arm64-libnss3//:data.tar.xz", + "@arm64-libnuma1//:data.tar.xz", + "@arm64-libopus0//:data.tar.xz", + "@arm64-liborc-0.4-0//:data.tar.xz", + "@arm64-libp11-kit0//:data.tar.xz", + "@arm64-libpam-modules//:data.tar.xz", + "@arm64-libpam0g//:data.tar.xz", + "@arm64-libpcre2-8-0//:data.tar.xz", + "@arm64-libpcsclite1//:data.tar.xz", + "@arm64-libpixman-1-0//:data.tar.xz", + "@arm64-libpmem1//:data.tar.xz", + "@arm64-libpng16-16//:data.tar.xz", + "@arm64-librdmacm1//:data.tar.xz", + "@arm64-libreadline8//:data.tar.xz", + "@arm64-libsasl2-2//:data.tar.xz", + "@arm64-libsasl2-modules-db//:data.tar.xz", + "@arm64-libseccomp2//:data.tar.xz", + "@arm64-libselinux1//:data.tar.xz", + "@arm64-libsemanage2//:data.tar.xz", + "@arm64-libsepol2//:data.tar.xz", + "@arm64-libslang2//:data.tar.xz", + "@arm64-libslirp0//:data.tar.xz", + "@arm64-libsndio7.0//:data.tar.xz", + "@arm64-libspice-server1//:data.tar.xz", + "@arm64-libsqlite3-0//:data.tar.xz", + "@arm64-libssl3//:data.tar.xz", + "@arm64-libstdcxx6//:data.tar.xz", + "@arm64-libsystemd0//:data.tar.xz", + "@arm64-libtasn1-6//:data.tar.xz", + "@arm64-libtextwrap1//:data.tar.xz", + "@arm64-libtinfo6//:data.tar.xz", + "@arm64-libudev1//:data.tar.xz", + "@arm64-libunistring2//:data.tar.xz", + "@arm64-libunwind8//:data.tar.xz", + "@arm64-liburing2//:data.tar.xz", + "@arm64-libusb-1.0-0//:data.tar.xz", + "@arm64-libusbredirparser1//:data.tar.xz", + "@arm64-libuuid1//:data.tar.xz", + "@arm64-libvdeplug2//:data.tar.xz", + "@arm64-libwayland-server0//:data.tar.xz", + "@arm64-libzstd1//:data.tar.xz", + "@arm64-passwd//:data.tar.xz", + "@arm64-qemu-system-arm//:data.tar.xz", + "@arm64-qemu-system-common//:data.tar.xz", + "@arm64-zlib1g//:data.tar.xz", +) diff --git a/debian/arm64/qemu-system-x86/BUILD.bazel b/debian/arm64/qemu-system-x86/BUILD.bazel index d464f495..03e88f94 100644 --- a/debian/arm64/qemu-system-x86/BUILD.bazel +++ b/debian/arm64/qemu-system-x86/BUILD.bazel @@ -1,125 +1,11 @@ load("//debian/launcher:defs.bzl", "debian_launcher") load("@rules_tar//tar/concatenate:defs.bzl", "tar_concatenate") load("@rules_tar//tar/unpack:defs.bzl", "tar_unpack") +load(":srcs.bzl", "SRCS") tar_concatenate( name = "data.tar.zst", - srcs = [ - "//debian/arm64/libc6:data.tar.zst", - "//debian/arm64/tar:data.tar.zst", - "@all-adduser//:data.tar.xz", - "@all-debconf//:data.tar.xz", - "@all-ipxe-qemu//:data.tar.xz", - "@all-iso-codes//:data.tar.xz", - "@all-libasound2-data//:data.tar.xz", - "@all-libaudit-common//:data.tar.xz", - "@all-libdrm-common//:data.tar.xz", - "@all-libsemanage-common//:data.tar.xz", - "@all-qemu-system-data//:data.tar.xz", - "@all-readline-common//:data.tar.xz", - "@all-seabios//:data.tar.xz", - "@arm64-cdebconf//:data.tar.xz", - "@arm64-dpkg//:data.tar.xz", - "@arm64-gcc-12-base//:data.tar.xz", - "@arm64-install-info//:data.tar.xz", - "@arm64-libaio1//:data.tar.xz", - "@arm64-libasound2//:data.tar.xz", - "@arm64-libaudit1//:data.tar.xz", - "@arm64-libblkid1//:data.tar.xz", - "@arm64-libbpf1//:data.tar.xz", - "@arm64-libbrlapi0.8//:data.tar.xz", - "@arm64-libbsd0//:data.tar.xz", - "@arm64-libbz2-1.0//:data.tar.xz", - "@arm64-libcacard0//:data.tar.xz", - "@arm64-libcap-ng0//:data.tar.xz", - "@arm64-libcap2-bin//:data.tar.xz", - "@arm64-libcap2//:data.tar.xz", - "@arm64-libcapstone4//:data.tar.xz", - "@arm64-libcrypt1//:data.tar.xz", - "@arm64-libdaxctl1//:data.tar.xz", - "@arm64-libdb5.3//:data.tar.xz", - "@arm64-libdebian-installer4//:data.tar.xz", - "@arm64-libdrm2//:data.tar.xz", - "@arm64-libdw1//:data.tar.xz", - "@arm64-libelf1//:data.tar.xz", - "@arm64-libelogind0//:data.tar.xz", - "@arm64-libepoxy0//:data.tar.xz", - "@arm64-libexecs0//:data.tar.xz", - "@arm64-libexpat1//:data.tar.xz", - "@arm64-libfdt1//:data.tar.xz", - "@arm64-libffi8//:data.tar.xz", - "@arm64-libfuse3-3//:data.tar.xz", - "@arm64-libgbm1//:data.tar.xz", - "@arm64-libgcc-s1//:data.tar.xz", - "@arm64-libgcrypt20//:data.tar.xz", - "@arm64-libglib2.0-0//:data.tar.xz", - "@arm64-libgmp10//:data.tar.xz", - "@arm64-libgnutls30//:data.tar.xz", - "@arm64-libgpg-error0//:data.tar.xz", - "@arm64-libgstreamer-plugins-base1.0-0//:data.tar.xz", - "@arm64-libgstreamer1.0-0//:data.tar.xz", - "@arm64-libhogweed6//:data.tar.xz", - "@arm64-libibverbs1//:data.tar.xz", - "@arm64-libidn2-0//:data.tar.xz", - "@arm64-libjpeg62-turbo//:data.tar.xz", - "@arm64-libkmod2//:data.tar.xz", - "@arm64-liblz4-1//:data.tar.xz", - "@arm64-liblzma5//:data.tar.xz", - "@arm64-libmd0//:data.tar.xz", - "@arm64-libmount1//:data.tar.xz", - "@arm64-libncursesw6//:data.tar.xz", - "@arm64-libndctl6//:data.tar.xz", - "@arm64-libnettle8//:data.tar.xz", - "@arm64-libnewt0.52//:data.tar.xz", - "@arm64-libnl-3-200//:data.tar.xz", - "@arm64-libnl-route-3-200//:data.tar.xz", - "@arm64-libnspr4//:data.tar.xz", - "@arm64-libnss3//:data.tar.xz", - "@arm64-libnuma1//:data.tar.xz", - "@arm64-libopus0//:data.tar.xz", - "@arm64-liborc-0.4-0//:data.tar.xz", - "@arm64-libp11-kit0//:data.tar.xz", - "@arm64-libpam-modules//:data.tar.xz", - "@arm64-libpam0g//:data.tar.xz", - "@arm64-libpcre2-8-0//:data.tar.xz", - "@arm64-libpcsclite1//:data.tar.xz", - "@arm64-libpixman-1-0//:data.tar.xz", - "@arm64-libpmem1//:data.tar.xz", - "@arm64-libpng16-16//:data.tar.xz", - "@arm64-librdmacm1//:data.tar.xz", - "@arm64-libreadline8//:data.tar.xz", - "@arm64-libsasl2-2//:data.tar.xz", - "@arm64-libsasl2-modules-db//:data.tar.xz", - "@arm64-libseccomp2//:data.tar.xz", - "@arm64-libselinux1//:data.tar.xz", - "@arm64-libsemanage2//:data.tar.xz", - "@arm64-libsepol2//:data.tar.xz", - "@arm64-libslang2//:data.tar.xz", - "@arm64-libslirp0//:data.tar.xz", - "@arm64-libsndio7.0//:data.tar.xz", - "@arm64-libspice-server1//:data.tar.xz", - "@arm64-libsqlite3-0//:data.tar.xz", - "@arm64-libssl3//:data.tar.xz", - "@arm64-libstdcxx6//:data.tar.xz", - "@arm64-libsystemd0//:data.tar.xz", - "@arm64-libtasn1-6//:data.tar.xz", - "@arm64-libtextwrap1//:data.tar.xz", - "@arm64-libtinfo6//:data.tar.xz", - "@arm64-libudev1//:data.tar.xz", - "@arm64-libunistring2//:data.tar.xz", - "@arm64-libunwind8//:data.tar.xz", - "@arm64-liburing2//:data.tar.xz", - "@arm64-libusb-1.0-0//:data.tar.xz", - "@arm64-libusbredirparser1//:data.tar.xz", - "@arm64-libuuid1//:data.tar.xz", - "@arm64-libvdeplug2//:data.tar.xz", - "@arm64-libwayland-server0//:data.tar.xz", - "@arm64-libzstd1//:data.tar.xz", - "@arm64-passwd//:data.tar.xz", - "@arm64-qemu-system-common//:data.tar.xz", - "@arm64-qemu-system-x86//:data.tar.xz", - "@arm64-zlib1g//:data.tar.xz", - ], + srcs = SRCS, compress = "@rules_zstd//zstd/toolchain/zstd:resolved", duplicate = "skip", ) diff --git a/debian/arm64/qemu-system-x86/srcs.bzl b/debian/arm64/qemu-system-x86/srcs.bzl new file mode 100644 index 00000000..8a85b381 --- /dev/null +++ b/debian/arm64/qemu-system-x86/srcs.bzl @@ -0,0 +1,118 @@ +visibility("//debian/arm64/qemu-system-x86/...") + +SRCS = ( + "//debian/arm64/libc6:data.tar.zst", + "//debian/arm64/tar:data.tar.zst", + "@all-adduser//:data.tar.xz", + "@all-debconf//:data.tar.xz", + "@all-ipxe-qemu//:data.tar.xz", + "@all-iso-codes//:data.tar.xz", + "@all-libasound2-data//:data.tar.xz", + "@all-libaudit-common//:data.tar.xz", + "@all-libdrm-common//:data.tar.xz", + "@all-libsemanage-common//:data.tar.xz", + "@all-qemu-system-data//:data.tar.xz", + "@all-readline-common//:data.tar.xz", + "@all-seabios//:data.tar.xz", + "@arm64-cdebconf//:data.tar.xz", + "@arm64-dpkg//:data.tar.xz", + "@arm64-gcc-12-base//:data.tar.xz", + "@arm64-install-info//:data.tar.xz", + "@arm64-libaio1//:data.tar.xz", + "@arm64-libasound2//:data.tar.xz", + "@arm64-libaudit1//:data.tar.xz", + "@arm64-libblkid1//:data.tar.xz", + "@arm64-libbpf1//:data.tar.xz", + "@arm64-libbrlapi0.8//:data.tar.xz", + "@arm64-libbsd0//:data.tar.xz", + "@arm64-libbz2-1.0//:data.tar.xz", + "@arm64-libcacard0//:data.tar.xz", + "@arm64-libcap-ng0//:data.tar.xz", + "@arm64-libcap2-bin//:data.tar.xz", + "@arm64-libcap2//:data.tar.xz", + "@arm64-libcapstone4//:data.tar.xz", + "@arm64-libcrypt1//:data.tar.xz", + "@arm64-libdaxctl1//:data.tar.xz", + "@arm64-libdb5.3//:data.tar.xz", + "@arm64-libdebian-installer4//:data.tar.xz", + "@arm64-libdrm2//:data.tar.xz", + "@arm64-libdw1//:data.tar.xz", + "@arm64-libelf1//:data.tar.xz", + "@arm64-libelogind0//:data.tar.xz", + "@arm64-libepoxy0//:data.tar.xz", + "@arm64-libexecs0//:data.tar.xz", + "@arm64-libexpat1//:data.tar.xz", + "@arm64-libfdt1//:data.tar.xz", + "@arm64-libffi8//:data.tar.xz", + "@arm64-libfuse3-3//:data.tar.xz", + "@arm64-libgbm1//:data.tar.xz", + "@arm64-libgcc-s1//:data.tar.xz", + "@arm64-libgcrypt20//:data.tar.xz", + "@arm64-libglib2.0-0//:data.tar.xz", + "@arm64-libgmp10//:data.tar.xz", + "@arm64-libgnutls30//:data.tar.xz", + "@arm64-libgpg-error0//:data.tar.xz", + "@arm64-libgstreamer-plugins-base1.0-0//:data.tar.xz", + "@arm64-libgstreamer1.0-0//:data.tar.xz", + "@arm64-libhogweed6//:data.tar.xz", + "@arm64-libibverbs1//:data.tar.xz", + "@arm64-libidn2-0//:data.tar.xz", + "@arm64-libjpeg62-turbo//:data.tar.xz", + "@arm64-libkmod2//:data.tar.xz", + "@arm64-liblz4-1//:data.tar.xz", + "@arm64-liblzma5//:data.tar.xz", + "@arm64-libmd0//:data.tar.xz", + "@arm64-libmount1//:data.tar.xz", + "@arm64-libncursesw6//:data.tar.xz", + "@arm64-libndctl6//:data.tar.xz", + "@arm64-libnettle8//:data.tar.xz", + "@arm64-libnewt0.52//:data.tar.xz", + "@arm64-libnl-3-200//:data.tar.xz", + "@arm64-libnl-route-3-200//:data.tar.xz", + "@arm64-libnspr4//:data.tar.xz", + "@arm64-libnss3//:data.tar.xz", + "@arm64-libnuma1//:data.tar.xz", + "@arm64-libopus0//:data.tar.xz", + "@arm64-liborc-0.4-0//:data.tar.xz", + "@arm64-libp11-kit0//:data.tar.xz", + "@arm64-libpam-modules//:data.tar.xz", + "@arm64-libpam0g//:data.tar.xz", + "@arm64-libpcre2-8-0//:data.tar.xz", + "@arm64-libpcsclite1//:data.tar.xz", + "@arm64-libpixman-1-0//:data.tar.xz", + "@arm64-libpmem1//:data.tar.xz", + "@arm64-libpng16-16//:data.tar.xz", + "@arm64-librdmacm1//:data.tar.xz", + "@arm64-libreadline8//:data.tar.xz", + "@arm64-libsasl2-2//:data.tar.xz", + "@arm64-libsasl2-modules-db//:data.tar.xz", + "@arm64-libseccomp2//:data.tar.xz", + "@arm64-libselinux1//:data.tar.xz", + "@arm64-libsemanage2//:data.tar.xz", + "@arm64-libsepol2//:data.tar.xz", + "@arm64-libslang2//:data.tar.xz", + "@arm64-libslirp0//:data.tar.xz", + "@arm64-libsndio7.0//:data.tar.xz", + "@arm64-libspice-server1//:data.tar.xz", + "@arm64-libsqlite3-0//:data.tar.xz", + "@arm64-libssl3//:data.tar.xz", + "@arm64-libstdcxx6//:data.tar.xz", + "@arm64-libsystemd0//:data.tar.xz", + "@arm64-libtasn1-6//:data.tar.xz", + "@arm64-libtextwrap1//:data.tar.xz", + "@arm64-libtinfo6//:data.tar.xz", + "@arm64-libudev1//:data.tar.xz", + "@arm64-libunistring2//:data.tar.xz", + "@arm64-libunwind8//:data.tar.xz", + "@arm64-liburing2//:data.tar.xz", + "@arm64-libusb-1.0-0//:data.tar.xz", + "@arm64-libusbredirparser1//:data.tar.xz", + "@arm64-libuuid1//:data.tar.xz", + "@arm64-libvdeplug2//:data.tar.xz", + "@arm64-libwayland-server0//:data.tar.xz", + "@arm64-libzstd1//:data.tar.xz", + "@arm64-passwd//:data.tar.xz", + "@arm64-qemu-system-common//:data.tar.xz", + "@arm64-qemu-system-x86//:data.tar.xz", + "@arm64-zlib1g//:data.tar.xz", +) -- GitLab From 84dab9db2adbccf76010c5925036a91ef6444a0a Mon Sep 17 00:00:00 2001 From: Matt Clarkson Date: Thu, 12 Sep 2024 13:20:58 +0100 Subject: [PATCH 4/4] build: script to get Debian packages --- debian/README.md | 62 +++++++--------------------------------------- debian/packages.sh | 47 +++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+), 53 deletions(-) create mode 100755 debian/packages.sh diff --git a/debian/README.md b/debian/README.md index 75e7c8bf..43cf0d3d 100644 --- a/debian/README.md +++ b/debian/README.md @@ -4,60 +4,16 @@ Provides targets that can run binaries from downloaded Debian packages. ## Packages -Start up a container for the Debian release required: +Get the dependent packages with the script running inside a container: ```console -podman --rm -it debian:bookworm /bin/bash +cat debian/packages.sh | + podman run \ + --rm --arch amd64 -ia stdin -a stdout -a stderr debian \ + /usr/bin/bash -s qemu-system-arm | + tee >(grep '("' | LC_ALL=C sort | tee /tmp/MODULE.bazel >&2) | + grep '"@' | LC_ALL=C sort | tee /tmp/srcs.bzl ``` -Update the package lists: - -```console -apt update -``` - -Install some needed tools: - -```console -apt install xxd -``` - -Run the script to get the package metadata: - -```console -apt download --print-uris $( - apt-cache depends \ - --recurse \ - --no-recommends \ - --no-suggests \ - --no-conflicts \ - --no-breaks \ - --no-replaces \ - --no-enhances \ - --no-pre-depends \ - qemu-system-arm | - grep '^\w' | - LC_ALL=C sort -) | - while IFS=" " read -r URI PKG _ CKSUM; do - URI="${URI#\'}" - URI="${URI%\'}" - URI="${URI//%2b/+}" - ALGO="$(printf '%s' "${CKSUM%%:*}" | tr '[:upper:]' '[:lower:]')" - DIGEST="${CKSUM#*:}" - INTEGRITY="${ALGO}-$(printf '%s' "${DIGEST}" | xxd -r -p | base64)" - echo "${URI##*/main/}" | - while IFS=/ read -r GROUP PROJECT PKG; do - echo "${PKG%.deb}" | - while IFS=_ read -r NAME VERSION CPU; do - printf '("%s", "%s", "%s", "%s", "%s", "%s"),\n' \ - "${CPU}" "${NAME}" "${VERSION}" "${GROUP}" "${PROJECT}" "${INTEGRITY}" - printf >&2 '"@%s-%s//:data.tar.xz",\n' \ - "${CPU}" "${NAME//+/x}" - done - done - done 2> >(LC_ALL=C sort | tee /tmp/BUILD.bazel) | - LC_ALL=C sort | tee /tmp/MODULE.bazel -``` - -The `stdout` can be copied into `MODULE.bazel`, `stderr` can be copied into the `BUILD.bazel` files. +`/tmp/MODULE.bazel` can be used to update `MODULE.bazel`. +`/tmp/srcs.bzl` can be used to update `debian///srcs.bzl`. diff --git a/debian/packages.sh b/debian/packages.sh new file mode 100755 index 00000000..d2674b19 --- /dev/null +++ b/debian/packages.sh @@ -0,0 +1,47 @@ +#! /usr/bin/env bash + +set -o errexit +set -o nounset +set -o pipefail + +test $# != 0 + +>&2 apt -qq update + +>&2 apt -qq install xxd -y + +PKGS="$( + apt-cache depends \ + --recurse \ + --no-recommends \ + --no-suggests \ + --no-conflicts \ + --no-breaks \ + --no-replaces \ + --no-enhances \ + --no-pre-depends \ + "${@}" | + grep '^\w' | + LC_ALL=C sort +)" + +# shellcheck disable=SC2086 +apt download --print-uris ${PKGS} | + while IFS=" " read -r URI PKG _ CKSUM; do + URI="${URI#\'}" + URI="${URI%\'}" + URI="${URI//%2b/+}" + ALGO="$(printf '%s' "${CKSUM%%:*}" | tr '[:upper:]' '[:lower:]')" + DIGEST="${CKSUM#*:}" + INTEGRITY="${ALGO}-$(printf '%s' "${DIGEST}" | xxd -r -p | base64)" + echo "${URI##*/main/}" | + while IFS=/ read -r GROUP PROJECT PKG; do + echo "${PKG%.deb}" | + while IFS=_ read -r NAME VERSION CPU; do + printf '("%s", "%s", "%s", "%s", "%s", "%s"),\n' \ + "${CPU}" "${NAME}" "${VERSION}" "${GROUP}" "${PROJECT}" "${INTEGRITY}" + printf '"@%s-%s//:data.tar.xz",\n' \ + "${CPU}" "${NAME//+/x}" + done + done + done -- GitLab