My thoughts on Slackware, life and everything

Day: June 25, 2017

LibreOffice 5.3.4 packages for -current

libreoffce_logoWhen looking for package updates in preparation for a new Slackware Live PLASMA5 edition, I noticed that the Document Foundation had released LibreOffice 5.3.4 without updating their blog with the news – it’s only mentioned on the download page.
I have built and uploaded Slackware-current packages for libreoffice-5.3.4. If you are on Slackware 14.2 you will probably have to skip this one, as I will not have time for compiling packages the coming weeks (allocates one virtual machine for one day per build, since I can only check on progress in the evenings).
The package for -current needed to be (re-)built anyway because of the library issue with Slackware’s updated libGLEW which prevented Impress to start.

Check out the LO releasenotes if you want:  https://wiki.documentfoundation.org/ReleaseNotes/5.3.

The libreoffice packages for Slackware can be downloaded from a mirror like this one: http://bear.alienbase.nl/mirrors/people/alien/slackbuilds/libreoffice/.

Have fun! Eric

Plasma 5 for Slackware – June release

Slackware64 14.2 users will have to wait another day, but I have uploaded my latest set of Plasma 5 packages for Slackware-current to the ‘ktown’ repository. KDE 5_17.06 contains: KDE Frameworks 5.35.0, Plasma 5.10.2 and Applications 17.04.2. I based this new release on Qt 5.9.0 (at least for Slackware-current… for 14.2 I will stick to Qt 5.7.1).
NOTE: I will no longer be releasing Plasma 5 packages for 32bit Slackware 14.2.

The move to Qt 5.9 meant that I had to recompile/update some of the packages in my regular repository as well, so if you look there, you will find the latest Calibre 3.1.1 which I based on Qt 5.9 as well (same story here: the Slackware 14.2 variant uses Qt 5.7.1).

What’s new in KDE 5_17.06?

  • As said before, I moved to Qt version 5.9.0. This is supposed to be a LTS release (Long Term Support).
  • As a result of the qt5 upgrade, lots of other packages in the ‘deps’ section were recompiled (grantlee phonon polkit-qt5-1 qca-qt5 qt-gstreamer qtav) or upgraded (OpenAL PyQt5 libdbusmenu-qt5 poppler qt5-webkit wayland).
  • Plasma was updated to 5.10.2 bugfix release, see https://www.kde.org/announcements/plasma-5.10.2.php . And if you want to know more about what’s new in Plasma 5.10, read it on https://www.kde.org/announcements/plasma-5.10.0.php .
    I compiled plasma-nm against openconnect so that it picks up support for it. However I did not add openconnect to the ‘deps’ section, you need to install it separately if you need it.
  • Frameworks 5.35.0 is a maintenance release, see https://www.kde.org/announcements/kde-frameworks-5.35.0.php .
  • Applications 17.04.2 is a bugfix update for KDE Applications 17.04. See https://www.kde.org/announcements/announce-applications-17.04.2.php .
  • In applications-extra the following packages were upgraded: digikam, krita, kpmcore, partitionmanager. Calligra (for slackware-current) was recompiled against the new gsl, marble and qt5 libraries.

This upgrade should be relatively straightforward if you already have Plasma 5 installed. See below for install/upgrade instructions. For users who are running slackware-current, the most crucial part is making sure that you end up with Slackware’s packages for ‘libinput‘ and ‘libwacom‘. I had those two packages in the ‘current’ section of my repository for a while (they are still part of the ‘14.2’ section) but Slackware added them to the core OS. Failing to install the correct (i.e. Slackware) packages, may render your input devices (mouse and keyboard) inoperative in X.Org.

Non-ktown packages you probably want anyway

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 because they enable functionality in Plasma 5 that you would otherwise miss:

  • vlc: will give phonon another backend to select from.
  • freerdp: access RDP servers through krdc.
  • openconnect: provides support for Cisco’s SSL VPN

All of the above can be found in my regular package repository.

In order for kdenlive to reach its full potential, you might want to consider replacing Slackware’s ‘ffmpeg‘ package by my version with extended functionality: more supported codecs including AAC and H.264 encoders.

Multilib considerations

If you install a 32bit program on a 64bit Slackware computer with multilib and that program needs legacy system tray support, 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.

Installing or upgrading Frameworks 5, Plasma 5 and Applications

You can skip the remainder of the article if you already have my Plasma 5 installed and are familiar with the upgrade process. Otherwise, stay with me and read the rest.

As always, the accompanying README file contains full installation & upgrade instructions. Note that the packages are available in several subdirectories below “kde”, instead of directly in “kde”. This makes it easier for me to do partial updates of packages. The subdirectories are “kde4“, “kde4-extragear“, “frameworks“, “kdepim“, “plasma“, “plasma-extra“, “applications“, “applications-extra” and “telepathy“.

Upgrading to this KDE 5 is not difficult, especially if you already are running KDE 5_17.05_02. You will have to remove old KDE 4 packages manually. If you do not have KDE 4 installed at all, you will have to install some of Slackware’s own KDE 4 packages manually. Luckily, KDE 5 is mature enough that there’s almost nothing left from old KDE 4 that you would really want.

What I usually do is: download all the ‘ktown’ packages for the new release to a local disk. Then run “upgrade –install-new” on all these packages. Then I check the status of my Slackware-current, upgrading the stock packages where needed. The slackpkg tool is invaluable during this process of syncing the package installation status to the releases.

Note:

If you are using slackpkg+, have already moved to KDE 5_17.05_02 and are adventurous, you can try upgrading using the following set of commands. This should “mostly” work but you still need to check the package lists displayed by slackpkg to verify that you are upgrading all the right packages. Feel free to send me improved instructions if needed. In below example I am assuming that you tagged my KDE 5 repository with the name “ktown” in the configuration file “/etc/slackpkg/slackpkgplus.conf“):
# slackpkg update
# slackpkg install ktown (to get the newly added packages from my repo)
# slackpkg install-new (to get the new official Slackware packages that were part of my deps previously)
# slackpkg upgrade ktown (upgrade all existing packages to their latest versions)
# slackpkg upgrade-all (upgrade the remaining dependencies that were part of my repo previously)

And doublecheck that you have not inadvertently blacklisted my packages in “/etc/slackpkg/blacklist“! Check for the existence of a line in that blacklist file that looks like “[0-9]+alien” and remove it if you find it!

Recommended reading material

There have been several posts now about KDE 5 for Slackware-current. All of them contain useful information, tips and gotchas. If you want to read them, here they are: http://alien.slackbook.org/blog/tag/kde5/

A note on Frameworks

The KDE Frameworks are extensions on top of Qt 5.x and their usability is not limited to the KDE Software Collection. There are other projects such as LXQT which rely (in part) on the KDE Frameworks, and if you are looking for a proper Frameworks repository which is compatible with Slackware package managers such as slackpkg+, then you can use these URL’s to assure yourself of the latest Frameworks packages for Slackware-current (indeed, this is a sub-tree of my KDE 5 repository):

The same goes for Frameworks for Slackware 14.2 (change ‘current’ to ‘14.2’ in the above URLs).

Where to get the new packages for Plasma 5

A Plasma5 Live ISO image will follow shortly on http://bear.alienbase.nl/mirrors/slackware-live/latest/ in case you want to try it out first (check the timestamp of the ISO on the web page).

Package download locations are listed below (you will find the sources in ./source/5/ and packages in /current/5/ and  /14.2/5/ subdirectories). If you are interested in the development of KDE 5 for Slackware, you can peek at my git repository too.

Using a mirror is preferred because you get more bandwidth from a mirror and it’s friendlier to the owners of the master server!

Have fun! Eric

What if gcc 7 gives you headaches?

In Slackware-current we use version 7.1.0 of the gcc compiler suite. These advanced compilers can sometimes be quite a bit more strict about what they accept as valid code. As a consequence, you will regularly run into compilation issues with software. Not just the software made with the scripts on slackbuilds.org, but also some of the software in the Slackware core distribution requires patches in order to get them to compile.

Until now, I have been lucky to find the patches I needed in the repositories of other distributions, or else developers patched their software themselves. But there will be corner cases where solutions and patches are not readily found, or the developers will simply not support gcc 7. Pale Moon is such a piece of software where the developers recommend compiling with gcc 4.x or as a last resort, gcc 5.

Also, the latest gcc compiler suite has dropped their Java compiler, it was no longer developed. So, no more gcc-java package. However if you want to bootstrap the OpenJDK compiler software, you need to start with a Java compiler. The openjdk developers recommend an already built OpenJDK package to compile a new release. But there may still be a case where you have to bootstrap that very first OpenJDK compiler.

So I took the old sources for gcc-5.4.0 which was part of Slackware-current for a while (11 August 2016 to 4 May 2017), and re-worked my gcc-multilib.SlackBuild script:

  • I renamed the package to “gcc5” so that it can be installed alongside Slackware’s gcc 7 packages
  • The binaries were given a suffix “-5” to make them stand apart from Slackware’s default compilers
  • All except the C, C++ and Java language compilers were removed
  • Only one all-encompassing package is built by the script
  • A profile script was added – you can ‘source’ it to activate the gcc-5 compilers as preferred compilers

The result is a gcc5-5.4.0 package – for Slackware-current, both 32bit and 64bit. Get them at http://www.slackware.com/~alien/slackbuilds/gcc5/ .

The 64bit package is a multilib version, but you can install it without issues on a pure 64bit system. You will just not be able to compile 32bit programs with it.

How to use these compilers?

Simple: in your console or terminal, you ‘source’ the provided profile script, like this (there’s a c-shell compatible script as well):

source /etc/profile.d/gcc5.sh

The command “source” is equivalent to the dot command ” . “. The profile script will (re-)define the common variables that are used by make and other programs to determine which binary to run as the compiler:

export CC=gcc-5
export CPP=cpp-5
export CXX=g++-5
export AR=gcc-ar-5
export NM=gcc-nm-5
export RANLIB=gcc-ranlib-5

So, all you have to do next is run your compile job as usual, in that same console or terminal. Nothing else needs to be done after sourcing the profile script. Your program will be compiled with the binaries provided by the gcc5 package.

I did limited testing:

  • With the above instructions, I ran my palemoon.SlackBuild script and it provided a package (whereas the gcc7 compiler in Slackware-current would cause the compilation to fail)
  • The provided gcj (GNU Java Compiler) was able to bootstrap the OpenJDK 7 sourcecode into a working binary package, which I could then use to compile OpenJDK 8 on slackware-current (OpenJDK 7 is the last release that can still be bootstrapped with the gcj compiler)

Hope this helps some people!

Eric

© 2024 Alien Pastures

Theme by Anders NorenUp ↑