Subscribe to Planet KDE feed
Planet KDE - http://planetKDE.org/
Updated: 55 min 58 sec ago

Kdenlive to be released with KDE Applications 15.04

Sun, 03/01/2015 - 18:24

... based on Frameworks 5!

So we met the freeze deadline to get our port to KF5 released with KDE Apps.

What does it change? you have a changelog, but it doesn't explain what's behind.

Being based on KF5 makes Kdenlive future-proof and opens doors for potential new horizons (platforms, design)...

Being part of KDE family changes things more "socially" than "technically" (quoting tsdgeo ;-)). Changes to the source are now sent for review systematically, releases preparation and delivery will now be handled by experts under a fixed planning, we are now mentored to take part to initiatives like SoC... and exchanges with other devs are now flowing much more naturally ;-)
I personally feel the difference!

And for you users?

You will have to run a recent distribution offering KF5, this may be problematic at the beginning (you can stick to 0.9.10)...
Then to reward you if you follow our progression, a few new features to test: ripple delete, stem audio export... Several bugs fixed, maybe some new introduced in the port process :-\

Please test a dev version or a beta (knowing it is a pre-release) and let us know!

kdebugsettings

Sun, 03/01/2015 - 18:17

History:

Some weeks ago I spoke with David how to configure what debug to show in qt5 (now it uses qloggingcategory)

In kde4 time we had kdebugdialog. It allowed us to define some debug areas.

But we are not able to extend it because it was in kdelibs4support module and it was kdebug specific.

Qt5 doesn’t provide application to do it.

Application:

So I decided to create a new application named “kdebugsettings” (c) David :)

This application worked as old kdebugdialog, we have a file which defines categories.

This file is named kde.categories.

I added debug area that I found in source code. More areas will add in the future.

It will allow to generate qCDebug rule.

In kdebugsettings we have 2 tabs, one for kde applications which are defined in kde.categories and another one which allows to define custom rules (if you want to show warning/debug/all, enable/disable it).

Where to find it ?

It is stored in projects.kde.org, in playground/util module.

You can test it and report bug/feature etc.

Future:

I hope for 15.08 to release it.

Help wanted: Photoshop

Sun, 03/01/2015 - 11:21

As part of KDE Frameworks, we have a collection of QImage plugins that allow Qt applications to read various types of image files not natively supported by Qt. I’ve recently overhauled the one that reads Photoshop images (PSD files) but, without access to Photoshop, I have no way to create images that test the code. The one test image I have, I created using the Gimp, which is less than ideal when I want to test compatibility with Photoshop itself.

So, if you have access to Photoshop (Photoshop Elements might be sufficient, I’m not sure) and would be willing to make some test images (in pairs – one PSD, one PNG) of various specific configurations and in various save formats, please do get in touch (alexmerry at kde dot org, alexmerry on IRC, or just post a comment here).

To the extent that the simple images I require would be copyrightable, you would need to be willing to license them under the LGPLv2+ or a permissive license (CC-BY-SA would be fine, for example).


node.js experience wanted

Sat, 02/28/2015 - 22:28

Hello all,

If there's anyone in the community, or even just reading this blog, that has experience with node.js and a bit of time I would like to recruit you for a special task. The task is to get bodega-server (and maybe the webapp or admin client too if you're so inclined) to actually work again. It worked at some point in the past year from what I hear, but currently it just spews 404 error pages for any api call it gets. I gather that this is because the nodes that it uses have changed their api since it was written. My time is limited and I've poked it enough to not give warnings at runtime anymore, but someone that really knows the ins and outs of node.js could probably fix it much faster than I so I am asking for such a brave soul to come forward and get the next generation software/data/"stuff" distribution system to do so. I know you're out there and you're considering, stop considering, hop on #kde-devel or #kde-www or anywhere on freenode and find me or others trying to get this going. Or just look at the code itself here and throw me some pointers.

I can't promise much except fame, thanks, admiration of your peers, etc. but hopefully that's enough.

P.S. this couldn't happen soon enough, ocs/attica, knewstuff, and opendesktop/kde-look, etc. are really showing their age. Having bodega working would make a lot of awesome things possible again.

Qactus is out in the wild

Fri, 02/27/2015 - 20:18

Qactus, a Qt-based OBS notifier, is out in the wild. Version 0.4.0 is the first release.
I started it a long time ago together with Sivan Greenberg as a personal project for learning Qt. And now it’s back into life :)

It features
– Build status viewer
– Row editor with autocompleter for project, package, repository and arch
– Submit requests viewer
– Bugs

This application is possible thanks to Marcus ‘darix’ Rueckert. He has helped me getting further knowledge of the OBS API.

I think this version is usable. So, why don’t you give it a try?
The source code is hosted on GitHub.

qactus_040_1 qactus_040_3 qactus_040_2

LAX, SCALE, KDE, SUSE, GNOME and ownCloud

Fri, 02/27/2015 - 16:46
Lobby of the venueBack home. Tired and jetlaggy, but satisfied: SCALE rocked!
SCALE loves ownCloudThe 13th South California Linux Expo was awesome! It is the biggest LinuxFest in the USA. While decidedly different in nature from Europe's biggest Linux event that that took place just three weeks prior (FOSDEM), we met similarly enthusiastic existing and future users. Conversations were also similar: about half the visitors already knew ownCloud, often using it or planning on deploying it; and the other half was more than a little delighted to hear about it, often exclaiming they had been looking for 'something like that' for a while. Negativity was extremely rare: I don't recall a single negative comment at SCALE (merely a few people who liked ownCloud but had no use for it personally), FOSDEM had one conversation starting unpleasantly but quickly turning around - even though one feature of ownCloud wasn't up to snuff, the user was happy with the experience as a whole.
Before the action started!
For most users, ownCloud was simply a wonderful product and they used it at home, deployed it for customers or managed it in their company. Some asked what features were coming or just arrived in ownCloud 8, or asked about the state of specific features and in more than one occasion they very enthusiastically told me how excited they were about ownCloud, how they loved it and how they were telling everybody to use it!

ownCloud to-goThose who didn't know ownCloud were almost invariably surprised and excited. I can't count the times I heard "wow, why did I never hear about this before" and "dude, I've been looking for something like this for ever!". Often, people wondered how long ownCloud had been around (we just turned five), if it was open source (yes, with love), how many people contributed to it (719 and counting) and how many users it has (we guestimate over 2 million, with 500,000 in this single deployment alone). Oh, and, does it scale? The deployment linked above and a mention of users like CERN can put most concerns to rest. Yes, ownCloud scales from Raspberry Pi to Atom Smashing size.

What came up a few times as barriers to their future usage of ownCloud was pretty much what I discussed before. Running a server at home is not easy and I walked by the EFF booth to ask about progress on Let's Encrypt to ask about the progress of solving one aspect of that problem: more easily getting SSL certificates. I was told the project is on track for the 2nd half of this year.
Frank and Bryan Lunduke
It is wonderful to have such energizing, positive, enthusiastic users - and to have such an enthusiastic booth crew to talk to them as well. At the booth we had Frank, Matt, Ron, Camila and myself. Awesome it was and we had great fun! Below a timelapse video of Saturday morning. It was still rather quiet but it is nice to see us jump around!



Stuff and talkJust like at FOSDEM, we brought ownCloud stickers, hand outs explaining ownCloud to users and developers as well as some posters for the booth and pins to give out. This was all very much appreciated - I estimate we gave out about 400 hand outs and 500 or so stickers as well as about 50-100 pins.

Sunday at 3PM, I gave a talk about Privacy and ownCloud, with Frank finishing off with a section about his talk at MIT where he discussed ownCloud's Federated Cloud sharing feature and where it is going. The talk was well received; I think the angle I took to privacy (inspired by my background in psychology) spoke to the audience and Frank's description of federation and how it's done in ownCloud was very interesting. owncloud.org and owncloud.com will feature blogs with some more information about this soon.

FriendsBig, big booth!I also walked by the booths of 'old friends' - the openSUSE/GNOME/KDE crew in particular, it was awesome to meet them. Some I hadn't seen in years, others I met for the first time. They did an amazing job and richly deserve the reward they earned for most Stunningly Amazing Booth Crew (don't know the real name of the booth award but that's what it should be). If you think that 'just' GNOME an KDE being incorporated in the openSUSE booth isn't enough - Master Planner of the Booths Drew aims to bring in Enlightenment and XFCE as well next year. Supposedly a Trello board has been set up already. I bet it won't be long before it has grown to the point where the SCALE organization needs to give the 'openSUSE booth & friends' a separate hall at SCALE...

I have to note that it was thanks to our green friends that I could hang up the ownCloud flyers - they lend me some (green!) tape to do that.

The KDE booth had a bunch of terribly cool stickers (I only now realize I forgot to get one for myself!) as well as the "frameworks 5" flyers. I could only bring, like, 5 t-shirts and a dozen old 'join-the-game' flyers so I'm glad Bert Yerke and his wife, who formed the awesome local KDE team, had created the other materials. We already discussed 2016, as they have plenty of ideas on how to improve the booth!
Awesome stickers...
If you, dear reader, want to help out at the KDE or ownCloud booth next year - let me know, either in the comments or by mail. I can promise you: it is awesomely fun and by far not as scary as you might think! Bert and Matt and everybody who has ever been at a KDE, openSUSE, ownCloud or other FOSS booth can attest to that: it is a great way of getting involved and making a big difference!

Bonus points for who finds a suitable meaning for the one item in the title which isn't yet an acrynym ;-)

Updated Windows Builds

Fri, 02/27/2015 - 14:23

 

We prepared new Windows builds today. They contain the following updates:

  • Improved brush presets. The existing preset set wasn’t optimized for big brushes, so Scott Petrovic took a look at all of them and optimized where possible
  • You can now disable the on-canvas message that pops up when zooming, rotating etc. This might solve some performance issues for some people
  • We increased the amount of memory available for G’Mic even more. This may mean that on big, beefy Windows machines you can now use G’Mic, but on other, less beefy machines filters might still crash. G’Mic is an awesome tool, but keep in mind that it’s a research project and that its Windows support is experimental.

We’ll move the new builds to the official download location as soon as possible, but in the meantime, here are the downloads:

 

Very nice screenshot tour from softpedia

Fri, 02/27/2015 - 14:23

full-screen-wee

Softpedia showcases Kubuntu Vivid Beta 1 with a screenshot tour.

Calligra 2.9 Released

Thu, 02/26/2015 - 19:21

We are happy to announce the release of final version 2.9 of the Calligra Suite, Calligra Active and the Calligra Office Engine. This version is the result of thousands of changes which provide new features, polishing of the user experience and bug fixes.

Support Calligra!

What’s in the Box?

ImagineFX Artist Choice AwardThe 2.9 release is so far the biggest release for Krita, the award-winning free and open source digital painting application. Eleven out of twelve of the features were requested by users and funded by Krita’s first Kickstarter action and the twelfth feature will come in 2.9.1!

  • Support for loading and showing multiple images in one window, and viewing any given image in multiple views and windows.
  • Fully integrated the G’Mic set of image manipulation tools, enabling artists to, for instance, greatly speed-up their workflow.
  • Greatly extended support for painting in HDR mode, making it a truly creative tool.
  • New perspective painting assistants to new color selectors, improved transform tools and non-destructive transformation masks, brush engine improvements, workflow improvements, new filters, support for creating and installing resource packs (brushes, gradients, patterns) and many more.
  • More details on krita.org

//www.peppercarrot.com)

Professional artwork by David Revoy made with Krita (http://www.peppercarrot.com)


The debut of Calligra Gemini, a novel mix of a traditional desktop app and a touch-friendly tablet app.
It encases Calligra’s word processor and presentation apps. (details)

Text document edited on laptop computerThe same text document in tablet mode

The same text document edited on laptop computer and in tablet mode


Kexi, visual data-oriented apps builder received over 150 improvements that make it extra stable and easy to use.

  • Newer technologies have been employed for the tabular (data grid) views and forms.
  • Report Designer, Query Designer and data import assistants have improved substantially. (details)
  • All that is spiced with a dedicated support for KDE Plasma 5’s look and feel.
  • At the organizational level Kexi gained a corporate partner, Milo Solutions (details)
    The 2.9 release already contains contributions from Milo software engineer, Roman Shtemberko. (read Roman’s experience)

New table view in Kexi 2.9

New table view in Kexi 2.9


Unmatched integration: Displaying office documents in Okular, KDE’s universal document viewer. For displaying many types of documents Calligra Office Engine has been used, the same that forms a pillar of document viewers on Nokia N9 and Jolla smartphones, COffice Android app and more. (details)

Calligra document plugin for Okular

Calligra document plugin for Okular
showing a DOC file


Dozens of general improvements in common Calligra features as well as Calligra Sheets, Words are present in the 2.9 series. For details jump to the Beta 1, Beta 2 and Beta 3 change logs.

Try It Out

Download small The source code of the release is available for download here: calligra-2.9.0.tar.xz.
Also translations to many languages and MD5 sums.
Alternatively, you can download binaries for many Linux distributions and for Windows.


What’s Next and How to Help?

We have approached the era of 2.9. The next step, Calligra 3.0, will be based on new technologies. Expect it later in 2015.

You can meet us to share your thoughts or offer your support on general Calligra forums or dedicated to Kexi or Krita. Many improvements are only possible thanks to the fact that we’re working together within the awesome community.

(Some Calligra apps need new maintainers, you can become one, it’s fun!) How and Why to Support Calligra?

Calligra apps may be totally free, but their development is costly. Power, hardware, office space, internet access, traveling for meetings – everything costs. Direct donation is the easiest and fastest way to efficiently support your favourite applications. Everyone, regardless of any degree of involvement can do so. You can choose to:
Heart Support entire Calligra indirectly by donating to KDE, the parent organization and community of Calligra: http://www.kde.org/community/donations.

Heart Support Krita directly by donating to the Krita Foundation, to support Krita development in general or development of a specific feature: https://krita.org/support-us/donations.

Heart Support Kexi directly by donating to its current BountySource fundraiser, supporting development of a specific feature, or the team in general: https://www.bountysource.com/teams/kexi.


About the Calligra Suite

Calligra Suite is a graphic art and office suite developed by the KDE community. It is available for desktop PCs, tablet computers and smartphones. It contains applications for word processing, spreadsheets, presentation, databases, vector graphics and digital painting. For more information visit calligra.org.


About KDE

KDE is an international technology team that creates free and open source software for desktop and portable computing. Among KDE’s products are a modern desktop system for Linux and UNIX platforms, comprehensive office productivity and groupware suites and hundreds of software titles in many categories including Internet, multimedia, entertainment, education, graphics and software development. KDE’s software available in more than 60 languages on Linux, BSD, Solaris, Windows and Mac OS X.

} .button:hover{ padding:11px 32px; border:solid 1px #004F72; -webkit-border-radius:10px; -moz-border-radius:10px; border-radius: 10px; font:18px Arial, Helvetica, sans-serif; font-weight:bold; color:#E5FFFF; background-color:#3BA4C7; background-image: -moz-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -webkit-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -o-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -ms-linear-gradient(top, #3BA4C7 0% ,#1982A5 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1982A5', endColorstr='#1982A5',GradientType=0 ); background-image: linear-gradient(top, #3BA4C7 0% ,#1982A5 100%); -webkit-box-shadow:0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; box-shadow:0px 0px 2px #bababa, inset 0px 0px 1px #ffffff;

} .button:active{ padding:11px 32px; border:solid 1px #004F72; -webkit-border-radius:10px; -moz-border-radius:10px; border-radius: 10px; font:18px Arial, Helvetica, sans-serif; font-weight:bold; color:#E5FFFF; background-color:#3BA4C7; background-image: -moz-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -webkit-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -o-linear-gradient(top, #3BA4C7 0%, #1982A5 100%); background-image: -ms-linear-gradient(top, #3BA4C7 0% ,#1982A5 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#1982A5', endColorstr='#1982A5',GradientType=0 ); background-image: linear-gradient(top, #3BA4C7 0% ,#1982A5 100%); -webkit-box-shadow:0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; -moz-box-shadow: 0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; box-shadow:0px 0px 2px #bababa, inset 0px 0px 1px #ffffff; }

.button a,.button a:link, .button a:visited, .button a:hover, .button a:active { color:#E5FFFF; } -->

Kubuntu Vivid Beta 1

Thu, 02/26/2015 - 18:14

The first Beta of Vivid (to become 15.04) has now been released!

The Beta-1 images can be downloaded from: http://cdimage.ubuntu.com/kubuntu/releases/vivid/beta-1/

More information on Kubuntu Beta-1 can be found here: https://wiki.kubuntu.org/VividVervet/Beta1/Kubuntu

The first Kubuntu Sprint I organized

Thu, 02/26/2015 - 13:43

Out of the need to motivate us and start working hard came the opportunity for me to organize a Kubuntu Sprint to work on the new Kubuntu site.

The main problem: Decide whether to use a WordPress  theme made by an intern or pick one from the WordPress Library.

I can happily say that I worked for several hours together with Cosmin Seviciu, and at some point Jonathan Riddell joined us via a video conference.

image

image

The conclusions and event progress can be found in the IRC logs and the mail list archive.

And of course, let’s not forget to thank my beautiful wife for her support and help.

Student papers, Reda report amendments, birthday and more!

Thu, 02/26/2015 - 11:23

I had two rather busy weeks doing plenty of exciting things. It felt really productive and fun. However when I spoke about it with friends recently, they said they had no clue what I was working on and sometimes did not even know where exactly I was traveling. So, there you have it: The Reda report needed amending, I am preparing a presentation about the role of patents in software, at Endocode we are developing on the company strategy, there was a CoreOS meetup, an Endocode meetup, and more work on the employee share program. My wife had her birthday and we partied a lot. The Open Invention Network is preparing an update to it’s Linux System Definition. The students presented the remaining papers for the winter term “Open Source and Intellectual Property” course at TU Berlin. And I had a flu. Want to know more?

In January Julia Reda presented her report on harmonization of copyright in the EU. Through OpenforumEurope, I participated with others in providing input for the report. Once the report had been presented, feedback was opened again in the form of amendments. The same group is now preparing the submission of suggested amendments to the “Reda Report”. This is one of the most exciting processes at EU level at the moment, I am very glad to be part of it.

The Joint Research Center of the European Commission will have a conference on “Innovation in a European Digital Single Market – The Role of Patents” on March 17. I was invited to speak about the patentability of software. In the speaker panel the number of proponents clearly outweights the number of critical voices. Because of that I will focus on giving a comprehensive overview of the reasons why the Free Software community is rather critical towards software patents. To develop the presentation, I am consulting with FSFE, OpenforumAcademy and ideally as many other experts as possible.

I wrote about Endocode and it’s philosophy here. The Endocode experiment so far has been going really well, an awesome team has assembled and we are working on some super-interesting stuff, as you can see in our Github account. It is time to look at what to do next, now that the initial goals have been reached. We had a first of a series of workshops with an external moderator, and started discussing what makes Endocode special, and in which direction we want it to develop.

Together with many other Endocoders, I attended the Rocket and the App Container Spec meetup. Containers are an exciting technology, and Endocode is working both in deploying them in projects as well as developing on some of the basic management tools. Jonathan Boulle presented especially about the app container spec is developed collaboratively out in the open. Great event, great presentation and free drinks, pizza and sushi. It feels great to be diving into stuff like that.

Endocode also has meetups (yay). Our meetups are, at least for now, internal events where Endocoders share interesting stuff they hack on or learned. The topics are not necessarily work related, more importantly they should be fascinating :-) This time, on February 10, it involved a Kinect and tracking skeletons and people that looked like ogers with two heads.

Right before that we had a presentation by the lawyer we work with about legal aspects of setting up an employee share program. It is not as easy as it sounds, mostly due to issues of taxation. “Virtual stocks” are an option. They have the disadvantage of not giving the employee an actual voting influence on the company. We will have to go back to the drawing board with this idea and discuss it with the employees.

February 16 is Alexandra’s birthday. We started to celebrate with breakfast at one of our favorite places, Tomasa in Kreuzberg. We both had to go to work that day. After a top-secret meeting :-) until 7pm I came home to find the house packed with friends. Some of them had been expected, and some simply drove for an hour to stop by. What a nice surprise!

IMG_20150216_103620.jpg IMG_20150216_103631.jpg

The Open Invention Network is preparing an update to the Linux System Definition. The Linux System Definition defines the technical scope of OIN’s patent non-aggression community. Since the FLOSS ecosystem evolves at a pretty fast pace, the definition is updated on a regular basis. The process involves many stakeholders and it is important to make sure everybody is well informed and on the same page. This is an exciting process, even though it involves numerous phone conferences with Japan and the west coast at strange times.

The semester is almost over, so the course “Open Source and IP” at TU Berlin is wrapping up. The final student presentations where held on Feb 11, then it was time to grade the papers. The attendees were international and interdisciplinary again, which made for quite some interesting results. Then I caught a flu and was out for a day.

Finally last week I went to Erfurt for some C++ and Qt hacking. This is some rare fun these days, so I really enjoyed it. I do still hope to find more time in the future to do some technical work. It does seem like a dream, though. On the weekend we did some more birthday partying. Now it is time to do the same thing all over again :-)


Filed under: Coding, CreativeDestruction, English, FLOSS, KDE, OSS

Krita 2.9.0: the Kickstarter Release

Wed, 02/25/2015 - 22:46

The culmination of over eight months of work, Krita 2.9 is the biggest Krita release until now! It’s so big, we can’t just do the release announcement in only one page, we’ve had to split it up into separate pages! Last year, 2014, was a huge year for Krita. We published Krita on Steam, we showed off Krita at SIGGRAPH, we got Krita reviewed in ImagineFX, gaining the Artist’s choice accolade —  and we got our first Kickstarter campaign more than funded, too! This meant that more work has gone into Krita than ever before.

And it shows: here are the results. Dozens of new features, improved functions, fixed bugs, spit and polish all over the place.  The initial port to OSX. Some of the new features took more than two years to implement, and others are a direct result of your support!

Eleven of the twelve Kickstarter-funded features are in, and we’ll be doing the last one for the next 2.9 release — 2.9.1. Krita can now open more than one image in a window, and show an image in more than one view or window. Great perspective drawing assistants. Creative painting in HDR more is now not just possible, it’s fun. Lots and lots of workflow improvements. So, be prepared… Wolthera and Scott have prepared a big, big overview of all the changes for you:

Overview of New Features and Release Notes
https://krita.org/krita-2-9-the-kickstarter-release/

Without all your support, whether through direct donations, Steam sales, the Kickstarter campaign, the work of testers and bug reporters and documentation, tutorial, translation and code contributors, Krita would never have gotten this far! So, thanks and hugs all around!

Enjoy!

 

mascot_20150204_kiki_c_1920x1080

Kiki in Spring Time, by Tyson Tan

Asynchronous in Russia

Wed, 02/25/2015 - 21:05

A couple of months ago, I had the pleasure to listen to and speak in front of some of the famous people of the C++ world (I’ve just realized, my talk even ended up on isocpp.org thanks to Jens).

C++ in Moscow

Now, a continuation (pun intended) of that story is happening. I was invited by Sergey Platonov to speak at the C++ Russia conference in Moscow alongside Sean Parent and Bartosz Milewski (very humbled and thrilled to be in the same group as them).

The presentation will be on the task scheduling using the continuation monad. It will be based on parts of my Berlin talk, but with much less time spent on monads, and with the second part about continuations significantly expanded.

Ninja

Wed, 02/25/2015 - 18:13

Last week I decided to evaluate “Ninja”.

What is it ?

It’s a build system developed by Chrome for Chrome. Evan Martin Developed it during his work.

He wanted to create a fast build system. It was a success :)

How to use it ?

Easy you need to create a file named Ninja.build which defines all dependancy as a Makefile.

But it’s not a problem because CMake is able to generate it for you.

So for KDE it’s not a problem as we use CMake to generate projects.

So now the command line:

“cmake -GNinja ../”

Too bad we can’t override default cmake generator. So I created a alias on my computer to avoid to write each time a big command line:

Add “alias cmninja=’cmake -GNinja’” in .alias

After that you call it you will have a “ninja.build” in build directory.

Now for launching the build it it’s very easy: write “ninja”

make <-> Ninja commands:

Ninja has same commands as Make.

make clean <-> ninja -t clean
make -j8   <-> ninja -j8
make install <-> ninja install
make -k <-> ninja -k[X] (it will stop after X failed)

Pro/Cons ?

Pro:

  • Faster as Make when we build from scratch
  • Less verbose as make
  • Very fast when we build and there is no files which changed (the time can be divided by 3 some time). So very fast when we rebuild all kde :)

Cons:

  • We don’t have color output.
  • We can’t build in subdirectory. For example if I build kdepim and I hack kmail, I can go to kmail subdirectory. I very bad for it.
  • qmake doesn’t generate ninja.build so we can’t use in qmake project.

Can I use in kdesrc-build?

Yes you can ! I use it.

But we need to add “custom-build-command ninja” in each module-set as:

module-set lokalize

repository kde-projects

use-modules lokalize

custom-build-command ninja

end module

We can’t override it in top level. It’s not good.

You need to add  this line in global section:

cmake-options -GNinja -DCMAKE_BUILD_TYPE:STRING=debug -DKDE4_BUILD_TESTS=true

(just adds “-GNinja” to your current cmake-options)

So how I use it?

I use it for building all plasma5/kf5, it’s very fast to build. So I am happy.

For kdepim I still use make as I want to build in subdirectory.

More information:

You can have more information here: http://martine.github.io/ninja/manual.html

QmlBook Making Progress

Wed, 02/25/2015 - 07:49

It has been a long time since the last update of QmlBook was announced – but the project is definitely live and kicking. Jürgen has put in a lot of great work into the contents and gotten the collaborative work over on github started. To simplify the publication, the contents has been moved to github hosting, but you can still use the old qmlbook.org (and qmlbook.com) addresses to get there.

qmlbook-screenshotThe reason for the standstill on the qmlbook.org/com sites, and much of the perceived lack of progress is due to my personal time situation. Small children and family life takes time, as does my work (which is awesome and includes Qt/QML – go Pelagicore). Unfortunately, I’m a bit of an optimist, so I want to, and truly believe that I will have time to work on side projects such as this book. But the 24h/day limit sucks, so sometimes I realize that I fail to do so.

However, this is not a post where I complain over my own situation – instead – I want to thank all the contributors who keep feeding us issue tickets via github! I would also like to thank our readers – it is great to hear from you! And finally, I’d like to thank Jürgen who has put down a lot of work and kept the project moving forward.

It is not my intention to leave this project, I’m just short on time at the moment due to other awesome things in my life (kids, wife, work) – I’ll be back!

digiKam Software Collection 4.8.0 released...

Tue, 02/24/2015 - 21:48

digikam4.8.0

Dear digiKam fans and users,

The digiKam Team is proud to announce the release of digiKam Software Collection 4.8.0. This release includes a new sets of bugs fixes from Maik Qualmann who maintain KDE4 version while KF5 port is under progress.

read more

CDS: Infernalis Call for Blueprints

Tue, 02/24/2015 - 17:27
The "Ceph Developer Summit" for the Infernalis release is on the way. The summit is planed for 03. and 04. March. The blueprint submission period started on 16. February and will end 27. February 2015. 
Do you miss something in Ceph or plan to develop some feature for the next release? It's your chance to submit a blueprint here.

Rootless Xwayland server integration into KWin

Tue, 02/24/2015 - 16:26

Over the last weeks I concentrated my KWin related work on trying to integrate the Xwayland server properly. Xwayland is an interesting step on the way to Wayland as it maps X11 windows to Wayland surfaces. But it also needs an X11 window manager to manage the X11 windows. Overall it allows us to start integrating Wayland into the compositor without too much breakage. It’s still X11 after all, so our existing code base continues to work. And gruadually functionality can be replaced with the Wayland equivalent, so that we can afterwards start integrating proper Wayland clients.

Integrating Xwayland showed interesting challenges. KWin as an X11 window manager requires a running X server prior to start. It also can only communicate with one X server, the code base has many hard constraints on being only one X server. This means if we want to use Xwayland the Xwayland server must be the one KWin uses. Which means Xwayland must be started prior to KWin’s X11 usage. So far KWin also enforced the usage of the “xcb” QPA plugin, the windowing system abstraction plugin for the X world in Qt. This plugin gets loaded directly at application startup and aborts if there is no X server it can connect to.

As you can see KWin needs to ensure that Xwayland is running prior to the application startup. But Xwayland requires a running Wayland server, which is supposed to be provided by KWin and for processing Wayland events we need a running event loop, which is only present after the application started. Looks like we are caught in a dependency loop:
circular-dependencies

After some hacking and experimenting I found a solution which can start the Wayland server and Xwayland prior to the application startup, but it’s considerable fragile and it can only be a temporary solution. In the long run it would of course be better if KWin could use the Wayland QPA plugin provided by QtWayland to connect to it’s own Wayland server and start Xwayland later-on.

Nevertheless I succeeded in getting KWin connect to the Xwayland server and to start transitioning X clients to be rendered using Wayland buffers instead of performing texture from X11 pixmap:

Aus 2015-02-11

But it just hit another problem: it didn’t support accelerated OpenGL rendering on the X server. That’s quite a problem if no X11 client connected to the Xwayland server can use proper OpenGL and it’s even a problem for KWin as KWin uses QtQuick scenes which use the X server. So KWin itself fails to render accelerated UI. Compositing is not affected as we don’t use Qt for that.

The reason for the problem is that Xwayland expects the Wayland “wl_drm” interface to be present. This interface gets created when binding an EGLDisplay to a Wayland display. In case of KWin the EGLDisplay exists after the Compositor is fully initialized. And again we are in a dependency chain: the Compositor gets created and uses the Workspace class. This class controls the complete startup of the X11 window manager which means it’s highly X11 dependent and requires Xwayland to be present. Again we are in a dependency loop.

Breaking up this dependency loop is quite tricky. The Compositor is too deeply nested into the application to be considered started before creating the QApplication. This means we must be able to create the QApplication before we have an X Server running. This means no usage of xcb QPA plugin. As KWin is going to start a Wayland server anyway, it would be good to get KWin to use the wayland QPA plugin.

This was again quite a challenge. The QtWayland QPA plugin performs blocking roundtrips to the Wayland server in the main thread during startup. But the Wayland server is running in the same thread. So a blocking call to the Wayland server dead locks the server. It’s not possible to move the Wayland server at that point into a thread as one cannot start a QThread prior to having the QCoreApplication created.

The solution I developed for this problem involves creating an own event dispatcher prior to creating the QApplication. So we have the event dispatching for the Wayland server ready to use. Just the event loop is not yet running. This allowed to provide a small patch for QtWayland to run any event dispatcher set before creating the QApplication. A test application in the kwayland repository is also adjusted to make use of it (the test application is also able to start an Xwayland server prior to creating the QApplication).

Unfortunately there is still another issue: QtWayland might call eglInitialize in the main thread which again performs a blocking wayland call. This is a problem I haven’t solved yet and currently just hacked around by disabling OpenGL in Qt (which breaks the QtQuick views).

Being able to use the Wayland QPA just creates a new bunch of problems for KWin. KWin still needs to use X11 and thus needs to create an xcb connection. Just that this wouldn’t help much. KWin on X11 doesn’t init the xcb connection, it’s the xcb plugin in Qt which does it and we only access it via QX11Info. Thus KWin needs to be moved away from the usage. Luckily in many cases we already wrapped the functionality as going through the QPA interface (which QX11Info does internally) is too expensive for our use cases. So the changes are not that invasive. But KWin also uses frameworks like KF5WindowSystem which use QX11Info. Even more those frameworks were properly fixed to perform platform checks and don’t do the X11 specific code if it’s not on platform xcb. But it’s providing important X11 window manager functionality for KWin. For some classes like KWindowInfo and KWindowSystem the fix was trivial: don’t use in KWin. There’s also the more low-level NETRootInfo and NETWinInfo and that’s what KWin should use – usage of the KWindowInfo or KWindowSystem inside KWin can be considered a bug. For some other classes it was already partially possible to be used without the xcb plugin on X11. The classes are only used if we compile with xcb present, so it was possible to add more xcb specific methods which can then be used by KWin even if we do not use platform xcb. The required changes will be part of frameworks 5.8 release.

To summary where we are now: we can start kwin_wayland on platform wayland connecting to a Wayland server started by kwin_wayland, we do not require QX11Info in (most of) KF5WindowSystem and KWin. We are a good step closer to the aim, but still not there. The dependency loop is still in place: Workspace starts the Compositor, the Compositor creates the EGLDisplay which is needed to start Xwayland, which provides X11 which is needed for starting the Workspace.

This means: reorder the startup. We need to be able to start the Compositor prior to the Workspace (which could be interesting for kwin_x11, too, as it could improve persumed startup time). This task was easier than expected. Workspace got split into many modules over the last years and most modules which need to be created prior to creating the Compositor do not depend on Workspace and do not depend on X11. In the few cases where it actually does depend on X11 it was not difficult to delay the X11 specific code till after the X11 connection is created.

With all that in place I was able to delay starting Xwayland to after the Compositor is created and Xwayland can provide OpenGL to the connected clients:

This screenshot shows kwin_wayland running on top of Weston connected to an Xwayland server supporting proper OpenGL as can be seen by the output of glxinfo (in the konsole) and glxgears. Also plasmoidviewer just works on top of this X stack.

Of course there is still some work to be done till this is production ready code, but it looks really promising and I hope to have this ready for the KWin 5.3 release. The aim is also to get more and more features changed to use the Wayland functionality instead of the X11 functionality. E.g. for damage event handling it already uses the damage event of a wl_surface instead of creating an X11 damage handle. This makes supporting Wayland clients easier afterwards.

Campaign to Better Involve Users

Tue, 02/24/2015 - 14:33

Sign and share our campaign to create tools that allow users to actively participate in the development of products.

Keep on reading: Campaign to Better Involve Users

Pages