summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndres Löh <mail@andres-loeh.de>2008-01-16 10:35:49 +0000
committerAndres Löh <mail@andres-loeh.de>2008-01-16 10:35:49 +0000
commitc08a54cb667315495fb02998fd28890a332551c3 (patch)
treead693440f57bafd4baa41aedf612cac69872d707
parent5dd65bbfadeeede6f2853fc56fb97ec16fb994f2 (diff)
downloadnixpkgs-c08a54cb667315495fb02998fd28890a332551c3.tar
nixpkgs-c08a54cb667315495fb02998fd28890a332551c3.tar.gz
nixpkgs-c08a54cb667315495fb02998fd28890a332551c3.tar.bz2
nixpkgs-c08a54cb667315495fb02998fd28890a332551c3.tar.lz
nixpkgs-c08a54cb667315495fb02998fd28890a332551c3.tar.xz
nixpkgs-c08a54cb667315495fb02998fd28890a332551c3.tar.zst
nixpkgs-c08a54cb667315495fb02998fd28890a332551c3.zip
* added xmonad (runtime reconfiguration does not yet work)
* added Haskell X11 bindings (required for xmonad)
* added missing entry for alex in all-packages.nix

svn path=/nixpkgs/trunk/; revision=10171
-rw-r--r--pkgs/applications/window-managers/xmonad/default.nix42
-rw-r--r--pkgs/development/libraries/haskell/X11/default.nix49
-rw-r--r--pkgs/top-level/all-packages.nix22
3 files changed, 113 insertions, 0 deletions
diff --git a/pkgs/applications/window-managers/xmonad/default.nix b/pkgs/applications/window-managers/xmonad/default.nix
new file mode 100644
index 00000000000..ccd2dc05adb
--- /dev/null
+++ b/pkgs/applications/window-managers/xmonad/default.nix
@@ -0,0 +1,42 @@
+{stdenv, fetchurl, ghc, X11, xmessage}:
+
+stdenv.mkDerivation (rec {
+
+  pname = "xmonad";
+  version = "0.5";
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://hackage.haskell.org/packages/archive/${pname}/${version}/${name}.tar.gz";
+    sha256 = "cfcc4501b000fa740ed35a5be87dc01216e036219551630dcf71d9c3cf57e4c4";
+  };
+
+  buildInputs = [ghc X11];
+
+  meta = {
+    description = "xmonad is a tiling window manager for X";
+  };
+
+  configurePhase = '' 
+    sed -i 's|"xmessage"|"${xmessage}/bin/xmessage"|' XMonad/Core.hs
+    ghc --make Setup.lhs
+    ./Setup configure --prefix="$out"
+  '';
+
+  buildPhase = ''
+    ./Setup build
+  '';
+
+  installPhase = ''
+    ./Setup copy
+    ./Setup register --gen-script
+    mkdir $out/nix-support
+    sed -i 's/|.*\(ghc-pkg update\)/| \1/' register.sh
+    cp register.sh $out/nix-support/register-ghclib.sh
+    sed -i 's/\(ghc-pkg update\)/\1 --user/' register.sh
+    mkdir -p $out/bin
+    cp register.sh $out/bin/register-ghclib-${name}.sh
+  '';
+
+})
diff --git a/pkgs/development/libraries/haskell/X11/default.nix b/pkgs/development/libraries/haskell/X11/default.nix
new file mode 100644
index 00000000000..a0873e97938
--- /dev/null
+++ b/pkgs/development/libraries/haskell/X11/default.nix
@@ -0,0 +1,49 @@
+{stdenv, fetchurl, ghc, libX11, xineramaSupport ? true, libXinerama ? null, libXext ? null}:
+
+assert xineramaSupport -> (libXinerama != null && libXext != null);
+
+stdenv.mkDerivation (rec {
+
+  pname = "X11";
+  version = "1.4.1";
+
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://hackage.haskell.org/packages/archive/${pname}/${version}/${name}.tar.gz";
+    sha256 = "e51038541415686f0e278ccdbc0b2373cd11f212de99023b7b8f8e776aa09f79";
+  };
+
+  buildInputs = [ghc];
+
+  propagatedBuildInputs = [libX11] ++
+    (if xineramaSupport then [libXinerama libXext] else []);
+
+  meta = {
+    description = "A Haskell binding to the X11 graphics library";
+  };
+
+  extraLibDirs = "${libX11}/lib" + (if xineramaSupport then " ${libXinerama}/lib ${libXext}/lib" else "");
+
+  configurePhase = ''
+    echo "extra-lib-dirs: ${extraLibDirs}" >> X11.buildinfo.in
+    ghc --make Setup.hs
+    ./Setup configure --prefix="$out"
+  '';
+
+  buildPhase = ''
+    ./Setup build
+  '';
+
+  installPhase = ''
+    ./Setup copy
+    ./Setup register --gen-script
+    mkdir $out/nix-support
+    sed -i 's/|.*\(ghc-pkg update\)/| \1/' register.sh
+    cp register.sh $out/nix-support/register-ghclib.sh
+    sed -i 's/\(ghc-pkg update\)/\1 --user/' register.sh
+    mkdir $out/bin
+    cp register.sh $out/bin/register-ghclib-${name}.sh
+  '';
+
+})
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4938a799d78..9b06c914be4 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1355,6 +1355,10 @@ rec {
   ### DEVELOPMENT / TOOLS
 
 
+  alex = import ../development/tools/parsing/alex {
+    inherit fetchurl stdenv ghc perl;
+  };
+
   antlr = import ../development/tools/parsing/antlr/antlr-2.7.6.nix {
     inherit fetchurl stdenv jre;
   };
@@ -2618,6 +2622,18 @@ rec {
     inherit stdenv fetchurl unzip ghc wxGTK;
   };
 
+  # wxHaskell68 = lowPrio (appendToName "ghc68" (import ../development/libraries/haskell/wxHaskell {
+  #   inherit stdenv fetchurl unzip wxGTK;
+  #   ghc = ghc68;
+  # }));
+
+  X11 = import ../development/libraries/haskell/X11 {
+    inherit stdenv fetchurl;
+    ghc = ghc68;
+    inherit (xlibs) libX11 libXinerama libXext;
+    xineramaSupport = true;
+  };
+
 
   ### DEVELOPMENT / PERL MODULES
 
@@ -4686,6 +4702,12 @@ rec {
     stdenv = overrideGCC stdenv gcc34; # due to problems with gcc 4.x
   };
 
+  xmonad = import ../applications/window-managers/xmonad {
+    inherit stdenv fetchurl X11;
+    inherit (xlibs) xmessage;
+    ghc=ghc68;
+  };
+
   xpdf = import ../applications/misc/xpdf {
     inherit fetchurl stdenv x11 freetype t1lib;
     motif = lesstif;