commit c664bbe30d570af2b5e2cc5f2cbb4c0b53328e70 parent 1af9fc6f3bd6e1f3899748366faa38f6c7c3b17b Author: Jan Pobříslo <ccx@te2000.cz> Date: Thu, 23 Jun 2022 00:40:55 +0200 Install bare-bones utils (busybox) from Alpine for bootstrapping Nix Diffstat:
M | zsh-functions/confz_containers_init | | | 28 | +++++++++++++++++++++++++--- |
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init @@ -933,6 +933,24 @@ confz_container_nix_image_from_release_check() { :checksum :checksum_algo \?hostname \?locale } +confz_container_nix_bootstrap_utils_check() { + checkvars user root arch + defvar keys_dir /etc/apk/keys + defvar apk_executable apk + do_command=( + s6-setuidgid $vars[user] + $vars[apk_executable] + --update-cache + --initdb + --arch $vars[arch] + --root $vars[root] + --keys-dir $vars[keys_dir] + --no-scripts + add alpine-keys busybox + ) + [[ -f $vars[root]/bin/sh ]] +} + confz_container_nix_unpacked_check() { checkvars containers_dir root user filename local download_dir=$vars[containers_dir]/download-cache @@ -942,7 +960,7 @@ confz_container_nix_unpacked_check() { tar -xpC "$vars[root]" -f "$download_dir/$vars[filename]" ) - [[ -f $vars[root]/install ]] + [[ -f $vars[root]/${vars[filename]%.tar.*}/install ]] } confz_container_nix_image_check() { @@ -953,14 +971,18 @@ confz_container_nix_image_check() { defvar locale C.UTF-8 unify root $vars[containers_dir]/systems/$vars[image_name] + unify user container-$vars[image_name] require container_download_and_verify :containers_dir \ :checksum :checksum_algo %filename :url require container_sysroot_user %uid %gid :containers_dir :image_name require container_generic_layout :uid :gid :root - require container_nix_unpacked :containers_dir :filename :root \ - user=container-$vars[image_name] + + require container_nix_bootstrap_utils :user :root \ + arch=x86_64 # TODO: infer correct arch + + require container_nix_unpacked :containers_dir :filename :root :user } confz_container_nix_packages_installed_check() {