wine: consolidate source packages

In order to update wine packages more easily, the source derivations are
collected into a single sources.nix, so hashes can be updated like
`nix-prefetch-url pkgs/misc/emulators/wine/sources.nix -A stable`
This commit is contained in:
Herwig Hochleitner 2016-02-02 04:55:46 +01:00
parent 98b365386a
commit 4ce954d02e
5 changed files with 74 additions and 89 deletions

View file

@ -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" ];
};

View file

@ -0,0 +1,55 @@
{ pkgs ? import <nixpkgs> {} }:
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";
url = "mirror://sourceforge/wine/wine-${version}.tar.bz2";
sha256 = "1x66lzpk7v8qx57clmcq5ag7yh3mqplf1plypwghgchjh70lafzk";
## 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;
};
}

View file

@ -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;

View file

@ -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";
};
}

View file

@ -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 ];