Subject: Re: bug#62890: StumpWM fails to start - Read only file system

From: Guillaume Le Vaillant <[email-masked]>
Date: Mon, 24 Jun 2024 11:50:35 +0000

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?

From 48133ed3d6b4991c18b9c481eb5e0c62662c7e38 Mon Sep 17 00:00:00 2001
Message-ID: <[email-masked]>
From: Guillaume Le Vaillant <[email-masked]>
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