KDE on Windows status update
Disclaimer: No, it's not dead :)
During Randa we've discussed the KDE on Windows road map. There's been a brisk involvement of the Randa Meetings participants in the platform discussion sessions on Tuesday.
Here's a brief summary of what's been going on.
Installer creation
Traditionally the KDE on Windows project has been focused on providing one single installler which provides the whole KDE experience in one installer (that means, having one installer which was capable of installing all of KDE, even including the Plasma shell). We've (finally?) come to conclusion this is not what the average Windows users wants. People tend to install the application they want, but nothing else.
Our plan now is to provide single application installers for KDE software. That means having an installer which just installs Kate, or Krita, or KDevelop, or Marble, whatever. No "KDE installer" where you can select the individual applications.
We're just at the beginning of the initiative (with lots of bug fixing going on behind the scenes), but here's the current list of applications being available on Windows:
Hannah von Reth is working hard on creating even more installer packages!
Continuous Integration on Windows
We're working on Windows CI for KDE. More precisely, that means we're turning the original KDE CI infrastructure into a system where we can also build the KDE projects on Windows. This is all work in progress, but we expect to have the first set of jobs running on our sandbox CI system running until the end of the week.
Up to now, our plan is to reuse the existing Emerge infrastructure for CI as much as possible, which also covers building all the dependencies of Qt5.
Emerge
Emerge is a tool to build the KDE sources and its third-party requirements on MS Windows. Traditionally. It's way more than that today: With Emerge it's possible to build any project if you just provide a recipe for it, highly similar to comparable tools such as Homebrew on OS X. If you have a complex dependency chain, and need a user space package manager (which builds from source), then Emerge is the tool to use.
During Randa we have polished the OS X and Linux ports of emerge, making it super easy to build projects including all its dependencies even on those platforms. The support is not official yet, it's still work in progress. We'll officially announce as soon as this gets ready. Just one example: we've successfully built Kate on OS X using Emerge with a stock Qt5.
What else has changed in Emerge:
- Almost all custom Qt patches could be dropped in emerge.git
- Most of the missing functionality is now upstream
- Qt 5.6.1 used by default in the Qt recipes
- Breeze-icons recipe now installs icons as RCC (see David Faure's blog for more information about this feature)
- Emerge prepared for being integrated as build tool in the Windows CI
- Now possible to install dependencies, store build artifacts in zip files, etc.
- Build artifacts can be re-used for other builds
Landing page
We've also cleaned up the KDE on Windows landing page a lot:
https://community.kde.org/Windows
Tons of information the average user isn't interested in got removed or moved to sub pages.
Verdict
KDE on Windows is not dead, as some people from the outside tend to think. It's true we're no longer willing to maintain a "KDE installer" as such, but instead focus on bringing individual apps which are ready on Windows to this platform.
Keep your eye on https://community.kde.org/Windows to get notified about new packages.
Actually, a big thank goes to Hannah von Reth, who's the actual maintainer of Emerge, who does a great job bringing this super useful tool forward and does a great job fixing tons of Windows issues in KDE projects.
Apart from that: Which favorite KDE application would you like to install yourself on Windows?
Support us
The Randa Meetings and other sprints indeed bring our software stack forward! Nowhere else such a nice group of KDE developers can meet up to solve such problems together! Please check out the fundraiser for the ongoing Randa Meetings.