diff --git a/pkgs/misc/emulators/wine/base.nix b/pkgs/misc/emulators/wine/base.nix index 1e2d656fb0ef..e031627a032d 100644 --- a/pkgs/misc/emulators/wine/base.nix +++ b/pkgs/misc/emulators/wine/base.nix @@ -1,5 +1,6 @@ { stdenv, lib, pkgArches, name, version, src, monos, geckos, platforms, + pulseaudioSupport, buildScript ? null, configureFlags ? "" }: @@ -19,7 +20,9 @@ stdenv.mkDerivation ((lib.optionalAttrs (! isNull buildScript) { nativeBuildInputs = toBuildInputs pkgArches (pkgs: (with pkgs; [ freetype fontconfig mesa mesa_noglu.osmesa libdrm libpng libjpeg openssl gnutls cups ncurses - ]) ++ (with pkgs.xorg; [ + ]) + ++ lib.optional pulseaudioSupport pkgs.libpulseaudio + ++ (with pkgs.xorg; [ xlibsWrapper libXi libXcursor libXinerama libXrandr libXrender libXxf86vm libXcomposite ])); diff --git a/pkgs/misc/emulators/wine/default.nix b/pkgs/misc/emulators/wine/default.nix index 5261f79de107..a402fba69f67 100644 --- a/pkgs/misc/emulators/wine/default.nix +++ b/pkgs/misc/emulators/wine/default.nix @@ -9,11 +9,13 @@ { lib, pkgs, system, callPackage, wineRelease ? "stable", wineBuild ? (if system == "x86_64-linux" then "wineWow" else "wine32"), + pulseaudioSupport ? false, libtxc_dxtn_Name ? "libtxc_dxtn_s2tc" }: let wine-build = build: release: lib.getAttr build (callPackage ./packages.nix { wineRelease = release; + inherit pulseaudioSupport; }); in if wineRelease == "staging" then diff --git a/pkgs/misc/emulators/wine/packages.nix b/pkgs/misc/emulators/wine/packages.nix index ce983b993144..1a7e32efcbe1 100644 --- a/pkgs/misc/emulators/wine/packages.nix +++ b/pkgs/misc/emulators/wine/packages.nix @@ -1,4 +1,5 @@ { system, stdenv, stdenv_32bit, lib, pkgs, pkgsi686Linux, fetchurl, + pulseaudioSupport, wineRelease ? "stable" }: @@ -30,6 +31,7 @@ in { name = "wine-${version}"; inherit (sources) version src; inherit (pkgsi686Linux) lib stdenv; + inherit pulseaudioSupport; pkgArches = [ pkgsi686Linux ]; geckos = with sources; [ wineGecko32 ]; monos = with sources; [ wineMono ]; @@ -39,6 +41,7 @@ in { name = "wine64-${version}"; inherit (sources) version src; inherit lib stdenv; + inherit pulseaudioSupport; pkgArches = [ pkgs ]; geckos = with sources; [ wineGecko64 ]; monos = with sources; [ wineMono ]; @@ -50,6 +53,7 @@ in { inherit (sources) version src; inherit lib; stdenv = stdenv_32bit; + inherit pulseaudioSupport; pkgArches = [ pkgs pkgsi686Linux ]; geckos = with sources; [ wineGecko32 wineGecko64 ]; monos = with sources; [ wineMono ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8be89661b677..3c25d094673f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15691,6 +15691,9 @@ let wine = callPackage ../misc/emulators/wine { wineRelease = config.wine.release or "stable"; wineBuild = config.wine.build or "wine32"; + pulseaudioSupport = if (config ? pulseaudio) + then config.pulseaudio + else stdenv.isLinux; }; wineStable = wine.override { wineRelease = "stable"; }; wineUnstable = lowPrio (wine.override { wineRelease = "unstable"; });