diff --git a/pkgs/misc/emulators/wine/packages.nix b/pkgs/misc/emulators/wine/packages.nix index 1a7e32efcbe1..69275a74b356 100644 --- a/pkgs/misc/emulators/wine/packages.nix +++ b/pkgs/misc/emulators/wine/packages.nix @@ -1,62 +1,35 @@ -{ system, stdenv, stdenv_32bit, lib, pkgs, pkgsi686Linux, fetchurl, +{ system, stdenv, stdenv_32bit, lib, pkgs, pkgsi686Linux, callPackage, pulseaudioSupport, wineRelease ? "stable" }: -let sources = with lib.getAttr wineRelease (import ./versions.nix); { - version = wineVersion; - src = fetchurl { - url = "mirror://sourceforge/wine/wine-${wineVersion}.tar.bz2"; - sha256 = wineSha256; - }; - - wineGecko32 = fetchurl { - url = "mirror://sourceforge/wine/wine_gecko-${geckoVersion}-x86.msi"; - sha256 = geckoSha256; - }; - - wineGecko64 = fetchurl { - url = "mirror://sourceforge/wine/wine_gecko-${gecko64Version}-x86_64.msi"; - sha256 = gecko64Sha256; - }; - - wineMono = fetchurl { - url = "mirror://sourceforge/wine/wine-mono-${monoVersion}.msi"; - sha256 = monoSha256; - }; - }; - inherit (sources) version; -in { +let src = lib.getAttr wineRelease (callPackage ./sources.nix {}); +in with src; { wine32 = import ./base.nix { name = "wine-${version}"; - inherit (sources) version src; + inherit src version pulseaudioSupport; inherit (pkgsi686Linux) lib stdenv; - inherit pulseaudioSupport; pkgArches = [ pkgsi686Linux ]; - geckos = with sources; [ wineGecko32 ]; - monos = with sources; [ wineMono ]; + geckos = [ gecko32 ]; + monos = [ mono ]; platforms = [ "i686-linux" "x86_64-linux" ]; }; wine64 = import ./base.nix { name = "wine64-${version}"; - inherit (sources) version src; - inherit lib stdenv; - inherit pulseaudioSupport; + inherit src version pulseaudioSupport lib stdenv; pkgArches = [ pkgs ]; - geckos = with sources; [ wineGecko64 ]; - monos = with sources; [ wineMono ]; + geckos = [ gecko64 ]; + monos = [ mono ]; configureFlags = "--enable-win64"; platforms = [ "x86_64-linux" ]; }; wineWow = import ./base.nix { name = "wine-wow-${version}"; - inherit (sources) version src; - inherit lib; + inherit src version pulseaudioSupport lib; stdenv = stdenv_32bit; - inherit pulseaudioSupport; pkgArches = [ pkgs pkgsi686Linux ]; - geckos = with sources; [ wineGecko32 wineGecko64 ]; - monos = with sources; [ wineMono ]; + geckos = [ gecko32 gecko64 ]; + monos = [ mono ]; buildScript = ./builder-wow.sh; platforms = [ "x86_64-linux" ]; }; diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix new file mode 100644 index 000000000000..49c7e71af8a5 --- /dev/null +++ b/pkgs/misc/emulators/wine/sources.nix @@ -0,0 +1,55 @@ +{ pkgs ? import {} }: +let fetchurl = args@{url, sha256, ...}: + pkgs.fetchurl { inherit url sha256; } // args; + fetchFromGitHub = args@{owner, repo, rev, sha256, ...}: + pkgs.fetchFromGitHub { inherit owner repo rev sha256; } // args; +in rec { + + stable = fetchurl rec { + version = "1.8.1"; + url = "mirror://sourceforge/wine/wine-${version}.tar.bz2"; + sha256 = "15ya496qq24ipqii7ij8x8h5x8n21vgqa4h6binb74w5mzdd76hl"; + + ## see http://wiki.winehq.org/Gecko + gecko32 = fetchurl rec { + version = "2.40"; + url = "mirror://sourceforge/wine/wine_gecko-${version}-x86.msi"; + sha256 = "00nkaxhb9dwvf53ij0q75fb9fh7pf43hmwx6rripcax56msd2a8s"; + }; + gecko64 = fetchurl rec { + version = "2.40"; + url = "mirror://sourceforge/wine/wine_gecko-${version}-x86_64.msi"; + sha256 = "0c4jikfzb4g7fyzp0jcz9fk2rpdl1v8nkif4dxcj28nrwy48kqn3"; + }; + ## see http://wiki.winehq.org/Mono + mono = fetchurl rec { + version = "4.5.6"; + url = "mirror://sourceforge/wine/wine-mono-${version}.msi"; + sha256 = "09dwfccvfdp3walxzp6qvnyxdj2bbyw9wlh6cxw2sx43gxriys5c"; + }; + }; + + unstable = fetchurl rec { + version = "1.9.2"; + url = "mirror://sourceforge/wine/wine-${version}.tar.bz2"; + sha256 = "0yjf0i2yc0yj366kg6b2ci9bwz3jq5k5vl01bqw4lbpgf5m4sk9k"; + inherit (stable) gecko32 gecko64 mono; + }; + + staging = fetchFromGitHub rec { + inherit (unstable) version; + sha256 = "05lxhl9rv936xh8v640l36xswszwc41iwpbjq7n5cwk361mdh1lp"; + owner = "wine-compholio"; + repo = "wine-staging"; + rev = "v${version}"; + }; + + winetricks = fetchFromGitHub rec { + version = "20160109"; + sha256 = "0pnl5362g5q7py368vj07swbdp1fqbpvpq4jv4l5ddyclps8ajg8"; + owner = "Winetricks"; + repo = "winetricks"; + rev = version; + }; + +} diff --git a/pkgs/misc/emulators/wine/staging.nix b/pkgs/misc/emulators/wine/staging.nix index da4456c0ef98..9419aff1a39c 100644 --- a/pkgs/misc/emulators/wine/staging.nix +++ b/pkgs/misc/emulators/wine/staging.nix @@ -1,18 +1,11 @@ -{ stdenv, callPackage, lib, fetchFromGitHub, wineUnstable, libtxc_dxtn_Name }: +{ stdenv, callPackage, lib, wineUnstable, libtxc_dxtn_Name }: 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}"; - }; +let patch = (callPackage ./sources.nix {}).staging; build-inputs = pkgNames: extra: (mkBuildInputs wineUnstable.pkgArches pkgNames) ++ extra; -in assert (builtins.parseDrvName wineUnstable.name).version == version; +in assert (builtins.parseDrvName wineUnstable.name).version == patch.version; stdenv.lib.overrideDerivation wineUnstable (self: { nativeBuildInputs = build-inputs [ libtxc_dxtn_Name ] self.nativeBuildInputs; diff --git a/pkgs/misc/emulators/wine/versions.nix b/pkgs/misc/emulators/wine/versions.nix deleted file mode 100644 index d2c4cc6e43e6..000000000000 --- a/pkgs/misc/emulators/wine/versions.nix +++ /dev/null @@ -1,30 +0,0 @@ -rec { - stable = { - wineVersion = "1.8"; - wineSha256 = "1x66lzpk7v8qx57clmcq5ag7yh3mqplf1plypwghgchjh70lafzk"; - ## see http://wiki.winehq.org/Gecko - geckoVersion = "2.40"; - geckoSha256 = "00nkaxhb9dwvf53ij0q75fb9fh7pf43hmwx6rripcax56msd2a8s"; - gecko64Version = "2.40"; - gecko64Sha256 = "0c4jikfzb4g7fyzp0jcz9fk2rpdl1v8nkif4dxcj28nrwy48kqn3"; - ## see http://wiki.winehq.org/Mono - monoVersion = "4.5.6"; - monoSha256 = "09dwfccvfdp3walxzp6qvnyxdj2bbyw9wlh6cxw2sx43gxriys5c"; - }; - unstable = { - wineVersion = "1.9.2"; - wineSha256 = "0yjf0i2yc0yj366kg6b2ci9bwz3jq5k5vl01bqw4lbpgf5m4sk9k"; - inherit (stable) - geckoVersion geckoSha256 - gecko64Version gecko64Sha256 - monoVersion monoSha256; - }; - staging = { - version = unstable.wineVersion; - sha256 = "05lxhl9rv936xh8v640l36xswszwc41iwpbjq7n5cwk361mdh1lp"; - }; - winetricks = { - version = "20160109"; - sha256 = "0pnl5362g5q7py368vj07swbdp1fqbpvpq4jv4l5ddyclps8ajg8"; - }; -} diff --git a/pkgs/misc/emulators/wine/winetricks.nix b/pkgs/misc/emulators/wine/winetricks.nix index 39aaa098cfef..2d729f7185fa 100644 --- a/pkgs/misc/emulators/wine/winetricks.nix +++ b/pkgs/misc/emulators/wine/winetricks.nix @@ -1,16 +1,10 @@ -{ stdenv, fetchFromGitHub, wine, perl, which, coreutils, zenity, curl +{ stdenv, callPackage, wine, perl, which, coreutils, zenity, curl , cabextract, unzip, p7zip, gnused, gnugrep, bash } : -let v = (import ./versions.nix).winetricks; -in stdenv.mkDerivation rec { - name = "winetricks-${v.version}"; +stdenv.mkDerivation rec { + name = "winetricks-${src.version}"; - src = fetchFromGitHub { - owner = "Winetricks"; - repo = "winetricks"; - rev = v.version; - sha256 = v.sha256; - }; + src = (callPackage ./sources.nix {}).winetricks; buildInputs = [ perl which ];