#### Beyond Linux® From Scratch (System V Edition) - Version 12.1

### Chapter 42. Multimedia Libraries and Drivers

- Prev

  v4l-utils-1.26.1

- Next

  x264-20240216

- Up
- Home

# Wireplumber-0.4.17

## Introduction to Wireplumber

The Wireplumber package contains a session and policy manager for Pipewire.

This package is known to build and work properly using an LFS 12.1 platform.

### Package Information

- Download (HTTP): https://gitlab.freedesktop.org/pipewire/wireplumber/-/archive/0.4.17/wireplumber-0.4.17.tar.bz2

- Download MD5 sum: 1e90be7d302077e3b7e347c9cd889ff0

- Download size: 324 KB

- Estimated disk space required: 16 MB (add 22 MB for tests)

- Estimated build time: 0.1 SBU (using parallelism=4, with tests)

### Wireplumber Dependencies

#### Required

elogind-252.9, GLib-2.78.4, and pipewire-1.0.3

#### Recommended

Lua-5.4.6

#### Optional

Doxygen-1.10.0, gobject-introspection-1.78.1, lxml-4.9.4, sphinx-7.2.6, sphinx_rtd_theme-2.0.0, and Breathe

## Installation of Wireplumber

Install Wireplumber by running the following commands:

    mkdir build &&
    cd    build &&

    meson setup --prefix=/usr --buildtype=release -Dsystem-lua=true .. &&
    ninja

To test the results, issue: ninja test.

Now, as the `root` user:

    ninja install

## Command Explanations

`--buildtype=release`: Specify a buildtype suitable for stable releases of the package, as the default may produce unoptimized binaries.

`-Dsystem-lua=true`: This switch enables using the system version of Lua. Omit this switch if you have not installed Lua, but note that meson will download and install it's own version.

## Configuring Wireplumber

### Configuration Information

In order for Wireplumber to be used by Pipewire, Wireplumber must be configured to start when a desktop environment is started.

First, create a shell script that will start Wireplumber and Pipewire in the correct order as the `root` user:

    cat > /usr/bin/pipewire-launcher.sh << "EOF"
    #!/bin/sh
    # Begin /usr/bin/pipewire-launcher.sh

    # Start Pipewire first.
    exec /usr/bin/pipewire &

    # Wait for a second for Pipewire to launch.
    sleep 1

    # Start Wireplumber now that Pipewire has been started.
    exec /usr/bin/wireplumber &
    # End /usr/bin/pipewire-launcher.sh
    EOF

Next, make this shell script executable as the `root` user:

    chmod +x /usr/bin/pipewire-launcher.sh

Finally, create an XDG Autostart file that will run /usr/bin/pipewire-launcher.sh when a desktop environment is started, as the `root` user:

    cat > /etc/xdg/autostart/pipewire.desktop << "EOF"
    [Desktop Entry]
    Version=1.0
    Name=Pipewire
    Comment=Starts the Pipewire and Wireplumber daemons
    Exec=/usr/bin/pipewire-launcher.sh
    Terminal=false
    Type=Application
    EOF

Now that Wireplumber is configured to start when a desktop environment is started, it is recommended that you log out of your session and log back in again.

## Contents

Installed Programs: wireplumber, wpctl, and wpexec
Installed Libraries: libwireplumber-0.4.so
Installed Directories: /usr/include/wireplumber-0.4, /usr/lib/wireplumber-0.4, and /usr/share/wireplumber

### Short Descriptions

wireplumber | is a session and policy manager for Pipewire
wpctl | controls and queries information from Wireplumber
wpexec | executes Wireplumber scripts, which are often written in Lua
`libwireplumber-0.4.so` | contains functions that allow other programs to control Wireplumber

- Prev

  v4l-utils-1.26.1

- Next

  x264-20240216

- Up
- Home