From 65bb0d92d87a1ef951fde0c28cb258e4570fdd36 Mon Sep 17 00:00:00 2001 From: Rutherther Date: Wed, 4 Jun 2025 16:34:29 +0200 Subject: [PATCH] pack: Singularity environemt sources the profile's 'etc/profile'. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #419 where the same search path is used multiple times, leading to the last one overriding the previous one. The solution relies on the #$profile/etc/profile file that is already verified and in case of errors, it is just one place to repair instead of repairing at multiple places, like in singularity-environment-file * guix/pack.scm (singularity-environment-file): Source #$profile/etc/profile Reported-by: Alexis Simon Change-Id: Ic304fef99ad34d83e4e10cdd2b26d3b1802b5251 Signed-off-by: Ludovic Courtès --- guix/scripts/pack.scm | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index 857cb46af37..1d2046775cf 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -312,25 +312,12 @@ added to the pack." "Return a shell script that defines the environment variables corresponding to the search paths of PROFILE." (define build - (with-extensions (list guile-gcrypt) - (with-imported-modules `(((guix config) => ,(make-config.scm)) - ,@(source-module-closure - `((guix profiles) - (guix search-paths)) - #:select? not-config?)) - #~(begin - (use-modules (guix profiles) (guix search-paths) - (ice-9 match)) + #~(begin + (use-modules (ice-9 match)) - (call-with-output-file #$output - (lambda (port) - (for-each (match-lambda - ((spec . value) - (format port "~a=~a~%export ~a~%" - (search-path-specification-variable spec) - value - (search-path-specification-variable spec)))) - (profile-search-paths #$profile)))))))) + (call-with-output-file #$output + (lambda (port) + (format port ". ~a/etc/profile~%" #$profile))))) (computed-file "singularity-environment.sh" build))