"""AppImage rules for Bazel.""" module( name = "rules_appimage", version = "1.20.0", ) bazel_dep(name = "bazel_skylib", version = "1.8.2") bazel_dep(name = "platforms", version = "0.0.11") bazel_dep(name = "rules_cc", version = "0.2.13") bazel_dep(name = "rules_python", version = "1.7.0") bazel_dep(name = "rules_shell", version = "0.6.1") bazel_dep(name = "squashfs-tools", version = "4.7.4") bazel_dep(name = "aspect_bazel_lib", version = "2.21.2", dev_dependency = True) bazel_dep(name = "container_structure_test", version = "1.19.1", dev_dependency = True) bazel_dep(name = "rules_oci", version = "2.2.6", dev_dependency = True) bazel_dep(name = "rules_pkg", version = "1.1.0", dev_dependency = True) bazel_dep(name = "rules_pycross", version = "0.8.1", dev_dependency = True) bazel_dep(name = "rules_testing", version = "0.9.0", dev_dependency = True) bazel_dep(name = "stardoc", version = "0.8.0", dev_dependency = True) bazel_dep(name = "with_cfg.bzl", version = "0.10.3", dev_dependency = True) rules_appimage = use_extension("//:extensions.bzl", "appimage_ext_dependencies") use_repo( rules_appimage, "appimage_runtime_aarch64", "appimage_runtime_armv7e-m", "appimage_runtime_i386", "appimage_runtime_x86_64", ) register_toolchains("//appimage:all") # 3.13 is blocked by https://github.com/jvolkman/rules_pycross/issues/128 _DEFAULT_PYTHON = "3.12" python = use_extension("@rules_python//python/extensions:python.bzl", "python") python.toolchain( is_default = True, python_version = _DEFAULT_PYTHON, ) use_repo(python, "python_" + _DEFAULT_PYTHON.replace(".", "_"), "python_versions", "pythons_hub") register_toolchains("@pythons_hub//:all") dev_pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip", dev_dependency = True) dev_pip.parse( hub_name = "rules_appimage_py_deps", python_version = _DEFAULT_PYTHON, requirements_lock = "//:requirements.txt", ) use_repo(dev_pip, "rules_appimage_py_deps") pycross = use_extension("@rules_pycross//pycross/extensions:pycross.bzl", "pycross", dev_dependency = True) pycross.configure_environments( platforms = ["x86_64-unknown-linux-gnu"], python_versions = [_DEFAULT_PYTHON], ) lock_import = use_extension("@rules_pycross//pycross/extensions:lock_import.bzl", "lock_import", dev_dependency = True) lock_import.import_pdm( lock_file = "//tests/rules_pycross:pdm.lock", project_file = "//tests/rules_pycross:pyproject.toml", repo = "pdm_deps", ) lock_repos = use_extension("@rules_pycross//pycross/extensions:lock_repos.bzl", "lock_repos", dev_dependency = True) use_repo(lock_repos, "pdm_deps") # Keep in sync with WORKSPACE oci = use_extension("@rules_oci//oci:extensions.bzl", "oci", dev_dependency = True) oci.pull( name = "python3-slim", digest = "sha256:69ce3aed05675d284bee807e7c45e560e98db21fb1e4c670252b4ee0f2496b6d", # "3.12-slim" as of 2025-01-25 image = "docker.io/library/python", platforms = ["linux/amd64"], ) oci.pull( name = "distroless-cc", digest = "sha256:ab14dfad5239a33d5a413a9c045803d71717e4c44c01c62a8073732e5c9cc1e1", # "debug-nonroot" as of 2025-03-03 image = "gcr.io/distroless/cc-debian12", platforms = ["linux/amd64"], ) use_repo(oci, "distroless-cc", "distroless-cc_linux_amd64", "python3-slim", "python3-slim_linux_amd64")