diff options
Diffstat (limited to 'pkgs/development/libraries/pipewire/default.nix')
-rw-r--r-- | pkgs/development/libraries/pipewire/default.nix | 44 |
1 files changed, 14 insertions, 30 deletions
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix index fdc514c286b..3876a5c892a 100644 --- a/pkgs/development/libraries/pipewire/default.nix +++ b/pkgs/development/libraries/pipewire/default.nix @@ -23,6 +23,7 @@ , vulkan-headers , vulkan-loader , webrtc-audio-processing +, webrtc-audio-processing_1 , ncurses , readline # meson can't find <7 as those versions don't have a .pc file , lilv @@ -42,10 +43,11 @@ , bluez , sbc , libfreeaptx -, ldacbt , liblc3 , fdk_aac , libopus +, ldacbtSupport ? bluezSupport && lib.meta.availableOn stdenv.hostPlatform ldacbt +, ldacbt , nativeHspSupport ? true , nativeHfpSupport ? true , nativeModemManagerSupport ? true @@ -68,19 +70,21 @@ , tinycompress , ffadoSupport ? stdenv.buildPlatform.canExecute stdenv.hostPlatform , ffado +, libselinux }: +# Bluetooth codec only makes sense if general bluetooth enabled +assert ldacbtSupport -> bluezSupport; + let mesonEnableFeature = b: if b then "enabled" else "disabled"; self = stdenv.mkDerivation rec { pname = "pipewire"; - version = "0.3.79"; + version = "0.3.84"; outputs = [ "out" - "lib" - "pulse" "jack" "dev" "doc" @@ -93,24 +97,14 @@ let owner = "pipewire"; repo = "pipewire"; rev = version; - sha256 = "sha256-pqs991pMqz3IQE+NUk0VNzZS4ExwfoZqBQDWBSGdWcs="; + sha256 = "sha256-9W9y+wtS/CYUaPRrCRmRDeyvuS1XllMBNQLy6GAMqBM="; }; patches = [ - # Break up a dependency cycle between outputs. - ./0040-alsa-profiles-use-libdir.patch - # Change the path of the pipewire-pulse binary in the service definition. - ./0050-pipewire-pulse-path.patch # Load libjack from a known location ./0060-libjack-path.patch # Move installed tests into their own output. ./0070-installed-tests-path.patch - # Add option for changing the config install directory - ./0080-pipewire-config-dir.patch - # Remove output paths from the comments in the config templates to break dependency cycles - ./0090-pipewire-config-template-paths.patch - # Place SPA data files in lib output to avoid dependency cycles - ./0095-spa-data-dir.patch ]; strictDeps = true; @@ -131,6 +125,7 @@ let glib libjack2 libusb1 + libselinux libsndfile lilv ncurses @@ -138,13 +133,14 @@ let udev vulkan-headers vulkan-loader - webrtc-audio-processing tinycompress ] ++ (if enableSystemd then [ systemd ] else [ eudev ]) + ++ (if lib.meta.availableOn stdenv.hostPlatform webrtc-audio-processing_1 then [ webrtc-audio-processing_1 ] else [ webrtc-audio-processing ]) ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ] ++ lib.optionals libcameraSupport [ libcamera libdrm ] ++ lib.optional ffmpegSupport ffmpeg - ++ lib.optionals bluezSupport [ bluez libfreeaptx ldacbt liblc3 sbc fdk_aac libopus ] + ++ lib.optionals bluezSupport [ bluez libfreeaptx liblc3 sbc fdk_aac libopus ] + ++ lib.optional ldacbtSupport ldacbt ++ lib.optional nativeModemManagerSupport modemmanager ++ lib.optional pulseTunnelSupport libpulseaudio ++ lib.optional zeroconfSupport avahi @@ -162,9 +158,7 @@ let "-Dudevrulesdir=lib/udev/rules.d" "-Dinstalled_tests=enabled" "-Dinstalled_test_prefix=${placeholder "installedTests"}" - "-Dpipewire_pulse_prefix=${placeholder "pulse"}" "-Dlibjack-path=${placeholder "jack"}/lib" - "-Dlibv4l2-path=${placeholder "out"}/lib" "-Dlibcamera=${mesonEnableFeature libcameraSupport}" "-Dlibffado=${mesonEnableFeature ffadoSupport}" "-Droc=${mesonEnableFeature rocSupport}" @@ -173,7 +167,6 @@ let "-Dgstreamer=${mesonEnableFeature gstreamerSupport}" "-Dsystemd-system-service=${mesonEnableFeature enableSystemd}" "-Dudev=${mesonEnableFeature (!enableSystemd)}" - "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d" "-Dffmpeg=${mesonEnableFeature ffmpegSupport}" "-Dbluez5=${mesonEnableFeature bluezSupport}" "-Dbluez5-backend-hsp-native=${mesonEnableFeature nativeHspSupport}" @@ -184,8 +177,8 @@ let # source code is not easily obtainable "-Dbluez5-codec-lc3plus=disabled" "-Dbluez5-codec-lc3=${mesonEnableFeature bluezSupport}" + "-Dbluez5-codec-ldac=${mesonEnableFeature ldacbtSupport}" "-Dsysconfdir=/etc" - "-Dpipewire_confdata_dir=${placeholder "lib"}/share/pipewire" "-Draop=${mesonEnableFeature raopSupport}" "-Dsession-managers=" "-Dvulkan=enabled" @@ -209,15 +202,6 @@ let ''; postInstall = '' - ${lib.optionalString enableSystemd '' - moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse" - moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse" - ''} - - rm $out/bin/pipewire-pulse - mkdir -p $pulse/bin - ln -sf $out/bin/pipewire $pulse/bin/pipewire-pulse - moveToOutput "bin/pw-jack" "$jack" ''; |