Add your blog

If you are a KDE contributor you can have your blog on Planet KDE. Blog content should be mostly KDE themed, English language and not liable to offend. If you have a general blog you may want to set up a tag and subscribe the feed for that tag only to Planet KDE.

We also include feeds in different categories, currently Dot News, Project News feeds, User Blogs, french Language, Spanish Language, Polish Language and Portuguese Language KDE blogs. If you have a feed which falls into these categories (or another non-English language) please file a bug as below.

Planet KDE is kept in KDE's Git. If you have an account you can add or edit your own feed:

  • git clone kde:websites/planet-kde-org
  • Put your hackergotchi in website/hackergotchi/. A hackergotchi should be a photo of your face smaller than 80x80 pixels with a transparent background. svn add the file.
  • At the end of the planetkde/config file add your details (the name in brackets is your IRC nick):
  • feed 45m http://path.to/my/feed.rss define_name Konqi Konqueror (konqi) define_face hackergotchi/konqi.png define_facewidth 80 define_faceheight 80
  • git commit -a; git push

If you want to add a Twitter microblog to the Microblogging sidebar add define_microblog true and follow your name with [twitter]. Currently only Twitter is known to work, please contact Jonathan Riddell before adding non-Twitter microblogs to check it works.

If you do not have a Git account, file a bug in Bugzilla listing your name, Git account (if you have one), IRC nick (if you have one), RSS or Atom feed and what you do in KDE. Attach a photo of your face for hackergotchi.

Blog Classes

The default class for blogs is English language personal blogs. Other classes are:

  • Spanish language:
    define_feedclass spanish
  • Portugese language:
    define_feedclass portuguese
  • Chinese lanugage:
    define_feedclass chinese
  • Polish lanugae:
    define_feedclass polish
  • Italian lanugae:
    define_feedclass italian
  • French lanugae:
    define_feedclass french
  • KDE User blogs:
    define_feedclass user
  • KDE News feeds:
    define_feedclass news
  • KDE Dot News:
    define_feedclass dot

Planet KDE Guidelines

Planet KDE is one of the public faces of the KDE project and is read by millions of users and potential contributors. The content aggregated at Planet KDE is the opinions of its authors, but the sum of that content gives an impression of the project. Please keep in mind the following guidelines for your blog content and read the KDE Code of Conduct. The KDE project reserves the right to remove an inappropriate blog from the Planet. If that happens multiple times, the Community Working Group can be asked to consider what needs to happen to get your blog aggregated again.

If you are unsure or have queries about what is appropriate contact the KDE Community Working Group.

Blogs should be KDE themed

The majority of content in your blog should be about KDE and your work on KDE. Blog posts about personal subjects are also encouraged since Planet KDE is a chance to learn more about the developers behind KDE. However blog feeds should not be entirely personal, if in doubt set up a tag for Planet KDE and subscribe the feed from that tag so you can control what gets posted.

Posts should be constructive

Posts can be positive and promote KDE, they can be constructive and lay out issues which need to be addressed, but blog feeds should not contain useless, destructive and negative material. Constructive criticism is welcome and the occasional rant is understandable, but a feed where every post is critical and negative is unsuitable. This helps to keep KDE overall a happy project.

You must be a KDE contributor

Only have your blog on Planet KDE if you actively contribute to KDE, for example through code, user support, documentation etc.

It must be a personal blog, or in a blog class

Planet KDE is a collection of blogs from KDE contributors.

Do not inflame

KDE covers a wide variety of people and cultures. Profanities, prejudice, lewd comments and content likely to offend are to be avoided. Do not make personal attacks or attacks against other projects on your blog.

For further guidance on good practice see the KDE Code of Conduct.

People Aggregated

FeedRSSLast fetchedNext fetched after
Rajko Albrecht (alwin) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Guillaume DE BURE (gdebure) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Christophe Giboudeaux (krop) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stuart Dickson (stuartmd) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Anant Kamath (flak37) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Akshay Ratan (akshay_r) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Evgeniy Ivanov (powerfox/pfx) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Punit Mehta (punit9462) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Alex Fiestas (afiestas) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Łukasz Jaśkiewicz (ljaskiewicz) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Arjun Basu (ultimatrix) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Cristina Yenyxe González García XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Marc Mutz XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dan Leinir Turthra Jensen (leinir) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Petr Mrázek (petrm) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Philipp Knechtges (d1saster) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Roland Wolters (liquidat) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Michał Zając (Quintasan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dinesh (saidinesh5) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Diego Casella ([Po]lentino) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mojtaba Shahi Senobari (moji) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
A. L. Spehr (blauzahl) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Felix Lemke (HobbyBlobby) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Adrian Draghici (adrianb) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dario Freddi (drf__) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Francesco Nwokeka (nwoki) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aakriti Gupta (aakriti) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Abhinav Gangwar XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Adam Celarek (adamce) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Adam Rakowski (foo-script/efes) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aditya Bhatt (adityab) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andrea Diamantini (adjam) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ahmed AbouElhamayed (TheMonster) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aike Sommer XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dmitry Ivanov (vonami) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Keith Rusler (comawhite) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Anton Kreuzkamp (akreuzkamp) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Albert Vaca (albertvaka) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Alessandro Diaferia (alediaferia) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alejandro Wainzinger (xevix) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alexander Dymo (adymo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alexander Neundorf XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jeremias Epperlein XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alessandro Cosentino (cosenal) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alan Alvarez (clsk) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Lukas Tinkl XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jos Poortvliet XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sri Ramadoss M (amachu) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Amandeep Singh (amandeepsingh) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andras Mantia XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ana Guerrero (ana) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ander Pijoan (ander) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andi Clemens (aclemens) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andreas Demmer (ademmer) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andreas Schilling XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andreas Schneider (gladiac) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andrei Duma (AndreiDuma) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andrew Coles (coles) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andrius Štikonas XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Andre Moreira Magalhaes (andrunko) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aniket Anvit (packo) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Timothee Giet (Animtim) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Anmol Ahuja (DarthCodus) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Anne Wilson (annew) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Anne-Marie Mahfouf (annma) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Antonio Larrosa Jimenez (antlarr) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Antonis Tsiapaliokas (kokeroulis) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Anuj Pahuja (alasin) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Andreas Pakulat XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alexander Rieder (arieder) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Arindam Ghosh XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Arno Rehn (pumphaus) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Arthur Ribeiro (arthurribeiro) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aaron Seigo (aseigo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ashish Madeti (madeti) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Friedrich Kossebau (frinring) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aurelien Gateau XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alberto Villa (avilla) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Allen Winter XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andrew Lake (Jamboarder) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bart Coppens (BCoppens) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Behind KDE XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stephan Binner (Beineri) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Benjamin Port (ben2367) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Benjamin Kaiser (benkaiser) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Lim Yuen Hoe (moofang) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bhaskar Kandiyal XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Bastian Holst (bholst) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bhushan Shah (bshah) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Will Stephenson XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mohammed Nafees (binaryking) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Hamish Rodda (blackarrow) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jesper K. Pedersen (blackie) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jeff Mitchell (jefferai) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andres Betts (anditosan) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Sune Vuorela (svuorela) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Carlos Licea XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Agustín Benito Bethencourt XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Tatiana Gornak XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Mojtaba Shahi Senobari (moji) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mailson Menezes (mailson) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Michael Pyne (mpyne) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Wang Hoi (wkai) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Adriaan de Groot (adridg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
C. Boemann (boemann) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Lukas Appelhans XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jaroslav Řezník (jreznik) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Brad Hards (bradh) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Simon St James (SSJ_GZ) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stephan Platz (paalsteek) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Bharath M S (brat197) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Brijesh Patel (erione) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Michał Małek (mmalek) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bernd Buschinski (buscher) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Călin Cruceru (crucerucalin) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Calligra News XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Thorsten Zachmann XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Allan Sandfeld Jensen (carewolf) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Carsten Niehaus (carsten) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Remi Villatel XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Anselmo L. S. Melo (anselmolsm) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Detlev Casanova (Cazou) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Chakra OS XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Chandan Kumar (chandankumar) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Chani Armitage (Chani) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andrew Stromme (astromme) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alexandr Goncearenco XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mathieu Chouinard (chouimat) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Christian Loose XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aracele Torres (araceletorres) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Cies Breijs (cies) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Clarence Dang XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Claus Christensen (Claus_chr) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mauricio Piacentini (piacentini) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Igor Trindade Oliveira XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Daker (dakerfp) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andriy Rysin (rysin) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andrew Manson ( mansona aka real_ate ) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sven Assmann XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Colin Guthrie (coling) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bjørn Erik Nilsen (bnilsen) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Nick Shaforostoff (shaforostoff) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ryan Rix (rrix) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Fania Jöck (fjoe) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stephan Kulow (coolo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andreas Cord-Landwehr (CoLa) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sujith H (sujith_h) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Somsubhra Bairi (somsubhra) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Mirko Boehm XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Cristian Tibirna (Inorog) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Carlos Leonhard Woelz (cwoelz) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Cyril Oblikov (munknex) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Cyrille Berger XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David E. Narváez (dMaggot) XML 18:36, Tuesday, 22 July 18:36, Wednesday, 23 July
Rolf Eike Beer (Dakon) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dan Vratil (dvratil) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Daniel Molkentin (danimo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Danny Kukawka XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Daniel Nicoletti (dantti) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dario Andres Rodriguez (Dario_Andres) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dario Massarin XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alexis Menard (darktears) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David Edmundson (d_ed) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David Vignoni (davigno) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Florentina Musat (chrome) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Vijay Dhameliya (vijay13) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Sander Koning XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dennis Nienhüser (Earthwings) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Luca Beltrame (einar77) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Josef Spillner XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David Faure (dfaure) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Derek Kite (dkite) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dimitrios T. Tanis (diggy) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Gilles Caulier (cgilles) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sebastian Sauer (dipesh) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David Jarvie (djarvie) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dimitri Popov XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dmitry Kazakov (dmitryK) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dominik Seichter XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ariya Hidayat XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Klaas Freitag (dragotin) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Daniele E. Domenichelli (drdanz) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Simon at Facebook Open Academy XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Eduardo Robles Elvira (Edulix) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mihail Ivchenko (EgorMatirov) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Eike Hein (Sho) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Joon-Kyu Park XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Pau Garcia i Quiles (pgquiles) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Enrico Ros XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Adrien Facelina XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kevin Ottens (ervin) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
kunal ghosh (kunalghosh) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Constantin Berzan (exit) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Akarsh Simha (kstar) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andreas Ramm (psychobrain) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Fabrice Mous (fab) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Boudewijn Rempt (boud) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Fathi Boudra (fabo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Filipe Saraiva (filipesaraiva) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Christian Mollekopf (cmollekopf) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Flavio Castelli XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Nadeem Hasan XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Fabrizio Montesi (fmontesi) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Diane Trout (detrout) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Frank Osterfeld (fosterfeld) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Frederic Coiffier (fcoiffier) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Frederik Gladhorn (fregl) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Frederik Gladhorn (fregl) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rafael Fernández López (ereslibre) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Siddharth Sharma (siddvicious) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Frank Reininghaus XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Freoffice: KOffice based Open Mobile Office Suite XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Friedrich Pülz (fkpulz) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Harri Porten XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Frerich Raabe XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Koos Vriezen XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Felix Rohrbach (fxrh) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Gokmen Goksel (gokmen) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Gabriel Voicu (gvoicu) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Michael Gapczynski (MTGap) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bruno Coudoin (bdoin) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Ian Geiser (geiseri) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Gerhard Kulzer (gkulzer) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Giannis Konstantinidis (giannisk) XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Giorgos Tsiapaliokas (terietor) XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Gregor Iaskievitch XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
George Kiagiadakis (gkiagia) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Cédric Bellegarde (gnumdk) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Antonio Aloisio XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Inge Wallin (ingwa) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Cezar Mocan (CezarMocan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Debjit Mondal (debjit) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Simon A. Eugster (Granjow) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Paul Adams XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Johannes Bergmeier (joselb) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
George Goldberg (grundleborg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Denis Kuplyakov (dener.kup) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Denis Kuplyakov XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Denis Kuplyakov (denerkup) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Vedant Agarwala (vedu) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Siddharth Srivastava (akssps011) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Edward Toroshchin (hades) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Harald Hvaal (metellius) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Harshita Mistry XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Sebastian Pipping (sping) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Diego Iastrubni XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Helio Castro (heliocastro) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Henri Bergius (bergie) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Henrique Pinto XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Henry de Valence (hdevalence) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Harshit Jain (hjain) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Florian Graessle (holehan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Holger Foerster (foerster) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Loic Corbasson XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mathias Kraus (hias) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ozan Çağlayan (ozancaglayan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Fabio A. Locati (flocati) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Guillermo Amaral (gamaral) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bartosz Wadolowski XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Boudewijn Rempt's Krita blog XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Fredrik Höglund XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Gopalakrishna Bhat XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Petri Damstén XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sergey Kalinichev (klins) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Vladimir Prus XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Arnaud Dupuis (Arno[Slack]) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dani Gutiérrez Porset XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Weng Xuetian (csslayer) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Risto Saukonpaa (fri13) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Nicolas Lecureuil (nlecureuil) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Francesco Riosa (riosa) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Angelo Naselli (anaselli) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David Hubner (hubner) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Daniel Meltzer (hydrogen) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Robin Burchell (w00t) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andrea Scarpino (ilpianista) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ronny Yabar (ronnyml) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
William Viana (Liw-) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Niklas Laxström (Nikerabbit) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ivan Čukić (ivan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jean-Baptiste Mardelle (j-b-m) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
James Ots XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jan Grulich (grulja) XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Jan Muehlig (janushead) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jan Gerrit Marker (jangmarker) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jarle Akselsen XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jarosław Staniek (jstaniek) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jason Harris (LMCboy) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Javier Llorente XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jens Muller (jmueller) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jan Kundrát (jkt) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Joseph Simon (jsimon3) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jörg Ehrichs XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
John Ratke XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
John Layt XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Johannes Huber (johu) XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Jon Ander Peñalba (jonan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jonathan Thomas (JontheEchidna) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Joseph Wenninger XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
John-Paul Stanford (jp) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ashley Winters XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jonathan Riddell (riddell) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Juan Carlos Torres (jucato) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Julien Narboux (jnarboux) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jussi Schultink (jussi01) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Gaël de Chalendar (kleag) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Karan Luthra (luthrak) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Kashyap Puranik (kashthealien) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ekaterina Gerasimova (kittykat) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Adrian Lungu (lungu) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alexander Neundorf XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Christoph Cullmann (cullmann) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David Herberth (dav1d) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Diana Tiriplica (dianat) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dominik Haumann XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Emmanuel Bouthenot (bouthenot) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Erlend Hamberg XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Joseph Wenninger (jowenn) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kåre Särs (ksars) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marco Mentasti (mentasti) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Maximilian Löffler (max) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Pablo Martín Cobos (pcobos) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Shaheed Haque (shaheed) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Simon St James (ssj) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Svyatoslav Kuzmich XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Thomas Fjellstrom (fjellstrom) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
KDAB on Qt XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Laszlo Papp (lpapp) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kevin Funk (kfunk) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Shantanu Tushar (shantanu) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Tobias Koenig (tokoe) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
John Tapsell (JohnFlux) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Baltasar Ortega XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Hugo Pereira Da Costa XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
KMix - the KDE Multimedia Mixer XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Nuno Pinheiro (pinheiro) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Camila Ayres (camilasan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Wagner Reck (wiglot) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Wagner Reck (wiglot) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
KDE Sysadmins XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
KDE User Working Group XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jens Reuterberg (jensreuterberg) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Martin Bříza (mbriza) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
KDE Dot News XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David Miller XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kdenlive team XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Christoph Feck (kdepepo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Egon Willighagen XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Percy Camilo Triveño Aucahuasi XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Kurt Hindenburg XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ramon Zarazua (_killerfox_) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Valerio Pilo (Amroth) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jasem Mutlaq (KNRO) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jigar Raisinghani (jigar) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Nikhil Marathe (nsm) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Wade Olson XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Konrad Zemek XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kevin Krammer XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sahil Nagpal (sahil) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mohit Goyal (mohit) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Vladimir Kuznetsov XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rafał Kułaga (rkulaga) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kubuntu Wire XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Lamarque Souza (lamarque or lvsouza) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Johannes Wienke (languitar) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Luca Tringali (lucatringali) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Leo Franchi (lfranchi) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Lydia Pintscher (Nightrose) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Johan Thelin XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Gabriel Poesia (gpoesia) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Valorie Zimmerman (valorie) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sven Brauch (scummos) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alex Raymond (alexraymond) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aracele Torres (araceletorres) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Filipe Saraiva (filipesaraiva) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Luiz Romário (luizromario) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sandro Andrade (sandroandrade) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Tomaz Canabrava (tomaz) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Vinicius Azevedo (stdcout) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Vito Chiarella (vitochiarella) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Vitor Boschi (Klanticus) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alex Turbov (zaufi) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Luboš Luňák (llunak) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Frederik Schwarzer (icwiener) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Lucas Lira Gomes (MaskMaster) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Lucijan Busch (lucijan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Luís Gabriel Lima (luisgabriel) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Lukas Dzikaras (LukasLt2) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Lukas Tvrdy (lukast) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Tejas Dinkar (gja) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Piyush Verma XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andy Coder XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Mahfuz062 XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Adam Treat (manyoso) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marc Cramdal XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marcel Wiesweg (mwiesweg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marcus Hanwell (cryos) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marco Calignano (marcuzzo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mario Fux (unormal) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mark Gaiser (markg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Markus Slopianka (markuss) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marco Martin (notmart) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Martijn Klingens XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Martin Küttler (mkuettler) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Martin Klapetek (mck182) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Martin Konold (Mortimer) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Martin Gräßlin XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Martin Klapetek (mck182) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Daniel Jones XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Matthias Fuchs (mat69) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mateu Batle (mbatle) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Matt Williams XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mayank Madan (mayankmadan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Michael Bohlender (mbohlender) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kenneth Wimer (kwwii) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mehrdad Momeny (mtux) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Benjamin Meyer (icefox) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Pedro López-Cabanillas XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Pedro Lopez-Cabanillas XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Milian Wolff (milianw) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mirko Boehm (miroslav) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Magda Konkiewicz XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marijn Kruisselbrink XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mohamed Anwer (tootis) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Mohamed Malik XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ben Martin (monkeyiq) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jean-Nicolas Artaud (morice-net) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Artur Souza (MoRpHeUz) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mauro Iazzi (iazzi) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rupanjana Mitra (mrupanjana) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Miquel Sabaté (mssola) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Tony Murray (murrant) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Carsten Pfeiffer (gis) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Martyn Circus XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sven Burmeister (rabauke) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Maurizio Monge XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sayak Banerjee (sayakb) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ben Cooksley (bcooksley) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Srikanth Tiyyagura XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Myriam Schweingruber (Mamarok) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Nicolas Lécureuil (neoclust) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jason A. Donenfeld (zx2c4/jdonenfeld) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ingo Malchow (neverendingo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Krita News XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kubuntu News XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Patrick Spendrin (SaroEngels) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Abhijeet Nikam (nikam08) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Nikolaos Chatzidakis XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Niko Sams (nsams) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Nilesh Suthar (nil1511) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Juan Luis Baptiste (Maeztro) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jos van den Oever (vandenoever) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Guillaume Martres (smarter) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Oindrila Gupta (oini) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marta Rybczyńska XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dmitry Suzdalev (dimsuz) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Frank Karlitschek (karli) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aaron Reichman (areichman) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kai-Uwe Behrmann (oy) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Francisco Fernandes (chicao) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Paul Mendez (paul_m) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Paul Pacheco (paulpach) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marc Pegon (mpeg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
José Luis Vergara Toloza (Pentalis) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Peter Grasch XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Adam Pigg XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Pierre Ducroquet XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rob Scheepmaker (pinda) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Matthias Meßmer (pipesmoker) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kurt Pfeifle (pipitas) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ignat Semenov (isemenov) XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Rene Kuettner (rku) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Peter Penz XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Pranav Ravichandran (Pranav_rcmas) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Frans Englich (FransE) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Paulo Rômulo (promulo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Pierre Stirnweiss (PierreSt) XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Tomasz Olszak (tolszak) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Illya Kovalevskyy (tucnak) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Raphael Kubo da Costa (rakuco) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jeremy Whiting (jpwhiting) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Peter Simonsson (psn) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Randa Meetings XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Petr Vanek XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Mark Kretschmann (markey) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Reinhold Kainhofer XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alex Merry XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rex Dieter (rdieter) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Richard Moore (richmoore2) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Richard Johnson (nixternal) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Richard Dale XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rishab Arora (spacetime) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rivo Laks XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Robert Knight XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Robert Riemann (rriemann) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Robert Mathias Marmorstein (robertm) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Radoslaw Wicik (rockford_) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Roozbeh Shafiee XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Björn Ruberg (ruberg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jordi Polo (jordl) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ruediger Gad (rcg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ryan Bitanga XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rob Buis (rwlbuis) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Maksim Orlovich (SadEagle) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sascha Manns (saigkill) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Samikshan Bairagya (samxan) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Martin Sandsmark (sandsmark) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sanjiban Bairagya (fewcha) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Sascha Peilicke (saschpe) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Adenilson Cavalcanti (Savago) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Matteo Agostinelli (agostinelli) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Scott Wheeler (wheels) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sebastian Gottfried (sebasgo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sergio Martins (sergio) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Thomas Pfeiffer (colomar) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rohan Garg (shadeslayer) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Shaun Reich (sreich) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bernhard Beschow (shentey) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Shivaraman Aiyer (sraman) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Simon Edwards XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Peter Grasch XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sinny Kumari (ksinny) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Casian-Valentin Andrei (skelet) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Smit Patel (smitpatel) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sam Duff (Socceroos) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alvaro Soliverez (Hei_Ku) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Holger Freyther (zecke) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Christian Ehrlicher XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Germain Garand XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Shawn Starr (spstarr) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Denis Steckelmacher (steckdenis) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stefan Teleman XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stefan Derkits (HorusHorrendus) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stephanie Das Gupta (stephdg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stephen Kelly (steveire) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Matěj Laitl (strohel) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stuart Jarvis XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Claudio Desideri (snizzo) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sven Langkamp (slangkamp) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Swair Shah (swair) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Romain Pokrzywka (kromain) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Prakash Mohan (praksh) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sebastian Dörner XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alexandr Akulich XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Teo Mrnjavac (Teo`) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Bart Cerneels (Stecchino) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Hayri Bakici (thehayro) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Peter Schiffer (aceton) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Cornelius Schumacher XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Danny Allen (dannya) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jeffery MacEachern (jaem) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Matt Broadstone XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Andreas K. Hüttel (dilfridge) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Roopesh Chander XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Stefan Majewsky (majewsky) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Roney Gomes (roney) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Theo Chatzimichos (tampakrap) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Ahmed Ghonim XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Yuvraj Tomar (yuvrajtomar) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Kaushik Saurabh (roide) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jussi Kekkonen (Tm_T) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Gary Greene (greeneg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jan Hambrecht (jaham) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Jonathan Schmidt-Dominé (The User) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Luke Wolf (Luke_Wolf) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Harald Sitter (apachelogger) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Abhishek Patil (thezeroth) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Aleix Pol (apol) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Janet Theobroma (theobroma) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Thiago Macieira (thiago) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Philip Rodrigues (PhilRod) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Emmanuel Lepage Vallee (Elv13) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dion Moult (Moult) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Thomas McGuire XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Thomas Thym (ungethym) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Till Adam XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Duncan Mac-Vicar (duncanmv) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Tina Trillitzsch XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Raymond Wooninck (tittiatcoke) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Torgny Nyblom (tnyblom) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Torsten Rahn (tackat) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Agustin Benito Bethencourt XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Konstantinos Smanis (ksmanis) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Eva Brucherseifer XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Alexandra Leisse (troubalex) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sebastian Trueg XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sebastian Trueg (trueg) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Albert Astals Cid (TSDgeos) XML 19:06, Tuesday, 22 July 19:21, Tuesday, 22 July
Albert Astals Cid (TSDgeos) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Till Theato (ttill) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Davide Bettio (WindowsUninstall) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Björn Balazs XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Utku Aydın (utku) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Valentin Rusu (valir) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Vishesh Handa (vhanda) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Sebastian Kügler (sebas) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Vlad Codrea XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Vyacheslav Tokarev (vtokarev) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Pradeepto Bhattacharya XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Tirtha Chatterjee (wyuka) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Floris-Andrei Stoica-Marcu XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Laurent Montel (mlaurent) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Smit Shah XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Hans Chen (Mogger) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Nikolas Zimmermann (WildFox) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Dirk Mueller XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Daniel Kreuter (xardas008) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Matthias Klumpp (ximion) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Xavier Vello (xvello) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
YANG Qiao (yangqiao) XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Yash Shah (yashshah) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Philip Muškovac (yofel) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Zack Rusin (zrusin) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Rafał Miłecki (Zajec) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Zanshin Announcements XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
Marcin Zieminski XML 19:06, Tuesday, 22 July 19:51, Tuesday, 22 July
Waldo Bastian (zogje) XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July
David Nolden XML 19:06, Tuesday, 22 July 19:36, Tuesday, 22 July

Microblogging from KDE

July 22, 2014

Baltasar Ortega

FET, el generador de horarios libre

Sigo contando las maravillosas aplicaciones del Software Libre que tenemos a nuestra dispoción para hacernos la vida más fàcil. Ayer hablé de Orla, el generador de ídem profesional, hoy os hablo de FET,  el generador de horarios libre. Una de las tareas más odiosas para cualquier colegio, instituto, universidad o institución académica es la generación [&hellip

08:10, Tuesday, 22 July UTC

July 21, 2014

Jonathan Riddell (riddell)

Barcelona, such a beautiful horizon

KDE Project:

When life gives you a sunny beach to live on, make a mojito and go for a swim. Since KDE has an office that all KDE developer are welcome to use in Barcelona I decided to move to Barcelona until I get bored. So far there's an interesting language or two, hot weather to help my fragile head and water polo in the sky. Do drop by next time you're in town.


Plasma 5 Release Party Drinks


Also new poll for Plasma 5. What's your favourite feature?

19:22, Monday, 21 July UTC

Andreas Schneider (gladiac)

What is preloading?

by Jakub Hrozek and Andreas Schneider

The LD_PRELOAD trick!

Preloading is a feature of the dynamic linker (ld). It is a available on most Unix system and allows to load a user specified, shared library before all other shared libraries which are linked to an executable.

Library pre-loading is most commonly used when you need a custom version of a library function to be called. You might want to implement your own malloc(3) and free(3) functions that would perform a rudimentary leak checking or memory access control for example, or you might want to extend the I/O calls to dump data when reverse engineering a binary blob. In this case, the library to be preloaded would implement the functions you want to override with prelinking. Only functions of dynamically loaded libraries can be overridden. You’re not able to override a function the application implements by itself or links statically with.

The library to preload is defined by the environment variable LD_PRELOAD, such as LD_PRELOAD=libwurst.so. The symbols of the preloaded library are bound first, before other linked shared libraries.
Lets look into symbol binding in more details. If your application calls a function, then the linker looks if it is available in the application itself first. If the symbol is not found, the linker checks all preloaded libraries and only then all the libraries which have been linked to your application. The shared libraries are searched in the order which has been given during compilation and linking. You can find out the linking order by calling 'ldd /path/to/my/applicaton'. If you’re interested how the linker is searching for the symbols it needs or if you want do debug if the symbol of your preloaded library is used correctly, you can do that by enabling tracing in the linker.

A simple example would be 'LD_DEBUG=symbols ls'. You can find more details about debugging with the linker in the manpage: 'man ld.so'.

Example:

Your application uses the function open(2).

  • Your application doesn’t implement it.
  • LD_PRELOAD=libcwrap.so provides open(2).
  • The linked libc.so provides open(2).

=> The open(2) symbol from libcwrap.so gets bound!

The wrappers used for creating complex testing environments of the cwrap project use preloading to supply their own variants of several system or library calls suitable for unit testing of networked software or privilege separation. For example, one wrapper includes its version of most of the standard API used to communicate over sockets that routes the communication over local sockets.

flattr this!

10:38, Monday, 21 July UTC

Baltasar Ortega

Disponible la segunda beta de KDE 4.14 Aplicaciones y plataforma

Aunque muchos desarrolladores de KDE estén volcados en Plasma 5, otros muchos siguen trabajando para pulir la rama KDE 4.x. De esta forma, hace unos días que está disponible la segunda beta de KDE 4.14 Plasma 5 es el futuro, pero mientras tanto los usuarios utilizaremos KDE 4, y por tanto, es una gran noticia [&hellip

08:10, Monday, 21 July UTC

July 20, 2014

Chakra OS

Updated xorg, linux kernel, systemd and graphics driver groups of packages move into the stable repositories

This move includes updates or rebuilds of the packages that are related to xorg, the linux kernel and graphics drivers, as well as various other packages that were updated in the meantime and are made available now. In total, more than 400 packages are moving to stable.

Notable updates:

  • xorg-server 1.15.2
  • linux 3.15.5
  • systemd 214
  • mesa 10.2.4
  • calligra 2.8.5
  • qt 5.3.1
  • nvidia 337.25
  • catalyst 14.4
  • xf86-video-ati 7.4.0
  • digikam 4.1
  • libmtp now includes Jolla phone/Sailfish OS support.

    Please note that the mesa package was splitted in the following packages: mesa-libgl, opencl-mesa, ati-dri, intel-dri, nouveau-dri, svga-dri. libgl is now provided by the corresponding mesa-libgl, nvidia-libgl or catalyst-libgl package. Pacman should be able to resolve dependencies correctly once you perform the update, so that the appropriate libgl package is installed. The nvidia-bumblebee package has been replaced completely by nvidia. The bumblebee package now provides the corresponding nvidia-libgl. So nvidia users with optimus technology should install mesa-libgl, nvidia and bumblebee to use their hybrid card.

    It should be safe to answer yes to any replacement question by Pacman. If in doubt or if you face another issue - please ask or report it to the related forum thread.

    As always, make sure your mirror is fully synced before performing this update. To check, run mirror-check in Konsole, or use the Mirror-Check application found under the "Internet" category in the application launcher.

  • 21:28, Sunday, 20 July UTC

    Albert Astals Cid (TSDgeos)

    My way to develop with git in KDE repos

    From time to time there is the discussion of which workflow is better to develop with git, etc.

    I'm not going to try to convince anyone on which workflow to use, i'm just going to explain what i do and explain why i think it's useful (and even more in the multi-developer KDE environment).

    Let's picture the scenario we had a few days ago where there were lots of projects with three "live" branches, i.e. KDE/4.13, KDE/4.14 and master.

    What is my way to develop?
    * Bugfixes go to oldest "live" stable branch
    * Features go to oldest "live" non frozen branch
    * Branches are merged up

    So let's say that I develop a new feature to support a whole new document format to Okular. Since that is a new feature it would go to the "oldest live non frozen branch", that in this case was master since KDE/4.13 and KDE/4.14 where already feature frozen. So I commit it to master and then "Branches are merged up" which in this case means nothing since there's no branch "up" from master.

    Now let's say there's a crash bug when opening a file with three monitors. Since that is a bugfix, it'd go to the "oldest live stable branch", that in this case would be KDE/4.13. And then "Branches are merged up", so i would mean 4.13 into 4.14 and after that 4.14 into master. Ensuring that 4.14 and master also have the bugfix.

    I think that this is a very useful way of developing using git branches for a lot of reasons, but the biggest of them is that for a random person it is easy to know if a "branch high in the hiearchy" has all the bugfixes or not, he just have to go to KDE/4.14 and to "git merge origin/KDE/4.13", if no change is brought over, it means that for sure all the bugfixes and code that was in the 4.13 release will be in the 4.14 release, otherwise it is hard to know.

    So now that 4.13 is not going to be released anymore and 4.14 is a very young fork of master, i suggest that for every push you do to KDE/4.14 you go to the master branch and merge origin/KDE/4.14. This way you will have a master that is always fully merged with 4.14 and a third party person looking at your code (like the release manager) won't have to worry if it contains all the code or not.

    Happy hacking!

    And of course if you disagree with me, that's fine, not that i'm happy if my reasons did not convince you :)

    19:07, Sunday, 20 July UTC

    Denis Steckelmacher (steckdenis)

    QML binary modules

    Developing a new project is usually done in two phases: first, the most important features are added, and the feature list of the project quickly grows. Then, the features need to be polished, bugs fixed, and the overall usability of the project improves slowly. This second phase is often considered less interesting than the first one, but personally, I like to fix small annoyances. Fixing them makes the difference between an experimental project and one that can be reliably used by real users.

    During this GSoC, I try to work in small steps, implementing a big feature and then improving it, then implementing the next feature, and so on and so forth. This works quite well and allows me to keep a high motivation in what I’m doing: implementing a big feature is exciting but also exhausting, and improving existing features mainly consists of many small and easy commits that each have a noticeable effect. This week, I’ll talk about one major feature and several small corrections that I’ve implemented for the KDevelop QML/JS language plugin.

    The fixes

    Javascript has no syntax to express that “this function is a member of this class”. It is not directly possible to use something like function Class.method() as in C++. Developers are therefore obliged to declare class methods using function expressions:

    1
    Class.prototype.method = function (a, b) { return a + b; };
    

    The fact that method is assigned a function has an annoying implication for the QML/JS plugin: when method is declared, it is a simple variable, a member of Class that can contain anything (a function, an integer, etc). This means that method is declared as a Declaration, not a ClassFunctionDeclaration. This is not really a problem, but this prevents KDevelop from displaying the right icon alongside the methods:

    Functions not recognized properly

    The solution is quite simple: when a Declaration has a function type (when it is actually a function), then the QML/JS plugin ensures that a function icon is displayed. An icon may seem unimportant, but such a bug is very easy to fix (one or two lines), and not fixing it would have immensely annoyed all the users of the plugin.

    Functions recognized properly

    The other small feature that I’ve added is support for the __proto__ member of Javascript object instances. This member is used by several Javascript libraries and may also be used in a couple of QML files, so it is not going to be useless:

    __proto__ and object inheritance

    Other small bugs have been fixed. For instance, in a QML file, typing ANamespace. lists the components declared in the namespace, and nothing else (previously, there was some garbage, for instance the namespaces imported by ANamespace, or the built-in Javascript classes). Code-completion for import statements is now way more useful, but more on that later.

    Binary QML module imports

    Back to the QML world. The goal of my GSoC is to have the best possible QML support in KDevelop, because KDevelop is already the best-in-class IDE for C++ Qt development, and only lacks a good QML support. Javascript, on the other hand, already has many great IDEs and competing with them may be a bit out of the scope of a GSoC project.

    My strategy to have great QML support in KDevelop is to concentrate most of my efforts on this language, while still having a robust enough Javascript support so that Javascript snippets in QML files work as expected. For instance, Javascript built-in classes were added because many of them are used in QML files.

    So, this week was dedicated to importing QML binary modules and QML installed modules. First, some definitions:

    • QML installed module: QML module that is installed on the user’s system, for instance by a KDE package. Unfortunately, QML does not have system-wide include paths as Python and Ruby do, each QML application provides its own search path. Luckily, most QML applications either use only Qt-provided modules (and they have been supported for a long time now), or use KDE-provided ones. KDE installs all its modules in /usr/lib(64)/kde4/imports, so they are quite easy to locate. An installed module consists of a directory that contains .qml files and possibly .so files. The library files (that can be mixed with plain .qml files) contain additional native components, implemented in C++.
    • QML binary module: Library that contains QML components. The .so files I was talking about hereabove are QML binary modules.

    Supporting QML installed modules was quite easy: KDE’s KStandardDirs allows me to easily locate them, and the infrastructure for importing whole directories was already in place.

    Binary QML modules were a bit more difficult because they need to be dumped before the QML/JS plugin can use them. Dumping a binary module file is the action of running qmlplugindump on them, a tool provided by Qt that takes a .so file and writes a QML module file for it. The QML module file is a valid QML file and can be parsed by the plugin.

    With directory imports working, binary QML modules dumped and the dumps correctly parsed, the all the pieces fit together:

    A directory containing a .so file Uh oh! A .so file!

    Enter qmlplugindump Enter qmlplugindump (the file is cached for later reuse)

    Listing the components of a binary QML module Components exported by Plasma Core

    Members of binary QML components Members of a binary QML component

    Finally, as an added bonus, I’ve improved the code-completion for import statements. They now list only the imports that start with what the user has already typed, and they handle installed modules:

    Nicer code-completion of import statements

    Testing the QML/JS plugin on real QML files has shown that QML is very nicely handled, even if there are still some small glitches (for instance, several built-in QtQuick 1.0 types and properties are still missing). Sven Brauch will also send me a list of places where the code-completion could be more useful. In fact, don’t hesitate to tell me which features you would like to see implemented, I’ve still four weeks ahead of me!

    13:32, Sunday, 20 July UTC

    Laurent Montel (mlaurent)

    What’s new in KF5 porting script: convert-kdialog.pl

    When we want to remove kdelibs4support there is a class which is used by all kde application: KDialog.

    Each time that we wanted to create a dialog we used it.

    So it’s necessary to have a script to help us to port to QDialog now that KDialog is deprecated.

    When we port to QDialog, we need to add a QDialogButtonBox and mainwidget (if necessary)

    As in kdepim there is a lot of KDialog I created a script for it.

    It was not very easy to create it, but this script help me to port some kdialog.

    But unlike others scripts that we can launch them on source file and just compile and adapt if necessary, which this script we need to look at diff to be sure that all is ok.

    But I hope that it will help us during kf5 porting.

    I continue to fix this script and add new porting code when I found it in kdepim.

    But you can send me mail when you see a bug.

    11:16, Sunday, 20 July UTC

    Baltasar Ortega

    Orla, aplicación libre para crear orlas

    Una de las cosas que me gustan del Software Libre es la gran variedad de aplicaciones que te puedes encontrar, y todas ellas con la seguridad que harán su fucnión, sin incluir limitaciones o publicidad. Es es caso de Orla, un aplicación para hacer orlas realmente asombrosa. Este año me encargué de realizar la orla [&hellip

    08:10, Sunday, 20 July UTC

    Aaron Seigo (aseigo)

    bringing green processes to Qt

    I've begun prototyping a system for green processes in Qt applications. I'm not yet at the code-writing stage, but the API is definitely taking shape and a design is starting to emerge. It's a spare-time project for me, so is progressing at a reasonable but not extremely fast pace.

    I've gotten to the point where early-stage feedback from people who are interested in such a framework would be very valuable in polishing the design a bit more before laying down code. As such, I'm looking for 4-6 people to collaborate with at this early stage.

    If you are interested in using green processes in your Qt application, or are simply interested in new application development patterns for Qt, and you have 20-30 minutes per week to look at API drafts and provide feedback and and/or add to the ideas that are coming together, please email me (aseigo at kde.org).

    06:01, Sunday, 20 July UTC

    July 19, 2014

    Antonis Tsiapaliokas (kokeroulis)

    Plasma Active on QT5/KF5

    Hello, this is my fourth report for my GSoC. This week I have ported the Panel for Plasma Active. The UI of the Active Panel has not changed much. As you can notice some of the Plasmoids are missing because they have not been ported yet (like the Homescreen Plasmoid), but there is no missing functionality from the Panel. Also the notification icons are  invisible while they are inactive, as this is the expected behavior.

    active panel without notification

     

    active panel notifications

     

    You can find us on #plasma or irc.freenode.net


    15:52, Saturday, 19 July UTC

    July 18, 2014

    Emmanuel Lepage Vallee (Elv13)

    SFLPhone-KDE 1.4.0 released!

    Savoir-faire Linux is proud to announce the immediate availability of SFLPhone 1.4.0. This release finally enables video by default. We have refactored the video implementation to be much more robust against a variety of conditions and made the configuration more flexible. It is also now possible to stream a variety of file types and even share your screen. Other interesting features include support for the JACK audio system used by audio industry professionals and hobbyists. Thanks to improvements in audio buffering, latency and resampling, audio quality is noticeably better. The KDE client now has much better Akonadi support. It can now act as a KAddressBook replacement for most phone related scenarios. There will probably be one final KDE4 release before officially making the switch to KF5. The SFLPhone-KDE logic backend, libqtsflphone, has been compatible with Qt5 for over a year, some of the UI dialogs have yet to be ported. As for SFLPhone in general, we plan to merge work that has been done in parallel for a while now to make the daemon more modular, easier to build, more secure and more portable to other operating systems.

    Please update or comment on this ticket to add user noticeable changes and new features

    Common features

    • Jack support
    • Video support by default
    • Ability to share screen
    • Ability to stream videos, images and text files
    • Support GnuTLS as an alternative to OpenSSL
    • Persistent camera configuration (per device)
    • Switch video sources during a call
    • Enable or disable video per account
    • Packet loss concealment
    • RTCP support
    • Builds with clang

    libqtsflphone

    • Pluggable history storage
    • Improved pluggable storage backends
    • Datasource extensions support

    KDE client

    • Now a fully featured contact manager
      • Add, edit and manage contact sources
      • Delete contacts from the interface
      • Attach contact sources to auto completion or presence tracker
    • Basic video effects like rotate or enforce aspect ratio
    • Video full screen mode

    2 3 1

    Stats

    KDE client:   203 files changed, 10979 insertions, 3933 deletions, 102 commits, 36 issues closed, 19 bugs closed
    Daemon: 256 files changed, 14448 insertions, 9781 deletions, 628 commits, 543 issues closed, 214 bugs closed

     

    Get SFLPhone-KDE

    Kubuntu packages are available at: https://launchpad.net/~savoirfairelinux/+archive/ubuntu/ppa

    The source get be obtained from  git://anongit.kde.org/sflphone-kde or from http://sflphone.org .


    22:24, Friday, 18 July UTC

    KDE Dot News

    KDE Ships July Updates and Second Beta of Applications and Platform 4.14

    This week KDE released updates for its Applications and Development Platform, the third and last in a series of monthly stabilization updates to the 4.13 series. This release also includes an updated Plasma Workspaces 4.11.11. Both releases contain only bugfixes and translation updates, providing a safe and pleasant update for everyone. Beneath these releases KDE announced the second beta of the 4.14 versions of Applications and Development Platform. With API, dependency and feature freezes in place, the focus is now on fixing bugs and further polishing. Your assistance is requested!

    On the language front Farsi (Persian) reached the essential criteria and thus will be again part of this release. Kopete has some important fixes: formatting messages when OTR plugin is loaded but not used for encrypting messages in the chat window and generating HTML messages with the Jabber protocol.

    More than 40 recorded bugfixes include improvements to Personal Information Management suite Kontact, Umbrello UML Modeller, the desktop search functionality, web browser Konqueror and the file manager Dolphin. A more complete list of changes can be found in KDE's issue tracker.

    To find out more about the 4.13 versions of KDE Applications and Development Platform, please refer to the 4.13 release notes.

    The second beta release needs a thorough testing in order to improve quality and user experience. A variety of user styles is essential to maintaining high KDE quality, because developers cannot possibly test every configuration. User assistance helps find bugs early so they can be squashed before the final release. Please join the 4.14 team's release effort by installing the beta and reporting any bugs. The official announcement has information about how to install the betas.

    Dot Categories:

    20:00, Friday, 18 July UTC

    Krita News

    After the Kickstarter...

    Running a kickstarter is very much like, well, running! Running for thirty solid days. So the weekend after the Kickstarter ended, all of us slacked off a bit, and instead of coding we did some coding! Within a week or so, the Kickstarter should be finalized, the money in our bank account and we can start opening up the surveys for the backers! We didn't reach the stretch goal that would let Sven work full-time on Krita, so the feature survey will be "Choose and Rank 12 out of 24". Dmitry is already looking into 3D transformation stuff, so let's hope that feature won't get voted out! You could also still donate to Krita, either directly, or through the rewards-enabled paypal button:

    Reward Selection

    Yiynova Europe noticed the kickstarter and contacted us -- they loaned us two Yiynova tablet monitors, the 19" MSP19u and the the 21,5" MVP22u to test Krita with. We already had a bug report about multi-monitor setup with other tablets than a Cintiq, so this was very welcome! And today there's a new experimental build that works just fine!

    This build also contains Dmitry's new memory pool code. Krita should now be a bit faster and use less memory while painting, and especially, be better behaved with longer painting sessions. Please do test! As developers, long painting sessions isn't something we can regularly indulge in!

    As for OSX, I cleaned up a lot of warnings and (probably...) fixed the available memory detection, so Krita can use more than 1GB before it starts to swap. Also, all brush engines are now available! I'm still in two minds about the OSX port, though. I will need at least a month to make a nice beta, at least two months more to get it ready for end-users... This is all coding, and maybe build two, three more dependencies.

    In other news, Scott Petrovic has been really busy working on a new look for krita.org. This week, together with KDE's wonderful sysadmin team, a development version of the site went life. Read all about it on the Krita forum! There's even a link there to the development version of the new website!

    13:04, Friday, 18 July UTC

    Aniket Anvit (packo)

    Geogebra Tool Support in Kig

    Hello !!  In this post I will be describing my latest progress in the Geogebra Filter that we are creating for Kig. After a lot of hiccups, it finally seems that we have found a proper implementation which smartly handles both Geogebra worksheets and Geogebra tools. Although the planning had been done a long time […]

    13:00, Friday, 18 July UTC

    Laurent Montel (mlaurent)

    New scripts to help to port to KF5

    As I continue to work to kdepim* KF5, I need more scripts.

    As kdepim has a lot of code to port, I don’t want to make all by hands.

    So what’s new ?

    • convert-ktextbrowser.pl, it allows to convert KTextBrowser to QTextBrowser (which warning about not supported feature “The only difference is QTextBrowser does not support “whatsthis:” urls.”))
    • convert-kvbox.pl, this scripts helps you to convert K/VBox to QWidget + QH/VBoxLayout
    • convert-kshortcut.pl, now we use QKeySequence

    I fixed some scripts too as adapt_cmakelists_file.pl (add more convert cmake variable name), convert-kstandarddirs.pl (Add more convert code) etc.

    A script that I didn’t write “resolve_kuit.py” is very useful to fix i18n. Just launch it as “resolve_kuit.py -x .” in directory

    I started to look at script to port KDialog to QDialog but not really easy, not sure that all code will port directly.

    I am happy because I saw that several projects used my scripts :) (As Konversation, kstars and I think others :) )

    I will continue to create script when I need to convert class.

    If you have code to port you can send me a testcase and I will try to create script.

    I think it’s very important for kde to have more script to help to port to kf5

    07:44, Friday, 18 July UTC

    Martin Gräßlin

    KDecoration2 – The road ahead

    Yesterday I blogged about why Breeze is not the default window decoration in KWin 5.0. The blog post touched a little bit the problems with our decoration API. In short: it’s QWidget based and that doesn’t fit our needs any more. It uses a QWidget as an X11 window. At the same time KWin intercepts the rendering and also input handling, redirects it and forwards it. So why use a QWidget at all? Also using a QWidget is quite a memory waste in the Qt5 world. The QWindow behind the QWidget uses a QXcbShmImage with the same size as the window. As explained in yesterdays blog post the window has the size of the managed window plus the decoration. So for a maximized window we hold an image of the size of the complete window while we just need the titlebar strip. We can do better :-)

    Our decoration API is also showing it’s age. It’s cumbersome to use, too difficult to use. In fact there is a KDecoration and a KCommonDecoration – the latter trying to make KDecoration easier to use by for example providing buttons. The API got extended several times to support more features which are all optional. The API is difficult to use from KWin side as it’s not stateful and quite often needs to call into the decoration API calling virtual methods the decoration API provider needs to implement. Last but not least it’s difficult to test new decorations as we don’t have a dedicated viewer application to test the interaction and painting. You have to kind of use KWin as the development host. Not the best solution.

    The idea for a new API had been in the room for a long time. I opened a bug report for it more than two years ago. Last week I finally started with the implementation and tackled three things at the same time:

    • New decoration API
    • Viewer application
    • Breeze decoration

    In the current state it looks like this:

    The outer decoration is the existing Aurorae theme. It looks already quite good, but there is of course still lots of work to do. The API is not yet feature complete, it needs implementation in KWin and Breeze needs a pixel perfectionist to get it right (which I am not). And that’s where you can help! Thanks to our sysadmins we have a new todo board and I requested a project for KDecoration2 and prefilled it with very easy tasks. This is a wonderful opportunity to work on easy and new code and helping both KWin and the Visual Design Group achieving an important new step. Without your help we won’t have this in 5.1 and it would be so important for both KWin and the overall design of the Plasma desktop. So please grab the code and start hacking. Grabbing the code, where? The new decoration API can be found in the git repository kde:kdecoration, the viewer application in git repository kde:kdecoration-viewer and the new Breeze window decoration in git repository kde:breeze in branch “graesslin/kdecoration2″.

    So what makes KDecoration2 better? Obviously it’s no longer QWidget or QWindow based. Instead it’s a pure QObject based API. It provides a paint method a plugin needs to implement which gets a QPainter passed into. This allows KWin to control the rendering and to render to the best suited backend for the current compositor (e.g. just a QImage or a Shm shared pixmap). Also the input handling will be controlled from the backend side by sending appropriate events to the decoration. The API takes care of all of the handling – activating the buttons forwarding title bar presses, etc. This alone makes the API hopefully much easier to use from plugin side. It also provides the base implementation for all the required buttons, so that the decoration only needs to provide the painting of the buttons. Simplified the API looks like the following:

    There’s an additional singleton DecorationSettings which provides common settings for the decoration. Also there’s an additional second private API which must be implemented by a backend. This will allow us to use KDecoration2 in multiple places. I want to see it uses in KWin, but in future I’d also like to provide our decorations for QtWayland. For this I hope that KDecoration plugins can also be a solution.

    07:17, Friday, 18 July UTC

    Mohamed Anwer (tootis)

    Changing Font and Icon Size from settings

    Now you can change font and icon size, from digiKam configuration, and changes will be shown immediatly.

    Take a look to the screenshot:

    multi


    03:32, Friday, 18 July UTC

    July 17, 2014

    Eike Hein (Sho)

    Konversation goes Frameworks 5

    KDE Project:

    The Konversation team has started porting the application to Frameworks 5 earlier this month, getting things to build and run on top of KDE's next-generation libraries.

    Here's all the info you should need to help out.

    At this stage of porting there are still hundreds of low-hanging fruit (porting away from deprecated APIs, porting to slightly changed APIs, etc.) that don't require extensive knowledge of either the codebase or even the problem space to tackle, so if you were looking to get your feet wet on Frameworks 5 or KDE development in general, consider chipping in!

    In fact, one of the major risks associated with any porting is lowering the quality of the application by reducing functionality or just plain breaking things, and of course we'd like to avoid both. So you can even help out by just running the port and logging the things that don't work on KDE's bug tracker (handy link is on the wiki) as tasks for others to jump on.

    14:37, Thursday, 17 July UTC

    Jonathan Riddell (riddell)

    Plasma 5.1 Kickoff

    KDE Project:

    We had a fun two hour meeting in #plasma yesterday to decide on the tasks for the next release. It's due out in October and there's plenty of missing features that need to be added before Plasma 5 is ready for the non-geek.

    Previously Plasma has used wiki lists to manage the Todo list but this is very old-school and clunky to manage. Luckily Ben the KDE Sysadmin has just finished saving some children from a burning building before he swooped in and set up
    todo.kde.org just in time for us to add some 30 Todo items.

    There will also be a meeting next week to discuss Wayland action items, come along if you want to help Martin shape the future.


    Plasma 5.1 Todo list

    Meanwhile former tabloid rag turned bastian of quality journalism OMGUbuntu said
    KDE Plasma 5 Arrives with Fresh New Look, True Convergence
    . More nice comments: "I tested the neon iso yesterday and it looks absolutely stunning!".

    I'd like to thank Scarlett for putting in loads of hours perfecting the KF5 and Plasma 5 packages and now Rohan is tidying KF5 up and uploading to the Ubuntu archive.

    14:08, Thursday, 17 July UTC

    Martin Gräßlin

    Why Breeze is not the default window decoration

    This week we finally released Plasma 5.0 including KWin 5.0 and also a new design called “Breeze”. While Breeze provides a window decoration, KWin still defaults to Oxygen and that’s for a good reason. As I had been asked quite often why that’s the case and on the other side got lots of feedback from disappointed users using the Breeze decoration I think it’s needed to explain in a blog post the technical background.

    I start with explaining how our window decorations work in KWin 4. KWin is a so-called re-parenting window manager. This means the managed X11 window is put into another X11 window providing the windwow frame. In KWin we use a QWidget for the window frame. Thus we are also restricted to what QWidget provides us. Our window decoration API predates the Compositing support and this adds quite some restrictions to it. Our solution is to intercept all paint events on the decoration’s QWidget and suppress it, trigger a repaint of the compositor and in the rendering pass ensure the decoration widget repaints to a temp image which then gets copied into a texture to be rendered by the Compositor.

    The Breeze window decoration theme is based on the Aurorae theme engine. As I’m the main author of Aurorae I can bash it in this blog post without feeling sorry about it :-) Aurorae was designed to make it very easy to style a decoration and to make use of the new added translucency features. Being a solution which could be used as a default decoration was never the aim. The idea was to allow users who want the customizability this feature while the majority of the users could use the faster native themes. Aurorae was never fast and will never be fast. Over the time the performance improved, especially thanks to using QML. But also in that case it was only usable with the raster graphics system in KWin 4 times.

    Now in KWin 5 the usage of QML is the main problem which makes it difficult to use Aurorae at all. QtQuick uses the SceneGraph and uses QWindow instead of QWidget. That’s quite a bummer for our QWidget based API. We adjusted the internal usage to support QWindow based decorations but that was quite a tough road as there are differences in the behavior of the windows. As it’s no longer QWidget based our interception of paint events is broken and we needed a new solution for it. And this solution is even more ugly than the old one because QtQuick is nowadays rendering through OpenGL. Due to limitations in Qt’s OpenGL implementation (might be addressed in Qt 5.4) we cannot share with the OpenGL context used by QtQuick. But we need to get the content from the Aurorae window into our OpenGL texture. The solution is to render to a QOpenGLFrameBufferObject and read it back into a QImage just to upload back to a texture. Not only is this a huge overhead to copy the content from GPU to RAM and back to GPU it’s also wasting lots of memory. The frame buffer object has the same size as the window and that’s way larger than the actual window decoration. In case of a maximized window it’s not just the title bar area but the complete window. And that overhead exists for each window.

    That alone might render Aurorae completely unusable. I’m currently using the Breeze theme and KWin needs more than 200 MB of RAM – not really acceptable. But the situation is even worse. With QWindow we don’t get to know which areas got updated. So whenever e.g. a button gets updated we have to repaint the complete window including the complete copy of the decoration content. Which especially in animation situations is quite a problem.

    The last problem to mention is OpenGL. QtQuick is supposed to use a dedicated rendering thread, but Qt disables that for all Mesa drivers and instead uses the main thread. But that’s also the thread KWin’s compositing OpenGL context lives in. That’s quite a performance problem and also introduces lots of instability problems (might also be addressed in Qt 5.4).

    Overall the situation is so bad that colleagues recommended to disable Aurorae overall in the 5.0 release. As we released with it you can see that I disagree in that point. There is hardware where it’s working quite fine – on my system it doesn’t matter that it uses lots of RAM and if your driver supports Qt’s threaded rendering the performance problems are mostly gone and also all stability problems are gone. So the situation hasn’t changed: for users who want to customize there is a solution but it might introduce a loss of performance. But as a default theme like Breeze it’s clearly not an option.

    So what’s the road forward? I started implementing a new decoration API removing the restriction of the decoration being QWidget based and at the same time I started implementing the Breeze decoration with this new API. I hope that we can introduce this in KWin 5.1. I’ll write another blog post about it soon and also prepare lots of small and easy tasks for new developers to join in this effort and help making a kick-ass decoration solution for 5.1

    13:35, Thursday, 17 July UTC

    Mohamed Anwer (tootis)

    The Great Merging day

    I’ve just merged the dev branch to the master, and soon you will see the new features inside digiKam 4.2.0

    We are waiting for your opinion, and you are welcome to suggest any changes :)

    snap10


    13:27, Thursday, 17 July UTC

    Jos Poortvliet

    ownCloud 7 awesomeness

    One of the things I love from the Free and Open Source software world is that doing things in the open simply leads to better solutions. Resources are often constrained, polish might be lacking, but frequently from the seemingly chaotic processes emerges brilliance.

    The upcoming ownCloud 7 has one of those things: server to server sharing. You see, for a long time, I and others have been asking the ownCloud desktop client developers for a feature: support for syncing multiple ownCloud installations. That way, files from our corporate ownCloud installation (of course we dogfood here at ownCloud Inc.!) and my private ownCloud could both be synced to my desktop and laptop. Unfortunately, while it has been on the todo for a while, it just kept pushed down by more urgent feature work.

    While you could get it to work already by running multiple clients and playing with the config file locations, it seemed a bit brittle to me and I just accepted this feature wasn't there yet.

    Only today, during my bike ride to c-base, did I realize that ownCloud 7 actually introduces this feature. And I even wrote a sneak preview about it! It is the server to server sharing that solves this issue.

    What is Server to Server sharing?

    Let's step back. What is the major thing that 'private' clouds don't have which public clouds do? Other than the NSA snooping, that is...

    Well, you're all alone, of course. If you want to share a file with another student from uni, you have to create an account or use a shared link. He/she will then have to visit your ownCloud to be able to work with you. It gets quickly messy with a lot of files.


    This is where Server to Server sharing comes in. You can simply share a link and your collaboration partner can add this, either a folder or a single file, to his or her own ownCloud. They can put the file wherever they want in their folder structure (we've gotten rid of that rigid shared folder concept in ownCloud 7!) and work with you like the file was on their own instance.

    That means they can also locally sync the file with their sync client by just putting it in a folder that is synced!

    Boom. You don't have to create and manage multiple server accounts in your sync client, creating a folder on your system for each server you work with. No, you just add the share to your ownCloud and put the files wherever you want - in one folder, or grouped by subject - whatever works best.

    Now tell me that isn't awesome ;-)

    There's more

    Of course, this is just a first step to bringing ownCloud servers closer to each other. Our goal is full 'federation' of data: transparent sharing between servers so they can act as one cloud, protecting privacy while giving you the convenience of sharing, collaborating and communicating with friends, family, collegues and more. Once you connected to another ownCloud, you should be able to share files with the users on that server seemlessly - and other data, like contacts or music! You should be notified when things are shared (a news feed!) and be able to comment and chat. This however still needs work. If you're interested in helping to make this happen, consider joining us at the ownCloud Contributor Conference from August 26-31 in Berlin, Germany!


    * Note that you can have kind-of server-to-server sharing with ownCloud 6 by manually mounting folders from other servers via webdav. This of course comes with various limitations (you do have to give out webdav credentials, to name one) so the new server to server sharing is a massive improvement...

    11:47, Thursday, 17 July UTC

    Roland Wolters (liquidat)

    [Howto] Upgrading CentOS 6 to CentOS 7

    CentOS LogoCentOS 7 is out. With systemd, Docker integration and many more fixes and new features I wanted to see if the new remote upgrade possibility already works. I’ve already posted the procedure to Vexxhost’s Blog and wanted to share it here as well. But beware: don’t try this on production servers!

    CentOS 7 was released only few weeks after Red Hat Enterprise Linux 7, including the same exciting features RHEL ships. Besides the long awaited Systemd and the right now much discussed Docker this release also features the possibility to perform upgrades from version 6 to version 7 automatically without the need of the installation images. And although the upgrade still requires a reboot and thus is not a live upgrade as such, it comes in very handy for servers which can only be reached remotely.

    Red Hat has already released and documented the necessary tools. The CentOS team didn’t have time yet to import, test and rebuild the tools but the developers are already on it – and they provide untested binaries.

    Please, note: Since the packages are not tested yet you should not, by any means, try these on anything else than on spare test machines you can easily re-deploy and which do not have any valuable data. Do not try this on your production machines!

    But if you want to get a first idea of how the tools do basically work, I recommend to set up a simple virtual machine with a fully updated CentOS 6 and as few packages as possible. Next, install the rpms from the CentOS repository mentioned above. Among these is the Preupgrade Assistant, which can be run on a system with no harm: preupg just analyses the system and gives hints what to look out for during an upgrade without performing any tasks. Since I only tested with systems with hardly any services installed I got no real results from preupg. Even a test run on a system with more services installed brought the same output (only showing some examples of the dozens and dozens of lines):

    $ sudo preupg
    Preupg tool doesn't do the actual upgrade.
    Please ensure you have backed up your system and/or data in the event of a failed upgrade
     that would require a full re-install of the system from installation media.
    Do you want to continue? y/n
    y
    Gathering logs used by preupgrade assistant:
    All installed packages : 01/10 ...finished (time 00:00s)
    All changed files      : 02/10 ...finished (time 00:48s)
    Changed config files   : 03/10 ...finished (time 00:00s)
    All users              : 04/10 ...finished (time 00:00s)
    ...
    042/100 ...done    (samba shared directories selinux)
    043/100 ...done    (CUPS Browsing/BrowsePoll configuration)
    044/100 ...done    (CVS Package Split)
    ...
    |samba shared directories selinux          |notapplicable  |
    |CUPS Browsing/BrowsePoll configuration    |notapplicable  |
    |CVS Package Split                         |notapplicable  |
    ...
    

    As mentioned above the Preupgrade Assistant only helps evaluating what problems might come up during the upgrade – the real step must be done with the tool redhat-upgrade-tool-cli. For that to work the CentOS 7 key must be imported first:

    $ sudo rpm --import http://isoredirect.centos.org/centos/7/os/x86_64/RPM-GPG-KEY-CentOS-7
    

    Afterwards, the actual upgrade tool can be called. As options it takes the future distribution version and a URL to pull the data from. Additionally I had to add the option --force since the tool complained that preupg was not run previously – although it was. As soon as the upgrade tool is called, it starts downloading all necessary information, packages and images, and afterwards asks for a reboot – the reboot does not happen automatically.

    $ sudo /usr/bin/redhat-upgrade-tool-cli --force --network 7 --instrepo=http://mirror.centos.org/centos/7/os/x86_64
    setting up repos...
    .treeinfo                                                                                                                                            | 1.1 kB     00:00     
    getting boot images...
    

    After the reboot the machine updates itself with the help of the downloaded packages. Note that this phase does take some time, depending on the speed of the machine, expect minutes, not seconds. However, if everything turns out right, the next login will be into a CentOS 7 machine:

    $ cat /etc/os-release 
    NAME="CentOS Linux"
    VERSION="7 (Core)"
    ID="centos"
    ID_LIKE="rhel fedora"
    VERSION_ID="7"
    PRETTY_NAME="CentOS Linux 7 (Core)"
    ANSI_COLOR="0;31"
    CPE_NAME="cpe:/o:centos:centos:7"
    HOME_URL="https://www.centos.org/"
    BUG_REPORT_URL="https://bugs.centos.org/"
    

    Concluding it can be said that the upgrade tool worked quite nicely. While it is not comparable to a real live upgrade if offers a decent way to upgrade remote servers. I’ve tested it with a clean VM and also with a bare metal, remote server, and it worked surprisingly good. The analysis tool unfortunately did not perform how I expected it to work, but that might be due to the untested state or I was not using it properly. I’m looking forward what how that develops and improves over time.

    But, again, and as mentioned before – don’t try this on your own prod servers.


    Filed under: Fedora, HowTo, Linux, RPM, Shell, Technology, Virtualization

    09:40, Thursday, 17 July UTC

    July 16, 2014

    Frank Reininghaus

    Junior Jobs and other recent improvements in Dolphin

    Have you ever wondered how you could get involved with the developmeDolphin-July-2014nt of a KDE application or library? Did the hundreds of thousands of lines of code look too intimidating? Was it too hard to find a good place to start?

    If you answered any of these questions with “yes”, do not despair! Many KDE projects have marked some bugs as “Junior Jobs”, which means that these are probably easy to fix, and are perfect for making the first step to becoming a regular contributor (most KDE developers have started with small patches!). In fact, some of the improvements which I will present below were Junior Jobs that have been implemented by new contributors, and I am very happy about that. Thank you very much and welcome in the KDE community!

    If you want to join us, look at the list of all Junior Jobs at bugs.kde.org, or go to the advanced bug search, select your favorite application, and enter “junior-jobs” in the “keyword” field (note that Dolphin does currently not have many open Junior Jobs because quite a few have been taken recently).

    If you are a regular contributor to a KDE application already, and you see a bug that is easy to fix and that would be good for new contributors, please consider adding the “junior-jobs” keyword to the bug report!

    Here is the summary of all recent improvements in Dolphin:

    Dolphin 4.13.3

    • Bug 293863: Fix a crash in KUrlNavigator, the class that provides the location bar in Dolphin and the file dialog. Another example of the trouble that can be caused by nested event loops – after running one, you cannot even be sure that the ‘this’ pointer still points to a valid object. For some more details, see the review request and two posts that were pointed out by Dominik Haumann. See git commit f1196e8e, review request 118858.

    Dolphin 4.13.2

    • Bug 334355: Make it possible to resize the widget in the “Additional Information” dialog. The size that the widget had previously was not sufficient to show all the additional information that Baloo provides. See git commit f3f84504, review request 118088.
    • Bug 299328: Highlight the selection toggles (the little ‘+’ signs which make it easier to select and deselect items if the corresponding option is enabled in the settings dialog) if they are hovered with the mouse. See git commit 34a78607, review request 118320.
    • Bug 334696: Prevent that the items in the view move to the right in some situations after refreshing the view contents (e.g., by pressing F5). See git commit 098294f4, review request 118319.
    • Bug 332102: When collapsing an expanded folder in Details View, make sure that all direct and indirect children are removed. Before this commit, such children could sometimes appear after collapsing their parent folder while navigating folders on slow network mounts. The resulting inconsistencies in the internal data structures could then cause a crash. See git commit e0aec6f9.
    • A different problem, which was also mentioned in bug 332102: Tell KDirLister (the class that Dolphin and other KDE applications use to list the contents of local and remote folders) to stop listing all children of a folder after it has been collapsed in Details View. See git commit 4642301e, review request 118055.
    • Bug 334999: Do not replace the translated text in the Places Panel by US English if one of multiple Dolphin windows is closed. See git commit 8f020251, review request 118207.
    • Bug 335672: Fix possible crash if a kioslave lists multiple items with the same URL. See git commit 4b4cbf5d, review request 118507.

    Dolphin 4.13.1

    • Bug 332159: Scroll the view to the correct position when going ‘back’ from a folder where hidden files are not shown to a previously visited folder where they are shown. See git commit 4da1c81d, review request 117021.
    • Fix memory leak with Dropbox version control plugin. See git commit c9dab5ba, review request 117753.
    • Bug 333457: After creating a contiguous selection, e.g., by pressing Shift+Down repeatedly, do not change the selected files if the view is re-sorted. See git commit a637e497, review request 117603.
    • Bug 311226: Mount a partition if it is opened in a new tab from the Places Panel. See git commit bd4bc61f, review request 117755.
    • Bug 332628: Enable the ‘Next Tab’ and ‘Previous Tab’ toolbar buttons if and only if more than one tab is shown. See git commit 670737cb, review request 117778.
    • Bug 333903: Fix the problem that changing the current item, e.g., with the arrow keys, can be very slow if there are many files in the clipboard. See git commit 25e646e9, review request 117782.

    Dolphin 4.13.0

    • Port Dolphin to Baloo, which has replaced Nepomuk in KDE SC 4.13 and provides lots of improvements. See git commit 5707e1e9 and review on the mailing list.
    • Greatly improve the Dropbox plugin by fixing crashes, quite a few other bugs, and reducing the resource usage. See git commit 1a1ba818, review request 114812.
    • Bug 293315: Make it possible to resize a Details View column to the optimal width by double-clicking the space between the column headers. See git commit 15f409de, review request 115503.
    • Bug 315722: After dropping a file, scroll the view such that this file becomes visible. See git commit f40cc13d, review request 116020.
    • Bug 329186, bug 315061: Update the colors and the font if these are changed in System Settings. See git commit f40b80a9, review request 115958.
    • Bug 310288: Always go back/forward in history when pressing the corresponding mouse buttons. See git commit 7204392d, review request 116469.
    • Bug 323841: Prevent that icons are blurred in the view in some situations. See git commit 70cfa627, review request 113871.
    • Bug 326210, bug 310592: Prevent that names of symbolic links are truncated sometimes even though there is sufficient space in the view, and that icons of symbolic links are sometimes shown with an incorrect size. See git commit b8920587, review request 116121.
    • Bug 311950: Fix the problem that opening a new tab while searching results in a tab where clicking the ‘close search’ button has no effect. See git commit 54208a66, review request 111968.
    • Prevent that incorrect version control states are shown after files have been copied or moved. See git commit 47c8eebe, review request 115410.
    • Bug 331876: Fix a possible crash after moving files. See git commit 1cbb06f5, review request 116666.
    • Bug 329494: Only initialize the QHash which maps each URL to its index in the view if it is needed, and clear the hash completely if anything changes in the view. This makes loading a folder a bit faster and prevents inconsistencies that could cause crashes in some situations. See git commit e45fc620, review request 115432.
    • Bug 283409: When copying selected files to the clipboard or dragging selected files to another application, ensure that the order is the same as the order in the view. Before this commit, the target application received the URLs in random order. Moreover, improve the performance of the function that creates the QMimeData object for the clipboard or for the drag object. See git commit c1ff5204, review request 113515.
    • Simplify the version control code and prevent random error messages in some situations. See git commit 986fde3f, review request 114992.
    • Iterate through a QMap, rather than through the list of keys that is obtained by calling QMap::keys(), in the version control code. This saves the creation of a temporary QList for the keys. See git commit 3542e67c, review request 115018.
    • Since Dolphin 4.12, counting the number of files in a folder, which is shown in the ‘Size’ column in Details View, is done in another thread to prevent that the user interface is blocked while counting files in very large folders. Dolphin 4.12 used one thread per view for this, but now, all views share the same thread to save resources. See git commit 29195b73, review request 115064.
    • Continue the efforts to reduce the amount of redundant data that are stored in the class that is responsible for the view layout (see this post for information about some earlier work in this area). In Dolphin 4.12 and earlier, the x- and y-coordinates were stored for every item. Since these coordinates are always the same for all items in one column or one row, respectively, we can save some memory and CPU cycles by storing the x- and y-coordinates only once for each column/row. See git commit de3a06a2, review request 114460.
    • Speed up the view layout by calculating the required size of all items in the view in a loop, rather than calling the same function once for each item and executing the initialization code in that function repeatedly. See git commit 75f0b9b2, review request 112979.
    • Small simplifications in the class that is responsible for the view layout. See git commit cba1533b, review request 115550.
    • Remove some unused functions. See git commit 0e045b72, review request 115627.

    Dolphin 4.12.5

    • Bug 332792: Show the correct items in a faded color if there are cut items in the view, and the sort order is changed. See git commit 80833d2c, review request 117451.

    Thanks to everyone who helped to fix and analyze these issues, or provided helpful feedback after patches were proposed: Emmanuel Pescosta, who contributed an impressive number of patches, Christoph Feck, Marco Nelles, Mark Gaiser, Martin Koller, Renato Atilio, Thomas Pfeiffer, Uzair Shamim, and Vishesh Handa.

    We are also grateful to everyone else in the KDE community who helped to make these improvements possible and ship them to our users!


    21:58, Wednesday, 16 July UTC

    Johan Thelin

    meta-kf5 – almost there…

    So, as of tonight, all but three tier 1 modules from kf5 are built in meta-kf5. The ones remaining are KApiDox, which does not really apply, and KConfig and Sonnet, which both needs to be part built for the native host environment, and part cross compiled. So, any Yocto hackers out there, please have a look at the issues linked to from the meta-kf5 status page.

    21:53, Wednesday, 16 July UTC

    Tomaz Canabrava (tomaz)

    Subsurface 4.2 Beta1 (4.1.90)

     

    It’s been a little over two months since our last release — so there’s a chance that we will meet our plans of a release “about every three months”.

    This is the first beta, so be careful — have backups of your data files and watch out for changes you didn’t intend. There are a few bugs hiding still, check (and report) at our bugtracker.

    subsurface4.1

    Some of the interesting new features in 4.2:

    the dive planner got added back again, using the graphical profile editor
    pictures can be associated with dives and shown in the profile
    printing was quite a bit improved
    data entry for dives is much more intuitive and consistent
    first steps towards an HTML exporter
    support for importing dive log files from Seabear dive computers
    a user survey was added to learn more about the needs of out users

    Please let us know what you think!


    17:46, Wednesday, 16 July UTC

    Kubuntu Wire

    Plasma 5 in the News

    Plasma 5 was released yesterday and the internet is ablaze with praise and delight at the results.

    Slashdot just posted their story KDE Releases Plasma 5 and the first comment is “Thank our KDE developers for their hard work. I’m really impressed by KDE and have used it a lot over the years.“  You’re welcome Slashdot reader.

    They point to themukt’s Details Review of Plasma 5 which rightly says “Don’t be fooled, a lot of work goes down there“.

    The science fictional name reflects the futuristic technology which is already ahead of its time (companies like Apple, Microsoft, Google and Canonical are using ideas conceptualized or developed by the KDE community).

    With the release of Plasma 5, the community has once again shown that free software code developed without any dictator or president or prime-minister or chancellor can be one of the best software code.

    LWN has a short story on KDE Plasma 5.0 which is as usual the place to go for detailed comments including several from KDE developers.

    ZDNet’s article KDE Plasma 5 Linux desktop arrives says “I found this new KDE Plasma 5 to be a good, solid desktop” and concludes “I expect most, if not all, KDE users to really enjoy this new release. Have fun!” And indeed we do have lots of fun.

    And Techage gets nonenculture wrong in KDE 5 is Here: Introducing a Cleaner Frontend & An Overhauled Backend and says “On behalf of KDE fans everywhere, thank you, KDE dev team” aah, it’s nice to be thanked :)

    Web UPD8 has How To Install KDE Plasma 5 In Kubuntu 14.10 Or 14.04 a useful guide to setting it up which even covers removing it when you want to go back to the old stuff.  Give it a try!

     

    15:14, Wednesday, 16 July UTC

    Matthias Klumpp (ximion)

    AppStream 0.7 specification and library released

    appstream-logoToday I am very happy to announce the release of AppStream 0.7, the second-largest release (judging by commit number) after 0.6. AppStream 0.7 brings many new features for the specification, adds lots of good stuff to libappstream, introduces a new libappstream-qt library for Qt developers and, as always, fixes some bugs.

    Unfortunately we broke the API/ABI of libappstream, so please adjust your code accordingly. Apart from that, any other changes are backwards-compatible. So, here is an overview of what’s new in AppStream 0.7:

    Specification changes

    Distributors may now specify a new <languages/> tag in their distribution XML, providing information about the languages a component supports and the completion-percentage for the language. This allows software-centers to apply smart filtering on applications to highlight the ones which are available in the users native language.

    A new addon component type was added to represent software which is designed to be used together with a specific other application (think of a Firefox addon or GNOME-Shell extension). Software-center applications can group the addons together with their main application to provide an easy way for users to install additional functionality for existing applications.

    The <provides/> tag gained a new dbus item-type to expose D-Bus interface names the component provides to the outside world. This means in future it will be possible to search for components providing a specific dbus service:

    $ appstream-index what-provides dbus org.freedesktop.PackageKit.desktop system

    (if you are using the cli tool)

    A <developer_name/> tag was added to the generic component definition to define the name of the component developer in a human-readable form. Possible values are, for example “The KDE Community”, “GNOME Developers” or even the developer’s full name. This value can be (optionally) translated and will be displayed in software-centers.

    An <update_contact/> tag was added to the specification, to provide a convenient way for distributors to reach upstream to talk about changes made to their metadata or issues with the latest software update. This tag was already used by some projects before, and has now been added to the official specification.

    Timestamps in <release/> tags must now be UNIX epochs, YYYYMMDD is no longer valid (fortunately, everyone is already using UNIX epochs).

    Last but not least, the <pkgname/> tag is now allowed multiple times per component. We still recommend to create metapackages according to the contents the upstream metadata describes and place the file there. However, in some cases defining one component to be in multiple packages is a short way to make metadata available correctly without excessive package-tuning (which can become difficult if a <provides/> tag needs to be satisfied).

    As small sidenote: The multiarch path in /usr/share/appdata is now deprecated, because we think that we can live without it (by shipping -data packages per library and using smarter AppStream metadata generators which take advantage of the ability to define multiple <pkgname/> tags)

    Documentation updates

    In general, the documentation of the specification has been reworked to be easier to understand and to include less duplication of information. We now use excessive crosslinking to show you the information you need in order to write metadata for your upstream project, or to implement a metadata generator for your distribution.

    Because the specification needs to define the allowed tags completely and contain as much information as possible, it is not very easy to digest for upstream authors who just want some metadata shipped quickly. In order to help them, we now have “Quickstart pages” in the documentation, which are rich of examples and contain the most important subset of information you need to write a good metadata file. These quickstart guides already exist for desktop-applications and addons, more will follow in future.

    We also have an explicit section dealing with the question “How do I translate upstream metadata?” now.

    More changes to the docs are planned for the next point releases. You can find the full project documentation at Freedesktop.

    AppStream GObject library and tools

    The libappstream library also received lots of changes. The most important one: We switched from using LGPL-3+ to LGPL-2.1+. People who know me know that I love the v3 license family of GPL licenses – I like it for tivoization protection, it’s explicit compatibility with some important other licenses and cosmetic details, like entities not loosing their right to use the software forever after a license violation. However, a LGPL-3+ library does not mix well with projects licensed under other open source licenses, mainly GPL-2-only projects. I want libappstream to be used by anyone without forcing the project to change its license. For some reason, using the library from proprietary code is easier than using it from a GPL-2-only open source project. The license change was also a popular request of people wanting to use the library, so I made the switch with 0.7. If you want to know more about the LGPL-3 issues, I recommend reading this blogpost by Nikos (GnuTLS).

    On the code-side, libappstream received a large pile of bugfixes and some internal restructuring. This makes the cache builder about 5% faster (depending on your system and the amount of metadata which needs to be processed) and prepares for future changes (e.g. I plan to obsolete PackageKit’s desktop-file-database in the long term).

    The library also brings back support for legacy AppData files, which it can now read. However, appstream-validate will not validate these files (and kindly ask you to migrate to the new format).

    The appstream-index tool received some changes, making it’s command-line interface a bit more modern. It is also possible now to place the Xapian cache at arbitrary locations, which is a nice feature for developers.

    Additionally, the testsuite got improved and should now work on systems which do not have metadata installed.

    Of course, libappstream also implements all features of the new 0.7 specification.

    With the 0.7 release, some symbols were removed which have been deprecated for a few releases, most notably as_component_get/set_idname, as_database_find_components_by_str, as_component_get/set_homepage and the “pkgname” property of AsComponent (which is now a string array and called “pkgnames”). API level was bumped to 1.

    Appstream-Qt

    A Qt library to access AppStream data has been added. So if you want to use AppStream metadata in your Qt application, you can easily do that now without touching any GLib/GObject based code!

    Special thanks to Sune Vuorela for his nice rework of the Qt library!

    And that’s it with the changes for now! Thanks to everyone who helped making 0.7 ready, being it feedback, contributions to the documentation, translation or coding. You can get the release tarballs at Freedesktop. Have fun!

    15:03, Wednesday, 16 July UTC

    Older blog entries