about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/pipewire/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/pipewire/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/default.nix22
1 files changed, 18 insertions, 4 deletions
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/default.nix b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
index 0ada18539984..a5ff1f6257a0 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchFromGitLab
+, fetchpatch
 , removeReferencesTo
 , python3
 , meson
@@ -24,10 +25,14 @@
 , vulkan-loader
 , webrtc-audio-processing
 , ncurses
+, readline81 # meson can't find <7 as those versions don't have a .pc file
 , makeFontsConf
 , callPackage
 , nixosTests
 , withMediaSession ? true
+, libcameraSupport ? true
+, libcamera
+, libdrm
 , gstreamerSupport ? true
 , gst_all_1 ? null
 , ffmpegSupport ? true
@@ -58,7 +63,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "pipewire";
-    version = "0.3.36";
+    version = "0.3.38";
 
     outputs = [
       "out"
@@ -77,7 +82,7 @@ let
       owner = "pipewire";
       repo = "pipewire";
       rev = version;
-      sha256 = "sha256-kwoffB0Hi84T4Q0NaxLxsCyPV4R0LayX9kHmXU/vRPA=";
+      sha256 = "sha256-QENz4MVyKuPJynA+NBdmKa6g1GrcRg9vzXLJ1/i3VJU=";
     };
 
     patches = [
@@ -93,6 +98,14 @@ let
       ./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
+      # Fix compilation on AArch64
+      # XXX: REMOVE ON NEXT RELEASE
+      (fetchpatch {
+        url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/f8817b439433798bd7217dc4ae72197887b0fc96.diff";
+        sha256 = "0j4xds01h20mc606xp90h5v56kf17hf7n06k0xfa9qmmmfrh7i04";
+      })
     ];
 
     nativeBuildInputs = [
@@ -113,6 +126,7 @@ let
       libusb1
       libsndfile
       ncurses
+      readline81
       udev
       vulkan-headers
       vulkan-loader
@@ -121,6 +135,7 @@ let
       SDL2
       systemd
     ] ++ 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 sbc fdk_aac ]
     ++ lib.optional pulseTunnelSupport libpulseaudio
@@ -128,14 +143,13 @@ let
 
     mesonFlags = [
       "-Ddocs=enabled"
-      "-Dexamples=${mesonEnable withMediaSession}" # only needed for `pipewire-media-session`
       "-Dudevrulesdir=lib/udev/rules.d"
       "-Dinstalled_tests=enabled"
       "-Dinstalled_test_prefix=${placeholder "installedTests"}"
       "-Dpipewire_pulse_prefix=${placeholder "pulse"}"
       "-Dmedia-session-prefix=${placeholder "mediaSession"}"
       "-Dlibjack-path=${placeholder "jack"}/lib"
-      "-Dlibcamera=disabled"
+      "-Dlibcamera=${mesonEnable libcameraSupport}"
       "-Droc=disabled"
       "-Dlibpulse=${mesonEnable pulseTunnelSupport}"
       "-Davahi=${mesonEnable zeroconfSupport}"