about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/pipewire/default.nix
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2022-01-03 23:55:00 +0000
committerAlyssa Ross <hi@alyssa.is>2022-02-19 11:03:39 +0000
commitf4cf97a04cd5d0b86aa46baec9fb228a8f671c03 (patch)
tree28192415ff39a661d0001563bf81cc93fa25d16d /nixpkgs/pkgs/development/libraries/pipewire/default.nix
parentf8422837c9bde058e8f2de37702e7e94b2226040 (diff)
parent18c84ea816348e2a098390101b92d1e39a9dbd45 (diff)
downloadnixlib-f4cf97a04cd5d0b86aa46baec9fb228a8f671c03.tar
nixlib-f4cf97a04cd5d0b86aa46baec9fb228a8f671c03.tar.gz
nixlib-f4cf97a04cd5d0b86aa46baec9fb228a8f671c03.tar.bz2
nixlib-f4cf97a04cd5d0b86aa46baec9fb228a8f671c03.tar.lz
nixlib-f4cf97a04cd5d0b86aa46baec9fb228a8f671c03.tar.xz
nixlib-f4cf97a04cd5d0b86aa46baec9fb228a8f671c03.tar.zst
nixlib-f4cf97a04cd5d0b86aa46baec9fb228a8f671c03.zip
Merge commit '18c84ea816348e2a098390101b92d1e39a9dbd45'
Conflicts:
	nixpkgs/nixos/modules/misc/documentation.nix
	nixpkgs/pkgs/applications/networking/browsers/firefox/packages.nix
	nixpkgs/pkgs/applications/window-managers/sway/default.nix
	nixpkgs/pkgs/build-support/rust/build-rust-package/default.nix
	nixpkgs/pkgs/development/go-modules/generic/default.nix
	nixpkgs/pkgs/development/interpreters/ruby/default.nix
	nixpkgs/pkgs/development/interpreters/ruby/patchsets.nix
	nixpkgs/pkgs/development/libraries/boehm-gc/7.6.6.nix
	nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
	nixpkgs/pkgs/servers/mail/mailman/web.nix
	nixpkgs/pkgs/top-level/aliases.nix
	nixpkgs/pkgs/top-level/all-packages.nix
	nixpkgs/pkgs/top-level/impure.nix
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/pipewire/default.nix')
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/default.nix101
1 files changed, 44 insertions, 57 deletions
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/default.nix b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
index a5ff1f6257a0..af5f238c9df7 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
@@ -1,7 +1,7 @@
 { stdenv
 , lib
+, buildPackages
 , fetchFromGitLab
-, fetchpatch
 , removeReferencesTo
 , python3
 , meson
@@ -11,7 +11,6 @@
 , docutils
 , doxygen
 , graphviz
-, valgrind
 , glib
 , dbus
 , alsa-lib
@@ -26,31 +25,35 @@
 , webrtc-audio-processing
 , ncurses
 , readline81 # meson can't find <7 as those versions don't have a .pc file
+, lilv
+, openssl
 , makeFontsConf
 , callPackage
 , nixosTests
+, withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind
+, valgrind
 , withMediaSession ? true
 , libcameraSupport ? true
 , libcamera
 , libdrm
 , gstreamerSupport ? true
-, gst_all_1 ? null
+, gst_all_1
 , ffmpegSupport ? true
-, ffmpeg ? null
+, ffmpeg
 , bluezSupport ? true
-, bluez ? null
-, sbc ? null
-, libfreeaptx ? null
-, ldacbt ? null
-, fdk_aac ? null
+, bluez
+, sbc
+, libfreeaptx
+, ldacbt
+, fdk_aac
 , nativeHspSupport ? true
 , nativeHfpSupport ? true
 , ofonoSupport ? true
 , hsphfpdSupport ? true
 , pulseTunnelSupport ? true
-, libpulseaudio ? null
+, libpulseaudio
 , zeroconfSupport ? true
-, avahi ? null
+, avahi
 }:
 
 let
@@ -63,7 +66,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "pipewire";
-    version = "0.3.38";
+    version = "0.3.42";
 
     outputs = [
       "out"
@@ -73,7 +76,6 @@ let
       "dev"
       "doc"
       "man"
-      "mediaSession"
       "installedTests"
     ];
 
@@ -82,7 +84,7 @@ let
       owner = "pipewire";
       repo = "pipewire";
       rev = version;
-      sha256 = "sha256-QENz4MVyKuPJynA+NBdmKa6g1GrcRg9vzXLJ1/i3VJU=";
+      sha256 = "sha256-Iyd5snOt+iCT7W0+FlfvhMUZo/gF+zr9JX4HIGVdHto=";
     };
 
     patches = [
@@ -90,8 +92,6 @@ let
       ./0040-alsa-profiles-use-libdir.patch
       # Change the path of the pipewire-pulse binary in the service definition.
       ./0050-pipewire-pulse-path.patch
-      # Change the path of the pipewire-media-session binary in the service definition.
-      ./0055-pipewire-media-session-path.patch
       # Move installed tests into their own output.
       ./0070-installed-tests-path.patch
       # Add option for changing the config install directory
@@ -100,12 +100,6 @@ let
       ./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 = [
@@ -125,13 +119,14 @@ let
       libjack2
       libusb1
       libsndfile
+      lilv
       ncurses
+      openssl
       readline81
       udev
       vulkan-headers
       vulkan-loader
       webrtc-audio-processing
-      valgrind
       SDL2
       systemd
     ] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
@@ -141,13 +136,15 @@ let
     ++ lib.optional pulseTunnelSupport libpulseaudio
     ++ lib.optional zeroconfSupport avahi;
 
+    # Valgrind binary is required for running one optional test.
+    checkInputs = lib.optional withValgrind valgrind;
+
     mesonFlags = [
       "-Ddocs=enabled"
       "-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=${mesonEnable libcameraSupport}"
       "-Droc=disabled"
@@ -162,7 +159,8 @@ let
       "-Dbluez5-backend-hsphfpd=${mesonEnable hsphfpdSupport}"
       "-Dsysconfdir=/etc"
       "-Dpipewire_confdata_dir=${placeholder "lib"}/share/pipewire"
-      "-Dsession-managers=${mesonList (lib.optional withMediaSession "media-session")}"
+      "-Dsession-managers="
+      "-Dvulkan=enabled"
     ];
 
     FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
@@ -171,28 +169,24 @@ let
 
     postUnpack = ''
       patchShebangs source/doc/strip-static.sh
+      patchShebangs source/doc/input-filter.sh
+      patchShebangs source/doc/input-filter-h.sh
       patchShebangs source/spa/tests/gen-cpp-test.py
     '';
 
     postInstall = ''
-      pushd $lib/share
-      mkdir -p $out/nix-support/etc/pipewire
-      for f in pipewire/*.conf; do
-        echo "Generating JSON from $f"
-        $out/bin/spa-json-dump "$f" > "$out/nix-support/etc/$f.json"
-      done
-
-      mkdir -p $mediaSession/nix-support/etc/pipewire/media-session.d
-      for f in pipewire/media-session.d/*.conf; do
-        echo "Generating JSON from $f"
-        $out/bin/spa-json-dump "$f" > "$mediaSession/nix-support/etc/$f.json"
-      done
-      popd
-
-      moveToOutput "share/pipewire/media-session.d/*.conf" "$mediaSession"
-      moveToOutput "share/systemd/user/pipewire-media-session.*" "$mediaSession"
-      moveToOutput "lib/systemd/user/pipewire-media-session.*" "$mediaSession"
-      moveToOutput "bin/pipewire-media-session" "$mediaSession"
+      mkdir $out/nix-support
+      ${if (stdenv.hostPlatform == stdenv.buildPlatform) then ''
+        pushd $lib/share/pipewire
+        for f in *.conf; do
+          echo "Generating JSON from $f"
+
+          $out/bin/spa-json-dump "$f" > "$out/nix-support/$f.json"
+        done
+        popd
+      '' else ''
+        cp ${buildPackages.pipewire}/nix-support/*.json "$out/nix-support"
+      ''}
 
       moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
       moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
@@ -200,26 +194,19 @@ let
     '';
 
     passthru = {
-      updateScript = ./update.sh;
+      updateScript = ./update-pipewire.sh;
       tests = {
         installedTests = nixosTests.installed-tests.pipewire;
 
         # This ensures that all the paths used by the NixOS module are found.
-        test-paths = callPackage ./test-paths.nix {
+        test-paths = callPackage ./test-paths.nix { package = self; } {
           paths-out = [
             "share/alsa/alsa.conf.d/50-pipewire.conf"
-            "nix-support/etc/pipewire/client-rt.conf.json"
-            "nix-support/etc/pipewire/client.conf.json"
-            "nix-support/etc/pipewire/jack.conf.json"
-            "nix-support/etc/pipewire/pipewire.conf.json"
-            "nix-support/etc/pipewire/pipewire-pulse.conf.json"
-          ];
-          paths-out-media-session = [
-            "nix-support/etc/pipewire/media-session.d/alsa-monitor.conf.json"
-            "nix-support/etc/pipewire/media-session.d/bluez-monitor.conf.json"
-            "nix-support/etc/pipewire/media-session.d/bluez-hardware.conf.json"
-            "nix-support/etc/pipewire/media-session.d/media-session.conf.json"
-            "nix-support/etc/pipewire/media-session.d/v4l2-monitor.conf.json"
+            "nix-support/client-rt.conf.json"
+            "nix-support/client.conf.json"
+            "nix-support/jack.conf.json"
+            "nix-support/pipewire.conf.json"
+            "nix-support/pipewire-pulse.conf.json"
           ];
           paths-lib = [
             "lib/alsa-lib/libasound_module_pcm_pipewire.so"