diff options
author | Nikolay Amiantov <ab@fmap.me> | 2015-02-03 01:05:23 +0300 |
---|---|---|
committer | Nikolay Amiantov <ab@fmap.me> | 2015-02-03 01:05:23 +0300 |
commit | b7bb524f04c9e31c19d19086d1af0eda7d2f4ca8 (patch) | |
tree | 8f2ac6eed0eae17ddb98179b10b95161cf2ce853 /pkgs | |
parent | f8038b0c6c3c61f081c52a9e467f7f8d731a74ff (diff) |
nixos/xmonad: move to haskell-ng and make a wrapper
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/applications/window-managers/xmonad/default.nix | 2 | ||||
-rw-r--r-- | pkgs/applications/window-managers/xmonad/wrapper.nix | 22 | ||||
-rw-r--r-- | pkgs/development/haskell-modules/configuration-common.nix | 3 | ||||
-rw-r--r-- | pkgs/development/haskell-modules/xmonad-nix.patch (renamed from pkgs/applications/window-managers/xmonad/xmonad_ghc_var_0.11.patch) | 0 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 5 |
5 files changed, 31 insertions, 1 deletions
diff --git a/pkgs/applications/window-managers/xmonad/default.nix b/pkgs/applications/window-managers/xmonad/default.nix index 08b85a5530fdb..16b0ac365a2e8 100644 --- a/pkgs/applications/window-managers/xmonad/default.nix +++ b/pkgs/applications/window-managers/xmonad/default.nix @@ -18,7 +18,7 @@ cabal.mkDerivation (self: { ''; patches = [ # Patch to make xmonad use XMONAD_{GHC,XMESSAGE} (if available). - ./xmonad_ghc_var_0.11.patch + ../../../development/haskell-modules/xmonad-nix.patch ]; meta = { homepage = "http://xmonad.org"; diff --git a/pkgs/applications/window-managers/xmonad/wrapper.nix b/pkgs/applications/window-managers/xmonad/wrapper.nix new file mode 100644 index 0000000000000..cddaeb5f799f2 --- /dev/null +++ b/pkgs/applications/window-managers/xmonad/wrapper.nix @@ -0,0 +1,22 @@ +{ stdenv, buildEnv, ghcWithPackages, xmessage, makeWrapper, packages }: + +let +xmonadEnv = ghcWithPackages (self: [ self.xmonad ] ++ packages self); +drv = buildEnv { + name = "xmonad-with-packages"; + + paths = [ xmonadEnv ]; + + postBuild = '' + # TODO: This could be avoided if buildEnv could be forced to create all directories + rm $out/bin + mkdir $out/bin + for i in ${xmonadEnv}/bin/*; do + ln -s $i $out/bin + done + wrapProgram $out/bin/xmonad \ + --set XMONAD_GHC "${xmonadEnv}/bin/ghc" \ + --set XMONAD_XMESSAGE "${xmessage}/bin/xmessage" + ''; + }; +in stdenv.lib.overrideDerivation drv (x : { buildInputs = x.buildInputs ++ [ makeWrapper ]; }) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index ff4d163519a61..67384e321d5c5 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -409,6 +409,9 @@ self: super: { # https://github.com/seagreen/hjsonschema/issues/4 hjsonschema = dontCheck super.hjsonschema; + # Nix-specific workaround + xmonad = appendPatch super.xmonad ./xmonad-nix.patch; + } // { # Not on Hackage. diff --git a/pkgs/applications/window-managers/xmonad/xmonad_ghc_var_0.11.patch b/pkgs/development/haskell-modules/xmonad-nix.patch index f0785773cc146..f0785773cc146 100644 --- a/pkgs/applications/window-managers/xmonad/xmonad_ghc_var_0.11.patch +++ b/pkgs/development/haskell-modules/xmonad-nix.patch diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 04a592a7e5668..1fea8b56ade34 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11805,6 +11805,11 @@ let xkb_switch = callPackage ../tools/X11/xkb-switch { }; + xmonad-with-packages = callPackage ../applications/window-managers/xmonad/wrapper.nix { + ghcWithPackages = haskellngPackages.ghcWithPackages; + packages = self: []; + }; + xmonad_log_applet_gnome2 = callPackage ../applications/window-managers/xmonad-log-applet { desktopSupport = "gnome2"; inherit (xfce) libxfce4util xfce4panel; |