diff options
author | Carl Dong <contact@carldong.me> | 2021-03-17 13:13:10 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2021-04-07 15:21:00 -0400 |
commit | 867a5e172a23899a4a70eca4a396c64f1951745e (patch) | |
tree | 9a6552df66a9207ace04cacb6f9b4f104f417bde | |
parent | 8f8b96fb542701b7717683caa3848390b24f77ab (diff) |
guix: Register garbage collector root for containers
By registering the container profiles as garbage collector roots, it
will prevent `guix gc` from garbage collecting derivations which our
container needs and inconvieniencing the user with a rebuild.
-rwxr-xr-x | contrib/guix/guix-build | 11 | ||||
-rw-r--r-- | contrib/guix/libexec/prelude.bash | 3 |
2 files changed, 13 insertions, 1 deletions
diff --git a/contrib/guix/guix-build b/contrib/guix/guix-build index a0eef59ac1..56c3398c97 100755 --- a/contrib/guix/guix-build +++ b/contrib/guix/guix-build @@ -207,7 +207,7 @@ time-machine() { # Precious directories are those which should not be cleaned between successive # guix builds depends_precious_dir_names='SOURCES_PATH BASE_CACHE SDK_PATH' -precious_dir_names="${depends_precious_dir_names} OUTDIR_BASE" +precious_dir_names="${depends_precious_dir_names} OUTDIR_BASE PROFILES_BASE" # Usage: contains IFS-SEPARATED-LIST ITEM contains() { @@ -275,6 +275,14 @@ outdir_for_host() { echo "${OUTDIR_BASE}/${1}" } +# Usage: profiledir_for_host HOST COMMAND +# +# HOST: The current platform triple we're building for +# +profiledir_for_host() { + echo "${PROFILES_BASE}/${2}-${1}" +} + ######### # BUILD # @@ -404,6 +412,7 @@ EOF --keep-failed \ --fallback \ --link-profile \ + --root="$(profiledir_for_host "${HOST}" build)" \ ${SUBSTITUTE_URLS:+--substitute-urls="$SUBSTITUTE_URLS"} \ ${ADDITIONAL_GUIX_COMMON_FLAGS} ${ADDITIONAL_GUIX_ENVIRONMENT_FLAGS} \ -- env HOST="$host" \ diff --git a/contrib/guix/libexec/prelude.bash b/contrib/guix/libexec/prelude.bash index e6d3a5b722..971aebf2b0 100644 --- a/contrib/guix/libexec/prelude.bash +++ b/contrib/guix/libexec/prelude.bash @@ -61,3 +61,6 @@ OUTDIR_BASE="${OUTDIR_BASE:-${VERSION_BASE}/output}" var_base_basename="var" VAR_BASE="${VAR_BASE:-${VERSION_BASE}/${var_base_basename}}" + +profiles_base_basename="profiles" +PROFILES_BASE="${PROFILES_BASE:-${VAR_BASE}/${profiles_base_basename}}" |