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.

31 January, 2015


LibreOffice 4.4 has got many user interface improvements - but there's still much more to do. I've just had a talk at FOSDEM about how anybody can help, join our team!

Click the slide to see the presentation.

29 January, 2015


Today we release LibreOffice 4.4.0, packed with a load of new features for people to enjoy - you can read and enjoy all the great news about the user visible features from so many great hackers, but there are, as always, many contributors whose work is primarily behind the scenes in places that are not so easy to see. That work is, of course, still vitally important to the project. It can be hard to extract those from the over eleven thousand commits since LibreOffice 4.3 was branched, so let me expand:

Complete User Interface Dialog / Layout

The UI migration to a much improved, Glade compatible XML representation of VCL dialogs, complete with automatic layout is now almost complete (after thinking we'd done them all - Caolan discovered a lot of docking windows that need further work but these are now also migrated, all but two). Also a lot of work was put into cleaning up and tweaking the look / arrangement of dialogs. Many thanks to Caolán McNamara (Red Hat) - for his incredible work & leadership here, and to Adolfo Jayme Barrientos, Palenik Mihály (GSoC 2014), Olivier Hallot (EDX), Szymon Kłos (GSoc 2014), Rachit Gupta (GSoC 2014), Tor Lillqvist (Collabora), Jan Holesovsky (Collabora), Maxim Monastirsky, Efe Gürkan YALAMAN, Yousuf Philips and many others. Thanks also to our translators who hopefully will have much less string churn to suffer now. As a side-note the resource-compiler in rsc/ has gone on a nice diet.

Graph of progress in UI layout conversion

Initial OpenGL rendering backend

The switch to move VCL to use OpenGL for rendering is one of those things that ideally should be entirely under-the-hood, but ends up having small but important visual impact. All the work here was done by Collabora engineers, with a beefy re-factor and the initial OpenGLContext management by Markus Mohrhard, much of the rendering implemented by Louis-Francis Ratté-Boulianne with anti-aliasing, and image scaling work from Lubos Lunak, various Windows fixes and porting work from Jan Holesovsky and some bits from Chris Sherlock. During the work we also implemented a half-way decent and increasingly complete VCL demo application exercising rendering. A rational for the work with some pictures is available.

By moving to a pure OpenGL rendering model, we can accelerate those operations that badly need to taking advantage of the power and parallelism of the huge APU die-area given over to modern GPUs. Being able to interact much more directly with the underlying graphics hardware helps us to both render our image previews at high quality, and not to sacrifice scroll / zoom performance: having our cake and eating it too. We've also used some of that power to not only significantly accelerate our image rendering, but also improve its quality too from before:

Before: image down-scaling
to After (NB. if your browser scales it too you're likely to loose the sense; zoom to 1:1 and checkout eg. the top of the circular window, or other high-frequency areas.)
After: faster, better, GL image down-scaling

There is a fair bit more work to get OpenGL

Michael Meeks: 2015-01-29 Thursday

14:06 UTCmember

  • Quick mail check, morning off - out for a walk with J. along a rather perplexing Devil's Dyke nearby - apparently each end used to be an impassable fen / swamp. Nice to wander along.

28 January, 2015

Michael Meeks: 2015-01-28 Wednesday

21:00 UTCmember

  • Mail chew; worked on marketing, ploughed through tedious tasklets, sales call, partner call, another sales call. Worked on a write-up of 4.4 things you can't see in the evening too.

27 January, 2015

Michael Meeks: 2015-01-27 Tuesday

21:00 UTCmember

  • Mail chew; great to see the Android Editing Tender announced by TDF. Naturally I (and another board member) was recused from that discussion / decision. My hope is that after the heavy lifting is out of the way, it will become much easier to get more people involved there. The work itself has a has a large element of generic tiled-rendering functionality which is re-usable in a number of situations to improve rendering performance. Reading Miklos' nice write up of some of the work so far.
  • Lunch. Reviewed my notes from the ODF plug-fest. Sync. with Thorsten.
  • Up late replacing J's cracked glass on her Galaxy S3 - managed to buy all the necessary bits, incluing a heat-gun for 20% of the cost of having it replaced by the cheapest shop I could find; thank God it still works.

  • An inlaid GNOME logo, part 2

    Esta parte en español

    To continue with yesterday's piece — the amargoso board which I glued is now dry, and now it is time to flatten it. We use a straightedge to see how bad it is on the "good" side.

    Not flat

    We use a jack plane with a cambered blade. There is a slight curvature to the edge; this lets us remove wood quickly. We plane across the grain to remove the cupping of the board. I put some shavings in strategic spots between the board and the workbench to keep the board from rocking around, as its bottom is not flat yet.

    Cambered iron Cross-grain planing

    We use winding sticks at the ends of the board to test if the wood is twisted. Sight almost level across them, and if they look parallel, then the wood is not twisted. Otherwise, plane away the high spots.

    Winding sticks Not twisted

    This gives us a flat board with scalloped tracks. We use a smoothing plane to remove the tracks, planing along the grain. This finally gives us a perfectly flat, smooth surface. This will be our reference face.

    Scalloped board Smoothing plane Smooth, flat surface

    On that last picture, you'll see that both halves of the board are not of the same thickness, and we need to even them up. We set a marking gauge to the thinnest part of the boards. Mark all four sides, using the flat side as the reference face, so we have a line around the board at a constant distance to the reference face.

    Gauging the thinnest part Marking all around Marked all around

    Again, plane the board flat across the grain with a jack plane and its cambered iron. When you reach the gauged line, you are done. Use a smoothing plane along the grain to make the surface pretty. Now we have a perfectly flat board of uniform thickness.

    Thicknessing with the jack plane Smoothing plane Flat and uniform board

    Now we go back to the light-colored maple board from yesterday. First I finished flattening the reference face. Then, I used the marking gauge to put a line all around at about 5mm to the reference face. This will be our slice of maple for the inlaid GNOME logo.

    Marking the maple board

    We have to resaw the board in order to extract that slice. I took my coarsest ripsaw and started a bit away from the line at a corner, being careful to sight down the saw to make it coplanar with the lines on two edges. It is useful to clamp the board at about 45 degrees from level.

    Starting to resaw at a corner

    Once the saw is into the corner, tilt it down gradually to lengthen the kerf...

    Kerfing one side

    Tilt it gradually the other way to make the kerf on the other edge...

    Kerfing the other side

    And now you can really begin to saw powerfully, since the kerfs will guide the saw.


    Gradually extend the cut until the other corner, and repeat the process on all four sides.

    Extending the cut Resawing

    Admire your handiwork; wipe away the sweat.

    Resawn slice

    Plane to the line and leave a smooth surface. Since the board is too thin to hold down with the normal planing stops on the workbench


drawingThe votes have been cast and the results are in for the openSUSE elections.

There were three seats to be fill this election for a standard two-year (24-month) term :
– Robert Schweikert and Kosta Koudaras’ terms were coming to expiration.
– Peter Linnell’s seat was up for election as he was appointed to the board as a replacement for Richard Brown when he became chairman.

There were 148 people voting.

The following candidates were elected to the openSUSE Board for a two-year, 24-month term:
– Robert Schweikert
– Michal Hrusecky
– Kostas Koudaras

Election results, which were finalised last night, are:

– Robert Schweikert, 101 votes (68%)
– Michal Hrusecky, 96 votes (65%)
– Kostas Koudaras, 81 votes (55%)
– Peter Linnell, 63 votes (43%)
– Craig Gardner, 60 votes (41%)

Thank you to all the candidates who stepped up to run for election and the all members who cast their votes!


Yesterday I released version 0.8 of AppStream, the cross-distribution standard for software metadata, that is currently used by GNOME-Software, Muon and Apper in to display rich metadata about applications and other software components.

 What’s new?

The new release contains some tweaks on AppStreams documentation, and extends the specification with a few more tags and refinements. For example we now recommend sizes for screenshots. The recommended sizes are the ones GNOME-Software already uses today, and it is a good idea to ship those to make software-centers look great, as others SCs are planning to use them as well. Normal sizes as well as sizes for HiDPI displays are defined. This change affects only the distribution-generated data, the upstream metadata is unaffected by this (the distro-specific metadata generator will resize the screenshots anyway).

Another addition to the spec is the introduction of an optional <source_pkgname/> tag, which holds the source package name the packages defined in <pkgname/> tags are built from. This is mainly for internal use by the distributor, e.g. it can decide to use this information to link to internal resources (like bugtrackers, package-watch etc.). It may also be used by software-center applications as additional information to group software components.

Furthermore, we introduced a <bundle/> tag for future use with 3rd-party application installation solutions. The tag notifies a software-installer about the presence of a 3rd-party application bundle, and provides the necessary information on how to install it. In order to do that, the software-center needs to support the respective installation solution. Currently, the Limba project and Xdg-App bundles are supported. For software managers, it is a good idea to implement support for 3rd-party app installers, as soon as the solutions are ready. Currently, the projects are worked on heavily. The new tag is currently already used by Limba, which is the reason why it depends on the latest AppStream release.

How do I get it?

All AppStream libraries, libappstream, libappstream-qt and libappstream-glib, are supporting the 0.8 specification in their latest version – so in case you are using one of these, you don’t need to do anything. For Debian, the DEP-11 spec is being updated at time, and the changes will land in the DEP-11 tools soon.

Improve your metadata!

This call goes especilly to many KDE projects! Getting good data is partly a task for the distributor, since packaging issues can result in incorrect or broken data, screenshots need to be properly resized etc. However, flawed upstream data can also prevent software from being shown, since software with broken data or missing data will not be incorporated in the distro XML AppStream data file.

Richard Hughes of Fedora has created a nice overview of software failing to be included. You can see the failed-list here – the data can be filtered by desktop environment etc. For KDE projects, a Comment= field is often missing in their .desktop files (or a <summary/> tag needs to be added to their AppStream upstream XML file). Keep in mind that


The ever-amazing Plasma team from KDE just put out a new release of Plasma. I won’t spend much describing how big of an improvement it is – the release announcement at KDE has all the details needed to whet your appetite.

And of course, now it’s the turn of distributions to get out packages for the users at large.

This is also the case for openSUSE. The KDE:Frameworks5 repository hosts the new 5.2 goodness for released distributions (13.1 and 13.2) and Tumbleweed. Packages have also been submitted to Tumbleweed proper (pending legal review, so it will take some time).

Don’t forget the rule of thumb, in case you find problems: bugs in the packages should be directed towards the openSUSE bugzilla, while issues in the actual software should be reported to KDE. You can also discuss your experience on the KDE Community Forums.


flowRootosc15iconWe are making another call for papers for this year’s openSUSE Conference in The Hague, the Netherlands between 1 and 4th May 2015.

Now is your chance to submit your proposal for oSC15. The conference is just 93 days from today. Share your interests and projects with the openSUSE community.

We are looking for speakers on a wide range of topics, ranging from hacking to open-source idealism. If you have an interest in contributing, please don’t hesitate to register before 14th February 2015 at https://events.opensuse.org/conference/osc15/proposal

Today we will have a project meeting at 13 UTC on the openSUSE-project channel on Freenode IRC.

Join us at FOSDEM for a meeting at Café Belga this Saturday at 7 p.m. if you want to talk more about oSC15.

Cya at FOSDEM!


Oh yes.. those were great times! Open Sound System was rocking my Linux based sound system and I was having a time of my life. Like we all know good doesn’t last long. Soon after happiness I find out that OSS couldn’t do recording and playing (full duplex) same time. Fiery same time this was working on Windows 98 very well. I was shocked how the heck my Linux box is so borked? Luckily times were changing and this time they formed only better. ALSA was about to take over OSS in Kernel version 2.6. Why I’m talking about ALSA and OSS when I should talk about Pulseaudio? Read further to find out why or go examples for Pulseaudio here: https://github.com/illuusio/linux-audio-example/tree/master/pulseaudio

Open Sound System

First let’s talk about Open Sound System first before going to ALSA. After that we talk about todays topic: Pulseaudio.  I recall correct OSS was the first sound system that provided support for audio in Linux kernel. Even today it’s emulated by ALSA and you can use it as output with Pulseaudio. Real OSS still lives as Proprietary library and it’s implemented in several OS like FreeBSD.
If you look OSS as API point of view it’s very blocking because it uses heavily IOCTL-calls and because they are direct memory calls you have to wait. Only reason I can imagine why someone wants to support OSS in new application is trying to support whole UNIX family. If it’s not must then trust me you don’t want OSS. Event lack of duplex audio wasn’t biggest problem at late ’90.  I had Gravis Ultrasound and OSS support sucked a lot. ALSA wasn’t even pre-alpha and without thinking I jumped that rapidly moving wagon.


Advanced Linux Sound Architecture is current Linux Audio API. You should use it for new applications and it has impressive set of supported audio chips. I haven’t find a single audio hardware that doesn’t work. Only problem with ALSA is that is so stable that it’s getting little bit too mature. times have change from ’90 and ALSA is starting look not fantastic like I thought about it first but just OK.
Getting your hardware working is not the complicated case with ALSA. Hard part comes whne you want set up more complicated patterns like USB audio, Bluetooth or send audio to another machine for playing.

Nowadays Every other platforms than Linux desktop had neat audio servers. There have been several attempts for Linux also ESD, KDE audio server and several others that never reached much attention. There is also JACK but it’s again little bit too hard to use and not for old morons like me. Believe I have use it for high-end stuff and I cannot recommend it more but when you just want your audio come from the speaker without routing it half an hour then Pulseaudio is

26 January, 2015

Michael Meeks: 2015-01-26 Monday

21:00 UTCmember

  • Mail chew, 1:1's with the guys; lunch with J. Product team call; more mail chew, sync. with Sam; Consulting team call; more mail churn. Dinner, babes to bed, more admin. Pleased to see the progress that Noel has made on the feature/vclref branch.

  • An inlaid GNOME logo, part 1

    Esta parte en español

    I am making a special little piece. It will be an inlaid GNOME logo, made of light-colored wood on a dark-colored background.

    First, we need to make a board wide enough. Here I'm looking for which two sections of those longer/narrower boards to use.

    Grain matching pieces

    Once I am happy with the sections to use — similar grain, not too many flaws — I cross-cut them to length.

    Cross cutting

    (Yes, working in one's pajamas is fantastic and I thoroughly recommend it.)

    This is a local wood which the sawmill people call "amargoso", or bitter one. And indeed — the sawdust feels bitter in your nose.

    Once cut, we have two pieces of approximately the same length and width. They have matching grain in a V shape down the middle, which is what I want for the shape of this piece.

    V shaped grain match

    We clamp the pieces togther and match-plane them. Once we open them like a book, there should be no gaps between them and we can glue them.

    Clamped pieces Match-planing Match-planed pieces

    No light shows between the boards, so there are no gaps! On to gluing. Rub both boards back and forth to spread the glue evenly. Clamp them, and wait overnight.

    No gaps! Gluing boards Clamped boards

    Meanwhile, we can prepare the wood for the inlaid pieces. I used a piece of soft maple, which is of course pretty hard — unlike hard maple, which would be too goddamn hard.

    Rough maple board

    This little board is not flat. Plane it cross-wise and check for flatness.

    Checking for flatness Planing

    Tomorrow I'll finish flattening this face of the maple, and I'll resaw a thinner slice for the inlay.

    Planed board


The short answer, for SLE11: rcapache2 config -S

The short answer, for SLE12: start_apache2 -S

In SUSE/openSUSE, the httpd command is renamed to httpd2, but don't use plain httpd2 -S because it doesn't look in /etc/sysconfig/apache2

Read more »

I got two Logitech mice, and they worked rather nice. But then buttons started acting funny on first, then second, and I switched to Genius one (probably with lower resolution sensor). I quickly found that I have two mice with working sensor, and one mouse with working buttons. Not good.
Now, I got new Logitech M90.. this one has working sensor, two working buttons, and three legs of the same length. Ouch. It wobbles on table :-(.
It also shows why mouse-box is cool-looking, but not quite cool idea. Mouse is something that gets damaged over time, and needs to be replaced... which is something you don't want to do with your computer. (Plus, your mouse will not be too comfortable to use when it has three cables that were not designed for bending, connected.)

25 January, 2015

Michael Meeks: 2015-01-25 Sunday

21:00 UTCmember

  • Up early; walked to the venue; debugged the xmloff CustomShape engine feature - apparently not working; started to dig into it, eventually made my own engine & started building some shapes too. Series of talks on what had been achieved; had to leave early to get a train. Home to the family.
  • The thing I worked on during the hackday was getting at least some start made to the problem of having a QR code engine built-in; courtesy of zint's backend (finding the best version of zint, which seems un-maintained, is remarkably hard - perhaps at some stage we'll want to replace it with a good internal solution). Anyhow - after some significant chew we have a custom-shape in the feature/barcode branch that renders something like this:
    FODG file with embedded QR code custom-shape
    It was interesting to find & fix the functionality that allows you to enter:
    <draw:custom-shape draw:style-name="gr1" ... draw:engine="org.libreoffice.draw.barcode" draw:data="QR code contents">
    This apparently lets you create and associate arbitary (even say python) components as 'engines' to render the content of custom-shapes - which is interesting; although apparently not-used; I had to fix that first. Hopefully this can open up a world of pretty & fun new user-created functionality creating and embedding document elements in simple scripting languages.
    Of course - lots still remains to be done before this can be useful - and most likely there is a better way of doing it. My hope is that the rest of the code there allows a fall-back to be serialized for users without the required plugin, but I imagine it will need quite some tweaking yet; why not come and play at FOSDEM or the LibreOffice hackfest immediately afterwards. Update posted some technical bits to the dev-list too.


After a long silence I have finally had some time to leave a post on my blog. This one is on how I set up a DNS server in CentOS 6.

The setup was pretty simple, I used KVM/Virt-Manager to setup 3 VMs. Two of them were CentOS 6, one being the primary server and the second being a caching only server while the third was an openSUSE 13.1 client who I would use to test out my two servers. One handy feature most virtual machine management tools have is the snapshot feature. I made use of this by taking snapshots every time I got a certain feature working. This meant that I could mess around without fear of losing a working set of settings.


The network setup was simple too, I created one isolated virtual network which would not allow the devices connected to it to see the outside world, and another NAT virtual network which would connect only to my primary DNS server so that it could send queries out to the router.

Now to configure the primary server I had to install the bind package, which was easy enough.

yum install bind
cp /etc/named.conf /etc/named.conf.BAK
vim /etc/named.conf

Once in named.conf, I configured the file to reflect my needs. I wont go over the details though as you can easily search them up.

// named.conf
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
// See /usr/share/doc/bind*/sample/ for example named configuration files.

options {
    directory &amp;quot;/var/named/&amp;quot;;
    allow-query {;;};
    recursion yes;
    forwarders {; };
zone &amp;quot;localhost&amp;quot; {
    type master;
    file &amp;quot;localhost.zone&amp;quot;;
    notify NO;
zone &amp;quot;19.168.192.in-addr.arpa&amp;quot; {
    type master;
    file &amp;quot;mydb-for-192-168-19&amp;quot;;
    notify NO;
zone &amp;quot;ushamim.org&amp;quot; {
    type master;
    file &amp;quot;mydb-for-ushamim-org&amp;quot;;
    notify NO;

Once that is done, all that remains for DNS to work is the files for forward/reverse lookups. These can be created in /var/named/. Here are the contents of mine:

# mydb-for-192-168-19
@ IN SOA vm1.ushamim.org. webmaster.ushamim.org. (
    1 ; Serial
    8H ; Refresh
    2H ; Retry
    1W ; Expire
    1D ; Negative Cache TTL
@ IN NS vm1.ushamim.org.
53 IN PTR vm1.ushamim.org.
@ IN NS vm2.ushamim.org.
166 IN PTR vm2.ushamim.org.
@ IN NS vm3.ushamim.org.
3 IN PTR vm3.ushamim.org.
# mydb-for-ushamim-org
@ IN SOA vm1.ushamim.org. webmaster.ushamim.org.(
    1 ; Serial
    8H ; Refresh
    2H ; Retry
    1W ; Expire
    1D ; Negative Cache TTL
@ IN NS vm1.ushamim.org.
vm1 IN A
@ IN NS vm2.ushamim.org.
vm2 IN A
@ IN NS vm3.ushamim.org.
vm3 IN A


24 January, 2015

Michael Meeks: 2015-01-24 Saturday

21:00 UTCmember

  • Up in the dark & cold, trains, on an Intercity and well on the way to Cardiff by 9am; pleased with laptop power there too.
  • Struggled with CMake - gdcm refusing do as its bid, configuring from a build directory, but still it fails; turns out configuring in the source directory pollutes things to the point that it then fails to configure even if you're elsewhere: funky. Stuck into some interactive CMake thing that would't let me build the makefiles, despite a clean configure and no errors: wow; eventually tweaked around the un-reported error.
  • Arrived, walked to the venue; missed the pitches. Met Malcolm and various others; long discussions about paper vs. electronic records - didn't get any DICOM work done - instead started on some QR code pieces.
  • Building closed early, out to a bar to meet other interesting parties around the place. Late night kebab & walk to the hotel.

23 January, 2015

Michael Meeks: 2015-01-23 Friday

21:00 UTCmember

  • Into Cambridge for Quarterly meetings; good to catch up with Philippe, Tracie & Guy; go over the positives & areas for improvement together - had lunch as we worked, drew up some projections.
  • Home earlyish. Tea - Naomi B. over to play, babes watched Moonacre, put them to bed, watched the next Harry Potter in the series with the biggers.


label_for-printFOSDEM is here once again and openSUSE will be there for all the madness that will take place next Friday, Saturday and Sunday.

Geekos will discuss everything you want to know about Tumbleweed, Factory, YaST, Open Build Service, openQA and more. The openSUSE community will be there in full force to present to and develop with the open-source community.

On Sunday, Feb. 1 between 10:35 and 11:25 a.m., come see Stephan Kulow explain the development process and tools used to turn openSUSE Factory into Tumbleweed; if you are a distribution integrators, you won’t want to miss it.

There will be plenty of swag and a specialty German brew from the beer capital of the world at the openSUSE booth to cure your weekend hangover(s).

FOSDEM is free and our openSUSE beer is 1 so there is no excuse not to come see us and talk shop or talk about beer; we’ll have experts in both at our booth.

The buses will leave Nuremberg at 11 a.m. sharp on Friday, Jan. 30, for the event, so don’t be late otherwise you might need to rely on your thumb to get you to Brussels. The return trip to Nuremberg will leave FOSDEM at 6:30 p.m. and get everyone back home just in time for the kickoff of the SuperBowl.

Anyone who has not confirmed they have a seat on the bus should contact mhaefner@suse.de.

See you at FOSDEM next week!

22 January, 2015

Michael Meeks: 2015-01-22: Thursday

21:00 UTCmember

  • Set an alarm on my Galaxy S4 - why is it that the whole 'alarming' bit of alarms is missing; some anaemic 'bling bong bop' that happens a couple of times & gives up seems to be normal these days. It reminds me of the Onion's sounds of the rainforest fire-alarm; the urgent, incrementing volume, irritating beep setting has eluded me somehow.
  • Nice write-up of the LibreOffice on Android viewer from Serdar @ InfoWorld.
  • Tried to dig out a simple Microsoft OpenGL sample without much luck: disappearing cubes left/right; eventually found one - upgraded Visual Studio to install MFC - which forced a re-boot (goodness!).
  • Lunch; booked train to the Cardiff / NHS Hackfest this weekend.


The latest snapshot release of Tumbleweed has several updates. We dub this as the ‘KDE Applications 14.12 snapshot‘ for Tumbleweed since many are related to 14.12.

Here are a few other updates:

Bison version updated to 3.0.2. This is a major update with deep overhaul improvements of the diagnostics.

IceWM added a fix for shutdown and reboot commands that didn’t work and changed the shutdown and reboot command in preference.

AppStream-Glib, which makes it easy to read and write AppStream metadata, updated to version 0.3.2 adds more non-applications to the blacklist and added Blacklist KDE3 KCM components.

Britty updated to 5.2 and removes obsolete patches and adds a dependency to python3 for building.

Read more details about the latest update at bit.ly/1wpLlLo

21 January, 2015


Today Collabora released (cf. Press Release) a Beta snapshot of the viewer work we've been doing for and with SMOOSE for some months. This provides a version for testing (it's really not finished yet), of LibreOffice running on Android you can install it from Google Play.

What does it look like ?

The writer functionality is probably the best piece of the component, allowing pleasant screen-shottage and rather good viewing.

ODT - writer document on Android

Impress presentations are supported here is an old one around cairo rendering support, you can see the swipe-in-from-the-left page switcher:
ODP - Impress document on Android

We also have some (very early) calc tiled rendering; there are some text scaling issues that we're working on there:
Calc font test

What did that involve ?

A huge amount of work. Much of the initial work was done by Tor Lillqvist, while at SUSE (now Collabora), creating a cross-compilation framework which we continue to use for iOS, Android and was originally setup to do cross-compiles to Windows - so that we could have a predictable toolchain, and a reliable/repeatable free-software build environment. Tor also did some amazing bootstrapping work to overcome several debilitating limitations of C++ on Android, get to get the initial startup, and packaging into a good state.

Matus Kukan (Collabora) also did a chunk of work for CloudOn to help link the entirety of LibreOffice into a single shared library image - helping startup performance & improving Android support. This significantly helps to work around the built-in Android linker's low limit of shared libraries it can handle before failing. It also helps to export nearly no symbols, and to let ld's garbage-collection throw away as much object code as possible: though there is still way more to loose.

Other work done for CloudOn by Jan Holesovsky (Collabora) and Tor Lillqvist was to implement tiled rendering inside Writer - making it possible to render arbitrary portions of documents at arbitrary zoom factors. We are deeply indebted to them - you can of course enjoy the same code inside CloudOn's iOS app.

Ian Billet worked during the Google Summer of Code 2012 to make a document browser, which has subsequently been taken over and much improved by Jacobo Pérez of Igalia creating the document browser we have today. It is of course somewhat regrettable that Android has no standard built-in file browser making this necessary. Of course the viewer also hooks into the OS to allow opening downloads, attachments etc. in the normal way.

Since FOSDEM 2014, Smoose and Collabora in the person mostly of Tomaz worked to re-target the excellent Fennec tiled-rendering code from Mozilla's android browser to target instead of the Mozilla core - the LibreOffice core. This involved great chunks of re-factoring, and hard work both in the Android and C++ core. We re-use and added tiled rendering to the LibreOfficeKit API - an API to allow simple re-use of LibreOffice for file format conversion and document rendering via a rather trivial C and C++ API. LibreOfficeKit under Linux has the advantage of requiring no linkage to

Michael Meeks: 2015-01-21: Wednesday

21:00 UTCmember

  • To work early, polled the play store in a loop, encouraged to see that Tomaz had found a big performance win as well as the cause of some missing tiles in our Android Alpha; spreadsheet tile positioning and text sizing still seems to be off however; hmm.

20 January, 2015

Michael Meeks: 2015-01-20: Tuesday

21:00 UTCmember

  • Slept well for a change; into Cambridge - chewed mail on the train; call when I got in; built ESC stats. Quarterly meetings. Paperwork in the evening, and out for a meal with Guy, Tracie & Philippe. Home late.


Weblate has started as a translation system tightly bound to Git version control system. This was in no means design decision, but rather it was the version control I've used. But this has shown not to be sufficient and other systems were requested as well. And Mercurial is first of them to be supported.

Weblate 2.0 already had separated VCS layer and adding another system to that is quite easy if you know the VCS you're adding. Unfortunately this wasn't the case for me with Mercurial as I've never used it for anything more serious than cloning a repository, committing fixes and pushing it back. Weblate needs a bit more than that, especially in regard to remote branches. But nevertheless I've figured out all operations and the implementation is ready in our Git.

In case somebody is interested in adding support for another version control, patches are always welcome!

Filed under: English phpMyAdmin SUSE Weblate | 0 comments | Flattr this!

Michal Čihař: Weblate 2.0

19:00 UTC


Weblate 2.0 has been released today. It comes with lot of improvements in backend and completely new user interface.

Full list of changes for 2.0:

  • New responsive UI using Bootstrap.
  • Rewritten VCS backend.
  • Documentation improvements.
  • Added whiteboard for site wide messages.
  • Configurable strings priority.
  • Added support for JSON file format.
  • Fixed generating mo files in certain cases.
  • Added support for GitLab notifications.
  • Added support for disabling translation suggestions.
  • Django 1.7 support.
  • ACL projects now have user management.
  • Extended search possibilites.
  • Give more hints to translators about plurals.
  • Fixed Git repository locking.
  • Compatibility with older Git versions.
  • Improved ACL support.
  • Added buttons for per language quotes and other special chars.
  • Support for exporting stats as JSONP.

You can find more information about Weblate on http://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. Ready to run appliances will be soon available in SUSE Studio Gallery.

Weblate is also being used https://hosted.weblate.org/ as official translating service for phpMyAdmin, Gammu, Weblate itself and others.

If you are free software project which would like to use Weblate, I'm happy to help you with set up or even host Weblate for you.

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

Filed under: English phpMyAdmin SUSE Weblate | 0 comments | Flattr this!


The biggest part of this HackWeek will be spent on Weblate. The major task is to complete new UI for it. There have been already some blog posts about that here, so regular readers of my blog already know it is using Twitter Bootstrap.

Today it has reached point where I think it's good enough for wider testing and I've deployed it at Hosted Weblate (see Weblate website for conditions for getting hosting there).

I expect there will be some rough edges, so don't hesitate to report any issues, so that I can quickly fix them.

Filed under: English phpMyAdmin SUSE Weblate | 0 comments | Flattr this!

Michal Čihař: Enca 1.16

19:00 UTC


As a first tiny project in this HackWeek, Enca 1.16 has been just released. It mostly brings small code cleanups and missing aliases for languages, but fixes also some minor bugs found by Coverity Scan.

If you don't know Enca, it is an Extremely Naive Charset Analyser. It detects character set and encoding of text files and can also convert them to other encodings using either a built-in converter or external libraries and tools like libiconv, librecode, or cstocs.

Full list of changes for 1.16 release:

  • Fixed typo in Belarusian language name
  • Added aliases for Chinese and Yugoslavian languages

Still enca is in maintenance mode only and I have no intentions to write new features. However there is no limitation to other contributors :-).

You can download from http://cihar.com/software/enca/.

Filed under: Enca English SUSE | 0 comments | Flattr this!


For quite some time, I'm working on new UI for Weblate. As the time is always limited, the progress is not that fast as I would like to see, but I think it's time to show the current status to wider audience.

Almost all pages have been rewritten, the major missing parts are zen mode and source strings review. So it's time to play with it on our demo server. The UI is responsive, so it works more or less on different screen sizes, though I really don't expect people to translate on mobile phone, so not much tweaking was done for small resolutions.

Anyway I'd like to hear as much feedback as possible :-).

Filed under: English phpMyAdmin SUSE Weblate | 2 comments | Flattr this!

Older blog entries ->