all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#62890: StumpWM fails to start - Read only file system
@ 2023-04-16 22:32 Kjartan Óli Águstsson
  2023-04-24 12:57 ` Guillaume Le Vaillant
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Kjartan Óli Águstsson @ 2023-04-16 22:32 UTC (permalink / raw)
  To: 62890

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

I just started experiencing an issue with stumpwm where it fails to
start, complaining about a read only file system.  A web search for the
error message leads me to
https://lists.gnu.org/archive/html/help-guix/2021-02/msg00080.html,
which sounds exactly like the problem I'm experiencing.  I'm unsure how
to get the backtrace shared in that thread, or in general how to proceed
with debugging this.

guix describe shows:
  guix 9a5e1dc
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: 9a5e1dc1f16f5f8c056e64f2077b035784003673
but I tried rolling back to an earlier system generation:
  guix:
    repository URL: https://git.savannah.gnu.org/git/guix.git
    branch: master
    commit: d513ba83ebca347164098bb0fa1354f3657bc7e2
to no success so I doubt it is a new change in Guix.

Unless I'm missing something in the help-guix thread there is no
solution discussed there, so any help in debugging this would be greatly
appreciated.

-- 
Kjartan Oli Agustsson
GPG Key fingerprint: 4801 0D71 49C0 1DD6 E5FD  6AC9 D757 2FE3 605E E6B0

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62890: StumpWM fails to start - Read only file system
  2023-04-16 22:32 bug#62890: StumpWM fails to start - Read only file system Kjartan Óli Águstsson
@ 2023-04-24 12:57 ` Guillaume Le Vaillant
  2023-04-25  9:35   ` Guillaume Le Vaillant
  2024-01-12 21:02 ` bug#62890: StumpWM with --no-grafts and System/Home mismatches Richard Sent
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Guillaume Le Vaillant @ 2023-04-24 12:57 UTC (permalink / raw)
  To: Kjartan Óli Águstsson; +Cc: 62890

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

Kjartan Óli Águstsson <kjartanoli@outlook.com> skribis:

> I just started experiencing an issue with stumpwm where it fails to
> start, complaining about a read only file system.  A web search for the
> error message leads me to
> https://lists.gnu.org/archive/html/help-guix/2021-02/msg00080.html,
> which sounds exactly like the problem I'm experiencing.  I'm unsure how
> to get the backtrace shared in that thread, or in general how to proceed
> with debugging this.
>
> guix describe shows:
>   guix 9a5e1dc
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 9a5e1dc1f16f5f8c056e64f2077b035784003673
> but I tried rolling back to an earlier system generation:
>   guix:
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: d513ba83ebca347164098bb0fa1354f3657bc7e2
> to no success so I doubt it is a new change in Guix.
>
> Unless I'm missing something in the help-guix thread there is no
> solution discussed there, so any help in debugging this would be greatly
> appreciated.

Hi,

I just got the same problem after reconfiguring a machine (using
guix-home, but I'm not sure if it is relevant). It only happens when
I try to load extra modules from the ".stumpwm/init.lisp" file.

It looks like the configuration indicating where to search for the
compiled Common Lisp files (ASDF's source-registry and
output-translations) is not taken into consideration by Stumpwm
anymore... so it tries to recompile them in the wrong place.

As a workaround, replacing:
  exec stumpwm
by:
  exec sbcl --no-userinit --non-interactive --eval '(require :asdf)' --eval '(asdf:load-system "stumpwm")' --eval '(stumpwm:stumpwm)'
in my ".xsession" file seems to work...

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62890: StumpWM fails to start - Read only file system
  2023-04-24 12:57 ` Guillaume Le Vaillant
@ 2023-04-25  9:35   ` Guillaume Le Vaillant
  0 siblings, 0 replies; 10+ messages in thread
From: Guillaume Le Vaillant @ 2023-04-25  9:35 UTC (permalink / raw)
  To: Guillaume Le Vaillant; +Cc: Kjartan Óli Águstsson, 62890

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

I think the issue comes from grafts.

Without grafts, the ASDF configuration is coherent; the path for
stumpwm's sources and libraries is the same everywhere (here in
stumpwm:lib and sbcl-stumpwm-cpu):

--8<---------------cut here---------------start------------->8---
$ cat $(guix build --no-grafts stumpwm | grep 'lib$')/etc/common-lisp/*/50-stumpwm.conf
(("/gnu/store/v18hzbid3rjblz35s69w4c0gcsx9f9w9-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*)
 ("/gnu/store/v18hzbid3rjblz35s69w4c0gcsx9f9w9-stumpwm-22.11-lib/lib/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*))

(:tree "/gnu/store/v18hzbid3rjblz35s69w4c0gcsx9f9w9-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm")

$ cat $(guix build --no-grafts sbcl-stumpwm-cpu)/etc/common-lisp/*/50-stumpwm.conf
(("/gnu/store/v18hzbid3rjblz35s69w4c0gcsx9f9w9-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*)
 ("/gnu/store/v18hzbid3rjblz35s69w4c0gcsx9f9w9-stumpwm-22.11-lib/lib/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*))

(:tree "/gnu/store/v18hzbid3rjblz35s69w4c0gcsx9f9w9-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm")
--8<---------------cut here---------------end--------------->8---


With grafts, we get different paths, which probably explains why ASDF
fails to find the compiled Lisp files it is looking for:

--8<---------------cut here---------------start------------->8---
$ cat $(guix build stumpwm | grep 'lib$')/etc/common-lisp/*/50-stumpwm.conf
(("/gnu/store/wsjyjqf20ldbmgdq96h73qikmwhxv36c-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*)
 ("/gnu/store/wsjyjqf20ldbmgdq96h73qikmwhxv36c-stumpwm-22.11-lib/lib/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*))

(:tree "/gnu/store/wsjyjqf20ldbmgdq96h73qikmwhxv36c-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm")

$ cat $(guix build sbcl-stumpwm-cpu)/etc/common-lisp/*/50-stumpwm.conf
(("/gnu/store/h8i8mwsgjb96r407xqa2sf56clgy7r7c-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*)
 ("/gnu/store/h8i8mwsgjb96r407xqa2sf56clgy7r7c-stumpwm-22.11-lib/lib/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*))

(:tree "/gnu/store/h8i8mwsgjb96r407xqa2sf56clgy7r7c-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm")
--8<---------------cut here---------------end--------------->8---

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62890: StumpWM with --no-grafts and System/Home mismatches
  2023-04-16 22:32 bug#62890: StumpWM fails to start - Read only file system Kjartan Óli Águstsson
  2023-04-24 12:57 ` Guillaume Le Vaillant
@ 2024-01-12 21:02 ` Richard Sent
  2024-05-03  2:30 ` bug#62890: Specific graft that's at fault Richard Sent
  2024-05-27  6:54 ` bug#62890: Likely cause found, excess library grafting Richard Sent
  3 siblings, 0 replies; 10+ messages in thread
From: Richard Sent @ 2024-01-12 21:02 UTC (permalink / raw)
  To: 62890

I've noticed the same behavior and was able to resolve it by adding 
--no-grafts whenever I reconfigure my system and home profiles. Likely 
just the former is necessary, but I haven't tested it.

I've also noticed this behavior (SBCL trying to place .fasl in 
/gnu/store) once when I pulled, reconfigured system, and didn't 
reconfigure home. I have my setup configured such that StumpWM is 
installed at the system level, while contrib packages are installed via 
guix home.

I ran a git bisect and continually reconfigured my system to try and 
narrow down what commit it was, and was able to isolate it to either an 
xorgproto or Mesa update. Home was built before (49a7a95ba4) the commit, 
System after (d55a4431f3). The offending commit in this particular case 
lies somewhere between d55a4431f3 and 17c3a3bfff. (This probably isn't 
actually a bug, but I'm posting it in case anyone else runs into a 
similar issue in the future.)

If anyone else has a similar setup, encounters this issue, and already 
uses --no-grafts, be sure both the system and home profiles are built 
with the same version of Guix.

Richard Sent




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62890: Specific graft that's at fault
  2023-04-16 22:32 bug#62890: StumpWM fails to start - Read only file system Kjartan Óli Águstsson
  2023-04-24 12:57 ` Guillaume Le Vaillant
  2024-01-12 21:02 ` bug#62890: StumpWM with --no-grafts and System/Home mismatches Richard Sent
@ 2024-05-03  2:30 ` Richard Sent
  2024-05-27  6:54 ` bug#62890: Likely cause found, excess library grafting Richard Sent
  3 siblings, 0 replies; 10+ messages in thread
From: Richard Sent @ 2024-05-03  2:30 UTC (permalink / raw)
  To: 62890

Hi Guix!

The issue is likely caused by the glibc/fixed graft in (gnu packages
base). When this graft is removed, the the path discussed earlier is
coherent. Other grafts do not appear relevant.

--8<---------------cut here---------------start------------->8---
Building stumpwm
(("/gnu/store/w2jw4s7dnw0yfsp5125dpxiyz6lp7v3w-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*)
 ("/gnu/store/w2jw4s7dnw0yfsp5125dpxiyz6lp7v3w-stumpwm-22.11-lib/lib/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*))

(:tree "/gnu/store/w2jw4s7dnw0yfsp5125dpxiyz6lp7v3w-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm")

Building sbcl-stumpwm-cpu
(("/gnu/store/w2jw4s7dnw0yfsp5125dpxiyz6lp7v3w-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*)
 ("/gnu/store/w2jw4s7dnw0yfsp5125dpxiyz6lp7v3w-stumpwm-22.11-lib/lib/common-lisp/sbcl/stumpwm"
  :**/
  :*.*.*))

(:tree "/gnu/store/w2jw4s7dnw0yfsp5125dpxiyz6lp7v3w-stumpwm-22.11-lib/share/common-lisp/sbcl/stumpwm")
--8<---------------cut here---------------end--------------->8---

Unfortunately stumpwm currently doesn't build on core-updates so I can't
check if the discrepency would occur there where glibc isn't grafted.

How exactly does that graft causes the problem? No clue.

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62890: Likely cause found, excess library grafting
  2023-04-16 22:32 bug#62890: StumpWM fails to start - Read only file system Kjartan Óli Águstsson
                   ` (2 preceding siblings ...)
  2024-05-03  2:30 ` bug#62890: Specific graft that's at fault Richard Sent
@ 2024-05-27  6:54 ` Richard Sent
  2024-05-27  7:05   ` bug#62890: StumpWM fails to start - Read only file system Richard Sent
  3 siblings, 1 reply; 10+ messages in thread
From: Richard Sent @ 2024-05-27  6:54 UTC (permalink / raw)
  To: 62890

Hi Guix!

Once again I sunk more time into this issue when I should have been
sleeping. Here's what I found:

Building a grafted stumpwm directly creates one stumpwm:lib output.
Building it /indirectly/ as a dependency of, say, sbcl-stumpwm-cpu,
creates another, distinct stumpwm:lib output. This difference in
stumpwm:lib outputs is reflected in 50-stumpwm.conf being incoherent.

Packages that depend on say, A:lib graft their own copies of A:lib that
is distinct from grafting A:out and A:lib together. This behavior
confuses asdf-build-system and leads to breakage.

Here's a link to an issue discussing excess library grafts:
https://issues.guix.gnu.org/47115#23

The simplest way to resolve this I feel is to either:

1. Remove stumpwm:lib entirely and just have stumpwm:out
   1. Realistically is anyone out there using stumpwm:lib but NOT
   stumpwm:out? What would the point of that be?
2. Add stumpwm as an input to to any package that just uses stumpwm:lib.

Between the two, I strongly prefer 1.

Below is a bunch of debug output to show how I reached the conclusion
that I did.

--8<---------------cut here---------------start------------->8---
richard@gibraltar ~/code/cloned/guix [env]$ ./pre-inst-env guix build stumpwm --check
The following graft will be made:
/gnu/store/bsxspzrhfwsl4qp0n01mgcaqcp1934dj-stumpwm-22.11.drv
applying 9 grafts for stumpwm-22.11 ...
grafting '/gnu/store/j73w1n1sf3gqgx8qx3cx9csbrndddq0b-stumpwm-22.11-lib' -> '/gnu/store/r4sc5ylh2g30zgr10q35phd80cb3llqy-stumpwm-22.11-lib'...
grafting '/gnu/store/2rd3r0m8q11icwhhbwfl20ali3w5mwf4-stumpwm-22.11' -> '/gnu/store/azj1nchh8b9h9bssyzs15qbpd9p1zf7h-stumpwm-22.11'...
successfully built /gnu/store/bsxspzrhfwsl4qp0n01mgcaqcp1934dj-stumpwm-22.11.drv
successfully built /gnu/store/bsxspzrhfwsl4qp0n01mgcaqcp1934dj-stumpwm-22.11.drv
successfully built /gnu/store/bsxspzrhfwsl4qp0n01mgcaqcp1934dj-stumpwm-22.11.drv
/gnu/store/r4sc5ylh2g30zgr10q35phd80cb3llqy-stumpwm-22.11-lib
/gnu/store/azj1nchh8b9h9bssyzs15qbpd9p1zf7h-stumpwm-22.11

# ^ here 50-stumpwm.conf refers to r4sc5ylh..., as it should
# whereas
# below 50-stumpwm.conf refers to y8fd8yirq. Notice how stumpwm is
# grafted differently

richard@gibraltar ~/code/cloned/guix [env]$ ./pre-inst-env guix build sbcl-stumpwm-cpu
The following grafts will be made:
/gnu/store/w8fbnjz3a8rzigldazhqn75v1ncrwnmr-sbcl-stumpwm-cpu-0.0.1-5.4613a95.drv
/gnu/store/w5027r2xlf88pfafw9dsx38cya01la83-stumpwm-22.11.drv
applying 5 grafts for stumpwm-22.11 ...
grafting '/gnu/store/j73w1n1sf3gqgx8qx3cx9csbrndddq0b-stumpwm-22.11-lib' -> '/gnu/store/y8fd8yirq8n87sl7pv2wliwihrrbv820-stumpwm-22.11-lib'...
successfully built /gnu/store/w5027r2xlf88pfafw9dsx38cya01la83-stumpwm-22.11.drv
applying 2 grafts for sbcl-stumpwm-cpu-0.0.1-5.4613a95 ...
grafting '/gnu/store/r3l0dxxlcdh73092q9fmjj629klayxhq-sbcl-stumpwm-cpu-0.0.1-5.4613a95' -> '/gnu/store/nvp9y9qgpv4w22dqbjmdyc0l41gymims-sbcl-stumpwm-cpu-0.0.1-5.4613a95'...
successfully built /gnu/store/w8fbnjz3a8rzigldazhqn75v1ncrwnmr-sbcl-stumpwm-cpu-0.0.1-5.4613a95.drv
/gnu/store/nvp9y9qgpv4w22dqbjmdyc0l41gymims-sbcl-stumpwm-cpu-0.0.1-5.4613a95
--8<---------------cut here---------------end--------------->8---

Now that there are two distinct derivations for two distinct stumpwm:lib
outputs, we can look at the builders.

--8<---------------cut here---------------start------------->8---
;; guix build stumpwm, stumpwm graft builder
(begin (use-modules (guix build graft) (guix build utils) (ice-9 match))
       (define %outputs (list (cons "lib" ((@ (guile) getenv) "lib")) (cons "out" ((@ (guile) getenv) "out"))))
       (begin (setenv "GUIX_LOCPATH" "/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib/locale")
              (setlocale LC_ALL "en_US.utf8"))
       (let* ((old-outputs (quote (("lib" . "/gnu/store/j73w1n1sf3gqgx8qx3cx9csbrndddq0b-stumpwm-22.11-lib")
                                   ("out" . "/gnu/store/2rd3r0m8q11icwhhbwfl20ali3w5mwf4-stumpwm-22.11"))))
              (mapping (append (quote (("/gnu/store/hqxzgbbbnxl8l9q8bcsvzvmyw1mjws4r-zstd-1.5.2-lib" . "/gnu/store/x35wy730jwwmwwypvzy2nmqvcb3hc3ba-zstd-1.5.2-lib")
                                       ("/gnu/store/930nwsiysdvy2x5zv1sf6v7ym75z8ayk-gcc-11.3.0-lib" . "/gnu/store/6ncav55lbk5kqvwwflrzcr41hp5jbq0c-gcc-11.3.0-lib")
                                       ("/gnu/store/gsjczqir1wbz8p770zndrpw4rnppmxi3-glibc-2.35" . "/gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35")
                                       ("/gnu/store/hbzlh3zjss4w80jscwfkivpyqc2sqbm3-sbcl-alexandria-1.4-0.009b7e5" . "/gnu/store/p8iagp15zzj5ivh3j8443jjpq6wmmzpw-sbcl-alexandria-1.4-0.009b7e5")
                                       ("/gnu/store/jd34ay8cyyl2dag62n94m15gg1b4s1sw-sbcl-2.4.0" . "/gnu/store/vj5jdgz6dajq25f6arjw976h6awwblgh-sbcl-2.4.0")
                                       ("/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16" . "/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16")
                                       ("/gnu/store/kf04j56xzh2pglwz3d8ybiz7wxwrs4df-sbcl-clx-0.7.5-1.3840045" . "/gnu/store/3sbrd8gj3ddq3cya2fygj0q788wp0kbr-sbcl-clx-0.7.5-1.3840045")
                                       ("/gnu/store/1xpjw51n2alaszrvwwm2f78k3nnnlrk1-sbcl-fiasco-0.0.1-2.bb47d2f" . "/gnu/store/z4l73b6b1a6ijfd5chpijjbi37mbq5wl-sbcl-fiasco-0.0.1-2.bb47d2f")
                                       ("/gnu/store/7xiwhrv7x4isj2860par69xas9lrk4av-sbcl-cl-ppcre-2.1.1" . "/gnu/store/h7r9c6wxm7d3yk803jyw86c0pr86rxcj-sbcl-cl-ppcre-2.1.1")))
                               (map (match-lambda ((name . file) (cons (assoc-ref old-outputs name) file))) %outputs)))) (graft old-outputs %outputs mapping)))



;; guix build sbcl-stumpwm-cpu, stumpwm-graft builder
(begin (use-modules (guix build graft) (guix build utils) (ice-9 match))
       (define %outputs (list (cons "lib" ((@ (guile) getenv) "lib"))))
       (begin (setenv "GUIX_LOCPATH" "/gnu/store/visfdda934gvivwihwhlm63fdqhhcc8a-glibc-utf8-locales-2.35/lib/locale")
              (setlocale LC_ALL "en_US.utf8"))
       (let* ((old-outputs (quote (("lib" . "/gnu/store/j73w1n1sf3gqgx8qx3cx9csbrndddq0b-stumpwm-22.11-lib"))))
              (mapping (append (quote (("/gnu/store/kf04j56xzh2pglwz3d8ybiz7wxwrs4df-sbcl-clx-0.7.5-1.3840045" . "/gnu/store/3sbrd8gj3ddq3cya2fygj0q788wp0kbr-sbcl-clx-0.7.5-1.3840045")
                                       ("/gnu/store/rib9g2ig1xf3kclyl076w28parmncg4k-bash-minimal-5.1.16" . "/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16")
                                       ("/gnu/store/1xpjw51n2alaszrvwwm2f78k3nnnlrk1-sbcl-fiasco-0.0.1-2.bb47d2f" . "/gnu/store/z4l73b6b1a6ijfd5chpijjbi37mbq5wl-sbcl-fiasco-0.0.1-2.bb47d2f")
                                       ("/gnu/store/jd34ay8cyyl2dag62n94m15gg1b4s1sw-sbcl-2.4.0" . "/gnu/store/vj5jdgz6dajq25f6arjw976h6awwblgh-sbcl-2.4.0")
                                       ("/gnu/store/7xiwhrv7x4isj2860par69xas9lrk4av-sbcl-cl-ppcre-2.1.1" . "/gnu/store/h7r9c6wxm7d3yk803jyw86c0pr86rxcj-sbcl-cl-ppcre-2.1.1")))
                               (map (match-lambda ((name . file) (cons (assoc-ref old-outputs name) file))) %outputs)))) (graft old-outputs %outputs mapping)))--8<---------------cut here---------------end--------------->8---

Different builders? Different outputs. Different outputs? Different
50-stumpwm.conf files. Different 50-stumpwm.conf files? Sadness.

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62890: StumpWM fails to start - Read only file system
  2024-05-27  6:54 ` bug#62890: Likely cause found, excess library grafting Richard Sent
@ 2024-05-27  7:05   ` Richard Sent
  2024-06-24 11:50     ` Guillaume Le Vaillant
  0 siblings, 1 reply; 10+ messages in thread
From: Richard Sent @ 2024-05-27  7:05 UTC (permalink / raw)
  To: 62890

Richard Sent <richard@freakingpenguin.com> writes:

> Packages that depend on say, A:lib graft their own copies of A:lib that
> is distinct from grafting A:out and A:lib together. This behavior
> confuses asdf-build-system and leads to breakage.

I should rephase this. asdf-build-system is doing its job just fine. I
don't think it's the build-system that's broken. It's that splitting
outputs like this simply leads to incompatibility with asdf itself.

That being said, I've never actually /used/ asdf. I welcome thoughts
from my betters! :)

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62890: StumpWM fails to start - Read only file system
  2024-05-27  7:05   ` bug#62890: StumpWM fails to start - Read only file system Richard Sent
@ 2024-06-24 11:50     ` Guillaume Le Vaillant
  2024-06-29  1:03       ` Richard Sent
  0 siblings, 1 reply; 10+ messages in thread
From: Guillaume Le Vaillant @ 2024-06-24 11:50 UTC (permalink / raw)
  To: Richard Sent; +Cc: 62890


[-- Attachment #1.1: Type: text/plain, Size: 136 bytes --]

Hi.
Here's a patch for using a single output for stumpwm instead of having
a separate lib output. Could you check if it works for you?


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-stumpwm-Use-a-single-output.patch --]
[-- Type: text/x-patch, Size: 7422 bytes --]

From 48133ed3d6b4991c18b9c481eb5e0c62662c7e38 Mon Sep 17 00:00:00 2001
Message-ID: <48133ed3d6b4991c18b9c481eb5e0c62662c7e38.1719221599.git.glv@posteo.net>
From: Guillaume Le Vaillant <glv@posteo.net>
Date: Mon, 24 Jun 2024 11:00:44 +0200
Subject: [PATCH] gnu: stumpwm: Use a single output.

This is a warkaround for the excess library grafts issue that can prevent
stumpwm from working properly. See <https://issues.guix.gnu.org/47115> and
<https://issues.guix.gnu.org/62890>.

* gnu/packages/wm.scm (stumpwm)[outputs]: Remove "lib" output.
  [arguments]: Remove references to the "lib" output from phases.
  (stumpwm+slynk, stumpwm-contrib, sbcl-stumpwm-pamixer,
  sbcl-stumpwm-ttf-fonts, sbcl-stumpwm-stumptray, sbcl-stumpwm-disk,
  sbcl-stumpwm-screenshot, sbcl-stumpwm-notify,
  sbcl-stumpwm-battery-portable)[inputs]: Replace '(stumpwm "lib")'
  with 'stumpwm'.

Change-Id: I3d8f025057965032c40ea833d3ebe62f9700071d
---
 gnu/packages/wm.scm | 40 ++++++++++++++--------------------------
 1 file changed, 14 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index c3cd596e6c..d82ea8aab4 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -2426,7 +2426,6 @@ (define-public stumpwm
      (list sbcl-alexandria
            sbcl-cl-ppcre
            sbcl-clx))
-    (outputs '("out" "lib"))
     (arguments
      (list
       #:phases
@@ -2439,12 +2438,12 @@ (define-public stumpwm
           (add-after 'create-asdf-configuration 'build-program
             (lambda* (#:key outputs #:allow-other-keys)
               (build-program
-               (string-append (assoc-ref outputs "out") "/bin/stumpwm")
+               (string-append #$output "/bin/stumpwm")
                outputs
                #:entry-program '((stumpwm:stumpwm) 0))))
           (add-after 'build-program 'create-desktop-file
             (lambda* (#:key outputs #:allow-other-keys)
-              (let* ((out (assoc-ref outputs "out"))
+              (let* ((out #$output)
                      (xsessions (string-append out "/share/xsessions")))
                 (mkdir-p xsessions)
                 (call-with-output-file
@@ -2461,7 +2460,7 @@ (define-public stumpwm
                        out))))))
           (add-after 'install 'install-manual
             (lambda* (#:key (make-flags '()) outputs #:allow-other-keys)
-              (let* ((out  (assoc-ref outputs "out"))
+              (let* ((out  #$output)
                      (info (string-append out "/share/info")))
                 (invoke "./autogen.sh")
                 (invoke "sh" "./configure" "SHELL=sh")
@@ -2469,8 +2468,7 @@ (define-public stumpwm
                 (install-file "stumpwm.info" info))))
           (add-after 'install-manual 'remove-temporary-cache
             (lambda* (#:key outputs #:allow-other-keys)
-              (delete-file-recursively (string-append (assoc-ref outputs "lib")
-                                                      "/.cache")))))))
+              (delete-file-recursively (string-append #$output "/.cache")))))))
     (synopsis "Window manager written in Common Lisp")
     (description
      "Stumpwm is a window manager written entirely in Common Lisp.
@@ -2490,10 +2488,8 @@ (define-public stumpwm+slynk
   (package
     (inherit stumpwm)
     (name "stumpwm-with-slynk")
-    (outputs '("out"))
     (inputs
-     `(("stumpwm" ,stumpwm "lib")
-       ("slynk" ,sbcl-slynk)))
+     (list sbcl-slynk stumpwm))
     (arguments
      (substitute-keyword-arguments (package-arguments stumpwm)
        ((#:phases phases)
@@ -2508,8 +2504,7 @@ (define-public stumpwm+slynk
                                 #:dependencies '("stumpwm" "slynk")
                                 #:dependency-prefixes
                                 (map (lambda (input) (assoc-ref inputs input))
-                                     '("stumpwm" "slynk")))
-                 #t)))
+                                     '("stumpwm" "sbcl-slynk"))))))
            (delete 'copy-source)
            (delete 'build)
            (delete 'check)
@@ -2533,7 +2528,7 @@ (define stumpwm-contrib
           (base32 "1g8h2vd5qsmaiz6ixlx9ykrv6a08izmkf0js18fvljvznpyhsznz"))))
       (build-system asdf-build-system/sbcl)
       (inputs
-       `(("stumpwm" ,stumpwm "lib")))
+       (list stumpwm))
       (home-page "https://github.com/stumpwm/stumpwm-contrib")
       (synopsis "StumpWM extra modules")
       (description "This package provides extra modules for StumpWM.")
@@ -2578,7 +2573,7 @@ (define-public sbcl-stumpwm-pamixer
                 (sha256
                  (base32
                   "0djcrr16bx40l7b60d4j507vk5l42fdgmjpgrnk86z1ba8wlqim8"))))
-      (inputs (list pamixer `(,stumpwm "lib")))
+      (inputs (list pamixer stumpwm))
       (build-system asdf-build-system/sbcl)
       (arguments
        (list #:asd-systems ''("pamixer")
@@ -2620,8 +2615,7 @@ (define-public sbcl-stumpwm-ttf-fonts
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-ttf-fonts")
     (inputs
-     `(("stumpwm" ,stumpwm "lib")
-       ("clx-truetype" ,sbcl-clx-truetype)))
+     (list sbcl-clx-truetype stumpwm))
     (arguments
      '(#:asd-systems '("ttf-fonts")
        #:tests? #f
@@ -2733,9 +2727,7 @@ (define-public sbcl-stumpwm-stumptray
        (modify-phases %standard-phases
          (add-after 'unpack 'chdir (lambda _ (chdir "modeline/stumptray") #t)))))
     (inputs
-     `(("stumpwm" ,stumpwm "lib")
-       ("xembed" ,sbcl-clx-xembed)
-       ("alexandria" ,sbcl-alexandria)))
+     (list sbcl-alexandria sbcl-clx-xembed stumpwm))
     (home-page
      "https://github.com/stumpwm/stumpwm-contrib/tree/master/modeline/stumptray")
     (synopsis "Modeline support for stumptray connectivity")
@@ -2810,9 +2802,7 @@ (define-public sbcl-stumpwm-disk
          (add-after 'unpack 'chdir
            (lambda _ (chdir "modeline/disk") #t)))))
     (inputs
-     `(("stumpwm" ,stumpwm "lib")
-       ("cl-diskspace" ,sbcl-cl-diskspace)
-       ("cl-mount-info" ,sbcl-cl-mount-info)))
+     (list sbcl-cl-diskspace sbcl-cl-mount-info stumpwm))
     (home-page "https://github.com/stumpwm/stumpwm-contrib")
     (synopsis "StumpWM modeline support to show disk usage")
     (description "StumpWM modeline support to show disk usage")
@@ -2860,8 +2850,7 @@ (define-public sbcl-stumpwm-screenshot
     (inherit stumpwm-contrib)
     (name "sbcl-stumpwm-screenshot")
     (inputs
-     `(("stumpwm" ,stumpwm "lib")
-       ("zpng" ,sbcl-zpng)))
+     (list sbcl-zpng stumpwm))
     (arguments
      '(#:asd-systems '("screenshot")
        #:tests? #f
@@ -2910,7 +2899,7 @@ (define-public sbcl-stumpwm-notify
      (list sbcl-bordeaux-threads
            sbcl-dbus
            sbcl-xml-emitter
-           (list stumpwm "lib")))
+           stumpwm))
     (arguments
      '(#:asd-systems '("notify")
        #:phases
@@ -2930,8 +2919,7 @@ (define-public sbcl-stumpwm-battery-portable
     (name "sbcl-stumpwm-battery-portable")
     (build-system asdf-build-system/sbcl)
     (inputs
-     (list sbcl-cl-ppcre
-           (list stumpwm "lib")))
+     (list sbcl-cl-ppcre stumpwm))
     (arguments
      '(#:asd-systems '("battery-portable")
        #:phases

base-commit: c5fc11488c7bf6d9cf35513a43a40c61e5b8e1cd
-- 
2.45.1


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

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* bug#62890: StumpWM fails to start - Read only file system
  2024-06-24 11:50     ` Guillaume Le Vaillant
@ 2024-06-29  1:03       ` Richard Sent
  2024-06-29  9:03         ` Guillaume Le Vaillant
  0 siblings, 1 reply; 10+ messages in thread
From: Richard Sent @ 2024-06-29  1:03 UTC (permalink / raw)
  To: Guillaume Le Vaillant; +Cc: 62890

Hi Guillaume,

Thanks, your patch works for me! I don't expect many use cases to break
from this (how many people want to install stumpwm lib but not stumpwm
proper), but there's probably a fair amount of configs that'll break.
Maybe it deserves a NEWS entry.

I dream of the day https://issues.guix.gnu.org/48907 is fixed.

While testing this I noticed that the error message can be even less
descriptive than reported previously. With my current StumpWM config,
without your patch, and with grafts enabled I get the following error:

> Memory fault in 0x<some_random_hex_address>.

Yeah, that's a fun one to debug. Very informative 🙂. I spent far too
long bisecting a big Guix commit list before realizing this was ALSO a
grafting issue.

-- 
Take it easy,
Richard Sent
Making my computer weirder one commit at a time.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* bug#62890: StumpWM fails to start - Read only file system
  2024-06-29  1:03       ` Richard Sent
@ 2024-06-29  9:03         ` Guillaume Le Vaillant
  0 siblings, 0 replies; 10+ messages in thread
From: Guillaume Le Vaillant @ 2024-06-29  9:03 UTC (permalink / raw)
  To: Richard Sent; +Cc: 62890-done

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

Thanks for testing. Patch applied as
a46908620fac09bd8ccd0f587a27e86035d3b1d7.

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2024-06-29  9:05 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-16 22:32 bug#62890: StumpWM fails to start - Read only file system Kjartan Óli Águstsson
2023-04-24 12:57 ` Guillaume Le Vaillant
2023-04-25  9:35   ` Guillaume Le Vaillant
2024-01-12 21:02 ` bug#62890: StumpWM with --no-grafts and System/Home mismatches Richard Sent
2024-05-03  2:30 ` bug#62890: Specific graft that's at fault Richard Sent
2024-05-27  6:54 ` bug#62890: Likely cause found, excess library grafting Richard Sent
2024-05-27  7:05   ` bug#62890: StumpWM fails to start - Read only file system Richard Sent
2024-06-24 11:50     ` Guillaume Le Vaillant
2024-06-29  1:03       ` Richard Sent
2024-06-29  9:03         ` Guillaume Le Vaillant

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.