#### Beyond Linux® From Scratch (System V Edition) - Version r12.2-875

### Chapter 42. Multimedia Libraries and Drivers

- Prev

  v4l-utils-1.28.1

- Next

  x264-20240812

- Up
- Home

# Wireplumber-0.5.7

## Introduction to Wireplumber

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

### Note

Development versions of BLFS may not build or run some packages properly if LFS or dependencies have been updated since the most recent stable versions of the books.

### Package Information

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

- Download MD5 sum: 2082a70139325eb009c6df3ae56d1ecc

- Download size: 408 KB

- Estimated disk space required: 89 MB (with tests)

- Estimated build time: 0.3 SBU (with tests)

### Wireplumber Dependencies

#### Required

elogind-255.5, GLib-2.82.4, and pipewire-1.2.7

#### Recommended

Lua-5.4.7

#### Optional

Doxygen-1.12.0, lxml-5.3.0, sphinx-8.1.3, sphinx_rtd_theme-3.0.2, and Breathe

## Installation of Wireplumber

Install Wireplumber by running the following commands:

    mkdir build &&
    cd    build &&

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

To test the results, issue: ninja test.

Now, as the `root` user:

    ninja install

Finally, rename the documentation directory to a versioned directory as the `root` user:

    mv -v /usr/share/doc/wireplumber{,-0.5.7}

## Command Explanations

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

`-D system-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.5.so
Installed Directories: /usr/include/wireplumber-0.5, /usr/lib/wireplumber-0.5, /usr/share/wireplumber, and /usr/share/doc/wireplumber-0.5.7

### 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.5.so` | contains functions that allow other programs to control Wireplumber

- Prev

  v4l-utils-1.28.1

- Next

  x264-20240812

- Up
- Home