mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-21 08:59:20 +03:00
Merge pull request #48639 from adisbladis/pulseaudio/extra-modules
nixos/pulseaudio: Add extraModules config option
This commit is contained in:
commit
3026f55a0c
2 changed files with 25 additions and 3 deletions
|
@ -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 = {
|
daemon = {
|
||||||
logLevel = mkOption {
|
logLevel = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
|
@ -236,6 +248,18 @@ in {
|
||||||
systemd.packages = [ overriddenPackage ];
|
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 {
|
(mkIf hasZeroconf {
|
||||||
services.avahi.enable = true;
|
services.avahi.enable = true;
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
{ stdenv
|
{ stdenv
|
||||||
, runCommand
|
, runCommand
|
||||||
, fetchFromGitHub
|
, fetchFromGitHub
|
||||||
, libpulseaudio
|
|
||||||
, pulseaudio
|
, pulseaudio
|
||||||
, pkgconfig
|
, pkgconfig
|
||||||
, ffmpeg_4
|
, ffmpeg_4
|
||||||
|
@ -44,7 +43,6 @@ in stdenv.mkDerivation rec {
|
||||||
];
|
];
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libpulseaudio
|
|
||||||
pulseaudio
|
pulseaudio
|
||||||
ffmpeg_4
|
ffmpeg_4
|
||||||
libtool
|
libtool
|
||||||
|
@ -67,7 +65,7 @@ in stdenv.mkDerivation rec {
|
||||||
for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
|
for so in $out/lib/pulse-${pulseaudio.version}/modules/*.so; do
|
||||||
orig_rpath=$(patchelf --print-rpath "$so")
|
orig_rpath=$(patchelf --print-rpath "$so")
|
||||||
patchelf \
|
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"
|
"$so"
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue