summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/gnustep.scm30
1 files changed, 22 insertions, 8 deletions
diff --git a/gnu/packages/gnustep.scm b/gnu/packages/gnustep.scm
index 74c1ad9051..edd159d262 100644
--- a/gnu/packages/gnustep.scm
+++ b/gnu/packages/gnustep.scm
@@ -40,17 +40,31 @@
                 "1i3dw1yagsa3rs9x2na2ynqlgmbahayws0kz4vl00fla6550nns3"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:phases (alist-cons-after
-                 'install 'wrap
+     '(#:phases (alist-cons-before
+                 'configure 'pre-configure
                  (lambda* (#:key outputs #:allow-other-keys)
+                   ;; 'wmaker' wants to invoke 'wmaker.inst' the first time,
+                   ;; and the 'wmsetbg', so make sure it uses the right ones.
+                   ;; We can't use a wrapper here because that would pollute
+                   ;; $PATH in the whole session.
                    (let* ((out (assoc-ref outputs "out"))
                           (bin (string-append out "/bin")))
-                     ;; 'wmaker' wants to invoke 'wmaker.inst' the first time,
-                     ;; which in turn wants to invoke 'wmmenugen' etc., so
-                     ;; make sure everything is in $PATH.
-                     (wrap-program (string-append bin "/wmaker")
-                                   `("PATH" ":" prefix (,bin)))))
-                 %standard-phases)))
+                     (substitute* "src/main.c"
+                       (("\"wmaker\\.inst")
+                        (string-append "\"" bin "/wmaker.inst")))
+                     (substitute* '("src/defaults.c" "WPrefs.app/Menu.c")
+                       (("\"wmsetbg")
+                        (string-append "\"" bin "/wmsetbg")))))
+                 (alist-cons-after
+                  'install 'wrap
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (let* ((out (assoc-ref outputs "out"))
+                           (bin (string-append out "/bin")))
+                      ;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen'
+                      ;; etc., so make sure everything is in $PATH.
+                      (wrap-program (string-append bin "/wmaker.inst")
+                                    `("PATH" ":" prefix (,bin)))))
+                  %standard-phases))))
     (inputs
      `(("libxmu" ,libxmu)
        ("libxft" ,libxft)