From 36d5761b3e5aca9742fec85107e3d308a9af872c Mon Sep 17 00:00:00 2001 From: Nick Hu Date: Wed, 1 Dec 2021 11:31:05 +0000 Subject: [PATCH] haskellPackages.xmonad_0_17_0: respect NIX_GHC and XMONAD_XMESSAGE Adds xmonad-nix.patch adjusted for xmonad 0.17.0. Originally posted here: https://discourse.nixos.org/t/use-latest-version-of-xmonad-0-17-0/16191/5 Co-Authored-By: ento Co-Authored-By: sternenseemann --- .../haskell-modules/configuration-nix.nix | 1 + .../patches/xmonad_0_17_0-nix.patch | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 pkgs/development/haskell-modules/patches/xmonad_0_17_0-nix.patch diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 45a1a78048d8..45c9e7e42fe5 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -223,6 +223,7 @@ self: super: builtins.intersectAttrs super { # Nix-specific workaround xmonad = appendPatch ./patches/xmonad-nix.patch (dontCheck super.xmonad); + xmonad_0_17_0 = doDistribute (appendPatch ./patches/xmonad_0_17_0-nix.patch (super.xmonad_0_17_0)); # wxc supports wxGTX >= 3.0, but our current default version points to 2.8. # http://hydra.cryp.to/build/1331287/log/raw diff --git a/pkgs/development/haskell-modules/patches/xmonad_0_17_0-nix.patch b/pkgs/development/haskell-modules/patches/xmonad_0_17_0-nix.patch new file mode 100644 index 000000000000..e313aed69063 --- /dev/null +++ b/pkgs/development/haskell-modules/patches/xmonad_0_17_0-nix.patch @@ -0,0 +1,34 @@ +diff --git a/src/XMonad/Core.hs b/src/XMonad/Core.hs +index 46a0939..92af53d 100644 +--- a/src/XMonad/Core.hs ++++ b/src/XMonad/Core.hs +@@ -46,6 +46,7 @@ import Data.Traversable (for) + import Data.Time.Clock (UTCTime) + import Data.Default.Class + import Data.List (isInfixOf) ++import System.Environment (lookupEnv) + import System.FilePath + import System.IO + import System.Info +@@ -458,7 +459,8 @@ xfork x = io . forkProcess . finally nullStdin $ do + -- | Use @xmessage@ to show information to the user. + xmessage :: MonadIO m => String -> m () + xmessage msg = void . xfork $ do +- executeFile "xmessage" True ++ xmessageBin <- fromMaybe "xmessage" <$> liftIO (lookupEnv "XMONAD_XMESSAGE") ++ executeFile xmessageBin True + [ "-default", "okay" + , "-xrm", "*international:true" + , "-xrm", "*fontSet:-*-fixed-medium-r-normal-*-18-*-*-*-*-*-*-*,-*-fixed-*-*-*-*-18-*-*-*-*-*-*-*,-*-*-*-*-*-*-18-*-*-*-*-*-*-*" +@@ -654,8 +656,9 @@ compile dirs method = + bracket (openFile (errFileName dirs) WriteMode) hClose $ \err -> do + let run = runProc (cfgDir dirs) err + case method of +- CompileGhc -> +- run "ghc" ghcArgs ++ CompileGhc -> do ++ ghc <- fromMaybe "ghc" <$> (lookupEnv "NIX_GHC") ++ run ghc ghcArgs + CompileStackGhc stackYaml -> + run "stack" ["build", "--silent", "--stack-yaml", stackYaml] .&&. + run "stack" ("ghc" : "--stack-yaml" : stackYaml : "--" : ghcArgs)