My thoughts on Slackware, life and everything

Month: January 2015 (Page 1 of 3)

Support for old-school XEmbed system tray icons in Plasma 5

Plasma 5 has abandoned the old xembed-based system tray support. I mentioned that in my announcement post for the Plasma 5 packages for Slackware-current, and also mentioned that there are solutions for that in Plasma 5. This means that a lot of applications (meaning: all non-Plasma 5 applications) will fail to display an icon in the system tray of your new Plasma 5 Workspace. No more Skype, no more Dropbox, no more Steamclient, etcetera. The applications will be running of course, but you can not interact with them through their system tray icon.

For some applications (Qt 4 and GTK+ 2 and 3 based in particular), I already added support to my set of Plasma 5 packages, but some applications still stubbornly refuse or are still unable to display a systray icon in your Plasma 5 Workspace.

For these applications, the best solution is to run an application like wmsystemtray which implements the XEmbed protocol and thereby allows applications to dock their systray icon in the wmsystemtray application’s window.

It is a bit of a clumsy solution because wmsystemtray itself is unable to dock into the Plasma 5 system tray, and therefore you will have a permanently visible window somewhere on your desktop which displays the systray icons for applications like dropbox, blueman, scim etc. But it is better than nothing at all.

Instructions about how to work with wmsystemtray so that it looks best and impacts your workspace the least, are contained in the “README.kwin” file inside the build directory in my repository, but that file is a bit hidden. Therefore, here are the instructions:

First of course, install the wmsystemtray package from my repository.

Start the application as follows. Type it in KRunner (Alt-F2) or in an X terminal:

wmsystemtray --non-wmaker --bgcolor white

The window will appear in the upper left corner of your workspace, obscuring the Plasma 5 workspace control icon. Grab the window and drag it to the upper right corner – I think it has a better placing there. The window will probably already show some applications that had been waiting all that time to show their systray icon.

Add the following content to a new file called “wmsystemtray.kwinrule” somewhere in your fiilesystem. The filename is not important, but the “.kwinrule” extension will make it easier to find later:

[Application settings for wmsystemtray] 
Description=Application settings for wmsystemtray 
desktop=-1 
desktoprule=2 
noborder=true 
noborderrule=2 
skippager=true 
skippagerrule=2 
skipswitcher=true 
skipswitcherrule=2 
skiptaskbar=true 
skiptaskbarrule=2 
type=2 
typerule=2 
wmclass=wmsystemtray0 wmsystemtray 
wmclasscomplete=true 
wmclassmatch=1

Then, open System Settings and go to”Window Management > Window Rules“. Click on the “Import” buton and point to the “wmsystemtray.kwinrule” you just created. Click “Apply” and immediately you will see the wmsystemtray window change: the border disappears and the window placeholder in the taskbar is gone too. Its place on the desktop is immutable now.

wmsystemtray

Next time you login to Plasma 5, its session manager will run the wmsystemtray again, so there is nothing more to do than the above.

Eric

Another Flash player plugin this week

adobe_flash_8s600x600_2 I failed to mention this earlier because of the time I spent on KDE 5, but there was a new Flash from Adobe. following closely on last week’s security fix.

I have packaged the usual suspects: the plugin for chromium (PPAPI) and for mozilla-compatible browsers (NPAPI). If you have pipelight installed, you should run “pipelight-plugin –update” as root to get the latest Flash installed automatically the next time the browser loads the Windows plugin.

The new Slackware package for chromium-pepperflash-plugin has version 16.0.0.296. The updated flashplayer-plugin has version 11.2.202.440.

Download locations have not changed:

Eric

Multilib glibc patched for GHOST vulnerability (CVE-2015-0235)

There was some unrest about the most recent glibc update in the stable releases of Slackware (slackware-current excluded). Glibc was patched against a new vulnerability, CVE-2015-0235, for which the only known exploit currently is in the MTA Exim (software which is not part of Slackware) and an exploit for this vulnerability is difficult to write apparently. I usually am quite fast in following up on Slackware updates for gcc and especially glibc. This time, I was busy with answering questions about the new KDE 5 at night, and buried in shit at work during the day.

Nevertheless, when there were no updated multilib versions of glibc the next day, some people asked when they could expect a patched package. Others were less polite and demanded updated packages. That sucked.

Here is where you can find the updated packages:

For the un-initiated: multilib is needed if you want to use binary-only 32-bit software on 64-bit Slackware. Examples of that are Skype, Valve’s Steam Client, the WINE emulator, the Pipelight browser plugin, Citrix client etc.

Instructions on how to add or update multilib on your 64-bit Slackware can be found on the Slackware Documentation Project.

Cheers, Eric

 

KDE 5 (Plasma 5.2.0) available for Slackware -current

qt-kde-620x350And yes – let me get this clear right from the start: this Plasma 5.2.0 desktop environment will replace the KDE 4 packages you have installed.

What is this new ‘Plasma 5’

Plasma 5 is the “next-gen” KDE desktop. It has been in development for a long long time, with the goal of providing a gradual migration path away from the well-known KDE 4 desktop. All of this with the KDE 4.0 “debacle” in mind. You may recall that the KDE community released KDE 4.0 as a “tech preview” i.e. not ready for production, however some distributions upgraded their KDE from 3.x to 4.0 regardless of that. The backlash from the user community was understandable of course, because they went from a stable KDE 3 desktop to a buggy and crippled KDE 4 desktop. This was often blamed upon KDE itself, but that does the developers and their software grave injustice – it was the distros who forced their users to a non production-ready version of KDE,so it should be those distros who should be criticized for their bad judgement. Still, even to this day, harsh words about KDE 4.0 are targeted at its developers, not at the distros who made a strategic error.

Nevertheless, here we are, with a shiny KDE 5 desktop environment!

KDE 5 makes a switch from Qt 4 to Qt 5 as the base graphical toolkit. The old KDE 4 libraries have been ported to become the Frameworks: Qt 5 modules with no dependencies except Qt 5 and optionally, other Frameworks. This allows non-KDE developers to adopt the Frameworks in order to provide an expanded Qt 5 feature set. This porting effort has been going on for a long time now (its first technology preview for Frameworks was little more than one year ago) and the Frameworks are mature technology now. Plasma 5 is the set of packages that provide the core Desktop experience, built on top of the Frameworks.

The release of Plasma 5.2.0 earlier this week was the turning point for me – this release is the first one that I actually consider ready for prime-time, capable of replacing the KDE 4 Workspace. The KDE Applications (currently at version 14.12.1) are the collection of software which used to be grouped in meta-packages like kdebase, kdeedu, kdegraphics, kdemultimedia etcetera. The Applications currently get huge attention from the developers, because that is where the hard work is being done the coming year. Slowly, all individual Applications are being ported away from Qt 4 and the KDE 4 libraries, to Qt 5 and the Frameworks. In Applications 14.12.1, the only ported apps to date are kate, konsole, analitza, gwenview, kalgebra, kanagram, khangman, kig, parley, kapptemplate,  and okteta. As you can see, still a long way to go.

These KDE 5 packages of mine are going to be your only KDE desktop. The “kde-workspace” package which provided the well-known KDE 4 workspace has been replaced by “plasma-workspace” and the good old KDM graphical login manager has been retired and replaced with SDDM. While you will be presented with a pretty Plasma 5 workspace, most of the KDE applications you’ll be using are the familiar KDE 4 versions (with updates and bugfixes), nicely blending in to the new Breeze theme.

Some Plasma 5 highlights I mentioned in last year’s preview: Plasma 5 improves support for high-DPI displays and comes with a “converged shell”, i.e. one Plasma codebase for different target devices like desktop computers, laptops, tablet, phones etc. Plasma 5 uses a new fully hardware-accelerated OpenGL(ES) graphics stack. And with the Breeze themed artwork and its own Oxygen font, this desktop looks clean and modern.

Plasma 5 follows the same trend you can also witness in Android 5, Windows 8 and OS X: gone are the colourful, exuberant 3D-ish icons, buttons and other graphical design elements.  Flat and monochrome is the new dogma. The result is too clean in some regards, is my personal opinion: the monochrome system tray icons are just plain ugly and I get flashbacks of Windows 3.1 sometimes. Judge for yourself.

What to expect from these Slackware packages

These packages are only going to be useful if installed on top of Slackware -current. They are replacing the KDE 4 packages (plus adding/upgrading a lot of dependencies) that you might have installed. There is no co-installable option. Therefore if you rely on your KDE desktop for your daily productive work, please consider your upgrade carefully. The upgrade/migration should be painless if you follow the README instructions, but I can not guarantee that there will be no deal-breakers for you (missing functionality or persistent crashes).

Highlights:

  • Lots of packages in the ‘deps’ department which are completely new to Slackware. Since KDE 5 is built on Qt5 (KDE 4 had 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. So, apart from updates to regular Slackware packages, these are the new ones (some of them will be familiar if you are already running my KDE 4.14.3):
    LibRaw, OpenAL, akonadi-qt5, eigen3, gst1-plugins-base, gst1-plugins-good, gstreamer1, json-glib, libappindicator, libdbusmenu-gtk, libdbusmenu-qt5, libepoxy, libfakekey, libindicator, orc, polkit-qt5-1, qca-qt5, qt-gstreamer, qt-gstreamer1, qt5, sni-qt, wayland and xapian-core.
  • Qt 4.8.6 of Slackware was patched to support the docking of Qt 4 application icons into the Plasma 5 system tray (and the ‘sni-qt’ package actually implements this support). While I was at it, I also added some patches which Libreoffice requires for native KDE file-open dialog support.
  • Note for users of multilib Slackware64 and also using Skype: you will have to grab the 32-bit version of Slackware’s “libdbusmenu-qt” and my “sni-qt” packages and run “convertpkg-compat32” on them and then install both “libdbusmenu-qt-compat32” and “sni-qt-compat32”, or else Skype won’t be able to dock its icon in the Plasma 5 systray.
  • A bit sneakily, I built phonon-vlc for you. You will also need a VLC package to be able to use phonon-vlc though.
  • I added the latest Calligra 2.8.7 office suite.
  • Even though I compile a ‘kde-workspace’ package as part of the whole set (otherwise kdeartwork refuses to compile), I do not actually ship that package. It conflicts with the new plasma-workspace package.
  • Several source tarballs in Plasma 5.2.0 have not been compiled to Slackware packages: libbluedevil and bluedevil (they need BlueZ 5 which is not part of Slackware), muon (a debian/ubuntu package manager), libkface (needs opencv which I was not willing to add as a dependency).
  • One dependency which you’ll probably find curious, is wayland. It is required in order to compile KWin’s X11 driver, but it is apparently not needed at runtime. Nevertheless, I left the package in, just in case you want or need to recompile kwin.
  • Graphical login: KDM has been replaced with SDDM. Installation of the sddm-qt5 package triggers the creation of a “sddm” user and group. The “sddm” user is then also added to the “video” group. If you already have a local “sddm” account, then all of that will be skipped. You’ll have to add the “sddm” user to the “video” group manually if you experience graphical glitches.

Testing Repository URL

I still consider KDE 4.14.3 the “latest stable” version for Slackware-current, and therefore the repository URLs http://taper.alienbase.nl/mirrors/alien-kde/current/latest/x86_64/ (for 64-bit) and http://taper.alienbase.nl/mirrors/alien-kde/current/latest/x86/ (for 32-bit) will keep pointing to KDE 4.14.3. You can use this repository URL for slackpkg+ or slapt-get or whatever package manager you use.

The URL http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86_64/ (for 64-bit) and http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86/ (for 32-bit) is pointing to my KDE 5 testing ground. I consider Plasma 5.2.0 as a “testing” release, with potential to be your next stable desktop, but with some caveats and reservations. The URL itself will remain permanent, even when the versions of the software components get updated. Currently “testing” points to version “5” in the repository because versions of Frameworks, Plasma and Applications are not co-ordinated and package updates may appear in the next months for these sub-sets. The “5” is a good middle ground. You should use this “testing” URL when you configure slackpkg+ or slapt-get if you want to upgrade to Plasma 5.

You must use only one of these URLs! I remind you that the KDE 5 preview I released last August was meant to be installed in parallel with KDE 4.14… but these new KDE 5 packages I am releasing today are going to replace the majority of KDE 4 packages. Therefore, the upgrade from KDE 4 to KDE 5 must be done manually, by closely following the provided README . Reading that README is even more important than before!

Enabling SDDM in runlevel 4 instead of KDM

Runlevel 4

If you want to see the new graphical session (login) manager SDDM in action, add the following lines to the Slackware file “/etc/rc.d/rc.4” right after the line: echo “Starting up X11 session manager…”

# — 8< ————————————–
if [ -x /usr/bin/sddm ]; then
exec /usr/bin/sddm
fi
# — 8< ————————————–

… and then switch to runlevel 4 by typing at the command prompt (as root):

# init 4

Select “Plasma” from the SDDM session dropdown. Alternatively, if you prefer good old runlevel 3, you can type this at the command prompt (logged in under your own regular user account):

$ xwmconfig

… and select “xinitrc.plasma” as your default window manager for X11. Then run:

$ startx

To enter your desktop session.

Installing or upgrading Frameworks 5, Plasma 5 and Applications

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

Upgrading to this KDE 5 is non-trivial. You will have to remove old KDE packages manually. If you do not have KDE installed at all, you will have to install some of Slackware’s own KDE 4 packages manually.

Where to get the new packages for Plasma 5

Download locations are listed below (you will find the sources in ./source/5/ and packages in /current/5/ subdirectories). Using a mirror is preferred because you get more bandwidth from a mirror and it’s friendlier to the owners of the master server!

Notes

  • In earlier preview release, HPlip would show an error message about not finding a system tray area. The reason is because the Plasma 5 workspace does not implement the X11 “Xembed” protocol. The system tray area works differently now. Not just HPlip, but all other applications that are not part of  Plasma  5, would have this issue, but only HPlip shows an error. Therefore some additional work was required to make the icons for Dropbox, Skype, Chromium, etc show in the Plasma 5 systray. This was done in the form of several notification support packages in the “deps/” directory and a patched Qt 4.
    • There is a solution for applications like SCIM who still can’t show a systray icon even with these added packages –  which is not elegant, but it works. Use a third-party Xembed system tray implementations like stalonetray or wmsystemtray . I have stalonetray and wmsystemtray in my own repository (I like wmsystemtray better). Both are also available at SBo.
  • Certain conditions may crash your Plasma Shell. I noticed this in a QEMU virtual machine where it was reliably reproducible: The crash occurs every time you move your mouse pointer into an Application Window placeholder in the taskbar. A crash of plasmashell makes your desktop go black and you are left with only the application windows that were currently open. Automatic restart should happen, but not for me unfortunately. You can fix it if you had a Konsole window open at the time of the crash. Type “plasmashell –shut-up &” and your desktop will re-appear.
  • The updated harfbuzz package breaks the library’s ABI. As a result, LibreOffice 4 will no longer work (error looks like “symbol lookup error: libvcllo.so: undefined symbol: hb_icu_script_to_script“).
    • Solution: Downgrading to the original Slackware harfbuzz package solves it, which is a pity because I thought I had taken care of the ABI breakage by applying a patch which re-adds that missing symbol.
  • The hardware keys for altering volume and mute still do not work on a global level (at least on my Lenovo T400 laptop). They seem to work for some applications – VLC is one of them. Sound is working fine though.
    • Solution: How dumb of me… just run “kmix” and a systray icon will appear, and the support for on-screen display of your hardware volume buttons will be enabled.
  • KRunner (Alt-F2) will still not save your command history.
  • When you try SDDM in runlevel 4 and the screen stays black with a blinking cursor in the upper left, this is probably caused by a missing homedirectory for the “sddm” user.
    • Solution: Check the output of command, it should return “/var/lib/sddm” and that directory must exist and be owned by the “sddm” user:

      $ getent passwd sddm | awk -F ‘:’ ‘{print $6}’

  • Even though you’ve selected “Plasma” as your desktop in the SDDM dropdown or in “xwmconfig”, the KDE 4 desktop is still starting up instead of the Plasma 5 desktop.
    • Solution: Remove the kde-workspace package and re-install the plasma-workspace package.
  • I have installed slackpkg+ and configured it as instructed. After installing KDE 5, when I run “slackpkg upgrade-all” it tries to pull in or upgrade all sorts of original Slackware packages. What’s up?
    • Solution: none yet… you’ll have to be careful for a while until I figure out what to do with all those packages.
  • The shutdown and reboot options are missing from the Leave menu.
    • Solution: a simple patch which removes the use of “kwrapper5” to start the KDE services will bring back both options. Kwrapper is meant to speed up the start of the Desktop Workspace and be a bit friendlier on resource usage but if you really do need shutdown and reboot options present, then apply the following patch to “/usr/bin/startkde”:
    • --- /usr/bin/startkde.orig       2015-01-31 18:09:25.744173291 +0000
      +++ /usr/bin/startkde    2015-01-31 17:49:18.938578280 +0000
      @@ -380,7 +380,7 @@
       # lock now and do the rest of the KDE startup underneath the locker.
       KSMSERVEROPTIONS=""
       test -n "$dl" && KSMSERVEROPTIONS=" --lockscreen"
      -kwrapper5 ksmserver $KDEWM $KSMSERVEROPTIONS
      +ksmserver $KDEWM $KSMSERVEROPTIONS
       if test $? -eq 255; then
         # Startup error
         echo 'startkde: Could not start ksmserver. Check your installation.'  1>&2
  • Please report any other issue you encounter and I will add it here if it is serious enough.

Have fun! Eric

Waiting for KDE 5 (Plasma 5)?

The KDE community released the source code to Plasma 5.2.0 today, and some of you are dying to see what it looks like.

Plasma5_locked

You just need to wait a little longer.
I have built all the packages, and I am doing a final quality check. Then I’ll have to write a proper README generate the repository files (time-consuming).

One note in advance:

The Plasma 5.2.0 desktop packages (completed with Frameworks 5.6.0 and Applications 14.12.1 accompanied by some of the “old” KDE 4.14.x libraries) are built to replace your current KDE 4.x desktop! My KDE 5 preview, posted in August 2014, was meant to be co-installed with an existing KDE 4 desktop and was built so that its configuration files would be written to different directories than your existing KDE 4 configuration. This allowed the curious among you to have a sneak peak of KDE 5 with the option of completely removing it again afterwards, with no pain. The new KDE 5 release I will be presenting tomorrow, means that you have to choose: do you want to stick with KDE 4 or migrate to KDE 5 (Plasma 5.2.0)?

If you are not willing to swap a stable KDE 4 desktop environment for an adventure with KDE 5 (stable enough, with exciting new features, but may have bugs or missing features that are deal-breakers for you), it may be better to wait a bit and let the early adopters tell their story of the upgrade before you decide to join them.

If you are using slackpkg+ to manage your 3rd party packages and have added my “testing” repository http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86/ or http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86_64/ , then please double-check your /etc/slackpkg/slackpkgplus.conf file and make sure that you remove one of the following:

  1. http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86_64/ (or http://taper.alienbase.nl/mirrors/alien-kde/current/testing/x86/)
  2. http://taper.alienbase.nl/mirrors/alien-kde/current/latest/x86_64/ (or http://taper.alienbase.nl/mirrors/alien-kde/current/latest/x86/)

Having the first in your slackpkg+ configuration means that your KDE 4.14.3 will be migrated to Plasma 5.2.0. Keeping the  second repository will ensure that you keep KDE 4.14.3 installed.

If you want to know when KDE 5 will be added to the Slackware core distro… my guess is that that will at least take another year. The stable Slackware release which we are working towards, will likely see its ageing KDE be refreshed with the latest KDE 4.14.3 enhanced with the LTS (Long Term Support) versions of kdelibs, kdepim* and kde-workspace, but not with KDE 5.

Also, remember that this release of KDE 5 is meant to be run on slackware-current. If you are running Slackware 14.1 or even one of the older stable releases, then KDE 5 is something you will only be reading about. By the way, I still have KDE 4.13.3 for Slackware 14.1 of course, if you think Slackware’s own KDE 4.10.5 is getting stale.

The git history of my development process towards a “stable enough for daily work” Plasma 5 desktop is here: http://taper.alienbase.nl/cgit/ktown/log/?h=5_15.01

I hope to have packages no later than tomorrow, and proper instructions in a blog article no later than thursday.

Eric

« Older posts

© 2024 Alien Pastures

Theme by Anders NorenUp ↑