From 23ee7693587b2aac2b633012290f2bc400fdc8b3 Mon Sep 17 00:00:00 2001 From: Dennis Gosnell Date: Thu, 2 Mar 2023 10:07:06 +0900 Subject: [PATCH 1/2] buildFHSUserEnv: add version arg This lets you set the version for the derivation produced from `buildFHSUserEnvChroot` and `buildFHSUserEnvBubblewrap`. This can help to make it more clear to end-users to see the versions of the packages they are using. --- .../build-fhs-userenv-bubblewrap/default.nix | 8 +++++++- pkgs/build-support/build-fhs-userenv/default.nix | 12 ++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix index 048233d728c4..d62e4d2a96f8 100644 --- a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix @@ -2,6 +2,7 @@ args @ { name +, version ? null , runScript ? "bash" , extraInstallCommands ? "" , meta ? {} @@ -24,6 +25,7 @@ let env = buildFHSEnv (removeAttrs args [ "runScript" "extraInstallCommands" "meta" "passthru" "extraBwrapArgs" "dieWithParent" "unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc" + "version" ]); etcBindFlags = let @@ -192,7 +194,11 @@ let bin = writeShellScriptBin name (bwrapCmd { initArgs = ''"$@"''; }); -in runCommandLocal name { + versionStr = lib.optionalString (! isNull version) ("-" + version); + + nameAndVersion = name + versionStr; + +in runCommandLocal nameAndVersion { inherit meta; passthru = passthru // { diff --git a/pkgs/build-support/build-fhs-userenv/default.nix b/pkgs/build-support/build-fhs-userenv/default.nix index e7db6a75297d..ab890387e6d2 100644 --- a/pkgs/build-support/build-fhs-userenv/default.nix +++ b/pkgs/build-support/build-fhs-userenv/default.nix @@ -1,11 +1,11 @@ -{ callPackage, runCommandLocal, writeScript, stdenv, coreutils }: +{ lib, callPackage, runCommandLocal, writeScript, stdenv, coreutils }: let buildFHSEnv = callPackage ./env.nix { }; in -args@{ name, runScript ? "bash", extraInstallCommands ? "", meta ? {}, passthru ? {}, ... }: +args@{ name, version ? null, runScript ? "bash", extraInstallCommands ? "", meta ? {}, passthru ? {}, ... }: let - env = buildFHSEnv (removeAttrs args [ "runScript" "extraInstallCommands" "meta" "passthru" ]); + env = buildFHSEnv (removeAttrs args [ "version" "runScript" "extraInstallCommands" "meta" "passthru" ]); chrootenv = callPackage ./chrootenv {}; @@ -23,7 +23,11 @@ let exec ${run} "$@" ''; -in runCommandLocal name { + versionStr = lib.optionalString (! isNull version) ("-" + version); + + nameAndVersion = name + versionStr; + +in runCommandLocal nameAndVersion { inherit meta; passthru = passthru // { From 81d23b8d3a022b5a74c9944a96e916c7f156382d Mon Sep 17 00:00:00 2001 From: Dennis Gosnell Date: Fri, 3 Mar 2023 09:04:17 +0900 Subject: [PATCH 2/2] buildFHSUserEnv: rewrite not isNull check Co-authored-by: Atemu --- pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix | 2 +- pkgs/build-support/build-fhs-userenv/default.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix index d62e4d2a96f8..4604b92313f5 100644 --- a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix @@ -194,7 +194,7 @@ let bin = writeShellScriptBin name (bwrapCmd { initArgs = ''"$@"''; }); - versionStr = lib.optionalString (! isNull version) ("-" + version); + versionStr = lib.optionalString (version != null) ("-" + version); nameAndVersion = name + versionStr; diff --git a/pkgs/build-support/build-fhs-userenv/default.nix b/pkgs/build-support/build-fhs-userenv/default.nix index ab890387e6d2..6f0adfb4e08c 100644 --- a/pkgs/build-support/build-fhs-userenv/default.nix +++ b/pkgs/build-support/build-fhs-userenv/default.nix @@ -23,7 +23,7 @@ let exec ${run} "$@" ''; - versionStr = lib.optionalString (! isNull version) ("-" + version); + versionStr = lib.optionalString (version != null) ("-" + version); nameAndVersion = name + versionStr;