summaryrefslogtreecommitdiff
path: root/Software
diff options
context:
space:
mode:
Diffstat (limited to 'Software')
-rw-r--r--Software/DBusBindings.mdwn6
-rw-r--r--Software/Flatpak.mdwn3
-rw-r--r--Software/PulseAudio.mdwn15
-rw-r--r--Software/PulseAudio/BugReports.mdwn12
-rw-r--r--Software/PulseAudio/Documentation/Developer.mdwn2
-rw-r--r--Software/PulseAudio/Documentation/Developer/CodingStyle.mdwn25
-rw-r--r--Software/PulseAudio/Documentation/Files.mdwn2
-rw-r--r--Software/PulseAudio/Documentation/Maintainer.mdwn34
-rw-r--r--Software/PulseAudio/Documentation/User/Community.mdwn4
-rw-r--r--Software/PulseAudio/Documentation/User/Modules.mdwn2
-rw-r--r--Software/PulseAudio/FAQ.mdwn10
-rw-r--r--Software/PulseAudio/Notes/15.0.mdwn2
-rw-r--r--Software/PulseAudio/Notes/16.0.mdwn451
-rw-r--r--Software/PulseAudio/Notes/17.0.mdwn324
-rw-r--r--Software/PulseAudio/PatchStatus.mdwn173
-rw-r--r--Software/XKeyboardConfig.mdwn16
-rw-r--r--Software/cups-pk-helper.mdwn13
-rw-r--r--Software/dbus.mdwn10
-rw-r--r--Software/desktop-file-utils.mdwn4
-rw-r--r--Software/fontconfig.mdwn6
-rw-r--r--Software/icon-theme.mdwn2
-rw-r--r--Software/libevdev.mdwn5
-rw-r--r--Software/libinput.mdwn15
-rw-r--r--Software/libspectre.mdwn7
-rw-r--r--Software/systemd.mdwn163
-rw-r--r--Software/systemd/APIFileSystems.mdwn14
-rw-r--r--Software/systemd/Backports.mdwn14
-rw-r--r--Software/systemd/ControlGroupInterface.mdwn15
-rw-r--r--Software/systemd/DaemonSocketActivation.mdwn16
-rw-r--r--Software/systemd/Debugging.mdwn17
-rw-r--r--Software/systemd/FileHierarchy.mdwn15
-rw-r--r--Software/systemd/FrequentlyAskedQuestions.mdwn15
-rw-r--r--Software/systemd/Incompatibilities.mdwn14
-rw-r--r--Software/systemd/MinimalBuilds.mdwn16
-rw-r--r--Software/systemd/MyServiceCantGetRealtime.mdwn15
-rw-r--r--Software/systemd/NetworkTarget.mdwn15
-rw-r--r--Software/systemd/Optimizations.mdwn15
-rw-r--r--Software/systemd/Preset.mdwn15
-rw-r--r--Software/systemd/TheCaseForTheUsrMerge.mdwn15
-rw-r--r--Software/systemd/TipsAndTricks.mdwn13
-rw-r--r--Software/systemd/VirtualizedTesting.mdwn15
-rw-r--r--Software/systemd/autopkgtest.mdwn18
-rw-r--r--Software/systemd/catalog.mdwn14
-rw-r--r--Software/systemd/export.mdwn2
-rw-r--r--Software/systemd/inhibit.mdwn15
-rw-r--r--Software/systemd/json.mdwn6
-rw-r--r--Software/systemd/separate-usr-is-broken.mdwn15
-rw-r--r--Software/systemd/syslog.mdwn14
-rw-r--r--Software/systemd/systemd-boot.mdwn14
-rw-r--r--Software/systemd/writing-desktop-environments.mdwn16
-rw-r--r--Software/systemd/writing-display-managers.mdwn15
-rw-r--r--Software/systemd/writing-network-configuration-managers.mdwn15
-rw-r--r--Software/systemd/writing-resolver-clients.mdwn15
-rw-r--r--Software/systemd/writing-vm-managers.mdwn15
-rw-r--r--Software/uchardet.mdwn86
-rw-r--r--Software/xdg-user-dirs.mdwn4
-rw-r--r--Software/xdg-utils.mdwn2
-rw-r--r--Software/xrestop.mdwn1
58 files changed, 1655 insertions, 157 deletions
diff --git a/Software/DBusBindings.mdwn b/Software/DBusBindings.mdwn
index 25dc1ff7..6cea8fb3 100644
--- a/Software/DBusBindings.mdwn
+++ b/Software/DBusBindings.mdwn
@@ -77,6 +77,12 @@ A C++17 binding for systemd's sd-bus.
* Github: [[https://github.com/LEW21/pydbus]]
+### python-sdbus
+
+[[python-sdbus|https://github.com/python-sdbus/python-sdbus]] is a another modern python library for D-Bus.
+
+* Github: [[https://github.com/python-sdbus/python-sdbus]]
+
### GDBus
GDBus, the D-Bus implementation in GLib, can be used from Python 2 or 3 via [[PyGI|https://wiki.gnome.org/Projects/PyGObject]].
diff --git a/Software/Flatpak.mdwn b/Software/Flatpak.mdwn
index 87e801b8..d4440421 100644
--- a/Software/Flatpak.mdwn
+++ b/Software/Flatpak.mdwn
@@ -13,7 +13,8 @@ same desktop environment.
* Website: <http://flatpak.org>
* Mailing list: <http://lists.freedesktop.org/mailman/listinfo/xdg-app>
-* IRC: [#flatpak on freenode](irc://chat.freenode.net/flatpak) or [#gnome-os on GimpNet](irc://irc.gimp.org/gnome-os)
+* Official/Preferred Matrix Chat: [#flatpak:matrix.org](https://matrix.to/#/#flatpak:matrix.org)
+* Unofficial/Legacy IRC: [#flatpak](https://web.libera.chat/#flatpak) on [Libera](https://libera.chat/)
* Bugzilla: <https://bugs.freedesktop.org/> (product Flatpak)
* GNOME wiki page with more information: <https://wiki.gnome.org/Projects/SandboxedApps>
* Releases: <http://www.freedesktop.org/software/xdg-app/releases>
diff --git a/Software/PulseAudio.mdwn b/Software/PulseAudio.mdwn
index bc18142f..5ae10d86 100644
--- a/Software/PulseAudio.mdwn
+++ b/Software/PulseAudio.mdwn
@@ -24,12 +24,25 @@ Though PulseAudio was designed for Linux systems, it has also been ported by *in
PulseAudio is a large project maintained by a small yet passionate group of volunteers! Our development team currently consists of three individuals who maintain the code-base in our free time! (This probably amounts to less than one full time developer.) Important bug reports and patch submissions are often handled more slowly than we would like. For this reason, we are actively seeking additional members of our team!
-If you are interested in becoming a maintainer yourself, please contact us! Visit our [[Community|https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/]] page for places you can find us, or send email directly to Tanu Kaskinen (tanuk@iki.fi), Arun Raghavan (arun@arunraghavan.net) and/or Georg Chini (georg@chini.tk).
+If you are interested in becoming a maintainer yourself, please contact us! Visit our [[Community|https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Community/]] page for places you can find us, or send email directly to Arun Raghavan (arun@arunraghavan.net) and/or Georg Chini (georg@chini.tk).
[[Old News|Software/PulseAudio/OldNews]]
<hr>
## Release Log
+### January 2024
+
+* **2024-01-12**: [[PulseAudio 17.0|https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-17.0.tar.xz]] has been released.
+([[Changes|https://lists.freedesktop.org/archives/pulseaudio-discuss/2024-January/032426.html]])
+
+### June 2022
+* **2022-06-22**: [[PulseAudio 16.1|https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-16.1.tar.xz]] has been released.
+([[Changes|https://lists.freedesktop.org/archives/pulseaudio-discuss/2022-June/032287.html]])
+
+### May 2022
+* **2022-05-28**: [[PulseAudio 16.0|https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-16.0.tar.xz]] has been released.
+([[Changes|https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/16.0/]])
+
### Jul 2021
* **2021-07-27**: [[PulseAudio 15.0|https://www.freedesktop.org/software/pulseaudio/releases/pulseaudio-15.0.tar.xz]] has been released.
([[Changes|https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/15.0/]])
diff --git a/Software/PulseAudio/BugReports.mdwn b/Software/PulseAudio/BugReports.mdwn
index 4a335ec6..8d51f282 100644
--- a/Software/PulseAudio/BugReports.mdwn
+++ b/Software/PulseAudio/BugReports.mdwn
@@ -10,15 +10,15 @@
There might be a chance the bug you want to report is not actually a bug. Please check this list of **[[canned responses|/Software/PulseAudio/Documentation/User/CannedResponses]]** before filing a report. If you don't, you might find your issue quickly closed and referenced to one of the items on that list.
+Bug reports should be submitted on [[the Gitlab issue tracker|https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues]].
+
**Important:** If you are encountering a **crash**, please make sure to provide a **[[stack trace|https://en.wikipedia.org/wiki/Stack_trace]]** when you file your report. Doing so requires installing "debug symbols" for PulseAudio and its libraries. Documentation for installing debug symbols is usually provided by your distro.
**Important:** If you are using **Ubuntu** [[please read this before filing a bug|https://wiki.ubuntu.com/DebuggingSoundProblems]].
* [[Fedora StackTraces Instructions|http://fedoraproject.org/wiki/StackTraces]]
* [[Ubuntu Backtrace Instructions|https://wiki.ubuntu.com/Backtrace]]
-* [[Arch Linux Debug Instructions|https://wiki.archlinux.org/title/Debug_-_Getting_Traces]]
-
-**Note:** Arch Linux does not have a simple way to install debug symbols, but you can install the **pulseaudio-git** and **libpulse-git** packages from heftig's repo, instructions [[here|https://bbs.archlinux.org/viewtopic.php?id=117157]]. Those replace the "official" pulseaudio packages with ones that include the very newest code from upstream, and the packages happen to include the debug symbols in them.
+* [[Arch Linux Debug Instructions|https://wiki.archlinux.org/title/Debug_-_Getting_Traces]] (it's rumoured that there's nowadays enough magic in place so that just running `gdb pulseaudio` on any Arch machine should get the debug symbols installed)
Also, make sure to include the verbose output of PA when this problem happens.
@@ -68,10 +68,12 @@ Before posting a bug report you might want to check [[this list of broken ALSA s
If you have an issue with PulseAudio's **mixer handling**, [[read this first|Software/PulseAudio/Documentation/User/PulseAudioStoleMyVolumes]]. If you have an issue with **memory consumption** [[read this first|Software/PulseAudio/Documentation/User/MemoryConsumption]]. If you feel that that PA doesn't honour your **default device** choices, [[read this first|Software/PulseAudio/Documentation/User/DefaultDevice]]. Other **canned responses** [[you find in this list|CannedResponses]].
+<hr>
+# Submitting patches
+
**Patches** are preferably submitted as a [[Gitlab Merge Request|https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests]] (this is equivalent to Pull Requests on Github, if you are familiar with those. If not, refer to the [[Gitlab documentation|https://docs.gitlab.com/ee/gitlab-basics/add-merge-request.html]]. Before submitting patches please read through our [[coding style guidelines|Software/PulseAudio/Documentation/Developer/CodingStyle]].
-<hr>
-# Patch Review Status
+## Patch Review Status
We track the submitted patches [[here|https://www.freedesktop.org/wiki/Software/PulseAudio/PatchStatus/]]. That page is updated every two weeks. If you have submitted a patch, and you're waiting for someone to review it, it should be listed on that page (within two weeks). If it's not, then we have missed your patch, in which case please contact the maintainers (for example by sending a mail to the mailing list).
diff --git a/Software/PulseAudio/Documentation/Developer.mdwn b/Software/PulseAudio/Documentation/Developer.mdwn
index 83ad7768..60611e85 100644
--- a/Software/PulseAudio/Documentation/Developer.mdwn
+++ b/Software/PulseAudio/Documentation/Developer.mdwn
@@ -6,7 +6,7 @@
## Developing Clients
-You may browse the [[Doxygen|http://www.doxygen.org/]] generated [[programming documentation|http://freedesktop.org/software/pulseaudio/doxygen/]] for the client API. (Run make doxygen to generate this documentation from the source tree).
+You may browse the [[programming documentation|http://freedesktop.org/software/pulseaudio/doxygen/]] for the client API. (Run `ninja -C build doxygen` to generate this documentation from the source tree).
If you want to write a volume control application, [[make sure to read this|Software/PulseAudio/Documentation/Developer/Clients/WritingVolumeControlUIs]].
diff --git a/Software/PulseAudio/Documentation/Developer/CodingStyle.mdwn b/Software/PulseAudio/Documentation/Developer/CodingStyle.mdwn
index 9ca2755e..b0fa0cdb 100644
--- a/Software/PulseAudio/Documentation/Developer/CodingStyle.mdwn
+++ b/Software/PulseAudio/Documentation/Developer/CodingStyle.mdwn
@@ -32,7 +32,7 @@ Please follow the following rough rules when submitting code for inclusion in PA
}
}
-* Avoid unnecessary curly braces. Good code:
+* Avoid unnecessary curly braces on one-line code blocks. Good code:
if (!braces_needed)
printf("This is compact and neat.\n");
@@ -43,6 +43,29 @@ Please follow the following rough rules when submitting code for inclusion in PA
printf("This is superfluous and noisy.\n");
}
+ This applies also if only one of the if-else branches have an one-line code block. Good code:
+
+ if (!braces_needed)
+ printf("This is compact and neat.\n");
+ else {
+ printf("Hello World!\n");
+ a = 0;
+ }
+
+ However, braces are welcome if there are multiple lines in a code block, even if the braces aren't technically necessary. Good code:
+
+ if (a) {
+ /* Imagine this comment explains something about using do_something(). */
+ do_something(a);
+ }
+
+ Also good code:
+
+ if (a) {
+ do_something(a, "This function call is split to two lines, because it's long. Other reasons: %s and %s",
+ one_reason, another_reason);
+ }
+
* Don't put the return type of a function on a separate line. This is good:
int good_function(void) {
diff --git a/Software/PulseAudio/Documentation/Files.mdwn b/Software/PulseAudio/Documentation/Files.mdwn
index ed40423d..ed48bf00 100644
--- a/Software/PulseAudio/Documentation/Files.mdwn
+++ b/Software/PulseAudio/Documentation/Files.mdwn
@@ -6,7 +6,7 @@ This page describes what files PulseAudio uses. That includes files that are ins
Currently the list of files is very incomplete, because the initial motivation for this page was just to document where the pid file is located. Further information is expected to be added in the future.
-It's possible that this page gets out of date - if you notice information that you suspect is wrong, please notify the PulseAudio developers (you can do that via the mailing list or the IRC channel, or just send a mail to tanuk@iki.fi).
+It's possible that this page gets out of date - if you notice information that you suspect is wrong, please notify the PulseAudio developers (you can do that via the mailing list or the IRC channel).
## The runtime directory
diff --git a/Software/PulseAudio/Documentation/Maintainer.mdwn b/Software/PulseAudio/Documentation/Maintainer.mdwn
index d5c40b70..e5d7a2b1 100644
--- a/Software/PulseAudio/Documentation/Maintainer.mdwn
+++ b/Software/PulseAudio/Documentation/Maintainer.mdwn
@@ -1,4 +1,5 @@
[[!inline pages="Software/PulseAudio/Style1" quick="yes" raw="yes"]]
+[[!meta title="Maintainer – PulseAudio"]]
[[!inline pages="Software/PulseAudio/TOC" quick="yes" raw="yes"]]
# Maintainer documentation
[[!toc levels=2]]
@@ -59,6 +60,8 @@ Git shortlog can be used to generate the contributor list that we add to the ent
---
## Tag the last commit locally (don't make the tag public yet)
+Make sure your `master` is the same `origin/master`! This may not be the case if you have some commits locally that were merged by Marge Bot.
+
Create a signed tag:
git tag -s -m "PulseAudio 4.99.1" v4.99.1 master
@@ -71,31 +74,17 @@ The clean command is needed, because otherwise the tarball will have wrong versi
---
## Generate the tarball
-### pulseaudio & pavucontrol
+### pulseaudio & paprefs
meson dist -C build --formats=gztar,xztar
That will create a .tar.gz file and a .tar.xz file and corresponding checksum files in build/meson-dist.
-### paprefs
-
-paprefs doesn't have "make distcheck" available since it's using Meson. You can generate the tarball with "git archive". First make sure that you have the tar.xz archiver configured:
-
- git config --global tar.tar.xz.command "xz -c"
-
-Here's the actual archive command (some trickery added to avoid repeating the version number):
-
- VERSION=1.0 bash -c "git archive --prefix=paprefs-\$VERSION/ -o paprefs-\$VERSION.tar.xz v\$VERSION"
-
-If the tar.xz archiver isn't properly configured, the command will silently produce a plain tar archive without compression. Check that the file is actually compressed (the command should print "XZ compressed data"):
-
- file paprefs-*.tar.xz
+### pavucontrol
-Checksum generation:
+ make distcheck
- for i in paprefs-*.tar.xz; do \
- sha256sum ${i} > ${i}.sha256; \
- done
+That will create a .tar.gz file and a .tar.xz file as well as .sha256sum files with the corresponding checksums.
---
## Check that all new files are included in the tarball
@@ -123,7 +112,7 @@ Check what files have been added. Are they all included in the tarball?
### paprefs
- scp paprefs-*.tar.* annarchy.freedesktop.org:/srv/www.freedesktop.org/www/software/pulseaudio/paprefs
+ scp build/meson-dist/paprefs-*.tar.* annarchy.freedesktop.org:/srv/www.freedesktop.org/www/software/pulseaudio/paprefs
---
## Push the tag
@@ -158,7 +147,7 @@ Proofreading the release notes at this point is a good idea too.
---
## Update the channel topic in IRC
- /msg ChanServ topic #pulseaudio Stable release: 14.2 || Troubleshooting: https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Users/Troubleshooting/ || The channel is logged: https://freenode.logbot.info/pulseaudio
+ /msg ChanServ set #pulseaudio topic You must be registered to talk | Stable release: 16.1 | Troubleshooting: https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Users/Troubleshooting/
---
## (final release only) Refresh the online Doxygen documentation
@@ -172,4 +161,7 @@ Proofreading the release notes at this point is a good idea too.
Remove the "next" branch afterwards.
---
-## (final release only) Close the old release blocker tracker bug and create another
+## (final release only) Create a release on Gitlab
+
+---
+## (final release only) Close the old release milestone and create another
diff --git a/Software/PulseAudio/Documentation/User/Community.mdwn b/Software/PulseAudio/Documentation/User/Community.mdwn
index 928bb7ed..92006661 100644
--- a/Software/PulseAudio/Documentation/User/Community.mdwn
+++ b/Software/PulseAudio/Documentation/User/Community.mdwn
@@ -11,11 +11,11 @@
* [[PulseAudio GitLab Project Page|https://gitlab.freedesktop.org/pulseaudio/pulseaudio/]]
* [[Issue List|https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues]] (Bug reports)
-[[How to Report a Bug|/Software/PulseAudio/BugReports]]
+[[How to report a bug, submit patches, or improve translations|/Software/PulseAudio/BugReports]]
## IRC and Matrix
-The [[#pulseaudio|irc://irc.oftc.net/pulseaudio]] channel on OFTC is our official IRC channel. Learn how to [[Connect to OFTC|https://www.oftc.net/]] via client, or connect via the [[OFTC WebChat|https://www.oftc.net/WebChat/]]
+The [[#pulseaudio|irc://irc.oftc.net/pulseaudio]] channel on OFTC is our official IRC channel. Learn how to [[Connect to OFTC|https://www.oftc.net/]] via client, or connect via the [[OFTC WebChat|https://www.oftc.net/WebChat/]]. As an anti-spam measure, only people who have [[created an account|https://www.oftc.net/Services/]] on OFTC are allowed to join the channel.
You can also join our official Matrix channel at [[#pulseaudio:matrix.org|https://matrix.to/#/#pulseaudio:matrix.org]].
diff --git a/Software/PulseAudio/Documentation/User/Modules.mdwn b/Software/PulseAudio/Documentation/User/Modules.mdwn
index b303eb1f..b18635fe 100644
--- a/Software/PulseAudio/Documentation/User/Modules.mdwn
+++ b/Software/PulseAudio/Documentation/User/Modules.mdwn
@@ -1512,7 +1512,7 @@ The filtering list is hard-coded, and currently there is only one situation wher
##### adjust_time
-: How often to readjust the sample rates in seconds. Defaults to 10.
+: How often to readjust the sample rates in seconds. Defaults to 1 (PulseAudio versions before 16.0 default to 10).
##### latency_msec
diff --git a/Software/PulseAudio/FAQ.mdwn b/Software/PulseAudio/FAQ.mdwn
index d52c4e75..08a3bd1a 100644
--- a/Software/PulseAudio/FAQ.mdwn
+++ b/Software/PulseAudio/FAQ.mdwn
@@ -235,11 +235,11 @@ _BTW: Someone should package this great tool for Debian!_
## Can I use PulseAudio to playback music on two sound cards simultaneously?
-Yes! Use `module-combine` for that.
+Yes! Use `module-combine-sink` for that.
load-module module-alsa-sink device="front:Intel" sink_name=output0
load-module module-alsa-sink device="front:HDA" sink_name=output1
- load-module module-combine sink_name=combined slaves=output0,output1
+ load-module module-combine-sink sink_name=combined slaves=output0,output1
set-sink-default combined
This will combine the two sinks `output0` and `output1` into a new sink combined. Every sample written to the latter will be forwarded to the former two. PulseAudio will make sure to adjust the sample rate of the slave device in case it deviates from the master device. You can have more than one slave sink attached to the combined sink, and hence combine even three and more sound cards.
@@ -248,13 +248,13 @@ Much fancier is to use the automatic mode. To make use of that simply check the
## Can I use PulseAudio to combine two stereo soundcards into a virtual surround sound card?
-Yes! You can use use `module-combine` for that.
+Yes! You can use use `module-combine-sink` for that.
load-module module-oss-mmap device="/dev/dsp" sink_name=output0 channel_map=left,right channels=2
load-module module-oss-mmap device="/dev/dsp1" sink_name=output1 channel_map=rear-left,rear-right channels=2
- load-module module-combine sink_name=combined master=output0 slaves=output1 channel_map=left,right,rear-left,rear-right channels=4
+ load-module module-combine-sink sink_name=combined slaves=output0,output1 channel_map=left,right,rear-left,rear-right channels=4 remix=no
-This is mostly identical to the previous example. However, this time we manually specify the channel mappings for the sinks to make sure everything is routed correctly.
+This is mostly identical to the previous example. However, this time we manually specify the channel mappings for the sinks to make sure everything is routed correctly, and disable remixing so that the slaves only get the correct subset of the combined channel map. The `remix` flag for `module-combine-sink` is new in PulseAudio 16.0, so this example won't work with older versions.
Please keep in mind that PulseAudio will constantly adjust the sample rate to compensate for the deviating quartzes of the sound devices. This is not perfect, however. Deviations in a range of 1/44100s (or 1/48000s depending on the sampling frequency) can not be compensated. The human ear will decode these deviations as minor movements (less than 1cm) of the positions of the sound sources you hear.
## How can use my Windows box to play the sound from my Linux box?
diff --git a/Software/PulseAudio/Notes/15.0.mdwn b/Software/PulseAudio/Notes/15.0.mdwn
index 4c2bbf58..394ae0fb 100644
--- a/Software/PulseAudio/Notes/15.0.mdwn
+++ b/Software/PulseAudio/Notes/15.0.mdwn
@@ -10,7 +10,7 @@
PulseAudio now supports the LDAC and AptX codecs for A2DP. In order to use them, the device has to support the codecs too. Also "XQ" configuration variants for the old SBC codec are available. The SBC XQ variants have a fixed (and higher than the "normal" SBC) bitrate, so they may have more drop-outs if the wireless connection is bad, but on the other hand the quality is always good if the connection is good. For variable bitrate, pulseaudio is now able to increase the bitrate again after it was reduced due to connectivity issues.
-Switching the codec can be done on the command line with `pactl send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez switch-codec CODEC`. Replace `XX_XX_XX_XX_XX_XX` with the device address, which can be found for example with `LANG=C pactl list cards | grep Name`. Replace `CODEC` with one of the available codec names: `aptx`, `aptx_hd`, `ldac_hq` ("High Quality"), `ldac_sq` ("Standard Quality"), `ldac_mq` ("Mobile Quality"), `sbc`, `sbc_xq_453`, `sbc_xq_512`, `sbc_xq_552`. A list of codecs supported by the device can be obtained with `pactl send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez list-codecs` and the currently active codec can be queried with `pactl send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez get-codec`. A simplified way of switching codecs is already implemented in pavucontrol and will be provided with the next pavucontrol release.
+Switching the codec can be done on the command line with `pactl send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez switch-codec '"CODEC"'` (note the double quotes inside single quotes, this is needed because the server expects the double quotes and without the single quotes the shell would remove the double quotes before the string gets sent to the server). Replace `XX_XX_XX_XX_XX_XX` with the device address, which can be found for example with `LANG=C pactl list cards | grep Name`. Replace `CODEC` with one of the available codec names: `aptx`, `aptx_hd`, `ldac_hq` ("High Quality"), `ldac_sq` ("Standard Quality"), `ldac_mq` ("Mobile Quality"), `sbc`, `sbc_xq_453`, `sbc_xq_512`, `sbc_xq_552`. A list of codecs supported by the device can be obtained with `pactl send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez list-codecs` and the currently active codec can be queried with `pactl send-message /card/bluez_card.XX_XX_XX_XX_XX_XX/bluez get-codec`. A simplified way of switching codecs is already implemented in pavucontrol and will be provided with the next pavucontrol release.
### Support for HFP bluetooth profiles
diff --git a/Software/PulseAudio/Notes/16.0.mdwn b/Software/PulseAudio/Notes/16.0.mdwn
new file mode 100644
index 00000000..e8aad855
--- /dev/null
+++ b/Software/PulseAudio/Notes/16.0.mdwn
@@ -0,0 +1,451 @@
+[[!inline pages="Software/PulseAudio/TOC" quick="yes" raw="yes"]]
+
+# PulseAudio 16.0 release notes
+
+[[!toc startlevel=2 levels=3]]
+
+## Notes for end users
+
+### Opus support in the RTP modules
+
+The audio sent with module-rtp-send can now be compressed with the Opus codec. To use it, pass `enable_opus=true` as a module argument to module-rtp-send. This feature works only when PulseAudio is compiled with GStreamer enabled (both sending and receiving end).
+
+### Stereo output support for EPOS/Sennheiser GSP 670 USB/wireless headset and SteelSeries GameDAC
+
+The EPOS/Sennheiser GSP 670 headset has separate mono and stereo output ALSA devices, but with the default configuration only mono worked with PulseAudio. Now both outputs work. The support includes both direct USB connection and the GSA 70 wireless dongle.
+
+The same fix was applied to SteelSeries GameDAC.
+
+### Fix input issues for Texas Instruments PCM2902 based sound cards
+
+Texas Instruments PCM2902 is a generic audio chip that is used in multiple USB sound cards. We had custom configuration for Behringer UMC22, which turned out to affect multiple sound cards because they use the same USB ID. The PCM2902 sound cards vary in their capabilities, while our configuration was tailored only for the UMC22 card, which caused some trouble with recording on multiple PCM2902 sound cards. The reported issues have now been fixed.
+
+### Native Instruments Komplete Audio 6 MK2 profiles
+
+The Native Instruments Komplete Audio 6 MK2 is similar to the Komplete Audio 6 and is now supported as well.
+
+### Tunnel latency is now configurable
+
+The tunnel sink and source modules used to have a fixed 250 ms latency. The desired latency can now be configured with the `latency_msec` module argument.
+
+### Tunnel modules can now reconnect to remote server
+
+A new reconnect_interval_ms argument was added to all four tunnel sink and source modules. When the argument is specified, the tunnel module will try automatic re-connection to the remote server if the connection fails. The argument specifies the time interval in ms after which a connection attempt is repeated. In particular, this allows to load tunnel sinks and sources from default.pa which will become available as soon as the remote server becomes available.
+
+### Bluetooth device battery level reporting added
+
+If a bluetooth device supports battery level reporting, PulseAudio now is able to forward the information to other software. In case your desktop environment doesn't yet support showing the battery level in a nice GUI, the level is also available in the device's card object properties with the `bluetooth.battery` key. The property can be read with `pactl list cards`, for example.
+
+### Tunnel and combine-sink latency fixes
+
+The tunnel and combine-sink latency reporting accuracy has been improved, which should help with audio synchronization issues.
+
+### module-loopback improvements
+
+As part of a set of improvements to module-loopback's latency stability, a new argument, `adjust_threshold_usec`, was added to module-loopback to fine-tune the controller algorithm. The default value is 250 (microseconds), which should be sufficient in most cases. If it's not enough (caused by inaccurate latency reports from the sink or source), the loopback's sample rate will oscillate, while unnecessarily high values will increase variance in the loopback latency.
+
+Another change is the ability to set the `adjust_time` argument to smaller values than 1 second, for example `0.5` sets the adjustment interval to half a second. The default value was changed from 10 seconds to 1 second to make the latency control tighter.
+
+module-loopback used to log a bunch of status information every time it adjusted the playback rate. Now that the default adjustment interval is down from 10 seconds to 1 second, the logging became a bit too much, and the logging was disabled by default. It can now be enabled by setting the `log_interval` module argument. The value is given in seconds, it doesn't have to be an integer. The logging still happens at the time the rate adjustment is done, so if `log_interval` is less than `adjust_time`, then the logging will happen once per adjustment cycle.
+
+### Increased flexibility for module-jackdbus-detect
+
+module-jackdbus-detect is used for loading a JACK sink and source when JACK starts up. The module now has new `sink_enabled` and `source_enabled` arguments that accept boolean values. The new arguments can be used to disable either the sink or the source if loading both is not desired.
+
+module-jackdbus-detect can now also be loaded more than once, allowing multiple JACK sinks or sources with different configurations to be created.
+
+### pactl can show information in JSON format
+
+pactl has a new option `--format`, which accepts values `text` and `json`. `text` shows the pactl output in the traditional way, `json` shows it in the JSON format for easier interfacing with other software.
+
+### Channel remixing can be disabled for module-combine-sink
+
+module-combine-sink now accepts a boolean `remix` argument, which can be used to disable normal remixing. This is useful when combining multiple sound cards for surround output: if there are 3 stereo sound cards, you might want to set the channel map of one card to `front-left,front-right`, another to `rear-left,rear-right` and the third to `front-center,lfe`. If a combine sink is then created with a 5.1 surround channel map using these sound cards as slaves, audio is copied to all these sound cards, but by default the audio is downmixed to stereo for each card, which doesn't result in proper surround audio. By disabling remixing, no downmixing is done, the channels that don't fit the slave channel map are just dropped, which means that each sound card gets audio only for the intended channels.
+
+## Notes for application developers
+
+### Stream latency reports now include resampler delay
+
+Sink input and source output latency reporting now includes resampler delay. This delay is bundled into the sink and source latency, respectively. While this is minor semantic change, it should allow for more accurate A/V sync for applications.
+
+### Bluetooth device battery level reporting added
+
+If a bluetooth device supports battery level reporting, the level is now reported to BlueZ. Applications can get the battery level using the [[BlueZ D-Bus Battery API|https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/doc/battery-api.txt]].
+
+The battery level is also available in the device's card object properties with the `bluetooth.battery` key. There are no notifications when the property value changes, however (bug reported: [[#1314|https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1314]]).
+
+## Notes for packagers
+
+### Module installation location changed, remember to upgrade paprefs to the latest version!
+
+Modules are now installed to `$libdir/pulseaudio/modules`, previously they were installed to `$libdir/pulse-$version/modules`. paprefs has some logic that is sensitive to the module installation path, so if you ship paprefs in your distribution, make sure to upgrade paprefs to version 1.2. Earlier paprefs versions won't work properly with PulseAudio 16.0.
+
+### Opus support in the RTP modules requires enabling GStreamer
+
+The new Opus compression is available only when PulseAudio is built with the `gstreamer` Meson option enabled (previously it was disabled by default, now it's automatically enabled if the necessary dependencies are found).
+
+### Bluetooth battery level reporting via BlueZ requires enabling experimentals features in BlueZ
+
+The Battery API is still marked as an experimental feature in BlueZ, and if you wish to have PulseAudio use it, bluetoothd has to be started with the `--experimental` command line argument.
+
+### New time smoother implementation
+
+There's a new algorithm for keeping latency stable during adaptive resampling in module-loopback and elsewhere. Part of that is a new "time smoother" implementation. It will deliver more accurate and stable latency estimations compared to the current algorithm. This is mainly important where a fixed relationship between different streams is required (A/V sync, module-loopback, module-combine-sink, module-echo cancel, ...). Since this is a fair bit of complex new code in the core audio processing parts, the old implementation is kept around for a while to have a backup in case bugs show up. The new time smoother can be disabled with the `enable-smoother-2=false` Meson option.
+
+### Possibility to build the daemon without the client parts
+
+It's now possible to build the daemon without building the client parts at the same time, by using the `-Dclient=false` Meson option. The daemon will still need the client libraries during the build, the libraries installed in the system will be used. Apparently this kind of scheme is useful for Gentoo.
+
+## git shortlog
+
+<pre>
+Alexey Rubtsov (1):
+ Translated using Weblate (Russian)
+
+Anders Jonsson (3):
+ Translated using Weblate (Swedish)
+ Translated using Weblate (Swedish)
+ Translated using Weblate (Swedish)
+
+Andika Triwidada (3):
+ Translated using Weblate (Indonesian)
+ Translated using Weblate (Indonesian)
+ Translated using Weblate (Indonesian)
+
+Arun Raghavan (5):
+ combine-sink: Set origin_sink for each output stream
+ tests: Add passthrough test back to daemon tests
+ build-sys: Bump libpulse soversion for 16.0
+ Update NEWS for 16.0
+ build-sys: Bump soversion for 16.0 release
+
+Biswapriyo Nath (2):
+ Fix pointer to integer cast warnings
+ Install modules in bindir for Windows
+
+BtbN (1):
+ channelmap: make channel map tables static
+
+Chengyi Zhao (2):
+ alsa-mixer: Recognize rear mic jack mixer of USB audio
+ bluetooth: Try to reconnect SCO
+
+Chupligin Sergey (1):
+ Fix spelling of warning
+
+Craig Howard (5):
+ tunnel-sink-new: refactor sink creation
+ tunnel-sink-new: create sink *after* connection
+ tunnel-sink-new: reinit module
+ tunnel-source-new: add restart/reconnect logic
+ module-tunnel: restart module
+
+Daniel Dantur (1):
+ Translated using Weblate (Spanish)
+
+Daniel Hernandez (1):
+ Translated using Weblate (Spanish)
+
+Diederik de Haas (1):
+ conf: Note configuration snippets must end in .pa
+
+Dylan Van Assche (1):
+ Update NEWS for 16.0
+
+Emilio Herrera (1):
+ Translated using Weblate (Spanish)
+
+Ettore Atalan (1):
+ Translated using Weblate (German)
+
+Fran Diéguez (1):
+ Translated using Weblate (Galician)
+
+Georg Chini (43):
+ combine-sink: Fix latency calculations
+ combine-sink: Add rate controller
+ combine-sink: Improve initial latency reports
+ combine-sink: Use configured resampler, reduce update time to 1s
+ tunnel: Fix latency calculations
+ tunnel: Make fixed latency configurable
+ sink-input: Add history memblockq
+ resampler: Add pa_resampler_prepare() and pa_resampler_get_delay() functions
+ sink-input: Implement resampler pseudo rewinding
+ sink-input: Change move logic
+ source-output: Fix rewinding
+ virtual sources: Include resampler delay in latency reports
+ loopback: Add resampler delay to latency snapshots
+ sink-input: Limit rewinding to max_rewind for virtual sinks
+ sink-input: Query sink inputs for max_rewind value when setting max_rewind
+ tests: Add resampler rewind test
+ pulsecore: Add alternative time smoother implementation
+ Add configuration option enable-smoother-2 to enable alternative smoother code
+ alsa sink/source: Allow alsa to use alternative smoother code
+ bluetooth: Allow bluetooth to use alternative smoother code
+ stream: Allow stream.c to use alternative smoother code
+ combine-sink: Allow module-combine-sink to use alternative smoother code
+ tunnel: Allow module-tunnel to use alternative smoother code
+ esound-sink: Allow module-esound-sink to use alternative smoother code
+ raop-sink: Allow module-raop-sink to use alternative smoother code
+ solaris: Allow module-solaris to use alternative smoother code
+ loopback: Do not detect underruns during initial latency adjustments
+ loopback: Limit controller step size to 2.01‰
+ loopback: Optimize adaptive re-sampling
+ loopback: Add latency prediction and Kalman filter
+ loopback: Track prediction error; debug and cosmetic changes
+ loopback: Add adjust_threshold_usec parameter
+ loopback: Only use controller weight after target latency has been crossed twice
+ loopback: Change adjust_time parameter to double to allow adjust times below 1s
+ loopback: Add log_interval parameter
+ module-tunnel-sink/source-new: Add PA_STREAM_ADJUST_LATENCY flag at stream creation
+ time-smoother-2: Fix integer type problem
+ tunnel modules: Fix threading issues
+ tunnel modules: Fix crash when the module was unloaded while waiting for re-init
+ module-tunnel: Improve latency calculation
+ zeroconf-publish: Fix crash when avahi_client_new() fails
+ various places: Include resampler delay to latency reports and calculations
+ combine-sink: Fix latency reports
+
+Gogo Gogsi (4):
+ Translated using Weblate (Croatian)
+ Translated using Weblate (Croatian)
+ Translated using Weblate (Croatian)
+ Translated using Weblate (Croatian)
+
+Göran Uddeborg (3):
+ Translated using Weblate (Swedish)
+ Translated using Weblate (Swedish)
+ Translated using Weblate (Swedish)
+
+Hela Basa (1):
+ Translated using Weblate (Sinhala)
+
+Hui Wang (1):
+ card-restore: setting preferred ports in entry_from_card
+
+Igor V. Kovalenko (35):
+ alsa-mixer: Set mdev to NULL if there is no mapping
+ rtp: Initialize adapter to NULL for early pipeline error
+ build-sys: meson: Require xice, xsm and xtst for daemon only
+ build-sys: meson: Check if cpuid.h header is usable
+ alsa-mixer: Add EPOS/Sennheiser GSP 670 and GSA 70
+ bluetooth: Allow SCO socket packet size to be larger than mSBC frame
+ mainloop-test: Disarm io callback on EOF
+ alsa-mixer: add support for SteelSeries Arctis Pro + GameDAC
+ combine-sink: Add remix modarg
+ ladspa-sink: fix compiled in default LADSPA_PATH string
+ socket-server: Move systemd socket activation code to pulsecore
+ Fix expression with side effect in pa_assert
+ thread-mainloop: Release once_unlocked_data object after callback
+ bluetooth: Add missing breaks to profile availability check
+ message-params: If message paremeters is not JSON, wrap into JSON string
+ bluetooth: Release container with device UUID strings
+ message-params: Remove unwanted translations from log statements
+ x11: Close session manager connection on ICE I/O error callback
+ null-sink: Recalculate max_request and max_rewind while resuming sink
+ lirc: Fix module version
+ bluetooth: Fix device->adapter dependency while releasing discovery
+ build-sys: meson: change daemon-only to client
+ build-sys: meson: Move remaining tests under daemon and client builds
+ build-sys: meson: Rearrange dependencies under client and daemon options
+ build-sys: meson: Rearrange shell completion between daemon and client
+ build-sys: meson: Fix indentation in daemon/client blocks
+ build-sys: meson: Make glib and fftw common dependencies
+ thread-test: Increase test timeout
+ bluetooth: Limit effective SBC bitpool of incoming bluetooth connection
+ bluetooth: Make sure there is at least one SBC frame to encode
+ module-suspend-on-idle: Allow suspending a sink when the monitor source becomes idle
+ module-device-destore: Log restored port name
+ pa-info: Handle configuration files from .d directories
+ module-tunnel: Initialize `auto` param default value to false
+ bluetooth: mSBC: Decode packets larger than mSBC frame
+
+Jan Kuparinen (6):
+ Translated using Weblate (Finnish)
+ Translated using Weblate (Finnish)
+ Translated using Weblate (Finnish)
+ Translated using Weblate (Finnish)
+ Translated using Weblate (Finnish)
+ Translated using Weblate (Finnish)
+
+Jaroslav Kysela (5):
+ alsa: ucm - remove duplicate assignment
+ alsa: ucm - fix h/w mute mixer control probe
+ alsa: ucm - update the mixer path also after volume probe
+ alsa: mixer - more clever alias cache implementation
+ alsa: ucm - use possible mixer private device prefix for ELD controls
+
+Josef Haider (1):
+ alsa-profiles: Add NI Komplete Audio 6 MK2 profiles
+
+João Paulo Rechi Vita (11):
+ bluetooth: Keep a list of local adapters' UUIDs
+ bluetooth: backend-native: Rename profile to object in register_profile*
+ bluetooth: backend-native: Pass profile id in register_profile*
+ bluetooth: Add mechanism to track profile's status
+ bluetooth: backend-native: Keep track of profiles' status
+ bluetooth: Create PA_BLUETOOTH_HOOK_ADAPTER_UUIDS_CHANGED
+ bluetooth: backend-native: Handle RegisterProfile failure
+ bluetooth: Consider adapter UUIDs when evaluating profile support
+ bluetooth: Add debug logging to pa_bluetooth_device_supports_profile
+ bluetooth: Do not create a card profile for unsupported profiles
+ bluetooth: Add debug logging to profile creation
+
+Juho Hämäläinen (1):
+ bluetooth: Only remove cards belonging to the device.
+
+Karl Ove Hufthammer (4):
+ Translated using Weblate (Norwegian Nynorsk)
+ Translated using Weblate (Norwegian Nynorsk)
+ Translated using Weblate (Norwegian Nynorsk)
+ Translated using Weblate (Norwegian Nynorsk)
+
+Laurent Bigonville (2):
+ iochannel: Fix FTBFS on GNU/Hurd
+ util: Fix getting the binary name for GNU/Hurd
+
+Luna Jernberg (4):
+ Translated using Weblate (Swedish)
+ Translated using Weblate (Swedish)
+ Translated using Weblate (Swedish)
+ Translated using Weblate (Swedish)
+
+Lv Genggeng (1):
+ Translated using Weblate (Chinese (Simplified) (zh_CN))
+
+Marijn Suijten (19):
+ bt/bluez5-device: Update link to assigned Baseband numbers
+ bluetooth/native: Signal support for dock status in XAPL reply
+ bt/native: Answer AT command with ERROR if unhandled
+ bt/native: Parse specified number of arguments in IPHONEACCEV
+ bluetooth: Provide (HSP/HFP-received) battery level as device property
+ bluetooth: Register as BlueZ experimental BatteryProvider1
+ bluetooth: Deregister battery provider when profile disconnects
+ bluetooth/native: Accept and report battery HF indicator value
+ daemon/cmdline: Invert log-level list to match numerical values
+ bluetooth/native: Include util header for pa_msleep
+ gitlab-ci: Bump Ubuntu image to 20.04
+ gitlab-ci: Turn on Werror for meson builds
+ tests/mix-test: Don't pass unnecessary NULL fmt argument to fail_unless
+ pulsecore/shm: Remove shm_marker struct packing for pa_atomic_t fields
+ bluetooth/backend-native: Replace tab-indents with spaces
+ bluetooth/gst: Use GStreamer synchronously within PA's IO thread
+ bluetooth/gst: Replace buffer accumulation in adapter with direct pull
+ bluetooth/gst: Timestamp encoding buffers according to PA clock
+ bluetooth: Demote "No such property 'Volume'" error to warning
+
+Mart Raudsepp (2):
+ build-sys: meson: Relax sanity checks for daemonless builds
+ build-sys: meson: Allow building the daemon only
+
+Mathy Vanvoorden (2):
+ jackdbus-detect: Make it possible to disable sink or source
+ jackdbus-detect: Allow to configure multiple sinks/sources
+
+Olivier Gayot (1):
+ pactl: fix invalid JSON output by overriding LC_NUMERIC
+
+Ovari (1):
+ Translated using Weblate (Hungarian)
+
+Oğuz Ersen (6):
+ Translated using Weblate (Turkish)
+ Translated using Weblate (Turkish)
+ Translated using Weblate (Turkish)
+ Translated using Weblate (Turkish)
+ Translated using Weblate (Turkish)
+ Translated using Weblate (Turkish)
+
+Piotr Drąg (5):
+ Translated using Weblate (Polish)
+ Translated using Weblate (Polish)
+ Translated using Weblate (Polish)
+ Translated using Weblate (Polish)
+ Translated using Weblate (Polish)
+
+Rafael Fontenelle (1):
+ Translated using Weblate (Portuguese (Brazil))
+
+Rico Tzschichholz (1):
+ vala: Couple of libpulse binding fixes
+
+Sanchayan Maity (3):
+ rtp: Enable support for OPUS
+ bluetooth: ldac: Fix RTP payloading of encoded packet
+ bluetooth: Rename rtp_sbc_payload to rtp_payload
+
+Sebastian Reichel (1):
+ bluetooth: backend-native: add battery level reporting
+
+Sergey A (4):
+ Translated using Weblate (Russian)
+ Translated using Weblate (Russian)
+ Translated using Weblate (Russian)
+ Translated using Weblate (Russian)
+
+Sibo Dong (1):
+ shell-completion: bash: Localize word variable
+
+Sungjoon Moon (2):
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+
+Takashi Sakamoto (1):
+ Revert "udev: use ID_MODEL/ID_VENDOR to give friendly name for FireWire devices"
+
+Takuro Onoue (1):
+ Translated using Weblate (Japanese)
+
+Tanu Kaskinen (8):
+ build-sys: Remove version number from the module path
+ i18n: Update .pot and .po files
+ i18n: Update .pot and .po files
+ alsa-mixer: Improve documentation in texas-instruments-pcm2902.conf
+ i18n: Update .pot and .po files
+ meson: Enable GStreamer-based RTP by default (when available)
+ alsa-mixer: Add analog-input path to TI PCM2902 mappings
+ i18n: Update .pot and .po files
+
+Temuri Doghonadze (1):
+ Added translation using Weblate (Georgian)
+
+Will Thompson (2):
+ CONTRIBUTING.md: fix typo
+ CONTRIBUTING.md: fix another typo
+
+Yuri Chornoivan (5):
+ Translated using Weblate (Ukrainian)
+ Translated using Weblate (Ukrainian)
+ Translated using Weblate (Ukrainian)
+ Translated using Weblate (Ukrainian)
+ Translated using Weblate (Ukrainian)
+
+acheronfail (1):
+ pactl: add format flag for JSON output
+
+baek inchan (1):
+ Translated using Weblate (Korean)
+
+guest271314 (1):
+ pacat: Include the special default device names in documentation
+
+liaohanqin (1):
+ pactl: optimized code
+
+simmon (5):
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+
+simple (2):
+ alsa-mixer: Fix mono input for Texas Instruments PCM2902
+ alsa-mixer: Rename behringer-umc22.conf to texas-instruments-pcm2902.conf
+
+tensorknower69 (1):
+ fix a single typo in pulse-client.conf.5.xml.in
+
+김인수 (1):
+ Translated using Weblate (Korean)
+</pre>
diff --git a/Software/PulseAudio/Notes/17.0.mdwn b/Software/PulseAudio/Notes/17.0.mdwn
new file mode 100644
index 00000000..f5e8c232
--- /dev/null
+++ b/Software/PulseAudio/Notes/17.0.mdwn
@@ -0,0 +1,324 @@
+[[!inline pages="Software/PulseAudio/TOC" quick="yes" raw="yes"]]
+
+# PulseAudio 17.0 release notes
+[[!toc startlevel=2 levels=3]]
+
+## Notes for end users
+
+### Updates to ALSA UCM-based setups
+
+An extensive set of changes landed which modify how ALSA UCM configuration is mapped to PulseAudio profiles and ports. Notably
+
+ 1. We no longer generate combined ports for non-conflicting devices, and instead create one profile for each set of non-conflicting devices. Devices that are not explicitly marked as conflicting but share the same `PlaybackPCM` or `CapturePCM` are considered conflicting.
+ 2. Instead of different inputs/outputs being exposed as ports on a source/sink, they will be exposed as separate sources/sinks. On some setups where two inputs or outputs can run concurrently and independently, you will now see more than one input/output sink available when selecting the appropriate profile.
+
+### Battery level indication *to* Bluetooth devices
+
+This shares the battery level of a PulseAudio host _to_ a Bluetooth headset (for example, if you're running a PulseAudio-based device connected to a car, the car can report the battery level of your device).
+
+### Support for the Bluetooth FastStream codec
+
+Devices that support the FastStream codec (which provides higher quality bidirectional audio) are now supported.
+
+### webrtc-audio-processing dependency updated
+
+We updated to a more recent version of the `webrtc-audio-processing` library with improvements in echo cancellation and higher tolerance for drift. Unfortunately, this does mean that beamforming support, which was dropped upstream, is no longer present.
+
+### Trigger role groups added to module-role-cork
+
+`module-role-cork` now allows groups of roles (separated by `/`) as triggers.
+
+### XDG base directory spec for profile-set loading
+
+The XDG base directory specification is now used for ALSA profile set loading (`$XDG_DATA_HOME`, followed by `$XDG_DATA_DIRS`, and finally falling back to the previous behaviour).
+
+## Notes for application developers
+
+### PA_RATE_MAX increased
+
+The maximum supported sample rate is now 768kHz.
+
+## Notes for packagers
+
+### webrtc-audio-processing dependency updated
+
+We now depend on version 1.3 of the library, which is parallel-installable with other API versions. As part of this change, the default `cpp_std` for the project has been set to `c++17`.
+
+## git shortlog
+
+<pre>
+Alistair Leslie-Hughes (7):
+ Propagate return value from pa_pstream_attach_memfd_shmid
+ Ensure fds are closed when exec functions are used.
+ pactl: Stop a crash when setting the volume which is out of range
+ pulsecore: Set errno before calling read
+ rtp-send: Use getaddrinfo to improve support for ipv6.
+ rtp-send: Use getaddrinfo to improve support for ipv6 on source address
+ rtp-recv: Use getaddrinfo to improve support for ipv6.
+
+Alper Nebi Yasak (24):
+ idxset: Add set contains() function
+ idxset: Add set comparison operations
+ idxset: Add reverse iteration functions
+ alsa-ucm: Always create device conflicting/supported device idxsets
+ alsa-ucm: Make modifiers track conflicting/supported devices as idxsets
+ alsa-ucm: Add enable, disable, status helpers for devices
+ alsa-ucm: Let profiles know their associated UCM verb
+ alsa-ucm: Stop conflating profile name with UCM verb name
+ alsa-ucm: Make mapping creation independent from indvidual profiles
+ alsa-ucm: Split profile creation into verb and profile parts
+ alsa-ucm: Rewrite conformant device group generation with idxsets
+ alsa-ucm: Fix device conformance check
+ alsa-ucm: Split out helpers for device set name, description, priority
+ alsa-ucm: Make one input/output mapping per UCM device
+ alsa-ucm: Remove combination port generation logic
+ alsa-ucm: Make ports store only one device
+ alsa-ucm: Make mapping UCM contexts have only one device
+ alsa-ucm: Make mapping UCM contexts have only one modifier
+ alsa-ucm: Disable old devices when switching profiles of same verb
+ alsa-ucm: Create multiple profiles per verb for conflicting devices
+ alsa-ucm: Add enable, disable, status helpers for modifiers
+ alsa-ucm: Disable old modifiers when switching profiles of same verb
+ alsa-ucm: Consider devices using the same PCM as incompatible
+ alsa-ucm: Fix more instances of profile-verb conflation
+
+Arun Raghavan (13):
+ ci: Update to freedesktop/ci-templates
+ ci: Use built-in distribution image name mechanism
+ echo-cancel-test: Drop references to internal message queue
+ build-sys: Bump webrtc-audio-processing dependency
+ build-sys: Bump .so version 16.99.1
+ build-sys: Bump cpp_std to c++17
+ build-sys: Add a webrtc-audio-processing wrap file
+ ci: Force build of webrtc-aec
+ ci: Add doxygen to build image
+ ci: Drop -werror in build
+ build-sys: Bump webrtc-audio-processing wrap to 1.2
+ build-sys: Bump webrtc-audio-processing wrap to 1.3
+ Update NEWS for 17.0
+
+Asier Sarasua Garmendia (2):
+ Added translation using Weblate (Basque)
+ Translated using Weblate (Basque)
+
+Ataberk Özen (2):
+ alsa-profiles: import Asus Xonar SE profile from pipewire
+ alsa-profiles: rename mappings for Xonar SE
+
+Balázs Meskó (1):
+ Translated using Weblate (Hungarian)
+
+Biswapriyo Nath (1):
+ meson: Add DEF file to export APIs in Windows
+
+Dylan Van Assche (4):
+ bluez5-util: move pa_bluetooth_discovery to header
+ bluetooth: add AT+BIA support
+ bluetooth: add UPower backend
+ bluetooth: hook up UPower backend
+
+Eero Nurkkala (1):
+ echo-cancel: add webrtc AEC3 support
+
+Ettore Atalan (1):
+ Translated using Weblate (German)
+
+Fabrice Fontaine (1):
+ meson.build: fix build without C++
+
+Fran Diéguez (2):
+ Translated using Weblate (Galician)
+ Translated using Weblate (Galician)
+
+Georg Chini (7):
+ combine-sink: Fix threading issue during underrun
+ time-smoother-2: Fix stream time when stream starts paused
+ stream-interaction: Extend trigger groups to module-role-cork
+ stream-interaction: Fix regression when a trigger role is also a cork role
+ tunnel-sink-new: Fix hang when used in combination with module-combine-sink
+ switch-on-connect: Do not overwrite user configured default sink/source
+ pactl, pacmd: Allow to unset the configured default sink or source
+
+Gioele Barabucci (1):
+ daemon/meson.build: Install dbus policy in /usr, not /etc
+
+Gogo Gogsi (1):
+ Translated using Weblate (Croatian)
+
+Hector Martin (1):
+ alsa: ucm: Fix spurious mixer path removal on initial profile set
+
+Hugo Carvalho (1):
+ Translated using Weblate (Portuguese)
+
+Hui Wang (1):
+ backend-native: Handle multi AT commands in a buffer
+
+Igor V. Kovalenko (26):
+ rtp: Accept CRLF delimiters in SDP as required by RFC 4566
+ rtp: Initialize SDP info struct field added for OPUS
+ build-sys: meson: Make module-console-kit optional
+ build-sys: meson: Move qpaeq to daemon build
+ bluetooth: Free memblock after codec errors
+ bluetooth: Do not use hardware volume control for A2DP backchannel
+ bluetooth: Add faststream codec
+ bluetooth: Use stereo sample spec for faststream backchannel
+ bluetooth: Handle fragmented faststream frames
+ bluetooth: Add 20dB boost for faststream source volume
+ backend-native: Fix stack corruption reading RFCOMM AT+BIA= response
+ module-combine-sink: Do not set up rate adjustment timer at load time
+ module-combine-sink: Suspend while unloading to fix crash moving sinks
+ backend-native: Fix parsing comma-delimited response
+ alsa-util: Dump probed rates
+ alsa-util: Add more standard sample rates.
+ bluetooth: Amend writeout to send more initial frames
+ resampler: Fix oversized memblock pushed from resampler
+ bluetooth: Do not attempt decoding too short faststream packet data
+ pstream: Pass frame size to keep split memblock parts aligned
+ alsa-util: Perform format and rate detection before setting HW params
+ alsa-util: Fix pa_alsa_get_supported_formats fallback.
+ memblockq: Drop check for chunk index alignment, require aligned length
+ shell-completion: Fix typo in --use-pid-file= suggestion
+ memblockq: Adjust tail chunk offset into memblock after split
+ Fix crash running in restricted environment.
+
+Jaechul Lee (1):
+ sound-file-stream: Fix crash when playing a file which is not aligned
+
+Jan Kuparinen (1):
+ Translated using Weblate (Finnish)
+
+Jan Palus (1):
+ bluetooth/gst: Correct var type for GST_TYPE_BITMASK
+
+Jaroslav Kysela (5):
+ alsa-mixer: allow to re-attach the mixer control element
+ alsa-ucm: Set profiles by their struct instance, not their name
+ alsa-ucm: remove extra space from the device.intended_roles property
+ alsa-mixer: fix the re-attach code for the mixer control element
+ alsa-mixer: extend pa_alsa_mixer_find with the subdevice check
+
+Jiri Grönroos (1):
+ Translated using Weblate (Finnish)
+
+Joachim Philipp (1):
+ Translated using Weblate (German)
+
+Jordi Mas (2):
+ Translated using Weblate (Catalan)
+ Translated using Weblate (Catalan)
+
+Marijn Suijten (5):
+ backend-native: Fix indentation and whitespace style
+ backend-native: Add backend pointer to transport_data
+ Revert "bluez5-util: move pa_bluetooth_discovery to header"
+ backend-native: Update all CIND indicators
+ backend-native: Remove uninformative "Profile unavailable" debug message
+
+Mart Raudsepp (1):
+ proplist-util: Don't assume gdkx is there as gtk could be built without it
+
+Nicolas Cavallari (2):
+ build-sys: Fix atomic support detection
+ build-sys: Add missing libatomic_ops dependencies
+
+Peter Meerwald-Stadler (5):
+ module-combine-sink: Use fabs() instead of abs() for double
+ module-combine-sink: Fix indentation
+ module-tunnel: Fix typos
+ volume: Fix typo
+ raop-client: Fix typo
+
+Philip Goto (1):
+ Translated using Weblate (Dutch)
+
+Rosen Penev (1):
+ meson: fix meson warnings
+
+Rudi Heitbaum (2):
+ shm: use MFD_NOEXEC_SEAL for shared memory
+ shm: allow for older versions of Linux without MFD_NOEXEC_SEAL
+
+Sabri Ünal (1):
+ Translated using Weblate (Turkish)
+
+Sean Greenslade (1):
+ pactl: fix parsing of percentages with decimal points
+
+Seong-ho Cho (1):
+ Translated using Weblate (Korean)
+
+Shunsuke Shimizu (1):
+ build-sys: Fix macOS build
+
+SimonP (1):
+ alsa-mixer: Respect XDG base directory spec when loading profile sets
+
+Takashi Sakamoto (1):
+ alsa-mixer: avoid assertion at alsa-lib mixer API when element removal
+
+Tanu Kaskinen (2):
+ i18n: Update .pot and .po files
+ Update NEWS for 16.1
+
+Temuri Doghonadze (10):
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+ Translated using Weblate (Georgian)
+
+Toni Estevez (5):
+ Translated using Weblate (Catalan)
+ Translated using Weblate (Spanish)
+ Translated using Weblate (Spanish)
+ Translated using Weblate (Spanish)
+ Translated using Weblate (Spanish)
+
+Weijia Wang (1):
+ echo-cancel: Fix macOS build
+
+Wim Taymans (1):
+ sndfile: handle sndfiles with s24 format
+
+Yureka (1):
+ Make gio-2.0 optional when gsettings is disabled
+
+acheronfail (1):
+ pactl: SUBSCRIBE add a newline after every json message
+
+flyingOwl (1):
+ time-smoother-2: Fix time calculation by comparing timestamps
+
+grimst (1):
+ Translated using Weblate (French)
+
+hashitaku (2):
+ shell-completion: add new subcommand get-* for bash
+ shell-completion: add new subcommand get-* for zsh
+
+mooo (1):
+ Translated using Weblate (Lithuanian)
+
+peijiankang (1):
+ fix translation error of pulseaudio
+
+redfast00 (1):
+ rtp: fix 'size mismatch' on BSD style operating systems
+
+wael (1):
+ meson: use proper type for bools
+
+김인수 (6):
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+ Translated using Weblate (Korean)
+</pre>
diff --git a/Software/PulseAudio/PatchStatus.mdwn b/Software/PulseAudio/PatchStatus.mdwn
index 92b03792..ae1a8cea 100644
--- a/Software/PulseAudio/PatchStatus.mdwn
+++ b/Software/PulseAudio/PatchStatus.mdwn
@@ -5,36 +5,71 @@ This page tracks the status of submitted patches that haven't been merged yet. T
The patches have been ordered by priority, with the highest priority patches at the top. If your patch is low in the list, there's a real risk that it won't be reviewed at all, because patches are currently submitted at a higher rate than they are reviewed. This is a sad situation, and if you don't like it, please volunteer to become a reviewer!
+
+* Configuration checkbox to hide unavailable profiles
+ * [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/67]]
+ * The profile drop-down list can get rather long, especially when the sound card has multiple HDMI devices (as is often the case).
+ * Changed lines: +44, -1.
+ * Tanu reviewed this and requested some renamings, no other issues found. Update: actually there was an issue with the logic, which currently depends on checking strings that are translated, so in other languages this doesn't work. The renamings have been done, but this logic change has not.
+
+* alsa-mixer: add support for asus sonar se
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/629]]
+ * Needs some tweaking, otherwise good.
+
+* Draft: alsa-ucm: Make one input/output mapping per UCM device
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/664]]
+ * Pretty small change, at least code-wise. Not necessarily easy to review, though.
+
+* alsa-ucm: Simplifications assuming we have one device per mapping
+ * Meant to be applied after !664.
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/715]]
+
+* alsa-ucm: create profiles per conflicting device group
+ * Important improvement to the UCM profile generation logic (currently we may generate profiles that have two conflicting devices active at the same time).
+ * Milestone set to 16.0.
+ * There were two older MRs, !290 and !582.
+ * This is a newer attempt, split into multiple MRs:
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/586]]
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/587]]
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/588]]
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/589]]
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/590]]
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/591]]
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/595]]
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/596]]
+
+* alsa-ucm: allow binding same mic to multiple profiles
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/271]]
+
+* WIP: Disable UCM devices on suspend
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/307]]
+ * Various UCM cleanups, in addition to the main patch that implements a possible power consumption improvement with UCM.
+ * There's a bug that needs to be fixed before this can be merged.
+ * Arun reviewed the first version, and we agreed to have this in 14.0 once the bug is fixed.
+
* module-switch-on-port-available: Also blacklist HDMI devices by default
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/420]]
* Avoids automatically switching to HDMI when monitor is turned on.
* Medium sized change.
* The initial version is probably too aggressive: if HDMI is configured as the default sink, we should automatically switch to it when it becomes available.
- * Milestone set to 15.0.
+ * Milestone set to 16.0.
* module-switch-on-port-available: check default sink/source before switch
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/370]]
* Attempts to fix a UCM related bug: when there are multiple sinks or sources on one profile, module-switch-on-port-available does sometimes nonsensical port switches.
* Tanu reviewed the first version and suggested a different fix. As of 2020-09-28, discussion is ongoing about the correct fix.
- * Milestone set to 15.0.
-
-* alsa-ucm: Make sure UCM uses DisableSequence
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/357]]
+ * Milestone set to 16.0.
* clear compiling warning
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/330]]
* Simple patches, Tanu reviewed them but they need some polishing.
-* WIP: Disable UCM devices on suspend
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/307]]
- * Various UCM cleanups, in addition to the main patch that implements a possible power consumption improvement with UCM.
- * There's a bug that needs to be fixed before this can be merged.
- * Arun reviewed the first version, and we agreed to have this in 14.0 once the bug is fixed.
-
-* combine-sink: Set origin_sink for each output stream
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/399]]
- * One-liner, looks good if the current usage of origin_sink can handle module-combine-sink.
- * Milestone set to 16.0.
+* Make build system more static linking friendly
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/679]]
+ * Allows disabling utilities (and in theory building utilities only, or just daemon+utilities, but those scenarios might be untested).
+ * When building only libpulse, allows disabling the sndfile dependency.
+ * Changes `shared_library` calls to `library` calls in Meson.
+ * Replaces the pkgconfig template files with Meson's `pkg.generate` calls.
* alsa-mixer: Respect XDG base directory spec when loading profile sets
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/311]]
@@ -53,24 +88,14 @@ The patches have been ordered by priority, with the highest priority patches at
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/489]]
* Prevents audio from moving to a different sink during codec switch.
-* Draft: bluetooth: backend-native: Handle RegisterProfile failure
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/593]]
-
* WIP: bluetooth/a2dp: Only list codecs with matching capabilities in list_codecs
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/478]]
* Two smallish patches.
* This avoids sending clients a list of codecs that includes entries that aren't really supported.
-* Draft: [simplify] Make GStreamer encoder/decoder synchronous
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/494]]
- * Run GStreamer in PA's IO thread, without extra threads, semaphores and buffer copies.
-
* Draft: bluetooth: Add AAC support via GStreamer
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/473]]
-* bluetooth: Hook up HSP/HFP battery reporting to proplist and BlueZ experimental battery provider
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/482]]
-
* WIP: bluetooth: Enable swapping A2DP source and sink role
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/480]]
* Enable switching from A2DP source to A2DP sink profile and vice-versa, when two devices capable of supporting both (ie. two machines running PulseAudio) are connected.
@@ -81,6 +106,27 @@ The patches have been ordered by priority, with the highest priority patches at
* Draft: bluetooth: Handle muting over A2DP Absolute Volume
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/533]]
+* bluetooth: Check if transport returns an error -1
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/621]]
+ * Judging from the existing comment, ignoring the error is intentional.
+
+* bluetooth: Add FastStream codec
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/628]]
+
+* bluetooth: Reduce priority and do not automatically route audio to other computers
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/644]]
+ * Changed lines: +32, -0
+ * There is some discussion about avoiding automatic routing to phones too.
+ * Tanu reviewed the MR and requested a small change.
+
+* bluetooth: Initialize profile with both input and output directions
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/677]]
+ * Seems like a minor optimization to avoid initializing source when sink initialization already failed.
+ * The change makes sense, but Tanu suggested a simpler change that achieves the same thing.
+
+* bluetooth: enhanced HFP support in backend-native with ModemManager
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/693]]
+
* Add message commands to enable/disable jack detection per port
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/452]]
* This is WIP until Georg gets around to adding persistence support.
@@ -90,21 +136,6 @@ The patches have been ordered by priority, with the highest priority patches at
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/289]]
* Small patch, but it doesn't really make sense. The version should always have at least 2 elements. The problem that this patch fixes needs to be investigated further.
-* alsa-ucm: create profiles per conflicting device group
- * Important improvement to the UCM profile generation logic (currently we may generate profiles that have two conflicting devices active at the same time).
- * Milestone set to 16.0.
- * There are two sets of changes doing the same thing, this is the original (itself superseding !290, though):
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/582]]
- * This is a newer attempt, split into multiple MRs:
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/586]]
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/587]]
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/588]]
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/589]]
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/590]]
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/591]]
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/595]]
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/596]]
-
* Add udev rules and a profile for Sennheiser GSX devices.
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/286]]
* This is probably pretty much the same as another MR, !257, which has been merged.
@@ -119,6 +150,12 @@ The patches have been ordered by priority, with the highest priority patches at
* alsa-mixer: add multichannel profile for Tascam Model12
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/529]]
+* core-util: allow symbolic links for user dirs
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/656]]
+
+* Draft: tunnel-{source,sink}-new: reconnect
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/688]]
+
* module-role-cork: corking groups
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/427]]
* Implements more flexible corking rules. The same as what is already supported for ducking rules? It's a bit difficult to fully understand the feature just from the commit message.
@@ -128,34 +165,16 @@ The patches have been ordered by priority, with the highest priority patches at
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/395]]
* The "big" changes are already mostly reviewed by Arun (those changes were made by Eero Nurkkala).
-* Update module directory logic
- * [[https://gitlab.freedesktop.org/pulseaudio/paprefs/merge_requests/7]]
- * The plan is to remove the version number from the module directory in PulseAudio 15.0. paprefs needs to adapt to that, preferably before the change happens so that the transition to the new directory goes without glitches. High priority, because Tanu wants to release a new paprefs version ASAP, and this is the only thing blocking the release.
-
* Improvements to reconfiguration
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/24]]
* Using the Dolby TrueHD and DTS-HD Master Audio formats requires using 8 channels, and these patches implement the necessary reconfiguration logic. This was supposed to work already in 13.0 (the release notes promised that), so these patches should probably have a very high priority.
-* alsa-ucm: allow binding same mic to multiple profiles
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/271]]
-
-* rtp: Enable support for OPUS
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/510]]
- * Large-ish patch, but from a quick look the changes seem pretty straightforward.
-
-* Rewind and resampler fixes
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/120]]
- * Fixes crackling during volume changes caused by resampler resets. Big change.
- * Comment from Tanu: I started to review it, and I disagreed with Georg how the new history queue should be managed. I got demotivated due to the complexity of the code and Georg's unwillingness to accept my proposal that would make it easier for me to understand the system (according to Georg, my proposal is even more complex than his).
- * Milestone set to 15.0.
+* Draft: Allow building only the daemon
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/657]]
* Draft: log: add async logging
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/459]]
-* build-sys: Remove version number from installed files
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/230]]
- * Causes less file name changes during updates, which can make life easier for packagers.
-
* Restore ability to quit with the escape key
* [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/-/merge_requests/37]]
@@ -188,10 +207,6 @@ The patches have been ordered by priority, with the highest priority patches at
* [[https://gitlab.freedesktop.org/pulseaudio/pavucontrol/merge_requests/17]]
* New feature. Medium sized change.
-* Tunnel and combine-sink latency fixes
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/53]]
- * Fixes latency calculations. Adds a latency configuration modarg to module-tunnel. A somewhat large change, but it's split into 6 patches so the individual patches should be pretty manageable.
-
* Unload bluez5 devices when bluez5-discover is unloaded
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/42]]
* Fixes a minor bug: when unloading module-bluez5-discover, the module-bluez5-device modules currently are left loaded. Pretty simple change.
@@ -201,29 +216,14 @@ The patches have been ordered by priority, with the highest priority patches at
* New feature. Adds more information to "pactl list sinks short" (corresponding change for sources is missing). Pretty simple change.
* Comment from Tanu: I'm not sure we want this - to make scripting easier, we could also add separate commands for getting the individual attributes.
-* WIP: Virtual sink consolidation
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/88]]
- * Reduces code duplication in virtual sinks. The resampler rewind patches (!120) should be reviewed first, after which Georg will rebase these patches. Big change.
-
-* Add alternative time smoother implementation
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/55]]
- * Improves at least module-loopback's latency stability. Pretty large change, and probably math-heavy.
- * Comment from Tanu: Based on a quick glance at [[https://www.freedesktop.org/software/pulseaudio/misc/rate_estimator.odt]], the improvement is big in relative terms, but small in absolute terms (less than one millisecond).
- * When asked for more concrete description of what problems the patches solve, Georg said this: "I never systematically compared absolute values of the latencies, I just verified that they are in the same range. What rate_estimator.odt shows is just the stability of the reported value. The stability has a big impact on loopback and combine sink because they amplify those small fluctuations. Otherwise I cannot put a finger on specific problems but still I have the impression that overall I am getting less glitches."
- * Comment from Georg: Since it is providing an alternative implementation and not a replacement I think it would be more or less sufficient to review patches 2 - 10 and "believe" patch 1. (which is what we currently do with the old smoother code or do you understand that?)
- * Georg has later noticed that echo cancellation works much better with these patches.
-
-* Loopback patches
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/merge_requests/56]]
- * Various improvements to module-loopback. How big improvements? Hard to say from a quick glance. As a whole it's a somewhat big change, but it's split into 10 patches, so individual patches aren't that big (but the math-heavy topic can make reviewing more difficult).
- * The first patch should be included soon as it fixes a bug. Patches 2 - 4 significantly improve the stability of the latency while patch 5 improves the readability of the debug output. Patches 6 - 10 add new parameters and small enhancements that aim to get the last possible bit of precision out of the module. Therefore it should be evaluated if any of patches 6 - 10 should be included at all.
+* Virtual sink and source consolidation
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/661]]
+ * Supersedes !88. Old notes from !88:
+ * Reduces code duplication in virtual sinks. Big change.
* FreeBSD support
* [[https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/merge_requests/6]]
-* pactl: add format flag for JSON output
- * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/497]]
-
* Added source's priority property to dbus interface
* [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/531]]
@@ -253,4 +253,9 @@ The patches have been ordered by priority, with the highest priority patches at
### Patches that need to be prioritized
-(nothing here right now)
+* Load the module-switch-on-connect module by default
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/738]]
+
+* bluetooth: Cleanup "AG battery level reporting" patches
+ * [[https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/740]]
+ * Tanu reviewed this: minor style nitpicking, otherwise looks good.
diff --git a/Software/XKeyboardConfig.mdwn b/Software/XKeyboardConfig.mdwn
index f3769bb0..c730072e 100644
--- a/Software/XKeyboardConfig.mdwn
+++ b/Software/XKeyboardConfig.mdwn
@@ -71,6 +71,22 @@ For details on mailing lists, bug reporting, code repositories, and submission r
* [[2.22|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.22.tar.bz2]] - Sep 2017
* [[2.23|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.23.tar.bz2]] - Jan 2018
* [[2.24|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.24.tar.bz2]] - Jun 2018
+* [[2.25|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.25.tar.bz2]] - Sep 2018
+* [[2.26|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.26.tar.bz2]] - Jan 2019
+* [[2.27|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.27.tar.bz2]] - Jun 2019
+* [[2.28|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.28.tar.bz2]] - Sep 2019
+* [[2.29|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.29.tar.bz2]] - Jan 2020
+* [[2.30|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.30.tar.bz2]] - Jun 2020
+* [[2.31|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.31.tar.bz2]] - Sep 2020
+* [[2.32|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.32.tar.bz2]] - Jan 2021
+* [[2.33|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.33.tar.bz2]] - Jun 2021
+* [[2.34|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.34.tar.bz2]] - Sep 2021
+* [[2.35|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.35.tar.xz]] - Jan 2022, switching to xz format, dropping autotools
+* [[2.36|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.36.tar.xz]] - Jun 2022
+* [[2.37|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.37.tar.xz]] - Sep 2022
+* [[2.38|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.38.tar.xz]] - Jan 2023
+* [[2.39|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.39.tar.xz]] - Jun 2023
+* [[2.40|http://www.x.org/releases/individual/data/xkeyboard-config/xkeyboard-config-2.40.tar.xz]] - Sep 2023
[[Release Schedule|Software/XKeyboardConfig/ReleaseSchedule]]
diff --git a/Software/cups-pk-helper.mdwn b/Software/cups-pk-helper.mdwn
index e6147d7a..9c210e17 100644
--- a/Software/cups-pk-helper.mdwn
+++ b/Software/cups-pk-helper.mdwn
@@ -9,7 +9,7 @@ To make it easy to integrate cups-pk-helper in [[system-config-printer|http://cy
### Development
-The development occurs in git, in the [[cups-pk-helper|http://cgit.freedesktop.org/cups-pk-helper/]] repository. Bugs should be reported in [[Bugzilla|https://bugs.freedesktop.org/enter_bug.cgi?product=cups-pk-helper]].
+The development occurs in freedesktop.org's GitLab, in the [[cups-pk-helper|https://gitlab.freedesktop.org/cups-pk-helper/cups-pk-helper/]] repository. Issues and feature requests should be reported in [[GitLab|https://gitlab.freedesktop.org/cups-pk-helper/cups-pk-helper/-/issues]].
Translations should be uploaded to [[Transifex|https://www.transifex.com/projects/p/cups-pk-helper/]].
@@ -18,6 +18,17 @@ Translations should be uploaded to [[Transifex|https://www.transifex.com/project
Tarballs can be found at [[http://www.freedesktop.org/software/cups-pk-helper/releases/|http://www.freedesktop.org/software/cups-pk-helper/releases/]]
+* [[http://www.freedesktop.org/software/cups-pk-helper/releases/cups-pk-helper-0.2.7.tar.xz|http://www.freedesktop.org/software/cups-pk-helper/releases/cups-pk-helper-0.2.7.tar.xz]]
+ * Use meson build system (Marek)
+ * Remove code using CUPS 1.5 and lower (Marek)
+ * Remove calls to deprecated g_type_init() (Marek)
+ * Move D-Bus conf file to $(datadir)/dbus-1/system.d (worldofpeace)
+ * Don't compare signed and unsigned int (Guido Günther)
+ * Add default statements to silence compiler warnings (Guido Günther)
+ * Remove obsolete [encoding: UTF-8] from POTFILES.in (Marek)
+ * Add Code of Conduct (Marek)
+ * Update README and HACKING files (Marek)
+ * New/updated translations: af, ast, cs, et, fi, fur, he, hr, kk, lt, si, tr
* [[http://www.freedesktop.org/software/cups-pk-helper/releases/cups-pk-helper-0.2.6.tar.xz|http://www.freedesktop.org/software/cups-pk-helper/releases/cups-pk-helper-0.2.6.tar.xz]]
* Enable UTF-8 chars in names and texts (Marek)
* Introduce CPH_PATH_MAX (Pino Toscano)
diff --git a/Software/dbus.mdwn b/Software/dbus.mdwn
index a1ad85bb..1ad9aed8 100644
--- a/Software/dbus.mdwn
+++ b/Software/dbus.mdwn
@@ -89,15 +89,15 @@ Articles from around the web, including some tutorials:
dbus is the reference implementation of D-Bus. Released versions can be downloaded from the [[releases directory on dbus.freedesktop.org|http://dbus.freedesktop.org/releases/dbus/]] and are available in all major Linux distributions. If in doubt, use your distribution's packages.
-The current **stable** branch is [[dbus 1.12.x|https://gitlab.freedesktop.org/dbus/dbus/blob/dbus-1.12/NEWS]]. This is the recommended version for most purposes.
+The current **stable** branch is [[dbus 1.14.x|https://gitlab.freedesktop.org/dbus/dbus/blob/dbus-1.14/NEWS]]. This is the recommended version for most purposes.
-The current **legacy** branch is [[dbus 1.10.x|https://gitlab.freedesktop.org/dbus/dbus/blob/dbus-1.10/NEWS]]. This is still supported, but only for security fixes: only use this version when upgrading from older stable releases, or preparing security updates for frozen/stable distributions.
+The current **legacy** branch is [[dbus 1.12.x|https://gitlab.freedesktop.org/dbus/dbus/blob/dbus-1.12/NEWS]]. This is still supported, but only for security fixes: only use this version when upgrading from older stable releases, or preparing security updates for frozen/stable distributions.
-Older branches such as 1.8.x and 1.6.x have reached end-of-life and are unlikely to have any more releases, but distributors who still provide security support for an older version are invited to share backported patches via the older branches in the same git repository. Please contact the maintainers for more information.
+Older branches such as 1.10.x have reached end-of-life and are unlikely to have any more releases, but distributors who still provide security support for an older version are invited to share backported patches via the older branches in the same git repository. Please contact the maintainers for more information.
-The current **development** branch is [[dbus 1.13.x|https://gitlab.freedesktop.org/dbus/dbus/blob/master/NEWS]], which will lead to a 1.14.x stable branch in future. The development branch does not come with security support, and if it requires security fixes, they will often be released as part of an ordinary development release that also contains potentially destabilising changes. Please do not include a development branch of dbus in your OS distribution unless you can commit to tracking that branch and the stable branch that follows it, for example continuing to track dbus 1.13.x and then switching to 1.14.x when it becomes available.
+The current **development** branch is [[dbus 1.15.x|https://gitlab.freedesktop.org/dbus/dbus/blob/HEAD/NEWS]], which will lead to a 1.16.x stable branch in future. The development branch does not come with security support, and if it requires security fixes, they will often be released as part of an ordinary development release that also contains potentially destabilising changes. Please do not include a development branch of dbus in your OS distribution unless you can commit to tracking that branch and the stable branch that follows it, for example continuing to track dbus 1.15.x and then switching to 1.16.x when it becomes available.
-Superseded development branches such as 1.11.x and 1.9.x are entirely unsupported and do not receive any security fixes.
+Superseded development branches such as 1.13.x are entirely unsupported and do not receive any security fixes.
### Windows port
diff --git a/Software/desktop-file-utils.mdwn b/Software/desktop-file-utils.mdwn
index eeb81935..1732724b 100644
--- a/Software/desktop-file-utils.mdwn
+++ b/Software/desktop-file-utils.mdwn
@@ -5,7 +5,7 @@ desktop-file-utils contains a few command line utilities for working with [[desk
* desktop-file-validate: validates a desktop file and prints warnings/errors about desktop entry specification violations.
* desktop-file-install: installs a desktop file to the applications directory, optionally munging it a bit in transit.
* update-desktop-database: updates the database containing a cache of MIME types handled by desktop files.
-It requires [[GLib|http://download.gnome.org/sources/glib/]] to compile, because the implementation requires Unicode utilities and such.
+It requires [[GLib|https://download.gnome.org/sources/glib/]] to compile, because the implementation requires Unicode utilities and such.
### Development
@@ -15,6 +15,6 @@ The development occurs in git, in the [[xdg/desktop-file-utils|https://gitlab.fr
### Download
-Tarballs can be found at [[http://www.freedesktop.org/software/desktop-file-utils/releases/|http://www.freedesktop.org/software/desktop-file-utils/releases/]]
+Tarballs can be found at [[https://www.freedesktop.org/software/desktop-file-utils/releases/|https://www.freedesktop.org/software/desktop-file-utils/releases/]]
Release notes can be found in the [[NEWS file|https://gitlab.freedesktop.org/xdg/desktop-file-utils/blob/master/NEWS]].
diff --git a/Software/fontconfig.mdwn b/Software/fontconfig.mdwn
index a4ab0b14..bfff74f8 100644
--- a/Software/fontconfig.mdwn
+++ b/Software/fontconfig.mdwn
@@ -21,12 +21,12 @@ Fontconfig does not:
### Releases
-* The current stable series is 2.13.1. All releases are available in the [[release|http://fontconfig.org/release]] directory.
+* The current stable series is 2.14.2. All releases are available in the [[release|http://fontconfig.org/release]] directory.
### Documentation
-* [[FontConfig User Documentation|http://fontconfig.org/fontconfig-user.html]]
-* [[FontConfig Developer Documentation|http://fontconfig.org/fontconfig-devel/]]
+* [[FontConfig User Documentation|https://fontconfig.pages.freedesktop.org/fontconfig/fontconfig-user.html]]
+* [[FontConfig Developer Documentation|https://fontconfig.pages.freedesktop.org/fontconfig/fontconfig-devel/]]
* [[About Fontconfig|Software/fontconfig/About]]
* [[Fontconfig To Do List|Software/fontconfig/ToDo]]
* [[Devel releases|Software/fontconfig/Devel]]
diff --git a/Software/icon-theme.mdwn b/Software/icon-theme.mdwn
index 0cd9491b..35c6071e 100644
--- a/Software/icon-theme.mdwn
+++ b/Software/icon-theme.mdwn
@@ -5,7 +5,7 @@ icon-theme contains the standard also references the default icon theme called h
### Git
-The [[Git|Infrastructure/git]] module for this code is [[xdg/default-icon-theme|http://cgit.freedesktop.org/xdg/default-icon-theme/]].
+The [[Git|Infrastructure/git]] module for this code is [[xdg/default-icon-theme|https://gitlab.freedesktop.org/xdg/default-icon-theme]].
### Download
* [[hicolor-icon-theme-0.17.tar.gz|http://icon-theme.freedesktop.org/releases/hicolor-icon-theme-0.17.tar.xz]]
diff --git a/Software/libevdev.mdwn b/Software/libevdev.mdwn
index e58d06c3..ade636d8 100644
--- a/Software/libevdev.mdwn
+++ b/Software/libevdev.mdwn
@@ -91,10 +91,13 @@ All released versions can be found at: https://www.freedesktop.org/software/libe
* [1.9.1 - released Jul 16, 2020](https://lists.freedesktop.org/archives/input-tools/2020-July/001541.html)
* [1.10.0 - released Oct 26, 2020](https://lists.freedesktop.org/archives/input-tools/2020-October/001545.html)
* [1.10.1 - released Jan 11, 2021](https://lists.freedesktop.org/archives/input-tools/2021-January/001555.html)
+* [1.11.0 - released Feb 01, 2021](https://lists.freedesktop.org/archives/input-tools/2021-February/001557.html)
+* [1.12.0 - released Nov 09, 2021](https://lists.freedesktop.org/archives/input-tools/2021-November/001573.html)
+* [1.12.1 - released Mar 25, 2022](https://lists.freedesktop.org/archives/input-tools/2022-March/001574.html)
## git Repository
-* https://gitlab.freedesktop.org/libevdev/libevdev
+* [https://gitlab.freedesktop.org/libevdev/libevdev](https://gitlab.freedesktop.org/libevdev/libevdev)
## Documentation
diff --git a/Software/libinput.mdwn b/Software/libinput.mdwn
index d25cf433..03b91e2e 100644
--- a/Software/libinput.mdwn
+++ b/Software/libinput.mdwn
@@ -97,6 +97,21 @@ This wiki page provides only basic information, please see the [libinput documen
* [1.17.2 - released Apr 30, 2021](https://lists.freedesktop.org/archives/wayland-devel/2021-April/041809.html)
* [1.17.3 - released May 26, 2021](https://lists.freedesktop.org/archives/wayland-devel/2021-May/041834.html)
* [1.18.0 - released Jun 02, 2021](https://lists.freedesktop.org/archives/wayland-devel/2021-June/041849.html)
+ * [1.18.1 - released Aug 03, 2021](https://lists.freedesktop.org/archives/wayland-devel/2021-August/041934.html)
+ * [1.18.2 - released Apr 20, 2022](https://lists.x.org/archives/wayland-devel/2022-April/042162.html)
+* [1.19.0 - released Sep 14, 2021](https://lists.x.org/archives/wayland-devel/2021-September/041977.html)
+ * [1.19.1 - released Sep 28, 2021](https://lists.x.org/archives/wayland-devel/2021-September/041989.html)
+ * [1.19.2 - released Oct 21, 2021](https://lists.x.org/archives/wayland-devel/2021-October/042003.html)
+ * [1.19.3 - released Dec 13, 2021](https://lists.x.org/archives/wayland-devel/2021-December/042068.html)
+ * [1.19.4 - released Apr 20, 2022](https://lists.x.org/archives/wayland-devel/2022-April/042161.html)
+* [1.20.0 - released Feb 19, 2021](https://lists.x.org/archives/wayland-devel/2022-February/042111.html)
+
+**WARNING: Future releses will not be listed here.**
+
+As of 1.20.0 libinput now uses
+[GitLab releases](https://gitlab.freedesktop.org/libinput/libinput/-/releases) and all
+future releases will be available there.
+
### Earlier releases
As of the 0.12 release, the API/ABI is stable.
diff --git a/Software/libspectre.mdwn b/Software/libspectre.mdwn
index f2908365..8b87528a 100644
--- a/Software/libspectre.mdwn
+++ b/Software/libspectre.mdwn
@@ -1,6 +1,9 @@
## Latest news
+* 2023-01-08 [[libspectre 0.2.12|http://libspectre.freedesktop.org/releases/libspectre-0.2.12.tar.gz]] released!
+* 2022-11-04 [[libspectre 0.2.11|http://libspectre.freedesktop.org/releases/libspectre-0.2.11.tar.gz]] released!
+* 2022-02-12 [[libspectre 0.2.10|http://libspectre.freedesktop.org/releases/libspectre-0.2.10.tar.gz]] released!
* 2020-05-06 [[libspectre 0.2.9|http://libspectre.freedesktop.org/releases/libspectre-0.2.9.tar.gz]] released!
* 2016-07-02 [[libspectre 0.2.8|http://libspectre.freedesktop.org/releases/libspectre-0.2.8.tar.gz]] released!
* 2012-08-08 [[libspectre 0.2.7|http://libspectre.freedesktop.org/releases/libspectre-0.2.7.tar.gz]] released!
@@ -32,14 +35,14 @@ libspectre depends on libgs which is available at [[Ghostscript website|http://w
### Releases
-The latest release is [[libspectre 0.2.9|http://libspectre.freedesktop.org/releases/libspectre-0.2.9.tar.gz]].
+The latest release is [[libspectre 0.2.12|http://libspectre.freedesktop.org/releases/libspectre-0.2.12.tar.gz]].
Previous releases can be found in the [[release archive|http://libspectre.freedesktop.org/releases]].
### In-Progress Development
-libspectre is maintained with the [[git|http://git.or.cz/]] version control system. You may browse the source online using the [[web|http://cgit.freedesktop.org/libspectre]].
+libspectre is maintained with the [[git|https://git-scm.com/]] version control system. You may browse the source online using the [[web|http://cgit.freedesktop.org/libspectre]].
You may also use git to clone a local copy of the libspectre source code.
diff --git a/Software/systemd.mdwn b/Software/systemd.mdwn
index e4ee3837..74c0e2d2 100644
--- a/Software/systemd.mdwn
+++ b/Software/systemd.mdwn
@@ -62,9 +62,170 @@ Kernel 3.9.2-200.fc18.x86_64 on an x86_64 (console)
fedora login:
</pre>
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced. All the new contents are on the new website: [[https://systemd.io/]].**
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+---
+
+
+
# systemd System and Service Manager
-<img src="https://github.com/systemd/brand.systemd.io/raw/master/assets/page-logo.png">
+<img src="https://github.com/systemd/brand.systemd.io/raw/main/assets/page-logo.png">
## What is this?
diff --git a/Software/systemd/APIFileSystems.mdwn b/Software/systemd/APIFileSystems.mdwn
index 169a51cf..f1f36ba4 100644
--- a/Software/systemd/APIFileSystems.mdwn
+++ b/Software/systemd/APIFileSystems.mdwn
@@ -1,6 +1,20 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/userdocs/API_FILE_SYSTEMS.html]].**
+
+---
+
+---
+
+---
+
# API File Systems
_So you are seeing all kinds of weird file systems in the output of mount(8) that are not listed in `/etc/fstab`, and you wonder what those are, how you can get rid of them, or at least change their mount options._
diff --git a/Software/systemd/Backports.mdwn b/Software/systemd/Backports.mdwn
index c8cd4b93..dff3709a 100644
--- a/Software/systemd/Backports.mdwn
+++ b/Software/systemd/Backports.mdwn
@@ -1,5 +1,19 @@
[[Back to systemd|https://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/BACKPORTS.html]].**
+
+---
+
+---
+
+---
+
# Backports
The upstream systemd git repo at <https://github.com/systemd/systemd> only contains the main systemd branch that progresses at a quick pace, continuously bringing both bugfixes and new features. Distributions usually prefer basing their releases on stabilized versions branched off from this, that receive the bugfixes but not the features.
diff --git a/Software/systemd/ControlGroupInterface.mdwn b/Software/systemd/ControlGroupInterface.mdwn
index 6b460ca3..faf91f69 100644
--- a/Software/systemd/ControlGroupInterface.mdwn
+++ b/Software/systemd/ControlGroupInterface.mdwn
@@ -1,3 +1,18 @@
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/CONTROL_GROUP_INTERFACE.html]].**
+
+---
+
+---
+
+---
+
# The New Control Group Interfaces
> *aka "I want to make use of kernel cgroups, how do I do this in the new world order?"*
diff --git a/Software/systemd/DaemonSocketActivation.mdwn b/Software/systemd/DaemonSocketActivation.mdwn
index d0627e35..a52ad8db 100644
--- a/Software/systemd/DaemonSocketActivation.mdwn
+++ b/Software/systemd/DaemonSocketActivation.mdwn
@@ -1,3 +1,19 @@
+
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/userdocs/DAEMON_SOCKET_ACTIVATION.html]].**
+
+---
+
+---
+
+---
+
## nginx
nginx includes an undocumented, internal socket-passing mechanism based on the `NGINX` environmental variable. It uses this to perform reloads without having to close and reopen its sockets, but it's also useful for socket activation.
diff --git a/Software/systemd/Debugging.mdwn b/Software/systemd/Debugging.mdwn
index 1cf3eedd..beb5dc30 100644
--- a/Software/systemd/Debugging.mdwn
+++ b/Software/systemd/Debugging.mdwn
@@ -6,6 +6,23 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/userdocs/DEBUGGING.html]].**
+
+---
+
+---
+
+---
+
+
# Diagnosing Boot Problems
If your machine gets stuck during boot, first check if the hang happens before or after control passes to systemd.
diff --git a/Software/systemd/FileHierarchy.mdwn b/Software/systemd/FileHierarchy.mdwn
index dc4775e8..a04329d3 100644
--- a/Software/systemd/FileHierarchy.mdwn
+++ b/Software/systemd/FileHierarchy.mdwn
@@ -1,3 +1,18 @@
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/SYSTEMD_FILE_HIERARCHY_REQUIREMENTS.html]].**
+
+---
+
+---
+
+---
+
# systemd File Hierarchy Requirements
There are various attempts to standardize the file system hierarchy of Linux systems. In systemd we leave much of the file system layout open to the operating system, but here's what systemd strictly requires:
diff --git a/Software/systemd/FrequentlyAskedQuestions.mdwn b/Software/systemd/FrequentlyAskedQuestions.mdwn
index cc50fc63..c10df391 100644
--- a/Software/systemd/FrequentlyAskedQuestions.mdwn
+++ b/Software/systemd/FrequentlyAskedQuestions.mdwn
@@ -1,6 +1,21 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/userdocs/FAQ.html]].**
+
+---
+
+---
+
+---
+
# Frequently Asked Questions
Also check out the [[Tips & Tricks|http://www.freedesktop.org/wiki/Software/systemd/TipsAndTricks]]!
diff --git a/Software/systemd/Incompatibilities.mdwn b/Software/systemd/Incompatibilities.mdwn
index 0b08dfcb..87b45364 100644
--- a/Software/systemd/Incompatibilities.mdwn
+++ b/Software/systemd/Incompatibilities.mdwn
@@ -1,6 +1,20 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/userdocs/INCOMPATIBILITIES.html]].**
+
+---
+
+---
+
+---
+
# Compatibility with SysV
systemd provides a fair degree of compatibility with the behavior exposed by the SysV init system as implemented by many distributions. Compatibility is provided both for the user experience and the SysV scripting APIs. However, there are some areas where compatibility is limited due to technical reasons or design decisions of systemd and the distributions. All of the following applies to SysV init scripts handled by systemd, however a number of them matter only on specific distributions. Many of the incompatibilities are specific to distribution-specific extensions of LSB/SysV init.
diff --git a/Software/systemd/MinimalBuilds.mdwn b/Software/systemd/MinimalBuilds.mdwn
index f0c69acd..cfe24435 100644
--- a/Software/systemd/MinimalBuilds.mdwn
+++ b/Software/systemd/MinimalBuilds.mdwn
@@ -1,7 +1,21 @@
-
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/MINIMAL_BUILDS.html]].**
+
+---
+
+---
+
+---
+
+
# Minimal Builds
systemd includes a variety of components. The core components are always built (which includes systemd itself, as well as udevd and journald). Many of the other components can be disabled at compile time with configure switches.
diff --git a/Software/systemd/MyServiceCantGetRealtime.mdwn b/Software/systemd/MyServiceCantGetRealtime.mdwn
index 09b0761c..203923bf 100644
--- a/Software/systemd/MyServiceCantGetRealtime.mdwn
+++ b/Software/systemd/MyServiceCantGetRealtime.mdwn
@@ -1,7 +1,20 @@
-
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/userdocs/MY_SERVICE_CANT_GET_REATLIME.html]].**
+
+---
+
+---
+
+---
+
# My Service Can't Get Realtime!
_So, you have a service that requires real-time scheduling. When you run this service on your systemd system it is unable to acquire real-time scheduling, even though it is full root and has all possible privileges. And now you are wondering what is going on and what you can do about it?_
diff --git a/Software/systemd/NetworkTarget.mdwn b/Software/systemd/NetworkTarget.mdwn
index 633e8ae2..59a7a3af 100644
--- a/Software/systemd/NetworkTarget.mdwn
+++ b/Software/systemd/NetworkTarget.mdwn
@@ -1,5 +1,20 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/networking/NETWORK_ONLINE]].**
+
+---
+
+---
+
+---
+
+
# Running Services After the Network is up
_So you have configured your service to run after `network.target` but it still gets run before your network is up? And now you are wondering why that is and what you can do about it?_
diff --git a/Software/systemd/Optimizations.mdwn b/Software/systemd/Optimizations.mdwn
index 82a6fe9e..143d8e84 100644
--- a/Software/systemd/Optimizations.mdwn
+++ b/Software/systemd/Optimizations.mdwn
@@ -1,7 +1,20 @@
-
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/OPTIMIZATIONS.html]].**
+
+---
+
+---
+
+---
+
# systemd Optimizations
_So you are working on a Linux distribution or appliance and need very fast boot-ups?_
diff --git a/Software/systemd/Preset.mdwn b/Software/systemd/Preset.mdwn
index 3fbc27d1..0bd0182b 100644
--- a/Software/systemd/Preset.mdwn
+++ b/Software/systemd/Preset.mdwn
@@ -1,7 +1,20 @@
-
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/PRESET.html]].**
+
+---
+
+---
+
+---
+
# Presets
diff --git a/Software/systemd/TheCaseForTheUsrMerge.mdwn b/Software/systemd/TheCaseForTheUsrMerge.mdwn
index 995162be..cf9566f9 100644
--- a/Software/systemd/TheCaseForTheUsrMerge.mdwn
+++ b/Software/systemd/TheCaseForTheUsrMerge.mdwn
@@ -1,6 +1,21 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/THE_CASE_FOR_THE_USR_MERGE.html]].**
+
+---
+
+---
+
+---
+
# The Case for the /usr Merge
**Why the /usr Merge Makes Sense for Compatibility Reasons**
diff --git a/Software/systemd/TipsAndTricks.mdwn b/Software/systemd/TipsAndTricks.mdwn
index 1f2b4b64..1b5bba4a 100644
--- a/Software/systemd/TipsAndTricks.mdwn
+++ b/Software/systemd/TipsAndTricks.mdwn
@@ -1,5 +1,18 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/userdocs/TIPS_AND_TRICKS.html]].**
+
+---
+
+---
+
+---
# Tips & Tricks
diff --git a/Software/systemd/VirtualizedTesting.mdwn b/Software/systemd/VirtualizedTesting.mdwn
index b3daf5f7..15ae1179 100644
--- a/Software/systemd/VirtualizedTesting.mdwn
+++ b/Software/systemd/VirtualizedTesting.mdwn
@@ -1,6 +1,21 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/VIRTUALIZED_TESTING.html]].**
+
+---
+
+---
+
+---
+
# Testing systemd during Development in Virtualization
For quickly testing systemd during development it us useful to boot it up in a container and in a QEMU VM.
diff --git a/Software/systemd/autopkgtest.mdwn b/Software/systemd/autopkgtest.mdwn
index e74b8b7c..612fd314 100644
--- a/Software/systemd/autopkgtest.mdwn
+++ b/Software/systemd/autopkgtest.mdwn
@@ -1,6 +1,20 @@
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/AUTOPKGTEST.html]].**
+
+---
+
+---
+
+---
+
# Test description
-Full system integration/acceptance testing is done through [[autopkgtests|https://people.debian.org/~mpitt/autopkgtest/README.package-tests.html]]. These test the actual installed binary distribution packages. They are run in QEMU or containers and thus can do intrusive and destructive things such as installing arbitrary packages, modifying arbitrary files in the system (including grub boot parameters), rebooting, or loading kernel modules.
+Full system integration/acceptance testing is done through [[autopkgtests|https://salsa.debian.org/ci-team/autopkgtest/-/blob/master/doc/README.package-tests.rst]]. These test the actual installed binary distribution packages. They are run in QEMU or containers and thus can do intrusive and destructive things such as installing arbitrary packages, modifying arbitrary files in the system (including grub boot parameters), rebooting, or loading kernel modules.
The tests for systemd are defined in the [[Debian package's debian/tests|https://salsa.debian.org/systemd-team/systemd/tree/master/debian/tests]] directory. For validating a pull request, the Debian package is built using the unpatched code from that PR (via the [[checkout-upstream|https://salsa.debian.org/systemd-team/systemd/blob/master/debian/extra/checkout-upstream]] script), and the tests run against these built packages. Note that some tests which check Debian specific behaviour are skipped in "test upstream" mode.
@@ -56,7 +70,7 @@ The most basic mode of operation is to run the tests for the current distro pack
autopkgtest/runner/autopkgtest systemd -- qemu autopkgtest-bionic-amd64.img
-But autopkgtest allows lots of [[different modes|https://people.debian.org/~mpitt/autopkgtest/README.running-tests.html]] and [[options|http://manpages.ubuntu.com/autopkgtest]], like running a shell on failure (`-s`), running a single test only (`--test-name`), running the tests from a local checkout of the Debian source tree (possibly with modifications to the test) instead of from the distribution source, or running QEMU with more than one CPU (check the [[autopkgtest-virt-qemu manpage|http://manpages.ubuntu.com/autopkgtest-virt-qemu]].
+But autopkgtest allows lots of [[different modes|https://salsa.debian.org/ci-team/autopkgtest/-/blob/master/doc/README.running-tests.rst]] and [[options|http://manpages.ubuntu.com/autopkgtest]], like running a shell on failure (`-s`), running a single test only (`--test-name`), running the tests from a local checkout of the Debian source tree (possibly with modifications to the test) instead of from the distribution source, or running QEMU with more than one CPU (check the [[autopkgtest-virt-qemu manpage|http://manpages.ubuntu.com/autopkgtest-virt-qemu]].
A common use case is to check out the Debian packaging git for getting/modifying the tests locally:
diff --git a/Software/systemd/catalog.mdwn b/Software/systemd/catalog.mdwn
index 10231065..138571af 100644
--- a/Software/systemd/catalog.mdwn
+++ b/Software/systemd/catalog.mdwn
@@ -1,5 +1,19 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/CATALOG.html]].**
+
+---
+
+---
+
+---
+
# Journal Message Catalogs
diff --git a/Software/systemd/export.mdwn b/Software/systemd/export.mdwn
index 0635acd1..5505875c 100644
--- a/Software/systemd/export.mdwn
+++ b/Software/systemd/export.mdwn
@@ -4,7 +4,7 @@
---
-**This page moved to [[https://systemd.io/JOURNAL_FILE_FORMAT|https://systemd.io/JOURNAL_FILE_FORMAT]]**
+**This page moved to [[https://systemd.io/JOURNAL_EXPORT_FORMATS|https://systemd.io/JOURNAL_EXPORT_FORMATS]]**
---
diff --git a/Software/systemd/inhibit.mdwn b/Software/systemd/inhibit.mdwn
index 9c725a53..0aab6935 100644
--- a/Software/systemd/inhibit.mdwn
+++ b/Software/systemd/inhibit.mdwn
@@ -1,5 +1,19 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/INHIBITOR_LOCKS.html]].**
+
+---
+
+---
+
+---
+
# Inhibitor Locks
@@ -10,6 +24,7 @@ systemd 183 and newer include a logic to inhibit system shutdowns and sleep stat
* An office suite wants to be notified before system suspend in order to save all data to disk, and delay the suspend logic until all data is written.
* A web browser wants to be notified before system hibernation in order to free its cache to minimize the amount of memory that needs to be virtualized.
* A screen lock tool wants to bring up the screen lock right before suspend, and delay the suspend until that's complete.
+
Applications which want to make use of the inhibition logic shall take an inhibitor lock via the [[logind D-Bus API|http://www.freedesktop.org/wiki/Software/systemd/logind]].
Seven distinct inhibitor lock types may be taken, or a combination of them:
diff --git a/Software/systemd/json.mdwn b/Software/systemd/json.mdwn
index f6536940..1fee80a2 100644
--- a/Software/systemd/json.mdwn
+++ b/Software/systemd/json.mdwn
@@ -3,6 +3,12 @@
# Journal JSON Format
+---
+
+**This page moved to [[https://systemd.io/JOURNAL_EXPORT_FORMATS|https://systemd.io/JOURNAL_EXPORT_FORMATS]]**
+
+---
+
_Note that this document describes the JSON serialization format of the journal only, as used for interfacing with web technologies. For binary transfer of journal data across the network there's the [[Journal Export Format|http://www.freedesktop.org/wiki/Software/systemd/export]] instead. The binary format on disk is documented as [[Journal File Format|http://www.freedesktop.org/wiki/Software/systemd/journal-files]]._
Before reading on, please make sure you are aware of the [[basic properties of journal entries|http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html]], in particular realize that they may include binary non-text data (though usually don't), and the same field might have multiple values assigned within the same entry (though usually hasn't).
diff --git a/Software/systemd/separate-usr-is-broken.mdwn b/Software/systemd/separate-usr-is-broken.mdwn
index 63805d4a..f5a5fb6d 100644
--- a/Software/systemd/separate-usr-is-broken.mdwn
+++ b/Software/systemd/separate-usr-is-broken.mdwn
@@ -1,6 +1,21 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/userdocs/SEPARATE_USR_IS_BROKEN.html]].**
+
+---
+
+---
+
+---
+
# Booting Without /usr is Broken
You probably discovered this page because your shiny new systemd system referred you here during boot time, when it warned you that booting without /usr pre-mounted wasn't supported anymore. And now you wonder what this all is about. Here's an attempt of an explanation:
diff --git a/Software/systemd/syslog.mdwn b/Software/systemd/syslog.mdwn
index 6843395d..929ca708 100644
--- a/Software/systemd/syslog.mdwn
+++ b/Software/systemd/syslog.mdwn
@@ -1,6 +1,20 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/SYSLOG.html]].**
+
+---
+
+---
+
+---
+
# Writing syslog Daemons Which Cooperate Nicely With systemd
Here are a few notes on things to keep in mind when you work on a classic BSD syslog daemon for Linux, to ensure that your syslog daemon works nicely together with systemd. If your syslog implementation does not follow these rules, then it will not be compatible with systemd v38 and newer.
diff --git a/Software/systemd/systemd-boot.mdwn b/Software/systemd/systemd-boot.mdwn
index 013dffcf..ffc7a740 100644
--- a/Software/systemd/systemd-boot.mdwn
+++ b/Software/systemd/systemd-boot.mdwn
@@ -1,3 +1,17 @@
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/BOOT.html]].**
+
+---
+
+---
+
+---
+
# systemd-boot UEFI Boot Manager
systemd-boot is a UEFI boot manager which executes configured EFI images. The default entry is selected by a configured pattern (glob) or an on-screen menu.
diff --git a/Software/systemd/writing-desktop-environments.mdwn b/Software/systemd/writing-desktop-environments.mdwn
index 92ccfb05..5bbbe5b1 100644
--- a/Software/systemd/writing-desktop-environments.mdwn
+++ b/Software/systemd/writing-desktop-environments.mdwn
@@ -1,7 +1,21 @@
-
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/WRITING_DESKTOP_ENVIRONMENTS.html]].**
+
+---
+
+---
+
+---
+
+
# Writing Desktop Environments
_Or: how to hook up your favorite desktop environment with logind_
diff --git a/Software/systemd/writing-display-managers.mdwn b/Software/systemd/writing-display-managers.mdwn
index 5fdf5de5..b2bd2d32 100644
--- a/Software/systemd/writing-display-managers.mdwn
+++ b/Software/systemd/writing-display-managers.mdwn
@@ -1,7 +1,20 @@
-
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/WRITING_DISPLAY_MANAGERS.html]].**
+
+---
+
+---
+
+---
+
# Writing Display Managers
_Or: How to hook up your favorite X11 display manager with systemd_
diff --git a/Software/systemd/writing-network-configuration-managers.mdwn b/Software/systemd/writing-network-configuration-managers.mdwn
index d3f5472c..dd1986cd 100644
--- a/Software/systemd/writing-network-configuration-managers.mdwn
+++ b/Software/systemd/writing-network-configuration-managers.mdwn
@@ -1,5 +1,20 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/WRITING_NETWORK_CONFIGURATION_MANAGERS.html]].**
+
+---
+
+---
+
+---
+
# Writing Network Configuration Managers
_Or: How to hook up your favourite network configuration manager's DNS logic with `systemd-resolved`_
diff --git a/Software/systemd/writing-resolver-clients.mdwn b/Software/systemd/writing-resolver-clients.mdwn
index 396a0922..81a0e8ec 100644
--- a/Software/systemd/writing-resolver-clients.mdwn
+++ b/Software/systemd/writing-resolver-clients.mdwn
@@ -1,5 +1,20 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/WRITING_RESOLVER_CLIENTS.html]].**
+
+---
+
+---
+
+---
+
# Writing Resolver Clients
_Or: How to look up hostnames and arbitrary DNS Resource Records via `systemd-resolved`'s bus APIs_
diff --git a/Software/systemd/writing-vm-managers.mdwn b/Software/systemd/writing-vm-managers.mdwn
index ce3afd2d..51361625 100644
--- a/Software/systemd/writing-vm-managers.mdwn
+++ b/Software/systemd/writing-vm-managers.mdwn
@@ -1,5 +1,20 @@
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]]
+
+---
+
+---
+
+---
+
+**This page has been obsoleted and replaced: [[https://systemd.io/devdocs/WRITING_VM_AND_CONTAINER_MANAGERS.html]].**
+
+---
+
+---
+
+---
+
# Writing VM and Container Managers
_Or: How to hook up your favorite VM or container manager with systemd_
diff --git a/Software/uchardet.mdwn b/Software/uchardet.mdwn
index 57b6986c..5cc4ae6f 100644
--- a/Software/uchardet.mdwn
+++ b/Software/uchardet.mdwn
@@ -4,13 +4,9 @@
uchardet started as a C language binding of the original C++ implementation of the universal charset detection library by Mozilla. It can now detect more charsets, and more reliably than the original implementation.
-The original code of universalchardet is available at <http://lxr.mozilla.org/seamonkey/source/extensions/universalchardet/>
-
-Techniques used by universalchardet are described at <http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html>
-
Report bugs and contribute patches at (check opened bugs first): <https://gitlab.freedesktop.org/uchardet/uchardet/-/issues>
-Last release: [uchardet version 0.0.7](https://www.freedesktop.org/software/uchardet/releases/) ([release note](https://gitlab.freedesktop.org/uchardet/uchardet/-/releases/v0.0.7), [git repository for dev code](https://gitlab.freedesktop.org/uchardet/uchardet.git))
+Last release: [uchardet version 0.0.8](https://www.freedesktop.org/software/uchardet/releases/) ([release note](https://gitlab.freedesktop.org/uchardet/uchardet/-/releases/v0.0.8), [git repository for dev code](https://gitlab.freedesktop.org/uchardet/uchardet.git)) on 2022-12-08.
## Supported Languages/Encodings
@@ -43,6 +39,7 @@ Last release: [uchardet version 0.0.7](https://www.freedesktop.org/software/ucha
* IBM852
* MAC-CENTRALEUROPE
* Danish
+ * IBM865
* ISO-8859-1
* ISO-8859-15
* WINDOWS-1252
@@ -107,6 +104,11 @@ Last release: [uchardet version 0.0.7](https://www.freedesktop.org/software/ucha
* ISO-8859-13
* Maltese
* ISO-8859-3
+ * Norwegian
+ * IBM865
+ * ISO-8859-1
+ * ISO-8859-15
+ * WINDOWS-1252
* Polish:
* ISO-8859-2
* ISO-8859-13
@@ -186,6 +188,10 @@ Last release: [uchardet version 0.0.7](https://www.freedesktop.org/software/ucha
brew install uchardet
+or
+
+ port install uchardet
+
### Windows
Binary packages are provided in Fedora and Msys2 repositories. There may
@@ -198,7 +204,8 @@ to use MinGW-w64 instead of MinGW, in particular to build both 32 and
64-bit DLL libraries).
Note also that it is very easily cross-buildable (for instance from a
-GNU/Linux machine).
+GNU/Linux machine); [crossroad](https://pypi.org/project/crossroad/) may
+help, this is what we use in our CI).
### Build from source
@@ -233,6 +240,29 @@ Here is a working "module" section to include in your Flatpak's json manifest:
}
]
+### Build with CMake exported targets
+
+uchardet installs a standard pkg-config file which will make it easily
+discoverable by any modern build system. Nevertheless if your project also uses
+CMake and you want to discover uchardet installation using CMake exported
+targets, you may find and link uchardet with:
+
+ project(sample LANGUAGES C)
+ find_package ( uchardet )
+ if (uchardet_FOUND)
+ add_executable( sample sample.c )
+ target_link_libraries ( sample PRIVATE uchardet::libuchardet )
+ endif ()
+
+Note though that we recommend the library discovery with `pkg-config` because it
+is standard and generic. Therefore it will always work, even if we decided to
+change our own build system (which is not planned right now, but may always
+happen). This is why we advise to use standard `pkg-config` discovery.
+
+Some more CMake specificities may be found in the [commit
+message](https://gitlab.freedesktop.org/uchardet/uchardet/-/commit/d7dad549bd5a3442b92e861bcd2c5cda2adeea27)
+which implemented such support.
+
## Usage
### Command Line
@@ -251,8 +281,41 @@ Here is a working "module" section to include in your Flatpak's json manifest:
See [[uchardet.h|https://cgit.freedesktop.org/uchardet/uchardet/tree/src/uchardet.h]]
+## History
+
+As said in introduction, this was initially a project of Mozilla to
+allow better detection of page encodings, and it used to be part of
+Firefox. If not mistaken, this is not the case anymore (probably because
+nowadays most websites better announce their encoding, and also UTF-8 is
+much more widely spread).
+
+Techniques used by universalchardet are described at https://www-archive.mozilla.org/projects/intl/universalcharsetdetection
+
+It is to be noted that a lot has changed since the original code, yet
+the base concept is still around, basing detection not just on encoding
+rules, but importantly on analysis of character statistics in languages.
+
+Original code of `universalchardet` by Mozilla can still be found from the
+[Wayback machine](https://web.archive.org/web/20150730144356/http://lxr.mozilla.org/seamonkey/source/extensions/universalchardet/).
+
+Mozilla code was extracted and packaged into a standalone library under
+the name `uchardet` by BYVoid in 2011, in a personal repository.
+Starting 2015, I (i.e. Jehan) started contributing, "standardized"
+the output to be iconv-compatible, added various encoding/language
+support and streamlined generation of sources for new support of
+encoding/languages by using texts from Wikipedia as statistics source on
+languages through Python scripts. Then I soon became co-maintainer.
+In 2016, `uchardet` became a freedesktop project.
+
## Related Projects
+Some of these are bindings of `uchardet`, others are forks of the same
+initial code, which has diverged over time, others are native port in
+other languages.
+This list is not exhaustive and only meant as point of interest. We
+don't follow the status for these projects.
+
+ * [R-uchardet](https://cran.r-project.org/package=uchardet) R binding on CRAN
* [[python-chardet|https://github.com/chardet/chardet]] Python port
* [[ruby-rchardet|http://rubyforge.org/projects/chardet/]] Ruby port
* [[juniversalchardet|http://code.google.com/p/juniversalchardet/]] Java port of universalchardet
@@ -261,7 +324,16 @@ See [[uchardet.h|https://cgit.freedesktop.org/uchardet/uchardet/tree/src/ucharde
* [[nchardet|http://www.conceptdevelopment.net/Localization/NCharDet/]] C# port of chardet
* [[uchardet-enhanced|https://bitbucket.org/medoc/uchardet-enhanced]] A fork of mozilla universalchardet
* [[rust-uchardet|https://github.com/emk/rust-uchardet]] Rust language binding of uchardet
- * [[libchardet|https://ftp.oops.org/pub/oops/libchardet/]] Another C/C++ API wrapping Mozilla code.
+ * [libchardet](https://github.com/Joungkyun/libchardet) Another C/C++ API wrapping Mozilla code.
+
+## Used by
+
+* [mpv](https://mpv.io/) for subtitle detection
+* [Tepl](https://wiki.gnome.org/Projects/Tepl)
+* [Nextcloud IOS app](https://github.com/nextcloud/ios)
+* [Codelite](https://codelite.org)
+* [QtAV](https://www.qtav.org/)
+* …
## License
diff --git a/Software/xdg-user-dirs.mdwn b/Software/xdg-user-dirs.mdwn
index cca81603..563c81f1 100644
--- a/Software/xdg-user-dirs.mdwn
+++ b/Software/xdg-user-dirs.mdwn
@@ -32,6 +32,10 @@ The [[Git|Infrastructure/git]] module for this code is [[xdg/xdg-user-dirs|http:
### Download
+* <http://user-dirs.freedesktop.org/releases/xdg-user-dirs-0.18.tar.gz>
+ * Fixed minor leak
+ * Updated translations
+ * Documentation fixes
* <http://user-dirs.freedesktop.org/releases/xdg-user-dirs-0.17.tar.gz>
* Respect $HOME in favour of getpwuid()
* Updated translations
diff --git a/Software/xdg-utils.mdwn b/Software/xdg-utils.mdwn
index 5c3e8d8b..7d880fb5 100644
--- a/Software/xdg-utils.mdwn
+++ b/Software/xdg-utils.mdwn
@@ -11,7 +11,7 @@ running.
## Download
-* [Releases](http://portland.freedesktop.org/download/)
+* [Releases](https://gitlab.freedesktop.org/xdg/xdg-utils/-/releases)
* [Git repository](http://cgit.freedesktop.org/xdg/xdg-utils/)
## Included utilities
diff --git a/Software/xrestop.mdwn b/Software/xrestop.mdwn
index 2bd1b39a..e179ae63 100644
--- a/Software/xrestop.mdwn
+++ b/Software/xrestop.mdwn
@@ -26,6 +26,7 @@ xrestop was written by Matthew Allum.
* [[xrestop-0.2.tar.gz|http://downloads.yoctoproject.org/releases/xrestop/xrestop-0.2.tar.gz]]: Adds missing man page, spec file
* [[xrestop-0.3.tar.gz|http://downloads.yoctoproject.org/releases/xrestop/xrestop-0.3.tar.gz]]: Tweaks for Solaris. Man page improvements.
* [[xrestop-0.4.tar.gz|http://downloads.yoctoproject.org/releases/xrestop/xrestop-0.4.tar.gz]]: Quit (q) key support, PID detect bug fixes + other minor tweaks
+* [[xrestop-0.5.tar.gz|https://xorg.freedesktop.org/archive/individual/app/xrestop-0.5.tar.bz2]]: Add ShmSeg resource count + various fixes
### git Source Repos