Subscribe to Planet KDE feed
Planet KDE -
Updated: 37 min 18 sec ago

Bugs fixed in Ark 15.08.1

Wed, 09/16/2015 - 17:38

Ark 15.08.1 was released as part of KDE Applications yesterday. This release contains a handful of bugfixes, including a fix for a long-standing, highly-voted bug. The bug was first reported in 2009 and had 738 votes in bugzilla.

The bug caused drag’n’drop extraction for multiple selected archive entries to not function properly. When selecting multiple entries in an archive and dragging them to e.g. Dolphin for quick extraction, the selection would previously be undone and only the single entry under the mouse cursor would be extracted. This is now fixed so that all selected entries are extracted. Any dragged files are simply extracted without path, while for dragged folders any subfolders/files beneath them are also extracted. This is comparable to how most file archiving software works.

Multi-selection d'n'd extractionNB: Currently, for zip, rar and 7z archives, the selected entries are extracted with full path, but this will be fixed in a subsequent release.

Of other changes in this release, there was a fix for extracting rar archives when using unrar version 5 (bug 349131). If one or more of the destination files already existed, Ark would stall and the extraction process would never complete. This was caused by Ark only supporting the overwrite prompt of unrar version 3 and 4.

Also, the mime-type detection when opening archives was made more robust, so archives with a wrong filename extension should now be opened correctly by Ark (bugs 101170 and 265971).

Enjoy the release and look out for a great release in December with several new features :)

Thanks to Elvis Angelaccio and Raphael Kubo da Costa for reviewing the code changes.

Help ownCloud rock SCALE and FOSDEM in 2016!

Wed, 09/16/2015 - 15:04
FOSDEM and SCALE are respectively Europe and North America's biggest FOSS events and, of course, we'd love to run a booth there again. We had a good time last year, just check out see my overview blog and detailed blogs about FOSDEM and SCALE. It is time to start preparing again to have as much fun and impact as last year!
FOSDEMFor FOSDEM we will request a booth again and like last year I am sure it will be very well visited so we need help talking to the visitors!

My experience from last year was that many use ownCloud (and love it). These users often are interested in hearing and seeing what is coming, so I usually have a demo machine with me.

People new to ownCloud are almost invariably very interested and you can help them get started.

Note that you don't need any particularly deep insight in ownCloud to be able to help. For people new to ownCloud, a general overview of how it is for you as a user is already a huge help and we always have people around who can help with the harder questions.
Besides the booth, it'd be great if we get some talks in at various ownCloud-related devrooms, like the decentralization room and such. See some info on this page and stay tuned for the announcements of the devrooms.

   SCALEThe 14th SCALE moves to a new location, promising to be bigger and better than ever. I sure want to be at that epic first in a new venue and so should you!

For SCALE, too, we'll try to get us a booth again and we do expect it to be very well visited just like last year. SCALE is a very cool event with many friendly folks. It surprised me how many people already knew about ownCloud but there were still hundreds we could delight with the knowledge a real free solution exists for their cloudy needs. We can really use some hands with this!

And like with FOSDEM - you don't need to be an ownCloud expert to be able to help out. Being able to explain the concept from the users' point of view is the most important thing!

I'll shoot in a talk or two but - if you have anything you'd like to talk about, SCALE, too, has a call for papers open.

For both events we have the ability to help you with travel and hotel costs if need be. Just contact me directly about that and we can figure things out!

ownCloud needs you!

Any Object Left Without a Parent Will Be Destroyed

Tue, 09/15/2015 - 17:02

Recently we had to fix a tricky crash at work: our Qt Quick app was crashing randomly when switching between two pages of the app.

The backtrace looked as if a QObject::deleteLater was trying to delete an already deleted object. Running the app with Valgrind confirmed we were trying to delete an already deleted pointer.

After much debugging, we found out the reason for the crash. Our app contains a C++ Qt model, which wraps a list of QObject. Some properties of the QObject are exposed as roles in the model, but we also have a getter which returns the QObject itself.

Here is a rough summary of the code.

The object used for the rows of the model:

class MyObject: public QObject { Q_OBJECT public: MyObject(int value, QObject* parent = 0); Q_INVOKABLE doSomething(); };

The model looks like this:

class MyModel : public QAbstractListModel { Q_OBJECT public: MyModel(QObject* parent = 0) : QAbstractListModel(parent) { mObjects << new MyObject(12) << new MyObject(34); } ~MyModel() { qDeleteAll(mObjects); } Q_INVOKABLE MyObject* objectAt(int row) const { return mObjects[row]; } private: QList<MyObject*> mObjects; };

The QML code uses the model like this:

ListView { model: MyModel { id: myModel } delegate: Row { Text { text: model.value } Button { text: "Do something" onClicked: { var myObject = myModel.objectAt(model.index); myObject.doSomething(); } } }

Can you spot the bug?

Here is what's wrong: when QML gets a MyObject instance through the objectAt() method, it receives a QObject, but this QObject has no parent (since MyModel constructor creates the MyObject instances without setting a parent). What does QML do if it gets a parent-less QObject? The answer is in QQmlEngine::ObjectOwnership doc: it takes ownership of it... and will garbage collect it when it feels like doing some clean up. If QML garbage collector runs before MyModel destructor, the destructor will crash in the qDeleteAll() call...

We fixed it by making the MyObject instances children of the model. Since the objects now have a parent, QML does not take ownership of them anymore. We assumed it was not necessary because we were taking care of deleting all instances with the qDeleteAll() in the destructor, but in this case, that turned out to be an error. Another possible approach (which we did not try) would have been to explicitly set the ownership using QQmlEngine::setOwnership().

So remember, do not leave any QObject unattended without a parent, otherwise the QML engine will destroy it!

Breeze is finished

Tue, 09/15/2015 - 12:48

Talking about Kubuntu, Arch Linux, OpenSuse, …. Questions where I can find the Plasma Widgets, UI Session about Kmail, Plasma, Kdenlive … . Where Plasma Mobile should go, how the user should navigate through Plasma and the phone applications. Starting improvements for plasma. Talking how the VDG can improve the workflow between designers and development. Writing bug reports, fixing bugs. Make code changes, discuss it on reviewboard. Talk to the devs to fix some UI stuff. Go hiking and don’t stop talking about Plasma and KDE. That was Randa for me. It was amazing.

The VDG was represent by Jens, Heiko, Uri and me. I met Uri the first time since I start making Breeze icons. That was so cool that we work together to finalize Breeze. And we made it happen. All Oxygen icons from the oxygen repository are now available in Breeze. Therefore we made during the sprint 1.600 new icons. So we have now 4.780 Breeze icons. Uri and I work since spring 2014 on the Breeze icons and we made 55 % of the missing icons in one week. It was impressing what you can do with KDE sprints. Hope we can do a design sprint in 2016.


In the diagram you see we now support 24px GTK icons, add the missing devices icons, look that the KDE applications get Breeze icons and updated our actions icons for 16px and 22px size. Now we support not only the Oxygen icons we also include the Krusader, Amarok and Digikam icons. We have now 1034 action icons.

As QT5 will ship the icons first from the system setting icon set, Digikam 5.0 (still in Beta) switch between Breeze, Breeze Dark and Oxygen within one click on the look and feel package. In KDE4 applications you have to rename the folder in /usr/share/kde4/apps/xxx/icons/ (kubuntu) and you get the Breeze icons for Digikam and Amarok (at your own risk). Our changes are in the Plasma/5.4 brunch so the user will get our Randa stuff asap.

For the Plasma 5.5 Release we will go to the KDE Applications and add the last missing icons. In addition we will remove wrong used icons cause we send fixes to the applications or make Bug Reports that the Applications should use the right icons.

As I wrote in the first paragraph we do a lot of User Interface stuff together with the developers (Heiko made a blog post about some stuff) We show how the VDG work and let the developers know that we would like to work with them together. Not only by make the first design draft. We are excited where our journey will go.

I now work since 10 months for KDE in my spare time and I enjoy it very much. I’m quite happy that there is the VDG cause it is much easier to start the KDE journey within a small group. If you like to go with us, go to the forum and make your first comment. The VDG is not an elite group where you have to study design, … If you like to focus on usability and visual stuff, … Welcome

digiKam Recipes 4.9.1 Released

Tue, 09/15/2015 - 09:04

A new release of digiKam Recipes is ready for your reading pleasure. This version features completely revised material on one of the most complicated subjects in digital photography: color management. The completely rewritten Color Management in digiKam recipe now provides an easy-to-understand introduction to key color management concepts and explains how to set up a color-managed workflow in digiKam. The recipe also offers practical advice on calibrating and profiling digital cameras and displays.


Continue reading

read more

184 Qt Libraries

Mon, 09/14/2015 - 14:00

We have collected 184 third party Qt libraries on Inqlude now. This is a pretty complete map of the Qt ecosystem, quite an impressive number, and lots of useful libraries extending Qt for many purposes.

Inqlude is based on a collection of manifests. If you like to add or update a library, simply submit a pull request there. The inqlude tool is used to manage the manifests, it generates the web site, but you can also use it to validate manifests, or download libraries. There also is inqlude-client, which is a C++ client for retrieving sources of libraries via the data on the Inqlude web site. It's pretty handy, if you want to integrate some library into your project.

If you want to get a brief introduction into Inqlude, you might want to watch my award winning lightning talk from Qt Dev Days 2013: "News from Inqlude, the Qt library archive". It still provides a pretty accurate explanation of what Inqlude is about and how it works.

A big part of the libraries which are collected on Inqlude are coming from KDE as part of KDE Frameworks. We just released KDE Frameworks 5.14. It's 60 Qt addon libraries which represent the state of the art of Linux desktop development and more.

Inqlude as well as KDE Frameworks are a community effort. Incidentally they both started at a developer sprint at Randa. Getting community people together for intense hacking and discussions is a tremendously powerful catalyst in the free software world. Randa exemplifies how this is done. The initial ideas for Inqlude were created there and last year it enabled me to release the first alpha version of Inqlude. These events are important for the free software world. You can help to make them happen by donating. Do this now. It's very much appreciated.

One more recent change was the addition of a manifest for all libraries part of the Inqlude archive. This is a JSON file aggregating all latest individual manifests. It makes it very easy for tools who don't need to deal with the history of releases to get everything in one go. The inqlude client uses it, and it's a straight-forward choice for integration with other tools which would like to benefit from the data available through Inqlude.

At the last Qt contributors summit we had some very good discussions about more integration. Integration with the Qt installer would allow to get third party library the same way you get Qt itself, or integration with Qt Creator would allow to find and use third party libraries for specific purposes natively in the environment you use to develop your application. One topic which came up was a classification of libraries to provide some information about stability, active development, and support. We will need to look into that, if there are some automatic indications we can offer for activity, or what else we can do to help people to find suitable libraries for their projects.

It's quite intriguing to follow what is going on in the Qt world. As an application developer there is a lot of good stuff to choose from. Inqlude intends to help with that. The web site is there and will continue to be updated and there also are a number of ideas and plans how to improve Inqlude to serve this purpose. Stay tuned. Or get involved. You are very welcome.

Interview with Lucas Ribeiro

Mon, 09/14/2015 - 05:40


Could you tell us something about yourself?

Hi, I am a 24-year-old Brazilian artist, who lives in Sao Paulo. Married and eldest of three brothers. Watching my mother making a lot of pencil portraits when I was a child inspired me to do the same years later, since I saw it was not impossible to learn how to draw. I started to draw with pencils when I was 13, but nothing serious until I reached the age of 20. I began to learn digital painting, watercolor and improving my drawing skill (self-taught). Now I have worked in book covers, character design, a mascot for the government of Sao Paulo and recently even with graphic design. I use mainly Krita, but used previously GIMP, MyPaint, ArtRage, Sketchbook Pro, SAI… but Krita fits everything that I need better.

Do you paint professionally, as a hobby artist, or both?

I’m starting to do more freelance jobs. So I’m combining my hobby with my profession, which is a blessing. So, it is both.

What genre(s) do you work in?

I’m very eclectic, but I have to say that fantasy art and the cartoon style with a more realistic approach, like the concept art of Pixar and Dreamworks, are my favourites, and I plan to dedicate myself more to these styles.

Whose work inspires you most — who are your role models as an artist?

Well, this list is very, very large. I need to say that movies and books inspires me a lot: Lord of the Rings, Star Wars and the Disney animated movies. Inspiration can come from anywhere at any time. A song, a trip. But speaking about artists, I can’t fail to mention David Revoy and Ramon Miranda for doing excellent work with open source tools.

How and when did you get to try digital painting for the first time?

Well, I think that was with MS Paint Brush in the 90’s. Even though I was using a mouse, I was a happy child doing some ugly stuff. But when I started do draw seriously, I heard of Gimp Paint Studio and give it a try. After that I started to try different tools.

What makes you choose digital over traditional painting?

Actually I draw a lot with pencils, pen, ink and watercolor. But digital painting gives you endless possibilities for combinations and experiments without any cost (both in money and in time).

How did you find out about Krita?

I was looking for tips and resources to painting with GIMP, until I found out that David Revoy was using Krita to do the free “Pepper & Carrot” webcomic. When I looked up the pictures, I was impressed. Which is awesome.

What was your first impression?

The brushes feels very natural, almost as the real world. The way that the colour blends is very unique. There was no comparison with Photoshop in that, for example. The experience of painting with Krita was really natural and smooth. Even though that in my old laptop was lagging a little bit in the previously versions of Krita.

What do you love about Krita?

In first place: The brush engines and transform tools. I think they are the best in the market, on this moment. The brush editor is very intuitive and powerful too.

What do you think needs improvement in Krita? Is there anything that really annoys you?

Maybe some speed improvements. When I’m using more layers in high resolution I feel that.

What sets Krita apart from the other tools that you use?

The way that the brushes feel. There is no comparison with other painting tools. Is very natural, in that way I feel I am really painting and not just using a digital tool.

If you had to pick one favourite of all your work done in Krita so far, what would it be, and why?

Every day I make studies or a new illustration. But I think that I would choose the “Gangster Pug”. I used a lot wet brushes, which is very similar to painting with watercolor in the real world. It’s basically the same workflow.

What techniques and brushes did you use in it?

Wet brushes, and airbrush with blending modes like Multiply and Overlay. The Muses and David Revoy’s V6 Brushpack is what I use most.

Where can people see more of your work?

Soon I’ll have a new website and portfolio. But right now, people can see it at behance and facebook. I invite everyone to visit me at these links, especially because 90% of my work is done in Krita now. For stuff like graphic design I use Inkscape or Blender.

My page:

Anything else you’d like to share?

You can add me on facebook ( or send me an email ( and share your thoughrs. If you have not used Krita yet, try it. I think it’s the best tool in the market at the moment, and it’s really a production machine, whether you’re interested in VFX painting, illustration, comics and concept art, or just in painting and sketch.

Vector Tiling in Marble Maps @Randa

Sun, 09/13/2015 - 20:46

Earlier today I returned from the KDE Sprint in Randa, where Torsten, Sanjiban, me and 50 other KDE developers met in the Swiss Alps for a week of hacking. Our Marble subgroup concentrated on vector tiling in Marble Maps. After some very productive days we have a first prototype of OpenStreetMap vector tile support ready both on the Desktop and on Android. It will become the new map rendering engine for Marble Maps on Android in future releases.

Our main goal for the Randa Sprint was getting the vector tiling tool chain running. This includes splitting OpenStreetMap data into smaller chunks and providing them on a KDE server (thanks, Ben). These chunks are then downloaded by Marble clients on the Desktop or Android and provide the data for the map you see. Fortunately we got the server infrastructure and a basic vector tile generation tool up and running within the first two days, and had it generate vector tiles for a couple of test regions for the rest of the week.

For texture tiles the server is responsible for rendering the map and client devices just display images. This approach is easy to implement for clients, but no changes to the look of the map are possible. Vector tiles require a client that is capable to render the data by itself. Even though that pushes more work on the client, it has a lot of advantages: The map always looks crisp and all elements can be adjusted dynamically. Some of that can be seen in direct comparison already as shown in this screenshot (best viewed in original size):


Marble has been able to render vector data since the very start, but support for OSM vector data only started to emerge recently. With a working tile server in place we now could concentrate on the fun part, extending and improving OSM vector rendering itself. Beaches, buildings with real height, glaciers, butchers, car sharing and narrow-gauge railways are just a few examples of elements we added to the rendering. There’s still a lot of further elements and details to consider, but we covered all major map features already.


The Randa Sprint brought us much closer to a releasable (end-user ready) version of vector tiling. Chances are good this happens within this year still. Our public beta version of Marble Maps in the Android Play Store will get the update automatically. You can become a beta tester if you’re interested in seeing it emerge. We now also have the weekly Marble Café where everybody is invited to get involved with Marble and learn about recent developments.

Last but not least I’d like to thank everyone who helped making the Randa Sprint possible, especially the awesome organization team around Mario and his family/friends as well as everyone who donated and supported it.

Progress of KDE on Android Infrastructure

Sat, 09/12/2015 - 22:23

We have 2015 and Android is a very important platform for (mobile) applications and developers. — This somehow could also have been written a year ago, and actually it was stated then by several people. Those people also started porting some first applications from the KDE/Linux world to the Android platform. Yet, when looking at what happened the last year, as of now, we only have KAlgebra, GCompris and (since recent) Marble Maps that are available on Android.

The interesting question is, what holds back the many KDE applications that would also fit on an Android platform? During this year’s Randa sprint we took the opportunity and sat together to exchange what we learned during the last year. Looking at the different approaches of porting applications to Android,  we learned that already setting up a build system is a by far non-trivial job and probably one of the main points that holds people back from playing around with Android. Still, also the availability of KDE Framework libraries was not really tested in details yet, and without having availability guarantees it raises an uncertainty about how easy a port to Android might be.

To overcome these problems, we start with some simple approaches:

  1. Provide a simple and easy to use build environment.
    From the several existing toolchains for building Android applications, we started to reduce the number of different ones within the KDE projects to one. The new general toolchain (provided since some time via extra-cmake-modules) gained a new tutorial for how to use it. Further, by providing a build script for frameworks libraries, we make it easy to setup a whoel build environment that can directly be used for porting KDE applications that use KF5.
  2. Make development easy for new people.
    Initial work was started to create a docker image as a simple to use SDK. The goal is: run one command and get a fully setup build environment. With this approach we follow the way as it was started for Plasma Mobile.
  3. Availability of KDE Frameworks 5.
    We started to look into which frameworks currently can be built for Android. The list is already notably: kconfig, kcompletion, kitemmodelsm kitemviews, kcodecs, karchive, kguiaddons, kwidgetsaddons, attica, kdnssd, kapidox, kimageformats, and kplotting. For getting more frameworks build, the current two major blockers are building ki18n and kcoreaddons, which both need actual changes to the code to support the Android platform with its stripped down libc.

Looking at what was already achieved, the sprint itself was essential to get all people together to really work on this topic. As always, you can support this wok by donating for KDE’s sprints.
Though the work is not yet done, the basement is set to post some interesting news in the next weeks.

FreeBSD Plasma 5.4.1 and Frameworks 5.14.

Sat, 09/12/2015 - 20:08

Just a quick note that the KDE-FreeBSD “bleeding edge” ports repository area51 has been updated to the most-recently-released KDE Frameworks 5.14.0 and Plasma Desktop 5.4.1. These packages have been poudriere-built on 9.3 x86, 10.2 amd64 and 11 amd64 (no, I’m not building Plasma Desktop for Beagle Bone just yet). Information on area51 is on the K-F site, although you’ll want the plasma5-branch, which is at

The Wildest Ubuntu Wily release party in Florida!

Sat, 09/12/2015 - 17:39

With food, drinks and prizes who really doesn’t want to come to this Ubuntu release party in Florida? Come party hard for the latest Ubuntu release! We’ll have Ubuntu Touch devices ranging from the Nexus 4 to the Nexus 10 all running Ubuntu! We’ll have hardware running the latest Ubuntu release of course as well as Kubuntu, Ubuntu GNOME. With more details coming later on so RVSP as soon as possible to get in on the fun! We have a[1] page as well as a[2] for you to use.





KDE Telepathy ThinkLight Plugin

Sat, 09/12/2015 - 11:49

Do you own a ThinkPad? Good!
Does it have the ThinkLight? Good! Then this post might interest you!

I just wrote a KDE Telepathy plugin that blinks the ThinkLight when you get an incoming message.
Sounds almost useless, isn't? Maybe not.

I found a good use case for it: sometime you could be away from keyboard, but near your ThinkPad (e.g. studying), the screen goes black, sounds are off, but you see the ThinkLight blinking - you got a message!

To enable it you just have to fetch the source code, build and install as usual with CMake.

There's just an annoyance at the moment: you need write permission over /proc/acpi/ibm/light. I'm looking for a solution for this, but found nothing if not changing that file permissions manually. Any idea?

There's also a tool, thinkalert (mirror), which allows to turn on/off the ThinkLight without being root by using suid. If you prefer this way, you can fetch the code from the thinkalert branch instead.

Have fun!

Sometimes the day begins…

Fri, 09/11/2015 - 21:04

…with nothing to look forward to.
This is the beginning of one of the most amazing picture books I have seen so far.
The Red Tree
I takes only five minutes to “read” through it, but the story will be formed in your imagination by memories of your own days like these. And there are pretty pictures. :)

Why am I telling you this? Because my current days feel a bit like it. Why?
 not going to Desktop Summit

After years of letting Akademy after Akademy pass by because it was just too far away, I actually have to skip the one on Germany as well. Reading the Planets KDE and Debian these days just adds to the grief. But you all know it, you all fear it, you all met it: Real Life!

There are just too many things going on right now and thus I just do not feel like it.

So, I wish you all a nice Desktop Summit and look forward to the next first meeting I will attend. :)

Kdenlive at Randa meetings - first report

Fri, 09/11/2015 - 15:48

We arrived here on wednesday, and started discussions about our plans in the train. Here is a short resume of what happened during these first days:

We decided to work on bug tracking during the first day, since the Kdenlive 15.08.1 release was imminent. We fixed quite a few bugs that will improve stability of the 15.08 branch.

The second important goal was to take advantage of having so many great people around us to improve Kdenlive. So we had contacts in these domains:

Mission statement:

We started the work on our "Mission Statement" to better define which users / jobs Kdenlive is designed for. This will help us to focus on important tasks for our target audience. We are in contact with people from the VDG (KDE's Visual Design Group) to get feedback on that process.

Ui design and workflow:

We had a session with people from the VDG (KDE's Visual Design Group) to review Kdenlive. We also had the chance of having a user of professional video software who had never seen Kdenlive so he was the perfect test subject for our UI review session. We wrote a wiki page on the ideas that came out of this. We encourage you to visit that page and give us feedback (a few issues were already reported on the bugtracker). As time permits, we will try to implement these ideas to improve the workflow.


There are a few issues/crashes in Kdenlive related to Qt5/KF5 bugs, and we made some contacts to get some help on this.

Next features:

We discussed some of the features we want to integrate for the 15.12 release, and other long term goals.

The feature we would like to integrate for the december release are: merge the animation feature from GSoC, same track transition (eg. overlapping 2 clips to crossfade), and a way to copy/paste between projects.

Wall drawing

Fri, 09/11/2015 - 12:16

Sol Lewitt's wall drawing at Stedelijk Museum Amsterdam

Sol Lewitt’s wall drawing at Stedelijk Museum Amsterdam

A few weeks ago, I visited the Stedelijk Museum in Amsterdam for an exhibition of Henry Matisse’s works. What stuck is not a painting or collage by Matisse, but a wall drawing by Sol Lewitt. I took a photo with my phone and have since then used it as wallpaper for it, and it works well, colors are nicely toned, everything provides enough contrast, and I like how it looks on a screen.

Yesterday, when I needed a break from hacking on Plasma’s Wayland integration, I remade the photo into vector art to use it as wallpaper. You can download the result here (the wallpaper package has versions for all resolutions, including phone and landscape versions, you can just unzip the package into /usr/share/wallpapers).

Password visibility in KPasswordDialog

Fri, 09/11/2015 - 11:59

With the upcoming 5.14 release of the KDE Frameworks, KPasswordDialog gets the ability to change the visibility of the password being typed by the user. This is a common and useful feature, especially when the password is hard to type and error prone. Screenshots follow:


If you use a KPasswordDialog in your application, you will get this feature for free and none of the existing code has to be updated.


The two eye-shaped icons have been recently added to the Breeze theme, so they will only be available starting from Plasma 5.5. However, for Plasma 5.4 and earlier versions, the KWidgetAddons framework will fallback to the very same icons, hardcoded through the QRC system. This will also make them available on non-Plasma systems where Breeze is not installed at all. The only drawback is that those icons will not be themeable anymore.

The visibility feature is automatically hidden if you manually set a password using KPasswordDialog::setPassword(). This prevents possible leaks because the user might not be supposed to know the password, but only to use it.
If for some reason you don’t preset a password buy you do want to disable this feature, just call setPassword() with an empty string as argument.

Deploying Limba packages: Ideas & current status

Fri, 09/11/2015 - 08:14

The Limba project does not only have the goal to allow developers to deploy their applications directly on multiple Linux distributions while reducing duplication of shared resources, it should also make it easy for developers to build software for Limba.

Limba is worth nothing without good tooling to make it fun to use. That’s why I am working on that too, and I want to share some ideas of how things could work in future and which services I would like to have running. I will also show what is working today already (and that’s quite something!). This time I look at things from a developer’s perspective (since the last posts on Limba were more end-user centric).

1. Creating metadata and building the software

To make building Limba packages as simple as possible, Limba reuses already existing metadata, like AppStream metadata to find information about the software you want to create your package for.

To ensure upstreams can build their software in a clean environment, Limba makes using one as simple as possible: The limba-build CLI tool creates a clean chroot environment quickly by using an environment created by debootstrap (or a comparable tool suitable for the Linux distribution), and then using OverlayFS to have all changes to the environment done during the build process land in a separate directory.

To define build instructions, limba-build uses the same YAML format TravisCI uses as well for continuous integration. So there is a chance this data is already present as well (if not, it’s trivial to write).

In case upstream projects don’t want to use these tools, e.g. because they have well-working CI already, then all commands needed to build a Limba package can be called individually as well (ideally, building a Limba package is just one call to lipkgen).

I am currently planning “DeveloperIPK” packages containing resources needed to develop against another Limba package. With that in place and integrated with the automatic build-environment creation, upstream developers can be sure the application they just built is built against the right libraries as present in the package they depend on. The build tool could even fetch the build-dependencies automatically from a central repository.

2. Uploading the software to a repository

While everyone can set up their own Limba repository, and the limba-build repo command will help with that, there are lots of benefits in having a central place where upstream developers can upload their software to.

I am currently developing a service like that, called “LimbaHub”. LimbaHub will contain different repositories distributors can make available to their users by default, e.g. there will be one with only free software, and one for proprietary software. It will also later allow upstreams to create private repositories, e.g. for beta-releases.

3. Security in LimbaHub

Every Limba package is signed with they key of its creator anyway, so in order to get a package into LimbaHub, one needs to get their OpenPGP key accepted by the service first.

Additionally, the Hub service works with a per-package permission system. This means I can e.g. allow the Mozilla release team members to upload a package with the component-ID “org.mozilla.firefox.desktop” or even allow those user(s) to “own” the whole org.mozilla.* namespace.

This should prevent people hijacking other people’s uploads accidentally or on purpose.

4. QA with LimbaHub

LimbaHub should also act as guardian over ABI stability and general quality of the software. We could for example warn upstreams that they broke ABI without declaring that in the package information, or even reject the package then. We could validate .desktop files and AppStream metadata, or even check if a package was built using hardening flags.

This should help both developers to improve their software as well as users who benefit from that effort. In case something really bad gets submitted to LimbaHub, we always have the ability to remove the package from the repositories as a last resort (which might trigger Limba to issue a warning for the user that he won’t receive updates anymore).

What works

Limba, LimbaHub and the tools around it are developing nicely, so far no big issues have been encountered yet.

That’s why I made a video showing how Limba and LimbaHub work together at time:

Still, there is a lot of room for improvement – Limba has not yet received enough testing, and LimbaHub is merely a proof-of-concept at time. Also, lots of high-priority features are not yet implemented.

LimbaHub and Limba need help!

At time I am developing LimbaHub and Limba alone with only occasional contributions from others (which are amazing and highly welcomed!). So, if you like Python and Flask, and want to help developing LimbaHub, please contact me – the LimbaHub software could benefit from a more experienced Python web developer than I am 😉 (and maybe having a designer look over the frontend later makes sense as well). If you are not afraid of C and GLib, and like to chase bugs or play with building Limba packages, consider helping Limba development :-)

New Kubuntu Council members

Thu, 09/10/2015 - 21:09

Following the departure of a few Kubuntu Council members Philip (yofel) launched a new election for people to fill the chairs left on the council. The results of that election[1] are three brand new members! Welcome in myself (Aaron Honeycutt/ahoneybun), Ovidiu-Florin Bogdan(ovidiu-florin), Clay Weber(claydoh).


Plasma 5.4.1 lands in Kubuntu Wily

Thu, 09/10/2015 - 14:37

KDE Plasma 5.4.1, bugfix Release for September, has landed in Kubuntu Wily, to become Kubuntu 15.10.

KDE Connect 2nd anniversary and Beta program

Thu, 09/10/2015 - 12:44

This week two years ago, we released the first version of KDE Connect. Since then, more than 50.000 people have installed the Android app, more than 60 people have contributed code patches (even high school students), and it has been translated to 26 languages! That’s awesome! Thank you all! \o/

KDE Connect team at RandaDavid Edmundson, Albert Vaca and Aleix Pol at the Randa Sprint

This week, as part of the Randa 2015 sprint (still accepting donations) we are about to finish the next release of KDE Connect for Plasma 5 and Android. The Android app finally got a new and nice-looking design using Material. Check it out:

Screenshot  Screenshot

Now, we need some brave hearts to test the new app and find all the nasty bugs, so when we release it publicly it works faultless. If you want to enroll in the Beta program, you can do so from the following link and soon you will receive an update through the Play Store:

Enroll in the KDE Connect Beta program

Please report any issues you find, and if it crashes please use Android’s report dialog to send us info about the crash. Thanks a lot!