summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorJohn Kehayias <john.kehayias@protonmail.com>2022-01-10 01:54:25 +0000
committerLars-Dominik Braun <lars@6xq.net>2022-01-17 20:29:39 +0100
commit5387a9c00ef2f972c32ab4430a3f1879131b1652 (patch)
tree1e07e1196baa0ce62c1a5109b867d0cbee6fe745 /gnu
parent723aa8b391cf1633963f1c2f466e1904d81e3e54 (diff)
gnu: Add xmonad-next and ghc-xmonad-contrib-next.
Fixes: <https://issues.guix.gnu.org/issue/52784>. * gnu/packages/wm.scm (xmonad-next): New variable. Compared to xmonad: Update to 0.17.0. [inputs]: Add GHC-DATA-DEFAULT-CLASS, remove GHC-EXTENSIBLE-EXCEPTIONS, GHC-DATA-DEFAULT, GHC-SEMIGROUPS, and GHC-UTF8-STRING. [native-inputs]: Add GHC-QUICKCHECK and GHC-QUICKCHECK-CLASSES. (ghc-xmonad-contrib-next): New variable. Compared to ghc-xmonad-contrib: Update to 0.17.0. [propagated-inputs]: Remove GHC-OLD-TIME, GHC-EXTENSIBLE-EXCEPTIONS, GHC-SEMIGROUPS. [native-inputs]: Add GHC-QUICKCHECK and GHC-HSPEC. (xmonad): Inherit from xmonad-next. (ghc-xmonad-contrib): Inherit from ghc-xmonad-contrib-next. * gnu/packages/patches/xmonad-next-dynamic-linking.patch: New patch. Update of xmonad-dynamic-linking.patch to apply to xmonad-next. * gnu/local.mk: Add it. Signed-off-by: Lars-Dominik Braun <lars@6xq.net>
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/xmonad-next-dynamic-linking.patch16
-rw-r--r--gnu/packages/wm.scm87
3 files changed, 79 insertions, 25 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index a8f5c8afa1..eac8652056 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1969,6 +1969,7 @@ dist_patch_DATA = \
%D%/packages/patches/xfce4-settings-defaults.patch \
%D%/packages/patches/xgboost-use-system-dmlc-core.patch \
%D%/packages/patches/xmonad-dynamic-linking.patch \
+ %D%/packages/patches/xmonad-next-dynamic-linking.patch \
%D%/packages/patches/xnnpack-system-libraries.patch \
%D%/packages/patches/xplanet-1.3.1-cxx11-eof.patch \
%D%/packages/patches/xplanet-1.3.1-libdisplay_DisplayOutput.cpp.patch \
diff --git a/gnu/packages/patches/xmonad-next-dynamic-linking.patch b/gnu/packages/patches/xmonad-next-dynamic-linking.patch
new file mode 100644
index 0000000000..a1d71825b6
--- /dev/null
+++ b/gnu/packages/patches/xmonad-next-dynamic-linking.patch
@@ -0,0 +1,16 @@
+This patch is required for xmonad to make use of shared libraries.
+Without it, xmonad will not work since we do not (by default) use
+statically linked Haskell libraries.
+
+index 46a0939..5ad4f8f 100644
+--- a/src/XMonad/Core.hs
++++ b/src/XMonad/Core.hs
+@@ -664,6 +664,8 @@ compile dirs method =
+ where
+ ghcArgs = [ "--make"
+ , "xmonad.hs"
++ , "-dynamic"
++ , "-fPIC"
+ , "-i" -- only look in @lib@
+ , "-ilib"
+ , "-fforce-recomp"
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index eb015bd191..67e113aaa2 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -48,6 +48,7 @@
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 jgart <jgart@dismail.de>
;;; Copyright © 2021 Disseminate Dissent <disseminatedissent@protonmail.com>
+;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -736,10 +737,10 @@ This screen locker can be used with any window manager or
desktop environment.")
(license license:expat)))
-(define-public xmonad
+(define-public xmonad-next
(package
- (name "xmonad")
- (version "0.15")
+ (name "xmonad-next")
+ (version "0.17.0")
(synopsis "Tiling window manager")
(source (origin
(method url-fetch)
@@ -747,21 +748,13 @@ desktop environment.")
"xmonad-" version ".tar.gz"))
(sha256
(base32
- "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))
- (patches (search-patches "xmonad-dynamic-linking.patch"))))
+ "04qspdz9w6xpw1npcmx2zx0595wc68q985pv4i0hvp32zillvdqy"))
+ (patches (search-patches "xmonad-next-dynamic-linking.patch"))))
(build-system haskell-build-system)
- (inputs
- (list ghc-extensible-exceptions
- ghc-data-default
- ghc-quickcheck
- ghc-semigroups
- ghc-setlocale
- ghc-utf8-string
- ghc-x11))
+ (inputs (list ghc-data-default-class ghc-setlocale ghc-x11))
+ (native-inputs (list ghc-quickcheck ghc-quickcheck-classes))
(arguments
- `(#:cabal-revision
- ("1" "0yqh96qqphllr0zyz5j93cij5w2qvf39xxnrb52pz0qz3pywz9wd")
- #:phases
+ `(#:phases
(modify-phases %standard-phases
(add-after
'install 'install-xsession
@@ -789,6 +782,33 @@ used on each workspace. Xinerama is fully supported, allowing windows to be
tiled on several screens.")
(license license:bsd-3)))
+(define-public xmonad
+ (package
+ (inherit xmonad-next)
+ (name "xmonad")
+ (version "0.15")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://hackage/package/xmonad/"
+ "xmonad-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0a7rh21k9y6g8fwkggxdxjns2grvvsd5hi2ls4klmqz5xvk4hyaa"))
+ (patches (search-patches "xmonad-dynamic-linking.patch"))))
+ (inputs
+ (list ghc-extensible-exceptions
+ ghc-data-default
+ ghc-quickcheck
+ ghc-semigroups
+ ghc-setlocale
+ ghc-utf8-string
+ ghc-x11))
+ (native-inputs '())
+ (arguments
+ `(#:cabal-revision
+ ("1" "0yqh96qqphllr0zyz5j93cij5w2qvf39xxnrb52pz0qz3pywz9wd")
+ ,@(package-arguments xmonad-next)))))
+
(define-public xmobar
(package
(name "xmobar")
@@ -862,8 +882,30 @@ Unlike dmenu, it mangles the input before it presents its choices. In
particular, it displays commonly-chosen options before uncommon ones.")
(license license:bsd-3)))
+(define-public ghc-xmonad-contrib-next
+ (package
+ (name "ghc-xmonad-contrib-next")
+ (version "0.17.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "mirror://hackage/package/xmonad-contrib/"
+ "xmonad-contrib-" version ".tar.gz"))
+ (sha256
+ (base32 "11g1cyfgfvcmz35qhgi9wzxrk3br8m8b7qy3jvph4nnf6aj13wvy"))))
+ (build-system haskell-build-system)
+ (propagated-inputs (list ghc-random ghc-x11 ghc-utf8-string ghc-x11-xft xmonad-next))
+ (native-inputs (list ghc-quickcheck ghc-hspec))
+ (home-page "https://xmonad.org")
+ (synopsis "Third party extensions for xmonad")
+ (description
+ "Third party tiling algorithms, configurations, and scripts to Xmonad, a
+tiling window manager for X.")
+ (license license:bsd-3)))
+
(define-public ghc-xmonad-contrib
(package
+ (inherit ghc-xmonad-contrib-next)
(name "ghc-xmonad-contrib")
(version "0.16")
(source
@@ -873,10 +915,11 @@ particular, it displays commonly-chosen options before uncommon ones.")
"xmonad-contrib-" version ".tar.gz"))
(sha256
(base32 "1pddgkvnbww28wykncc7j0yb0lv15bk7xnnhdcbrwkxzw66w6wmd"))))
- (build-system haskell-build-system)
(arguments
`(#:cabal-revision
- ("1" "0vimkby2gq6sgzxzbvz67caba609xqlv2ii2gi8a1cjrnn6ib011")))
+ ("1" "0vimkby2gq6sgzxzbvz67caba609xqlv2ii2gi8a1cjrnn6ib011")
+ ,@(package-arguments ghc-xmonad-contrib-next)))
+ (native-inputs '())
(propagated-inputs
(list ghc-old-time
ghc-random
@@ -885,13 +928,7 @@ particular, it displays commonly-chosen options before uncommon ones.")
ghc-semigroups
ghc-x11
ghc-x11-xft
- xmonad))
- (home-page "https://xmonad.org")
- (synopsis "Third party extensions for xmonad")
- (description
- "Third party tiling algorithms, configurations, and scripts to Xmonad, a
-tiling window manager for X.")
- (license license:bsd-3)))
+ xmonad))))
(define-public evilwm
(package