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 September, 2014


Our brand new ‘Rolling Factory’ has already amassed over 6000 installations and that’s just kicking awesome. But we won’t just roll: we will still create releases of openSUSE, and 13.2 is next! According to the roadmap, our latest Geeko is due in November and it will be awesome. We promise. But it doesn’t come for free: you will have to help.

Open Source isn’t magic

Thing is, Open Source can only be as awesome as the people who work on it! And while openSUSE 13.2 has many, many awesome people working on it, what matters in the end is if it will work for you. There is only one way to make sure it does: test it. Test your use cases and make sure what you need openSUSE 13.2 for will work perfectly. That crazy old system you have set up for your uncle? Test it. That brand new ultrabook of your sister? Test it. That super server you’re secretly building in the cellar? Test it. TEST IT ALL!

Testing-Group-LogoAll the news

openSUSE 13.2 will have lots of new things and lots more is coming.

  • Linux kernel 3.16 (going for 3.17)
  • GNOME 3.12 (planning for 3.14)
  • Plasma Workspaces 4.11, KDE applications 4.13 mixed with 4.14 (will be all 4.14)
  • and for testing: Plasma 5.1 (will be 5.2, perhaps 5.3), Frameworks 5.2 (will be 5.5 or higher) and the latest KDE Applications.
  • btrfsprogs is now at 3.16. btrfs will be the default filesystem in openSUSE 13.2 so help test the heck out if this!
  • AppArmor 2.9 beta bringing the new python-based tools developed during GSoC 2013 and some new rule types to mediate sockets, ptrace, signals and dbus (I’m not sure if all of them are already supported by the openSUSE kernel and dbus – you’ll need to ask the kernel and dbus maintainers)- and of course the usual bunch of profile updates, bugfixes etc.
  • LibreOffice

One Distribution with many flavours to pick

There is a tradition in openSUSE to be released with more than one GUI, this saga continues on 13.2 beta as it comes with all the newest popular Graphical User Environments. All you have to do is pick your favourite during installation and enjoy!


We already mentioned the latest coming from the KDE community, with the stable Applications version 4.14 coming with many bugfixes and polish. GNOME 3.14 will introduce the following features:

  • Browse DLNA media servers in GNOME Photos
  • Add GNOME Hitori to official GNOME releases/modulesets
  • Integration of PicassaWeb in GNOME Photos
  • Sharing network awareness (avoid unintentional oversharing of private information)
  • Using systemd for the user session
  • Color tinting in GNOME Shell
  • Integrating Zimbra into Gnome Shell

Some of these features are marked as done, some as ongoing and some as still being planned, so we’ll see what


The openSUSE Asia Summit committee has been working hard and is finally prepared to welcome you and give a taste of rich Chinese history and hospitality.

You may register in our CONFERENCE SUBMISSION TOOL before Sep 30th. We are looking forward to having you with us on this Oct in Beijing.

Off course, once you have registered you need to reach here. Once you are here in Beijing the following directions might be of some use.

Beihang University, No. 37 XueYuan Road, HaiDian District, Beijing, China. (北京市海淀区学院路37号,北京航空航天大学)


  • Subway: Take line 10 to Xitucheng station, exit A. Walk to north for about 500 meters.
  • Bus: Take bus 478, 386, 490, 392, 311, 562, 498, 438, 944, 484, 375, 632, 609, 617, 606, 693, Yuntong103 to Beijinghangkonghangtiandaxue(北京航空航天大学) station.
  • Taxi: Tell your driver to stop at “Beihang Dongmen”(北航东门).

Recommended Accomodation for choice:

If you have difficult to access Google Maps, please visit the link to OpenStreetMap.

If you have any problem about registration, here we have a short README.


I’m pleased to announce a new 1.22.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • A new tool to compare ebook files, showing the differences in their underlying text, styles and images side by side
  • Edit book: Add a tool to view the list of checkpoints and compare the current state of the book to the state at the specified checkpoint. To use it click View->Checkpoints
  • Edit book: Add a tool to compare the book being currently edited with another file. To use it go to File->Compare to other book
  • Allow comparing the ORIGINAL_EPUB version of a book to the EPUB version by right clicking on the ORIGINAL_EPUB format in the book details panel. And the same for ORIGINAL_AZW3 and AZW3 formats.
  • Edit Book: Add a button to show the changes after various automated tools are run such as: remove unused CSS, subset embedded fonts, smarten punctuation, etc.
  • Edit Book: Add check for spine items with incorrect media-type specified in the manifest
  • Edit Book: Enable editing of page map XML files
  • DOCX Input: Improve handling of text boxes. Text boxes are still not supported, but they no longer cause errors or duplicate content when embedded inside paragraphs.
  • Edit Book: Add check for links that point to directories in the book instead of files.
  • Edit Book: Show the filename of the currently edited file in the title bar.

Bug fixes

  • Edit Book: Fix unused CSS removal tool inserting namespace declaration at the top of the stylesheet
  • Edit book: Fix cover not being updated from the current cover in the calibre library when using Edit Book. Note that you can turn off metadata updating via Preferences->calibre Integration in the Edit Book Preferences.


You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .


You can send Bugreports for the calibre package to the Novell Bugzilla


Donations for the packager are everytime welcome. Just click on: Donate


I’m pleased to announce a new 1.21.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Edit book: Add a tool to automatically remove all unused CSS rules. Useful for books created from templates that can have large numbers of CSS rules that dont match any actual content. Available via Tools->Remove unused CSS.
  • Edit book: Add a tool to split HTML files at multiple locations automatically. To use it, right click in the file and choose ‘Split at multiple locations’. Useful if you want to split at all heading tags or all tags having a certain class and so on.
  • Book polishing: Add an option to automatically remove all unused CSS rules, works the same as the tool for Edit book, above.
  • Driver for ImCoSys imcoV6L
  • Edit book: Allow editing of .plist files as XML

Bug fixes

  • Metadata download: Fix downloading of metadata from Edelweiss not working because of website changes
  • Ebook viewer: Do not override the background color specified in the book if the user has not set a background color in the viewer preferences
  • Edit book: Handle EPUB files that erroneously list the OPF itself in the OPF manifest with an incorrect mime type
  • Edit book: Prevent arrange into folders tool from moving files inside the META-INF folder


You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .


You can send Bugreports for the calibre package to the Novell Bugzilla


Donations for the packager are everytime welcome. Just click on: Donate


I’m pleased to announce a new 1.20.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Edit book: Add a new tool to automatically arrange all files in the book into folders based on their type. Access it via Tools->Arrange into folders.
  • Edit book: Add various validity checks for OPF files when running the Check Book tool.
  • Edit book: Add checks for duplicate ids in HTML/OPF/NCX files
  • Edit book: Add checks for filenames containing URL unsafe characters to the Check Book tool
  • Conversion: Allow getting text for entries in the Table of Contents from tag attributes.

Bug fixes

  • AZW3 Output: When converting EPUB files that include an HTML titlepage and no external cover is specified, ensure that the Go to cover action on the Kindle goes to the cover image and not the HTML titlepage.
  • Prevent setting an incorrect value for compression quality in the wireless driver causing an error
  • Show a busy cursor while calibre is working on matching books on the device to books in the library, which can take a while if the user has a lot of books on the device.
  • iTunes driver: Retry automatically a few times when failing to send multiple book to iTunes.
  • HTML Input: Fix UTF-16/32 encoded files that are linked to from the parent file not being properly processed.
  • EPUB Output: Fix splitting of large HTML files removing all child tags from inside tags.
  • Edit book: Fix tab characters not being identified in the lower right corner.


You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .


You can send Bugreports for the calibre package to the Novell Bugzilla


Donations for the packager are everytime welcome. Just click on: Donate


I’m pleased to announce a short update for youtube_dlhelper.

What’s happened?

  • Updated bundle dependency of multi-json to newest version 1.8.4
  • Cleanup
  • Structured the terminal output


I’m pleased to announce a new 1.19.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Edit book: A new tool to insert special characters into the text, available via Edit->Insert special character. Supports all unicode characters (over 60,000 of them). See http://manual.calibre-ebook.com/edit.html#inserting-special-characters
  • Edit book: When searching for text in the editor, center the found text on screen
  • Driver for teXet TB-146SE.
  • Edit book: Show tooltips in the File Browser for ‘special’ files, such as the cover, opf, ncx, etc.
  • Edit book: When checking book, check for entries in the OPF whose mimetype does not match the file extension.

Bug fixes

  • Edit book: Fix marking a file as titlepage not working if the opf does not contain a section.
  • Edit book: Fix errors when working on HTML files that parse as valid XML, but do not have the correct XHTML namespace.
  • Fix typing non-English characters using an input method (key composing) in the author/tags/etc fields in the metadata dialog not working.
  • Edit book: Fix error when merging html files that include a currently opened file and a non-html file is also open
  • Fix unnecessary error popup during shutdown if the wireless device driver is running and mdns de-registration fails.
  • Add L´ and D´ as recognized articles when automatically computing sort strings for French.
  • Edit book: Fix changing mimetypes in the opf file not being detected when closing the opf file or running any automated tool like Check Book


You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .


You can send Bugreports for the calibre package to the Novell Bugzilla


Donations for the packager are everytime welcome. Just click on: Donate


I’m pleased to announce a new 1.18.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Add an option to control how completion works when editing authors/tags/series/etc.
  • Edit book: Add a check for too large HTML files when running the check book tool.
  • Conversion: Sort the CSS rules in the output stylesheet using a ‘natural’ sort algorithm, so that calibre2 sorts before calibre10.
  • Cybook Orizon driver: Upload cover thumbnails in the correct format and add an option to control what directory books are sent to on the SD card
  • Portable installer: Do not ask the user for confirmation when upgrading an existing installation during an automated install
  • Linux/OS X driver for Trekstor Pyrus LED
  • Driver for Tagus Lux

Bug fixes

  • MOBI Output: When text indent is specified as a percentage in the input document, prevent the generated MOBI from having too large an indent if the user chooses a large output profile like tablet.
  • Edit book: Fix live replacement of entities not working on some non-US keyboard layouts.
  • Fix titlecasing of words not capitalizing the first letter, if the first letter is not an English character.
  • Edit book: Ensure that multiple edit book windows are grouped in a separate group from viewer windows in the Windows 7 taskbar. Also change the icon color to blue to more easily distinguish it from the viewer icon
  • Edit book: Fix a bug in the regex engine that calibre uses that could cause various incorrect results in some special circumstances.
  • Edit book: Replace buggy Qt supplied actions in the context menu for the editor widget with properly implemented ones
  • Book list: Fix sorting on fields that are not viewable as columns not being restored on calibre restart. Also fix sorting on the Title field via the right click menu not being restored.
  • Windows 64bit build: Fix corrupted images in MOBI files causing crash.
  • Edit book: Prettify html in newly created books.
  • AZW3 Input: Handle azw3 files that contain some empty individual HTML files
  • Comic Input: Fix a regression to comic input in 1.15 that could cause some comics to be rendered as black or white pages.


You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .


You can send Bugreports for the calibre package to the Novell Bugzilla


Donations for the packager are everytime welcome. Just click on: Donate


I’m pleased to announce a new 1.17.0 package of calibre for openSUSE. Whats happend in this version?

New features

  • Merry Christmas everyone! Early release this week, as I will be travelling.
  • Edit book: Allow drag and drop of images onto the image editor
  • Edit book: Allow import of multiple files at once, via File->Import files into book
  • Edit book: Show the name of the current character to the left of the cursor in the status bar. Can be turned off via Preferences.
  • Edit book: Automatically replace HTML entities as they are typed. This can be turned off in the Preferences.
  • ToC Editor: Allow bulk renaming of items. Simply select the items you want to rename, right click and choose bulk rename. Useful if, for instance, you want to rename all the items to be Chapter 1, Chapter 2 and so on.
  • Edit book: Allow linking of stylesheets into HTML files automatically. Right click on the selected HTML files in the File browser and choose ‘Link stylesheets’ to have the tags for the sheets automatically inserted.
  • Edit book: When deleting files, automatically remove all entries that refer to them from the ToC

Bug fixes

  • ToC Editor: When auto-generating the table of contents from headings or XPath, if an element is at the top of the file, link only to the file instead of to the element.
  • Edit book: When splitting files, name the newly created file with a ‘_split suffix’.
  • Edit book: Fix position syncing incorrect when in HTML files that contain tags with charset encoding declarations over more than a single line
  • Edit book: Automatic correction of font family names not quoting family names with spaces in them if the original, incorrect family name did not have a space.
  • Title casing: Fix presence of some non-English characters or smart punctuation causing all-caps text to not be properly titlecased
  • Edit book: Fix a bug preventing marking an image as cover in a book that previously had no cover
  • Edit book: Fix a typo causing the preferences for which windows occupy which corners to not work
  • Edit book: Fix crash that happens sometimes when deleting multiple files.
  • Edit book: Handle EPUB files which contain opf files with no tags
  • Edit book: Fix deleting a file that is currently open in an editor, not auto-closing the editor
  • DOCX Input: Fix error when converting DOCX file that contains only image based links and no text based links.


You can find the latest version in the Documentation:Tools Repository. As example for openSUSE 13.1: http://download.opensuse.org/repositories/Documentation:/Tools/openSUSE_13.1/ .


You can send Bugreports for the calibre package to the Novell Bugzilla


Donations are everytime welcome. Just click on: Donate


A new gem

A new gem has started in the world. Youtube_helper is not just another Youtube gem. It’s the helper gem. What it does? The Youtube_dlhelper gem downloads a youtube video from a defined space, creates the needed directories and transcodes the filde from *.m4a to *.mp3. Read the full README for using the gem.

Where is it?

You can find it there: https://github.com/saigkill/youtube_dlhelper (It goes directly to the README).

Ho to use?

Just run it with: youtube_dlhelper.rb YourUrl The new file is shown inside your $Musicfolder/Groupname/Youtube-Music or if you have choosen a Interpret it goes to $Musicfolder/Surname_Firstname/Youtube-Videos.

Have a lot of fun :-)

Sascha Manns: Welcome

01:00 UTCmember



Hello and welcome to my new Jekyll Bootstrap Page. Because of some Bandwidth problems i moved my blog out to Github.

Sascha Manns: Jekyll Introduction

01:00 UTCmember


This Jekyll introduction will outline specifically what Jekyll is and why you would want to use it. Directly following the intro we’ll learn exactly how Jekyll does what it does.


What is Jekyll?

Jekyll is a parsing engine bundled as a ruby gem used to build static websites from dynamic components such as templates, partials, liquid code, markdown, etc. Jekyll is known as “a simple, blog aware, static site generator”.


This website is created with Jekyll. Other Jekyll websites.

What does Jekyll Do?

Jekyll is a ruby gem you install on your local system. Once there you can call jekyll --server on a directory and provided that directory is setup in a way jekyll expects, it will do magic stuff like parse markdown/textile files, compute categories, tags, permalinks, and construct your pages from layout templates and partials.

Once parsed, Jekyll stores the result in a self-contained static _site folder. The intention here is that you can serve all contents in this folder statically from a plain static web-server.

You can think of Jekyll as a normalish dynamic blog but rather than parsing content, templates, and tags on each request, Jekyll does this once beforehand and caches the entire website in a folder for serving statically.

Jekyll is Not Blogging Software

Jekyll is a parsing engine.

Jekyll does not come with any content nor does it have any templates or design elements. This is a common source of confusion when getting started. Jekyll does not come with anything you actually use or see on your website - you have to make it.

Why Should I Care?

Jekyll is very minimalistic and very efficient. The most important thing to realize about Jekyll is that it creates a static representation of your website requiring only a static web-server. Traditional dynamic blogs like Wordpress require a database and server-side code. Heavily trafficked dynamic blogs must employ a caching layer that ultimately performs the same job Jekyll sets out to do; serve static content.

Therefore if you like to keep things simple and you prefer the command-line over an admin panel UI then give Jekyll a try.

Developers like Jekyll because we can write content like we write code:

  • Ability to write content in markdown or textile in your favorite text-editor.
  • Ability to write and preview your content via localhost.
  • No internet connection required.
  • Ability to publish via git.
  • Ability to host your blog on a static web-server.
  • Ability to host freely on GitHub Pages.
  • No database required.

How Jekyll Works

The following is a complete but concise outline of exactly how Jekyll works.

Be aware that core concepts are introduced in rapid succession without code examples. This information is not intended to specifically teach you how to do anything, rather it is intended to give you the full picture relative to what is going on in Jekyll-world.

Learning these core concepts should help you avoid common frustrations and ultimately help you better understand the code examples contained throughout Jekyll-Bootstrap.

Initial Setup

19 September, 2014


After installing current openSUSE Factory in a VM, I found that the old GRUB option was removed from YaST2. I knew this from the mailing list, but now I actually realized that this happened. I still prefer GRUB over GRUB2, because for me it is easier to manage. But being lazy, I just went with the default.
Everything went well, until I added a customized kernel (I had installed the VM to do some kernel experiments after all). The boot menu suddenly was not very useful anymore. After selecting "advanced options", I got the following:

Well, which one of the four is now my hand-built, brand new kernel?
There is no such thing as in old GRUB where "Esc" got you out of gfxboot mode and into text mode. The command keys, like "e" for editing the current selection and "c" for a GRUB2 shell (something even more hellish than the old GRUB shell apparently) work, but you really need to know this, as there is no indication of that.

So I wanted to get rid of the gfxboot stuff. I don't need fancy, I need it usable.
Booted the VM, logged in. "zypper rm grub2-branding-openSUSE" followed by "grub2-mkconfig > /boot/grub2/grub.cfg". Much better:
But still it is in graphics mode, which I do not care about now, but once I have to deploy this stuff on something like an HP server where you can get a text console via SSH, but only if it is in plain VGA mode, I will not be amused. So boot that VM again, and look further. Finally, the solution is in /etc/default/grub: "GRUB_TERMINAL=console". The comment above says just uncommenting the original "gfxterm" setting would be enough, but it is not. After recreating the config file and rebooting, it looks quite useful:
And it is not even missing information, compared to the gfxterm version... no idea why this stuff is default.

Now that "Distribution" string in there looks completetly redundant, so getting rid of that will help, too.
Again, it is in /etc/default/grub, variable GRUB_DISTRIBUTOR. I see that in the grub2 rpm package, there is only "openSUSE" instead of  "openSUSE Factory Distribution", so it might be put into the config by the installer or something. I'll change it to just "Factory" (to distinguish between other openSUSE installations). After grub2-mkconfig, it looks almost good:
Now the important information (Kernel version) is completely visible. Much better than the original "bling bling" screen, which had no useful information at all...
Just fixing the Factory string would probably have helped also, but it still would fail the server test, so plain console will stay my favorite for now.


To share a bit more about this long trip but worth to made it.
You can now enjoy the video clip made during this event.

Was a real pleasure to meet so numerous openSUSE users.

17 September, 2014

Jakub Steiner: Making of GNOME 3.14

14:50 UTCmember


The release of GNOME 3.14 is slowly approaching, so I stole some time from actual design work and created this little promo to show what goes into a release that probably isn’t immediately obvious (and a large portion of it doesn’t even make it in).

Watch on Youtube

I’d like to thank all the usual suspects that make the wheels spinning, Matthias, Benjamin and Allan in particular. The crown goes to Lapo Calamandrei though, because the amount of work he’s done on Adwaita this cycle will really benefit us in the next couple of releases. Thanks everyone, 3.14 will be a great release*!

* I keep saying that every release, but you simply feel it when you’re forced to log in to your “old” GNOME session rather than jhbuild.


Dear openSUSE Community,

As you might be aware, SUSE’s parent entity, the Attachmate Group has entered into an agreement to merge into Micro Focus, a UK-based enterprise software company. As the primary sponsor of the openSUSE Project, SUSE’s President and General Manager, Nils Brauckmann has contacted the openSUSE Board to share the following key points

  • Business as Usual: There are no changes planned for the SUSE business structure and leadership. There is no need for any action by the openSUSE Project as a result of this announcement.

  • Commitment to Open Source: SUSE remains passionately committed to innovation through Open Source. This has always been the foundation of our business and that will continue as we grow and innovate in new areas.

  • Commitment to openSUSE: SUSE is also fully committed to being a sponsor and supporter of an open, highly independent and dynamic openSUSE community and project. We are proud of openSUSE and greatly value the collaborative relationship between SUSE and the openSUSE community.

The combination of the Attachmate Group and Micro Focus creates a larger, global enterprise software entity, operating at a greater global scale. This provides an even stronger foundation for the continued investment in SUSE and our continued innovation through Open Source.

The openSUSE Board would like to thank Nils and SUSE for this reassuring statement. The Board is enthusiastic about the benefits the merger may bring to SUSE and ultimately also to our openSUSE Project.

If anyone has any questions, there will be an opportunity to raise them at todays (Wednesday 17th Sept) regular openSUSE Project Meeting at 15:00 UTC in #opensuse-project on the Freenode IRC network.


The openSUSE Board

16 September, 2014


The standard method to access z/VM is using a 3215 terminal with a terminal emulator. With linux, the x3270 package provides a free emulator for these terminals.

One of the features of z/VM is, that you can define several consoles for a guest. This is very helpful if there are problems with a guest that affect the network connectivity. With z/VM you can even define multiple consoles that allow direct logon to the running guest.

By default, only one terminal is defined for z/VM guests. To define three additional 3270 consoles on a guest at the addresses 0020-0022, use the following commands:

cp define graf 20
cp define graf 21
cp define graf 22

These consoles can also be created online from linux, provided that you got sufficient privileges on the guest. To issue cp commands from linux, use the command vmcp instead of cp.

With SLES 12, several additional steps are needed to activate these consoles.

First, the devices must be made available to the system. This a twofold process:

  1. Remove the devices from the cio ignore list with the command
  2. cio_ignore -r 0.0.0020-0.0.0022
  3. Add the devices to /boot/zipl/active_devices.txt to make this change persistent.
    # cat /boot/zipl/active_devices.txt

The system automatically detects those devices. The corresponding serial devices are found below /dev/3270/tty[123]. Next, tell systemd to run a getty on these devices:

systemctl enable serial-getty@3270-tty1.service
systemctl enable serial-getty@3270-tty2.service
systemctl enable serial-getty@3270-tty3.service
systemctl start serial-getty@3270-tty1.service
systemctl start serial-getty@3270-tty2.service
systemctl start serial-getty@3270-tty3.service

To use the new consoles on a machine called LINUX065, direct the 3270 terminal emulator at z/VM. Instead of logging on as regular user, move the cursor to the COMMAND line and enter the following command:

dial linux065

To redisplay the logon prompt, you might want to press enter once.

When trying to logon to this console as root, you will find that it won’t let you. The reason for this is, that root logon is only allowed on previously defined consoles. The configuration file for this is /etc/securetty. Add the following lines to the end of this file:


After this, you can directly logon to the linux guest without the need for z/VM credentials.

If you want to avoid the need to redefine the consoles after a logoff of the guest, add the definition to PROFILE EXEC A of the guest.


14 September, 2014



If running a booth is, for sure, an investment of time, energy and money (even if TSP contribute to help you), We often forget to say
how much it’s important for our community and project.

Booths makes openSUSE alive in all open source events! and it’s a great experience to live, for any of us.

Feel the beat!

I strongly believe that openSUSE has be to visible on events like KDE Akademy, Scale, Fosdem, Guadec.
It’s not a question of "Bang for the buck", than a simple obviousness:

  • Fosdem : the biggest open source event in Europe (perhaps in the world) with more than 5000 hackers visiting.
  • Scale : biggest event in North America with more than 3000 attendees
  • Guadec : The annual conference of Gnome Hackers with lot of worldwide attendees
  • KDE Akademy : This year with around 150 active contributors coming from all over the world.

The obviousness is: if openSUSE has no booth there, you just see Ubuntu and Redhat, and let’s add Debian, Mageia etc for Fosdem or Scale.

You all know how much I like our Geeko community. And when Akademy staff proposed us to run a booth, I said yes, great I will be there!
After comparing ways to go to Brno, the Geeko’s car was the less expensive, and allow me to pick the demo touch screen at SUSE Headquarter.
So I took a full week off and drive 2000 kilometers to make it happens.


Open the Fun can

Running a booth is not that hard. You will find flyers in the booth box presenting openSUSE and related tools.
There’s goodies like several kind of stickers, pens, USB flash keys, beer mate.
About the poster, if not allowed on walls, let’s your creativity soar. Use boxes, a pen can also fix that big banner around the guard-rail.

On the human part, I would say than 3 persons is not too much. For example at Brno, the booth was very calm during the talks, but when the break
arrives, you just see 30-50 people coming all at the same time in your direction.Don’t run away!
Organize yourself! For example one of the staff is delegated to spread swag, and drive attendees to the next expert.

Try to give as much as possible short-quality answers.

No matter if you are not at all technical guru, the priority is to welcome visitors and listen to them.

If you have a demo computer, organize a bunch of bookmarks related to the conference subject inside the openSUSE community.
At Brno, we were essentially demoing live factory with kde stable 4.14 and Factory with plasma5 and Frameworks 5, and all related web pages about kde on obs, wiki.
Our moto was What openSUSE can offer to KDE developers and contributors.

It’s rarely on a booth that we can resolve a bug, but that’s where a beginning of a social interaction starts.

Don’t worry if you can’t awnser directly, offer

13 September, 2014


Twice recently we have had “fun” trying to get things using HK2 (Jersey), to place nicely with code built using Guice and Spring. This has renewed my appreciation for code written without DI frameworks.

The problem with (many) DI frameworks.

People like to complain about Spring. It’s an easy target, but often the argument is a lazy “I don’t like XML, it’s verbose, and not fashionable, unlike JSON, or YAML, or the flavour of the month”. This conveniently ignores that it’s possible to do entirely XML-less Spring. With JavaConfig it’s not much different to other frameworks like Guice. (Admittedly, this becomes harder if you try to use other parts of Spring like MVC or AoP)

My issue with many DI frameworks is the complexity they can introduce. It’s often not immediately obvious what instance of an interface is being used at runtime without the aid of a debugger. You need to understand a reasonable amount about how the framework you are using works, rather than just the programming language. Additionally, wiring errors are often only visible at runtime rather than compile time, which means you may not notice the errors until a few minutes after you make them.

Some frameworks also encourage you to become very dependent on them. If you use field injection to have the framework magically make dependencies available for you with reflection, then it becomes difficult to construct things without the aid of the framework – for example in tests, or if you want to stop using that framework.

Even if you use setter or constructor injection, the ease with which the framework can inject a large number of dependencies for you allows you to ignore the complexity introduced by having excessive dependencies. It’s still a pain to construct an object with 20 dependencies without the framework in a test, even with constructor or setter injection. DI frameworks can shield us from the pain that is useful feedback that the design of our code is too complex.

What do I want when doing dependency injection? I have lots of desires but these are some of the most important to me

  • Safety – I would like it to be a compile time error to fail to satisfy a dependency
  • Testability – I want to be able to replace dependencies with test doubles where useful for testing purposes
  • Flexibility – I would like to be able to alter the behaviour of my program by re-wiring my object graph without having to change lots of code

It’s also nice to be able to build small lightweight services without needing to add lots of third party dependencies to get anything done. If we want to avoid pulling in a framework, how else could we achieve our desires? There are a few simple techniques we can use which only require pure Java, some of which are much easier in Java 8.

I’ve tried to come up with a simple example that might exist if we were

12 September, 2014


We are pleased to announce that the winner of our Logo Design contest is the No.8 candidate authored by *W.H*!

Congratulations, *W.H*! W.H’s logo has been chosen as the official logo.

openSUSE Asia Summit 2014

openSUSE Asia Summit 2014


A heartfelt thanks from the openSUSE Asia community to all the logo designers for their time and effort, as well as the voters who took care of the active voting! You made this happened!


Results of the voting contest can be seen here.


Have you ever dreamed making your own unique font set. You get on it and seek for decent cheap or open source alternatives for making Truetype fonts  and  probably you find at least Fontforge. You are very happy and make you mind I’ll do my fonts with Fontforge. After a while you realize Fontforge is a Swiss army knife for making fonts in open source but you just wanted to create TTF, EOT or SVG font set. Weep no more you can use Birdfont.
Birdfont in Ubuntu

Birdfont free font editor

Birdfont is developed by one man army Johan Mattsson. First it was hobby project now it has evolved pretty nice font editor  and it while ago it hit version 1.0 (actually now it’s already version 1.1). Biggest driver create Birdfont even though there is superior editor available was create grid based editor rather than exact coordinates system used in Fontforge. So in Birdfont you can snap to grid.

Birdfont is very stable and available native in Windows, Mac OS X and of course various Linux distributions (counting in openSUSE). Those who care it’s written in Vala and even though it’s GPL code although developer asks you to donate couple of $ or € before downloading binary. If you ask me it’s worth every dime but of course you can download source and make your own build.


You can create font or font set all in Birdfont (Which has very nice gird editor) or one can use free of choice vector editor that can export SVG and import glyphs in. After import you can edit imported glyphs because used curve math ain’t same in TTF than it’s SVG but Birdfont tries to make this part easy for you. You can also edit kerning and font location to make more complex fonts come true.

After you are satisfied with font. Just edit properties and export your font in TTF, EOT or SVG format.

So if Fontforge is too much and you just want to hop on  making fonts Birdfont can be what you are seeking for.

11 September, 2014


Listaller-Logo (with text)It is time for another report on Listaller, the cross-distro 3rd-party package installer, which is now in development for – depending how you count – 5-6 years. This will become a longer post, so you might grab some coffee or tea ;-)

The original idea

The Listaller project was initially started with the goal to make application deployment on Linux distributions as simple as possible, by providing a unified package installation format and tools which make building apps for multiple distributions easier and deployment of updates simple. The key ideas were:

  • Seamless integration of all installation steps into the system – users shouldn’t care about the origin of their application, they just handle all installed apps with the same tool and update all apps with the same interface they use for updating the system.
  • Out-of-the-boy sandboxing for all 3rd-party apps
  • Easy signing and key-validation for Listaller packages
  • Simple creation of updates for developers
  • Resource-sharing: It should always be clear which application uses which library, duplicates should be avoided. The distribution-provided software should take priority, since it is often well-maintained and receives security updates.

The current state

The current release of Listaller handles all of this with a plugin for PackageKit, the cross-distro package-management abstraction layer. It hooks into PackageKit and reads information passing through to the native distributor backend, and if it encounters Listaller software, it handles it appropriately. It can also inject update information. This results in all Listaller software being shown in any PackageKit frontends, and people can work with it just like if the packages were native packages. Listaller package installations are controlled by a machine policy, so the administrator can decide that e.g. only packages from a trusted source (= GPG signature in trusted database) can be installed. Dependencies can be pulled from the distributor’s repositories, or optionally from external sources, like the PyPI.

This sounds good on paper, but the current implementation has various problems.

The issues

The current Listaller approach has some problems. The biggest one lies in the future: Soon, there will be no PackageKit plugins anymore! PackageKit 1.0 will remove support for them, because they appear to be a major source for crashes, even the in-tree plugins cause problems. Also, the PackageKit service itself is currently being trimmed of unneeded features and less-used code. These changes in PackageKit are great and needed for the project (and I support these efforts), but they cause a pretty huge problem for Listaller: The project relies on the PackageKit plugin – if used without it, you loose the system-integration part, which is one of the key concepts of Listaller, and a primary goal.

But this issue is not the only one. There are more. One huge problem for Listaller is dependency-solving: It needs to know where to get software from in case it isn’t installed already. And that has to be done in a cross-distributional way. This is an incredibly complex task, and Listaller contains lots of workarounds for various quirks. It contains so much hacks for

Yesterday Vignesh asked me if I could give some guidance to a college junior of mine who wants to start with Kernel programming. Being a filesystem developer on Novell for a while now, I thought I could share some things that I have learned. I wrote a somewhat long reply which I am reproducing below (with minor edits for clarity) in the hope that it may be useful to someone.

Since it was originally intended to be a mail, it is a little more verbose than a blog post. My advice is based on the situation on my college when I studied a decade ago. Things would have probably changed and the recommendations may need tweaking based on the context.


The most important quality that you need to inculcate if you want to do any kernel space programming is "Patience" (or persistence if you will). Though it is a good quality for any large scale project, it is a fundamental requirement for kernel programming. It is very easy to see progress and make an impact on userspace projects, but even simple changes in the kernel core will take a lot of time to get accepted, and will often require multiple rewrites. But fear not, as there are plenty of people who have conquered this mountain and it is not something to be worried about.

The starting steps will be:

1) Try to understand how to use git. We were (are ?) not taught to use a version control system in our college and it is such a fundamental thing. So start using git for college assignments and get the hang of it.

2) Start writing a lot of C programs and get experienced with pointers, memory allocation, threading. You can start implementing things like Stack, Queue, Trees etc. (whatever you study in datastructures) in a simple, thread-safe way. Do not focus on how you can visualize these datastructures but how you can effectively implement their functionality and thread safety. Use pthreads for threading. Do not use any library (like Glib) for giving you convenient datastructures (like Strings). Implement each of the things on your own. (But when you are writing code for a product, use a standard library always instead of re-inventing the wheel)

Write these C programs on Linux and compile using gcc. In our college days we were using turboc on windows and I hope things have changed. Use a linux distro (fedora, debian, openSUSE, Gentoo etc.) exclusively; Do not use Windows (at least for a while) to make yourself aware of the sysadmin, shell-scripting parts of linux, which will come in handy.

3) Grab a (any) book on Operating Systems theory and read it. The dinosaur book by Silberschatz et. al. is a good start.

4) Without hesitation buy, Robert Love's Linux Kernel Programming book. It is one of the best beginner material and start reading it parallel to the OS book. This is easier to read than the previous one and more practical. But the previous


I read an article today about how expensive the new iPhone 6 will be if you buy it off contract.  I admit, it's a lot of money but it's actually less money than what you'll pay if you buy it with a contract.

I recently switched back to AT&T from Verizon because they introduced a new plan called the Mobile Share Value plan that offers non-subsidized pricing if you own your phone.  There are two rates for each line on this plan. If you own your phone the rate is $15/month for the line.  If you buy a "contract price" phone that rate is $40/month for the line and you have a 2 year contract.

In case you didn't get that, they will charge you and extra $25/month for 2 years to pay for the rest of that phone.  Over 24 months that ends up being $600.
With that, here are the actual iPhone 6 Plus costs:

Contract Prices:
iPhone 6 Plus 16GB: $899
iPhone 6 Plus 64GB: $999
iPhone 6 Plus 128GB: $1099

Non-Contract Prices:
iPhone 6 Plus 16GB: $749
iPhone 6 Plus 64GB: $849
iPhone 6 Plus 128GB: $949 

The other thing to consider is with non-contract plans you don't have a 2 year contract.  I know that seems obvious but let me just say it once again... you don't have a 2 year contract.  You are free to terminate your service any time you want with no cancellation fees.

09 September, 2014


I’d like to share the slides I used for my talk at LibreOffice Conference 2014 in Bern, Switzerland.

slides preview

During my talk, I hinted that the number of unit tests for Calc have dramatically increased during the 4.2 bug fix cycle alone. Since I did not have the opportunity to count the actual number of unit test cases to include in my slides, let me give you the numbers now.

ucalc filters subsequent-filters subsequent-export total
4.1 65 10 49 9 133
4.2 107 13 54 15 189
master 176 15 67 34 292


The numbers represent the number of top level test functions in each test category. Since sometimes we add assertions to existing test case rather than adding a new function when testing a new bug fix, these numbers are somewhat conservative representation of how much test case we’ve accumulated for Calc. Even then, it is clear from this data set that the number has spiked since the branch-off of the 4.2 stable branch.

Now, I’ll be the first to admit that the 4.2 releases were quite rough in terms of Calc due to the huge refactoring done in the cell storage structure. That said, I’m quite confident that as long as we diligently add tests for the fixes we do, we can recover from this sooner rather than later, and eventually come out stronger than ever before.


FFG 2014 button

The annual GUUG Frühjahrsfachgespräch 2014 will take place in two weeks from now, from September 23.-26. at the Ruhr-University in Bochum, Germany.

The agenda is packed with interesting sessions covering a wide range of topics relevant to developers and system administrators. In addition to the regular talks, the first two days provide day-long tutorials to get a deep-dive into interesting technologies like OpenStack, Puppet, secure web development or setting up file services.

I'll be speaking about reStructuredText and Sphinx, a very powerful framework for writing technical documentation.

Register now!


GSoC:My journey with openSUSE begins

Hello everyone, I am Gopesh Tulsyan from India.I got involved with openSUSE community during GSoC to add features to OSEM(Open Source Event Manager Application).I am currently studying  Information Technology in National Institute of Technology, Durgapur ,India.

During GSoC I added two big features to OSEM, one is the Event Splash Page for Visitors and the other is Email Notifications.This was my first time with open-source project and it was really great.I learnt a lot while fixing bugs and adding new features.Previously, I had already worked with Ruby on Rails application by freelancing for some projects, but this time I learnt the coding standards for a fully-fledged software in use.

My Way to Work

So the general way that I worked was my mentor James Mason, segregated my project into various To-Do’s in  a Trello Board with a checklist to keep track of things I am currently working on.We also used the GitHub ticketing system but that was mainly for the bugs.So I used to pull the small modules(to-do cards) from To-Do’s to Doing(board) .After compeletion I used to send a Pull request for my mentor and other members to review to my patch and I used to move that feature on Trello from Doing to Blocked with a PR link.James used to review it and if there was any room for improvement then he just shifted back the card from Blocked to Doing with a comment on it.This used to continue until I have successfully, done that feature without any discrepancy.And then finally that feature card used to go to Done .By this practise even now I have separate record of things I have implemented during GSoC which is I already mentioned broadly at the top.

Learning Git

During my GSoC I learned git very efficiently.Prior to it I only some basic features such as pull, push, merge(branch), log were known to me.During the course I got well versed with one of the most versatile tool of git which was git rebasing branches instead of creating new one.I learnt this the hard way by redoing patch of 500 lines of code, but atlast I learnt it.Cherry picking – git cherry-pick this command is incredibly useful for including your previous work which is not merged yet to an on going feature. I used this git tool and that resulted in atomic commits.I also learnt squashing and rebasing, the fact that how to resolve the merge conflicts in stale Pull requests.


Learning Best Practises

I started pushing code with Tests for the OSEM application.My mentor told me at the beginning of the project that for every new line of code that I add I should write corresponding tests to support it for making this application less prone to bugs and thus making it robust.During the start none of my patch weren’t getting accepted

06 September, 2014


Got snail mail from DAD GmbH, Postfach 11 35 68, 20435. I should update my business info (which I never gave to them) and by submitting updated info, they would charge me 500 euro (small notice so that you are likely to miss it). I hope they go to jail for this.

05 September, 2014


At the LibreOffice Conference 2014, I had three presentations. The first one was about DrawingLayer, one of the core technologies in LibreOffice that is not known enough, which consequently leads to people not using it, or being afraid of doing changes there:

Click to see the presentation.

Based on the research I've done for the presentation, I extended the DrawingLayer's README and svx's README.

The other presentation was a Lightning talk giving a bit of a detail about the boost::unordered_map removal I've done, that was mentioned in the Miklos' blog post:

Click to see the presentation.
And the last presentation was about how to create a custom widget using the LibreOffice's widget toolkit, VCL:
Click to see the presentation.

The LibreOffice Conference is awesome, I'm extremely glad I can be here, and present to so many great people!


Since the announcement at the end of July of the new Factory development model, the machinery worked tirelessly releasing more than 15 Factory snapshots during the next month. As you can see in the changelogs that are published in the openSUSE-Factory mailing list following every snapshot, the changes are not restricted to leaf packages. The core of the distribution is moving together with the desktop applications. Factory is rolling!

The new process includes several mechanisms to deal with that controlled chaos that a development distribution should be, like OBS staging projects to control the package flow from the devel projects, and openQA to implement pre-integration and post-integration tests. All those extra checks are there to serve an ultimate goal: make Factory a usable platform for openSUSE contributors including, of course, bug reporters. No automatic system can detect that the new version of systemd breaks the suspend function of your laptop or that the new kernel package conflicts with the proprietary driver of your graphic card. Therefore, the rolling Factory will only succeed if it can attract new users willing to help in the early detection of bugs. So the question is: can it?

Show me the numbers

So Alberto Planas decided to check how is the acceptance of the new Factory in the first month after the official announcement. He wheeled out the statistical tooling and checked the current status, comparing it with the innovative Tumbleweed. To do a fair comparison he counted the number of different UUIDs that access to ‘/factory/repo/oss/’ per month to get the number of different installation of Factory, and ‘/repositories/openSUSE:/Tumbleweed/standard’ per month to do the same for Tumbleweed. There is aggregate information since 2010, so we can see a clear picture of the overall evolution. And this is the result:

Factory & Tumbleweed. August 2014

We can observe a big increase of the number of users in Factory during this July and August (from 1952 in June to 5969 at the end of August). Factory nearly tripled the number of installations without hurting Tumbleweed (5471 installations in June and 5637 at the end of August).

Help us to make a better Factory

The numbers show that Factory is gaining users quickly, and we all hope that some of those new users can find in Factory a good place to develop, play and work (on and with). This fast grown on the number of users means also that Factory needs to take extra care when a very deep update happens, and test is as thoroughly as is technically possible.

The work on Factory is not finished (not by far). Developers are still improving the tooling, and one area where more help is needed is in the creation and monitoring of scenarios where Factory can behave badly to test them inside openQA. That’s something that everybody can do and that would have a big impact in our beloved openSUSE distribution!

Older blog entries ->