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.

22 February, 2017

Michael Meeks: 2017-02-22 Wednesday.

17:01 UTCmember

  • Excited to be demoing a new Ubuntu / Snap based solution alongside Ubuntu and Nextcloud at MWC Barcelona.
  • Also pleased to see AMD release Ryzen Making 16 threads accessible to everyone - helping your LibreOffice compiles (and load times of course too); good stuff.


Weblate should be released by end of February, so it's now pretty much clear what will be there. So let's look at some of the upcoming features.

There were many improvements in search related features. They got performance improvements (this is especially noticeable on site wide search). Additionally you can search for strings within translation project. On related topic, search and replace is now available for component or project wide operations, what can help you in case of massive renaming in your translations.

We have worked on improving machine translations as well, this time we've added support for Yandex. In case you know some machine translation service which we do not yet support, please submit that to our issue tracker.

Biggest improvement so far comes for visual context feature - it allows you to upload screenshots which are later shown to translators to give them better idea where and in which context the translation is used. So far you had to manually upload screenshot for every source string, what was far from being easy to use. With Weblate 2.12 (and this is already available on Hosted Weblate right now) the screenshots management got way better.

There is now separate interface to manage screenshots (see screenshots for Weblate as an example), you can assign every screenshot to multiple source strings, however you can also let Weblate automatically recognize texts on the screenshots using OCR and suggest strings to assign. This can save you quite a lot of effort, especially with screenshots with lot of strings. This feature is still in early phase, so the suggestions are not always 100% matching, but we're working to improve it further.

There will be some more features as well, you can look at our 2.12 milestone at GitHub to follow the process.

Filed under: Debian English SUSE Weblate | 0 comments

Flash Fraud is a real and it affects hundreds of millions... or thousands... well, I have no idea how many people it really effects, but I have been a victim of Flash Fraud once and the experience was very irritating.

What is Flash Fraud? In short you are sold a device of lower capacity than what was advertised. Solid state media comes in many forms, most common consumer forms are SD cards and USB flash drives (yes, there are other forms, SSDs, mSATAs, etc but that is not as common for off the shelf or cheap data storage units). It is possible for a seller to take a lower capacity flash drive like a USB drive or SD Card and modify the controller so that it reports that the total capacity is larger than what is reality.

The casual consumer could see a great deal on the Internet, thinking he/she is getting a steal on on 32GB MicroSD Card when it is unknowingly only a 16GB card. Someone may actually go for weeks, months, even a year a while without any problems at all problem will show when the victim takes the 10,401st selfie that over writes the first selfie and the whole file system starts to unravel and corrupt. The average user may not know they are using a faulty drive for months after purchase and well past the 30 day return policy.

Fight Flash Fraud

You can Fight Flash Fraud by checking new devices as soon as you buy them. The tool to do that in Linux is F3. This can be found in the openSUSE Software Service. This is a terminal only program, although there is a User Interface it is not compiled for openSUSE at this time. This is not a problem as the usage of it is really quite easy... and FUN!

The two primary functions you will use are f3write and f3read, that is how you will conduct the test on the drive itself.


As with everything using the openSUSE Build Service, it is really easy to install just take a quick trip over to the openSUSE Software Service, select your distribution version number, and do the 1 Click Install.


Since this is only available as a terminal program in openSUSE from the repositories, I will go through using this in the terminal and using KDE as my Desktop Environment.

Insert your USB drive or SD Card, whatever flash medium it is you have that you want to verify.

Mount the drive in the system. I am using KDE but it should work similarly on other Desktops

Open the file location in your file manager, copy the location to your clipboard (ctrl+c)

Open a terminal, like Konsole or xterm

on the prompt type in the the command f3write and the location of the mounted drive. It should look something like this:

f3write [location to the media that needs to be checked]

Here is an example of what it looks

21 February, 2017

Cameron Seader: Link

23:44 UTC


OpenStack Summit Boston 2017 Presentation Votes (ends Feb. 21st, 2017 at 11:59pm PST)

Open voting is available for all session submissions until Tuesday, Feb 21, 2017 at 11:59PM PST. This is a great way for the community to decide what they want to hear.

I have submitted a handful of sessions which I hope will be voted for. Below are some short summary's and links to their voting pages.

Avoid the storm! Tips on deploying the Enterprise Cloud
The primary driver for enterprise organizations choosing to deploy a private cloud is to enable on-demand access to the resources that the business needs to respond to market opportunities. But business agility requires availability... 
Keys to Successful Data Center Modernization to Infrastructure Agility
Data center modernization and consolidation is the continuous optimization and enhancement of existing data center infrastructure, enabling better support for mission-critical and Mode 1 applications. The companion Key Initiative, "Infrastructure Agility" focuses on Mode 2...
Best Practices with Cloud Native Microservices on OpenStack
It doesn't matter where your at with your implementation of Microservices, but you do need to understand some key fundamentals when it comes to designing and properly deploying on OpenStack. If your just starting out then you will need to learn some key things such as the common characteristics, monolithic vs  microservice, componetization, decentralized governance, to name a few. In this session you'll learn some of these basics and where to start...
Thanks for your support.


Nice machine. Slightly bigger than X60, bezel around display way too big, but quite powerful. Biggest problem seems to be that it does not accept 9.5mm high drives...

I tried 4.10 there, and got two nasty messages during bootup. Am I the last one running 32 bit kernels?

I was hoping to get three-monitor configuration on my desk, but apparently X220 can not do that. xrandr reports 8 outputs (!), but it physically only has 3: LVDS, displayport and VGA. Unfortunately, it seems to only have 2 CRTCs, so only 2 outputs can be active at a time. Is there a way around that?

Michael Meeks: 2017-02-21 Tuesday.

21:00 UTCmember

  • Mail, financials with Tracie, call with Eloy; then Ash & Kendy. Built ESC stats. Out to cubs in the evening with M. - ran a code-breaking table with several fun encoding schemes.


This is first security bugfix release for Weblate. This has to come at some point, fortunately the issue is not really severe. But Weblate got it's first CVE ID today, so it's time to address it in a bugfix release.

Full list of changes:

  • Do not leak account existence on password reset form (CVE-2017-5537).

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Weblate is also being used on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Aptoide, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far!

Filed under: Debian English SUSE Weblate | 0 comments

20 February, 2017

The next OpenStack Summit takes place in Boston, MA (USA) in May (8.-11.05.2017). The "Vote for Presentations" period started already. All proposals are now again up for community votes. The period will end February 21th at 11:59pm PST (February 22th at 8:59am CEST).

This time I have submitted a proposal together with WDLabs:

  • Next Generation Hardware for Software Defined Storage - Software Defined Storage like Ceph has changed the storage market dramatically in the last few years. While software has changed, storage hardware stayed basically the same: commodity servers connected to JBODs utilizing SAS/SATA devices. The next step must be a revolution in the hardware too. At the Austin summit the Ceph community presented a 4 PB Ceph cluster comprised of WDLabs Converged Microservers. Each Microserver is built by starting with an HGST HE8 HDD platform and adding an ARM and DDR running Linux on the drives itself. WDLabs provided access to early production devices for key customers such as Deutsche Telekom for adoption and feedback. This talk will provide insight into our findings running a Ceph cluster on this platform as a storage provider to OpenStack.
This period the voting process changed again unique URLs to proposals seems to work again. So if you would like to vote for my talk use this link or search for the proposal (e.g. use the title from above or search for "Al-Gaaf"). As always: every vote is highly welcome! 

As the last times I highly recommend to search also for "Ceph" or what ever topic your are interested in. You find the voting page here with all proposals and abstracts. I'm looking forward to see if and which of these talks will be selected.

Michael Meeks: 2017-02-20 Monday.

21:00 UTCmember

  • Poked mail; sync. with Kendy, consultancy call. Out for a walk, lunch. Back to financials / 2017 projections and calls.


As we announced in the previous report, our 31th Scrum sprint was slightly shorter than the usual ones. But you would never say so looking to this blog post. We have a lot of things to talk you about!

Teaching the installer self-update to be a better citizen

As you may know, YaST includes a nice feature which allows the installer to update itself in order to solve bugs in the installation media. This mechanism has been included in SUSE Linux Enterprise 12 SP2, although it’s not enabled by default (you need to pass an extra option selfupdate=1 to make it work).

So after getting some feedback, we’re working toward fixing some usability problems. The first of them is that, in some situations, the self-update mechanism is too intrusive.

Consider the following scenario: you’re installing a system behind a firewall which prevents the machine to connect to the outside network. As the SUSE Customer Center will be unreachable, YaST complains about not being able to get the list of repositories for the self-update. And, after that, you get another complain because the fallback repository is not accessible. Two error messages and 2 timeouts.

And the situation could be even worse if you don’t have access to a DNS server (add another error message).

So after some discussion we’ve decided to show such errors only if the user has specified SMT or a custom self-update repository (which is also possible). In any other case, the error is logged and the self-update is skipped completely.

You can find further information in our Self-Update Use Cases and Error Handling document.

During upcoming sprints, we’ll keep working on making the self-update feature great!

Configuring workers during CaaSP installation

While CaaSP release approaches, our team is still working hard to satisfy the new requirements. Thankfully, YaST is a pretty flexible tool and it allows us to change a lot of things.

For CaaSP installation, YaST features a one-dialog installation screen. During this sprint, configuration of the Worker role has been implemented, including validation of the entered URL and writing the value to the installed system. You can check the animated screenshot for details.

The CaaSP worker configuration

New desktop selection screen in openSUSE installer

The world of Linux desktop environments change relatively quick, with new options popping-up and some projects being abandoned. Thanks to the openSUSE’s community of packagers we have a lot of these new desktop environments available on the openSUSE distributions. But the status of those packages for openSUSE is also subject to changes: some desktop environments are poorly maintained while others have a strong and active group of packagers and maintainer behind.

The YaST Team does not have enough overview and time to watch all these desktop environment and evaluate which one is ready or not for being in the installer’s desktop selection screen. So the openSUSE Release Team decided to replace this dialog with something a bit more generic but still useful for newcomers.

They asked

19 February, 2017

Michael Meeks: 2017-02-19 Sunday.

21:00 UTCmember

  • NCC in The Stable in the morning; Tony & Anne back for lunch, played a game; quartet practice, tea & read babies.

18 February, 2017

Michael Meeks: 2017-02-18 Saturday.

21:00 UTCmember

  • Up rather late; breakfast; slugged variously. Driven home with babes and more Green Ring-ness. Relaxed variously & watched Robin Hood, Prince of Thieves.

17 February, 2017

  • How librsvg exports reference-counted objects from Rust to C

    Librsvg maintains a tree of RsvgNode objects; each of these corresponds to an SVG element. An RsvgNode is a node in an n-ary tree; for example, a node for an SVG "group" can have any number of children that represent various shapes. The toplevel element is the root of the tree, and it is the "svg" XML element at the beginning of an SVG file.

    Last December I started to sketch out the Rust code to replace the C implementation of RsvgNode. Today I was able to push a working version to the librsvg repository. This is a major milestone for myself, and this post is a description of that journey.

    Nodes in librsvg in C

    Librsvg used to have a very simple scheme for memory management and its representation of SVG objects. There was a basic RsvgNode structure:

    typedef enum {
        /* ... a bunch of other node types */
    } RsvgNodeType;
    typedef struct {
        RsvgState    *state;
        RsvgNode     *parent;
        GPtrArray    *children;
        RsvgNodeType  type;
        void (*free)     (RsvgNode *self);
        void (*draw)     (RsvgNode *self, RsvgDrawingCtx *ctx, int dominate);
        void (*set_atts) (RsvgNode *self, RsvgHandle *handle, RsvgPropertyBag *pbag);
    } RsvgNode;

    This is a no-frills base struct for SVG objects; it just has the node's parent, its children, its type, the CSS state for the node, and a virtual function table with just three methods. In typical C fashion for derived objects, each concrete object type is declared similar to the following one:

    typedef struct {
        RsvgNode super;
        RsvgLength cx, cy, r;
    } RsvgNodeCircle;

    The user-facing object in librsvg is an RsvgHandle: that is what you get out of the API when you load an SVG file. Internally, the RsvgHandle has a tree of RsvgNode objects — actually, a tree of concrete implementations like the RsvgNodeCircle above or others like RsvgNodeGroup (for groups of objects) or RsvgNodePath (for Bézier paths).

    Also, the RsvgHandle has an all_nodes array, which is a big list of all the RsvgNode objects that it is handling, regardless of their position in the tree. It also has a hash table that maps string IDs to nodes, for when the XML elements in the SVG have an "id" attribute to name them. At various times, the RsvgHandle or the drawing-time machinery may have extra references to nodes within the tree.

    Memory management is simple. Nodes get allocated at loading time, and they never get freed or moved around until the RsvgHandle is destroyed. To free the nodes, the RsvgHandle code just goes through its all_nodes array and calls the node->free() method on each of them. Any references to the nodes that remain in other places will dangle, but since everything is being freed anyway, things are fine. Before the RsvgHandle is freed, the code can copy pointers around with impunity, as it knows that the all_nodes array basically stores the "master" pointers that will need to be freed in the end.

    But Rust doesn't work that way

    Not so, indeed! C lets you copy pointers

Michael Meeks: 2017-02-17 Friday.

21:00 UTCmember

  • Up; worked through the morning on the mail and task backlog. Out for a walk to see some ponies with the babes at Thorpness.
  • Back for lunch, and then to tackle the plumbing problems. Attacked an amazing amount of congealed fat in the sink plumbing - simply extraordinary; eventually had to cut the pipe-work out in sections and replace it with H's help.
  • Relaxed in the evening with some fine food. Couldn't sleep, hacked on socket code instead.


Dear Tumbleweed users and hackers,

This week we ‘only’ delivered 5 snapshots. But at least it was big ones, so that makes up for it. The review covers the snapshots {0211..0215}.

What did you receive

  • apparmor 2.11.0
  • KDE Plasma 5.9.1
  • KDE Applications 16.12.2
  • Linux Kernel 4.9.9
  • grep 2.28, with performance improvements
  • PackageKit-Qt: no more support for Qt4

In the staging ares, some work has been happening, but the usual suspects are still awaiting some love:

  • rpm 4.13.0 – the easy ones seem fixed; some obscure errors are left; mainly rpmlint seems to have trouble now
  • KDE Plasma 5.9.2
  • Mesa 17.0.0 (jumping up from 13.0)
  • Linux Kernel 4.9.10
  • glibc 2.25: still some failures left to tackle
  • util-linux will no longer pull in insserv for you. If your package makes use of it, you are now responsible for it
  • Libreoffice 5.3 – still fails the test suite on ppc64le
  • Python 3.6 – almost ready. The final piece is apparmor, where a fix is in the works / almost ready

As many will have noticed, the legal-auto bot is currently ‘much more reluctant’ to accept submissions. This is due to a total rewrite/restructuring of the legal process. See Stephan Kulow’s mail for more information.

16 February, 2017

Michael Meeks: 2017-02-16 Thursday.

21:00 UTCmember

  • Poked at socket code a lot in the morning; drove to Aldeburgh with the family - listened to the Green Ring Conspiracy in the car. Chat with Philippe, ESC call. More hackery.


Today: update the update process!

Yesterday a colleague asked me if it would be possible to apply a driver update (DUD) to the rescue system. He wanted to use a new btrfsprogs package.

My immediate reaction was: no, you can’t do it. But then, there’s no technical reason why it shouldn’t be possible – it actually nearly works. The updates are downloaded as usual – just not applied to the rescue system.

So I thought: “Why not make a driver update so driver updates work also for the rescue system?”

Here’s how I did it.

First, let’s find out how driver updates are usually applied. The code is here:


We need just these three lines:

for i in /update/[0-9]*/inst-sys ; do
  [ -d "$i" ] && adddir "$i" /

linuxrc downloads the driver updates and stores them in an /update directory. One (numbered) subdirectory for each update.

It obviously uses some adddir script. So we’ll need it as well. Luckily, it’s not far away:


Next, we’ll have to find the spot where the rescue system is set up. It’s done in this script:


Let’s do some copy-and-paste programming and insert the above code near the end of the script. It then might look like this

# driver update: add files to rescue system
if [ -d /mounts/initrd/update ] ; then
  cp -r /mounts/initrd/update /
  for i in /update/[0-9]*/inst-sys ; do
    [ -d "$i" ] && /mounts/initrd/scripts/adddir "$i" /

Some notes:

  • You have to know that prepare_rescue is run as the last thing before we exec to init. So everything is already in place, the left-over files from initrd are mounted at /mounts/initrd and will be removed at the end of the script.
  • This means we have to copy our updates into the new root directory, else they will be lost.
  • Also, we plan to make the adddir script available at /scripts/adddir by our driver update (see below).

Now let’s create the driver update:

mkdud --create dud_for_rescue.dud \
  --dist tw --dist leap42.1 --dist leap42.2 --dist sle12 \
  --name 'Apply DUD also to rescue system' \
  --exec 'cp adddir prepare_rescue /scripts' \
  adddir prepare_rescue

Here’s what this call does, line-by-line:

  • the fix works for all current SUSE distributions, so let’s support them
  • give the driver update some nice name
  • this command is run right after the driver update got loaded; we copy the scripts out of the driver update to their final location
  • add adddir and our modified prepare_rescue script

Here is the result: dud_for_rescue.dud.

Now, back to the original problem: how to use this to update a package in the rescue system? That’s easy:

mkdud --create new_btrfs.dud \
  --dist sle12 \
  dud_for_rescue.dud btrfsprogs.rpm

creates a driver update (for SLE12) that updates btrfsprogs also in the rescue system.


Two Linux Kernels per week in openSUSE Tumbleweed is becoming the norm as the rolling release is providing daily snapshots of new software that are closely aligned with upstream development.

Kernel 4.9.8 and 4.9.9 were released in the 20170208 and 20170212 snapshots respectively and the later brought a fix for a Btrfs system call.

Beside the 4.9.8 Kernel in the first week’s snapshot, 20170208, Mesa users will be happy to see version 13.0.4 had a specfile fix for build configuration for ARM, Power PC and s390 architectures. Gimp 2.8.20 made the color selection of the paint tool more robust and updated translations for a number of European languages. Several other packages were updated in the repositories from this snapshot and python3-kiwi 9.0.2 and vim 8.0.311 provided the most fixes.

Snapshot 20170209 brought the first major release of libosinfo (Operating System information database) in Tumbleweed with version 1.0.0, which focuses on metadata about operating systems and provides a single place to manage it in a virtualized environment.  F Virtual Window Manager (FVWM) 2.6.7 added a handful of new features and removed several other features like  GTK 1.x support.

Plasma 5.9.1 came in the 20170211 snapshot and AppArmor 2.11.0 update provided multiple improvements and fixes, one of which fixed an issue that Kernel 4.8 and above affected Apparmor policy enforcement. Libssh hackers made use of their time at FOSDEM and squashed bugs, which came in the libssh 0.7.4.

Both 20170213 and 20170214 snapshots provided updates for KDE Applications 16.12.2. GNU Compiler Collection 6.3.1 provides from architectural fixes and grub2 now has a Release Candidate 1, which came in the most recent snapshot.


A humanoid robot should be able to talk. So I looked around for some open source speech synthesis software.

(The above video does feature a talking robot (and a multilingual dolphin) but that's where similarities with the following content end.)


Hello world:

espeak 'Hello, world!'

Standard input works too:

espeak <<EOS
A robot may not injure a human being or, through inaction,
allow a human being to come to harm.

I need the robot to speak Czech too:

espeak -v cs 'Dobrý den!'

Chinese also seems to work, at least to my beginner ear:

espeak -v zh '认识你很高兴'
# The same in pinyin
espeak -v zh 'ren4shi ni3 hen3 gao1xing4'

To put the words to the robot's mouth we first need to save the sound to a file:

espeak -w dobry-den.wav -v cs 'Dobrý den!'    # 16 bit, mono 22050 Hz

Now a thing that is not so useful for the robot, but a cool diversion. This tells eSpeak to be quiet, and transcribe the text in International Phonetic Alphabet.

espeak -q --ipa 'All human beings are born free and equal
in dignity and rights. They are endowed with reason and conscience
and should act towards one another in a spirit of brotherhood.'

ˈɔːl hjˈuːmən bˈiːɪŋz ɑː bˈɔːn fɹˈiː and ˈiːkwəl ɪn dˈɪɡnɪti and ɹˈaɪts

ðeɪ ɑːɹ ɛndˈaʊd wɪð ɹˈiːzən and kˈɒnʃəns and ʃˌʊd ˈakt tʊwˈɔːdz wˈɒn ɐnˈʌðəɹ ɪn ɐ spˈɪɹɪt ɒv bɹˈʌðəhˌʊd

And it also works for Czech:

espeak -q -v cs --ipa 'Všichni lidé rodí se svobodní a sobě rovní
co do důstojnosti a práv. Jsou nadáni rozumem a svědomím
a mají spolu jednat v duchu bratrství.'

fʃˈixɲi lˈideː rˈoɟiː se svˈobodɲiː a sˈobje rˈovɲiː tsˈo do dˈuːstojnˌosci a prˈaːv

jsoʊ nˈadaːɲi rˈozumem a svjˈedomiːm a mˌajiː spˈolu jˈednat v dˈuxu brˈatr̩stviː


The problem with eSpeak is that it sounds quite robotic. I remembered that for Czech, the epos system was much better, also for its availability of better quality downloadable voices.

I installed epos (here as an openSUSE RPM) and downloaded the high quality voices epos-tdp.tgz, then unpacked them to the right place:

cd /usr/share/epos/inv
sudo tar xvf .../epos-tdp.tgz

At first I got no sound but strace showed me a problem with /dev/dsp and a bit of searching turned out that I must run eposd with a dsp wrapper:

padsp eposd $OPTIONS
# eg.
padsp eposd --voice machac
padsp eposd --voice violka

Another quirk is that epos wants the input in ISO Latin 2, so I used iconv:

while read S; do say-epos $(echo "$S" | iconv -f utf8 -t l2); done

For saving the sound to a file, use -w to use a fixed


Exactly on the schedule, Weblate 2.11 is out today. This release brings extended stats available to users and various other improvements and bug fixes.

Full list of changes:

  • Include language detailed information on language page.
  • Mercurial backend improvements.
  • Added option to specify translation component priority.
  • More consistent usage of Group ACL even with less used permissions.
  • Added WL_BRANCH variable to hook scripts.
  • Improved developer documentation.
  • Better compatibility with various Git versions in Git exporter addon.
  • Included per project and component stats.
  • Added language code mapping for better support of Microsoft Translate API.
  • Moved fulltext cleanup to background job to make translation removal faster.
  • Fixed displaying of plural source for languages with single plural form.
  • Improved error handling in import_project.
  • Various performance improvements.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Weblate is also being used on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Aptoide, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: Debian English phpMyAdmin SUSE Weblate | 0 comments

My efforts to spread the good news of Linux continues with this somewhat basic but capable Gateway laptop. The name is a little odd and not very memorable: This is the NE56R41u… sounds awesome… It seems that not everyone can have naming creativity.

Admittedly, in my hasty search on the web for other individual Linux install experiences, I didn’t see much positive. I expected there to be some fiddling around with the machine in order to install openSUSE Linux on the Gateway computer.

This is the second laptop I have converted for this particular family. The first one went so well for them, they asked if I could fix up their other broken PC. It is rather encouraging to know that they really liked it and wanted yet another machine with this “Linux Stuff.”

Preparing the Installation

Having previously used the SUSE Imagewriter to “burn” the openSUSE Leap 42.2 to a USB Flash drive. I wanted to start out by just plugging the USB drive in and seeing what happens on a cold boot. Of course, nothing happened as it booted to a broken Windows install.

I had to get into the BIOS but the designers of this machine felt it best not to let you know on screen how to get into the system firmware. A little research online gave me a few hints as to how to get into it and what ended up working was to press and hold F2 immediately after you power on the machine.

Within the BIOS configuration utility, I moved over to the Boot options and set the USB HDD as first on the boot order and attempt installation. The result was, the system would not boot from USB stick but rather just sat on the Gateway Logo splash screen. It appears that I cannot boot from USB with UEFI active. Thankfully, there is a toggle to switch to Legacy BIOS boot mode so that I can actually get the thing to boot from USB.

One little quirk that I don’t understand is, when you put the BIOS in legacy mode, you can’t change the boot order. Set the boot order in UEFI and switch to Legacy Mode. Not a big deal, just seemed a bit annoying.

Installation Process

The installation was extremely uneventful and not much to discuss. You can basically follow the step by step from there. I did setup the network so that it would pull the latest packages upon install. I didn’t care for the default partitioning scheme set up by the installer so I did make a slight customization:
- Increased Swap Space to 4 Gb instead of the default 2 Gb.
- Increased The / (root) partition from 10Gb to 30Gb. I do not like running out of space on the root partition.

I am a fan of using SSH for remote access and file transfers, so prior to committing the install, I opened the SSH port and activated the service so that I could

15 February, 2017

Michael Meeks: 2017-02-15 Wednesday.

21:00 UTCmember

  • Awoke again to the dulcet tones of the neighbours extension being drilled / compacted / etc. Hey ho - they get to enjoy our early morning piano practice I suppose.
  • Built ESC stats. Most encouraged to see that the German comment count has dropped by ~10% in the first two weeks of February - ~320 lines fewer (of 3600) thanks to: Johnny M, Michael Stahl (RedHat), Katarina Behrens (CIB), and Lukas Röllin - wonderful.
  • Sync. with Ash; interview in the evening.


You create docker containers and many tools are missing. As a example: tcpdump

So I was looking for a solution for sniffing the traffic from outside of the container. It is recommended to setup an additional (tcpdump) container and to use it with following network connection:

docker pull adamoss/docker-tcpdump

docker run -ti –net=container:${id} adamoss/tcpdump port https or port http


You can specify different ports and save the data in a file. The id is the name of the container and the „–net=container:“ is saying that you want to have input/output traffic of the docker container like the command would be executed on the same system.

14 February, 2017

Michael Meeks: 2017-02-14 Tuesday.

21:00 UTCmember

  • Nice set of Valentines Day cards for the whole family; dug away at drear contract review much of the day.
  • Watched and fast-forwarded some James Bond for H. and N. in the evening. Hacked until late on improved non-blocking socket code.

13 February, 2017

Michael Meeks: 2017-02-13 Monday.

21:00 UTCmember

  • Up lateish; babes on half term holiday - team meetings; E-mail, code review with Ash. E-mail deluge, board call, chase Cyber Essentials certification; dinner, more paperwork.


Soon it will be a decade since we started the RadeonHD driver, where we pushed ATI to a point of no return, got a proper C coded graphics driver and freely accessible documentation out. We all know just what happened to this in the end, and i will make a rather complete write-up spanning multiple blog entries over the following months. But while i was digging out backed up home directories for information, i came across this...

It is a copy of the content of an email i sent to an executive manager at SuSE/Novell, a textfile called bridgmans_games.txt. This was written in July 2008, after the RadeonHD project gained what was called "Executive oversight". After the executive had first hand seen several of John Bridgmans games, he asked me to provide him with a timeline of some of the games he played with us. The below explanation covers only things that i knew that this executive was not aware of, and it covers a year of RadeonHD development^Wstruggle, from July 2007 until april 2007. It took me quite a while to compile this, and it was a pretty tough task mentally, as it finally showed, unequivocally, just how we had been played all along. After this email was read by this executive, he and my department lead took me to lunch and told me to let this die out slowly, and to not make a fuss. Apparently, I should've counted myself lucky to see these sort of games being played this early on in my career.

This is the raw copy, and only the names of some people, who are not in the public eye have been redacted out (you know who you are), some other names were clarified. All changes are marked with [].

These are:
SuSE Executive manager: [EXEC]
SuSE technical project manager: [TPM]
AMD manager (from a different department than ATI): [AMDMAN]
AMD liaison: [SANTA] (as he was the one who handed me and Egbert Eich a 1 cubic meter box full of graphics cards ;))

[EXEC], i made a rather extensive write-up about the goings-on throughout 
the whole project. I hope this will not intrude too much on your time, 
please have a quick read through it, mark what you think is significant and 
where you need actual facts (like emails that were sent around...) Of 
course, this is all very subjective, but for most of this emails can be 
provided to back things up (some things were said on the weekly technical 
call only).

First some things that happened beforehand...

Before we came around with the radeonhd driver, there were two projects 

One was Dave Airlie who claimed he had a working driver for ATI Radeon R500
hardware. This was something he wrote during 2006, from information under 
NDA, and this nda didn't allow publication. He spent a lot of time bashing 
ATI for it, but the code was never seen, even when the NDA was partially 
lifted later 


Small Messaging Service, or SMS, is a very common and popular way to communicate today. It is a convenient way to transmit a short message. It has seemingly evolved into a way to carry on conversations throughout the day… but it is so 2007... 

I don't actually have a problem with the Small Message Service in itself. I think it is a fine service but I do have some issues with it: 

One, I don't have a great way of using my computer to utilize SMS from my phone. There are some 3rd party services, some are free, some are not. MySMS.com is a service I do use but it often lags as of late. I can use a remote desktop service like TeamViewer to control my phone and have the full keyboard. KDE Connect is close to being able to do it but is just not quite there. 

Two, I would prefer to have some way of messaging seamlessly from the computer or the mobile device without relying on the phone itself. Utilizing any of aforementioned services, you don't have access to the full message history. With MySMS, if I send a message from that web interface from the computer, I can't see what I sent on the phone. The SMS service will not function unless the phone has an active internet and cell service connection. Internet alone will not work. I have been in many situations were I have an active Internet connection but have no cell service available. 

Three, SMS is, well, small, you can't send larger files to include pictures or audio clips. It is VERY limited and I have yet to have one of those, “Attachement not received, tap to download” or something like that actually work.

Lastly, I have chosen to use Ting for my mobile service provider, a pay-per-use type of service, I am charged per SMS, albeit a very small amount and there is no way I am going to spend more there than what I had been paying with a contract-type-of-service but my goal would be to use less of that service and instead use all the unlimited WiFi that I have access to throughout the day at work or at home. Squeeze that dollar as much as possible.

Google HangoutsOne solution I have been using has been the Google Hangouts messaging service, it works very well, and I do like it. I mostly like the Google ecosystem but I am starting to lose confidence in Google. Another solution for messaging has been Facebook Messager but I don't use that one voluntarily anymore. I REALLY don’t trust Facebook at all. I know that neither Google or Facebook are not shy about mining my data for advertising purposes. As much as I like Google and their services or tolerate Facebook, I don't necessarily want either publicly traded company to have all aspects of my communication. 

Why I am using Telegram

Besides my primary reason

12 February, 2017

Michael Meeks: 2017-02-12 Sunday.

21:00 UTCmember

  • Overslept vigorously, to the stable for NCC; Claire explained Ephesians 1 well - helpful; back foor lunch. Off to pick up littlies but too late for the service. Lots of stories. Played with them in the afternoon; stories, bed.

11 February, 2017

Michael Meeks: 2017-02-11 Saturday.

21:00 UTCmember

  • Up very late indeed, slugged in bed chatting to J. & bigger babes. Late breakfast, H. out swimming with Alex, Elise & H?. Spent my time mending the toilet - new float valve is much larger than the previous one - requiring odd angles, silicone bodgery and worse.
  • Out for a walk with J. on the heath - nice. Swimmers home, for a Bourne movie with N. followed by tea & card games. Dropped Alex home. Put babes to bed.


Dear Tumbleweed users and hackers,

This week we managed to get out 7 snapshots – I am going to review the snapshots {0203..0209}.

The interesting updates in those snapshots included

  • GStreamer 1.10.3 / GStreamer 0.10 is definitively removed
  • Network Manager 1.6.0
  • Linux Kernel 4.9.8
  • GCC 6.3.1

And as usual, there are a lot of things being prepared for you. Some of the stagings areas can use your help to move forward.

  • KDE Plasma 5.9.1 (snapshot 0210+)
  • KDE Applications 16.12.2
  • RPM 4.13.0 – still quite some packages need love
  • glibc 2.25 – also in need of your help
  • Libreoffice 5.3: fails the internal test suite on ppc64le
  • Linux Kernel 4.9.9

If you want to find out where you can help in the various staging areas, you can always look at the failures listed on the dashboard you can find at

Older blog entries ->