From 7c1ce3b1e606b719ca04dae491f0395dd1c7156d Mon Sep 17 00:00:00 2001 From: Tobias Mayer Date: Sat, 26 Sep 2020 17:38:36 +0200 Subject: [PATCH] mpd: 0.21.25 -> 0.22 --- pkgs/servers/mpd/default.nix | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/pkgs/servers/mpd/default.nix b/pkgs/servers/mpd/default.nix index d013f431896..e52e3ee664b 100644 --- a/pkgs/servers/mpd/default.nix +++ b/pkgs/servers/mpd/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchFromGitHub, meson, ninja, pkg-config, glib, systemd, boost, darwin # Inputs -, curl, libmms, libnfs, samba +, curl, libmms, libnfs, liburing, samba # Archive support , bzip2, zziplib # Codecs @@ -30,6 +30,7 @@ let lib = stdenv.lib; + concatAttrVals = nameList: set: lib.concatMap (x: set.${x} or []) nameList; featureDependencies = { # Storage plugins @@ -37,6 +38,7 @@ let webdav = [ curl expat ]; # Input plugins curl = [ curl ]; + io_uring = [ liburing ]; mms = [ libmms ]; nfs = [ libnfs ]; smbclient = [ samba ]; @@ -85,15 +87,19 @@ let zeroconf = [ avahi dbus ]; }; + nativeFeatureDependencies = { + documentation = [ doxygen python3Packages.sphinx ]; + }; + run = { features ? null }: let # Disable platform specific features if needed # using libmad to decode mp3 files on darwin is causing a segfault -- there # is probably a solution, but I'm disabling it for now platformMask = lib.optionals stdenv.isDarwin [ "mad" "pulse" "jack" "nfs" "smbclient" ] - ++ lib.optionals (!stdenv.isLinux) [ "alsa" "systemd" "syslog" ]; + ++ lib.optionals (!stdenv.isLinux) [ "alsa" "io_uring" "systemd" "syslog" ]; - knownFeatures = builtins.attrNames featureDependencies; + knownFeatures = builtins.attrNames featureDependencies ++ builtins.attrNames nativeFeatureDependencies; platformFeatures = lib.subtractLists platformMask knownFeatures; features_ = if (features == null ) @@ -110,13 +116,13 @@ let in stdenv.mkDerivation rec { pname = "mpd"; - version = "0.21.25"; + version = "0.22"; src = fetchFromGitHub { owner = "MusicPlayerDaemon"; repo = "MPD"; rev = "v${version}"; - sha256 = "1yjp8pwr2zn0mp39ls1w0pl37zrjn5m9ycgjmcsw2wpa4709r356"; + sha256 = "1lsi4fgrarabkahfhf5zbmppg7jba7m362gxyqhv54hmqprl1qff"; }; buildInputs = [ @@ -128,16 +134,15 @@ let # Run-time dependency GTest found: YES 1.10.0 gtest ] - ++ (lib.concatLists (lib.attrVals features_ featureDependencies)) + ++ concatAttrVals features_ featureDependencies ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.AudioToolbox darwin.apple_sdk.frameworks.AudioUnit ]; nativeBuildInputs = [ meson ninja pkg-config - python3Packages.sphinx - doxygen - ]; + ] + ++ concatAttrVals features_ nativeFeatureDependencies; # Otherwise, the meson log says: # @@ -153,10 +158,9 @@ let outputs = [ "out" "doc" "man" ]; mesonFlags = [ - # Documentation is enabled unconditionally but it's not installed - # unconditionally thanks to the outputs being split - "-Ddocumentation=true" "-Dtest=true" + "-Dmanpages=true" + "-Dhtml_manual=true" ] ++ map (x: "-D${x}=enabled") features_ ++ map (x: "-D${x}=disabled") (lib.subtractLists features_ knownFeatures) @@ -193,7 +197,7 @@ in "yajl" "sqlite" "soundcloud" "qobuz" "tidal" ] ++ lib.optionals stdenv.isLinux [ - "alsa" "systemd" "syslog" + "alsa" "systemd" "syslog" "io_uring" ] ++ lib.optionals (!stdenv.isDarwin) [ "mad" "jack" "nfs" ]; };