unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Andrew Tropin <andrew@trop.in>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 56777@debbugs.gnu.org
Subject: [bug#56777] [PATCH] Use absolute path for home activation script.
Date: Tue, 30 Aug 2022 10:01:31 +0300	[thread overview]
Message-ID: <87pmgi2p10.fsf@trop.in> (raw)
In-Reply-To: <871qsy68wd.fsf@gnu.org>

[-- Attachment #1: Type: text/plain, Size: 2036 bytes --]

On 2022-08-29 23:24, Ludovic Courtès wrote:

> Hi Andrew,
>
> Andrew Tropin <andrew@trop.in> skribis:
>
>> * gnu/home/services.scm (compute-activation-script): Use absolute path for
>> home activation script.
>>
>> ---
>>  gnu/home/services.scm | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/gnu/home/services.scm b/gnu/home/services.scm
>> index b05ec53e2a..6d5e4308a0 100644
>> --- a/gnu/home/services.scm
>> +++ b/gnu/home/services.scm
>> @@ -418,7 +418,7 @@ (define (compute-activation-script init-gexp gexps)
>>              (new-home-env (getenv "GUIX_NEW_HOME"))
>>              (new-home (or new-home-env
>>                            ;; Path of the activation file if called interactively
>> -                          (dirname (car (command-line)))))
>> +                          (canonicalize-path (dirname (car (command-line))))))
>
> Just wondering: what’s the rationale?

It's been a while since I posted it, but IIRC, in case the activation
script called manually from other directory without this change the
relative new-home can be set, which can fail later if some of activation
code changes the current working directory, but reference home
environment by relative path.  Probably I faced this one, when was
working on prototype for https://issues.guix.gnu.org/56669

Another hypothetical case, which can fail:
ln -s /gnu/store/...-home ~/tmp/he
~/tmp/he/activate
rm ~/tmp/he
# Dangling symlink ~/.guix-home -> ~/tmp/he

Last one can be solved by resolving full path of new-home in
symlink-manager, but always setting new-home to absolute path to home
item in the store seems as a way to avoid both potential problems
mentioned above.

This change is pushed as ffc391500ac7eae1ef100d8d36f6c01f4f606170

>
> This is harmless-looking and perhaps it’s all fine, but IME calling
> ‘canonicalize-path’ might sometimes paper over problems related to file
> name handling.

Will keep it in mind.

-- 
Best regards,
Andrew Tropin

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

      reply	other threads:[~2022-08-30  7:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-14  6:16 [bug#56777] [PATCH] Use absolute path for home activation script Andrew Tropin
2022-08-29 21:24 ` Ludovic Courtès
2022-08-30  7:01   ` Andrew Tropin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87pmgi2p10.fsf@trop.in \
    --to=andrew@trop.in \
    --cc=56777@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).