Index index by Group index by Distribution index by Vendor index by creation date index by Name Mirrors Help Search

wireplumber-devel-0.5.7-1.1 RPM for i586

From OpenSuSE Ports Tumbleweed for i586

Name: wireplumber-devel Distribution: openSUSE Tumbleweed
Version: 0.5.7 Vendor: openSUSE
Release: 1.1 Build date: Wed Dec 4 11:29:34 2024
Group: Development/Libraries/C and C++ Build host: reproducible
Size: 995862 Source RPM: wireplumber-0.5.7-1.1.src.rpm
Packager: http://bugs.opensuse.org
Url: https://gitlab.freedesktop.org/pipewire/wireplumber
Summary: Session / policy manager implementation for PipeWire
WirePlumber is a modular session / policy manager for PipeWire and
a GObject-based high-level library that wraps PipeWire's API,
providing convenience for writing the daemon's modules as well as
external tools for managing PipeWire.

This package provides all the necessary files for development with WirePlumber

Provides

Requires

License

MIT

Changelog

* Wed Dec 04 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.5.7:
    * Highlights:
    - Fixed an issue that would cause random profile switching when
      an application was trying to capture from non-Bluetooth
      devices (#715, #634, !669)
    - Fixed an issue that would cause strange profile selection
      issues [choices not being remembered or unavailable routes
      being selected] (#734)
    - Added a timer that delays switching Bluetooth headsets to the
      HSP/HFP profile, avoiding needless rapid switching when an
      application is trying to probe device capabilities instead of
      actually capturing audio (!664)
    - Improved libcamera/v4l2 device deduplication logic to work
      with more complex devices (!674, !675, #689, #708)
    * Fixes:
    - Fixed two memory leaks in module-mixer-api and
      module-dbus-connection (!672, !673)
    - Fixed a crash that could occur in module-reserve-device
      (!680, #742)
    - Fixed an issue that would cause the warning
      "[string "alsa.lua"]:182: attempt to concatenate a nil value
      (local 'node_name')" to appear in the logs when an ALSA
      device was busy, breaking node name deduplication (!681)
    - Fixed an issue that could make find-preferred-profile.lua
      crash instead of properly applying profile priority rules
      (#751)
  - Remove patches that are already included in 0.5.7:
    * 0001-autoswitch-bluetooth-profile-switch-only-Bluetooth-devices.patch
    * 0002-autoswitch-bluetooth-profile-Switch-to-HSP_HFP-on-timeout.patch
    * 0003-m-mixer-api-Fix-memory-in-leak-wp_mixer_api_set_volume.patch
    * 0004-module-dbus-connection-fix-GCancellable-leak.patch
* Mon Oct 21 2024 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix switching automatically the
    profile of non-bluetooth devices (boo#1231815):
    * 0001-autoswitch-bluetooth-profile-switch-only-Bluetooth-devices.patch
  - Add patch from upstream to fix switching automatically the
    profile when starting some apps and then switching to the
    previous profile:
    * 0002-autoswitch-bluetooth-profile-Switch-to-HSP_HFP-on-timeout.patch
  - Add patches from upstream to fix a couple of memory leaks:
    * 0003-m-mixer-api-Fix-memory-in-leak-wp_mixer_api_set_volume.patch
    * 0004-module-dbus-connection-fix-GCancellable-leak.patch
* Mon Sep 09 2024 Frederic Crozat <[email protected]>
  - Update to version 0.5.6:
    * Additions:
    - Implemented before/after dependencies for components, to
      ensure correct load order in custom configurations (#600)
    - Implemented profile inheritance in the configuration file.
      This allows profiles to inherit all the feature specifications
      of other profiles, which is useful to avoid copying long lists
      of features just to make small changes
    - Added multi-instance configuration profiles, tested and
      documented them
    - Added a ``main-systemwide`` profile, which is now the default
      for instances started via the system-wide systemd service and
      disables features that depend on the user session (#608)
    - Added a ``wp_core_connect_fd`` method, which allows making a
      connection to PipeWire via an existing open socket (useful
      for portal-based connections)
    * Fixes:
    - The Bluetooth auto-switch script now uses the common event
      source object managers, which should improve its
      stability (!663)
    - Fix an issue where switching between Bluetooth profiles
      would temporarily link active audio streams to the internal
      speakers (!655)
* Tue Jul 02 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.5.5:
    * Highlights:
    - Hotfix release to address crashes in the Bluetooth HSP/HFP
      autoswitch functionality that were side-effects of some
      changes that were part of the role-based linking policy
      (#682)
    * Improvements:
    - wpctl will now properly show a '*' in front of sink filters
      when they are selected as the default sink (!660)
* Fri Jun 28 2024 [email protected]
  - Update to version 0.5.4+git2.96dc045:
    * l/find-best-target: Allow regular filters to be best targets
    * linking-utils: fallback to role priority 0 if none is defined
* Fri Jun 28 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.5.4:
    * Highlights:
    - Refactored the role-based linking policy (previously known
      also as "endpoints" or "virtual items" policy) to blend in
      with the standard desktop policy. It is now possible use
      role-based sinks alongside standard desktop audio operations
      and they will only be used for streams that have a
      "media.role" defined. It is also possible to force streams to
      have a media.role, using a setting. Other features include:
      blending with smart filters in the graph and allowing
      hardware DSP nodes to be also used easily instead of
      requiring software loopbacks for all roles. (#610, !649)
    * Improvements:
    - Filters that are not declared as smart will now behave again
      as normal application streams, instead of being treated
      sometimes differently (!657)
    * Fixes:
    - Fixed an issue that would cause WirePlumber to crash at
      startup if an empty configuration file was present in one of
      the search paths (#671)
    - Fixed Bluetooth profile auto-switching when a filter is
      permanently linked to the Bluetooth source (!650)
    - Fixed an issue in the software-dsp script that would cause
      DSP filters to stay around and cause issues after their
      device node was destroyed (!651)
    - Fixed an issue in the autoswitch-bluetooth-profile script
      that could cause an infinite loop of switching between
      profiles (!652, #617)
    - Fixed a rare issue that could cause WirePlumber to crash when
      dealing with a device object that didn't have the
      "device.name" property set (#674)
* Wed Jun 26 2024 [email protected]
  - Update to version 0.5.3+git11.4868b3c:
    * get-filter-from-target: Don't bypass the hook if the session item is a regular filter
    * filter-utils: Allow smart filters to have as target filters that are not smart
    * tests: skip some tests when audiotestsrc is unavailable
    * scripts/device: avoid crashing if the device.name is not set
    * tests/examples: add example on how to set node "params" under Props
    * autoswitch-bluetooth-profile: Always destroy the restore timeout source before switching
    * node/software-dsp: ensure that filter chains are properly unloaded
    * scripts: Fix autoswitch BT profile when using filters
    * bluez: Don't create loopback source if autoswitch setting is disabled
    * conf: further improve how top-level objects are handled
    * conf: skip empty configuration files to avoid crashing
* Tue Jun 04 2024 Alexei Sorokin <[email protected]>
  - Update to version 0.5.3:
    * Fixes:
    - Fix a long standing issue that would cause many device nodes
      to have inconsistent naming, with a '.N' suffix (where N is
      a number >= 2) being appended at seemingly random times.
    - Fix an issue that would cause unavailable device profiles to
      be selected if they were previously stored in the state file,
      sometimes requiring users to manually remove the state file
      to get things working again.
    - Fix an occasional crash that could sometimes be triggered by
      hovering the volume icon on the KDE taskbar, and possibly
      other similar actions.
    - Fix camera device deduplication logic when the same device
      is available through both V4L2 and libcamera, and the
      libcamera one groups multiple V4L2 devices together.
    - Fix applying the default volume on streams that have no
      volume previously stored in the state file.
    - Fix an issue that would prevent some camera nodes,
      in some cases, from being destroyed when the camera device
      is removed.
    - Fix an issue that would cause video stream nodes to be
      linked with audio smart filters, if smart audio filters were
      configured.
    - Fix an issue that would cause WP to re-activate device
      profiles even though they were already active.
    - Configuration files in standard JSON format (starting with a
      '{', among other things) are now correctly parsed.
    - Fix overriding non-container values when merging JSON
      objects.
    - Functions marked with WP_PRIVATE_API are now also marked as
      non-introspectable in the gobject-introspection metadata.
    * Improvements:
    - Logging on the systemd journal now includes the log topic
      and also the log level and location directly on the message
      string when the log level is high enough, which is useful
      for gathering additional context in logs submitted by users.
    - Add a video-only profile in wireplumber.conf, for systems
      where only camera & screensharing are to be used.
    - Improve seat state monitoring so that Bluetooth devices are
      only enabled when the user is active on a local seat,
      instead of allowing remote users as well.
    - Improve how main filter nodes are detected for the smart
      filters.
    - Add Lua method to merge JSON containers.
  - Remove patch already included upstream:
    * 0001-lua-json-fix-error-ouput.patch
    * 0002-lua-json-add-method-to-merge-json-containers.patch
    * 0003-json-utils-fix-overriding-of-non-container-values-when.patch
    * 0004-transition-fix-memleak-when-error-set.patch
    * 0005-transition-ensure-single-completion-and-finish.patch
    * 0006-linking-return-after-aborting-transition.patch
    * 0007-state-stream-fix-using-default-volume.patch
* Sat May 25 2024 Alexei Sorokin <[email protected]>
  - Add patches from upstream to fix a crash for aborted links:
    * 0004-transition-fix-memleak-when-error-set.patch
    * 0005-transition-ensure-single-completion-and-finish.patch
    * 0006-linking-return-after-aborting-transition.patch
  - Add patch from upstream to fix default playback volume ignore:
    * 0007-state-stream-fix-using-default-volume.patch
* Mon May 06 2024 Antonio Larrosa <[email protected]>
  - Better fix for (bsc#1223916) that basically turns the main
    profile into the (to be in 0.5.3) video-only profile unless
    wireplumber-audio is installed which now turns the main profile
    into exactly upstream's main profile.
* Mon May 06 2024 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix a json log issue:
    * 0001-lua-json-fix-error-ouput.patch
  - Add patch from upstream to add a method to merge json containers:
    * 0002-lua-json-add-method-to-merge-json-containers.patch
  - Add patch from upstream to fix merging a particular case
    of configuration options:
    * 0003-json-utils-fix-overriding-of-non-container-values-when.patch
  - Fix wireplumber not starting successfully when audio support is
    not enabled since the main profile now requires it. The best
    option would be to use a video-only profile but it's too late
    to change the way wireplumber is started in SLE/Leap, so the
    solution just makes audio/bluetooth optional for now
    (bsc#1223916)
    * split-config-file.py
* Tue Apr 23 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.5.2:
    * Highlights:
    - Added support for loading configuration files other than the
      default wireplumber.conf within Lua scripts (!629)
    - Added support for loading single-section configuration files,
      without fragments (!629)
    - Updated the node.software-dsp script to be able to load
      filter-chain graphs from external configuration files, which
      is needed for Asahi Linux audio DSP configuration (!629)
    * Fixes:
    - Fixed destroying camera nodes when the camera device is
      removed (#627, !631)
    - Fixed an issue with Bluetooth BAP device set naming (!632)
    - Fixed an issue caused by the pipewire event loop not being
      "entered" as expected (!634, #638)
    - A false positive warning about no modules being loaded is
      now suppressed when using libpipewire >= 1.0.5 (#620)
    - Default nodes can now be selected using priority.driver when
      priority.session is not set (#642)
    * Changes:
    - The library version is now generated following pipewire's
      versioning scheme: libwireplumber-0.5.so.0.5.2 becomes
      libwireplumber-0.5.so.0.0502.0 (!633)
  - Remove patches from upstream that are already in 0.5.2:
    * 0001-core-set-context.modules.allow-empty-to-silence-warning-in.patch
    * 0002-monitor-utils-clear-cam-data-after-creating-nodes.patch
    * 0003-monitors_bluez-fix-BAP-device-set-node-naming.patch
* Mon Apr 15 2024 Antonio Larrosa <[email protected]>
  - Add patch from upstream to silence a warning on pipewire
    (since 1.0.5):
    * 0001-core-set-context.modules.allow-empty-to-silence-warning-in.patch
  - Add patch from upstream to fix a dangling reference to a device:
    * 0002-monitor-utils-clear-cam-data-after-creating-nodes.patch
  - Add patch from upstream to fix BAP node naming:
    * 0003-monitors_bluez-fix-BAP-device-set-node-naming.patch
* Mon Apr 01 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.5.1:
    * Highlights:
    - Added a guide documenting how to migrate configuration from
      0.4 to 0.5, also available online at:
      https://pipewire.pages.freedesktop.org/wireplumber/daemon/configuration/migration.html
      If you are packaging WirePlumber for a distribution, please
      consider informing users about this. Installing the
      wireplumber-doc subpackage, this file can be read by running:
      xdg-open /usr/share/doc/wireplumber/html/daemon/configuration/migration.html
    * Fixes:
    - Fixed an odd issue where microphones would stop being usable
      when a Bluetooth headset was connected in the HSP/HFP profile
      (#598, !620)
    - Fixed an issue where it was not possible to store the
      volume/mute state of system notifications (#604)
    - Fixed a rare crash that could occur when a node was destroyed
      while the 'select-target' event was still being processed
      (!621)
    - Fixed deleting all the persistent settings via
      wpctl --delete (!622)
    - Fixed using Bluetooth autoswitch with A2DP profiles that have
      an input route (!624)
    - Fixed sending an error to clients when linking fails due to a
      format mismatch (!625)
    * Additions:
    - Added a check that prints a verbose warning when old-style
      0.4.x Lua configuration files are found in the system. (#611)
    - The "policy-dsp" script, used in Asahi Linux to provide a
      software DSP for Apple Sillicon devices, has now been ported
      to 0.5 properly and documented (#619, !627)
  - Remove patch already included upstream:
    * 0001-filter-utils-fix-handling-of-targetless-smart-filters.patch
  - Enable documentation generation and create new doc subpackage
    including the documentation that can be read by running:
    xdg-open /usr/share/doc/wireplumber/html/index.html
* Fri Mar 22 2024 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix all input sources only working
    when bluetooth profile is set to HSF/HFP, which was a regression
    in 0.5.0 (glfo#pipewire/wireplumber#598):
    * 0001-filter-utils-fix-handling-of-targetless-smart-filters.patch
* Tue Mar 19 2024 Richard Biener <[email protected]>
  - Avoid %if %{pkg_vcmp gcc < 8}, instead replicate the condition
    from the BuildRequires section.
* Mon Mar 18 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.5.0:
    * Changes:
    - Bumped the minimum required version of PipeWire to 1.0.2,
      because we make use of the 'api.bluez5.internal' property of
      the BlueZ monitor (!613)
    - Improved the naming of Bluetooth nodes when the
      auto-switching loopback node is present (!614)
    - Updated the documentation on "settings", the Bluetooth
      monitor, the Access configuration, the file search locations
      and added a document on how to modify the configuration file
      (#595, !616)
    * Fixes:
    - Fixed checking for available routes when selecting the
      default node (!609)
    - Fixed an issue that was causing an infinite loop storing
      routes in the state file (!610)
    - Fixed the interpretation of boolean values in the alsa
      monitor rules (#586, !611)
    - Fixes a Lua crash when we have 2 smart filters, one with a
      target and one without (!612)
    - Fixed an issue where the default nodes would not be updated
      when the currently selected default node became unavailable
      (#588, !615)
    - Fixed an issue that would cause the Props (volume, mute, etc)
      of loopbacks and other filter nodes to not be restored at
      startup (#577, !617)
    - Fixed how some constants were represented in the
      gobject-introspection file, mostly by converting them from
      defines to enums (#540, #591)
    - Fixed an issue using WirePlumber headers in other projects
      due to redefinition of G_LOG_DOMAIN (#571)
* Tue Mar 12 2024 [email protected]
  - Update to version 0.4.90+git25.95cfa9e:
    * wpctl: fix settings --help listing
    * docs: conf_file: small updates
    * docs: installing: update dependency versions
    * si-linkables: do not fully reset when the underlying proxy is
      destroyed
    * registry: move to a separate file and decouple it from the
      object manager
    * log: docs: document the log topic definition macros
    * monitors/bluez: add 'internal' prefix to internal bluez node
      names.
    * monitor/bluez: set node.name property when creating combine
      stream
    * meson: bump min pipewire version to 1.0.2
    * scripts: fix regression in state-routes.lua when marking routes
      as 'active'
    * scripts: improve linking logs
    * monitors: use parseBool for boolean properties in rules
    * config: add {device|node}.disable
    * object-interest: make WP_INTEREST_MATCH_ALL part of the enum
    * proxy: make the FEATURES_MINIMAL and FEATURES_ALL constants
      part of the enum
    * log: fix WP_LOG_LEVEL_TRACE value in the g-i bindings
    * base-dirs: wrap flag groups in parenthesis
    * log.h: define G_LOG_DOMAIN only if
      WP_USE_LOCAL_LOG_TOPIC_IN_G_LOG is defined
    * meson: make sure the boolean options have boolean values
    * meson: move the common CFLAGS to project-wide scope
    * scripts: make sure target is not nil when iterating filters
      with matching targets
    * docs: update the documentation around file search locations
    * scripts: rescan linkables when device EnumRoute param changes
    * scripts: fix available routes check when selecting the default
      node
    * scripts: fix typo in rescan-virtual-links.lua
  - Remove patch already included in the upstream version
    * 0001-scripts-fix-typo-in-rescan-virtual-links.lua.patch
  - Set minimum pipewire version to 1.0.2
* Wed Mar 06 2024 Antonio Larrosa <[email protected]>
  - Revert that last change. Obsoletes shouldn't be used for that.
* Wed Mar 06 2024 Antonio Larrosa <[email protected]>
  - Obsolete libwireplumber-0_4-0 from libwireplumber-0_5-0
* Tue Mar 05 2024 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix a typo a lua script:
    * 0001-scripts-fix-typo-in-rescan-virtual-links.lua.patch
* Tue Mar 05 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.4.90 (0.5.0 RC1)
    * Highlights:
    - The configuration system has been changed back to load files
      from the WirePlumber configuration directories, such as
      /etc/wireplumber and $XDG_CONFIG_HOME/wireplumber, unlike in
      the pre-releases. This was done because issues were observed
      with installations that use a different prefix for pipewire
      and wireplumber. If you had a wireplumber.conf file in
      /etc/pipewire or $XDG_CONFIG_HOME/pipewire, you should move
      it to /etc/wireplumber or $XDG_CONFIG_HOME/wireplumber
      respectively (!601)
    - The internal base directories lookup system now also respects
      the XDG_CONFIG_DIRS and XDG_DATA_DIRS environment variables,
      and their default values as per the XDG spec, so it is
      possible to install configuration files also in places like
      /etc/xdg/wireplumber and override system-wide data paths
      (!601)
    - wpctl now has a settings subcommand to show, change and
      delete settings at runtime. This comes with changes in the
      WpSettings system to validate settings using a schema that is
      defined in the configuration file. The schema is also
      exported on a metadata object, so it is available to any
      client that wants to expose WirePlumber settings (!599, !600)
    - The WpConf API has changed to not be a singleton and support
      opening arbitrary config files. The main config file now
      needs to be opened prior to creating a WpCore and passed to
      the core using a property. The core uses that without letting
      the underlying pw_context open and read the default
      client.conf. The core also closes the WpConf after all
      components are loaded, which means all the config loading is
      done early at startup. Finally, WpConf loads all sections
      lazily, keeping the underlying files memory mapped until it
      is closed and merging them on demand (!601, !606)
  - Remove patch that's already included:
    * 0001-wpctl-add-settings-subcomand-to-show_-delete-or-change.patch
* Mon Feb 19 2024 Antonio Larrosa <[email protected]>
  - Add patch from upstream to remove the "clear-persistent"
    sub-command and add a "settings" sub-command:
    * 0001-wpctl-add-settings-subcomand-to-show_-delete-or-change.patch
* Thu Feb 15 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.4.82 (0.5.0 pre-release 2)
    * Highlights:
    - Bluetooth auto-switching is now implemented with a virtual
      source node. When an application links to it, the actual
      device switches to the HSP/HFP profile to provide the real
      audio stream. This is a more robust solution that works with
      more applications and is more user-friendly than the previous
      application whitelist approach
    - Added support for dynamic log level changes via the PipeWire
      settings metadata. Also added support for log level patterns
      in the configuration file
    - The "persistent" (i.e. stored) settings approach has changed
      to use two different metadata objects: sm-settings and
      persistent-sm-settings. Changes in the former are applied in
      the current session but not stored, while changes in the
      latter are stored and restored at startup. Some work was also
      done to expose a wpctl interface to read and change these
      settings, but more is underway
    - Several WirePlumber-specific node properties that used to be
      called target.* have been renamed to node.* to match the
      PipeWire convention of node.dont-reconnect. These are also
      now fully documented
    * Other changes:
    - Many documentation updates
    - Added support for SNAP container permissions
    - Fixed multiple issues related to restoring the Route
      parameter of devices, which includes volume state
    - Smart filters can now be targetted by specific streams
      directly when the filter.smart.targetable property is set
    - Ported the mechanism to override device profile priorities in
      the configuration, which is used to re-prioritize Bluetooth
      codecs
    - WpSettings is no longer a singleton class and there is a
      built-in component to preload an instance of it
* Mon Feb 05 2024 Antonio Larrosa <[email protected]>
  - Update to version 0.4.81
    * Highlights:
    - Lua scripts have been refactored to use the new event
      dispatcher API, which allows them to be split into multiple
      small fragments that react to events in a specified order.
      This allows scripts to be more modular and easier to
      maintain, as well as more predictable in terms of execution
      order.
    - The configuration system has been refactored to use a single
      SPA-JSON file, like PipeWire does, with support for fragments
      that can override options. This file is also now loaded using
      PipeWire's configuration API, which effectively means that
      the file is now loaded from the PipeWire configuration
      directories, such as /etc/pipewire and
      $XDG_CONFIG_HOME/pipewire.
    - The configuration system now has the concept of profiles,
      which are groups of components that can be loaded together,
      with the ability to mark certain components as optional. This
      allows having multiple configurations that can be loaded
      using the same configuration file. Optional components also
      allow loading the same profile gracefully on different
      setups, where some components may not be available (ex,
      loading of the session D-Bus plugin on a system-wide PipeWire
      setup now does not fail).
    - Many configuration options are now exposed in the sm-settings
      metadata, which allows changing them at runtime. This can be
      leveraged in the future to implement configuration tools that
      can modify WirePlumber's behaviour dynamically, without
      restarting.
    - A new "filters" system has been implemented, which allows
      specifying chains of "filter" nodes to be dynamically linked
      in-between streams and devices. This is achieved with certain
      properties and metadata that can be set on the filter nodes
      themselves.
    - The default linking policy now reads some more target.*
      properties from nodes, which allows fine-tuning some aspects
      of their linking behaviour, such as whether they are allowed
      to be re-linked or whether an error should be sent to the
      client if they cannot be linked.
    - Some state files have been renamed and some have changed
      format to use JSON for storing complex values, such as
      arrays. This may cause some of the old state to be lost on
      upgrade, as there is no transition path implemented.
    - The libcamera and V4L2 monitors have a "device deduplication"
      logic built-in, which means that for each physical camera
      device, only one node will be created, either from libcamera
      or V4L2, depending on which one is considered better for the
      device. This is mainly to avoid having multiple nodes for the
      same camera device, which can cause confusion when looking at
      the list of available cameras in applications.
  - Bump apiver to 0.5
  - Rewrite split-config-file.py to work with the new config
    subsystem
  - Remove patch which isn't applying anymore and whose fix is
    now handled by the split-config-file.py script:
    * fix-bsc1219411.patch
* Mon Feb 05 2024 Antonio Larrosa <[email protected]>
  - Add patch to only enable bluetooth when audio support is enabled
    by installing wireplumber-audio (bsc#1219411):
    * fix-bsc1219411.patch
* Tue Dec 05 2023 Alexei Sorokin <[email protected]>
  - Update to version 0.4.17:
    * Fixes:
    - Fix a reference counting issue in the object managers that
      could cause crashes due to memory corruption.
    - Fix an issue with filters linking to wrong targets, often
      with two sets of links.
    - Fix a crash in the endpoints policy that would show up when
      log messages were enabled at level 3 or higher.
* Sun Nov 26 2023 Antonio Larrosa <[email protected]>
  - Update to version 0.4.16:
    * Additions:
    - Added a new "sm-objects" script that allows loading objects
      on demand via metadata entries that describe the object to
      load; this can be used to load pipewire modules, such as
      filters or network sources/sinks, on demand
    - Added a mechanism to override device profile priorities in
      the configuration, mainly as a way to re-prioritize Bluetooth
      codecs, but this also can be used for other devices
    - Added a mechanism in the endpoints policy to allow connecting
      filters between a certain endpoint's virtual sink and the
      device sink; this is specifically intended to allow plugging
      a filter-chain to act as equalizer on the Multimedia endpoint
    - Added wp_core_get_own_bound_id() method in WpCore
    * Changes:
    - PipeWire 0.3.68 is now required
    - policy-dsp now has the ability to hide hardware nodes behind
      the DSP sink to prevent hardware misuse or damage
    - JSON parsing in Lua now allows keys inside objects to be
      without quotes
    - Added optional argument in the Lua JSON parse() method to
      limit recursions, making it possible to partially parse a
      JSON object
    - It is now possible to pass nil in Lua object constructors
      that expect an optional properties object; previously,
      omitting the argument was the only way to skip the properties
    - The endpoints policy now marks the endpoint nodes as
      "passive" instead of marking their links, adjusting for the
      behavior change in PipeWire 0.3.68
    - Removed the "passive" property from si-standard-link, since
      only nodes are marked as passive now
    * Fixes:
    - Fixed the wpctl clear-default command to completely clear all
      the default nodes state instead of only the last set default
    - Reduced the amount of globals that initially match the
      interest in the object manager
    - Used an idle callback instead of pw_core_sync() in the object
      manager to expose tmp globals
  - Remove patches included upstream:
    * 0001-object-manager-reduce-the-amount-of-globals-that-initially.patch
    * 0002-object-manager-use-an-idle-callback-to-expose-tmp-globals.patch
    * 0001-policy-dsp-add-ability-to-hide-parent-nodes.patch
  - Update split-config-file.py
* Tue Oct 31 2023 Antonio Larrosa <[email protected]>
  - Add patch from upstream that fixes too many matches for property
    interest:
    * 0001-object-manager-reduce-the-amount-of-globals-that-initially.patch
  - Add patch from upstream that fixes an odd failure of a test after
    applying the previous patch:
    * 0002-object-manager-use-an-idle-callback-to-expose-tmp-globals.patch
  - Add patch from upstream that adds ability to hide parent nodes,
    which is useful to prevent hardware misuse or damage by poorly
    behaved/configured clients:
    * 0001-policy-dsp-add-ability-to-hide-parent-nodes.patch
* Fri Oct 13 2023 Antonio Larrosa <[email protected]>
  - Update to version 0.4.15:
    * Additions:
    - A new "DSP policy" module has been added; its purpose is to
      automatically load a filter-chain when a certain hardware
      device is present, so that audio always goes through this
      software DSP before reaching the device. This is mainly to
      support Apple M1/M2 devices, which require a software DSP
      to be always present
    - WpImplModule now supports loading module arguments directly
      from a SPA-JSON config file; this is mainly to support DSP
      configuration for Apple M1/M2 and will likely be reworked
      for 0.5
    - Added support for automatically combining Bluetooth LE Audio
      device sets (e.g. pairs of earbuds) (!500)
    - Added command line options in wpctl to display device/node
      names and nicknames instead of descriptions
    - Added zsh completions file for wpctl
    - The device profile selection policy now respects the
      device.profile property if it is set on the device; this is
      useful to hand-pick a profile based on static configuration
      rules (alsa_monitor.rules)
    * Changes/Fixes:
    - Linking policy now sends an error to the client before
      destroying the node, if it determines that the node cannot be
      linked to any target; this fixes error reporting on the
      client side
    - Fixed a crash in suspend-node that could happen when
      destroying virtual sinks that were loaded from another
      process such as pw-loopback
    - Virtual machine default period size has been bumped to 1024
    - Updated bluez5 default configuration, using bluez5.roles
      instead of bluez5.headset-roles now (!498)
    - Disabled Bluetooth autoconnect by default (!514)
    - Removed RestrictNamespaces option from the systemd services
      in order to allow libcamera to load sandboxed IPA modules
    - Fixed a JSON encoding bug with empty strings
    - Lua code can now parse strings without quotes from SPA-JSON
    - Added some missing \since annotations and made them show up
      in the generated gobject-introspection file, to help bindings
      generators
  - Add zsh-completion subpackage
* Fri May 19 2023 Alexei Sorokin <[email protected]>
  - Require wireplumber-audio if pipewire-jack is installed.
  - Recommend pipewire-jack in wireplumber-audio.
* Fri Mar 10 2023 Alexei Sorokin <[email protected]>
  - Update to version 0.4.14:
    * Additions
    - Add support for managing Bluetooth-MIDI, complementing the
      parts that were merged in PipeWire recently.
    - Add a default volume configuration option for streams whose
      volume has never been saved before; that allows starting new
      streams at a lower volume than 100% by default, if desired.
    - Add support for managing link errors and propagating them to
      the client(s) involved. This allows better error handling on
      the application side in case a format cannot be negotiated -
      useful in video streams.
    - snd_aloop devices are now described as being "Loopback"
      devices.
    - ALSA nodes in the pro audio profile now get increased graph
      priority, so that they are more likely to become the driver
      in the graph.
    - Add support for disabling libcamera nodes & devices with
      node.disabled and device.disabled, like it works for ALSA
      and V4L2.
  - Drop reduce-meson-required-version.patch: openSUSE Leap 15.3 is
    no longer supported.
  - Drop patches already included upstream:
    * 0001-alsa-monitor-handle-snd_aloop-devices-better.patch
    * 0001-spa-json-make-sure-we-only-add-encoded-string-data.patch
    * 0001-m-lua-scripting-ignore-string-integer-table-keys-when-constructing-a-JSON-Array-Object.patch
* Fri Jan 13 2023 Antonio Larrosa <[email protected]>
  - Backport the workaround from SLE/Leap for the bug in systemd
    scripts that didn't set the default enable state for the
    wireplumber user service when installing wireplumber. The bug
    (boo#1200485) was fixed but that's only for new installations
    while this workaround will fix old installations (boo#1202008).
    This is used to automatically fix installations of
    SLE 15 SP4/Leap 15.4 that were not updated during it's lifetime
    and upgrade directly to SP5/15.5 .
* Wed Jan 11 2023 Antonio Larrosa <[email protected]>
  - Add upstream patches to fix glfo#pipewire/pipewire#2214 and to
    handle better non-null terminated strings:
    * 0001-alsa-monitor-handle-snd_aloop-devices-better.patch
    * 0001-spa-json-make-sure-we-only-add-encoded-string-data.patch
    * 0001-m-lua-scripting-ignore-string-integer-table-keys-when-constructing-a-JSON-Array-Object.patch
* Tue Dec 13 2022 Alexei Sorokin <[email protected]>
  - Update to version 0.4.13:
    * Additions
    - Add bluetooth SCO (HSP/HFP) hardware offload support,
      together with an example script that enables this
      functionality on the PinePhone.
    - Encoded audio (mp3, aac, etc...) can now be passed through,
      if this mode is supported by both the application and the
      device.
    - The v4l2 monitor now also respects the ``node.disabled`` and
      ``device.disabled`` properties inside rules.
    - Add "Firefox Developer Edition" to the list of applications
      that are allowed to trigger a bluetooth profile auto-switch.
    - Add support in the portal access script to allow newly
      plugged cameras to be immediately visible to the portal
      applications.
    * Fixes
    - Work around an issue that would prevent streams from properly
      linking when using effects software like EasyEffects and
      JamesDSP.
    - Fix destroying pavucontrol-qt monitor streams after the node
      that was being monitored is destroyed.
    - Fix a crash in the alsa.lua monitor that could happen when a
      disabled device was removed and re-added.
    - Fix a rare crash in the metadata object.
    - Fix a bug where a restored node target would override the
      node target set by the application on the node's properties.
    * Packaging
    - Add build options to compile wireplumber's library, daemon
      and tools independently.
    - Add a build option to disable unit tests that require the
      dbus daemon.
    - Stop using fakesink/fakesrc in the unit tests to be able to
      run them on default pipewire installations. Compiling the spa
      ``test`` plugin is no longer necessary.
    - Add pkg-config and header information in the gir file.
  - Rebase reduce-meson-required-version.patch
  - Drop patches already upstream:
    * 0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch
    * 0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch
* Tue Nov 15 2022 Antonio Larrosa <[email protected]>
  - Add patch from upstream to work around a problem when a link is
    not activated:
    * 0001-policy-node-wait-for-unactivated-links-instead-of-removing.patch
  - Add patch from upstream to fix handling null devices which result
    in lua exceptions:
    * 0001-alsa.lua-remove-the-disabled-entities-from-the-names-table.patch
* Tue Oct 04 2022 Alexei Sorokin <[email protected]>
  - Update to version 0.4.12:
    * Changes
    - WirePlumber now maintains a stack of previously configured
      default nodes and prioritises to one of those when the
      actively configured default node becomes unavailable, before
      calculating the next default using priorities.
    - Updated bluetooth scripts to support the name changes that
      happened in PipeWire 0.3.59 and also support the experimental
      Bluetooth LE functionality.
    - Changed the naming of bluetooth nodes to not include the
      profile in it; this allows maintaining existing links when
      switching between a2dp and hfp.
    - The default volume for new outputs has changed to be 40% in
      cubic scale (= -24 dB) instead of linear
      (= 74% cubic / -8 dB) that it was before.
    - The default volume for new inputs has changed to be 100%
      rather than following the default for outputs.
    - Added ``--version`` flag on the wireplumber executable.
    - Added ``--limit`` flag on ``wpctl set-volume`` to limit the
      higher volume that can be set (useful when incrementing
      volume with a keyboard shortcut that calls into wpctl).
    - The properties of the alsa midi node can now be set in the
      config files.
    * Fixes
    - Fixed a crash in lua code that would happen when running in a
      VM.
    - Fixed a crash that would happen when re-connecting to D-Bus.
    - Fixed a mistake in the code that would cause device
      reservation not to work properly.
    - Fixed ``wpctl clear-default`` to accept 0 as a valid setting ID.
    - Fixed the logic of choosing the best profile after the active
      profile of a device becomes unavailable
    - Fixed a regression that would cause PulseAudio "corked"
      streams to not properly link and cause busy loops.
    - Fixed an issue parsing spa-json objects that have a nested
      object as the value of their last property.
  - Rebase reduce-meson-required-version.patch
  - Drop patches already upstream:
    * fix-alsa.patch
    * 0001-dbus-fix-crash-when-trying-to-reconnect.patch
    * 398.patch
* Fri Aug 05 2022 Atri Bhattacharya <[email protected]>
  - Add 398.patch -- policy-node: fix potential rescan loop to
    prevent high cpu usage (glfo#pipewire/wireplumber#152); patch
    taken from upstream merge request.
* Thu Jul 14 2022 Fabian Vogt <[email protected]>
  - Add patch to fix crash on session end:
    * 0001-dbus-fix-crash-when-trying-to-reconnect.patch
* Fri Jul 08 2022 Fabian Vogt <[email protected]>
  - Add patch to fix alsa device creation:
    * fix-alsa.patch
* Tue Jul 05 2022 Alexei Sorokin <[email protected]>
  - Update to version 0.4.11:
    * Changes
    - The libcamera monitor is now enabled by default, so if the
      libcamera source is enabled in PipeWire, cameras discovered
      with the libcamera API will be  available out of the box.
      This is safe to use alongside V4L2, as long as the user does
      not try to use the same camera over different APIs at the
      same time.
    - Libcamera and V4L2 nodes now get assigned a
      `priority.session` number; V4L2 nodes get a higher priority
      by default, so the default camera is going to be /dev/video0
      over V4L2, unless changed with `wpctl`.
    - Libcamera nodes now get a user-friendly description based on
      their location (e.g. built-in front camera). Additionally,
      V4L2 nodes now have a "(V4L2)" string appended to their
      description in order to be distinguished from the libcamera
      ones.
    - 50-alsa-config.lua now has a section where you can set
      properties that will only be applied if WirePlumber is
      running in a virtual machine. By default it now sets
      `api.alsa.period-size = 256` and `api.alsa.headroom = 8192`.
    * Fixes
    - The "enabled" properties in the config files are now "true"
      by default when they are not defined. This fixes backwards
      compatibility with older configuration files.
    - Fixed device name deduplication in the alsa monitor, when
      device reservation is enabled.
    - Reverted a previous fix that makes it possible again to get
      a glitch when changing default nodes while also changing the
      profile (GNOME Settings).
      The fix was causing other problems and the issue will be
      addressed differently in the future.
    - Fixed an issue that would prevent applications from being
      moved to a recently plugged USB headset.
    - Fixed an issue where wireplumber would automatically link
      control ports, if they are enabled, to audio ports,
      effectively breaking audio.
    - The policy now always considers the profile of a device that
      was previously selected by the user, if it is available, when
      deciding which profile to activate.
    - A few documentation fixes.
    * Tools
    - wpctl now has a `get-volume` command for easier scripting of
      volume controls.
    - wpctl now supports relative steps and percentage-based steps
      in `set-volume`.
    - wpctl now also prints link states.
    - wpctl can now `inspect` metadata objects without showing
      critical warnings.
    * Library
    - A new WpDBus API was added to maintain a single D-Bus
      connection among modules that need one.
    - WpCore now has a method to get the virtual machine type, if
      WirePlumber is running in a virtual machine.
    - WpSpaDevice now has a
      `wp_spa_device_new_managed_object_iterator()` method.
    - WpSpaJson now has a `wp_spa_json_to_string()` method that
      returns a newly allocated string with the correct size of the string token.
    - WpLink now has a `WP_LINK_FEATURE_ESTABLISHED` that allows
      the caller to wait until the link is in the PAUSED or ACTIVE
      state. This transparently now enables watching links for
      negotiation or allocation errors and failing gracefully
      instead of keeping dead link objects around.
    * Misc
    - The Lua subproject was bumped to version 5.4.4.
  - Rebase reduce-meson-required-version.patch
* Tue May 10 2022 Alexei Sorokin <[email protected]>
  - Update to version 0.4.10:
    * Changes
    - Add i18n support to be able to translate some user-visible
      strings.
    - wpctl now supports using
      @DEFAULT_{AUDIO_,VIDEO_,}{SINK,SOURCE}@ as ID, almost like
      pactl. Additionally, it supports a --pid flag for changing
      volume and mute state by specifying a process ID, applying
      the state to all nodes of a specific client process.
    - The Lua engine now supports loading Lua libraries. These can
      be placed either in the standard Lua libraries path or in
      the "lib" subdirectory of WirePlumber's "scripts" directory
      and can be loaded with ``require()``
    - The Lua engine's sandbox has been relaxed to allow more
      functionality in scripts (the debug & coroutine libraries
      and some other previously disabled functions)
    - Lua scripts are now wrapped in special WpPlugin objects,
      allowing them to load asynchronously and declare when they
      have finished their loading
    - Add a new script that provides the same functionality as
      module-fallback-sink from PipeWire, but also takes endpoints
      into account and can be customised more easily. Disabled by
      default for now to avoid conflicts.
    * Policy
    - Add an optional experimental feature that allows filter-like
      streams (like echo-cancel or filter-node) to match the
      channel layout of the device they connect to, on both sides
      of the filter; that means that if, for instance, a sink has
      6 channels and the echo-cancel's source stream is linked to
      that sink, then the virtual sink presented by echo-cancel
      will also be configured to the same 6 channels layout. This
      feature needs to be explicitly enabled in the configuration
      ("filter.forward-format")
    - filter-like streams (filter-chain and such) no longer follow
      the default sink when it changes, like in PulseAudio.
    * Fixes
    - The suspend-node script now also suspends nodes that go into
      the "error" state, allowing them to recover from errors
      without having to restart WirePlumber.
    - Fix a crash in mixer-api when setting volume with
      channelVolumes.
    - logind module now watches only for user state changes,
      avoiding errors when machined is not running.
    * Misc
    - The configuration files now have comments mentioning which
      options need to be disabled in order to run WirePlumber
      without D-Bus.
    - The configuration files now have properties to
      enable/disable the monitors and other sections, so that it
      is possible to disable them by dropping in a file that just
      sets the relevant property to false.
    - setlocale() is now called directly instead of relying on
      pw_init().
    - WpSpaJson received some fixes and is now used internally to
      parse configuration files.
    - More applications were added to the bluetooth auto-switch
      applications whitelist.
  - Add a new wireplumber-lang package.
  - Drop patches already upstream:
    * 0001-scripts-policy-device-profile-clear-tables-when-devices-removed.patch
    * 0001-src-setlocale-in-main-for-tools-and-the-daemon.patch
  - Rebase reduce-meson-required-version.patch
* Wed Mar 30 2022 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix no sound on reconnection of
    bluetooth device (glfo#pipewire/wireplumber#234):
    * 0001-scripts-policy-device-profile-clear-tables-when-devices-removed.patch
* Tue Mar 29 2022 Antonio Larrosa <[email protected]>
  - Add patch from upstream to set locale in apps now that pw_init
    doesn't call it by itself anymore in pipewire 0.3.49:
    * 0001-src-setlocale-in-main-for-tools-and-the-daemon.patch
* Fri Mar 25 2022 Antonio Larrosa <[email protected]>
  - Make the wireplumber-audio noarch as it just contains a lua
    config file.
* Tue Mar 22 2022 [email protected]
  - Update to version 0.4.9:
    * Fixes:
    - restore-stream no longer crashes if properties for it are not
      present in the config (#190)
    - spa-json no longer crashes on non-x86 architectures
    - Fixed a potential crash in the bluetooth auto-switch module
      (#193)
    - Fixed a race condition that would cause Zoom desktop audio
      sharing to fail (#197)
    - Surround sound in some games is now exposed properly
      (pipewire#876)
    - Fixed a race condition that would cause the default source &
      sink to not be set at startup
    - policy-node now supports the 'target.object' key on streams
      and metadata
    - Multiple fixes in policy-node that make the logic in some
      cases behave more like PulseAudio (regarding nodes with the
      dont-reconnect property and regarding following the default
      source/sink)
    - Fixed a bug with parsing unquoted strings in spa-json
    * Misc:
    - The policy now supports configuring "persistent" device
      profiles. If a device is manually set to one of these
      profiles, then it will not be auto-switched to another
      profile automatically under any circumstances (#138, #204)
    - The device-activation module was re-written in lua
    - Brave, Edge, Vivaldi and Telegram were added in the bluetooth
      auto-switch applications list
    - ALSA nodes now use the PCM name to populate node.nick, which
      is useful at least on HDA cards using UCM, where all outputs
      (analog, hdmi, etc) are exposesd as nodes on a single profile
    - An icon name is now set on the properties of bluetooth devices
  - Drop patches already upstream:
    * 0001-spa-json-fix-va_list-APIs-for-different-architectures.patch
    * 0001-restore-stream-do-not-crash-if-config_properties-is-nil.patch
    * 0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch
    * 0003-si-audio-adapter-relax-format-parsing.patch
  - Update split-config-file.py script
* Thu Mar 10 2022 Alexei Sorokin <[email protected]>
  - Add patch from upstream to fix a crash on tty switch
    (glfo#pipewire/wireplumber#193):
    * 0002-policy-bluetooth-fix-string.find-crash-with-nil-string.patch
  - Add patch from upstream to fix issues with PulseAudio support with
    PipeWire 0.3.48+ (glfo#pipewire/pipewire#2189):
    * 0003-si-audio-adapter-relax-format-parsing.patch
  - Some spec clean-up.
* Fri Feb 11 2022 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix va_list APIs for ppc64le and
    aarch64, where va_list is not a pointer (boo#1195818):
    * 0001-spa-json-fix-va_list-APIs-for-different-architectures.patch
  - Add patch from upstream to fix a crash if config.properties is
    nil:
    * 0001-restore-stream-do-not-crash-if-config_properties-is-nil.patch
* Mon Feb 07 2022 Antonio Larrosa <[email protected]>
  - Update to version 0.4.8:
    * Highlights:
    - Added bluetooth profile auto-switching support. Bluetooth
      headsets will now automatically switch to the HSP/HFP profile
      when making a call and go back to the A2DP profile after the
      call ends (#90)
    - Added an option (enabled by default) to auto-switch to
      echo-cancel virtual device nodes when the echo-cancel module
      is loaded in pipewire-pulse, if there is no other configured
      default node
    * Fixes:
    - Fixed a regression that prevented nodes from being selected
      as default when using the pro-audio profile (#163)
    - Fixed a regression that caused encoded audio streams to stall
      (#178)
    - Fixed restoring bluetooth device profiles
    * Library:
    - A new WpSpaJson API was added as a front-end to spa-json.
      This is also exposed to Lua, so that Lua scripts can natively
      parse and write data in the spa-json format
    * Misc:
    - wpctl can now list the configured default sources and sinks
      and has a new command that allows clearing those configured
      defaults, so that wireplumber goes back to choosing the
      default nodes based on node priorities
    - The restore-stream script now has its own configuration file
      in main.lua.d/40-stream-defaults.lua and has independent
      options for restoring properties and target nodes
    - The restore-stream script now supports rule-based
      configuration to disable restoring volume properties and/or
      target nodes for specific streams, useful for applications
      that misbehave when we restore those (see #169)
    - policy-endpoint now assigns the "Default" role to any stream
      that does not have a role, so that it can be linked to a
      pre-configured endpoint
    - The route-settings-api module was dropped in favor of dealing
      with json natively in Lua, now that the API exists
  - Drop patch which is already upstream:
    * 0001-default-nodes-handle-nodes-without-Routes.patch
  - Update split-config-file.py script
* Mon Jan 31 2022 Callum Farmer <[email protected]>
  - Use the default lua instead of hardcoding 5.3
* Tue Jan 25 2022 Antonio Larrosa <[email protected]>
  - Update to version 0.4.7:
    * Fixed a regression in 0.4.6 that caused the selection of the
      default audio sources and sinks to be delayed until some event,
      which effectively caused losing audio output in many
      circumstances (glfo#pipewire/wireplumber#148,
      glfo#pipewire/wireplumber#150, glfo#pipewire/wireplumber#151,
      glfo#pipewire/wireplumber#153)
    * Fixed a regression in 0.4.6 that caused the echo-cancellation
      pipewire module (and possibly others) to not work
    * A default sink or source is now not selected if there is no
      available route for it (glfo#pipewire/wireplumber#145)
    * Fixed an issue where some clients would wait for a bit while
      seeking (glfo#pipewire/wireplumber#146)
    * Fixed audio capture in the endpoints-based policy
    * Fixed an issue that would cause certain lua scripts to error
      out with older configuration files
      (glfo#pipewire/wireplumber#158)
  - Drop patches already included upstream:
    * 0001-policy-node-schedule-rescan-without-timeout-if-defined-target-is-not-found.patch
    * 0002-policy-node-find-best-linkable-if-default-one-cannot-be-linked.patch
  - Add patch from upstream to fix selection of Pro Audio nodes
    as default nodes:
    * 0001-default-nodes-handle-nodes-without-Routes.patch
* Mon Jan 10 2022 Antonio Larrosa <[email protected]>
  - Reformat .changes file to limit lines to 67 chars when possible.
* Sat Jan 08 2022 Alexei Sorokin <[email protected]>
  - Update to version 0.4.6:
    * Fix a lot of race condition bugs that would cause strange
      crashes or many log messages being printed when streaming
      clients would connect and disconnect very fast.
    * Improve the logic for selecting a default target device.
    * Fix switching to headphones when the wired headphones are
      plugged in.
    * Fix an issue where "udevadm trigger" would break wireplumber.
    * Fix an issue where switching profiles of a device could kill
      client nodes.
    * Fix briefly switching output to a secondary device when
      switching device profiles (#85)
    * Fix "wpctl status" showing default device selections when
      dealing with module-loopback virtual sinks and sources.
    * WirePlumber now ignores hidden files from the config directory.
    * Fix an interoperability issue with jackdbus.
    * Fix an issue where pulseaudio tcp clients would not have
      permissions to connect to PipeWire.
    * Fix a crash in the journald logger with NULL debug messages.
    * Enable real-time priority for the bluetooth nodes to run in RT.
    * Make the default stream volume configurable.
    * Scripts are now also looked up in
      $XDG_CONFIG_HOME/wireplumber/scripts
    * Update documentation on configuring WirePlumber and fixed some
      more documentation issues.
    * Add support for using strings as log level selectors in
      WIREPLUMBER_DEBUG.
  - Drop patches merged upstream:
    * 0001-m-reserve-device-replace-the-hash-table-key-on-new-insert.patch
    * 0002-policy-node-wait-for-nodes-when-we-become-unlinked.patch
  - Add patch from upstream to fix a pulse client hanging issue:
    * 0001-policy-node-schedule-rescan-without-timeout-if-defined-target-is-not-found.patch
  - Add patch from upstream to fix an issue with
    libpipewire-module-echo-cancel:
    * 0002-policy-node-find-best-linkable-if-default-one-cannot-be-linked.patch
* Wed Dec 15 2021 Antonio Larrosa <[email protected]>
  - Remove many build dependencies which aren't really needed
* Sat Dec 11 2021 Fabian Vogt <[email protected]>
  - Use %autosetup, apply patches unconditionally
  - Hard depend on wireplumber-audio if pipewire-pulseaudio is installed
* Thu Dec 09 2021 Antonio Larrosa <[email protected]>
  - Supplements: (pipewire-pulseaudio and wireplumber) so everyone
    having those two packages already installed automatically get
    wireplumber-audio pulled in.
* Thu Dec 09 2021 Bjørn Lie <[email protected]>
  - Quiet setup of sources, no need to see the package untared.
  - Disable tests for ppc64 for now like we do for i586.
* Fri Dec 03 2021 Antonio Larrosa <[email protected]>
  - Split the configuration to separate the audio initialization
    to a new wireplumber-audio subpackage. This way, if that package
    is not installed, pipewire doesn't open the audio devices, thus
    not entering a race-condition with pulseaudio but still allowing
    to manage v4l2 devices and sharing the screen in wayland, for
    example (boo#1188516).
* Wed Nov 24 2021 Antonio Larrosa <[email protected]>
  - Add patches from upstream to fix wireplumber breaking when
    udevadm trigger is run:
    * 0001-m-reserve-device-replace-the-hash-table-key-on-new-insert.patch
  - And another patch to fix an issue where there is only 1 sink
    available and the card profile is toggeled between pro and
    stereo:
    * 0002-policy-node-wait-for-nodes-when-we-become-unlinked.patch
* Thu Nov 11 2021 [email protected]
  - Update to version 0.4.5:
    * Fixes:
    - Fixed a crash that could happen after a node linking error
      (glfo#pipewire/wireplumber#76)
    - Fixed a bug that would cause capture streams to link to
      monitor ports of loopback nodes instead of linking to their
      capture ports
    - Fixed a needless wait that would happen on applications using
      the pipewire ALSA plugin (glfo#pipewire/wireplumber#92)
    - Fixed an issue that would cause endless rescan loops in
      policy-node and could potentially also cause other strange
      behaviors in case pavucontrol or another monitoring utility
      was open while the policy was rescanning
      (glfo#pipewire/wireplumber#77)
    - Fixed the endpoints-based policy that broke in recent
      versions and improved its codebase to share more code and be
      more in-line with policy-node
    - The semicolon character is now escaped properly in state
      files (glfo#pipewire/wireplumber#82)
    - When a player requests encoded audio passthrough, the policy
      now prefers linking to a device that supports that instead of
      trying to link to the default device and potentially failing
      (glfo#pipewire/wireplumber#75)
    - Miscellaneous robustness fixes in policy-node
    * API:
    - Added WpFactory, a binding for pw_factory proxies. This
      allows object managers to query factories that are loaded in
      the pipewire daemon
    - The file-monitor-api plugin can now watch files for changes
      in addition to directories
  - Remove patches already included by upstream:
    * 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch
    * 0002-policy-node-enforce-the-direction-of-the-target-when-linking-by-node-name.patch
    * 0001-add-missing-break-in-best-route-selection-logic.patch
* Wed Nov 03 2021 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix a problem saving the default
    route:
    * 0001-add-missing-break-in-best-route-selection-logic.patch
  - Add patch to let wireplumber build in Leap 15.3/SLE-15-SP3
    which only have meson 0.54:
    * reduce-meson-required-version.patch
* Thu Oct 21 2021 Antonio Larrosa <[email protected]>
  - Add %post/%pre/... sections to enable the user service
    automatically
* Tue Oct 19 2021 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix selection of capture ports instead
    of monitor ports:
    * 0002-policy-node-enforce-the-direction-of-the-target-when-linking-by-node-name.patch
* Tue Oct 19 2021 Antonio Larrosa <[email protected]>
  - Add patch from upstream to fix a crash when there's a link error
    (glfo#pipewire/wireplumber#76):
    * 0001-si-standard-link-fix-crash-after-returning-a-link-error.patch
* Fri Oct 15 2021 [email protected]
  - Update to version 0.4.4:
    * Highlights:
    - Implemented linking nodes in passthrough mode, which enables
      encoded iec958 / dsd audio passthrough
    - Streams are now sent an error if it was not possible to link
      them to a target (#63)
    - When linking nodes where at least one of them has an
      unpositioned channel layout, the other one is not
      reconfigured to match the channel layout; it is instead
      linked with a best effort port matching logic
    - Output route switches automatically to the latest one that
      has become available (#69)
    - Policy now respects the 'node.exclusive' and 'node.passive'
      properties
    - Many other minor policy fixes for a smoother desktop usage
      experience
    * API:
    - Fixed an issue with the LocalModule() constructor not
      accepting nil as well as the properties table properly
    - Added WpClient.send_error(), WpSpaPod.fixate() and
    - WpSpaPod.filter() (both in C and Lua)
    * Misc:
    - Bumped meson version requirement to 0.56 to be able to use
      meson.project_{source,build}_root() and ease integration with
      pipewire's build system as a subproject
    - wireplumber.service is now an alias to
      pipewire-session-manager.service
    - Loading the logind module no longer fails if it was not found
      on the system; there is only a message printed in the output
    - The logind module can now be compiled with elogind (#71)
    - Improvements in wp-uninstalled.sh, mostly to ease its
      integration with pipewire's build system when wireplumber is
      build as a subproject
    - The format of audio nodes is now selected using the same
      algorithm as in media-session
    - Fixed a nasty segfault that appeared in 0.4.3 due to a typo
      (#72)
    - Fixed a re-entrancy issue in the wplua runtime (#73)
  - Update to version 0.4.3:
    * Fixes:
    - Implemented logind integration to start the bluez monitor
      only on the WirePlumber instance that is running on the
      active seat; this fixes a bunch of startup warnings and the
      disappearance of HSP/HFP nodes after login (#54)
    - WirePlumber is now launched with GIO_USE_VFS=local to avoid
      strange D-Bus interference when the user session is
      restarted, which previously resulted in WirePlumber being
      terminated with SIGTERM and never recovering (#48)
    - WirePlumber now survives a restart of the D-Bus service,
      reconnecting to the bus and reclaiming the bus services that
      it needs (#55)
    - Implemented route-settings metadata, which fixes storing
      volume for the "System Sounds" in GNOME (#51)
    - Monitor sources can now be selected as the default source
      (#60)
    - Refactored some policy logic to allow linking to monitors;
      the policy now also respects "stream.capture.sink" property
      of streams which declares that the stream wants to be linked
      to a monitor (#66)
    - Policy now cleans up 'target.node' metadata so that streams
      get to follow the default source/sink again after the default
      was changed to match the stream's currently configured target
      (#65)
    - Fixed configuring virtual sources (#57)
    - Device monitors now do not crash if a SPA plugin is missing;
      instead, they print a warning to help users identify what
      they need to install (!214)
    - Fixed certain "proxy activation failed" warnings (#44)
    - iec958 codec configuration is now saved and restored properly
      (!228)
    - Fixed some logging issues with the latest version of pipewire
      (!227, !232)
    - Policy now respects the "node.link-group" property, which
      fixes issues with filter-chain and other virtual sources &
      sinks (#47)
    - Access policy now grants full permissions to flatpak
      "Manager" apps (#59)
    * Policy:
    - Added support for 'no-dsp' mode, which allows streaming audio
      using the format of the device instead of the standard float
      32-bit planar format (!225)
    * Library:
    - WpImplMetadata is now implemented using pw_impl_metadata
      instead of using its own implementation (#52)
    - Added support for custom object property IDs in WpSpaPod
      (#53)
    * Misc:
    - Added a script to load the libcamera monitor (!231)
    - Added option to disable building unit tests (!209)
    - WirePlumber will now fail to start with a warning if
      pipewire-media-session is also running in the system (#56)
    - The bluez monitor configuration was updated to match the
      latest one in pipewire-media-session (!224)
  - Update to version 0.4.2:
    * Highlights:
    - Requires PipeWire 0.3.32 or later at runtime
    - Configuration files are now installed in
      $PREFIX/share/wireplumber, along with scripts, following the
      paradigm of PipeWire
    - State files are now stored in $XDG_STATE_HOME instead of
      $XDG_CONFIG_HOME
    - Added new file-monitor-api module, which allows Lua scripts
      to watch the filesystem for changes, using inotify
    - Added monitor for MIDI devices
    - Added a system-lua-version meson option that allows
      distributors to choose which Lua version to build against
      (auto, 5.3 or 5.4)
    - wpipc has been removed and split out to a separate project,
      https://git.automotivelinux.org/src/pipewire-ic-ipc/
    * Library:
    - A new WpImplModule class has been added; this allows loading
      a PipeWire module in the WirePlumber process space, keeping a
      handle that can be used to unload that module later. This is
      useful for loading filters, network sources/sinks, etc...
    - State files can now store keys that contain certain
      GKeyFile-reserved characters, such as [, ], = and space; this
      fixes storing stream volume state for streams using
      PipeWire's ALSA compatibility PCM plugin
    - WpProperties now uses a boxed WpPropertiesItem type in its
      iterators so that these iterators can be used with g-i
      bindings
    - Added API to lookup configuration and script files from
      multiple places in the filesystem
    * Lua:
    - A LocalModule API has been added to reflect the functionality
      offered by WpImplModule in C
    - The Node API now has a complete set of methods to reflect the
      methods of WpNode
    - Added Port.get_direction()
    - Added not-equals to the possible constraint verbs
    - Debug.dump_table now sorts keys before printing the table
    * Misc:
    - Tests no longer accidentally create files in $HOME; all
      transient files that are used for testing are now created
      in the build directory, except for sockets which are created
      in /tmp due to the 108-character limitation in socket paths
    - Tests that require optional SPA plugins are now skipped if
      those SPA plugins are not installed
    - Added a nice summary output at the end of meson configuration
    - Documented the Lua ObjectManager / Interest / Constraint APIs
    - Fixed some memory leaks
* Wed Jul 14 2021 Antonio Larrosa <[email protected]>
  - Remove the Conflicts: pipewire-session-manager. There's no
    problem in having both installed at the same time, they just
    can't run at the same time.
* Wed Jul 14 2021 Antonio Larrosa <[email protected]>
  - Add `Provides: pipewire-session-manager` so wireplumber is
    recognized as a pipewire session manager implementation.
  - Add `Conflicts: pipewire-session-manager` so no other session
    manager is installed at the same time.
* Tue Jul 13 2021 Antonio Larrosa <[email protected]>
  - Update to version 0.4.1:
    * Highlights:
      + WirePlumber now supports Lua 5.4. You may compile it either
      with Lua 5.3 or 5.4, without any changes in behavior. The
      internal Lua subproject has also been upgraded to Lua 5.4, so
      any builds with -Dsystem-lua=false will use Lua 5.4 by
      default
    * Fixes:
      + Fixed filtering of pw_metadata objects, which broke with
      PipeWire 0.3.31
      + Fixed a potential livelock condition in
      si-audio-adapter/endpoint where the code would wait forever
      for a node's ports to appear in the graph
      + Fixed granting access to camera device nodes in flatpak
      clients connecting through the camera portal
      + Fixed a lot of issues found by the coverity static analyzer
      + Fixed certain race conditions in the wpipc library
      + Fixed compilation with GCC older than v8.1
    * Scripts:
      + Added a policy script that matches nodes to specific devices
      based on the "media.role" of the nodes and the
      "device.intended-roles" of the devices
    * Build system:
      + Bumped GLib requirement to 2.62, as the code was already
      using 2.62 API
      + Added support for building WirePlumber as a PipeWire
      subproject
      + Doxygen version requirement has been relaxed to accept v1.8
      + The CI now also verifies that the build works on
      Ubuntu 20.04 LTS and tries multiple builds with different
      build options
* Thu Jun 24 2021 [email protected]
  - Update to version 0.4.0:
    * release 0.4.0
    * create-item: handle all kinds of Audio/Video & Stream nodes
    * si-standard-link: treat endpoints as devices when linking
      stream<->endpoint
    * config: document the duck.level policy property
    * scripts: change debug level for some messages
    * lua: improve the object:activate() callback to report errors
    * wplua: add a wplua_checkclosure() helper function
    * Revert "tests: enable G_SLICE=debug-blocks in all tests"
    * meson: add '--keep-debuginfo=yes' to the valgrind command line
    * pipewire-object: change params-changed signal to take a string
      param name
    * tests: enable G_SLICE=debug-blocks in all tests
    * meson: use environment() objects to define env for tests
    * meson: add a test setup to run tests under valgrind
    * daemon/wpexec: standardize exit codes based on sysexits.h
    * daemon: replace the exit_message with direct message printouts
    * wpexec: force the log level to be at least 1 and use fprintf()
      for local errors
    * daemon: exit with 0 both in case of a signal and in case of
      disconnection
    * tests: si-standard-link: remove unneeded core syncs
    * tests: common: make sure no events are pending before
      destroying core
    * lib: add struct paddings to be able to maintain ABI
      compatibility
    * docs: set breathe_default_members to get struct members to show
      up in the docs
    * docs: remove :project: annotations for breathe
    * pw-object-mixin: ignore set param on already destroyed objects
    * proxy: destroy pw_proxy if bind_error is called
    * restore-stream: implement storing/restoring of target.node
      metadata
    * lua: implement metadata:set()
    * lua: fix refcounting of metadata iterator
    * wplua: fix memleak when converting GVariant to Lua
    * m-default-nodes-api: free default nodes when disabling plugin
    * m-default-nodes: free default nodes when disabling plugin
    * global-proxy: fix leak when getting global properties
    * spa-pod: check if pod is valid before _parser_can_collect
    * lua: remove hack around WpObjectInterest since we can _ref()
      it now
    * object-interest: remove unused _copy() method
    * default-routes: use a constraint to check if device.name is
      present
    * default-routes: fix storing dev_info
    * scripts: initial restore-stream implementation
    * object-manager: small doc fix
    * object-manager: support declaring interest on all properties of
      globals
    * object-interest: enrich _matches_full() to be able to check all
      constraints
    * si-adapter: handle autoconnect property
    * si-adapter: handle dont-remix streams
    * tests: store temporary WpState files in the build directory
    * state: remove support for groups and propagate save errors
    * state: don't stat() before creating the dir or removing the
      state file
    * policy: don't crash if some node properties are not set
    * pipewire-object: fix memory leaks when getting properties
    * m-default-profiles: finalize parent when plugin is destroyed
    * si-adapter: take ownership of format argument
    * endpoint: free media_class when disposing WpImplEndpoint
    * pipewire-object: take ownership of param argument
    * monitors: sanitize device names like media-session does
    * object: advance pending transitions if activation fails
    * modules: remove the old m-default-routes
    * m-device-activation: don't set device routes
    * default-routes: re-implement the default-routes module in lua
    * docs: Write gtk-doc comments for constant variables
    * docs: include wp.h in gir sources
    * docs: Add brief descriptions to all functions
    * policy: destroy node if defined target was not found and
      reconnect is false
    * global-proxy: make sure registry is valid before requesting
      destroy
    * lua: don't crash if an iterator is NULL
    * lua: allow the Log api to debug boxed objects (useful for pods)
    * lua: fix PipewireObject api: s/set_params/set_param/ and
      cleanup
    * lua: add WpState bindings
    * object: use weakref when advancing current transition
    * object: use destroy notify to keep self alive while advancing
      transitions
    * docs: make progress on lua api documentation
    * policy-{node,endpoint-client}: do not crash if media.class is
      nil
    * meson: add reference to bugfix
    * config: disable role-based endpoints in the default
      configuration
    * tests: si-audio-adapter: test is.device property
    * m-si-standard-link: fix number of links check
    * tests: si-standard-link: fix racy test
    * meson: force the gir target to depend on wp-gtkdoc.h
    * docs: tidy up most documents and try to update the information
      in them
    * docs: use the default sidebar color to make the version easier
      to read
    * docs: show version number on the sidebar
    * release 0.3.96
    * Makefile: use wp-uninstalled.sh to implement the run target
    * gitignore: remove obsolete entry
    * editorconfig: remove obsolete entry and add python script rules
    * LICENSE: update copyright years
    * docs: convert NEWS to rst and add it in the generated docs
    * docs: update installing-wireplumber page
    * ci: bump distribution tag date to the actual branch merge day
    * gir: fix generate_gir()
    * docs: convert lua api docs to pure rst
    * docs: fix gobject-introspection data generation
    * ci: update fdo template, fedora image and dependencies for docs
    * docs: improve the home page and toc; use README.rst as a base;
      add badges
    * docs: fix C API documentation to work nicely with doxygen &
      sphinx
    * docs: meson: rebuild docs when Doxyfile.in changes
    * docs: setup sphinx to use the graphviz extension
    * docs: improve the visual appearence of the generated html and
      cleanup
    * docs: reorganize .rst files and add tables of contents for the
      APIs
    * meson: refactor docs + gi build system
    * docs: build gobject introspection from xml files generated by Doxygen
    * ci: replace hotdoc with Doxygen, Sphinx and Breathe tools
    * docs: Add Lua API documentation
    * docs: api: Replace hotdoc specific commands with Doxygen
      specific commands
    * docs: Replace hotdoc with Doxygen & Sphinx to generate
      documentation
    * pipewire-object-mixin: fix memleak in GList
    * policy-endpoint-device: wait until previous links are activated
    * m-si-standard-link: remove unused manage.lifetime configuration
      property
    * tests: enable si-standard-link test and port it to new API
    * wplua: ref closure before invalidating it
    * wpctl: fix iterator cleanup
    * endpoint: remove wp_endpoint_create_link()
    * scripts: remove static-sessions
    * wp: remove WpSession and WpEndpointLink
    * policy: don't link endpoints on startup
    * m-default-nodes: check if node is valid before returning bound
      id
    * policy: reevaluate all linkables if one linkable was removed
    * m-default-routes: log error message when failed to get current
      routes
    * m-default-profile: log error message when failed to get current
      profile
    * m-mixer-api: make sure the enum param iterator is valid
    * pipewire-object-mixin: make sure enum params task is only
      triggered once
    * modules: steal the format_task before returning it
    * systemd: Add conflicts with pipewire-media-session
    * proxy: don't accept NULL pw_proxy in set_pw_proxy API
    * m-device-activation: use sync API to enum available profiles
    * m-default-routes: use sync API to enum available routes
    * m-default-profile: use sync API to enum available profiles
    * global-proxy: delay object creation until bound feature is
      requested
    * alsa-monitor: activate BOUND feature in JACK device
    * tests: proxy: add a test for enum_params errors
    * proxy: relax proxy error warning messages
    * pw-object-mixin: watch for proxy errors during enum_params
    * proxy: add a "bind" watch, to watch for proxy errors while
      binding/exporting
    * proxy: add error signal
    * policy: fix removing of item links when linkable is removed
    * tests: spa-pod: fix int64 constant to work on all architectures
    * global-proxy: destroy the global when proxy is destroyed
    * global-proxy: inherit from WpProxy when declaring class
    * spa-pod: respect the SPA size for long and int APIs
    * si-standard-link: configure the format in WpSiAdapters before
      linking
    * modules: implement WpSiAdapter in si-audio-adapter and
      si-audio-endpoint
    * si-interfaces: add WpSiAdapter interface to set and get session
      item fortmat
    * session-item: add _get_property API
    * si-audio-adapter: remove unneeded 'preferred.n.channels'
      property
    * si-standard-link: make sure create_links creates at least 1
      link
    * modules: remove role and priority properties from
      si-audio-adapter and si-node
    * si-interfaces: rename WpSiPortInfo to WpSiLinkable
    * scripts: cleaned and improved policy scripts
    * create-item.lua: always enable monitor ports by default
    * modules: remove 'monitor' port context from si-audio-adapter
      and si-node
    * release 0.3.95
    * meson: depend on pipewire 0.3.26
    * config: bluez: update to match media-session's
      bluez-monitor.conf
    * lua: rename Plugin() to Plugin.find()
    * session-item: remove undefined API
    * wp: remove WpSessionBin
    * wp: rename debug.{h,c} to log.{h,c}
    * config: disable ipc module by default and move it to the main
      instance
    * wpipc: place sockets in the same runtime directory as pipewire
    * m-ipc: cleanup server using g_clear_pointer() for consistency
      and safety
    * wpipc: remove socket files after shutdown of the server
    * meson: generate and install pkg-config file for wpipc
    * meson: find threads_dep early and also use it in the
      wpipc-client
    * wpipc: use proper api & so versions
    * meson: replace join_paths() with operator /
    * meson: remove audiofade pipewire branch check
    * meson: make wpipc optional and disabled by default
    * policy-node: accept node names or paths in a stream's
      node.target property
    * policy-endpoint-client-links.lua: consider 'suspend.playback'
      metadata
    * modules: add ipc module
    * lib: add wpipc library
    * config: unify config and config-split
    * systemd: add templated systemd unit files
    * policy-endpoint: implement volume ducking
    * m-mixer-api: track monitorVolumes and allow modifying them
    * access: add a more generic "default" access policy script
    * config: add an example of split-instance configuration
    * Add a wp-uninstalled.sh script for easily running programs
      uninstalled
    * lua: remove the ability to specify spa_libs in the lua config
    * daemon: init export core in the daemon and share it with
      modules
    * lua: change the "wireplumber.interactive" property to
      "wireplumber.daemon"
    * daemon: Use a pipewire-style config file to load initial
      configuration
    * core: use log.level from the pw_context
    * log: factor out the log level configuration into
      wp_log_level_set()
    * audio-endpoint: configure adapter for null sink with
      monitor.channel-volumes
    * impl-node: implement WpPipewireObject
    * device: debug and enhance spa device event handling
    * config: policy: improve the endpoints & roles example config
    * policy-endpoint-client: remove handling of move & follow and
      endpoint priorities
    * meson: bump version to 0.3.70
    * m-mixer-api: allow calling the action signals even when the
      plugin is not enabled
    * m-default-nodes-api: remove reduntant call to g_clear_object
    * wplua: store closures only with a weak reference
    * examples: add example script to get the default sink's volume
    * scripts: add policy for links between clients and endpoints
    * lua: add WpObject get_active/supported_features() bindings
    * lua: add g_get_real/monotonic_time() bindings
    * si-audio-endpoint: give better descriptions to endpoints and
      their null sinks
    * static-endpoints: avoid capturing session item reference in
      the activate closure
    * policy: export endpoints, do not export endpoint links
    * wpctl: handle endpoints nicely and enable volume controls on
      them
    * tools: split wireplumber script execution mode to a separate
      wpexec tool
    * tools: move under the 'src' directory
    * src: scripts: rename policy-endpoint.lua to
      policy-endpoint-client.lua
    * m-audio-endpoint: remove target property
    * static-endpoints.lua: don't export endpoints, only activate
      them
    * m-mixer-api: add configurable support for the cubic volume
      scale
    * wpctl: use mixer & default-nodes API modules
    * m-mixer-api: also add channel-independent volume for ease of
      use
    * wpctl: remove obsolete default node/endpoint key macros
    * m-mixer-api: fix getting volume info from nodes that don't
      have volumeBase & step
    * lua: add a Debug.dump_table() utility function
    * m-default-nodes-api: load all information before declaring the
      plugin as "enabled"
    * lua: add a Core.require_api() utility function
    * modules: add module-mixer-api
    * src: config: do not create endpoints by default
    * src: scripts: add policy-endpoint.lua script
    * policy-node.lua: do not handle items with media role if
      endpoints exist
    * policy-node.lua: clean up findTarget function
    * src: scripts: add static-endpoints.lua script
    * modules: remove unneeded si-audio-convert module
    * src: config: rename session-item support to default-policy
    * create-item.lua: only create items for client and device
      nodes
    * policy-item.lua: only handle si-audio-adapter and si-nodes
      links
    * src: scripts: remove unneeded policy-endpoint.lua
    * m-lua-scripting: add object manager get_n_objects API
    * si-audio-endpoint: deactivate node when disabling active
      feature
    * m-si-audio-endpoint: fix port configuration and target
      linking
    * m-si-audio-endpoint: make target property optional
    * tests: si-standard-link: sync core before finishing
    * si-standard-link: call parent class finalize once finalized
    * m-si-standard-link: properly set in item port context when
      configuring
    * policy-node.lua: fix param name typo when finding target
    * policy-node: properly remove links between apps and capture
      devices
    * endpoint: remove useless pw_proxy_destroyed handlers
    * registry: fix issues with dangling WpGlobal objects causing
      assertion failures
    * modules: use dots instead of dashes for session item properties
    * wpctl: status: print nodes, ports, links grouped more nicely
    * registry: fix odd assertion failures that occured from time to
      time
    * policy-node.lua: support config.move and config.follow
    * m-si-audio-adapter: abort activation if node feature ports is
      no longer enabled
    * m-si-standard-link: make sure in/out items are valid before
      activating
    * wpctl: fix setting default nodes
    * m-default-nodes: restore configured values on the metadata at
      startup
    * policy-node: use default-nodes-api plugin
    * modules: add new module-default-nodes-api
    * m-default-nodes: move common code to a new header
    * m-default-nodes: add properties to control storage method and
      interval
    * modules: rename default-metadata to default-nodes and enable it
      always in the config
    * m-default-metadata: remove default endpoints, follow upstream
      logic
    * policy-node.lua: fix type mismatch when comparing session item
      Ids
    * lua: s/Feature.Object.ALL/Features.ALL/
    * bluez config: update based on the latest media-session config
    * m-default-metadata: add support for default audio nodes
    * wpctl: list nodes and allow setting default nodes
    * modules: remove endpoint impl on si-node, si-audio-convert and
      si-audio-adapter
    * tests: si-standard-link: use new si-audio-endpoint
    * modules: add si-audio-endpoint session item
    * src: scripts: add policy-node.lua to link port info session
      items
    * src: config: rename endpoint-support to session-item-support
    * modules: remove si-monitor module
    * src: scripts: add create-item.lua and remove
      create-endpoint.lua
    * m-si-standard-link: set out-item-id and in-item-id properties
    * session-item: add id property
    * m-si-audio-adapter: ensure ports are available before enabling
      active
    * m-lua-scripting: add get_associated_proxy session item Lua API
    * si-interfaces: make WpSiLink work with WpSiPortInfo instead of
      WpSiEndpoint
    * si-interfaces: rename WpSiEndpointAcquisition to
      WpSiAcquisition
    * m-si-standard-link: use a weak reference for in and out
      endpoints
    * m-si-standard-link: fix in-endpoint check when configuring
    * wplua: sort properties after transfering them from lua
    * properties: add wp_properties_sort()
    * monitor-alsa: add api.alsa.card.* properties on nodes
    * bluez5: autoconnect bluetooth stream nodes
    * object: deactivate only the features that were previously
      active
    * bluez5: use api.bluez5.connection-info
    * m-si-convert: rename to si-audio-convert
    * m-si-adapter: rename to si-audio-adapter
    * tests: session-item: add registration test
    * object-interest: add support for session item properties
    * session-item: add _register and _remove API
    * session-item: refactor and inherit from WpObject
    * session-bin: remove unused wp_session_bin_new API
    * lib: make WpImplEndpoint and WpImplEndpointLink public
    * m-si-adapter: rename algorithms to audio-utils
    * m-si-monitor-endpoint: rename to si-monitor
    * m-si-simple-node-endpoint: rename to si-node
    * lib: remove WpEndpointStream API
    * wp_init: set PIPEWIRE_DEBUG
    * spa-device: do not assert if the activation transition fails
    * m-default-routes: return if default routes for a device are
      not found
    * m-default-routes: relax some warning logs to debug
    * m-lua-script: add object_deactivate API
    * m-lua-script: add closure for object_activate API
    * object: add wp_object_activate_closure API
    * ci: use 'disabled' instead of 'false' when configuring pipewire
    * m-lua-scripting: add WpSessionBin add API
    * lib: remove WpConfiguration
    * lib: documentation fixes
    * lua/api: add Link() constructor
    * module-default-routes: store/restore route properties
    * module-device-activation: apply default route on each new
      device
    * modules: add module-default-routes for storing/restoring routes
    * lua/api: default Constraint type always to pw-global
    * object-interest: remove type checks
    * lua/api: simplify & improve session_item_configure
    * lua/api: make the type optional when declaring Interest as a
      function argument
    * lua/api: improve getting optional Interest arguments
* Tue Mar 02 2021 [email protected]
  - Update to version 0.3.60+git.20210301.6c2bfea:
    * scripts: policy-endpoints: add move and follow options
    * m-lua-scripting: add get_n_streams endpoint API
    * m-lua-scripting: add lookup session API
    * examples: add bt-profile-switch example
    * lua/pod: don't crash on parsing objects with unknown keys,
      just ignore them
* Fri Feb 26 2021 [email protected]
  - Update to version 0.3.60+git.20210225.9f50117:
    * lib: remove module.{c,h}
    * meson: fix glib version requirement checks
    * systemd: use the older version of the systemd pkgconfig
      variables
    * systemd: remove RuntimeDirectory from the system service
    * daemon: add systemd unit files
    * m-lua-scripting/pod: retrieve Ids in Array & Choice as
      strings, if possible
    * m-lua-scripting/pod: s/id_type/object_id/ as commented on !125
    * m-lua-scripting: add support for choices when creating object
      pods
    * m-lua-scripting: refactor array and choice pod constructors to
      accept Id names
    * m-lua-scripting: allow constructing pod Ids with the Id name
    * m-lua-scripting: set id_type field when parsing pod objects
    * m-lua-scripting: set pod_type and value_type fieds when parsing
      non-primitive pods
    * m-lua-scripting: start indices from 1 when parsing pods
    * test-endpoint: fix failure with pipewire master
    * config: split flatpak access configuration
    * scripts/access: update access scripts to call
      update_permissions() cleanly
    * lua/api: fix client update_permissions()
    * examples: interactive.lua: add a shebang and update running
      instructions
    * lua: enable loading scripts with a shebang
    * lua/api: log using a debug category unique for the calling
      script file
    * lua/api: ensure the function name in the debug output is
      non-null
    * monitor-alsa: fix node description on strange embedded devices
    * suspend-node: honor "session.suspend-timeout-seconds"
    * monitors: sanitize node descriptions too
    * wplua: table_to_properties: use luaL_tolstring to do string
      conversions
    * config: bluez-monitor: add hfp_hf in the supported roles
      comment
    * m-lua-scripting: add WpPipewireObject api
    * config: move loading of all audio support modules in
      90-enable-audio-all
    * config: split configuration for endpoints support in
      config.lua.d
    * monitors: drop the monitor- prefix from the filenames and
      s/bluez5/bluez/
    * config: make the monitor properties & rules available in global
      tables
    * config: load reserve-device only if alsa.reserve is true
    * monitor-bluez: fix source priority assignment
    * monitors: sanitize node names to match media-session's behavior
    * wplua: gvariant_to_lua: convert dictionary keys to integers if
      possible
    * monitor-alsa: sync logic, properties and configuration with
      media-session
    * wplua: improve GVariant array conversion
    * wplua: improve gvariant <-> lua conversion functions
    * wplua: remove VARDICT handling in gvariant->lua conversion
    * config: mimick media-session's v4l2-monitor.conf
    * monitor-v4l2: copy properties and rules logic from
      media-session
    * config: immitate media-session's bluez-monitor.conf
    * monitor-bluez: copy all properties and the rules functionality
      from media-session
    * lua/config: load split config files in alphanumeric order
    * tests/lua: test monitor configuration rules code
    * lua/api: add wp_object_interest_matches() binding
    * object-interest: allow matching against WpProperties objects
    * scripts: add portal access script
    * scripts: add flatpak access lua script
    * wplua: handle more GVariant cases
    * m-lua-scripting: add WpClient LUA api
    * Revert "meson: relax meson version dependency when building
      with system lua"
    * meson: relax meson version dependency when building with system
      lua
    * lua/pod: optimize push_primitive_values()
    * tests/wplua: set WIREPLUMBER_CONFIG_DIR to an invalid directory
    * lua/pod: simplify spa_pod_object_new()
    * lua/pod: optimize lookups in primitive_lua_type and fix some
      mistakes
    * lua/pod: lookup the object type and values table only once when
      constructing objects
    * lua/pod: convert Id object fields to strings, if possible
    * rename all foo_iterate APIs to foo_new_iterator
    * m-lua-scripting/pod: push pod constructors using luaL_newlib
      instead of manually
    * modules: remove m-node-suspension
    * m-lua-scripting/api: fix om:lookup() to return nil when no
      object was found
    * scripts: add suspend-node.lua to replace m-node-suspension
    * wplua: fix enum <-> lua conversion
    * create-endpoint.lua: fix some issues
    * create-endpoint.lua: fix indentation
    * node: change send_command() to take a string
    * tests: wplua: add pod.lua script to validate pod API
    * tests: wplua: add a script tester to validate lua scripts
    * m-lua-scripting: add WpSpaPod api
    * wplua: fix vtables lookup in boxed __index function
    * examples: add an example interactive lua script
    * m-lua-scripting/api: add wp_object_manager_iterate_filtered()
    * proxy: add a method to query the interface type
    * daemon: add a mode to execute lua scripts from the command line
    * m-lua-scripting/api: add WpCore bindings
    * m-lua-scripting/api: fix access to core in session_item_new()
    * meson: bump version
    * meson: remove C++ support, there's no C++ code anymore
    * monitor-alsa: simplify reserve-device connection logic
    * monitor-alsa: receive script configuration from config.lua
    * scripts: add static-sessions.lua
    * m-lua-scripting/api: add WpImplSession bindings
    * m-lua-scripting: pass component arguments to scripts
    * wplua: pass SANDBOX_CONFIG as a script argument
    * wplua: allow exchanging arguments and results with scripts
    * m-lua-scripting: use wplua_table_to_asv() instead of custom
      function
    * wplua: add GVariant dictionary conversion functions
    * wptoml: remove, it's not used anymore
    * daemon: refactor
    * m-lua-scripting: fixes
    * wp: add wp_get_data_dir()
    * src: move scripts to their own directory, install in
      $prefix/share/
    * object-interest: add a NOT_EQUALS verb
    * m-lua-scripting: allow queuing-in scripts without the plugin
      being activated
    * m-lua-scripting: refactor as a WpComponentLoader
    * wplua: allow loading relative paths from wplua_load_path()
    * wplua: add g_autoptr support to lua_State
    * wplua: add flags to modify the sandbox behavior
    * wp: export functions to get the module & config dirs
    * lib: introduce WpComponentLoader and remove WpModule
    * plugin: inherit from WpObject
    * modules: remove modules that are obsoleted by the lua scripts
    * modules: actually delete module-dbus-reservation.c
    * monitor-alsa: add device reservation logic
    * spa-device: add an "object-removed" signal
    * lua: add wp_plugin_find binding
    * modules: delete the old dbus-reservation module
    * modules: implement a new reserve-device module
    * plugin: add a method to find plugins easily
    * conf: create-endpoint.lua: make sure endpoints always have a
      valid name
    * conf: create-endpoint.lua: use node id as key in session_items
      table
    * meson: add 'system-lua' project option to toggle the bundled
      lua
    * conf: disable legacy endpoint creation module and replace it
      with lua script
    * m-lua-scripting: add session item lua API
    * session-item: add export API with closure
    * session-item: add activate API with closure
    * docs: update daemon/running.md
    * m-lua-scripting: fix reference count in object manager's lookup
      API
    * object-interest: add _ref and _unref APIs
    * config: enable lua scripts, disable legacy modules
    * lua: fix some nasty memory leaks
    * meson: require pipewire 0.3.20
    * spa-device: handle DeviceEvent and configure node props
    * m-lua-scripting: do stop the lua engine on deactivate()
    * main: drop WpConfiguration reference early
    * plugin: debug activation & deactivation
    * wplua: object: unset GValues used when calling action signals
    * config: add lua-based device monitors
    * m-lua-scripting: add bindings required for device monitors
    * impl-node: derive from WpProxy
    * spa-device: derive from WpProxy and manage child objects
      internally
    * m-default-metadata: handle default nodes
    * config: rename desktop profile to desktop-ep
    * spa-pod: add the ability to specify Id properties as strings
    * spa-type: refactor
    * m-lua-scripting: handle default endpoints from the metadata
    * m-config-policy: handle default endpoints from the metadata
    * modules: replace session-settings with default-metadata
    * wpctl: implement set-default using the metadata API
    * meson: fix lua dependency on Arch Linux
    * metadata: refactor API to quickly find a specific value
    * state: use GKeyFile API to keep state in disk
    * wp: remove initialization of wireplumber types
    * session: remove default-endpoint-changed signal
    * spa-type: fix param profile's last Id
    * config: implement the functionality of config-policy in Lua
    * m-lua-scripting: expose session, endpoint, endpoint-link APIs
    * wplua: expose table to/from properties conversion functions
    * object, pw-obj-mixin: fix warnings
    * config: disable audio sink "streams"; they fail on latest
      pipewire
    * Fix compiler warnings that appear with the warning flags
      enabled
    * meson: enable compiler flags for warnings, if supported
    * modules: implement module-lua-scripting
    * wplua: use only the basename of the files for debug/error
      messages
    * wplua: use the error handler also when loading chunks
    * wplua: implement __tostring for GObject
    * wplua: use the registry to store vtables & closures
    * wplua: remove TypeClass, push constructors as ClassName_new
    * wplua: allow checking for a specific GType with
      isobject/isboxed
    * configuration: convert file paths from relative to absolute if
      necessary
    * configuration: implement grouping files in subdirectories
    * wplua: add proper GError domain & error codes
    * wplua: implement sandboxing of scripts
    * wplua: convert WpProperties to table and vice versa
    * wplua: new simple engine to integrate GObject with Lua
    * meson: add dependency on lua 5.3
    * tools: port wpctl to the new APIs
    * tests: endpoint: re-enable the params unit test
    * lib: delete WpProps
    * pw-object-mixin: refactor, implement param caching and features
      for impl objects
    * iterator: add version field in the methods struct
    * meson: bump project & API versions
    * spa-pod: make the wrap functions public, remove private.h and
      sort out the rest
    * private: further cleanup of private.h, sort out header includes
    * session-item: move wp_session_item_set_parent() to the public
      header
    * defs: add a new WP_PRIVATE_API function annotation
    * iterator: make private stuff public, cleanup private.h further
    * lib: move WpImplEndpoint* header parts to
      private/impl-endpoint.h
    * m-metadata: add callback for wp_object_activate()
    * src: port daemon to the new APIs
    * modules: port modules and their tests to the new proxy APIs
    * object-manager: recursively store requested features on
      children
    * impl-endpoint{,-stream}: disable FEATURE_PROPS temporarily
    * tests: fix library unit tests
    * lib: refactor WpProxy
    * lib: add new proxy-interfaces: interfaces for the refactored
      WpProxy class
    * lib/private: move the registry & global APIs to a separate
      header
    * lib: add new WpObject base class

Files

/usr/include/wireplumber-0.5
/usr/include/wireplumber-0.5/wp
/usr/include/wireplumber-0.5/wp/base-dirs.h
/usr/include/wireplumber-0.5/wp/client.h
/usr/include/wireplumber-0.5/wp/component-loader.h
/usr/include/wireplumber-0.5/wp/conf.h
/usr/include/wireplumber-0.5/wp/core.h
/usr/include/wireplumber-0.5/wp/defs.h
/usr/include/wireplumber-0.5/wp/device.h
/usr/include/wireplumber-0.5/wp/error.h
/usr/include/wireplumber-0.5/wp/event-dispatcher.h
/usr/include/wireplumber-0.5/wp/event-hook.h
/usr/include/wireplumber-0.5/wp/event.h
/usr/include/wireplumber-0.5/wp/factory.h
/usr/include/wireplumber-0.5/wp/global-proxy.h
/usr/include/wireplumber-0.5/wp/iterator.h
/usr/include/wireplumber-0.5/wp/json-utils.h
/usr/include/wireplumber-0.5/wp/link.h
/usr/include/wireplumber-0.5/wp/log.h
/usr/include/wireplumber-0.5/wp/metadata.h
/usr/include/wireplumber-0.5/wp/module.h
/usr/include/wireplumber-0.5/wp/node.h
/usr/include/wireplumber-0.5/wp/object-interest.h
/usr/include/wireplumber-0.5/wp/object-manager.h
/usr/include/wireplumber-0.5/wp/object.h
/usr/include/wireplumber-0.5/wp/plugin.h
/usr/include/wireplumber-0.5/wp/port.h
/usr/include/wireplumber-0.5/wp/properties.h
/usr/include/wireplumber-0.5/wp/proxy-interfaces.h
/usr/include/wireplumber-0.5/wp/proxy.h
/usr/include/wireplumber-0.5/wp/session-item.h
/usr/include/wireplumber-0.5/wp/settings.h
/usr/include/wireplumber-0.5/wp/si-factory.h
/usr/include/wireplumber-0.5/wp/si-interfaces.h
/usr/include/wireplumber-0.5/wp/spa-json.h
/usr/include/wireplumber-0.5/wp/spa-pod.h
/usr/include/wireplumber-0.5/wp/spa-type.h
/usr/include/wireplumber-0.5/wp/state.h
/usr/include/wireplumber-0.5/wp/transition.h
/usr/include/wireplumber-0.5/wp/wp.h
/usr/include/wireplumber-0.5/wp/wpenums.h
/usr/include/wireplumber-0.5/wp/wpversion.h
/usr/lib/libwireplumber-0.5.so
/usr/lib/pkgconfig/wireplumber-0.5.pc
/usr/share/gir-1.0/Wp-0.5.gir


Generated by rpm2html 1.8.1

Fabrice Bellet, Mon Dec 9 23:31:48 2024