From: Andrew Tropin <andrew@trop.in>
To: Jan Nieuwenhuizen <janneke@gnu.org>, 50945@debbugs.gnu.org
Subject: bug#50945: Guix home: No such file or directory: "/run/user/1003/on-first-login-executed"
Date: Thu, 07 Oct 2021 08:21:24 +0300 [thread overview]
Message-ID: <871r4xwgtn.fsf@trop.in> (raw)
In-Reply-To: <87y27czr0v.fsf@gnu.org>
[-- Attachment #1.1: Type: text/plain, Size: 4908 bytes --]
On 2021-10-01 17:46, Jan Nieuwenhuizen wrote:
> Hi,
>
> When using su or sudo to enter an account managed by guix home, I get
> this error
>
> --8<---------------cut here---------------start------------->8---
> Backtrace:
> 2 (primitive-load "/home/guix/.guix-home/on-first-login")
> In ice-9/ports.scm:
> 461:11 1 (call-with-output-file "/run/user/1003/on-first-login-…" …)
> In unknown file:
> 0 (open-file "/run/user/1003/on-first-login-executed" "w" …)
>
> ERROR: In procedure open-file:
> In procedure open-file: No such file or directory: "/run/user/1003/on-first-login-executed"
> --8<---------------cut here---------------end--------------->8---
>
> Upon a console login or ssh login, /var/run/1003 is created and all is fine.
>
> See below for the scenario, home-minimal.scm is attached.
>
> Greetings,
> Janneke
>
>
> $ ssh guix@localhost -p 2222
> guix@localhost's password:
> Last login: Tue Jun 23 11:45:08 2020 from 2001:980:1b4f:1:216:d3ff:fe29:7cdb
> guix@dundal ~$ guix home reconfigure home-minimal.scm
> /gnu/store/fgxpmf1iwjp9f8dfyaf7wxqa8105lq3w-home
> Cleaning up symlinks from previous home-environment.
>
> Skipping /home/guix/.config/fontconfig (not an empty directory)... done
> Skipping /home/guix/.config (not an empty directory)... done
> Cleanup finished.
>
> New symlinks to home-environment will be created soon.
> All conflicting files will go to /home/guix/1633101995-guix-home-legacy-configs-backup.
>
> Skipping /home/guix/.config (directory already exists)... done
> Creating /home/guix/.config/fontconfig... done
> Symlinking /home/guix/.config/fontconfig/fonts.conf -> /gnu/store/phj2z2iiqdhryfy7mqral0b9qz3hlva6-fonts.conf... done
> Symlinking /home/guix/.config/test.conf -> /gnu/store/bdixb09v30bvhpgi2f6ndiq25wzb9l74-tmp-file.txt... done
> Symlinking /home/guix/.bash_profile -> /gnu/store/j3vhlswj46psxicapnq8c9p1jrwd55rk-bash_profile... done
> Symlinking /home/guix/.profile -> /gnu/store/fxbppk3pqzdi3zzy0xl5vg1ir6c5jzq5-shell-profile... done
> Symlinking /home/guix/.bashrc -> /gnu/store/513j2xkszmcmv7fiawh59mr0i1fmin55-bashrc... done
> done
> Finished updating symlinks.
>
> Comparing /gnu/store/fgxpmf1iwjp9f8dfyaf7wxqa8105lq3w-home/profile/share/fonts and
> /gnu/store/fgxpmf1iwjp9f8dfyaf7wxqa8105lq3w-home/profile/share/fonts... done (same)
> Evaling on-change gexps.
>
> On-change gexps evaluation finished.
>
> guix@dundal ~$ guix home list-generations
> ]8;;file://dundal/var/guix/profiles/per-user/guix/guix-home-1-link\Generation 1 Oct 01 2021 12:19:16]8;;\ (current)
> file name: /var/guix/profiles/per-user/guix/guix-home-1-link
> canonical file name: /gnu/store/fgxpmf1iwjp9f8dfyaf7wxqa8105lq3w-home
> channels:
> guix:
> repository URL: https://git.savannah.gnu.org/git/guix.git
> branch: master
> commit: ]8;;https://git.savannah.gnu.org/cgit/guix.git/commit/?id=56b10709efc4eb35df66f52a20ce3cb7fab4fee6\56b10709efc4eb35df66f52a20ce3cb7fab4fee6]8;;\
> configuration file: ]8;;file://dundal/gnu/store/kjha5z8mck0pa9jrgx2266rq1lvlb3ji-configuration.scm\/gnu/store/kjha5z8mck0pa9jrgx2266rq1lvlb3ji-configuration.scm]8;;\
> guix@dundal ~$ logout
> Connection to localhost closed.
> 17:26:49 janneke@dundal:~
> $ sudo -i -u guix
> Password:
> Backtrace:
> 2 (primitive-load "/home/guix/.guix-home/on-first-login")
> In ice-9/ports.scm:
> 461:11 1 (call-with-output-file "/run/user/1003/on-first-login-…" …)
> In unknown file:
> 0 (open-file "/run/user/1003/on-first-login-executed" "w" …)
>
> ERROR: In procedure open-file:
> In procedure open-file: No such file or directory: "/run/user/1003/on-first-login-executed"
> guix@dundal ~$ ls -ltrF /run/user
> total 0
> drwx------ 7 gdm gdm 160 Oct 1 12:16 971/
> drwx------ 13 janneke janneke 260 Oct 1 13:07 1000/
> guix@dundal ~$ logout
> 17:29:34 janneke@dundal:~
> $ su - guix
> Password:
> Backtrace:
> 2 (primitive-load "/home/guix/.guix-home/on-first-login")
> In ice-9/ports.scm:
> 461:11 1 (call-with-output-file "/run/user/1003/on-first-login-…" …)
> In unknown file:
> 0 (open-file "/run/user/1003/on-first-login-executed" "w" …)
>
> ERROR: In procedure open-file:
> In procedure open-file: No such file or directory: "/run/user/1003/on-first-login-executed"
> 17:37:33 janneke@dundal:~
> $ ssh guix@localhost -p 2222
> guix@localhost's password:
> Last login: Fri Oct 1 17:23:35 2021 from 127.0.0.1
> guix@dundal ~$
Thank you for a very detailed report.
pam_elogind doesn't create a session, when the login shell spawned by
sudo or su => XDG_RUNTIME_DIR not get created => this message appears.
I think we can omit execution of any processes by on-first-login script
in case session wasn't created. Added the check:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-home-services-on-first-login-Check-if-XDG_RUNTIME_DI.patch --]
[-- Type: text/x-patch, Size: 1397 bytes --]
From aab6df0298963fe91a6ebfd1dadbc1530eceeff7 Mon Sep 17 00:00:00 2001
From: Andrew Tropin <andrew@trop.in>
Date: Thu, 7 Oct 2021 08:12:04 +0300
Subject: [PATCH] home-services: on-first-login: Check if XDG_RUNTIME_DIR
exists.
* gnu/home-services.scm (on-first-login): on-first-login won't execute
anything if XDG_RUNTIME_DIR doesn't exists.
---
gnu/home-services.scm | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/gnu/home-services.scm b/gnu/home-services.scm
index 9f1e986616..0b77a1321d 100644
--- a/gnu/home-services.scm
+++ b/gnu/home-services.scm
@@ -286,8 +286,11 @@ will be put in @file{~/.guix-home/files}.")))
;; XDG_RUNTIME_DIR dissapears on logout, that means such trick
;; allows to launch on-first-login script on first login only
;; after complete logout/reboot.
- (when (not (file-exists? flag-file-path))
- (begin #$@gexps (touch flag-file-path))))))
+ (if (file-exists? xdg-runtime-dir)
+ (when (not (file-exists? flag-file-path))
+ (begin #$@gexps (touch flag-file-path)))
+ (display "XDG_RUNTIME_DIR doesn't exists, the session wasn't
+created, on-first-login script won't execute anything.")))))
(define (on-first-login-script-entry m-on-first-login)
"Return, as a monadic value, an entry for the on-first-login script
--
2.33.0
[-- Attachment #1.3: Type: text/plain, Size: 37 bytes --]
--
Best regards,
Andrew Tropin
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
next prev parent reply other threads:[~2021-10-07 5:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-01 15:46 bug#50945: Guix home: No such file or directory: "/run/user/1003/on-first-login-executed" Jan Nieuwenhuizen
2021-10-01 17:05 ` Xinglu Chen
2021-10-07 5:21 ` Andrew Tropin [this message]
2021-11-05 16:58 ` Xinglu Chen
2021-11-08 9:24 ` Andrew Tropin
2021-11-14 22:11 ` Ludovic Courtès
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=871r4xwgtn.fsf@trop.in \
--to=andrew@trop.in \
--cc=50945@debbugs.gnu.org \
--cc=janneke@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).