Category Archives: Slackware

Replacing ConsoleKit2 with elogind – first steps

Well ūüôā This was a short reprieve.
I created a new batch of Plasma5 packages for Slackware-current as KDE-5_20.06. Be sure to read the upgrade instructions very carefully to prevent a total breakage, because this month’s batch is non-standard. More detail about the upgrade steps (like: remove ConsoleKit2 first!) to follow is in the bottom section of this post.

Why a new ‘ktown‘ release so soon after lamenting in my previous post that there would not be a new release for a while?

It is simple and complex at the same time, really.
I was fed up with monthly releases, they felt like a chore I could not get rid of. But the addition of PAM presented opportunities and since I had already declared that no public release should be expected for a while, I suddenly had time to research privately into a nagging problem that was always on the backburner: Wayland sessions in KDE Plasma5 for Slackware. I had this running somewhat, a couple of years ago but it is totally broken for Slackware today.
The Wayland implementation in KDE Plasma5 depends on a session API called “login1” which was originally defined and implemented by systemd and is for the most part (read: the relevant part) implemented in ConsoleKit2 as well. In the current state of software development, unfortunately ConsoleKit2 is blocking a successful Wayland implementation in Slackware; fixing this demands another core change in Slackware (next to PAM).
As if adding PAM was not ‘bad’ enough, we also need the spawn of systemd. Yes, I looked into elogind as a replacement for ConsoleKit2. The elogind sofware – exactly like eudev which we already have in Slackware – is a component of the systemd codebase, which has been isolated, sanitized, with changes away from the name ‘systemd’ and the code has been made fully independent of systemd.
I talked to Patrick about whether he would consider getting rid of ConsoleKit2. For me this was the only motive to continue dabbling with the ‘ktown’ scripts anyway. And he agreed, so I coded some scripting updates, and tested, and failed and failed. That did bad things to my mood, so I checked all my work-in-progress into a git branch and decided to leave it there for a while, simply because I did not have the time anymore, personal life demanded priority.
Some people noticed the new ‘elogind’ git branch, cloned it and continued the experiment. The resulting debugging effort resolved the dead-end I had been facing. And voila, a new package set was the result, with elogind added and thanking ConsoleKit2 for services rendered.
At the same time (thanks Patrick!) Pat Volkerding modified ‘/etc/rc.d/rc.M’ inside the sysvinit-scripts package, and ‘/etc/pam.d/login’ inside the util-linux package of Slackware-current so that they are now compatible with both ConsoleKit2 and elogind:

Thu Jun 18 22:01:29 UTC 2020
a/sysvinit-scripts-2.1-noarch-33.txz: Rebuilt.
  rc.M: add support for elogind. Thanks to alienBOB.
a/util-linux-2.35.2-x86_64-3.txz: Rebuilt.
  /etc/pam.d/login: support pam_elogind.so. Thanks to alienBOB.

followed one day later by the omitted fix to the ‘startx‘ script and a safeguard for those of you who can not read instructions and failed to remove the ConsoleKit2 package:

Fri Jun 19 19:59:04 UTC 2020
a/sysvinit-scripts-2.1-noarch-34.txz: Rebuilt.
  rc.M: check for elogind first so that we can ignore a stale CK2 package.
x/xinit-1.4.1-x86_64-2.txz: Rebuilt.
  When using elogind, start the session on the current console.
  Thanks to alienBOB.

This eased my job considerably. Consider the new ‘ktown’ release as a prep test for inclusion into Slackware.

Elogind and Wayland

Yes, Plasma5 Wayland sessions work now, thanks to the earlier PAM inclusion and now the elogind addition. You can start a Plasma Wayland session via SDDM (runlevel 4) by selecting it in the session drop-down menu.
And you can start a Plasma Wayland session at the console (runlevel 3) by executing the “startkwayland” command.

Note that with elogind as the session/seat manager instead of ConsoleKit2, you’ll see some new behaviour.
A quite obvious change: if you run ‘startx’ or ‘startkwayland’ at the console, you won’t see a VT (virtual terminal) switch. In the past, your console TTY would usually be tty1 but your graphical session would start on tty7 and you would automatically be switched from tty1 to tty7. This is no longer true – the graphical session will re-use your console TTY.
SDDM is still starting on tty7 but only because I make it do so via its configuration file.

Elogind adds a couple of commands which allow you to inspect the nature and status of the logged-in users and their sessions & seats. Check out “man loginctl”. To understand more about the elogind configuration options, read “man logind.conf”.

Running a Wayland session using the proprietary NVIDIA driver is possible – who’d have thought. For a long while, there was an unsurmountable incompatibility between Wayland protocol implementations and the proprietary drivers of Nvidia which historically support only X.Org. But Nvidia added EGLStreams support to their driver a few years back which opened a lot of possibilities.

EGLStreams¬†is one of the two APIs through which a Wayland compositor can talk to a GPU driver. The other API is GBM and this is the API used by all of the Linux kernel’s GPU drivers. All Wayland compositors support GBM, but support for Nvidia’s EGLStreams is limited (momentarily) to the Wayland compositors in KDE and Gnome.

Taken from https://community.kde.org/Plasma/Wayland/Nvidia you should prepare as follows.

  • Qt5 >= 5.15 is a requirement, luckily we already have that in Slackware.
  • X.Org release >= 1.20 is needed for EGLStreams support in XWayland, which means that all X Window clients which are started in your Wayland session will also have accelerated graphics rendering. Again, Slackware’s version of xorg-server is sufficiently new.
  • You need to enable modesetting in the kernel for the Nvidia driver. You can easily check (as root) whether kernel modesetting is enabled by running “cat /sys/module/nvidia_drm/parameters/modeset”. The command’s output should be “Y”.
    If you get a “N”, then you need to add the string “nvidia-drm.modeset=1” to the kernel’s boot commandline e.g. via the ‘append’ parameter in (e)lilo.conf or syslinux.cfg.
    For grub you can add that append-string to the GRUB_CMDLINE_LINUX_DEFAULT definition in the file “/etc/default/grub”, so that when you run “grub-mkconfig -o /boot/grub/grub.cfg” it will be added in every declaration block (thanks to willysr).
  • KWin needs to use EGLStreams for accelerated graphics support, as explained above, or else it will default to GBM and you won’t be happy with the¬† 1 FPS refresh rate on your monitor!
    You need to set the environment variable¬†KWIN_DRM_USE_EGL_STREAMS to the value of “1“.
    One way to do this is to create a profile script (e.g. “/etc/profile.d/kwin.sh”). Add the single line:

    export KWIN_DRM_USE_EGL_STREAMS=1

    and make that script executable. Or define this environment variable through any other means that you prefer, for instance if you are not using a bash-compatible shell.

After having played for a bit in a Plasma Wayland session on my desktop computer with a Nvidia card and using their proprietary driver, I can say that there are still some graphical quirks & glitches but I saw no showstoppers.

What else can you expect in KDE-5_20.06?

This June ktown release contains the KDE Frameworks 5.71.0, Plasma 5.19.1 and Applications 20.04.2. All this on top of the Qt 5.15.0 which recently got updated in Slackware-current.

Deps:
I added the package autoconf-archive which was needed to recompile dbus. I added elogind (make sure to ‘removepkg ConsoleKit2’ first!) , and added two recompiled Slackware packages picking up elogind support: dbus and polkit.
I recompiled accountsservice to pick up elogind support as well, and recompiled polkit-qt5, libdbusmenu-qt5, qca-qt5 against the new Qt5 which was upgraded in Slackware since last month’s ‘ktown’ release.
And I recompiled grantlee-qt4 because I had forgotten to do so after the 2018 mass rebuild in Slackware… no-one noticed.

Frameworks:
Frameworks 5.71.0 is an incremental stability release, see: https://kde.org/announcements/kde-frameworks-5.71.0. The Frameworks package which picks up elogind support is: solid.

Plasma:
Plasma 5.19.1 is the second increment of the 5.19 cycle, which means that I skipped the .0 release. See https://kde.org/announcements/plasma-5.19.1 and if you want to read more about the goals for 5.19 you should check out https://kde.org/announcements/plasma-5.19.0 .
There is a new package in Plasma: kwayland-server. The packages which pick up elogind support are: plasma-workspace, powerdevil, kscreenlocker.

Plasma-extra;
In plasma-extra I rebuilt sddm-qt5 to pick up elogind support and added plasma-wayland-protocols as dependency for the new kwayland-server in Plasma.

Applications;
Applications 20.04.2 is an incremental bug fix release, see also https://kde.org/announcements/releases/2020-06-apps-update/

Applications-extra:
For applications-extra, I tried (and failed) to update krita (I got boost related errors) but I did update kmymoney.

Telepathy:
KDE Telepathy is no longer part of my ‘ktown’ distribution of KDE Plasma5.

Where to get KDE Plasma5 for Slackware

NOTE: I will delay the release for a couple of hours to allow everybody to read this post and avoid updating blindly which would break graphical login sessions!

It should be obvious, but these packages will not work on Slackware 14.2. The old (KDE 5_17.11) Plasma5 packages that were still in my ‘ktown’ repository for Slackware 14.2 were removed last month because they were un-maintained and had security issues.

Download the KDE-5_20.06 for Slackware-current from the usual location at https://slackware.nl/alien-kde/current/ or one of its mirrors like http://slackware.uk/people/alien-kde/current/ .

Check out the README file in the root of the repository for detailed installation or upgrade instructions.

BIG FAT WARNING: Read these README instructions carefully! In short:

  1. UPGRADE TO THE LATEST slackware-current first.
  2. Then, REMOVE the ConsoleKit2 package.
  3. Next, install or upgrade the KDE5 package set.
  4. Change to directory /usr/share/sddm/scripts/ and move the Xession.new & Xsetup.new files into place (remove the .new extension) after carefully checking that you are not overwriting your own customizations in the Xsession & Xsetup scripts. Note: because “slackpkg new-config” only looks inside the /etc/ directory it will miss the two scripts in /usr/share/sddm/scripts/.
    You’ll still have to manually check /etc/ for some critical *.new files that need to be put into place if you are not using slackpkg (which does this *.new check at the end of its run).
  5. Finally, REBOOT.

Development of Plasma5 is tracked in git: https://git.slackware.nl/ktown/ and this month’s development takes place in the ‘elogind‘ branch..

A new Plasma5 Live ISO will be available soon at https://slackware.nl/slackware-live/latest/ (rsync://slackware.nl/mirrors/slackware-live/latest/) with user/pass being “live/live” as always.

Have fun! Eric

Happy birthday Audacity: 20 years

Here is a next update for my ‘Digital Audio Workstation’ (DAW) software collection.

Today, 28th of May 2020, the Audacity multi-track audio recorder turns 20 years old! This is a nice moment to also release the Slackware packages (only targeting -current, sorry) for their latest and greatest, Audacity 2.4.1 which was released a week ago as a quick bug-fix to the long-awaited 2.4.0.

Along with this new Audacity release, I also have new packages for wxGTK3 (3.0.5.1) which you’ll need for Audacity to show its graphical user interface:

Get the packages here and note that you will also need to install jack2, ladspa_sdk and vamp-plugin-sdk packages: http://www.slackware.com/~alien/slackbuilds/(rsync://slackware.nl/mirrors/people/alien/slackbuilds/)

Have fun! Eric

Plasma5 for Slackware: KDE 5_20.05. Also, new Ardour 6.0

Some updates to share with you regarding Slackware software packages.

A new batch of Plasma5 packages for Slackware-current is available now. The KDE-5_20.05 release is also the last monthly update you’ll see from me for a while in my ‘ktown‘ repository. I expect Pat to add Plasma5 to Slackware-current, but I am done waiting and have an urgent need to dedicate my spare time to other matters. With PAM finally added to the core distro, there should no longer be a showstopper for getting rid of KDE4 and replacing it with Plasma5.

And remember, these packages will not work on Slackware 14.2. Along with adding the May batch for -current, I have removed the old (KDE 5_17.11) Plasma5 packages that were still in my ‘ktown’ repository for Slackware 14.2. They have been un-maintained for two and a half years, who knows what security issues they cause. If you really want or need Plasma5, migrate to Slackware-current please.

This May ktown release contains the KDE Frameworks 5.70.0, Plasma 5.18.5 and Applications 20.04.1. All this on top of Qt 5.13.2 that is in Slackware-current. Check the README for installation & upgrade instructions if you are new to this.

Deps:
I added the package libqalculate which enables interactive graph plotting capability in krunner, and recompiled speech-dispatcher to properly install the info files.

Frameworks:
Frameworks 5.70.0 is an incremental stability release, see: https://www.kde.org/announcements/kde-frameworks-5.70.0.php.

Plasma:
Plasma 5.18.5 is the final incremental release of 5.18 LTS (Long Term Support) before 5.19.x becomes available. I do not know if Pat wants to stick with 5.18 for a while or go ahead with 5.19, I hope he will leave the LTS release behind. See https://www.kde.org/announcements/plasma-5.18.0.php for the full announcement including several video’s portraying the strong points of KDE’s desktop environment and https://www.kde.org/announcements/plasma-5.18.5.php for information on these latest updates.

Plasma-extra;
In plasma-extra I recompiled sddm-qt5 to give it an updated set of PAM configurations. Root can now login to SDDM, some people thought that should be allowed, and so be it.

Applications;
Applications 20.04.1 is an incremental bug fix release, see also https://kde.org/announcements/releases/2020-05-apps-update/

Applications-extra:
In applications-extra I recompiled krita against the new boost libraries, updated calligra, kdevelop, kdev-php, kdev-python and kstars, okteta and added a new package: kid3, which is an audio file tagger.

Telepathy:
KDE Telepathy is no longer part of my ‘ktown’ distribution of KDE Plasma5.

Where to get KDE Plasma5 for Slackware

Download the KDE-5_20.05 from the usual location at https://slackware.nl/alien-kde/current/ or one of its mirrors like http://slackware.uk/people/alien-kde/current/ .
Check out the README file in the root of the repository for detailed installation or upgrade instructions.

Development of Plasma5 is tracked in git: https://git.slackware.nl/ktown/ .

A new Plasma5 Live ISO will be available soon at https://slackware.nl/slackware-live/latest/ (rsync://slackware.nl/mirrors/slackware-live/latest/) with user/pass being “live/live” as always.

DAW

I am regularly updating packages that are part of my ‘Digital Audio Workstation’ (DAW) collection.
And today I was able to add a new release of Ardour . After a long development process, there’s finally a jump from version 5 to 6!
Ardour is a professional-grade cross-platform DAW, and among the new features in version 6 are:

  • Full latency compensation
  • New high quality resampling engine at its core
  • Cue monitoring
  • Much better MIDI workflow
  • Improved plugin management
  • Pulseaudio output (useful for mixing/arranging using bluetooth speakers/headset)
  • ARM (Raspberry Pi) binaries available
  • A virtual MIDI keyboard was added

Let me know what you think of this new Ardour and its Slackware package. Is anything missing? Are you happy?

Have fun! Eric

Libre Office 6.4.4 packages available for slackware-current

The Document Foundation released the latest version of LibreOffice (6.4.4) yesterday, and I compiled a set of packages for Slackware -current. Unfortunately Slackware 14.2 is stuck at LibreOffice 6.2.x because newer source releases can not compile against the old libraries of our stable platform anymore).
Get the packages – as usual – from my own server or one of its mirrors; https://slackware.nl/people/alien/slackbuilds/libreoffice/ (rsync://slackware.nl/mirrors/people/alien/slackbuilds/libreoffice/) or https://slackware.uk/people/alien/slackbuilds/libreoffice/ (rsync://slackware.uk/people/alien/slackbuilds/libreoffice/)

I will repeat my message from earlier posts about using my LibreOffice on Slackware: among the packages for LibreOffice that are targeting Slackware-current, you will find a “libreoffice-kde-integration” package which adds Qt5 and KDE5 (aka Plasma5) support to the LibreOffice suite.
If you run Slackware-current but do not have KDE5 packages installed at all, don’t worry. LibreOffice will work great – the KDE integration package just will not add anything useful for you. On the other hand, if you have Plasma5 installed you will benefit from native file selection dialog windows and other integration features. And even if you do not have Plasma5 but you do have Qt5 installed, then you will be able to run LibreOffice with Qt5 User Interface elements instead of defaulting to GTK3.
Note that the libreoffice package installs a profile script for bash and csh compatible shells into /etc/profile.d/ which you can edit to force a particular widget set for the LibreOffice User Interface if you are not happy with the default choice LibreOffice makes.

If you want to compile LibreOffice 6.4.4 packages yourself using my SlackBuild script, then be aware that by default the KDE5 support is disabled. This will of course change when KDE Plasma5 becomes part of Slackware. You will have to set the value of the script parameter “ADD_KDE5” to “YES” for now. Additionally you will have to install the packages that this functionality depends on otherwise the compilation will fail.
Read the ‘README.kde5‘ file in the source directory for the list of packages you’ll need. All of the required packages can be¬† found in my ‘ktown’ repository: https://slackware.nl/alien-kde/current/latest/

Enjoy! Eric

Chromium 83 – packages for Slackware, news about Widevine plugin

chromium_iconThe COVID-19 crisis caused Google to change its release calendar for the Chromium browser sources, and they decided to skip the 82 release altogether, in order to focus on keeping the 81.x versions as safe as possible while working on their upcoming 83 release.
And so this week, Chromium 83.0.4103.61 was introduced to the “Stable Channel” with lots of bugs fixed, of which 38 are security fixes. There’s also a lot of new and improved features which are introduced in this release but it seems that many of those are only available in Google’s official Chrome binaries.
One of the notable changes for Chromium users (as opposed to Google Chrome users for which it has always worked this way) is that the Widevine content decryption module is now an official component of the browser. Like with Mozilla Firefox, the Chromium browser will now automatically download the Widevine library into your personal profile and enable access to DRM-protected content. In the URL “chrome://components/” you’ll see Widevine listed as a component, displaying its current version and a “Check for update” button.

Slackware packages for Chromium 83.0.4103.61 are in my package repository already. They are available as 32bit and 64bit versions for both Slackware 14.2 and -current.

Note that because of the changed status of Widevine, a separate “chromium-widevine-plugin” package containing the Widevine DRM library is no longer required. However…
It seems that there is an issue with the online availability of a 32bit Widevine library of the version that Chromium tries to download. As long as that is not fixed and only if you are using the 32bit Chromium browser, keep using my “chromium-widevine-plugin” please.

You can test whether Widevine works on https://bitmovin.com/demos/drm and validating that the page says “Detected using Widevine” and not “Detected NO DRM“). If you can not immediately get Widevine to work with your 32-bit browser, check that the content of the file in your Chromium profile “${HOME}/ .config/chromium/WidevineCdm/latest-component-updated-widevine-cdm” points to the installed location of the chromium-widevine package, like this:

alien@darkstar:~/.config/chromium/WidevineCdm$ cat latest-component-updated-widevine-cdm 
{"Path":"/usr/lib/chromium/WidevineCdm"}

In the profile of a 64-bit browser you will see instead something like this:

alien@darkstar:~/.config/chromium/WidevineCdm$ cat latest-component-updated-widevine-cdm 
{"Path":"/home/alien/.config/chromium/WidevineCdm/4.10.1610.0"}

For newcomers: Widevine is a Content Decryption Module (CDM) used by companies like Netflix and Disney+ to stream video to your computer in a Chromium browser window.

Also note (to the purists among you): even though support for Widevine CDM plugin has been built into my chromium package, that package is still built from Open Source software only. If you do not want theWidevine DRM library to be downloaded at all, you will have to recompile the chromium package after setting “USE_CDM=0” in the chromium.SlackBuild script. This can not be disabled at run-time.

Chromium packages: https://slackware.nl/people/alien/slackbuilds/chromium/ (rsync://slackware.nl/mirrors/people/alien/slackbuilds/chromium/)
Widevine packages: https://slackware.nl/people/alien/slackbuilds/chromium-widevine-plugin/ (rsync://slackware.nl/mirrors/people/alien/slackbuilds/chromium-widevine-plugin/)