Welcome to Planet openSUSE

This is a feed aggregator that collects what openSUSE contributors are writing in their respective blogs.

To have your blog added to this aggregator, please read the instructions.

15 June, 2019


As everyone seems to like to put kernel trees up on github for random projects (based on the crazy notifications I get all the time), I figured it was time to put up a semi-official mirror of all of the stable kernel releases on github.com

It can be found at: https://github.com/gregkh/linux and I will try to keep it up to date with the real source of all kernel stable releases at https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/

It differs from Linus’s tree at: https://github.com/torvalds/linux in that it contains all of the different stable tree branches and stable releases and tags, which many devices end up building on top of.

So, mirror away!

Also note, this is a read-only mirror, any pull requests created on it will be gleefully ignored, just like happens on Linus’s github mirror.

If people think this is needed on any other git hosting site, just let me know and I will be glad to push to other places as well.

This notification was also cross-posted on the new http://people.kernel.org/ site, go follow that for more kernel developer stuff.

14 June, 2019


Dear Tumbleweed users and hackers

The last week has been rather ‘slow’ when it comes to snapshots published. Unfortunately, OBS had a small bug last Friday, which was fixed rather quickly, but its effects were devastating on the staging process and on the product builds. It took us several iterations of identifying missing binaries and rebuilding the missing bits and pieces. For this reason, I can only report about two snapshots published this week *0607 and 0712) – and for this, I’m even cheating and including the latest snapshot which is only just in progress of being distributed to mirrors.

The changes included in those two snapshots are:

  • gdb 8.3
  • libvirt 5.4.0
  • KDE Plasma 5.16.0
  • LibreOffice
  • SQLite 3.28.0

The list of major changes in Staging areas did not change drastically – and the main topics worked on are still:

  • KDE Applications 19.04.2
  • LLVM 8.0
  • openssl 1.1.1c
  • Texlive 2019
  • Qt 5.13
  • swig 4.0
  • cmake 3.14

13 June, 2019

Michael Meeks: 2019-06-13 Thursday.

13:23 UTCmember

  • B&B Hotel - lots of traffic noise through the closed window, ambulances to dream of; up lateish, train, Eurostar, train and so on. Reasonable connectivity - built ESC agenda a tad late while on the train encouraging using Collabora Online rather effectively; good.


The three openSUSE Tumbleweed snapshots released this week updated some key packages for users of the rolling release.

One of those key packages was an update of the GNU Debugger, gdb 8.3, which was released in the 20190607 snapshot. The debugger enabled ada tests on ppc64le and riscv64; multitarget builds for riscv64 were also enabled. The snapshot also added unit test for Logical Volume Manager (LVM) over Modular Disk (MD) with the update of libstorage-ng 4.1.127. Several patches and bug fixes were applied with the update of libvirt 5.4.0, which also made an improvement to avoided unnecessary static linking that results in both the disk and memory footprint being reduced. Libvirt also introduced support for the md-clear CPUID bit. The python-libvirt-python 5.4.0 package added all new Application Programming Interfaces (APIs) and constants in libvirt 5.4.0. Text editor vim 8.1.1467 had multiple fixes, but the Tumbleweed snapshot introduced some new bugs and is currently trending at an 86 rating, according to the snapshot reviewer.

The two previous snapshots recorded an exceptional stable rating of 98 according to the snapshot reviewer.

Snapshot 20190606 updated just two packages. The nodejs10 package put out a new upstream Long-Term-Support (LTS) version with nodejs10 10.16.0, which upgraded upgrade openssl sources to 1.1.1b and libuv to 1.28.0. The other package update in the snapshot was xfdesktop 4.12.5; the package for the Xfce 4 Desktop Environment fixed icon sizes in settings, reset the desktop icon order and fixed a timer leak.

The 20190605 snapshot had three packages updated. Linux Kernel 5.1.7 had some fixes pertaining to Btrfs like fixing the in-core state with a storage device between ranged fsync and writeback of adjacent ranges. The kernel update also removed dependencies with the arch_timer driver internals for the arm architecture and added Ice Lake support for Intel’s x86 power mode or c-state. Time Zones were updated with the libical 3.0.5 package and the libinput 1.13.2 package made some changes for Wacom touchpads and Apple bluetooth touchpad.

Release manager Dominique Leuenberger wrote a review of the previous two weeks and stated that openssl 1.1.1c, Texlive 2019, KDE Plasma 5.16, Qt 5.13, LLVM 8, swig 4.0, and cmake 3.14 were all progressing in the staging projects and will be released soon in upcoming Tumbleweed snapshots.


After today’s deployment, we faced a downtime of our reference server for users in our beta program. We want to give you some insight into what happened. Problems/Timeline Around 09:50 (CEST), we ran a deployment. After the deployment finished, we noticed that some URLs were responding fine (/about) while others did not and produced an exception. After looking into our exception tracker, we noticed that this had something to do with how we run our...

12 June, 2019

Michael Meeks: 2019-06-12 Wednesday.

21:00 UTCmember

  • Up early, a couple of dismal, late trains to Kings Cross, and the Eurostar to OW2Con / Paris. Dodgy taxi ride, arrived somewhat late for the session. Gave a talk on LibreOffice Online and then C'bras role in it briefly.
  • Caught up with Sigmund, Philippe from Arawa, Simon, and enjoyed a fine evening together with friends old & new.


Google Stackdriver collects and analyses logs, events and metrics of your infrastructure. Using syslog-ng PE 7.0.14 or later, you can send your logs to Google Stackdriver. While originally designed to quickly respond to events in the Google Cloud Platform (GCP), you can use Google Stackdriver with any other cloud providers (like Amazon Web Services) or on premises data as well. This way you can view events of a hybrid infrastructure at a single location.

Before you begin

In order to test the Google Stackdriver destination of syslog-ng PE you need two things:

  • a Google account

  • syslog-ng PE 7.0.14 or later

You can test both for free for a limited amount of time. You can learn more about syslog-ng PE and ask for a trial version at https://www.syslog-ng.com/products/log-management-software/

Configuring Google Stackdriver

It is very tempting just to click “Try it free” on the Google Stackdriver page. It most likely works starting from there if you are already a GCP customer. But if you are just trying to push your on-premise or your AWS logs to Google Stackdriver, you better follow the steps outlined in the syslog-ng PE documentation: http://support.oneidentity.com/technical-documents/syslog-ng-premium-edition/7.0.14/administration-guide/sending-and-storing-log-messages-destinations-and-destination-drivers/stackdriver-sending-logs-to-the-google-stackdriver-cloud/configuring-syslog-ng-pe-to-send-logs-to-google-stackdriver

Make sure that you complete all the steps outlined in the documentation. Save the JSON file containing the key for the service account to a location where you can easily find it and note down the project ID.

Configuring syslog-ng PE

If you have not done so yet, install syslog-ng PE in server mode. For that you need a valid (trial) license. Once syslog-ng is up and running locally you can add the Stackdriver destination.

First of all, copy the downloaded JSON file to the location of your syslog-ng configuration, the /opt/syslog-ng/etc/ directory.

Next append a few lines to the syslog-ng PE configuration in /opt/syslog-ng/etc/syslog-ng.conf After installation it provides you with a working minimal configuration. It collects local log messages and saves them to /var/log/messages. The name of the source it creates is s_local. We reuse it for the Stackdriver destination in the log statement:

destination d_stackdriver {
        namespace("my cluster")

log {source(s_local); destination(d_stackdriver);};

As you can see numerous time in the documentation, while most of syslog-ng is using the hyphen (-) and underscore (_) characters interchangeably, in the Stackdriver destination driver you have to use the underscore.

For credentials() you need to provide the location of the JSON file. For project_id use the name you entered on the web interface.

Read the Google Stackdriver documentation to learn more about the other fields in the configuration. It is available at https://cloud.google.com/monitoring/api/resources


Once you have everything configured, reload syslog-ng so the new configuration comes into effect. In a short while your log messages should be arriving to Google


Gratitude. This is the title of the email thread1 that started a debate over privacy & data protection within the AFRINIC community. The email was sent on the “community discuss” mailing list of AfriNIC. It was a reaction to something that was found in the minutes of a special board meeting that was held on 5 March 2019. The minutes were published2 on the AfriNIC website. The author of the email expressed his gratitude towards the current CEO of AfriNIC and one board director for their “efforts to keep the community involved in AfriNIC matters in an open and transparent way”.

11 June, 2019

Michael Meeks: 2019-06-11 Tuesday.

21:00 UTCmember

  • More admin, project planning, prototype acceptance criteria construction. Three lots of maths revision in the evening. Worked late putting documentation together with Kendy.


One of the beauties of a rolling distribution is that sometimes you are forced to use a new piece of software… My regular Virtual Machine application, VirtualBox was non-functional for a few days due to a kernel update and some sort of mismatch with the kernel driver or something… The positive is, I got to know a new Virtual Machine Application, Libvirt with QEMU/KVM. Quite honestly, I am not even sure what to call the application stack. The application is virt-manager which is libvirt and the application title bar is Virtual Machine Manager so maybe it goes by them all or I can’t make heads or tails out of the name.


I found I had to install a few things to make this work.

sudo zypper install libvirt qemu virt-manager libvirt-daemon-driver-qemu


Set up my first virtual machine. After doing a little reading and digging to figure out what was the best solution for me in my use case, which is, on a desktop testing other distributions or software in a virtual machine. This is how I set it up.

Initially, you have to Add a connection. Depending on how your system is out of the gate, or if you canceled this operation. Here is how you get back to it.

File > Add Connection…

Virt-Manager-01-Add Connection

For my purposes, I am using the QEMU/KVM user session as the Hypervisor. I also selected the Autoconnect tick box to ensure that when I started Virt-Manager, it would make this connection.

Next step is to create a new virtual machine. Since I am installing from an ISO, I selected the first option. If you are running a 32 bit version of Linux, you can select that architecture instead. Although I have not played with this as much, my understanding is you can use other CPU architectures here as well.

Virt-Manager-02-New VM

Unless you have already selected the media, it is at this point you can Browse to select the ISO you have downloaded.

Virt-Manager-03-New VM

Select the Brows Local button at the bottom of this window to search your file system for the ISO of choice.


The application will generally automatically detect the distribution, if it is not detecting it you can manually search or find a “similar” upstream project.


Next step is to set the memory and CPU. I elected to use two CPU cores.

Virt-Manager-06-Memory and CPU

The next step is to either select or create a disk image. In this case, I am using the default Create a disk image for the virtual machine of 32 GiB. It should be noted. Unlike VirtualBox, these disk images are static allocations for the size you set. They do not dynamically size based on the amount of used space on the virtual disk.

Virt-Manager-07-Storage Volume

The final step you are ready to begin the installation. Modify the name, customize the configuration and change the network selection if you see fit. I just use the Usermode networking. For my purposes this works fine.


Upon selecting finish, a new window will open


Here is a straightforward port of some easy code.

randtable.c has a lookup table with seemingly-random numbers. This table is used by the following macros in bzlib_private.h:

extern Int32 BZ2_rNums[512];

#define BZ_RAND_DECLS                          \
   Int32 rNToGo;                               \
   Int32 rTPos                                 \

#define BZ_RAND_INIT_MASK                      \
   s->rNToGo = 0;                              \
   s->rTPos  = 0                               \

#define BZ_RAND_MASK ((s->rNToGo == 1) ? 1 : 0)

#define BZ_RAND_UPD_MASK                       \
   if (s->rNToGo == 0) {                       \
      s->rNToGo = BZ2_rNums[s->rTPos];         \
      s->rTPos++;                              \
      if (s->rTPos == 512) s->rTPos = 0;       \
   }                                           \

Here, BZ_RAND_DECLS is used to declare two fields, rNToGo and rTPos, into two structs (1, 2). Both are similar to this:

typedef struct {
   Bool     blockRandomised;
} DState;

Then, the code that needs to initialize those fields calls BZ_RAND_INIT_MASK, which expands into code to set the two fields to zero.

At several points in the code, BZ_RAND_UPD_MASK gets called, which expands into code that updates the randomization state, or something like that, and uses BZ_RAND_MASK to get a useful value out of the randomization state.

I have no idea yet what the state is about, but let's port it directly.

Give things a name

It's interesting to see that no code except for those macros uses the fields rNToGo and rTPos, which are declared via BZ_RAND_DECLS. So, let's make up a type with a name for that. Since I have no better name for it, I shall call it just RandState. I added that type definition in the C code, and replaced the macro-which-creates-struct-fields with a RandState-typed field:

-#define BZ_RAND_DECLS                          \
-   Int32 rNToGo;                               \
-   Int32 rTPos                                 \
+typedef struct {
+   Int32 rNToGo;
+   Int32 rTPos;
+} RandState;


+      RandState rand;

Since the fields now live inside a sub-struct, I changed the other macros to use s->rand.rNToGo instead of s->rNToGo, and similarly for the other field.

Turn macros into functions

Now, three commits (1, 2, 3) to turn the macros BZ_RAND_INIT_MASK, BZ_RAND_MASK, and BZ_RAND_UPD_MASK into functions.

And now that the functions live in the same C source file as the lookup table they reference, the table can be made static const to avoid having it as read/write unshared data in the linked binary.

Premature optimization concern: doesn't de-inlining those macros cause performance problems? At first, we will get the added overhead from a function call. When the whole code is ported to Rust, the Rust compiler will probably be able to figure out that those tiny functions can be inlined (or we can #[inline] them by hand if we have proof, or if we have more hubris than faith in LLVM).

Port functions and table to Rust

The functions are so tiny, and the table so cut-and-pasteable, that it's easy to port them to Rust in a single shot:

pub unsafe extern "C" fn BZ2_rand_init() -> RandState {
    RandState {
        rNToGo: 0,
        rTPos: 0,

pub unsafe extern "C" fn BZ2_rand_mask(r: &RandState) -> i32 {
    if r.rNToGo == 1 {
    } else {

pub unsafe extern "C" fn BZ2_rand_update_mask(r: &mut RandState) {
    if r.rNToGo == 0 {
        r.rNToGo = RAND_TABLE[r.rTPos as usize];

10 June, 2019

Michael Meeks: 2019-06-10 Monday.

21:00 UTCmember

  • Mail chew, worked away at project planning and acceptance criteria. Couple of project calls and sync with Kendy.

09 June, 2019


FerenOS review title

I haven’t been able to do one of these in a while but it is always fun to try out other distributions and experience another example of how to answer that user experience question. As part of the BigDaddyLinux community. I have given Feren OS a spin to see how it goes for me, the biased, well entrenched openSUSE user.


The installation is done by what looks to my poorly trained eye to be the Calamares Installation Tool. This is, in my opinion, one of the most user approachable installation tools I have used. Clean, not clumsy and but yet not so basic that you can’t configure it to your liking.

Feren gives you one option when it starts. Live Media mode. You can play around with it or go right into the installation.

The installation is straight forward and works quite well. When the installation tool starts up you get an animated wheel while it “warms up” or whatever, presumably detecting bits about your system and starts you off to select your language.

Next you need to select your location and keyboard layout. This auto detected my location and keyboard layout.

For the partitions I used to erase the entire disk because for this purpose, erasing the disk works fine. Next, I entered my user information. There isn’t an option to add multiple users and I am unsure if you were to do an upgrade if you would be able to pull in previous user information or not.

The installation process provides an installation summary that includes everything you just selected, Location, Keyboard Layout and partition layout. After you select “Install” it will give you one final opportunity to bail out.

During the installation you aren’t given a slideshow of distribution propaganda, just one image to stare at. I would have liked to have had details fly by the screen during this process. Not that most people would care about that sort of information but I happen to like it. When the installation is complete, selecting “Done” will have the system reboot.

First Run

I really meant to nab the Plasma version of Feren OS but instead seem to have snagged the Cinnamon version and in keeping true to my form… I just went with it. Cinnamon is a fantastic desktop environment and since I haven’t played around with it during my last Linux Mint journey, this was a good refresher.

My overall impression of this spin of Feren OS is that it is a kind of re-imagining of the Cinnamon desktop, set aside the technical shortcomings of Cinnamon as it is based off of Gnome Shell and is encumbered with the single thread process limitation, it just looks fantastic. The Cinnamon developers have done a great job of mashing up the visual capabilities of Gnome into a more familiar desktop paradigm with which many are familiar. No one can argue that that Cinnamon (or Gnome for that matter) don’t have a

Michael Meeks: 2019-06-09 Sunday.

21:00 UTCmember

  • All Saints, band in the morning. Back for a fine lunch, and out for another, much less used stretch of walk along the nearby ancient, defensive Dyke.
  • Slept while H. did Organ practice, encouraging progres with the quartet. Slugged in front of a movie in the evening.


What is Bedrock Linux?

From their website:

Bedrock Linux is a meta Linux distribution which allows users to utilize features from other, typically mutually exclusive distributions. Essentially, users can mix-and-match components as desired. For example, one could have:

  • The bulk of the system from an old/stable distribution such as CentOS or Debian.
  • Access to cutting-edge packages from Arch Linux.
  • Access to Arch’s AUR.
  • The ability to automate compiling packages with Gentoo’s portage
  • Library compatibility with Ubuntu, such as for desktop-oriented proprietary software.
  • Library compatibility with CentOS, such as for workstation/server oriented proprietary software.

All at the same time, all working together like one, largely cohesive operating system.

So, what is this thing? Bedrock Linux is a package manager compatibility overlay. Ever wanted to use CentOS or Arch packages on your Debian system? Bedrock Linux will let you do that.


A stratos in Bedrock Linux is a package management overlay. For example, if you want to add a CentOS Strata, you run:

$ sudo brl fetch centos

The BRL app will then download yum and it’s required apps and libraries into the overlay. Once it’s done you can then yum install whatever you want.

Have multiple versions of the same package? Use:

$ strat [stratus name] [packagename]

For example with the Nano editor:

tux@debian:~$ strat arch nano -V
GNU nano, version 4.2
(C) 1999-2011, 2013-2019 Free Software Foundation, Inc.
(C) 2014-2019 the contributors to nano
Email: nano@nano-editor.org Web: https://nano-editor.org/
Compiled options: --enable-utf8
tux@debian:~$ strat debian nano -V
GNU nano, version 2.7.4
(C) 1999..2016 Free Software Foundation, Inc.
(C) 2014..2016 the contributors to nano
Email: nano@nano-editor.org Web: https://nano-editor.org/
Compiled options: --disable-libmagic --disable-wrapping-as-root --enable-utf8
tux@debian:~$ strat centos nano -V
GNU nano version 2.3.1 (compiled 04:47:52, Jun 10 2014)
(C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
2008, 2009 Free Software Foundation, Inc.
Email: nano@nano-editor.org Web: http://www.nano-editor.org/
Compiled options: --enable-color --enable-extra --enable-multibuffer --enable-nanorc --enable-utf8

There are problems

It’s not as easy as it sounds. In order to install Bedrock Linux, you must have a compatible base OS. Here is the list that’s currently on the website:

Distro Hijack-able Fetch-able Maintainer
Alpine Linux Yes Yes paradigm
Arch Linux Yes Yes paradigm
CentOS Known issues Yes paradigm
Clear Linux Mixed reports Experimental support N/A
CRUX Known issues No N/A
Debian Yes Yes paradigm
Devuan Needs investigation Yes paradigm
Elementary OS Yes, but limited testing No N/A
Exherbo Yes In development Wulf C. Krueger
Fedora Yes Yes paradigm
Gentoo Linux Yes Yes paradigm
GoboLinux Known issues No N/A
GuixSD Needs investigation No N/A
Manjaro Yes, but pamac/octopi broken No N/A
Mint Needs investigation No N/A
MX Linux Known issues No N/A
NixOS Known issues No N/A
OpenSUSE Yes Experimental support N/A
OpenWRT Needs investigation Experimental support N/A
Raspbian Yes

08 June, 2019

Michael Meeks: 2019-06-08 Saturday.

21:00 UTCmember

  • Up late; did some maths with H, N. and E. variously. More work - attacked various problems with long re-build times.
  • Finally, after some weeks, got space to get around to repairing the toilet flush in the upstairs toilet. One good opportunity for Goverments would be to ban pointless, self- defeating and environmentally damaging cost-engineering. A non-servicable, polythene flush membranes is an abomination. Hours of work, waste and expense to replace a sub-penny worth of plastic. Siliconed everything in sight to get it watertight.
  • Why is it that when my daughters invite their friends over, one of them inevitably appears used to turning the bathroom tap off with the moral equivalent of a spanner - making it come loose & rotate. Mended that too.

07 June, 2019

Michael Meeks: 2019-06-07 Friday.

21:00 UTCmember

  • Mail chew, show & tell call with Ivan, patch review, Board call. Ferried babes around while J. took E. to her birthday 'football golf' party. Ran games for the babes in the garden: running noughts and crosses, stilt walking, and a movie. Back to work until late.


Dear Tumbleweed users and hackers

During the last two weeks, openSUSE Tumbleweed has seen a total of 9 snapshots being released. As you come to expect from Tumbleweed, those snapshots are filled with updates. And as usual, the snapshots are tested by openQA before they are shipped out (in the last two weeks, for example, three snapshots were tested and discarded before publishing). The snapshots that did get published were 0524, 0525, 0527, 0529, 0601, 0603, 0604, 0605 and 0606 (hot off the press), summing up to those major changes:

  • Linux kernel 5.1.4, 5.1.5 & 5.1.7
  • Switch to GCC 9 as distro default compiler (full rebuild)
  • Mozilla Firefox 67.0 & Thunderbird 60.7.0
  • libopenraw 0.1.3 (beware: .pc file was renamed from *-1.0.pc to *-0.1.pc)
  • Mesa 19.0.5
  • flatpak 1.4.0
  • strace 5.1
  • nodejs10.16.0

The distro keeps on rolling, and based on the staging projects I can predict those updates coming soon to Tumbleweed:

  • openssl 1.1.1c
  • Texlive 2019
  • KDE Plasma 5.16
  • Qt 5.13
  • LLVM 8
  • swig 4.0
  • cmake 3.14


There is a lot of activity in the bzip2 repository!

Perhaps the most exciting thing is that Dylan Baker made a merge request to add Meson as a build system for bzip2; this is merged now into the master branch.

The current status is this:

  • Both Meson and Autotools are supported.
  • We have CI runs for both build systems.

A plea for help: add CI runners for other platforms!

Do you use *BSD / Windows / Solaris / etc. and know how to make Gitlab's CI work for them?

The only runners we have now for bzip2 are for well-known Linux distros. I would really like to keep bzip2 working on non-Linux platforms. If you know how to make Gitlab CI runners for other systems, please send a merge request!

Why two build systems?

Mainly uncertainty on my part. I haven't used Meson extensively; people tell me that it works better than Autotools out of the box for Windows.

Bzip2 runs on all sorts of ancient systems, and I don't know whether Meson or Autotools will be a better fit for them. Time will tell. Hopefully in the future we can have only a single supported build system for bzip2.



I’m LCP, or Stasiek if you can pronounce that. Just a 20 years old guy from Poland who spends way too much time in front of computers. That’s how all my potted plants end up dead.

My Journey

I’ve been using computers for as long as I can remember, playing Solitaire, The Settlers, and other simple DOS games, because that’s what my parents and grandma liked to play. I started with Win95, 98, and 2000, before learning about Linux.

My interest in design was sparked by the original iPhone icons, which I loved. In contrast with my hatred toward the Faenza icon theme, both have fairly similar style yet widely different results. That’s how I began exploring and learned from there.

Correspondingly, my Linux journey started back in 2007 when my dad showed me Ubuntu, and just like what I did with Windows 2000 before, my pastime became installing and reinstalling Linux alongside Windows in different configurations (I apparently was consumed by the concept of installation and configuration, which might explain my YaST obsession?).

Later in 2010, I had a tough time with a machine that wouldn’t take any distro with the exception of openSUSE (although it did end up with a few Linuxrc errors). Besides, I really liked its GNOME 2 config back then; it was really user friendly yet powerful. I gave KDE a shot but to this day I never really liked it.

Contributing, how it all started…

My first contribution was because of my consistent and annoying complaining to Richard Brown on Linux Gaming Discord about the sorrow state of artwork in Tumbleweed. I didn’t like anything there. I, it seemed too dark, too boring; stuff was barely visible due to contrast issues. He pointed me to contribute and make it better then, so I did. Around the same time me and some of other people from Linux Gaming Discord created the openSUSE Discord, and I reused some assets from the Discord to create the new branding.

Even though my main focus has been artwork, I also take part in some coding, translations, and obviously testing. I enjoy all of it in general. It is a great way to make computing easier and more pleasant for other less experienced users.

Actually, to me, my most valuable contribution has been encouraging people to use openSUSE and contribute to it, while doing my best to help them out when needed. Otherwise, I wouldn’t have been able to provide anything on my own because I rely on community to actively help me out with their judgment; just as I do help them out with mine.

Side projects

Outside of openSUSE I also work on Pixelfed, some Discord distros collaboration (artwork for Fedora and Gentoo discords on top of openSUSE one) and more recently been working on User Interface (UI) design for SuperTuxKart and some custom tiles for OpenSkyscraper in order to replace injecting the EXE file (but gamedev is hard

06 June, 2019

Michael Meeks: 2019-06-06 Thursday.

21:00 UTCmember

  • Mail chew, build testing, code reading variously. Re-factored clipboard logic in master.
  • Read theregister while unit tests are running; Collabora has done a huge amount of work (and continues to do so) on behalf of our customers on Document Redaction:
    Paper based redaction

    There are lots of cool features from many individuals and organizations in LibreOffice 6.3 (far more than are listed there too) - but this is an interesting example of how the LibreOffice brand & marketing tends to bury sensible crediting for "the most notable" new feature, in the (otherwise beloved) el reg Then again, Dennis seems to have re-located to France as well.
  • Worked late, babes at music, scouts etc.


Three openSUSE Tumbleweed snapshots have been released in the first four days of June, which bring several minor package updates to the rolling release.

The 20190604 snapshot brought babl  0.1.64, which provided some code consistency, gitlab Continuous Integration (CI), autotools and meson build improvements. An accident in naming caused the 0.3.2 version of bubblewrap to become version 0.3.3. However, bubblewrap 0.3.3. did address a Common Vulnerabilities and Exposures (CVE), provided a few smaller fixes and added the JSON Application Programming Interface (API) that allows reading the inner process exit code. GNU Compiler Collection 8 had some updates that included a couple patches with one that makes builds without profiling reproducible. Generic Graphics Library gegl 0.4.16 also added gitlab CI and uses a custom allocator for tile data, which aligns data and groups allocations in blocks; this was achieved on Linux by using the GNU extension malloc_trim to permit forcing invocation of the glibc malloc/free allocators garbage collection function. Oracle’ virtualbox 6.0.8 had a minor maintenance release that fixed a crash when powering off a Virtual Machine without a graphics controller and xorg-x11-server 1.20.5 fixed some input. The snapshot is currently trending at a 96 rating, according to the snapshot reviewer.

Snapshot 20190603 updated Mesa and Mesa-drivers to version 19.0.5 and took care of some core code and drivers. NetworkManager 1.16.2 fixed some wrong permissions of the /var/lib/NetworkManager/secret_key file. Ceph’s minor version update disabled Link Time Optimisation in spec when being used. GNOME 3.32.2 had several package updates and fixes including the fix of a regression that caused the fonts category to go missing. Tumbleweed skipped over the 1.3.0 series of Flatpak directly to version 1.4.0. The major changes since 1.2.4 is the improved I/O use for system-installed applications, and the new format for pre-configured remotes. Glib2 2.60.3 updated translations and provided various fixes to small key/value support in GHashTable. Scripting language php7 7.3.6 added a missing curl_version and fixed several other bugs. The snapshot is currently trending at a 95 rating, according to the snapshot reviewer.

The snapshot that started out the month, 20190601, update the Linux Kernel to 5.1.5 that fixed a data loss bug. Flatpak-builder 1.0.7 fixed some details in how to create platform commits to fix font cache mtime issues. Among the other package updates in the snapshot were GNOME’s image viewer gthumb 3.8.0, ibus-libpinyin 1.11.1, libopenmpt 0.4.5, qalculate 3.2.0, rdesktop 1.8.6, which fixed the protocol code handling new licenses, and yast2-support 4.1.1. The snapshot is currently trending at a 90 rating, according to the snapshot reviewer.


I have just done a git push --force-with-lease to bzip2's master branch, which means that if you had a previous clone of this repository, you'll have to re-fetch it and rebase any changes you may have on top.

I apologize for the inconvenience!

But I have a good excuse: Julian Seward pointed me to a repository at sourceware where Mark Wielaard reconstructed a commit history for bzip2, based on the historical tarballs starting from bzip2-0.1. Bzip2 was never maintained under revision control, so the reconstructed repository should be used mostly for historical reference (go look for bzip2.exe in the initial commit!).

I have rebased all the post-1.0.6 commits on top of Mark's repository; this is what is in the master branch now.

There is a new rustify branch as well, based on master, which is where I will do the gradual port to Rust.

I foresee no other force-pushes to the master branch in the future. Apologies again if this disrupts your workflow.

Update: Someone did another reconstruction. If they weave the histories together, I'll do another force-push, the very last one, I promise. If you send merge requests, I'll rebase them myself if that happens.


Revamping Cloud and Monitor We’re getting closer to completing the Bootstrap migration and this time, we have revamped the Cloud and Monitor pages. This is part 7 of a series of posts about revamping the user interface of OBS. We started off with the Package pages in October 2018, moved on to the Project, User and Group pages in December 2018, continued with the Request pages in February 2019 and migrated the Configuration pages in...

05 June, 2019

Michael Meeks: 2019-06-05 Wednesday.

21:00 UTCmember

  • Practice with M, mail, patch reading, calls, booked hotel for the interesting OW2Con next week. Worked late.


Today I had a very pleasant conversation with Julian Seward, of bzip2 and Valgrind fame. Julian has kindly agreed to cede the maintainership of bzip2 to me.

Bzip2 has not had a release since 2010. In the meantime, Linux distros have accumulated a number of bug/security fixes for it. Seemingly every distributor of bzip2 patches its build system. The documentation generation step is a bit creaky. There is no source control repository, nor bug tracker. I hope to fix these things gradually.

This is the new repository for bzip2.

Ways in which you can immediately help by submitting merge requests:

  • Look at the issues; currently they are around auto-generating the version number.

  • Create a basic continuous integration pipeline that at least builds the code and runs the tests.

  • Test the autotools setup, courtesy of Stanislav Brabec, and improve it as you see fit.

The rustification will happen in a separate branch for now, at least until the Autotools setup settles down.

I hope to have a 1.0.7 release soon, but this really needs your help. Let's revive this awesome little project.

04 June, 2019

Michael Meeks: 2019-06-04 Tuesday.

21:00 UTCmember

  • Mail chew, ticket review & estimation, tech mgmt. call, built ESC proto-agenda. Sync. with Philippe. Dinner, 'cello and math's with M. put H. to bed. Read a lot of disappointing Chrome clipboard code, seems I'm far from alone in that regard. Still, a synchronous population of the complete clipboard from the get-go is also quite silly. The solution will have to be in the HTML.

03 June, 2019

Michael Meeks: 2019-06-03 Monday.

21:00 UTCmember

  • Mail chew, sync with Kendy, team calls, status report. Customer call(s). Attempted to minute an All Saints PCC meeting in the evening, iteresting.

02 June, 2019

Michael Meeks: 2019-06-02 Sunday.

21:00 UTCmember

  • Walk with R&A&empE in the morning; N. cooked a fine lunch. Bid 'bye to beloved Brother & family. Sung & listened to a sermon. Quartet - doing well; Organ practice at All Saints + prayer meeting. Home, bed early.

01 June, 2019

Michael Meeks: 2019-06-01 Saturday.

21:00 UTCmember

  • Played with baby E. variously, out to Bury Gardens via Greggs for a fine lunch in the gardens in the sun. Ice creams, home - slept a little, BBQ in the garden, and out to Strawberry Faire with H. to see Charlotte play. Home, chatted.

Older blog entries ->