15 Dec 2019

feedPlanet GNOME

Daniel García Moreno: GNOME Outreachy 2019

The Outreachy Program

The Outreachy program provides internship to work in Free and Open Source Software. This year I've proposed two projects as part of the GNOME project and we've two interns working for three months, so we'll have a lot of improvements in the following months!

I'll be mentoring these interns, so I will need to spend some time helping them to work on the existing codebase, but it worth it, if this makes more people to collaborate in free software development and if this help us to improve some useful apps.

These two projects are Fractal and the GNOME translation editor. You can take a look to the list of outreachy interns.


Fractal is a Matrix.org gtk client, and I've proposed for this year program to implement a video player in the message list. We've a preview for images, for audio files but nothing for video files.

Sonja Heinze is the one that will be working on this during the next three months. She has been working during the past month in some small issues in Fractal so I'm really sure that she will be able to do great contributions to the project.

Jordan Petridis (alatiera) will be helping in this project as a co-mentor, I don't know a lot about gstreamer, so he'll be really helpful here with the gstreamer and rust.

GNOME translation editor (Gtranslator)

GNOME translation editor (gtranslator) is a simple .po editor. I've proposed to Rework the search and replace dialog. We've right now a simple find/replace modal dialog and I want to modernize the interface to integrate better in the window as a popover.

Priyanka Saggu is the one that will be working on this during the next three months. She has been working on gtranslator during the past month and she has done great contributions and improvements during this time.

Daniel Mustieles is the other co-mentor for this project. He's an experienced GNOME translator so he will help us a lot with the app user experience design and testing.

15 Dec 2019 6:03pm GMT

Gaurav Agrawal: openSUSE Asia Summit 2019, Bali

When you travel for the very first time Internationally there are lot of things going in your head. Especially for someone like me, who is a vegetarian and is travelling all alone with no experience of flight. I was a lot nervous, was thinking about the culture of the place I am going, was nervous about flight itself, I watched a lot of "How to save yourselves" videos while travelling in flights. 🤫

So, yeah it was pretty messed up.

When, I was boarding the plane, my mom called me in last 10 mins, said news is going on about some "terrorists" entering Delhi (where my flight was), she was really really nervous and at one point I said "Do you want me to leave everything and abort?", well no 😅

So, yeah a fully nervousness filled journey started, I boarded Singapore Airlines and damn it was A380, my first International flight and that too with a jumbo, I forgot all the things as soon as I entered the plane.

I gotta tell you, from the very start, I started realizing how well humanity can be, air hostess/host were taking so good care of the passengers, I felt so welcome and I guess indebted that my words aren't just enough.

I mean, I can joke about this and say "At one point it felt like this much care I don't even get from my parents"😉

I was in the flight, slept for a while ( It was midnight flight) , and then it hit me, I saw that crew was up whole the time making sure that we sleep well, I was so touched by this, and I reached out to the crew and talked about this, they were very welcoming and talked about their job and I had a nice talk with them, All of the whole experience was just so nice.

In the end, they reached out to me, and shared a token of gratitude, they gave me "Singapore airlines playing cards and a ball point pen", with a letter that they enjoyed having me as a passenger. Well, I was not aiming for any gifts or something, I just went to them and asked about their job and appreciated their hard-work genuinely.

I still manage to store this precious memory 🙂 Hope to see you again Mr. Westwood

I had a layover in Changi Airport, Singapore. And yes it's absolutely worth the hype on Internet. I mean it's really high tech, lots of recreational stuff, amazing gardens and you get to see "The Jewel", also operations wise they do their best!

You will have a good time layover-ing in Singapore :p

Now, until this point, you should have got the idea that how comfortable I would have got so far. Yep!, that's correct 🙂

I reach Bali, it was a 1-1.5 hour flight from Singapore. Comfort was gone … :/ well because I never experienced foreign exchange yet, and I had to reach the hotel somehow. So, I was thinking to myself can I pay online ?, Do I use my ATM ?, Do I buy sim card here ?, Do I exchange few dollars which I got with me here only ? ….. so on… after a lot of nervousness and search in and outside of the airport I exchanged few dollars just slightly above my taxi far and reach my hotel.

Pheww 😪 , First test over!

Now, I checked in rested for that day, on 5th October was my conference next day.

Day 1

I reach the venue 1.7 Km away on a sunny day (It was hot) , but foot :/ , well because It did not hit me that moment Motor bike ride app Gojek and Grab exist there.

Here, I was welcomed by the kind volunteers, after few paperwork of attendance, I got my welcome kit 😋

Woah, it was goodylicious 😉

:p There was a bottle too, not in this picture :/

I then attended few talks, one of them was about creating open source communities in Indonesia where the main focus was on students. Being a student myself I took part in that discussion. Then another one was by Mr. Segitz where from Suse, where he talked about how Suse takes security bugs, how they handle them, critical bugs etc etc..

I asked him about something similar to Android, where you restrict apps based on the permissions, he said it is a good idea and can be discussed. Niel added on about "Flatpak" on this discussion and yeah it's a good idea 🙂 Flatpak has those things already :p

I met, Ahmad Haris for the very first time, can;t forget his custom shoes 😉 he was showing off that moment :p , he managed to get them done by "FANS" I mean he's a CEO haha (As per him :p)

I met more GNOME folks there for the very first time, I mean that feeling when you meet the folks behind IRC and chats for the first time. Yeah it was phenomenal, just makes me more excited about upcoming GUADECs. I just want to meet everyone :p

So, there in openSUSE summit, we had a little GNOME world 🙂 , Ahamad, Kukuh, Rania, Shobha, Rosanna, Neil and others 🤗

It was a really great day.

I gotta say, I had doubts about Inodensia culture in general, my stereotypical family was worried because there it was majority of relegion which I do not belong to, and other stuff.

But, to be honest, I have never met such respectful, generous, helpful people in my entire little life that I have met in Indonesia. They are just the best humans out there!

Oh, that's our little cute "minix" :p (I gave her a nickname) and the University campus was extremely beautiful with a really cool view of the Sea 🙂

I met many cool folks from Japan and China openSUSE community!, It' just gets better and better when you meet folks from around the FOSS world. We all are working for same goal, to make the world a better a place! I have described in my previous GNOME Asia blog already that FOSS can make a huge impact in lives of people. It has tremendous possibilities, and when I personally saw the companies like "FANS" getting value out of it I was stunned and really happy 🙂

Day 2

I attended Niel's talk, and loved how he swept in GNOME education challenge at the end of the talk because yeah the talk got over few minutes early 😉

Then, one of the really amazing talk was by Mr. Takeyama from Japanese community, they are doing a really great job out there to increase Japanese support on the magazing FOSS tools by personally contributing. And the coolest part is they have "Geeko Magazine" published every 6 months where they personally manage all the things. And have cool Japanese styled animation covers too 😋.

He generously gave me a sample, but sadly it does not have a Manga like animated cover :/ , but yeah still a cool stuff to have :p

If you happen to visit Japan and get a chance to attend Comiket festival they do have a stall there grab those before stock gets over (Really Limited)

Credits: https://blog.geeko.jp/category/geeko-magazine My Treasure 😉

When I went back to hotel on the second day, the openSUSE bottle broke :/ , I got sad, really because it was cool. I asked Kukuh that will it be possible to have an extra left and if he can get that in GNOME Asia, and wow to my surprise it worked out and he arranged one for me. Now I have it safe with me 🙂

Thanks a lot Kukuh! , means a lot!

My cracked bottle :/

I am really astonishingly amazed by the great Indonesian People, their culture, their FOSS community specially, how well they manage to organize such beautiful events, and the fact that how linked they are, I mean most of the organizing committee in GNOME Asia and the participants were in openSUSE too 🙂

The best part is, even working people take out their time collaborate with the University staff and students and make these amazing events happen.

To be honest I am a bit Jealous of the community there, hope we have that presence in India too 🙂

Thank you everyone out there who made this event happen and took care of the participants and speakers! , I would definitely like to give a talk next time there 🙂

And for all of you did not make it there, yeah you missed a lot :p

*Note: I would really like to know in the comments if you are interested to know about Bali Tourism, this post got a bit long, if there is a good response I would really love to share the journey 🙂

Peace ✌

Hope to meet you all back again!

15 Dec 2019 3:21am GMT

Priyanka Saggu: Outreachy week-2 progress report!

December 15, 2019

Task for the week:

Summary of the week:

It was a really productive week. I am almost done with the current tasks. I've finished replicating the wire-frame of gnome-builder's search-and-replace-bar widget into the libdazzle-example application (although, it's a complete mess piece of code right now, that I'll refactor once I see it is actually working). There are a couple (or maybe a couple more) of final nitpicks to do to actually mark these as finished.

At the moment, I am far more comfortable with the project. Nothing seems really alien-sih now, rather most of the stuffs (from the project) looks quite familier (and imparts somewhat proper sense).

Compiling below each day's progress in brief:

Day 01:

Day 02:

Day 03:

Day 04:

Day 05:

Day 06:

15 Dec 2019 12:00am GMT

14 Dec 2019

feedPlanet KDE

This week in KDE: building up to something big

We've got some really big things planned and in progress for Plasma 5.18 and Frameworks, and work proceeds smoothly. None of it is quite done yet, but we did land a number of nice bugfixes and user interface polish for issues that have been irritating people for years…and mere days! Have a look:

New Features

Bugfixes & Performance Improvements

User Interface Improvements

How You Can Help

Do you like to categorize things? So do I! Then why not try your hand at triaging bugs? KDE's faithful users file about 25 of them every day, and they all need to be looked at, categorized, moved to the correct products, marked appropriately, closed if the issue has already been fixed-in short, triaged. It's fun and easy and can be done in 5-minute spurts during boring periods of the day. Triaging bugs is a super helpful way to relieve some of the developers' burdens if you're not a developer yourself-developers vastly prefer writing code and fixing bugs to triaging them! For more information, check out https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging!

More generally, have a look at https://community.kde.org/Get_Involved and find out more ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don't have to already be a programmer, either. I wasn't when I got started. Try it, you'll like it! We don't bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

14 Dec 2019 11:08pm GMT

Preparing foss-north 2020

Next year's foss-north will take place March 29 - 31, with the training day on April 1. Preparations are under way, and now we need your participation to make this event as great as the past years.

The preparations are under way and we've opened the Call for Papers. We truly believe that we bring together the best audience with the best speakers. Being a part of this is a great experience, so make sure to get your talk proposal submitted.

Another part of the foss-north experience is the community day. The day before the actual conference, a large set of community groups arrange workshops, hackatons, dev sprints, even mini conferences. This year we've already confirmed the participation of KDE, FreeBSD, and "something embedded" arranged by Endian (last year they did a full day workshop on the Zephyr Project).

If you want to be a part of the community day - don't hesitate to reach out to info@foss-north.se. We help with a venue, food, and promotion. All you need to have is a cause!

In addition to this we are, of course, on the look out for sponsors. If you want to support us, or even take part in the conference with a booth, please join our Call for Sponsors. Make sure to tell your employer that they should sponsor - all sponsor packages include free tickets, so that way you can both participate in the event, and help us making this possible.

Between all of this we're also working on the infrastructure. I'd like to extend a big thanks to Magnus Hagander from Postgresql. He is helping the migration to their pgeu-system system. This will give us a single system integrating the features we need - tickets, sponsors, scheduling, accounting. So no more Google Forms, Eventbrite, and manual coordination of systems. If you like css, html, and such, you're more than welcome to help. Some pages still has rough edges.

Long story short: join us at foss-north 2020 - it will be fun! Take the opportunity to see Gothenburg end of March in 2020.

14 Dec 2019 11:23am GMT

KDE Itinerary @ 36C3

I'll be attending the Chaos Communication Congress this year finally for the first time, after having failed to obtain a ticket in the past. This week I got the actual ticket document, and seeing it contain an UIC 918.3 barcode I of course had to make KDE Itinerary support this ticket too :)

36C3 Ticket

The 36C3 ticket is a nice example for recently added features in KDE Itinerary, and also sufficiently special to show the flexibility of the extractor infrastructure. It's a PDF file with two barcodes, a QR code needed for entrance, and an Aztec code with an UIC 918.3 payload for local public transport to the venue.

The QR code is fairly useless for our purposes, it basically just contains a random number. Good from a privacy point of view, but therefore providing nothing the extractor can work with. Not so the second one, that contains some very specific markers we can use for selecting the extractor, such as the unassigned UIC operator code "9997" and the passenger name "36C3".

So, using the following filter expression in the extractor metadata gives us single PDF pages with one 36C3 ticket each to process:

    "filter": [ {
        "match": "uic:9997",
        "property": "reservationFor.provider.identifier",
        "type": "JsonLd"
    } ],
    "type": "Pdf"

The extractor script needs to do a few unusual things though. First, the generic extraction assumes this to be a train ticket, as that's what UIC 918.3 barcodes are usually used for. We want this to be an event ticket though. So rather than the usual approach of augmenting the results from the generic extraction, we simply create an entirely new object and return that, replacing the existing results.

KMail showing information about an attached 36C3 ticket using the KDE Itinerary plug-in. KMail Itinerary plug-in detecting 36C3 tickets.

The other special thing is the fact that we have two ticket tokens (barcodes) here, which we both need to preserve. That's where the recently added multi-ticket support comes in. For this we need to generate two identical event tickets, with separate ticket tokens and ticket names. The slightly hacky part is finding the second barcode, as due to its non-descriptive content we need to do that manually. So this requires iterating over all images on the same PDF page:

var images = pdf.pages[Context.pdfPageNumber].images;
for (var i = 0; i < images.length; ++i) {
    var code = Barcode.decodeQR(images[i]);
    if (code) {
        res.reservedTicket.ticketToken = "qrcode:" + code;

The full extractor script can be found here.

KDE Itinerary multi-ticket selector for a 36C3 ticket. KDE Itinerary showing both the 36C3 entrance and public transport tickets.

At 36C3

If you are attending 36C3 and are interested in Free Software/Open Data travel/mobility/digital assistant stuff or related/adjacent topics, let's meet! I'm particular interested in widening the set of people we collaborate with on this, bringing KDE, Wikidata and Navitia together has already gotten us quite far, but I think there's more we can achieve :)

It looks like I'll also be presenting the work we did around KDE Itinerary on the WikipakaWG stage, but the exact date and time has yet to be determined.


Special thanks to the nice people who helped me to finally get my hands on a ticket for this event, really looking forward to this!

14 Dec 2019 10:30am GMT

13 Dec 2019


Bastien Nocera: Dual-GPU support follow-up: NVIDIA driver support

If you remember, back in 2016, I did the work to get a "Launch on Discrete GPU" menu item added to application in gnome-shell.

This cycle I worked on adding support for the NVIDIA proprietary driver, so that the menu item shows up, and the right environment variables are used to launch applications on that device.

Tested with another unsupported device...

Behind the scenes

There were a number of problems with the old detection code in switcheroo-control:
- it required the graphics card to use vga_switcheroo in the kernel, which the NVIDIA driver didn't do
- it could support more than 2 GPUs
- and it didn't really actually know which GPU was going to be the "main" one

And, on top of all that, gnome-shell expected the Mesa OpenGL stack to be used, so it only knew the right environment variables to do that, and only for one secondary GPU.

So we've extended switcheroo-control and its API to do all this.

(As a side note, commenters asked me about the KDE support, and how it would integrate, and it turns out that KDE's code just checks for the presence of a file in /sys, which is only present when vga_switcheroo is used. So I would encourage KDE to adopt the switcheroo-control D-Bus API for this)


All this will be available in Fedora 32, using GNOME 3.36 and switcheroo-control 2.0. We might backport this to Fedora 31 after it's been tested, and if there is enough interest.

13 Dec 2019 4:13pm GMT

10 Dec 2019


Daniel Vetter: Upstream Graphics: Too Little, Too Late

Unlike the tradition of my past few talks at Linux Plumbers or Kernel conferences, this time around in Lisboa I did not start out with a rant proposing to change everything. Instead I celebrated roughly 10 years of upstream graphics progress and finally achieving paradise. But that was all just prelude to a few bait-and-switches later fulfill expectations on what's broken this time around in upstream, totally, and what needs to be fixed and changed, maybe.

The LPC video recording is now released, slides are uploaded. If neither of that is to your taste, read below the break for the written summary.

Mission Accomplished

10 or so years ago upstream graphics was essentially a proof of concept for the promised to come. Kernel display modeset just landed, finally bringing a somewhat modern display driver userspace API to linux. And GEM, the graphics execution manager landed, bringing proper GPU memory management and multi client rendering. Realistically a lot needed to be done still, from rendering drivers for all the various SoC, to an atomic display API that can expose all the features, not just what was needed to light up a linux desktop back in the days. And lots of work to improve the codebase and make it much easier and quicker to write drivers.

There's obviously still a lot to do, but I think we've achieved that - for full details, check out my ELCE talk about everything great for upstream graphics.

Now despite all this justified celebrating, there is one sticking point still:


The trouble with team green from an open source perspective - for them it's a great boon - is that they own the GPU software stack in two crucial ways:

Together these create a huge software moat around the high margin hardware business. All an open stack would achieve is filling in that moat and inviting competition to eat the nice surplus. In other words, stupid to even attempt, vendor lock-in just pays too well.

Now of course the reverse engineered nouveau driver still exists. But if you have to pay for reverse engineering already, then you might as well go with someone else's hardware, since you're not going to get any of the CUDA/GL goodies.

And the business case for open source drivers indeed exists so much that even paying for reverse engineering a full stack is no problem. The result is a vibrant community of hardware vendors, customers, distros and consulting shops who pay the bills for all the open driver work that's being done. And in userspace even "upstream first" works - releases happen quickly and often enough, with sufficiently smooth merge process that having a vendor tree is simply not needed. Plus customer's willingness to upgrade if necessary, because it's usually a well-contained component to enable new hardware support.

In short without a solid business case behind open graphics drivers, they're just not going to happen, viz. NVIDIA.

Not Shipping Upstream

Unfortunately the business case for "upstream first" on the kernel side is completely broken. Not for open source, and not for any fundamental reasons, but simply because the kernel moves too slowly, is too big, drivers aren't well contained enough and therefore customer will not or even can not upgrade. For some hardware upstreaming early enough is possible, but graphics simply moves too fast: By the time the upstreamed driver is actually in shipping distros, it's already one hardware generation behind. And missing almost a year of tuning and performance improvements. Worse it's not just new hardware, but also GL and Vulkan versions that won't work on older kernels due to missing features, fragementing the ecosystem further.

This is entirely unlike the userspace side, where refactoring and code sharing in a cross-vendor shared upstream project actually pays off. Even in the short term.

There's a lot of approaches trying to paper over this rift with the linux kernel:

Also, there just isn't a single LTS kernel. Even upstream has multiple, plus every distro has their own flavour, plus customers love to grow their own variety trees too. Often they're not even coordinated on the same upstream release. Cheapest way to support this entire madness is to completely ignore upstream and just write your own subsystem. Or at least not use any of the helper libraries provided by kernel subsystems, completely defeating the supposed benefit of upstreaming code.

No matter the strategy, they all boil down to paying twice - if you want to upstream your code. And there's no added return for the doubled bill. In conclusion, upstream first needs a business case, like the open source graphics stack in general. And that business case is very much real, except for upstreaming, it's only real in userspace.

In the kernel, "upstream first" is a sham, at least for graphics drivers.

Thanks to Alex Deucher for reading and commenting on drafts of this text.

10 Dec 2019 12:00am GMT

03 Dec 2019


Daniel Vetter: ELCE Lyon: Everything Great About Upstream Graphics

At ELC Europe in Lyon I held a nice little presentation about the state of upstream graphics drivers, and how absolutely awesome it all is. Of course with a big focus on SoC and embedded drivers. Slides and the video recording

Key takeaways for the busy:

In other words, world domination is assured and progressing according to plan.

03 Dec 2019 12:00am GMT