This monthly release of Alien's ktown is a major prep test
  for replacing ConsoleKit2 with elogind in Slackware-current.
  Read the instructions carefully! In short:
  - UPGRADE TO THE LATEST slackware-current first.
  - Then, REMOVE the ConsoleKit2 package.
  - Finally, install or upgrade the KDE5 package set.

This is (unsurprisingly) KDE 5_20.06 for Slackware, consisting of
KDE Frameworks 5.71.0, Plasma 5.19.1 and Applications 20.04.2
on top of Slackware's Qt 5.15.0.

Upgrading from the previous 5_20.05 should be done with care! If you do not
follow directions, your system will no longer allow you in!

KDE-5_20.06 is meant to be installed on top of Slackware -current.
It will *replace* any version of KDE 4 you might have installed!
The Plasma 5 Desktop has gotten rid of its Qt4 legacy.  Since the release of
Applications 17.12 there's nothing left which is based on kdelibs4.
Slackware-current has begun its slow adoptation of the Plasma5 dependencies.
Most importantly, QT5 and its dependencies are already part of Slackware.

What is the NEWS in this batch of updates:
- Last month was the first release on top of a PAM-ified Slackware. I thought
  I was done with public updates and continued experimenting in private,
  but then a discussion on LinuxQuestions.org started because some people
  seem to watch my git repository and noticed that I created a new 'elogind'
  branch there. The discussion resolved a dead-end for me and I decided to
  make a deal with Patrick. A new 'ktown' release targeting a fully
  functional Plasma Wayland session.
  And so, this month we take another major step. ConsoleKit2 which has been our
  Session/Seat Manager for a long time, is going to be replaced with elogind.
  The elogind code, similar to eudev which is already in Slackware, is a piece
  of the systemd codebase (notably, systemd-logind) which was extracted and
  modified so that it is no longer depending on systemd at all.
  Slackware needs elogind if we are ever to provide a Wayland desktop next to
  the venerable X.Org desktop environment. It seems like ConsoleKit2 is no
  longer actively maintained and that means, other developers are no longer
  maintaining compatibility with it (ConsoleKit2 and elogind offer similar
  functionality but a program which needs that functionality must explicitly
  carry the code to support both).
  This time we are taking a joint approach.
  Pat Volkerding has modified '/etc/rc.d/rc.M' inside the sysvinit-scripts
  package, and '/etc/pam.d/login' inside the util-linux package in
  slackware-current to be compatible with both ConsoleKit2 and elogind.
  I have added elogind to 'ktown' and rebuilt the Slackware packages dbus and
  polkit to pick up support for elogind (losing support for CK2 in the
  *                                                                           *
  * Note that only one of the two (ConsoleKit2 or elogind) must be installed! *
  * If you install ktown KDE-5_20.06 you need to remove ConsoleKit2!          *
  *                                                                           *
- So, this leads to the following package updates in 'deps'.
  * added the package autoconf-archive which was needed to recompile dbus.
  * added elogind (make sure to 'removepkg ConsoleKit2' first!)
  * added recompiled Slackware packages with elogind support: dbus and polkit.
  * recompiled accountsservice to pick up elogind support
  * recompiled polkit-qt5, libdbusmenu-qt5, qca-qt5 against the new Qt5,
    which got an upgrade in Slackware since last month's 'ktown' release.
  * recompiled grantlee-qt4 because I had forgotten to do so after the 2018
    mass rebuild in Slackware... no-one noticed.
- Frameworks 5.71.0 is an incremental stability release, see also:
  The packages which pick up elogind support are: solid.
- 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:
  There is a new package in here: kwayland-server.
  The packages which pick up elogind support are: plasma-workspace,
  powerdevil, kscreenlocker.
- 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 20.04.2 is an incremental bug fix release, see also
- For applications-extra, I tried (and failed) to update krita
  and updated kmymoney.

Further points of interest:
- If you have a KDE4-based application that needs library support on this
  Plasma 5 desktop, let me know which of the removed packages needs to return
  in 'kde/kde4'!
- There are a couple of *runtime* dependencies that I did not add to the
  ktown repository, but you may want to consider installing them yourself:
  * vlc - will give phonon another backend to select from.
  * freerdp: access RDP servers through krdc.
  * openconnect: support for Cisco's SSL VPN.
  All of these can be found in my regular package repository.
- There's no more need to install any KDE4 package from Slackware.
- Lots of packages in the "deps" department are completely new to Slackware.
  Since KDE 5 aka Plasma 5 is built on Qt5 (KDE 4 uses Qt4 as its base)
  you'll find many Qt5 related packages.  Also, in order for Qt4 and GTK based
  applications to dock into the Plasma 5 system tray, more dependencies were
  needed.  Apart from updates to regular Slackware packages the new ones are:
  accountsservice, autoconf-archive, cfitsio, cryptopp, cryfs, ddcutil,
  dotconf, drumstick, dvdauthor, elogind , espeak-ng, flite, freecell-solver,
  frei0r-plugins, grantlee-qt4, hack-font-ttf, id3lib, lensfun,
  libappindicator, libburn, libdbusmenu-gtk, libdbusmenu-qt5, libdmtx,
  libindicator, libsass, md4c, mlt, noto-font-ttf, noto-cjk-font-ttf, opencv,
  pcaudiolib, perl-path-tiny, perl-template-toolkit, polkit-qt5-1,
  python3-random2, quazip, qca-qt5, qrencode, qtav, rttr, sassc, sni-qt,
  speech-dispatcher, and vid.stab
  The phonon and poppler packages were extended so that they now support
  Qt5 as well as Qt4. The gpgme package picked up Qt5 support.
  Note that the SBo version of 'frei0r-plugins' package is called 'frei0r'.
  If you have that SBo package installed, remove it.
  Several 'deps' packages which used to be listed here, have already been
  absorbed into Slackware. Let's hope the rest takes the same road soon.
- KDEI is gone. The localizations are now embedded in each package and
  no longer available as separate 'kdei' packages. This is a by design.
  You will get all languages installed by default.

Also explained in more detail below, upgrading to this KDE 5 is non-trivial.
You will have to remove old KDE 4 packages manually.

If you had installed KDE 4 as your default desktop previously, the removal
of KDE 4 packages will break the symbolic link '/etc/X11/xinit/xinitrc'.
An attempt to run 'startx' in a console will fail with a black screen.
After installing Plasma 5 for the first time, you need to run 'xwmconfig'
and select 'xinitrc.plasma' as your desktop session.

If you install a 32bit program on a 64bit Slackware computer with multilib
and that program needs legacy system tray support (think of Steam for
instance), you will have to grab the 32-bit version of Slackware's
'libdbusmenu-qt' and my ktown-deps package 'sni-qt', and run the
'convertpkg-compat32 -i' command on them to create 'compat32' versions
of these packages.  Then install both 'libdbusmenu-qt-compat32' and
'sni-qt-compat32'.  Those two are mandatory addons for displaying
system tray icons of 32bit binaries in 64bit multilib Plasma5.

You can start a Plasma Wayland session via SDDM (runlevel 4) by selecting it
in the session drop-down menu.
You can start a Plasma Wayland session at the console (runlevel 3) by
executing the "startkwayland" command.

Running a Wayland session using the proprietary NVIDIA driver is possible,
see https://community.kde.org/Plasma/Wayland/Nvidia .
There are still some quirks & glitches but no showstoppers.
* Qt5 >= 5.15 is a requirement, luckily we already have that in Slackware.
* You need to enable modesetting:
  The output of "cat /sys/module/nvidia_drm/parameters/modeset" 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, or via the 'linux' parameter of grub.cfg.
* KWin needs to use EGLStreams for accelerated graphics support:
  Create a profile script (e.g. /etc/profile.d/kwin.sh), make that script
  executable and let it contain the single line:
  (or set this environment variable through any other means that you prefer).

Install pre-compiled packages:

In order to install or upgrade KDE 5, follow these steps:

Make sure you are not running KDE or even X !
If you are running an X session, log out first to return to the console.
If your computer boots to runlevel 4 (graphical login) you first have to go
back to runlevel 3 (console) after logging out.  Press  to
switch to a console, logon there, and execute the command "init 3" to
switch from runlevel 4 to 3, thereby effectively stopping X.

If you still have a KDE 4 installed, it must be removed first. No clean
upgrade path can be provided!  Do as follows:

If you have Slackware 14.2 or -current's default KDE 4.14.3 installed:
  # removepkg /var/log/packages/*-4.14.3-*
  # removepkg amarok
  # removepkg kscreen
  # removepkg kactivities
  # removepkg kde-workspace
  # removepkg kdeconnect-kde
  # removepkg kdepim
  # removepkg kdepimlibs
  # removepkg kdev-python
  # removepkg kdevelop-php
  # removepkg kdevelop-php-docs
  # removepkg libkscreen
  # removepkg libmm-qt
  # removepkg libnm-qt
  # removepkg plasma-nm
  # removepkg polkit-kde-agent-1
  # removepkg polkit-kde-kcmodules-1
  # removepkg wicd-kde
  ... or instead of the above, simply run 'slackpkg remove kde'.

Alternatively, in case you are already using an older release of my KDE 5
packages, you need to look up that particular release in the list right below
(for instance: KDE 5_19.11) and then apply the actions shown for that KDE 5
release *and* all more recent releases, i.e. work your way back up to this
paragraph.  Note that some of the old KDE package names were obsoleted along
the way, they were split up, renamed or integrated and that is the reason
for some of the 'removepkg' lines you'll see below.
Here we go:

If you have my 'ktown' set of KDE 5_20.05 installed:
- UPGRADE TO THE LATEST slackware-current first.
- Then, REMOVE ConsoleKit2:
  # removepkg consoleKit2
- Upgrade to KDE 5_20.06
- Move the new X session files into place which SDDM uses to start your
  login-session, but first check that you won't accidentally overwrite
  any of your customizations:
  # mv /usr/share/sddm/scripts/Xsession.new /usr/share/sddm/scripts/Xsession
  # mv /usr/share/sddm/scripts/Xsetup.new /usr/share/sddm/scripts/Xsetup

If you have my 'ktown' set of KDE 5_20.04 installed:
- Upgrade to KDE 5_20.05
  Remove the packages that no longer exist in KDE 5_20.05:
  # removepkg python-enum34

If you have my 'ktown' set of KDE 5_20.03 installed:
- Upgrade to KDE 5_20.04
  Remove the packages that no longer exist in KDE 5_20.04:
  # removepkg kdeconnect-framework

If you have my 'ktown' set of KDE 5_20.02 installed:
- Upgrade to KDE 5_20.03
  Remove the packages that no longer exist in KDE 5_20.03:
  # removepkg OpenAL
  # removepkg SDL_sound

If you have my 'ktown' set of KDE 5_20.01 installed:
- Upgrade to KDE 5_20.02
  Remove the packages that no longer exist in KDE 5_20.02:
  # removepkg polkit-kde-kcmodules-framework

If you have my 'ktown' set of KDE 5_19.12 installed:
- No further actions are needed.

If you have my 'ktown' set of KDE 5_19.11 installed:
- Upgrade to KDE 5_19.12
  Remove the packages that no longer exist in KDE 5_19.12:
  # removepkg qt-gstreamer

If you have my 'ktown' set of KDE 5_19.10 installed:
- Really? A full re-install may be wiser.

Proceed with installing/upgrading KDE 5 as outlined below.

Instead of using the mirror host http://slackware.nl/alien-kde/ (its rsync URI
is rsync://slackware.nl/mirrors/alien-kde/), you could choose the alternative
mirror http://slackware.uk/people/alien-kde/ (its rsync URI is
rsync://slackware.uk/people/alien-kde/) which is faster for some people.

If you use 'slackpkg' to automate your upgrades, be sure to blacklist my
custom packages or else slackpkg will always try to replace my packages
with the stock Slackware versions if the package names are identical.
As an example, you can add the following lines to the file
"/etc/slackpkg/blacklist" to prevent this unintentional downgrading to KDE4:
  # These three lines will blacklist all SBo, alien and multilib packages:
If on the other hand you are using the 'slackpkg+' extension for slackpkg
then your "/etc/slackpkg/blacklist" file should *not* contain the above
lines!  The slackpkg+ extension enables the use of 3rd-party repositories
with slackpkg and then Plasma5 package upgrades will be handled properly.

To make it easy for you, here is a one-line command that downloads the whole
'5' directory (excluding the sources), with 32-bit and 64-bit packages.

  # rsync -Hav rsync://slackware.nl/mirrors/alien-kde/current/latest/ latest/

Or else, if you want to download packages for just one of the two supported
architectures, you would run one of the following commands instead.

If you want only the 64-bit packages:
  # rsync -Hav --exclude=x86 rsync://slackware.nl/mirrors/alien-kde/current/latest/ latest/
If you want only the 32-bit packages:
  # rsync -Hav --exclude=x86_64 rsync://slackware.nl/mirrors/alien-kde/current/latest/ latest/

Assuming you just downloaded the bits you want from the directory tree "latest"
you must now change your current directory to where you found this README
(which is the directory called 'latest').  If you used one of the above "rsync"
commands then you can simply do:

  # cd latest

From within this directory, you run the following commands as root:

  On Slackware 32-bit:
  # upgradepkg --reinstall --install-new x86/deps/*.t?z
  # upgradepkg --reinstall --install-new x86/kde/*/*.t?z

  On Slackware 64-bit:
  # upgradepkg --reinstall --install-new x86_64/deps/*.t?z
  # upgradepkg --reinstall --install-new x86_64/kde/*/*.t?z

  If you installed the slackpkg+ extension and configured a 'ktown' repository
  with the label 'ktown' then the commands to upgrade would become:
    # slackpkg update
    # slackpkg install ktown
    # slackpkg upgrade-all
  The first command fetches the repository metadata from the remote server(s);
  The second command installs any new package that was added to the repository;
  And the third command will upgrade all installed packages, including the
  'ktown' packages, to their latest versions in the repositories.

Check if any ".new" configuration files have been left behind by
the upgradepkg commands.  Compare them to their originals and decide
if you need to use them.
  # find /etc/ -name "*.new"
A graphical (ncurses) tool for processing these "*.new" files is slackpkg:
  # slackpkg new-config

Then reboot your system.
IF this is the first time you run Plasma5, be aware that Baloo will
tax your CPU fairly heavily for a while as it indexes the content of
the files on your hard disk. After this initial indexing operation finishes,
(could take several hours) Baloo will get out of your way and stay there.

If all you want is to install the packages I created, then you can skip the
remainder of the README which details how to (re)compile the packages from
their sources; it is not required reading material.

Building it all from source:

Sources and scripts are separated from the packages in my 'ktown' repository.
If you want the sources for KDE 5, run the following command to download them
(downloading from a mirror will usually be much faster):

  # rsync -Hav rsync://slackware.nl/mirrors/alien-kde/source/latest/ sources/

There are a lot of 'dependencies' for KDE 5 which you'll have to compile and
install before attempting to compile KDE 5. Compiling and installing these
dependencies on Slackware-current is hopefully (have not tested the scripts
'updates.SlackBuild' and 'alldeps.SlackBuild' in a long time) as easy as this:
  # cd sources/deps
  # ./updates.SlackBuild
  # cd -

The finished packages will be stored in /tmp and will already have been
installed/upgraded automatically.

Then if you want to compile the KDE packages on your computer, run:
  # cd sources/kde
  # ./kde.SlackBuild

Wait a long time, and you will find the new packages in /tmp/kde_build .
Note that these packages will already have been installed by kde.SlackBuild !
Reboot your computer and login to a Plasma session.

                     Eric Hameleers / alien at slackware dot com / 18-jun-2020