diff options
author | adisbladis <adisbladis@gmail.com> | 2018-10-18 16:46:10 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-18 16:46:10 +0800 |
commit | 3026f55a0c0461e94cbbcc431cf2384efbf4bcfa (patch) | |
tree | d99219b2739b65c838e50e93d1feb7bbf76245ec | |
parent | 1c7d38bcfbf5a27fe3df9cefa1dac5864e492075 (diff) | |
parent | 78c0e1aa11f6b93fcbbf473b0691f3dbf9bc6039 (diff) | |
download | nixlib-3026f55a0c0461e94cbbcc431cf2384efbf4bcfa.tar nixlib-3026f55a0c0461e94cbbcc431cf2384efbf4bcfa.tar.gz nixlib-3026f55a0c0461e94cbbcc431cf2384efbf4bcfa.tar.bz2 nixlib-3026f55a0c0461e94cbbcc431cf2384efbf4bcfa.tar.lz nixlib-3026f55a0c0461e94cbbcc431cf2384efbf4bcfa.tar.xz nixlib-3026f55a0c0461e94cbbcc431cf2384efbf4bcfa.tar.zst nixlib-3026f55a0c0461e94cbbcc431cf2384efbf4bcfa.zip |
Merge pull request #48639 from adisbladis/pulseaudio/extra-modules
nixos/pulseaudio: Add extraModules config option
-rw-r--r-- | nixos/modules/config/pulseaudio.nix | 24 | ||||
-rw-r--r-- | pkgs/applications/audio/pulseaudio-modules-bt/default.nix | 4 |
2 files changed, 25 insertions, 3 deletions
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix index e16a021ec20b..d4aa59506295 100644 --- a/nixos/modules/config/pulseaudio.nix +++ b/nixos/modules/config/pulseaudio.nix @@ -154,6 +154,18 @@ in { ''; }; + extraModules = mkOption { + type = types.listOf types.package; + default = []; + example = literalExample "[ pkgs.pulseaudio-modules-bt ]"; + description = '' + Extra pulseaudio modules to use. This is intended for out-of-tree + pulseaudio modules like extra bluetooth codecs. + + Extra modules take precedence over built-in pulseaudio modules. + ''; + }; + daemon = { logLevel = mkOption { type = types.str; @@ -236,6 +248,18 @@ in { systemd.packages = [ overriddenPackage ]; }) + (mkIf (cfg.extraModules != []) { + hardware.pulseaudio.daemon.config.dl-search-path = let + overriddenModules = builtins.map + (drv: drv.override { pulseaudio = overriddenPackage; }) + cfg.extraModules; + modulePaths = builtins.map + (drv: "${drv}/lib/pulse-${overriddenPackage.version}/modules") + # User-provided extra modules take precedence + (overriddenModules ++ [ overriddenPackage ]); + in lib.concatStringsSep ":" modulePaths; + }) + (mkIf hasZeroconf { services.avahi.enable = true; }) diff --git a/pkgs/applications/audio/pulseaudio-modules-bt/default.nix b/pkgs/applications/audio/pulseaudio-modules-bt/default.nix index 6bb432b3fd88..b377db65c0c9 100644 --- a/pkgs/applications/audio/pulseaudio-modules-bt/default.nix +++ b/pkgs/applications/audio/pulseaudio-modules-bt/default.nix @@ -1,7 +1,6 @@ { stdenv , runCommand , fetchFromGitHub -, libpulseaudio , pulseaudio , pkgconfig , ffmpeg_4 @@ -44,7 +43,6 @@ in stdenv.mkDerivation rec { ]; buildInputs = [ - libpulseaudio pulseaudio ffmpeg_4 libtool @@ -67,7 +65,7 @@ in stdenv.mkDerivation rec { for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do orig_rpath=$(patchelf --print-rpath "$so") patchelf \ - --set-rpath "$orig_rpath:${lib.getLib ffmpeg_4}/lib:$out/lib/pulse-${pulseaudio.version}/modules" \ + --set-rpath "${lib.getLib ffmpeg_4}/lib:$out/lib/pulse-${pulseaudio.version}/modules:$orig_rpath" \ "$so" done ''; |