From 5387a9c00ef2f972c32ab4430a3f1879131b1652 Mon Sep 17 00:00:00 2001 From: John Kehayias Date: Mon, 10 Jan 2022 01:54:25 +0000 Subject: gnu: Add xmonad-next and ghc-xmonad-contrib-next. Fixes: . * 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 --- gnu/local.mk | 1 + .../patches/xmonad-next-dynamic-linking.patch | 16 ++++ gnu/packages/wm.scm | 87 +++++++++++++++------- 3 files changed, 79 insertions(+), 25 deletions(-) create mode 100644 gnu/packages/patches/xmonad-next-dynamic-linking.patch 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 ;;; Copyright © 2021 jgart ;;; Copyright © 2021 Disseminate Dissent +;;; Copyright © 2022 John Kehayias ;;; ;;; 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 -- cgit v1.2.3