Linux Galaxy

Site Migration to Slackware 15.0

Posted on Jun 04, 2022 by bkoenig


After celebrating the release of Slackware 15.0, it was time to migrate LinuxGalaxy.org. Since the new OS includes a working python3 stack by default, getting my CMS and other tools up and running was much easier.

Previously, this site was using a custom compiled python3 installation with various python modules installed using pip and venv. This made it difficult to track what versions of these modules were installed using the tools I'm accustomed to. It also presented problems with reproducible builds. Using pip (and various other web-based package managers) make it difficult to maintain consistent versions of a given module across multiple machines.

To work around that issue, you either need to tell pip which versions you want installed, or build your own custom packages. Since 15.0 includes several of the most common python modules, the latter option requires significantly less effort on my part.

Other than that, the migration from 14.2 -> 15.0 is no different than it has been for any previous version. While there are a lot of new packages and systems the standard Slackware experience is no different than it was 10 years ago.



Replacing Pulseaudio with Pipewire

Posted on Feb 03, 2021 by bkoenig


On Linux, all of the layered subsystems required to play sound from your speakers are exposed to the user. For those interested in trying out Pipewire, the latest user-space daemon in audio device management, here's a short guide.

What is pipewire?

From the official pipewire website (https://pipewire.org): PipeWire is a project that aims to greatly improve handling of audio and video under Linux.

"It provides a low-latency, graph based processing engine on top of audio and video devices that can be used to support the use cases currently handled by both pulseaudio and JACK. PipeWire was designed with a powerful security model that makes interacting with audio and video devices from containerized applications easy, with supporting Flatpak applications being the primary goal. Alongside Wayland and Flatpak we expect PipeWire to provide a core building block for the future of Linux application development."

Pipewire is installed by default in Slackware for all versions after 14.2. To use it we need to disable pulseaudio and add pipewire-pulse to our autostart script.

Disabling Pulseaudio

first we need to disable pulseaudio. This is a bit more complicated than you would expect because we cannot simply remove the libraries. Applications still link to the shared libraries and will use it to communicate with pipewire. What we need to do is disable the daemon auto-start feature that causes the pulseaudio service to start everytime an application launches. We make this change in /etc/pulse/client.conf

 1## Configuration file for PulseAudio clients. See pulse-client.conf(5) for
 2## more information. Default values are commented out.  Use either ; or # for
 3## commenting.
 4
 5; default-sink =
 6; default-source =
 7; default-server =
 8; default-dbus-server =
 9
10autospawn = no
11allow-autospawn-for-root = yes

Make sure autospawn = no is in this file. Now the daemon will not be started by applications that play audio.

Setting up PipeWire

Pipewire config files are stored in /etc/pipewire/

Open /etc/pipewire/pipewire.conf and look for the exec = option. This controls how the pipewire daemon process is started and may look like this:

 1## <program-name> = { [args = "<arguments>"] }
 2    #
 3    # Execute the given program with arguments.
 4    #
 5    # Start the session manager. Run the session manager with -h for
 6    # options.
 7    #
 8    # The bluetooth module is disabled by default because it causes
 9    # conflicts with PulseAudio. If you disable PulseAudio or don't
10    # load its bluetooth module, you can enable it here with -e bluez5
11    #
12    "/usr/bin/pipewire-media-session" = { args = ""}
13    #
14    # You can optionally start the pulseaudio-server here as well
15    # but it better to start it as a systemd service.
16    # It can be interesting to start another daemon here that listens
17    # on another address with the -a option (eg. -a tcp:4713)
18    #
19    "/usr/bin/pipewire-pulse" = { "#args" = "-a tcp:4713" }
20}

Make sure the line for /usr/bin/pipewire-pulse is uncommented. This provides a pulse-compatible daemon that allows applications expecting pulseaudio to communicate with the pipewire daemon. Think of PipeWire as a drop in replacement for Pulseaudio!

Start the daemon

Pipewire doesn't need to run as root. Simply add the process to your autostart script as defined by your desktop of choice. In KDE you can add this in the system settings or for simpler window managers just add the command "pipewire" to your startup script so that it gets started every time you log in.

Make some noise!

All pulseaudio aware applications should see the pipewire-pulse daemon as a suitable replacement. Pavucontrol and apps like Firefox should be able to play sound without any further changes!

Keep in mind that Pipewire is still unfinished, so you may encounter minor problems such as popping audio. As things are improved over time Pipewire will likely become a more standard part of the Linux desktop.



Weekly Updates Tracker - 1/30/2021

Posted on Jan 31, 2021 by bkoenig


Weekly update statistics are here for January 30, 2021! This is where Official updates in the Slackware changelog are retrieved, summarized, and presented for YOUR viewing pleasure.

Enjoy and be sure to visit the Official Slackware Changelog for full details!

http://www.slackware.com/changelog/

Overall Package Activity
Gnuplot Produced by GNUPLOT 5.4 patchlevel 1 0 10 20 30 40 50 60 01/23/2021 01/24/2021 01/25/2021 01/26/2021 01/27/2021 01/28/2021 01/29/2021 01/30/2021 # of Changes Upgraded Upgraded Added Added Removed Removed Rebuilt Rebuilt Other Other Daily Package Changes for week of 2021-01-23
Gnuplot Produced by GNUPLOT 5.4 patchlevel 1 0 50 100 150 200 250 Upgraded Added Removed Rebuilt Other # of updates Update Type gnuplot_plot_1 Package Changes by Type 2021-01-23 to 2021-01-30

Activity this week has revolved around upgrading existing packages to their newer versions. This week also saw the removal of several noteworthy packages:

  • l/gst-plugins-base0-0.10.36-x86_64-4.txz
  • l/gst-plugins-good0-0.10.31-x86_64-4.txz
  • l/gstreamer0-0.10.36-x86_64-3.txz
  • n/openssl10-1.0.2u-x86_64-2.txz

These were obsolete versions of gstreamer and openssl that are unlikely to be used in any currently maintained applications. Note that these packages are still available in stable releases (14.0, 14.1, 14.2).

Activity for January, 2021
Gnuplot Produced by GNUPLOT 5.4 patchlevel 1 0 500 1000 1500 2000 2500 3000 3500 01/07/2021 01/14/2021 01/21/2021 01/28/2021 # of Changes Upgraded Upgraded Added Added Removed Removed Rebuilt Rebuilt Other Other Daily Package Changes for January 2021
Gnuplot Produced by GNUPLOT 5.4 patchlevel 1 0 500 1000 1500 2000 2500 3000 3500 Upgraded Added Removed Rebuilt Other # of updates Update Type gnuplot_plot_1 Package Changes by Type January 2021

January 2021 saw a mass rebuild for the entire slackware package tree. More than 3000 packages were recompiled against the new toolchain. This recompile only applies to -current and is the biggest update in Slackware history, beating the previous record set in 2018 when 2460 packages were recompiled.

In addition to changes made across all versions, the latest stable release (14.2) saw a trickle of updates to keep up with upstream. 14 security updates were released for 14.2.

Happy Slacking!

That's it for the week of January 30, 2021. The plan is to continue this every Saturday, with minor tweaks to improve the usefulness of the data.

Also want to give a big shout out to Patrick Volkerding and the rest of The Slackware Team. Slackware 15 looks like it's going to be awesome.


Thanks for keeping the project going all these years!



Dev activity in Slackware

Posted on Jan 22, 2021 by bkoenig


As a Slackware user, I often run into situations where I find myself having to prove that Slackware is in fact a current and up-to-date Linux Distribution. Since we now live in an era of "data driven" decision making here are some statistics that showcase the pace of Slackware development.

Did you look in the Changelog?

If you've ever told a Slackware user that you don't see any activity on Slackware.com, you were probably asked that question. Slackware has no marketing team, no social media influencers, or the support of a user-facing foundation. Development is handled by a small team and all official communication with users occurs within the changelog itself. To help illustrate the activity level of the Slackware project, I have been working on parsing the changelog data in python in order to present in a more human-friendly format. Changelogs are parsed using python, and charts are generated by gnuplot on Slackware -current.

Understanding the changelog

Updates in the Slackware have followed the same pattern since version 12.0, back in 2007. Take the update from January 20, 2021 as an example:

 1+--------------------------+
 2Wed Jan 20 03:08:10 UTC 2021
 3a/btrfs-progs-5.10-x86_64-1.txz:  Upgraded.
 4a/dialog-1.3_20210117-x86_64-1.txz:  Upgraded.
 5a/glibc-solibs-2.32-x86_64-1.txz:  Upgraded.
 6a/kernel-firmware-20210119_0578970-noarch-1.txz:  Upgraded.
 7a/kernel-generic-5.10.9-x86_64-1.txz:  Upgraded.
 8a/kernel-huge-5.10.9-x86_64-1.txz:  Upgraded.
 9a/kernel-modules-5.10.9-x86_64-1.txz:  Upgraded.
10d/gcc-10.2.0-x86_64-3.txz:  Rebuilt.
11d/gcc-brig-10.2.0-x86_64-3.txz:  Rebuilt.
12d/gcc-g++-10.2.0-x86_64-3.txz:  Rebuilt.
13d/gcc-gdc-10.2.0-x86_64-3.txz:  Rebuilt.
14d/gcc-gfortran-10.2.0-x86_64-3.txz:  Rebuilt.
15d/gcc-gnat-10.2.0-x86_64-3.txz:  Rebuilt.
16d/gcc-go-10.2.0-x86_64-3.txz:  Rebuilt.
17d/gcc-objc-10.2.0-x86_64-3.txz:  Rebuilt.
18d/help2man-1.47.17-x86_64-1.txz:  Upgraded.
19d/kernel-headers-5.10.9-x86-1.txz:  Upgraded.
20d/rust-1.49.0-x86_64-1.txz:  Upgraded.
21k/kernel-source-5.10.9-noarch-1.txz:  Upgraded.
22kde/krita-4.4.2-x86_64-1.txz:  Upgraded.
23l/glibc-2.32-x86_64-1.txz:  Upgraded.
24l/glibc-i18n-2.32-x86_64-1.txz:  Upgraded.
25l/glibc-profile-2.32-x86_64-1.txz:  Upgraded.
26n/dnsmasq-2.83-x86_64-1.txz:  Upgraded.
27n/openldap-2.4.57-x86_64-1.txz:  Upgraded.
28xap/mozilla-firefox-78.6.1esr-x86_64-2.txz:  Rebuilt.
29xap/mozilla-thunderbird-78.6.1-x86_64-2.txz:  Rebuilt.
30xap/seamonkey-2.53.5.1-x86_64-2.txz:  Rebuilt.
31xap/xaos-4.2.1-x86_64-1.txz:  Upgraded.
32isolinux/initrd.img:  Rebuilt.
33kernels/*:  Upgraded.
34usb-and-pxe-installers/usbboot.img:  Rebuilt.

Every update to the changelog as a timestamp, the package name, and what was done to the package. This means that on 1/20/2021 the Linux kernel was upgraded to version 5.10.9. Because the Slackware team is so consistent in how they announce changes, we can parse this and visualize the data going back an arbitrary number of years.

Counting all Slackware Updates
Gnuplot Produced by GNUPLOT 5.4 patchlevel 1 0 500 1000 1500 2000 2500 3000 Jan 2006 Jan 2008 Jan 2010 Jan 2012 Jan 2014 Jan 2016 Jan 2018 Jan 2020 Jan 2022 # of Packages Upgraded Upgraded Moved Moved Added Added Removed Removed Rebuilt Rebuilt Other Other Package Count on Release Package Count on Release gnuplot_plot_8 12.0 12.1 12.2 13.0 13.1 13.37 14.0 14.1 14.2 15.0 (current) Slackware Package Changes Number of packages changed per Month

This is count of all slackware updates, organized by type. I'm also comparing it to the number of packages total in the distribution on release. This shows that Slackware has grown significantly over time and that the time between releases has also increased.


It is important to note that"rebuilds" are situtations where a package is recompiled with no version changes. This is usually due to upgrades in the tool-chain or other core dependencies. The large spike in 2018 was due to a mass rebuild in which the entire OS was recompiled.

But what about recent updates?

Slackware is old! Has anything changed recently?

Gnuplot Produced by GNUPLOT 5.4 patchlevel 1 0 200 400 600 800 1000 1200 1400 1600 Jan 2020 Feb 2020 Mar 2020 Apr 2020 May 2020 Jun 2020 Jul 2020 Aug 2020 Sep 2020 Oct 2020 Nov 2020 # of Packages Upgraded Upgraded Moved Moved Added Added Removed Removed Rebuilt Rebuilt Other Other Package Count on Release Package Count on Release gnuplot_plot_8 Slackware Package Changes Updates by-type for 2020

Yes it has! 2020 saw the addition of KDE Plasma into the official Slackware distribution. Many Slackware users have been running KDE using an unofficial "ktown" repository but now the desktop has officially been added. The spike in added packages at the end of 2020 is largely due to that. As we approach the release of 15.0 you will also see a lot of packages being rebuilt against the newer GCC and other core libraries.

Still working on the tools..

This is part of an ongoing project. As I work on the tools used to digest the slackware changelog I'll release more detailed information. Hopefully someone out there finds this stuff interesting because I know I do :-)



New Year, New Blog

Posted on Jan 01, 2021 by bkoenig


Jumping into 2021 with a new blog and other online tools.

Its finally time to broadcast myself to the internet! Due to Trust issues with common web platforms, I decided to put together my own CMS system utilizing some python web frameworks to fill in the boilerplate code. linuxgalaxy.org also provides a basic file storage area so any software packages or other things worth sharing will have a secure place to live.

I plan on releasing updates for the various software projects in the works here as well as other fun tidbits as they come to mind. There are no Like, Share, or Subscribe buttons and if you were looking for a comments section to spew random opinions on, well sucks to be you!

  • Related Topics:


Older posts

Web 1.5

A dynamic blog without javascript.

slack-penguin-bw.gif