Commit ff44e8ab authored by K900's avatar K900
Browse files

pipewire: simplify outputs drastically

This drops a whole bunch of patches we carry to avoid output cycles, at the cost of +1MB to closure size
on systems that don't already have Pipewire, which are becoming rarer and rarer.
parent 249e31af
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -115,8 +115,7 @@ in {
    environment.systemPackages = [ cfg.package ]
                                 ++ lib.optional cfg.jack.enable jack-libs;

    systemd.packages = [ cfg.package ]
                       ++ lib.optional cfg.pulse.enable cfg.package.pulse;
    systemd.packages = [ cfg.package ];

    # PipeWire depends on DBUS but doesn't list it. Without this booting
    # into a terminal results in the service crashing with an error.
@@ -140,14 +139,14 @@ in {
    environment.etc."alsa/conf.d/49-pipewire-modules.conf" = mkIf cfg.alsa.enable {
      text = ''
        pcm_type.pipewire {
          libs.native = ${cfg.package.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;
          libs.native = ${cfg.package}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;
          ${optionalString enable32BitAlsaPlugins
            "libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;"}
            "libs.32Bit = ${pkgs.pkgsi686Linux.pipewire}/lib/alsa-lib/libasound_module_pcm_pipewire.so ;"}
        }
        ctl_type.pipewire {
          libs.native = ${cfg.package.lib}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;
          libs.native = ${cfg.package}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;
          ${optionalString enable32BitAlsaPlugins
            "libs.32Bit = ${pkgs.pkgsi686Linux.pipewire.lib}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;"}
            "libs.32Bit = ${pkgs.pkgsi686Linux.pipewire}/lib/alsa-lib/libasound_module_ctl_pipewire.so ;"}
        }
      '';
    };
+1 −1
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ stdenv.mkDerivation {
    pciutils
  ];
  appendRunpaths = [
    "${pipewire.lib}/lib"
    "${pipewire}/lib"
  ];
  # Firefox uses "relrhack" to manually process relocations from a fixed offset
  patchelfFlags = [ "--no-clobber-old-sections" ];
+0 −13
Original line number Diff line number Diff line
diff --git a/meson.build b/meson.build
index 99a4b2d1..d4a4cda7 100644
--- a/meson.build
+++ b/meson.build
@@ -55,7 +55,7 @@ endif
 
 spa_plugindir = pipewire_libdir / spa_name
 
-alsadatadir = pipewire_datadir / 'alsa-card-profile' / 'mixer'
+alsadatadir = pipewire_libdir / '..' / 'share' / 'alsa-card-profile' / 'mixer'
 
 pipewire_headers_dir = pipewire_name / 'pipewire'
 
+0 −27
Original line number Diff line number Diff line
diff --git a/meson_options.txt b/meson_options.txt
index 961ae2a76..692b84dfd 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -179,6 +179,9 @@ option('udev',
 option('udevrulesdir',
        type : 'string',
        description : 'Directory for udev rules (defaults to /lib/udev/rules.d)')
+option('pipewire_pulse_prefix',
+       type : 'string',
+       description: 'Install directory for the pipewire-pulse daemon')
 option('systemd-system-unit-dir',
        type : 'string',
        description : 'Directory for system systemd units (defaults to /usr/lib/systemd/system)')
diff --git a/src/daemon/systemd/user/meson.build b/src/daemon/systemd/user/meson.build
index d17f3794f..34afe4f1a 100644
--- a/src/daemon/systemd/user/meson.build
+++ b/src/daemon/systemd/user/meson.build
@@ -9,7 +9,7 @@ install_data(
 
 systemd_config = configuration_data()
 systemd_config.set('PW_BINARY', pipewire_bindir / 'pipewire')
-systemd_config.set('PW_PULSE_BINARY', pipewire_bindir / 'pipewire-pulse')
+systemd_config.set('PW_PULSE_BINARY', get_option('pipewire_pulse_prefix') / 'bin/pipewire-pulse')
 
 configure_file(input : 'pipewire.service.in',
                output : 'pipewire.service',
+0 −30
Original line number Diff line number Diff line
diff --git a/meson.build b/meson.build
index b6b4553b..f21c29d8 100644
--- a/meson.build
+++ b/meson.build
@@ -37,7 +37,10 @@ pipewire_localedir = prefix / get_option('localedir')
 pipewire_sysconfdir = prefix / get_option('sysconfdir')
 
 pipewire_configdir = pipewire_sysconfdir / 'pipewire'
-pipewire_confdatadir = pipewire_datadir / 'pipewire'
+pipewire_confdatadir = get_option('pipewire_confdata_dir')
+if pipewire_confdatadir == ''
+  pipewire_confdatadir = pipewire_datadir / 'pipewire'
+endif
 modules_install_dir = pipewire_libdir / pipewire_name
 
 if host_machine.system() == 'linux'
diff --git a/meson_options.txt b/meson_options.txt
index 9bc33fcd..e4bd2dc1 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -61,6 +61,9 @@ option('jack-devel',
 option('libjack-path',
        description: 'Where to install the libjack.so library',
        type: 'string')
+option('pipewire_confdata_dir',
+       type: 'string',
+       description: 'Directory for pipewire default configuration (defaults to /usr/share/pipewire)')
 option('spa-plugins',
        description: 'Enable spa plugins integration',
        type: 'feature',
Loading