Author Topic: Blog: KDE Miscellaneous Stuff  (Read 583 times)

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Blog: KDE Miscellaneous Stuff
« on: February 08, 2013, 07:44:27 AM »
By Martin Gräßlin. on 7 February 2013 (the land of wobbly windows)

Client Side Window Decorations and Wayland

This weekend I was at FOSDEM and attended a talk about Wayland for application developers. One thing that came around multiple times was that “applications have to provide the decorations”. Every time I had to cringe, because it’s just not true and I find it sad that people who give presentations about Wayland repeat that.

Nothing in the Wayland protocol requires Client Side Decorations or forbids Server Side Decorations. And that’s not surprising as it just should not matter to a protocol. The same is true for the X11 protocol, there is nothing said about window decorations. Just on X11 people realized that server side decorations are the better choice, but still there are applications doing client side (maybe people think that the possibility of re-parenting says anything about window decorations, it doesn’t you don’t need re-parenting to provide server side decorations). What is true is that the reference implementation of a Wayland compositor, Weston, requires Client Side Decorations, but it’s just one implementation and doesn’t say anything about other implementations. And here it’s important to remember that Weston is not Wayland.

There are good arguments pro and contra client side decorations. The most commonly listed ones pro client side are:

1    Only one texture needs to be rendered
2   No aliasing when rotating/wobbling windows
3    Application developers are free to experiment

The first two are true. I have to agree there. I know KWin’s OpenGL decoration rendering code and the problems with it. I do not like it and I do see the disadvantages. Also I do know that wobbling windows is not looking nice.

The third argument is more complex. Here I do not agree, because I have not seen any valid use cases for these “experiments”. All we have so far is the Chromium use case and since then nobody else came up with any use case. So somehow that shows that we are not restricting the application developers as some pro-CSD people would claim. In fact allowing CSD limits the possibilities of the workspace.

Plasma provides three workspaces: desktop, netbook and tablet. From KWin perspective the main difference is how window decorations are handled. On Desktop we have full decorations, on netbook we disable decorations for maximized windows (control moved to the Shell’s panel) and on active we don’t have any decorations at all. With client side decorations such possibilities are gone. We are no longer able to take the desktop further by just changing this aspect for all applications. Many KDE applications are useable on Plasma Active (tablet) without any adjustments. If they would use CSD they were not usable.

My main fear with CSD is that it ends up in a mess as we can see on Microsoft Windows. There CSD are common but applications don’t use it to do useful stuff, but to enforce their corporate design. This is bad for usability. Each application looking different? Stupid idea. Not even Microsoft is having a consistent decoration for their various products. Some have titles on the left, some centered. A complete mess. And my fear is that Linux would head there, too.

Lots more here
« Last Edit: March 05, 2013, 05:43:41 AM by menotu »
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #1 on: February 11, 2013, 02:19:01 PM »
Afiestas Blog - Feb 11 2013

KScreen: Supporting the old and new (XRandR1.1 backend)

One of the points we had left to implement before we can consider KScreen a replacement for the current  screen management was support fo XRandR 1.1.

The XRandR1.1 extension dates from 100B.C and it only knows about one screen on which you can change: size,  refresh and rotation. Luckily all modern drivers implement at least XRandR 1.2 (which know about multiple screens) so you may be wondering why do we bother to support such an old thing?

It turns out that virtualization software usually only support XRandR1.1 and some other tools like Xvnc or Xephyr do as well, so the only way of ensuring that we look good when executed in those software is by implementing support for this old api.

Can you imagine what impression will a potential user get if the first thing we do while executed in a Virtualbox is crashing? not good for sure.

So, we are a step closer to consider ourselves complete :)

http://www.afiestas.org/kscreen-supporting-the-old-and-new-xrandr1-1-backend/
« Last Edit: March 05, 2013, 05:43:58 AM by menotu »
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #2 on: February 15, 2013, 06:11:17 AM »
For the curious...........
==========================================
By Martin Gräßlin on 15 February 2013 (the land of wobbly windows)

Explore KWin’s Source Repository Change over Time

Today I’m happy to present some statistics about KWin’s source repository. The shown graph is HTML5/JavaScript, so I’m not sure whether that works on the planet or in an RSS reader. In case it does nto work you can get to the diagram here – as it’s an iframe it seems to be even bad on my blog. Best just open directly :-)

What does this graph show?

For each (toplevel) directory in KWin’s source base the source line code is shown for each of our releases of the 4.x series.
How to use the graph?

The graph is interactive. With the checkboxes you can enable/disable the individual directories. With the drop down list you can select which information to show:

   Total line count
    Code and Comment
    Code only
    Blank only


The graph also provides context information. If you hover over a data point a tooltip is shown with information about the directory at the release. This includes the different counts and a break down per used programming language. The tooltip is not yet perfect and it might be needed that you disable a dataset to better read it.

http://blog.martin-graesslin.com/blog/2013/02/explore-kwins-source-repository-change-over-time/
« Last Edit: March 05, 2013, 05:44:18 AM by menotu »
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #3 on: March 11, 2013, 05:22:24 AM »
March 11, 2013 — liquidat

Small Gems: KMail attachment notification

Once in a while I run into really nice and well crafted features in software which are hardly known – or at least not advertised enough. I call these small but shiny features “little gems”. One of those struck me in a recent KMail release.

Everyone who has ever used e-mails has at least once gotten or sent an e-mail which was intended to have an attachment, but didn’t have it. KMail has the possibility to check a written mail for certain, user configurable key words: if there is a word match in the mail without it having an attachment, the user is asked if he/she hasn’t forgotten the attachment when he/she hits the send button.

With recent KMail versions, the check is done on the fly, and the notion about a possible forgotten attachment is integrated much better into the entire interface:

https://liquidat.wordpress.com/2013/03/11/small-gems-kmail-attachment-notification/
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Online Just17

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 10669
  • MLUs Forever!
Re: Blog: KDE Miscellaneous Stuff
« Reply #4 on: March 11, 2013, 06:42:58 AM »
:D  :D   are they catching up with Thunderbird?   ;D  ;D

MLUs rule the roost!

Linux XPS 3.4.38-pclos1.bfs  64 bit
Intel Core2 Quad CPU Q9450 @ 2.66GHz
4 GB RAM
MCP51 High Def Audio
GeForce GTX 550 Ti
PHILIPS  ‎DVD+-RW DVD8701
‎Logitech ‎BT Mini-Receiver
Afatech DTT

Offline horusfalcon

  • Hero Member
  • *****
  • Posts: 998
  • Wayfarer of The Western Wastes
Re: Blog: KDE Miscellaneous Stuff
« Reply #5 on: March 11, 2013, 11:01:05 AM »
:D  :D   are they catching up with Thunderbird?   ;D  ;D



Pretty much.  Glad to see they're continuing to improve, though.  It's always good to have choices.

Later On,
D
"The Way is not a matter of knowing or not knowing.  One word to a wise man; one lash to a bright horse."

Dell Latitude D620, PCLinuxOS 2012.08 KDE4/LXDE, 3.2.18.pclos.bfs, specs here.

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #6 on: March 15, 2013, 05:54:48 AM »
by: Dan Vrátil  - March 14, 2013 - progdan.cz

KDE PIM, Google Integration & more

I haven’t blogged about my involvement in KDE PIM in a while, so let’s see what’s new there, especially in the Google integration part….

Reborn Google Resources

Just before the KDE PIM sprint in Berlin this month, I’ve sat down and written completely new API for LibKGAPI (the library that implements Google API and is used by the Akonadi resources for Google services). The new API is job-based, and therefore much more awesome than the old one (which is known to suck). Anyway – what does this mean? It means that the new resources are awesome as well!

Google Contacts now has full support for contacts groups. All contacts are stored in the top-level collection and are linked to the respective groups, so it does not matter where you edit the contact, you are still modifying the same instance. Like in the web interface.

Google Calendar now supports limited sync, so you can choose to only sync events from last year, or last two years (the default is last 3 years) instead of the full history.

Both resources have improved status reporting, error handling, are more stable (no more mystery crashes due to unhandled exceptions thrown from LibKGAPI) and subjectively synchronization is faster too.

Murdered Google Resources

As most of you probably noticed by now, Google is planning to shut down Google Reader by July 1. It’s pitty, because I already had a fully working Akonadi resource for Google Reader ready in the akregator_port branch. Cost me lot of time and nerves. Well, the resource is not there anymore and the only memory of it is greader branch with API implementation in LibKGAPI (which will die as well sooner or later). The good news however is that I can now help Alessandro and Frank with ownCloud News and the ownCloud Akonadi resource, so that we rock when Akregator2 is out Smilie: :-)Smilie: :-) I can’t wait to see what has changed in ownCloud since I installed 3.0.0 some time ago…

Upcoming Google Resources

I have two feature requests in bugzilla: one is to support Google Bookmarks, which is fairly complicated because of missing official API and absolutely no write API. So this is not going to happen soon. The second feature request is for Google Drive KIO slave. This is much more interesting task. I already tried writing Google Docs KIO slave about three years ago and I failed epically. Retribution! There’s almost complete API implementation by Andrius in LibKGAPI git, so I plan to port it to LibkGAPI2 and see whether we can together fight the Dark side and create a nice and shiny KIO slave.

Finally, deep in the dark corners of my mind, my so far the most evil plan is slowly shaping. The plan includes modifying the current IMAP resource, reusing most of it’s code and subclassing some specific parts to build a native GMail Akonadi resource that would support some GMail-specific IMAP extensions. The main idea is to support one-mail-in-multiple-folders-at-once case. Right now the IMAP resource handles that by creating a new instance of the same email in multiple folders. My bold plan is to store all emails in Inbox and link them to respective folders. This means that marking an email as read in one folder, will automatically mark it as read in all other folders (because it’s a single instance). The IMAP resource looks scary though, so I don’t know yet when I’ll get the courage (and time) to sit down and actually start coding…I guess probably after Akademy, after I talk to some people.

Batch Operations in Akonadi

I have talked to Volker Krause during the KDE PIM sprint about how to effectively handle “Mark feed as read” in the Google Reader resource. Currently, Akonadi creates a new notification for every change, therefore marking 300 items as read generates 300 notifications, which are delivered to the Akonadi resource, which should then create 300 HTTP request to store 300 changes. You probably agree that this slightly suboptimal. (I temporarily solved the problem by caching the notifications in the resource itself and then sending a big request to Google Reader at once). The solution that Volker suggested sounds fairly simple (it’s not) – batch notifications – i.e. a single notification about single change involving multiple items. The supported changes can be flags change, deleting or linking of items. By being able to deliver single notification about mass-change to Akonadi clients and to Akonadi resources represents new possibilities for optimizations. For instance the IMAP resource could simply send a single command to add a flag to multiple emails at once, instead of doing it one by one. The same goes for other operations and other resources that are dealing regularly with operations on larger sets of items. The obvious result: performance boost! After two weeks the work is in semi-working state – it works, but it goes nuts if more than 5 items are involved. The cause is known, but solution not (but I’ll get there eventually Smilie: :-)Smilie: :-) )

Akregator 2

I’m occasionally helping with Akregator2 (Akonadi port of Akregator). Recently (ok, it was two months ago… ) I’ve written Akonadi Nepomuk Feeder plugin that is feeding RSS Articles into Nepomuk and a Search window (slightly inspired by the one in KMail) in Akregator2 where you can do full-text search (+ search via other criteria, including author’s name and date of publishing) based on data indexed in Nepomuk. Obviously, when I wanted to demo that on the KDE PIM sprint I found out that it’s not working as good as I thought, so there’s still some work to be done. But in general I’m happy to say, that from time to time it finds something Smilie: :-)Smilie: :-).

http://www.progdan.cz/2013/03/kde-pim-google-integration-and-more/?utm_source=rss&utm_medium=rss&utm_campaign=kde-pim-google-integration-and-more

http://www.pclinuxos.com/forum/index.php/topic,114202.0.html

PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #7 on: April 07, 2013, 07:08:19 AM »
Sun, 04/07/2013 - by j-b-m (Jean-Baptiste Mardelle) kdenlive.org

Kdenlive 0.9.6 released

We are happy to announce the immediate release of Kdenlive 0.9.6.

This version fixes several bugs and crashes, including a very annoying bug that caused project files to seem corrupted. All users are strongly encouraged to upgrade.

You will find detailled infos about the changes in this release on our Kdenlive 0.9.6 info page.

http://www.kdenlive.org/discover/0.9.6

The source code can be downloaded from the KDE servers, there are 2 available tarballs, since we decided to also distribute Kdenlive with its user manual:

    0.9.6 source code only (5M)
http://download.kde.org/stable/kdenlive/0.9.6/src/kdenlive-0.9.6.tar.bz2.mirrorlist

    0.9.6 source code including documentation (19M)
http://download.kde.org/stable/kdenlive/0.9.6/src/kdenlive-0.9.6-with-doc.tar.bz2.mirrorlist

Packages for your distributions should hopefully be available soon.

It is recommended to use the latest version of the MLT framework (0.8.8) to get the recent bugfixes and improvements.

Media Lovin' Toolkit

http://www.mltframework.org/

As usual, a big thank you to all those who helped us make this release better by giving us feedback and investigating the bugs they found.

You can check the Kdenlive online manual and forums for documentation and help.

http://userbase.kde.org/Kdenlive/Manual

For the Kdenlive team,

http://kdenlive.org/users/j-b-m/kdenlive-096-released

====================

pinoc's post kdenlive 0.9.4 sent to upload queue for 32/64

and

http://www.pclinuxos.com/forum/index.php/topic,110680.msg944610.html#msg944610
« Last Edit: April 07, 2013, 07:20:32 AM by menotu »
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #8 on: April 07, 2013, 08:27:50 AM »
TSDgeos' blog - April 06, 2013

Okular welcomes undo/redo for annotations

Thanks to the amazing work of Jon Mease Okular now has undo/redo for annotation editing in master. Give it a go, it's quite cool :)

tsdgeos.blogspot.co.uk/2013/04/okular-welcomes-undoredo-for-annotations.html
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #9 on: April 20, 2013, 08:15:03 AM »
By Lamarque -  Friday, April 19, 2013

Migrating to kmail2

Ok, I know, migrating to kmail2 is old news now. But only today I decided to try migrating to kmail2. Gentoo is going to remove kmail1 from their repository in a few months so I did not have much of a choice.

My kmail1 configuration included one pop3 account, one gmail account and some local folders. The migration process finished and then nepomuk started indexing my e-mails (my laptop's fan screamed for several hours hehe). During the indexing process kmail2 exited with the message "Failed to fetch the resource collection". After some search on google I found this  blog that explained how to fix that (it is simple, really). Then I had a problem with e-mails not being sent. The error message talked about mailfilteragent, which is installed by kmail2 itself but is started by akonadi. Restarting akonadi made it recognise the new agent and the problem was fixed.

After importing my local folders manually (the migration process did not do that) I configured my mail filters and waited until nepomuk finished indexing my e-mails.So far so good using kmail2, no crashes and everything works almost like the old kmail1. One exception was the "go to the next unread message when opening a folder" option that is disabled by default. Alex Fistas helped me with that and now I can do with kmail2 everything I used to do with kmail1.

Update: well, the "so far so good" did not last a day :-/ I have found this really annoying bug  and submitted a https://git.reviewboard.kde.org/r/110098/   patch to reviewborad to fix it. With luck this will enter 4.10.3.

http://lamarque-lvs.blogspot.co.uk/2013/04/migrating-to-kmail2.html

kmail terminates during startup with “Failed to fetch the resource collection”

Kmail encountered a fatal error and will terminate now. The error was: Failed to fetch the resource collection.

Akonadi, Nepomuk and Strigi explained
« Last Edit: April 20, 2013, 08:21:26 AM by menotu »
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Online Just17

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 10669
  • MLUs Forever!
Re: Blog: KDE Miscellaneous Stuff
« Reply #10 on: April 20, 2013, 09:13:28 AM »
Makes me happy I use Thunderbird  ......  ;D 
MLUs rule the roost!

Linux XPS 3.4.38-pclos1.bfs  64 bit
Intel Core2 Quad CPU Q9450 @ 2.66GHz
4 GB RAM
MCP51 High Def Audio
GeForce GTX 550 Ti
PHILIPS  ‎DVD+-RW DVD8701
‎Logitech ‎BT Mini-Receiver
Afatech DTT

Offline horusfalcon

  • Hero Member
  • *****
  • Posts: 998
  • Wayfarer of The Western Wastes
Re: Blog: KDE Miscellaneous Stuff
« Reply #11 on: April 20, 2013, 05:00:35 PM »
Makes me happy I use Thunderbird  ......  ;D

You said it, brother. I like the KISS principle for my email, thanks.

Later ON,
D
"The Way is not a matter of knowing or not knowing.  One word to a wise man; one lash to a bright horse."

Dell Latitude D620, PCLinuxOS 2012.08 KDE4/LXDE, 3.2.18.pclos.bfs, specs here.

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #12 on: May 12, 2013, 08:52:29 AM »
Unsure what bearing this may have for PCLinuxOS
=================================
From blogs.kde (Mataro Sessions II)

KWin and Wayland on Kubuntu

    Differences between Wayland and Mir are minimal, only client vs server side buffer allocation, so no benefit from it for a desktop distro

    dri3000 is a project to make X do client side buffer allocating

    KWin won't support Mir, (unless canonical wants to do it) it has no ABI stability

    KWin was working on Wayland suppport, now shifted effort to Qt 5 support before going back to Wayland work.

    KWin in 4.11 might work with Qt 5 but not for distros to use

    X wayland is a rootless X server used in both Wayland and Mir, no use for KWin which needs a rooted X server.

    wayland has libwaylandserver and libwaylandclient libraries, libwaylandclient for use in toolkits like Qt.

    current KWin architecture not fully planned but probably Weston as system compositor and KWin as client compositor

    worry that Canonical might havily patch mesa for Unity/Mir making Kwin/Weston break (more then it already is)
    Only Weston needed for LightDM then Kwin started same as currently by startkde (maybe a bit earlier in the script)

    Change to Wayland for Kubuntu about 14.10 or 15.04

    Wayland & Weston release every 3 months, KWin every 6 months

    Unity will have 1 binary equivalent to X, compiz and unity

    Weston can be run on X for testing

    current thinking is to ensure Debian's Weston packages are in Ubuntu archive and use those for Kubuntu, might make ubuntu-desktop and kubuntu-desktop not easily co-installable

    Installer ubiquity-dm a tricky point

https://blogs.kde.org/2013/05/08/notes-breakout-sessions-mataro-sessions-ii
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #13 on: May 12, 2013, 09:20:53 AM »
A follow on from the above post, but this one is a long, long post........
=============================================
By Martin Gräßlin. on 10 May 2013 (the land of wobbly windows)

Mir

As you might have seen in Jonathan’s blog post we discussed Mir in Kubuntu at the “Mataro Sessions II”. It’s a topic I would have preferred to not have to discuss at all. But the dynamics in the free software world force us to discuss it and obviously our downstream needs to know why we as an upstream do not consider Mir adoption as a valid option.

This highlights a huge problem Canonical created with Mir. I cannot just say “Canonical sucks”[1] to discard Mir as an option, I have to provide proper technical arguments why we won’t integrate Mir. I have to invest time to investigate the differences, advantages and disadvantages. As I have those arguments, I thought it might be a good idea to share them in a blog post.

The discussion started during a presentation about X11 and Wayland to my fellow team mates at Blue Systems. I decided to first explain X11 as I think one cannot understand the needs for Wayland without understanding X11. I did not intend to discuss Mir at all, but somehow the discussion drifted into the direction and the valid questions were raised about what are the differences and advantages of Mir or Wayland. What followed was kind of a rant about Ubuntu and Canonical [2]. So later the week we discussed “Mir in Kubuntu” in more detail to try to find answers to the many questions this raises for our downstream.

Introduction

Frustration and lost Motivation

Before I go into more detail I want to make one thing clear: Canonical is totally allowed to develop whatever they want. I’m totally fine with this and don’t care whether they develop another display server, an own os kernel or yet another desktop shell. I couldn’t care less. It’s Canonical/Mark’s money and he can invest it in any way he considers as useful. I wouldn’t even care if it would be proprietary software, that’s all fine.

What is not fine is causing a major disruption in the free software ecosystem by giving false technical arguments and doing bold statements about software Canonical does not contribute to. This is not acceptable. This was very frustrating and destroyed lots of trust I had in Canonical. It will be difficult to rebuild this trust. Canonical can be glad that it is the free software world and not the normal corporate world. There were quite some statements which could have raised the legal department in the normal corporate world[3]. It also cost lots of motivation at least on my side and I even questioned whether it’s still worth to be a member of the free software ecosystem. Instead of working together we now have a situation where members of the ecosystem become a competitor and which badmouth part of the software stack. A very frustrating situation.

There certainly are valid reasons for developing Mir which also make sense. Unfortunately they have not been presented so far. I’m quite sure that I know the reasons and if they would have been said straight away it would have been for me and other projects probably much easier. It would have taken away the frustration which the announcement caused and we would not need to discuss it at all, because those question marks would not exist. But apparently Canonical decided to give false technical arguments over the real ones.

Not ready yet

At the moment Mir is not there yet, this is important to remember. With the announcement we basically had four options on how to handle the situation.

    Continue with the Wayland plan and ignore Mir
    Switch to Mir and ignore Wayland
    Support Mir and Wayland
    Delay decision till Mir is ready


If I map our time line for Plasma Workspaces 2 against the time line of Mir I see no overlap. We want to support Wayland before Mir is ready. So delaying the decision would be a rather bad idea. It would just throw us back. This also means that option 2 is not valid especially as we would need to delay till Mir is ready for this to happen. So the only valid options are supporting both Mir and Wayland or only Wayland. At the moment the code is not ready yet to properly decide whether supporting Mir in addition to Wayland is a valid approach or not. Last time I checked the source base I hit a few stubs and then obviously stopped looking at the code as it’s not worth the effort yet. So we have to evaluate on the knowledge we already have and that doesn’t look good on the Mir side.

Wayland vs Mir

Possible Advantages of Mir over Wayland

The differences between Mir and Wayland are rather minimal. One of the differences is that Mir uses server allocated buffers while Wayland uses client side buffer allocation. I cannot judge whether this is an advantage or disadvantage. But I trust Kristian and the Wayland team more on that topic.

Another difference is that Mir uses test-driven development. To me development methodology is not a technical argument. I rather use a working system without unit tests than a system with unit tests that doesn’t work [4]. Also KWin does not use TDD. If I would consider TDD superior I would have to question my own development methodology.

But that’s it. That are the differences I found so far which could count as an advantage for Mir. But of course there is the advantage that Mir is going to be awesome. For the disadvantages I will spend a complete section on each point.

Distro specific

So far Mir is a one-distribution solution. So far no other distribution has shown any interest in packaging Mir even if it would become a working solution. Unfortunately I don’t have the ability to see into the future, but I can use the past and the present to get ideas for the future. The past tells me that there are other Canonical specific solutions which are not available in other distributions. I do not know of any distribution which packages Unity and from all I have heard it’s even impossible to package Unity on non-Ubuntu distributions. Given that it is quite likely that Mir will go the same road. It’s designed as a solution for Unity and if distros don’t package Unity there is no need to package Mir.

This has quite some influence on a possible adoption. I do not know of any kde-workspace developer using (K)Ubuntu. I do not see how anyone would work on it or how we should be able to review code or even maintain code. It would mean all the adoption would have to go into ifdef sections nobody compiles and nobody runs. This is the best way to ensure that it starts to bit-rot. Even more our CI system runs on openSUSE so not even the CI would be able to detect breakage. Of course a downstream like Kubuntu could develop the adoption and carry it as a patch on top of upstream, but I would highly recommend them to not do this as KWin’s source code churn is too high. Also we all agree that downstream patches are evil and we would no longer be able to help in any way downstream’s user from a support perspective.

Architecture

Mir’s architecture is centered around Unity. It is difficult to really understand the architecture of Mir as the specification is so full of buzz-words that I don’t understand it [5]. From all I can see and understand Unity Next is a combination of window manager and desktop shell implemented on top of Mir. How exactly this is going to look like I do not know. Anyway it does not fit our design of having desktop shell and window manager separated and we do not know whether Mir would support that. We also do not know whether Mir would allow any other desktop shell except Unity Next, given that this is the main target. Wayland on the other hand is designed to have more than one compositor implementations. Using KWin as a session compositor is an example in the spec.

License

Wayland is licensed like X under the MIT license, which served us well for a display server. I think this is a very good choice and I am glad that the Wayland developers decided for this license. Mir is licensed under GPLv3-only with CLA. I think this is very unsuited for such a part of the stack and would render quite a risk for usage in KDE Plasma. KWin (and most KDE software) is GPLv2-or-later, this would no longer be possible, it would turn our code into GPLv3-only as KWin (or any other software which would depend on mir-server) would be a derived work of Mir. I do not consider GPLv3-only software as a possible dependency of any core part of our application stack. It renders a serious threat for the future in case of a GPLv4 which is not compatible with GPLv3. I also dislike the CLA [6]. So from a licensing perspective Mir is hardly acceptable.

Unity Specific/No Protocol

One of the most important aspects from Wayland for us is the ability to extend the protocol. This has already been a quite important feature in X and we are using our own extensions over ICCCM and EWMH to implement additional functionality. Of course our workspace has own ideas and it is important for us to be able to “standardize” those and also make them available to others if they are interested. This is possible thanks to protocol extensions.

Mir doesn’t have a real protocol. The “inner core” is described as “protocol-agnostic”. This renders a problem to us if we would want to use it. Our architecture is different (as described above) and we need a protocol between the desktop shell and the compositor. If Mir doesn’t provide that we would need to use our own protocol. And that already exists, it is called “Wayland”. So even if we would support Mir, we would need the Wayland protocol?!? That doesn’t make any sense to me. If we need to run Wayland on top of Mir just to get the features we need, why should we run Mir at all?

But it gets worse, the protocol between Mir server and Mir clients is defined as not being stable. In fact it’s promised that it will break. That’s a huge problem, I would even call it a showstopper. For Canonical that’s fine – they control the complete stack and can just adjust all bits using the protocol like QMir.

For us this looks quite different. Given that the protocol may change any time and given that the whole thing is developed for the needs of Unity we have to expect that the server libraries are not binary compatible or that old version of the server libraries cannot talk with the latest client libraries. We would constantly have to develop against an unstable and breaking base. I know that this sounds overly pessimistic but I know of one case where a change got introduced in a Canonical protocol late in the release cycle completely breaking an application in Kubuntu which wanted to use the protocol. Given this experience I would not trust that the protocol doesn’t change one day before the release meaning that Kubuntu cannot ship.

This is not awesome, it’s awful. It means KWin will not work just fine on Mir.

I hope this shows that using Mir inside the KDE Plasma workspaces is not an option. There are no advantages which would turn Mir into a better solution than Wayland and at the same time there are several showstoppers which mean that we cannot integrate Mir – not even optionally in addition to Wayland. The unstable protocol and the licensing choice are clearly not acceptable.

What this means to Kubuntu

Question marks

For Kubuntu the Mir switch by Canonical created quite some questions. One of those questions is answered: Upstream has no interest in supporting it and would most likely not accept patches for support. With upstream not using Mir the question is how the graphics stack for Kubuntu will look like once Ubuntu switched to Mir? The questions cannot be answered right now but it doesn’t look good.
Patches to the stack

Ubuntu has always had one of the worst graphics stack in the free software world. I can see this in the bug tracker. The quality of the Mesa stack in Ubuntu is really bad. For Mir Ubuntu will have to patch the Mesa stack even further. This is nothing which I would like to see. Also Mesa needs to be packaged with Wayland support. But will Canonical continue to do this? If not, would Kubuntu (and other Ubuntu flavors) need to ship their own Mesa stack? What if the changes by Canonical are so large that a standard Mesa stack doesn’t run on top of the Ubuntu stack?

Switching Sessions

One of the advantages of free software is that one can select the desktop environment in the login manager. This looks like no longer be possible in a Mir world. Unity will run with a Mir system compositor with LightDM nested underneath. We will need either the X Server or a Wayland system compositor. So from the login manager it will not be possible to start directly into a session using a different system compositor. How will it continue to be possible to use both Unity and KDE Plasma on the same system? Running a Unity and a KDE Plasma (or GNOME or XFCE or anything) session at the same time seems to no longer be possible.

System Compositor

How deep into the system is the system compositor going to be? Will it be possible to disable the Mir system compositor and replace it with X or Wayland? What if the packages start to conflict? Will it still be possible to install Kubuntu and Ubuntu on the same system? Will Canonical care about it? Will the system compositor mean that one has to decide in Grub whether to boot Ubuntu or Kubuntu?

Packages from Where

So far X, Wayland and Mesa have been packaged by Canonical. But what about the future? Will there still be packages for X, will there be packages for Wayland? If not, where to take them from? Debian unstable, most likely. But Debian might be frozen. Will it be possible at all to use the Debian packages for X and Wayland in the Ubuntu stack? Will they meet the requirements for KDE Plasma[7]? If Canonical doesn’t provide Wayland packages, they would drop to universe, so Mesa in main cannot depend on them. How to get then Mesa with Wayland support?

Only Future can tell

Those questions cannot be answered right now. It will have to wait till Mir is integrated into the Ubuntu stack.

Then Kubuntu developers will see how far the stack broke. I’m not really optimistic that it will still be possible to provide the Ubuntu flavors once the transition to Mir is done. I don’t think that Canonical has any interest in the community provided distributions on top of Ubuntu any more. There are many small changes in the direction which indicate that. But we will see, maybe I’m too pessimistic.

[1] Given how Canonical introduced Mir with incorrect information about Wayland I consider this as a valid approach to dismiss the technology.

[2] I was very fed up with Ubuntu at the time anyway because our bug tracker once again exploded after the Ubuntu release.

[3] I do admit that I thought about asking KDE e.V. to send an Abmahnung after the statement that KWin would just work fine on Mir.

[4] In fact I consider TDD as utter non-sense and as a useless methodology though some aspects are useful.

[5] “with our protocol- and platform-agnostic approach, we can make sure that we reach our goal of a consistent and beautiful user experience across platforms and device form factors”

[6] Yes I know that Qt also has a CLA, which I have signed. But for Qt there is also the KDE Free Qt Foundation agreement.

[7]Last week a feature hit KWin which I cannot test/use because the X-Server is too old in Debian testing.

http://blog.martin-graesslin.com/blog/2013/05/mir-in-kubuntu/
« Last Edit: May 12, 2013, 09:22:28 AM by menotu »
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000

Offline menotu

  • PCLinuxOS Tester
  • Super Villain
  • *******
  • Posts: 15311
  • ┌∩┐(◕_◕)┌∩┐
Re: Blog: KDE Miscellaneous Stuff
« Reply #14 on: May 22, 2013, 05:39:40 AM »
TSDgeos' blog - May 21, 2013

Okular welcomes configurable review tools

I have just merged to master a branch by Fabio D'Urso that lets you configure the review tools that appear in the review bar.



This way you can decide that by default you want your highlighter to be green instead of yellow. Or even have two highlighters in the review bar.

Please test and enjoy it :-)

http://tsdgeos.blogspot.co.uk/2013/05/okular-welcomes-configurable-review.html
PCLinuxOS 32bit KDE 4.10.1; kernel-3.4.11-pclos1.bfs & 64bit 3.2.18bfs; NVidia GeForce 8400GS 1GB 310.19 driver

Sony Vaio SVE1513A4ESI Laptop, Intel Core i5, 2.6GHz, 6GB RAM, 750GB, 15.6" Intel HD Graphics 4000