diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix index 83f86c40c0d..0d1772d0c54 100644 --- a/pkgs/development/libraries/libcanberra/default.nix +++ b/pkgs/development/libraries/libcanberra/default.nix @@ -1,5 +1,7 @@ -{ stdenv, fetchurl, pkgconfig, libtool, gtk ? null, libcap -, alsaLib, libpulseaudio, gst_all_1, libvorbis }: +{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, libtool +, gtk ? null +, libpulseaudio, gst_all_1, libvorbis, libcap +, withAlsa ? stdenv.isLinux, alsaLib }: stdenv.mkDerivation rec { name = "libcanberra-0.30"; @@ -11,11 +13,20 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig libtool ]; buildInputs = [ - alsaLib libpulseaudio libvorbis gtk libcap - ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]); + libpulseaudio libvorbis gtk + ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]) + ++ lib.optional stdenv.isLinux libcap + ++ lib.optional withAlsa alsaLib; configureFlags = "--disable-oss"; + patchFlags = "-p0"; + patches = stdenv.lib.optional stdenv.isDarwin + (fetchpatch { + url = "https://raw.githubusercontent.com/macports/macports-ports/master/audio/libcanberra/files/patch-configure.diff"; + sha256 = "1f7h7ifpqvbfhqygn1b7klvwi80zmpv3538vbmq7ql7bkf1q8h31"; + }); + postInstall = '' for f in $out/lib/*.la; do sed 's|-lltdl|-L${libtool.lib}/lib -lltdl|' -i $f @@ -42,6 +53,6 @@ stdenv.mkDerivation rec { license = stdenv.lib.licenses.lgpl2Plus; maintainers = [ ]; - platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux; # arbitrary choice + platforms = stdenv.lib.platforms.unix; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2f4dfe46aac..01539ccda6f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9809,8 +9809,12 @@ with pkgs; }; libcanberra = callPackage ../development/libraries/libcanberra { }; - libcanberra-gtk3 = pkgs.libcanberra.override { gtk = pkgs.gtk3; }; - libcanberra-gtk2 = pkgs.libcanberra-gtk3.override { gtk = pkgs.gtk2; }; + libcanberra-gtk3 = pkgs.libcanberra.override { + gtk = gtk3; + }; + libcanberra-gtk2 = pkgs.libcanberra-gtk3.override { + gtk = gtk2.override { gdktarget = "x11"; }; + }; libcanberra_kde = if (config.kde_runtime.libcanberraWithoutGTK or true) then pkgs.libcanberra