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:
parent
98b365386a
commit
4ce954d02e
5 changed files with 74 additions and 89 deletions
|
@ -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" ];
|
||||
};
|
||||
|
|
55
pkgs/misc/emulators/wine/sources.nix
Normal file
55
pkgs/misc/emulators/wine/sources.nix
Normal 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;
|
||||
};
|
||||
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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";
|
||||
};
|
||||
}
|
|
@ -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 ];
|
||||
|
||||
|
|
Loading…
Reference in a new issue