Hello.

I've made a bunch of changes to nixpkgs that I would like to share.

* new-and-fixes.patch
  * adds
    * libraries
      * gconfmm -- This
      * gtkglextmm -- and this are not used by any package that I'm ready to 
share. They are for "lintesia" game that doesn't run nicely for me yet. Nice to 
have anyway.
      * gtkdatabox -- Used by klavaro.
    * applications/games
      * mirage -- Pretty slow, but small and simple (!) image viewer that plays 
animated gifs (!).
      * mcomix -- Like comix, but better; builtin library feature is turned 
off, because I don't use it (slow) and too lazy to add a on/off flag.
      * transmission-remote-gtk -- Self descriptive.
      * remmina -- The only VNC client I know that allows sending special keys 
(e.g. bound by local window manager) to the remote machine (has a special GUI 
button that grabs all the keys).
      * klavaro -- Touch typing tutor that doesn't depend on a fixed keyboard 
layout, i.e. it's very helpful if you want to learn to touch type with your own 
original (twisted) keyboard layout.
    * kernel
      * linux-3.2-xen -- Self descriptive; I would also suggest to generate 
-xen versions for all the kernels automatically.
  * patches and fixes
    * kernel
      * no-xsave.patch -- (xen needs this) fetchurl for no-xsave.patch is dead, 
I found the original version, tested it to work and placed there. Would be nice 
if someone who has the previous version could check that it's the same patch 
(hashes are not equal probably because it had comments at the top).
    * applications
      * freerdp -- I have no idea why the hash has changed without version 
bumping. This bugs me, can anyone check what have changed? Anyway, remmina 
needs this.
      * firefox-12.0 -- fetchurl is dead, now fetches from archive mirror.
    * others
      * SDL_net -- include header fix.
      * ati-drivers -- fetchurl fix.
      * libdrm -- add support for radeon experimental api.
      * libvdpau, ffmpeg -- prettify libvdpau arguments, ffmpeg support for 
libvdpau acceleration.
  * I've placed all the new packages at the end of top-level.nix to prevent 
local merge conflicts (I have no idea how items are sorted there anyway).

* version-bump-tested-to-work.patch
  * wine -- 1.3.32 --> 1.5.5, winetricks complains that 1.3.* up to .39 or 
something is buggy and should be updated.
  * psmisc --  22.13 --> 22.19, 22.13 is so out of date that it was deleted 
from sourceforge.

* version-bump-xen-fail.patch -- 4.0.3 --> 4.1.2, while linux-3.2-xen works 
fine (for dom0) xend from 4.1.2 doesn't want to start with the current 
nixos-generated upstart rules. It fails somewhere, upstart job hangs in 
"starting" state, system doesn't reboot/halt nicely because of that. I have no 
clear idea why this happens. Would be nice if someone could fix that.

* compilers.patch -- allows to compile /dev/null, sounds crazy, but this 
feature is used in some configure scripts (e.g. xbmc). This patch causes almost 
complete rebuild of nixpkgs and is not needed by any current package, but it 
would be if I make xbmc to work. By the way, why the same file is duplicated 4 
times?

Now, the questions:
* Is there a nice way to download a file, compute a hash, place the hash into 
the fetchurl nix-expression and to build it without redownloading the file 
again?
* I found a pretty funny contradiction that makes me belive that some of the 
user dotfiles should be bulit with nix. remmina wouldn't start without a gtk 
icon theme avalible. Theme could be changed and/or installed (into $HOME (!)) 
by the user. I.e., you could not depend on a fixed (or even avaliable, if you 
don't bulid user's dotfiles with nix) theme in a nix expression, yet you depend 
on it anyway. Is there a solution?
* I saw something like "nix-env -iA haskellPackages.xmonad" somewhere, but it 
fails for me with
  error: attribute `haskellPackages' in selection path `haskellPackages' not 
found
"nix-build -A haskellPackages.xmonad" works (I have default.nix in $HOME 
symlinked to nixpkgs). Why is that?

Best regards,
  Jan
Index: pkgs/build-support/gcc-wrapper/utils.sh
===================================================================
--- pkgs/build-support/gcc-wrapper/utils.sh	(revision 34573)
+++ pkgs/build-support/gcc-wrapper/utils.sh	(working copy)
@@ -17,6 +17,7 @@
     # Otherwise, the path should refer to the store or some temporary
     # directory (including the build directory).
     test \
+        "$p" != "/dev/null" -a \
         "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
         "${p:0:4}" != "/tmp" -a \
         "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
Index: pkgs/build-support/gcc-upc-wrapper/utils.sh
===================================================================
--- pkgs/build-support/gcc-upc-wrapper/utils.sh	(revision 34573)
+++ pkgs/build-support/gcc-upc-wrapper/utils.sh	(working copy)
@@ -17,6 +17,7 @@
     # Otherwise, the path should refer to the store or some temporary
     # directory (including the build directory).
     test \
+        "$p" != "/dev/null" -a \
         "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
         "${p:0:4}" != "/tmp" -a \
         "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
Index: pkgs/build-support/gcc-cross-wrapper/utils.sh
===================================================================
--- pkgs/build-support/gcc-cross-wrapper/utils.sh	(revision 34573)
+++ pkgs/build-support/gcc-cross-wrapper/utils.sh	(working copy)
@@ -17,6 +17,7 @@
     # Otherwise, the path should refer to the store or some temporary
     # directory (including the build directory).
     test \
+        "$p" != "/dev/null" -a \
         "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
         "${p:0:4}" != "/tmp" -a \
         "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
Index: pkgs/build-support/clang-wrapper/utils.sh
===================================================================
--- pkgs/build-support/clang-wrapper/utils.sh	(revision 34573)
+++ pkgs/build-support/clang-wrapper/utils.sh	(working copy)
@@ -17,6 +17,7 @@
     # Otherwise, the path should refer to the store or some temporary
     # directory (including the build directory).
     test \
+        "$p" != "/dev/null" -a \
         "${p:0:${#NIX_STORE}}" != "$NIX_STORE" -a \
         "${p:0:4}" != "/tmp" -a \
         "${p:0:${#NIX_BUILD_TOP}}" != "$NIX_BUILD_TOP"
Index: pkgs/top-level/all-packages.nix
===================================================================
--- pkgs/top-level/all-packages.nix	(revision 34573)
+++ pkgs/top-level/all-packages.nix	(working copy)
@@ -4220,7 +4220,7 @@
 
   libva = callPackage ../development/libraries/libva { };
 
-  libvdpau = callPackage ../development/libraries/libvdpau { };
+  libvdpau = callPackage ../development/libraries/libvdpau { inherit (xlibs) libX11; };
 
   libvirt = callPackage ../development/libraries/libvirt { };
 
@@ -5595,6 +5595,16 @@
       ];
   };
 
+  linux_3_2_xen = makeOverridable (import ../os-specific/linux/kernel/linux-3.2-xen.nix) {
+    inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
+    kernelPatches =
+      [ #kernelPatches.fbcondecor_2_6_38
+        kernelPatches.sec_perm_2_6_24
+        kernelPatches.aufs3_2
+        kernelPatches.cifs_timeout_2_6_38
+      ];
+  };
+
   linux_3_3 = makeOverridable (import ../os-specific/linux/kernel/linux-3.3.nix) {
     inherit fetchurl stdenv perl mktemp module_init_tools ubootChooser;
     kernelPatches =
@@ -5733,6 +5743,7 @@
   linuxPackages_3_0 = recurseIntoAttrs (linuxPackagesFor linux_3_0 pkgs.linuxPackages_3_0);
   linuxPackages_3_1 = recurseIntoAttrs (linuxPackagesFor linux_3_1 pkgs.linuxPackages_3_1);
   linuxPackages_3_2 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2 pkgs.linuxPackages_3_2);
+  linuxPackages_3_2_xen = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_2_xen pkgs.linuxPackages_3_2_xen);
   linuxPackages_3_3 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_3 pkgs.linuxPackages_3_3);
   linuxPackages_3_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_3_4 pkgs.linuxPackages_3_4);
 
@@ -8625,4 +8638,24 @@
 
   bullet = callPackage ../development/libraries/bullet {};
 
+  mcomix = callPackage ../applications/graphics/mcomix {};
+
+  mirage = callPackage ../applications/graphics/mirage {};
+
+  transmission_remote_gtk = callPackage ../applications/networking/p2p/transmission-remote-gtk {};
+
+  remmina = callPackage ../applications/networking/remote/remmina {};
+
+  gconfmm = callPackage ../development/libraries/gconfmm {
+    gconf = gnome.GConf;
+  };
+
+  gtkglextmm = callPackage ../development/libraries/gtkglextmm {
+    gtkglext = gnome.gtkglext;
+  };
+
+  gtkdatabox = callPackage ../development/libraries/gtkdatabox {};
+
+  klavaro = callPackage ../games/klavaro {};
+
 }; in pkgs

Index: pkgs/applications/graphics/mirage/default.nix
===================================================================
--- pkgs/applications/graphics/mirage/default.nix	(revision 0)
+++ pkgs/applications/graphics/mirage/default.nix	(working copy)
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, buildPythonPackage
+, python, pygtk, pil, libX11, gettext }:
+
+buildPythonPackage rec {
+    namePrefix = "";
+    name = "mirage-0.9.5.2";
+
+    src = fetchurl {
+      url = "http://download.berlios.de/mirageiv/${name}.tar.bz2";;
+      sha256 = "d214a1b6d99d1d1e83da5848a2cef181f6781e0990e93f7ebff5880b0c43f43c";
+    };
+
+    postInstall = ''
+      mv $out/lib/${python.libPrefix}/site-packages/*.egg/share $out
+    '';
+
+    doCheck = false;
+
+    buildInputs = [ stdenv libX11 gettext ];
+
+    pythonPath = [ pygtk pil ];
+
+    meta = {
+      description = "Simple image viewer written in PyGTK";
+
+      homepage = http://mirageiv.berlios.de/;
+
+      license = "GPLv2";
+    };
+}
Index: pkgs/applications/graphics/mcomix/default.nix
===================================================================
--- pkgs/applications/graphics/mcomix/default.nix	(revision 0)
+++ pkgs/applications/graphics/mcomix/default.nix	(working copy)
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl, buildPythonPackage
+, pygtk, pil }:
+
+buildPythonPackage rec {
+    namePrefix = "";
+    name = "mcomix-0.98";
+
+    src = fetchurl {
+      url = "mirror://sourceforge/mcomix/${name}.tar.bz2";
+      sha256 = "93805b6c8540bd673ac4a6ef6e952f00f8fc10e59a63c7e163324a64db2a6b03";
+    };
+
+    doCheck = false;
+
+    pythonPath = [ pygtk pil ];
+
+    meta = {
+      description = "Image viewer designed to handle comic books";
+
+      longDescription = ''
+        MComix is an user-friendly, customizable image viewer. It is specifically
+        designed to handle comic books, but also serves as a generic viewer.
+        It reads images in ZIP, RAR, 7Zip or tar archives as well as plain image
+        files. It is written in Python and uses GTK+ through the PyGTK bindings,
+        and runs on both Linux and Windows.
+
+        MComix is a fork of the Comix project, and aims to add bug fixes and
+        stability improvements after Comix development came to a halt in late 2009.
+      '';
+
+      homepage = http://mcomix.sourceforge.net/;
+
+      license = "GPLv2";
+    };
+}
Index: pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix
===================================================================
--- pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix	(revision 0)
+++ pkgs/applications/networking/p2p/transmission-remote-gtk/default.nix	(working copy)
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl
+, pkgconfig, intltool, gtk, json_glib, curl }:
+
+
+stdenv.mkDerivation rec {
+  name = "transmission-remote-gtk-1.0.1";
+
+  src = fetchurl {
+    url = "http://transmission-remote-gtk.googlecode.com/files/${name}.tar.gz";;
+    sha256 = "b1ae032dd52b2d7975656913e4fe39e7f74d29ef8138292d8b82318ff9afed6f";
+  };
+
+  buildInputs = [ pkgconfig intltool gtk json_glib curl ];
+
+  meta = {
+   description = "GTK remote control for the Transmission BitTorrent client";
+  };
+}
Index: pkgs/applications/networking/remote/remmina/default.nix
===================================================================
--- pkgs/applications/networking/remote/remmina/default.nix	(revision 0)
+++ pkgs/applications/networking/remote/remmina/default.nix	(working copy)
@@ -0,0 +1,31 @@
+{stdenv, fetchurl, cmake, pkgconfig, makeWrapper
+, glib, gtk, gettext, libxkbfile, libgnome_keyring, libX11
+, freerdp, libssh, libgcrypt, gnutls }:
+
+let version = "1.0.0"; in
+
+stdenv.mkDerivation {
+  name = "remmina-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/downloads/FreeRDP/Remmina/Remmina-${version}.tar.gz";;
+    sha256 = "7cd0d2d6adbd96c7139da8c4bfc4cf4821e1fa97242bb9cc9db32a53df289731";
+  };
+
+  buildInputs = [ cmake pkgconfig makeWrapper
+                  glib gtk gettext libxkbfile libgnome_keyring libX11
+                  freerdp libssh libgcrypt gnutls ];
+
+  cmakeFlags = "-DWITH_VTE=OFF -DWITH_TELEPATHY=OFF -DWITH_AVAHI=OFF";
+
+  postInstall = ''
+    wrapProgram $out/bin/remmina --prefix LD_LIBRARY_PATH : "${libX11}/lib"
+  '';
+
+  meta = {
+    license = "GPLv2";
+    homepage = "http://remmina.sourceforge.net/";;
+    description = "Remmina is a remote desktop client written in GTK+";
+    maintainers = [];
+  };
+}
Index: pkgs/applications/networking/remote/freerdp/default.nix
===================================================================
--- pkgs/applications/networking/remote/freerdp/default.nix	(revision 34573)
+++ pkgs/applications/networking/remote/freerdp/default.nix	(working copy)
@@ -19,7 +19,7 @@
 
   src = fetchurl {
     url = "https://github.com/downloads/FreeRDP/FreeRDP/FreeRDP-${version}.tar.gz";;
-    sha256 = "1h7b2ykgsp1b04p67syb3p2xgpsb45i6zl1jvm09h0dr5an85awd";
+    sha256 = "df9f5f3275436f3e413824ca40f1e41733a95121f45e1ed41ab410701c5764cc";
   };
 
   buildInputs = [
Index: pkgs/applications/networking/browsers/firefox/12.0.nix
===================================================================
--- pkgs/applications/networking/browsers/firefox/12.0.nix	(revision 34573)
+++ pkgs/applications/networking/browsers/firefox/12.0.nix	(working copy)
@@ -21,7 +21,7 @@
 
   
   src = fetchurl {
-    url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";;
+    url = "ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2";;
     sha1 = "0177185e54b7d63dc36bd5bd5c80ba6afd52e199";
   };
   
Index: pkgs/games/klavaro/default.nix
===================================================================
--- pkgs/games/klavaro/default.nix	(revision 0)
+++ pkgs/games/klavaro/default.nix	(working copy)
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, pkgconfig, intltool, curl, gtk, gtkdatabox }:
+
+stdenv.mkDerivation rec {
+  name = "klavaro-1.9.5";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/klavaro/${name}.tar.bz2";
+    sha256 = "06c35247866fb74f7c1a52a2350b352fdb44dace7216fdbebc1fa54990d14fc9";
+  };
+
+  buildInputs = [ pkgconfig intltool curl gtk gtkdatabox ];
+
+  meta = {
+    description = "Just another free touch typing tutor program";
+
+    license = "GPLv3+";
+
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
Index: pkgs/os-specific/linux/ati-drivers/default.nix
===================================================================
--- pkgs/os-specific/linux/ati-drivers/default.nix	(revision 34573)
+++ pkgs/os-specific/linux/ati-drivers/default.nix	(working copy)
@@ -27,7 +27,7 @@
   inherit libXxf86vm xf86vidmodeproto;
 
   src = fetchurl {
-    url = https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-10-11-x86.x86_64.run;
+    url = https://www2.ati.com/drivers/linux/ati-driver-installer-10-11-x86.x86_64.run;
     sha256 = "1z33w831ayx1j5lm9d1xv6whkmzsz9v8li3s8c96hwnwki6zpimr";
   };
 
Index: pkgs/os-specific/linux/kernel/patches.nix
===================================================================
--- pkgs/os-specific/linux/kernel/patches.nix	(revision 34573)
+++ pkgs/os-specific/linux/kernel/patches.nix	(working copy)
@@ -203,11 +203,7 @@
 
   no_xsave =
     { name = "no-xsave";
-      patch = fetchurl {
-        url = "http://kernel.ubuntu.com/git?p=rtg/ubuntu-maverick.git;a=blobdiff_plain;f=arch/x86/xen/enlighten.c;h=f7ff4c7d22954ab5eda464320241300bd5a32ee5;hp=1ea06f842a921557e958110e22941d53a2822f3c;hb=1a30f99;hpb=8f2ff69dce18ed856a8d1b93176f768b47eeed86";;
-        name = "no-xsave.patch";
-        sha256 = "18732s3vmav5rpg6zqpiw2i0ll83pcc4gw266h6545pmbh9p7hky";
-      };
+      patch = ./no-xsave.patch;
       features.noXsave = true;
     };
 
Index: pkgs/os-specific/linux/kernel/linux-3.2-xen.nix
===================================================================
--- pkgs/os-specific/linux/kernel/linux-3.2-xen.nix	(revision 0)
+++ pkgs/os-specific/linux/kernel/linux-3.2-xen.nix	(working copy)
@@ -0,0 +1,263 @@
+args @ { stdenv, fetchurl, userModeLinux ? false, extraConfig ? ""
+, perl, mktemp, module_init_tools
+, ... }:
+
+let
+  configWithPlatform = kernelPlatform :
+    ''
+      # powermanagement and debugging for powertop
+      DEBUG_KERNEL y
+      PM_ADVANCED_DEBUG y
+      PM_RUNTIME y
+      TIMER_STATS y
+      USB_SUSPEND y
+      BACKTRACE_SELF_TEST n
+      CPU_NOTIFIER_ERROR_INJECT n
+      DEBUG_DEVRES n
+      DEBUG_NX_TEST n
+      DEBUG_STACK_USAGE n
+      DEBUG_STACKOVERFLOW n
+      RCU_TORTURE_TEST n
+      SCHEDSTATS n
+
+      # Support drivers that need external firmware.
+      STANDALONE n
+
+      # Make /proc/config.gz available.
+      IKCONFIG_PROC y
+
+      # Optimize with -O2, not -Os.
+      CC_OPTIMIZE_FOR_SIZE n
+
+      # Enable the kernel's built-in memory tester.
+      MEMTEST y
+
+      # Include the CFQ I/O scheduler in the kernel, rather than as a
+      # module, so that the initrd gets a good I/O scheduler.
+      IOSCHED_CFQ y
+      BLK_CGROUP y # required by CFQ
+
+      # Enable NUMA.
+      NUMA? y
+
+      # Disable some expensive (?) features.
+      FTRACE n
+      KPROBES n
+      PM_TRACE_RTC n
+
+      # Enable various subsystems.
+      ACCESSIBILITY y # Accessibility support
+      AUXDISPLAY y # Auxiliary Display support
+      DONGLE y # Serial dongle support
+      HIPPI? y
+      MTD_COMPLEX_MAPPINGS y # needed for many devices
+      SCSI_LOWLEVEL y # enable lots of SCSI devices
+      SCSI_LOWLEVEL_PCMCIA y
+      SPI y # needed for many devices
+      SPI_MASTER y
+      WAN y
+
+      # Networking options.
+      IP_PNP n
+      IPV6_PRIVACY y
+      NETFILTER_ADVANCED y
+      IP_VS_PROTO_TCP y
+      IP_VS_PROTO_UDP y
+      IP_VS_PROTO_ESP y
+      IP_VS_PROTO_AH y
+      IP_DCCP_CCID3 n # experimental
+      CLS_U32_PERF y
+      CLS_U32_MARK y
+
+      # Wireless networking.
+      IPW2100_MONITOR y # support promiscuous mode
+      IPW2200_MONITOR y # support promiscuous mode
+      HOSTAP_FIRMWARE y # Support downloading firmware images with Host AP driver
+      HOSTAP_FIRMWARE_NVRAM y
+      ATH9K_PCI y # Detect Atheros AR9xxx cards on PCI(e) bus
+      ATH9K_AHB y # Ditto, AHB bus
+
+      # Some settings to make sure that fbcondecor works - in particular,
+      # disable tileblitting and the drivers that need it.
+
+      # Enable various FB devices.
+      FB y
+      FB_EFI y
+      FB_NVIDIA_I2C y # Enable DDC Support
+      FB_RIVA_I2C y
+      FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support
+      FB_ATY_GX y # Mach64 GX support
+      FB_SAVAGE_I2C y
+      FB_SAVAGE_ACCEL y
+      FB_SIS_300 y
+      FB_SIS_315 y
+      FB_3DFX_ACCEL y
+      FB_GEODE y
+
+      # Video configuration
+      # Enable KMS for devices whose X.org driver supports it.
+      DRM_I915_KMS y
+      DRM_RADEON_KMS y
+      # Hybrid graphics support
+      VGA_SWITCHEROO y
+
+      # Sound.
+      SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode
+      SND_HDA_INPUT_BEEP y # Support digital beep via input layer
+      SND_USB_CAIAQ_INPUT y
+      PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
+
+      # USB serial devices.
+      USB_SERIAL_GENERIC y # USB Generic Serial Driver
+      USB_SERIAL_KEYSPAN_MPR y # include firmware for various USB serial devices
+      USB_SERIAL_KEYSPAN_USA28 y
+      USB_SERIAL_KEYSPAN_USA28X y
+      USB_SERIAL_KEYSPAN_USA28XA y
+      USB_SERIAL_KEYSPAN_USA28XB y
+      USB_SERIAL_KEYSPAN_USA19 y
+      USB_SERIAL_KEYSPAN_USA18X y
+      USB_SERIAL_KEYSPAN_USA19W y
+      USB_SERIAL_KEYSPAN_USA19QW y
+      USB_SERIAL_KEYSPAN_USA19QI y
+      USB_SERIAL_KEYSPAN_USA49W y
+      USB_SERIAL_KEYSPAN_USA49WLC y
+
+      # Filesystem options - in particular, enable extended attributes and
+      # ACLs for all filesystems that support them.
+      EXT2_FS_XATTR y # Ext2 extended attributes
+      EXT2_FS_POSIX_ACL y # Ext2 POSIX Access Control Lists
+      EXT2_FS_SECURITY y # Ext2 Security Labels
+      EXT2_FS_XIP y # Ext2 execute in place support
+      EXT4_FS_POSIX_ACL y
+      EXT4_FS_SECURITY y
+      REISERFS_FS_XATTR y
+      REISERFS_FS_POSIX_ACL y
+      REISERFS_FS_SECURITY y
+      JFS_POSIX_ACL y
+      JFS_SECURITY y
+      XFS_QUOTA y
+      XFS_POSIX_ACL y
+      XFS_RT y # XFS Realtime subvolume support
+      OCFS2_DEBUG_MASKLOG n
+      BTRFS_FS_POSIX_ACL y
+      UBIFS_FS_XATTR y
+      UBIFS_FS_ADVANCED_COMPR y
+      NFSD_V2_ACL y
+      NFSD_V3 y
+      NFSD_V3_ACL y
+      NFSD_V4 y
+      CIFS_XATTR y
+      CIFS_POSIX y
+
+      # Security related features.
+      STRICT_DEVMEM y # Filter access to /dev/mem
+      SECURITY_SELINUX_BOOTPARAM_VALUE 0 # disable SELinux by default
+
+      # Misc. options.
+      8139TOO_8129 y
+      8139TOO_PIO n # PIO is slower
+      AIC79XX_DEBUG_ENABLE n
+      AIC7XXX_DEBUG_ENABLE n
+      AIC94XX_DEBUG n
+      B43_PCMCIA y
+      BLK_DEV_CMD640_ENHANCED y # CMD640 enhanced support
+      BLK_DEV_IDEACPI y # IDE ACPI support
+      BLK_DEV_INTEGRITY y
+      BSD_PROCESS_ACCT_V3 y
+      BT_HCIUART_BCSP y
+      BT_HCIUART_H4 y # UART (H4) protocol support
+      BT_HCIUART_LL y
+      BT_L2CAP y
+      BT_SCO y # audio support
+      BT_RFCOMM m
+      BT_RFCOMM_TTY y # RFCOMM TTY support
+      CRASH_DUMP n
+      #DMAR? n # experimental
+      DVB_DYNAMIC_MINORS y # we use udev
+      FUSION y # Fusion MPT device support
+      IDE_GD_ATAPI y # ATAPI floppy support
+      IRDA_ULTRA y # Ultra (connectionless) protocol
+      JOYSTICK_IFORCE_232 y # I-Force Serial joysticks and wheels
+      JOYSTICK_IFORCE_USB y # I-Force USB joysticks and wheels
+      JOYSTICK_XPAD_FF y # X-Box gamepad rumble support
+      JOYSTICK_XPAD_LEDS y # LED Support for Xbox360 controller 'BigX' LED
+      LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support
+      LEDS_TRIGGER_IDE_DISK y # LED IDE Disk Trigger
+      LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback
+      LOGO n # not needed
+      MEDIA_ATTACH y
+      MEGARAID_NEWGEN y
+      MICROCODE_AMD y
+      MODVERSIONS y
+      MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension
+      MTRR_SANITIZER y
+      NET_FC y # Fibre Channel driver support
+      PPP_MULTILINK y # PPP multilink support
+      REGULATOR y # Voltage and Current Regulator Support
+      SCSI_LOGGING y # SCSI logging facility
+      SERIAL_8250 y # 8250/16550 and compatible serial support
+      SLIP_COMPRESSED y # CSLIP compressed headers
+      SLIP_SMART y
+      THERMAL_HWMON y # Hardware monitoring support
+      USB_DEBUG n
+      USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators
+      X86_CHECK_BIOS_CORRUPTION y
+      X86_MCE y
+
+      # Linux Containers
+      RT_GROUP_SCHED? y
+      CGROUP_DEVICE? y
+      CGROUP_MEM_RES_CTLR? y
+      CGROUP_MEM_RES_CTLR_SWAP? y
+      DEVPTS_MULTIPLE_INSTANCES? y
+
+      # Enable staging drivers.  These are somewhat experimental, but
+      # they generally don't hurt.
+      STAGING y
+
+      # PROC_EVENTS requires that the netlink connector is not built
+      # as a module.  This is required by libcgroup's cgrulesengd.
+      CONNECTOR y
+      PROC_EVENTS y
+
+      # Tracing
+      FTRACE y
+      FUNCTION_TRACER y
+      FTRACE_SYSCALLS y
+      SCHED_TRACER y
+
+      # Enable Xen Dom0 support.
+      XEN_DOM0 y
+      #XEN_PCI_PASSTHROUGH y
+
+      ${if kernelPlatform ? kernelExtraConfig then kernelPlatform.kernelExtraConfig else ""}
+      ${extraConfig}
+    '';
+in
+
+import ./generic.nix (
+
+  rec {
+    version = "3.2.15";
+    localVersion = "-xen";
+    testing = false;
+
+    modDirVersion = version;
+
+    preConfigure = ''
+      substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
+    '';
+
+    src = fetchurl {
+      url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.xz";
+      sha256 = "19cqk1da9b1pzwxxj4k1ri38c164160pnjxf4nky2g3xryafl784";
+    };
+
+    config = configWithPlatform stdenv.platform;
+    configCross = configWithPlatform stdenv.cross.platform;
+
+    features.iwlwifi = true;
+  }
+
+  // removeAttrs args ["extraConfig"]
+)
Index: pkgs/os-specific/linux/kernel/no-xsave.patch
===================================================================
--- pkgs/os-specific/linux/kernel/no-xsave.patch	(revision 0)
+++ pkgs/os-specific/linux/kernel/no-xsave.patch	(working copy)
@@ -0,0 +1,85 @@
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -168,21 +168,23 @@ static void __init xen_banner(void)
+ 	       xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
+ }
+ 
++static __read_mostly unsigned int cpuid_leaf1_edx_mask = ~0;
++static __read_mostly unsigned int cpuid_leaf1_ecx_mask = ~0;
++
+ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
+ 		      unsigned int *cx, unsigned int *dx)
+ {
++	unsigned maskecx = ~0;
+ 	unsigned maskedx = ~0;
+ 
+ 	/*
+ 	 * Mask out inconvenient features, to try and disable as many
+ 	 * unsupported kernel subsystems as possible.
+ 	 */
+-	if (*ax == 1)
+-		maskedx = ~((1 << X86_FEATURE_APIC) |  /* disable APIC */
+-			    (1 << X86_FEATURE_ACPI) |  /* disable ACPI */
+-			    (1 << X86_FEATURE_MCE)  |  /* disable MCE */
+-			    (1 << X86_FEATURE_MCA)  |  /* disable MCA */
+-			    (1 << X86_FEATURE_ACC));   /* thermal monitoring */
++	if (*ax == 1) {
++		maskecx = cpuid_leaf1_ecx_mask;
++		maskedx = cpuid_leaf1_edx_mask;
++	}
+ 
+ 	asm(XEN_EMULATE_PREFIX "cpuid"
+ 		: "=a" (*ax),
+@@ -190,9 +192,43 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
+ 		  "=c" (*cx),
+ 		  "=d" (*dx)
+ 		: "0" (*ax), "2" (*cx));
++
++	*cx &= maskecx;
+ 	*dx &= maskedx;
+ }
+ 
++static __init void xen_init_cpuid_mask(void)
++{
++	unsigned int ax, bx, cx, dx;
++
++	cpuid_leaf1_edx_mask =
++		~((1 << X86_FEATURE_MCE)  |  /* disable MCE */
++		  (1 << X86_FEATURE_MCA)  |  /* disable MCA */
++		  (1 << X86_FEATURE_ACC));   /* thermal monitoring */
++
++	if (!xen_initial_domain())
++		cpuid_leaf1_edx_mask &=
++			~((1 << X86_FEATURE_APIC) |  /* disable local APIC */
++			  (1 << X86_FEATURE_ACPI));  /* disable ACPI */
++
++	ax = 1;
++	xen_cpuid(&ax, &bx, &cx, &dx);
++
++	/* cpuid claims we support xsave; try enabling it to see what happens */
++	if (cx & (1 << (X86_FEATURE_XSAVE % 32))) {
++		unsigned long cr4;
++
++		set_in_cr4(X86_CR4_OSXSAVE);
++		
++		cr4 = read_cr4();
++
++		if ((cr4 & X86_CR4_OSXSAVE) == 0)
++			cpuid_leaf1_ecx_mask &= ~(1 << (X86_FEATURE_XSAVE % 32));
++
++		clear_in_cr4(X86_CR4_OSXSAVE);
++	}
++}
++
+ static void xen_set_debugreg(int reg, unsigned long val)
+ {
+ 	HYPERVISOR_set_debugreg(reg, val);
+@@ -903,6 +939,8 @@ asmlinkage void __init xen_start_kernel(void)
+ 
+ 	xen_init_irq_ops();
+ 
++	xen_init_cpuid_mask();
++
+ #ifdef CONFIG_X86_LOCAL_APIC
+ 	/*
+ 	 * set up the basic apic ops.
Index: pkgs/development/libraries/gtkdatabox/default.nix
===================================================================
--- pkgs/development/libraries/gtkdatabox/default.nix	(revision 0)
+++ pkgs/development/libraries/gtkdatabox/default.nix	(working copy)
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, pkgconfig, gtk }:
+
+stdenv.mkDerivation rec {
+  name = "gtkdatabox-0.9.1.3";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/gtkdatabox/${name}.tar.gz";
+    sha256 = "90ff9fc20ea1541dfe75ae04ff98e02c3aa7ad1735d8f0e3b3352910a3f7427c";
+  };
+
+  patches = [ ./deprecated_GTK.patch ];
+
+  buildInputs = [ pkgconfig gtk ];
+
+  propagatedBuildInputs = [ gtk ];
+
+  meta = {
+    description = "Gtk+ widget for displaying large amounts of numerical data";
+
+    license = "LGPLv2";
+
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
Index: pkgs/development/libraries/gtkdatabox/deprecated_GTK.patch
===================================================================
--- pkgs/development/libraries/gtkdatabox/deprecated_GTK.patch	(revision 0)
+++ pkgs/development/libraries/gtkdatabox/deprecated_GTK.patch	(working copy)
@@ -0,0 +1,194 @@
+# Fixes compilation errors. Stolen from Debian.
+Index: libgtkdatabox-0.9.1.1/examples/addremove.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/addremove.c	2011-05-21 12:39:01.703594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/addremove.c	2011-05-21 12:36:16.739594810 +0200
+@@ -203,7 +203,7 @@
+    g_signal_connect_swapped (GTK_OBJECT (close_button), "clicked",
+ 			     G_CALLBACK (gtk_main_quit), GTK_OBJECT (box));
+    gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+ 
+    gtk_widget_show_all (window);
+Index: libgtkdatabox-0.9.1.1/examples/basics.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/basics.c	2011-05-21 12:39:02.075594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/basics.c	2011-05-21 12:36:16.759594820 +0200
+@@ -113,7 +113,7 @@
+    g_signal_connect_swapped (GTK_OBJECT (close_button), "clicked",
+ 			     G_CALLBACK (gtk_main_quit), GTK_OBJECT (box));
+    gtk_box_pack_start (GTK_BOX (vbox), close_button, FALSE, FALSE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+    gtk_widget_grab_focus (close_button);
+ 
+Index: libgtkdatabox-0.9.1.1/examples/basics2.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/basics2.c	2011-05-21 12:39:01.911594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/basics2.c	2011-05-21 12:36:16.747594818 +0200
+@@ -225,7 +225,7 @@
+    g_signal_connect_swapped (GTK_OBJECT (close_button), "clicked",
+ 			     G_CALLBACK (gtk_main_quit), GTK_OBJECT (box));
+    gtk_box_pack_start (GTK_BOX (vbox), close_button, FALSE, FALSE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+    gtk_widget_grab_focus (close_button);
+ 
+Index: libgtkdatabox-0.9.1.1/examples/colors.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/colors.c	2011-05-21 12:39:02.115594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/colors.c	2011-05-21 12:36:16.763594819 +0200
+@@ -194,7 +194,7 @@
+    g_signal_connect (G_OBJECT (close_button), "clicked",
+ 		     G_CALLBACK (gtk_main_quit), (gpointer) NULL);
+    gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+ 
+ 
+Index: libgtkdatabox-0.9.1.1/examples/enable_disable.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/enable_disable.c	2011-05-21 12:39:01.787594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/enable_disable.c	2011-05-21 12:36:16.743594812 +0200
+@@ -145,7 +145,7 @@
+    g_signal_connect_swapped (GTK_OBJECT (close_button), "clicked",
+ 			     G_CALLBACK (gtk_main_quit), GTK_OBJECT (box));
+    gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    for (i = 0; i < noEnableSets; ++i)
+    {
+       GtkWidget *vbox = gtk_vbox_new (FALSE, 10);
+Index: libgtkdatabox-0.9.1.1/examples/grid.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/grid.c	2011-05-21 12:39:01.995594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/grid.c	2011-05-21 12:36:16.755594821 +0200
+@@ -133,7 +133,7 @@
+ 			     G_CALLBACK (gtk_main_quit),
+ 			     GTK_OBJECT (box));
+    gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+ 
+    gtk_widget_show_all (window);
+Index: libgtkdatabox-0.9.1.1/examples/grid_array.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/grid_array.c	2011-05-21 12:39:01.951594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/grid_array.c	2011-05-21 12:36:16.751594821 +0200
+@@ -134,7 +134,7 @@
+ 			     G_CALLBACK (gtk_main_quit),
+ 			     GTK_OBJECT (box));
+    gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+ 
+    gtk_widget_show_all (window);
+Index: libgtkdatabox-0.9.1.1/examples/keycontrol.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/keycontrol.c	2011-05-21 12:39:02.155594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/keycontrol.c	2011-05-21 12:37:15.211595055 +0200
+@@ -133,7 +133,8 @@
+    gtk_databox_create_box_with_scrollbars_and_rulers (&box, &table,
+ 						      TRUE, TRUE, TRUE, TRUE);
+    gtk_widget_add_events (box, GDK_KEY_PRESS_MASK);
+-   GTK_WIDGET_SET_FLAGS (box, GTK_CAN_FOCUS | GTK_CAN_DEFAULT);
++   gtk_widget_set_can_focus(box, GTK_CAN_FOCUS);
++   gtk_widget_set_can_default(box, GTK_CAN_DEFAULT);
+ 
+    gtk_box_pack_start (GTK_BOX (box1), table, TRUE, TRUE, 0);
+ 
+Index: libgtkdatabox-0.9.1.1/examples/lissajous.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/lissajous.c	2011-05-21 12:39:02.035594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/lissajous.c	2011-05-21 12:36:16.759594820 +0200
+@@ -154,7 +154,7 @@
+ 			     G_CALLBACK (gtk_main_quit), G_OBJECT (box));
+ 
+    gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+    lissajous_idle = g_idle_add ((GSourceFunc) lissajous_idle_func, box);
+ 
+Index: libgtkdatabox-0.9.1.1/examples/logarithmic.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/logarithmic.c	2011-05-21 12:39:01.827594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/logarithmic.c	2011-05-21 12:36:16.743594812 +0200
+@@ -207,7 +207,7 @@
+    g_signal_connect (GTK_OBJECT (close_button), "clicked",
+ 		     G_CALLBACK (gtk_main_quit), NULL);
+    gtk_box_pack_start (GTK_BOX (vbox), close_button, FALSE, FALSE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+    gtk_widget_grab_focus (close_button);
+ 
+Index: libgtkdatabox-0.9.1.1/examples/markers.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/markers.c	2011-05-21 12:39:01.871594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/markers.c	2011-05-21 12:36:16.747594818 +0200
+@@ -220,7 +220,7 @@
+    g_signal_connect_swapped (GTK_OBJECT (close_button), "clicked",
+ 			     G_CALLBACK (gtk_main_quit), GTK_OBJECT (box));
+    gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+ 
+    gtk_widget_show_all (window);
+Index: libgtkdatabox-0.9.1.1/examples/signals.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/examples/signals.c	2011-05-21 12:39:01.751594722 +0200
++++ libgtkdatabox-0.9.1.1/examples/signals.c	2011-05-21 12:36:16.743594812 +0200
+@@ -287,7 +287,7 @@
+    g_signal_connect_swapped (G_OBJECT (close_button), "clicked",
+ 			     G_CALLBACK (gtk_main_quit), G_OBJECT (box));
+    gtk_box_pack_start (GTK_BOX (box2), close_button, TRUE, TRUE, 0);
+-   GTK_WIDGET_SET_FLAGS (close_button, GTK_CAN_DEFAULT);
++   gtk_widget_set_can_default(close_button, GTK_CAN_DEFAULT);
+    gtk_widget_grab_default (close_button);
+ 
+    g_signal_connect (G_OBJECT (box), "zoomed",
+Index: libgtkdatabox-0.9.1.1/gtk/gtkdatabox.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/gtk/gtkdatabox.c	2011-05-21 12:39:01.583594722 +0200
++++ libgtkdatabox-0.9.1.1/gtk/gtkdatabox.c	2011-05-21 12:38:43.523595004 +0200
+@@ -453,7 +453,8 @@
+       gint width;
+       gint height;
+ 
+-      gdk_drawable_get_size (widget->window, &width, &height);
++      width = gdk_window_get_width(widget->window);
++      height = gdk_window_get_height(widget->window);
+       x = MAX (0, MIN (width - 1, x));
+       y = MAX (0, MIN (height - 1, y));
+ 
+@@ -587,7 +588,7 @@
+    gint attributes_mask;
+ 
+    box = GTK_DATABOX (widget);
+-   GTK_WIDGET_SET_FLAGS (box, GTK_REALIZED);
++   gtk_widget_set_realized(box, GTK_REALIZED);
+ 
+    attributes.window_type = GDK_WINDOW_CHILD;
+    attributes.x = widget->allocation.x;
+Index: libgtkdatabox-0.9.1.1/gtk/gtkdatabox_ruler.c
+===================================================================
+--- libgtkdatabox-0.9.1.1.orig/gtk/gtkdatabox_ruler.c	2011-05-21 12:39:01.631594722 +0200
++++ libgtkdatabox-0.9.1.1/gtk/gtkdatabox_ruler.c	2011-05-21 12:38:59.963594710 +0200
+@@ -842,7 +842,7 @@
+    gint attributes_mask;
+ 
+    ruler = GTK_DATABOX_RULER (widget);
+-   GTK_WIDGET_SET_FLAGS (ruler, GTK_REALIZED);
++   gtk_widget_set_realized(ruler, GTK_REALIZED);
+ 
+    attributes.window_type = GDK_WINDOW_CHILD;
+    attributes.x = widget->allocation.x;
Index: pkgs/development/libraries/SDL_net/default.nix
===================================================================
--- pkgs/development/libraries/SDL_net/default.nix	(revision 34573)
+++ pkgs/development/libraries/SDL_net/default.nix	(working copy)
@@ -13,8 +13,17 @@
 
   propagatedBuildInputs = [SDL];
 
-  postInstall = "ln -s $out/include/SDL/SDL_net.h $out/include/";
+  postInstall = ''
+    sed -i -e 's,"SDL.h",<SDL/SDL.h>,' \
+    -e 's,"SDL_endian.h",<SDL/SDL_endian.h>,' \
+    -e 's,"SDL_version.h",<SDL/SDL_version.h>,' \
+    -e 's,"begin_code.h",<SDL/begin_code.h>,' \
+    -e 's,"close_code.h",<SDL/close_code.h>,' \
+      $out/include/SDL/SDL_net.h
 
+    ln -sv $out/include/SDL/SDL_net.h $out/include/
+  '';
+
   meta = {
     description = "SDL networking library";
   };
Index: pkgs/development/libraries/libvdpau/default.nix
===================================================================
--- pkgs/development/libraries/libvdpau/default.nix	(revision 34573)
+++ pkgs/development/libraries/libvdpau/default.nix	(working copy)
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, xlibs }:
+{ stdenv, fetchurl, pkgconfig, libX11 }:
 
 stdenv.mkDerivation rec {
   name = "libvdpau-0.4.1";
@@ -8,8 +8,10 @@
     sha256 = "16zmmbawfnvrxjqvgfwxjfd1wh3vyz2cmvxza6cgf4j9qs36y6q6";
   };
 
-  buildInputs = [ pkgconfig xlibs.libX11 ];
+  buildInputs = [ pkgconfig libX11 ];
 
+  propagatedBuildInputs = [ libX11 ];
+
   meta = {
     homepage = http://people.freedesktop.org/~aplattner/vdpau/;
     description = "Library to use the Video Decode and Presentation API for Unix (VDPAU)";
Index: pkgs/development/libraries/libdrm/default.nix
===================================================================
--- pkgs/development/libraries/libdrm/default.nix	(revision 34573)
+++ pkgs/development/libraries/libdrm/default.nix	(working copy)
@@ -16,7 +16,9 @@
   preConfigure = stdenv.lib.optionalString stdenv.isDarwin
   "echo : \\\${ac_cv_func_clock_gettime=\'yes\'} > config.cache";
 
-  configureFlags = [ "--enable-nouveau-experimental-api" "--enable-udev" ]
+  configureFlags = [ "--enable-nouveau-experimental-api"
+                     "--enable-radeon-experimental-api"
+                     "--enable-udev" ]
     ++ stdenv.lib.optional stdenv.isDarwin "-C";
 
   crossAttrs.configureFlags = configureFlags ++ [ "--disable-intel" ];
Index: pkgs/development/libraries/gconfmm/default.nix
===================================================================
--- pkgs/development/libraries/gconfmm/default.nix	(revision 0)
+++ pkgs/development/libraries/gconfmm/default.nix	(working copy)
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl_gnome, pkgconfig, gconf, gtkmm, glibmm }:
+
+stdenv.mkDerivation rec {
+  name = src.pkgname;
+
+  src = fetchurl_gnome {
+    project = "gconfmm";
+    major = "2"; minor = "28"; patchlevel = "3"; extension = "bz2";
+    sha256 = "a5e0092bb73371a3ca76b2ecae794778f3a9409056fee9b28ec1db072d8e6108";
+  };
+
+  buildNativeInputs = [pkgconfig];
+
+  propagatedBuildInputs = [ gconf gtkmm glibmm ];
+
+  meta = {
+    description = "C++ wrappers for GConf";
+
+    license = "LGPLv2+";
+
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
Index: pkgs/development/libraries/gtkglextmm/default.nix
===================================================================
--- pkgs/development/libraries/gtkglextmm/default.nix	(revision 0)
+++ pkgs/development/libraries/gtkglextmm/default.nix	(working copy)
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl_gnome, pkgconfig, gtkglext, gtkmm, gtk, mesa, gdk_pixbuf }:
+
+stdenv.mkDerivation rec {
+  name = src.pkgname;
+
+  src = fetchurl_gnome {
+    project = "gtkglextmm";
+    major = "1"; minor = "2"; patchlevel = "0"; extension = "bz2";
+    sha256 = "6cd4bd2a240e5eb1e3a24c5a3ebbf7ed905b522b888439778043fdeb58771fea";
+  };
+
+  patches = [ ./gdk.patch ];
+
+  buildNativeInputs = [pkgconfig];
+
+  propagatedBuildInputs = [ gtkglext gtkmm gtk mesa gdk_pixbuf ];
+
+  meta = {
+    description = "C++ wrappers for GtkGLExt";
+
+    license = "LGPLv2+";
+
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
Index: pkgs/development/libraries/gtkglextmm/gdk.patch
===================================================================
--- pkgs/development/libraries/gtkglextmm/gdk.patch	(revision 0)
+++ pkgs/development/libraries/gtkglextmm/gdk.patch	(working copy)
@@ -0,0 +1,15 @@
+# fixes: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=621976
+# reference: http://www.mail-archive.com/[email protected]/msg250570.html
+--- gtkglextmm-1.2.0-orig/gtkglext/gtkmm/gl/widget.cc	2004-05-18 03:01:50.000000000 -0300
++++ gtkglextmm-1.2.0/gtkglext/gtkmm/gl/widget.cc	2011-06-12 17:57:13.075541070 -0300
+@@ -17,9 +17,8 @@
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA.
+  */
+ 
+-#include <gtk/gtkglwidget.h>
+-
+ #include "widget.h"
++#include <gtk/gtkglwidget.h>
+ 
+ namespace Gtk
+ {
\ No newline at end of file
Index: pkgs/development/libraries/ffmpeg/default.nix
===================================================================
--- pkgs/development/libraries/ffmpeg/default.nix	(revision 34573)
+++ pkgs/development/libraries/ffmpeg/default.nix	(working copy)
@@ -6,6 +6,7 @@
 , vpxSupport ? false, libvpx ? null
 , x264Support ? true, x264 ? null
 , xvidSupport ? true, xvidcore ? null
+, vdpauSupport ? true, libvdpau ? null
 , faacSupport ? false, faac ? null
 }:
 
@@ -15,6 +16,7 @@
 assert vpxSupport -> libvpx != null;
 assert x264Support -> x264 != null;
 assert xvidSupport -> xvidcore != null;
+assert vdpauSupport -> libvdpau != null;
 assert faacSupport -> faac != null;
 
 stdenv.mkDerivation rec {
@@ -44,6 +46,7 @@
     ++ stdenv.lib.optional vpxSupport "--enable-libvpx"
     ++ stdenv.lib.optional x264Support "--enable-libx264"
     ++ stdenv.lib.optional xvidSupport "--enable-libxvid"
+    ++ stdenv.lib.optional vdpauSupport "--enable-vdpau"
     ++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree";
 
   buildInputs = [ pkgconfig lame yasm zlib bzip2 ]
@@ -54,6 +57,7 @@
     ++ stdenv.lib.optional vpxSupport libvpx
     ++ stdenv.lib.optional x264Support x264
     ++ stdenv.lib.optional xvidSupport xvidcore
+    ++ stdenv.lib.optional vdpauSupport libvdpau
     ++ stdenv.lib.optional faacSupport faac;
 
   enableParallelBuilding = true;
Index: pkgs/development/libraries/ffmpeg/0.6.90.nix
===================================================================
--- pkgs/development/libraries/ffmpeg/0.6.90.nix	(revision 34573)
+++ pkgs/development/libraries/ffmpeg/0.6.90.nix	(working copy)
@@ -6,6 +6,7 @@
 , vpxSupport ? false, libvpx ? null
 , x264Support ? true, x264 ? null
 , xvidSupport ? true, xvidcore ? null
+, vdpauSupport ? true, libvdpau ? null
 , faacSupport ? false, faac ? null
 }:
 
@@ -15,6 +16,7 @@
 assert vpxSupport -> libvpx != null;
 assert x264Support -> x264 != null;
 assert xvidSupport -> xvidcore != null;
+assert vdpauSupport -> libvdpau != null;
 assert faacSupport -> faac != null;
 
 stdenv.mkDerivation rec {
@@ -44,6 +46,7 @@
     ++ stdenv.lib.optional vpxSupport "--enable-libvpx"
     ++ stdenv.lib.optional x264Support "--enable-libx264"
     ++ stdenv.lib.optional xvidSupport "--enable-libxvid"
+    ++ stdenv.lib.optional vdpauSupport "--enable-vdpau"
     ++ stdenv.lib.optional faacSupport "--enable-libfaac --enable-nonfree";
 
   buildInputs = [ pkgconfig lame yasm ]
@@ -54,6 +57,7 @@
     ++ stdenv.lib.optional vpxSupport libvpx
     ++ stdenv.lib.optional x264Support x264
     ++ stdenv.lib.optional xvidSupport xvidcore
+    ++ stdenv.lib.optional vdpauSupport libvdpau
     ++ stdenv.lib.optional faacSupport faac;
 
   crossAttrs = {
Index: pkgs/misc/emulators/wine/default.nix
===================================================================
--- pkgs/misc/emulators/wine/default.nix	(revision 34573)
+++ pkgs/misc/emulators/wine/default.nix	(working copy)
@@ -7,16 +7,16 @@
 assert stdenv.gcc.gcc != null;
 
 stdenv.mkDerivation rec {
-  name = "wine-1.3.32";
+  name = "wine-1.5.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/wine/${name}.tar.bz2";
-    sha256 = "fe1691ef8e9c5c4afeb345ad0f0b364d055cfe67a7e64b0a4a44da4d85cfa8b6";
+    sha256 = "e7d5ba716d2ac47193fa31eff66cc179145ddcb453c6923eaea70596a82b084e";
   };
 
   gecko = fetchurl {
-    url = "mirror://sourceforge/wine/wine_gecko-1.3-x86.msi";
-    sha256 = "1bmm826dhq82jzxdld4x9cyg8mgzg8llkki59n9fvxggi7l5jxab";
+    url = "mirror://sourceforge/wine/wine_gecko-1.5-x86.msi";
+    sha256 = "2e372a1b87ff2a22ad5127400ece4b09e55591d9f84e00bb562d294898a49b5c";
   };
 
   buildInputs = [
Index: pkgs/os-specific/linux/psmisc/default.nix
===================================================================
--- pkgs/os-specific/linux/psmisc/default.nix	(revision 34573)
+++ pkgs/os-specific/linux/psmisc/default.nix	(working copy)
@@ -3,11 +3,11 @@
 assert stdenv.isLinux;
 
 stdenv.mkDerivation rec {
-  name = "psmisc-22.13";
+  name = "psmisc-22.19";
 
   src = fetchurl {
     url = "mirror://sourceforge/psmisc/${name}.tar.gz";
-    sha256 = "06d25e8ebb4722dbcede98a787c39a9ed341f8e58fde10c0b2d6b35990b35daa";
+    sha256 = "e112ccadd4694c98f5ea4a02cd6944fdc5a2a1985f20e2b3f74f4dbca83a2a31";
   };
 
   buildInputs = [ncurses];
Index: pkgs/applications/virtualization/xen/default.nix
===================================================================
--- pkgs/applications/virtualization/xen/default.nix	(revision 34573)
+++ pkgs/applications/virtualization/xen/default.nix	(working copy)
@@ -6,7 +6,7 @@
 
 let
 
-  version = "4.0.3";
+  version = "4.1.2";
 
   libDir = if stdenv.is64bit then "lib64" else "lib";
 
@@ -30,6 +30,10 @@
       }
     ];
 
+  ipxeSrc =
+      { url = http://xenbits.xensource.com/xen-extfiles/ipxe-git-v1.0.0.tar.gz;
+        sha256 = "d3128bfda9a1542049c278755f85bbcbb8441da7bfd702d511ce237fcf86a723";
+      };
 in 
 
 stdenv.mkDerivation {
@@ -37,7 +41,7 @@
 
   src = fetchurl {
     url = "http://bits.xensource.com/oss-xen/release/${version}/xen-${version}.tar.gz";;
-    sha256 = "0p4i7mm8cdsr8i9z3dij6nriyvz6la2rhm7jkyk2n8h62nnxi1b5";
+    sha256 = "7d9c93057cf480d3f1efa792b19285a84fa3c06060ea5c5c453be00887389b0d";
   };
 
   patches =
@@ -46,7 +50,7 @@
       ./has-header.patch
 
       # GCC 4.5 compatibility.
-      ./gcc-4.5.patch
+      #./gcc-4.5.patch
     ];
 
   buildInputs =
@@ -102,12 +106,18 @@
         --replace 'XENDOM_CONFIG=/etc/sysconfig/xendomains' "" \
         --replace /bin/ls ls
 
+      grep -rl /etc/xen * | xargs sed -i 's|/etc/xen|$out/etc/xen|g'
+
       # Xen's stubdoms need various sources that it usually fetches at
       # build time using wget.  We can't have that.
       ${flip concatMapStrings stubdomSrcs (x: let src = fetchurl x; in ''
         cp ${src} stubdom/${src.name}
       '')}
 
+      ${let src = fetchurl ipxeSrc; in ''
+        cp ${src} tools/firmware/etherboot/ipxe.tar.gz
+      ''}
+
       # Hack to get `gcc -m32' to work without having 32-bit Glibc headers.
       mkdir -p tools/include/gnu
       touch tools/include/gnu/stubs-32.h
_______________________________________________
nix-dev mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-dev

Reply via email to