summary refs log tree commit diff
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2015-05-18 22:41:41 +0300
committerNikolay Amiantov <ab@fmap.me>2015-05-18 22:41:41 +0300
commitb0972a00061e41db8fe35b20176b8d380f84975f (patch)
tree886e2b883ffad9d4e0d734ff86e87b3eafff7d94
parent282d7b21897312b9bc046b545627a01e574aa06f (diff)
parent2f53355ff67ea26455d4fcedf9f63de5714001a9 (diff)
downloadnixpkgs-b0972a00061e41db8fe35b20176b8d380f84975f.tar
nixpkgs-b0972a00061e41db8fe35b20176b8d380f84975f.tar.gz
nixpkgs-b0972a00061e41db8fe35b20176b8d380f84975f.tar.bz2
nixpkgs-b0972a00061e41db8fe35b20176b8d380f84975f.tar.lz
nixpkgs-b0972a00061e41db8fe35b20176b8d380f84975f.tar.xz
nixpkgs-b0972a00061e41db8fe35b20176b8d380f84975f.tar.zst
nixpkgs-b0972a00061e41db8fe35b20176b8d380f84975f.zip
Merge pull request #7895 from bendlas/wine64-staging
Integrate wine-staging into 32/64/wow build arch
-rw-r--r--pkgs/misc/emulators/wine/base.nix28
-rw-r--r--pkgs/misc/emulators/wine/builder-wow.sh1
-rw-r--r--pkgs/misc/emulators/wine/default.nix21
-rw-r--r--pkgs/misc/emulators/wine/staging.nix19
-rw-r--r--pkgs/misc/emulators/wine/util.nix9
-rw-r--r--pkgs/misc/emulators/wine/versions.nix12
-rw-r--r--pkgs/misc/emulators/wine/winetricks.nix8
-rw-r--r--pkgs/top-level/all-packages.nix8
8 files changed, 64 insertions, 42 deletions
diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix
index ce39740f113..bf63340d35d 100644
--- a/pkgs/misc/emulators/wine/base.nix
+++ b/pkgs/misc/emulators/wine/base.nix
@@ -6,30 +6,29 @@
 assert stdenv.isLinux;
 assert stdenv.cc.cc.isGNU or false;
 
+with import ./util.nix { inherit lib; };
+
 stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) {
   builder = buildScript;
-}) // {
+}) // rec {
   inherit name src configureFlags;
 
-  buildInputs = lib.concatLists (map (pkgs: (with pkgs; [
-    pkgconfig alsaLib ncurses libpng libjpeg lcms2 fontforge libxml2 libxslt
-    openssl gnutls cups makeWrapper flex bison mesa mesa_noglu.osmesa
+  buildInputs = toBuildInputs pkgArches (pkgs: with pkgs; [
+    pkgconfig alsaLib lcms2 fontforge libxml2 libxslt makeWrapper flex bison
+  ]);
+
+  nativeBuildInputs = toBuildInputs pkgArches (pkgs: (with pkgs; [
+    freetype fontconfig mesa mesa_noglu.osmesa libdrm libpng libjpeg openssl gnutls cups ncurses
   ]) ++ (with pkgs.xlibs; [
     xlibs libXi libXcursor libXinerama libXrandr libXrender libXxf86vm libXcomposite
-  ])) pkgArches);
+  ]));
 
   # Wine locates a lot of libraries dynamically through dlopen().  Add
   # them to the RPATH so that the user doesn't have to set them in
   # LD_LIBRARY_PATH.
-  NIX_LDFLAGS = map (path: "-rpath ${path}/lib") ([
-    stdenv.cc.cc
-  ] ++ (lib.concatLists (map (pkgs:
-        (with pkgs; [
-    freetype fontconfig mesa mesa_noglu.osmesa libdrm
-    libpng libjpeg openssl gnutls cups ncurses
-  ]) ++ (with pkgs.xlibs; [
-    libXinerama libXrender libXrandr libXcursor libXcomposite
-  ])) pkgArches)));
+  NIX_LDFLAGS = map
+    (path: "-rpath ${path}/lib")
+    ([ stdenv.cc.cc ] ++ nativeBuildInputs);
 
   # Don't shrink the ELF RPATHs in order to keep the extra RPATH
   # elements specified above.
@@ -51,6 +50,7 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) {
   
   enableParallelBuilding = true;
 
+  passthru = { inherit pkgArches; };
   meta = {
     inherit version platforms;
     homepage = "http://www.winehq.org/";
diff --git a/pkgs/misc/emulators/wine/builder-wow.sh b/pkgs/misc/emulators/wine/builder-wow.sh
index 9f946f3b71f..c7d9ed55a3f 100644
--- a/pkgs/misc/emulators/wine/builder-wow.sh
+++ b/pkgs/misc/emulators/wine/builder-wow.sh
@@ -3,6 +3,7 @@
 source $stdenv/setup
 
 unpackPhase
+cd $TMP/$sourceRoot
 patchPhase
 
 configureScript=$TMP/$sourceRoot/configure
diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix
index 962aee9fb5d..8b7e438a115 100644
--- a/pkgs/misc/emulators/wine/default.nix
+++ b/pkgs/misc/emulators/wine/default.nix
@@ -1,15 +1,22 @@
 ## Configuration:
 # Control you default wine config in nixpkgs-config:
 # wine = {
-#   release = "stable"; # "stable", "unstable"
+#   release = "stable"; # "stable", "unstable", "staging"
 #   build = "wineWow"; # "wine32", "wine64", "wineWow"
 # };
 # Make additional configurations on demand:
-# wine.overrideConfig { build = "wine32"; };
-{ lib, system, callPackage,
+# wine.override { wineBuild = "wine32"; wineRelease = "staging"; };
+{ lib, pkgs, system, callPackage,
   wineRelease ? "stable",
-  wineBuild ? (if system == "x86_64-linux" then "wineWow" else "wine32") }:
+  wineBuild ? (if system == "x86_64-linux" then "wineWow" else "wine32"),
+  libtxc_dxtn_Name ? "libtxc_dxtn_s2tc" }:
 
-lib.getAttr wineBuild (callPackage ./packages.nix {
-  inherit wineRelease;
-})
+if wineRelease == "staging" then
+  callPackage ./staging.nix {
+    inherit libtxc_dxtn_Name;
+    wine = lib.getAttr wineBuild (callPackage ./packages.nix { wineRelease = "unstable"; });
+  }
+else
+  lib.getAttr wineBuild (callPackage ./packages.nix {
+    inherit wineRelease;
+  })
diff --git a/pkgs/misc/emulators/wine/staging.nix b/pkgs/misc/emulators/wine/staging.nix
index a6ff309b08e..beea0bb3c12 100644
--- a/pkgs/misc/emulators/wine/staging.nix
+++ b/pkgs/misc/emulators/wine/staging.nix
@@ -1,19 +1,22 @@
-{ stdenv, fetchFromGitHub, wine, perl, autoconf, utillinux
-, pulseaudio, libtxc_dxtn }:
+{ stdenv, callPackage, lib, fetchFromGitHub, wine, libtxc_dxtn_Name }:
 
-let version = "1.7.42";
+with callPackage ./util.nix {};
+
+let v = (import ./versions.nix).staging;
+    inherit (v) version;
     patch = fetchFromGitHub {
+      inherit (v) sha256;
       owner = "wine-compholio";
       repo = "wine-staging";
       rev = "v${version}";
-      sha256 = "1qi1hf1w97n17vmj137p7da75g01ky84a3xvs50xrmxb7f62sm17";
     };
-
+    build-inputs = pkgNames: extra:
+      (mkBuildInputs wine.pkgArches pkgNames) ++ extra;
 in assert (builtins.parseDrvName wine.name).version == version;
 
 stdenv.lib.overrideDerivation wine (self: {
-  nativeBuildInputs = [ pulseaudio libtxc_dxtn ] ++ self.nativeBuildInputs;
-  buildInputs = [ perl utillinux autoconf ] ++ self.buildInputs;
+  nativeBuildInputs = build-inputs [ "pulseaudio" libtxc_dxtn_Name ] self.nativeBuildInputs; 
+  buildInputs = build-inputs [ "perl" "utillinux" "autoconf" ] self.buildInputs;
 
   name = "${self.name}-staging";
 
@@ -23,7 +26,7 @@ stdenv.lib.overrideDerivation wine (self: {
     chmod +w patches
     cd patches
     patchShebangs gitapply.sh
-    ./patchinstall.sh DESTDIR=.. --all
+    ./patchinstall.sh DESTDIR="$TMP/$sourceRoot" --all
     cd ..
   '';
 })
diff --git a/pkgs/misc/emulators/wine/util.nix b/pkgs/misc/emulators/wine/util.nix
new file mode 100644
index 00000000000..b90a68e72df
--- /dev/null
+++ b/pkgs/misc/emulators/wine/util.nix
@@ -0,0 +1,9 @@
+{ lib }:
+rec {
+  toPackages = pkgNames: pkgs:
+    map (pn: lib.getAttr pn pkgs) pkgNames;
+  toBuildInputs = pkgArches: archPkgs:
+    lib.concatLists (map archPkgs pkgArches);  
+  mkBuildInputs = pkgArches: pkgNames:
+    toBuildInputs pkgArches (toPackages pkgNames);
+}
diff --git a/pkgs/misc/emulators/wine/versions.nix b/pkgs/misc/emulators/wine/versions.nix
index e599f04f857..84a3ff8f86d 100644
--- a/pkgs/misc/emulators/wine/versions.nix
+++ b/pkgs/misc/emulators/wine/versions.nix
@@ -1,7 +1,7 @@
 {
   unstable = {
-    wineVersion = "1.7.42";
-    wineSha256  = "18iv4dsx2p7bk5qhiqqc6fpnnzny9rx8vgbjlpnf3gr0n615qzss";
+    wineVersion = "1.7.43";
+    wineSha256  = "08kqj02m8xc1ppzhs5y83zzykjnz0qliq495rx1n90ybzyd9pm2k";
     geckoVersion = "2.36";
     geckoSha256 = "12hjks32yz9jq4w3xhk3y1dy2g3iakqxd7aldrdj51cqiz75g95g";
     gecko64Version = "2.36";
@@ -22,4 +22,12 @@
     #monoVersion = "0.0.8";
     #monoSha256 = "00jl24qp7vh3hlqv7wsw1s529lr5p0ybif6s73jy85chqaxj7z1x";
   };
+  staging = {
+    version = "1.7.43";
+    sha256 = "01b7npa8hc2nrv4hm16r9ikic4wd34nbz1lvfhy0ali2jbcsaqqb";
+  };
+  winetricks = {
+    version = "20150416";
+    sha256 = "0467cn5hqry6fscjskpvxw0y00lr059jmldv1csicbav4l0dxx8k";
+  };
 }
diff --git a/pkgs/misc/emulators/wine/winetricks.nix b/pkgs/misc/emulators/wine/winetricks.nix
index 34a2a6efbbb..39aaa098cfe 100644
--- a/pkgs/misc/emulators/wine/winetricks.nix
+++ b/pkgs/misc/emulators/wine/winetricks.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchFromGitHub, wine, perl, which, coreutils, zenity, curl
 , cabextract, unzip, p7zip, gnused, gnugrep, bash } :
 
-let version = "20150316";
+let v = (import ./versions.nix).winetricks;
 in stdenv.mkDerivation rec {
-  name = "winetricks-${version}";
+  name = "winetricks-${v.version}";
 
   src = fetchFromGitHub {
     owner = "Winetricks";
     repo = "winetricks";
-    rev = version;
-    sha256 = "00c55jpca6l3v3p02xc0gy5l4xb17gf90282hq5h85nh72kqsbrh";
+    rev = v.version;
+    sha256 = v.sha256;
   };
 
   buildInputs = [ perl which ];
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 4c429a3b238..40a77f8a623 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14461,18 +14461,12 @@ let
   };
   wineStable = wine.override { wineRelease = "stable"; };
   wineUnstable = wine.override { wineRelease = "unstable"; };
+  wineStaging = wine.override { wineRelease = "staging"; };
 
   winetricks = callPackage ../misc/emulators/wine/winetricks.nix {
     inherit (gnome2) zenity;
   };
 
-  ### FIXME integrate wineStaging into 64bit
-  wineStaging = callPackage_i686 ../misc/emulators/wine/staging.nix {
-    wine = pkgsi686Linux.wineUnstable;
-    # Patent issues
-    libtxc_dxtn = pkgsi686Linux.libtxc_dxtn_s2tc;
-  };
-
   wmutils-core = callPackage ../tools/X11/wmutils-core { };
 
   wxmupen64plus = callPackage ../misc/emulators/wxmupen64plus { };