Elisa in FreeBSD

Elisa (product page, release announcements blog) is a music player designer for excellent integration into the KDE Plasma desktop (but of course it runs everywhere, including some non-Free platforms). I had used it a few times, but had not gotten around to packaging it. So today I threw together a FreeBSD port of Elisa, and you’ll be able to install it from official packages whenever the package cluster gets around to it.

Screenshot of pkg info for ElisaI say “threw together” because it took me only a half hour (most of that was just building it a half-dozen times in different ways). The Elisa code itself is very straightforward and nice. It doesn’t even spit out a single warning with Clang 6 on FreeBSD. That’s an indicator (for me, anyway) of good code. So if you want more music on FreeBSD, it’s there! (And the multimedia controls work from the SDDM lock screen, too)

Freenode#live post

 

Photo of a KDE Slimbook and a pint

Slimbook and a pint of Cider

The weekend of 3 and 4 November Dave and I went to staff the KDE booth at Freenode#live, in Bristol. I had never been in that corner of England before, It turns out to have hills, and a river, and tides. Often an event brings me to a city, and then out, without seeing much of it. This time I traveled in early and left late the day after the event so I had some time to wander around, and it was quite worthwhile.

Turns out there is quite a lot of cider available, and the barman gave me an extensive education on the history of cider and a bit on apple cultivation when I asked about it. Sitting down with a Slimbook and a pint can be quite productive; I got some Calamares fixes done before the conference.

Photo of table with KDE logos

Our stand, before visitors arrived

We (as in the KDE community) have invested into getting booth materials ready for this kind of events, so we quickly had Konqui peeking at visitors and Plasma running on a range of devices (no Power9 this week, though). Dave had 3D-printed a KDE logo we stuck to the top of the monitor, and had a pile of leaflets and stickers (KDE, neon, Krita, GCompris, and some Wiki To Learn) to hand out.

Next to our stand was MineTest, with a demo and they sat hacking at the code of the game for most of the weekend. On the other side, Freenode themselves were handing our IRC.horse stickers and other goodies.

Photo of Dave talking with people

The hallway track

A conference booth isn’t just about giving away goodies, though, and we spent the weekend, 9-to-5, talking with people about the KDE community and its software products. Plasma could be seen — and played with — on the machines we had at hand, and we did some small application demo’s. As usual, people told us they used i3 — and our response as usual is that Free Software on the desktop is better than non-free software. Some people had last used KDE in 2010 or so, so we could show how the different parts now operate independently and more flexibly — and how Plasma is now pretty darn lightweight.

Here in the photo is Dave extolling the virtues of something. (I’ve edited the photo to make some people in the background un-recognizable by pasting Dave’s eyeball over their faces — I forgot to ask permission to post)

Photo of stage with presentation

Conference track

.. and a conference isn’t just about the booths and vendor stands, either. It’s about the talks. Here’s one I sat in on about business models and how licensing affects the available models (in particular with reference to recent license changes in some projects). The KDE community is interesting because it’s not one-community-one-company like a lot that I see. We have a collection of small and medium companies building on, and building with, the KDE community’s software products. I think that’s healthy and generally happy. No licensing gotcha’s for us when using Qt under the LGPL version 2.1 and KDE’s Frameworks also under the LGPL.

Two talks I would like to single out are Leslie Hawthorn and VM Brasseur, (those are YouTube links). Neither are technical talks, but social talks, about what we (as Free Software contributors) do and why, and social issues we all face — and how to bring Software Freedom to more people.

A concept I didn’t know existed was platform shaming. See above: there’s lots of ways to use Free Software from the KDE community, in combination with i3, or on Windows, and on Free Software operating systems. Those are all OK.

Photo of Dave with laptop

Bugfixing Dave

I’d like to thank Dave for being a great booth- room- and dinner-mate, and Christel and the Freenode#live crew for a wonderful well-organized weekend. Not to mention the speakers and attendees who made it a happy and instructive time.

Freenode#live

This weekend, Freenode#live is in Bristol, in the UK. It’s a FOSS-community type event. I’ll be there with David, and we’ll be doing a KDE booth to show off our technologies (which are cool) and our community (which I think is a great one). Stop by and see the Pinebook. Chat about the Nextcloud Include project. Or tell us you prefer to use i3 — that’s diversity in action (and i3 works fine together with other software from the KDE community).

October?

Gosh, you just blink and the month is over, eh.Let’s do an info-dump.

FreeBSD bits

FreeBSD ports contain Qt 5.11.2 (except for WebEngine), KDE Frameworks 5.51, KDE Plasma 5.12.7 (LTS, but there’s movement lower in the graphics stack that should allow us to update to the current feature release soon-ish), and Applications 18.08. I just updated deskutils/latte-dock to the latest 0.8.2 release. Tobias has been doing everything, updating stuff all over.

There are also things going away from FreeBSD ports. I’ll repeat for the hard-of-understanding: KDE4 ports are being removed on december 31st, 2018. We’ve notified those maintainers that we can — people using BitBounce deserve a special place and haven’t been informed, although we tried. New is that Qt4 ports are deprecated on FreeBSD and scheduled for removal on march 31st, 2019 (three months after KDE4, the main consumer, is removed). This is a bigger deprecation step, actually, since it touches applications maintained outside of kde@. The issue is simple though: Qt4 went EOL in 2015 and maintainence is increasing (e.g. for OpenSSL 1.1.1, changing C++ compilers, etc.). We have started updating default flavors (for things that have both) and informing maintainers.

KDE bits

Photo of Edinburgh from Calton Hill I went to Edinburgh to staff the KDE booth at the Embedded Linux Conference, along with Jon and Paul. I helped make lots of soup on the weekend and it was delicious. And then I spent three days from 8am to 6pm standing and talking to the 2000-or-so attendees of that conference.

It was exhausting, but worth it. Mostly the message is the same: Plasma has had lots of performance work done (for the Pinebook, among other things) and so Plasma runs on a whole range of devices, from this 2GB-ram low-power ARM64 board, to, over there, the 22-core Power 9 workstation. If you thought KDE was bloated (you mean KDE4, and last looked nearly 10 years ago, right? right) then here’s what we’ve done for you: come back and try it again.

KDE was one of only two “community” booths. The other was from Code Your Future, which is a coding school to give refugees new skills. When you spend three whole days at a booth, you hear the “pitches” around you a lot of times, so by the end of the second day I could do a pretty keen presentation for them as well. On the other side was a stand from Togán Labs, who do Yocto-based board bring-up and stuff .. not immediately our cup of tea, but I did end up talking about late-80s Canadian jazz bands with one of their developers. It’s a small-ish world.

At the end of the row was the stand from the OpenPower Foundation, with a demonstration Power9-based workstations. That’s a whole different ballgame from the low-end ARM boards, and seeing 32 hardware threads (at least, I think it was a 2-CPU times 8-core times 2-threads setup) running is pretty keen. The machine arrived with KDE Trinity installed, which .. well, I was wearing my KDE4 launch event T-shirt on tuesday and lets say that KDE3 looks even more dated than a ten-year-old conference shirt.

Rasterman beat me to it, and the machine was quickly running a gorgeous Enlightenment environment all with fancy bubbling backgrounds and other stuff that would drive me mad quite quickly. But pretty. There is Debian installed on it, so a brief chat with the people at the stand allowed us to install Plasma 5 Desktop (apt install whatever..) to check that it works nicely. And it does! The performance work done really does pay off up and down the stack.

Calamares Bits

The next Calamares release, 3.2.3, is delayed. That is at least partly due to events-preparation and general futzing-about. I was intending to get it done this week, but I can tell already that that’s not going to happen: there was an issue reported just today that definitely needs attention. So it looks like after-the-next-event, mid-november, is a good bet for that release.

Multiboot Pinebook KDE neon

Recently a KDE neon image for the Pinebook was announced. There is a new image, with a handful of fixes, which the KDE Plasma team has been working on over the past week and a half.

Photo of Pinebook

Pinebook running KDE neon

Here’s a picture of my Pinebook running KDE neon — watching Panic! At the Disco’s High Hopes — sitting in front of my monitor that’s hooked up to one of my openSUSE systems. There are still some errata, and watching video sucks up battery, but for hacking on documentation from my hammock in the garden, or doing IRC meetings it’s a really nice machine.

But one of the neat things about running KDE neon off of an SD card on the Pinebook is that it’s portable — that SD card can move around. So let’s talk about multiboot in the sense of “booting the same OS storage medium in different hardware units” rather than “booting different OS from a medium in a single hardware unit”. On these little ARM boards, u-boot does all the heavy lifting early in the boot process. So to re-use the KDE neon Pinebook image on another ARM board, the u-boot blocks need to be replaced.

I have the u-boot from a Pine64 image (I forget what) lying around, 1015 blocks of 1024 bytes, which I can dd over the u-boot blocks on the SD card, dd bs=1k conv=notrunc,sync if=uboot.img of=/dev/da0 seek=8, and then the same SD card, with the filesystem and data from the Pinebook, will boot on the Pine64 board. Of course, to move the SD card back again, I need to restore the Pinebook u-boot blocks.

Photo of a dusty circuit board

KDE neon Pinebook edition running on a Pine64, with console output

Here’s a picture of my Pineboard (the base is a piece of the garden fence, it’s Douglas pine, with 4mm threaded rods acting as the corner posts for my Pine64 mini-rack), with power and network and a serial console attached, along with the serial console output of the same.

The nice thing here is that the same software stack runs on the Pine64 but then has a wired network — which in turn means that if I switch on the other boards in that mini-rack, I’ve got a distcc-capable cluster for fast development, and vast NFS storage (served from ZFS on my FreeBSD machines) for source. I can develop in a high(er) powered environment, and then swap the card around into the Pinebook for testing-on-the-go.

So to sum up: you can multiboot the KDE neon Pinebook image on other Pine64 hardware (i.e. the Pine64 board). To do so, you need to swap around u-boot blocks. The blocks can be picked out of an image built for each board, and then a particular image (e.g. the latest KDE neon Pinebook) can be run on either board.

Everything old is new again

Just because KDE4-era software has been deprecated by the KDE-FreeBSD team in the official ports-repository, doesn’t mean we don’t care for it while we still need to. KDE4 was released on January 11th, 2008 — I still have the T-shirt — which was a very different C++ world than what we now live in. Much of the code pre-dates the availability of C++11 — certainly the availability of compilers with C++11 support. The language has changed a great deal in those ten years since the original release.

The platforms we run KDE code on have, too — FreeBSD 12 is a long way from the FreeBSD 6 or 7 that were current at release (although at the time, I was more into OpenSolaris). In particular, since then the FreeBSD world has switched over to Clang, and FreeBSD current is experimenting with Clang 7. So we’re seeing KDE4-era code being built, and running, on FreeBSD 12 with Clang 7. That’s a platform with a very different idea of what constitutes correct code, than what the code was originally written for. (Not quite as big a difference as Helio’s KDE1 efforts, though)

So, while we’re counting down to removing KDE4 from the FreeBSD ports tree, we’re also going through and fixing it to work with Clang 7, which defaults to a newer C++ standard and which is quite picky about some things. Some time in the distant past, when pointers were integers and NULL was zero, there was some confusion about booleans. So there’s lots of code that does list.contains(element) > 0 .. this must have been a trick before booleans were a supported type in all our compilers. In any case it breaks with Clang 7, since contains() returns a QBool which converts to a nullptr (when false) which isn’t comparable to the integer 0. Suffice to say I’ve spent more time reading KDE4-era code this month, than in the past two years.

However, work is proceeding apace, so if you really really want to, you can still get your old-school kicks on a new platform. Because we care about packaging things right, even when we want to get rid of it.

.. in with the New

It’s been a long time since I wrote anything about the state of current KDE software in FreeBSD. So, without further ado:

  • Qt is now at 5.10.1; work on 5.11 is proceeding. Right now, WebEngine is still at 5.9.5, and that’s remaining so for 5.11 unless we have a sudden influx of free time to work on that monster.
  • KDE Frameworks are at 5.49, which is the august 2018 release; 5.50 hasn’t come out yet but we’re ready for them when they do.
  • KDE Applications are at 18.08.0, which again is the august 2018 release; 18.08.1 was just released today.
  • KDE Plasma is at 5.12.5, so we’re one whole minor release behind (5.13.5 came out on tuesday). This is actually blocked by libinput, which is lagging in FreeBSD.
  • KDevelop version 5.2.3 is one patch level behind

So except for the Qt version, we’re keeping up reasonably well with the modern stuff. And we’ve finally joined most of the Linux distributions in deprecating KDE4 software. For KDE4-using ports that are not “ours”, we’re encouraging other ports maintainers to update them (e.g. to KF5-enabled versions) or follow in deprecating the software.

Out with the Old ..

KDE4 ports will be removed from FreeBSD ports on December 31st, 2018

The KDE-FreeBSD team met at Akademy this year, and while hacking on some other stuff, we also got around to deciding what to do with the KDE4 ports. We have wanted to get rid of them for some time, and there is an increasing pressure of maintainence on them: code written in 2003 doesn’t play well with the C++ of 2018 (in particular clang keeps getting more picky, which is good).

As for KDE4 itself: there haven’t been any upstream KDE4 releases since Applications 17.08.3, and Qt4 upon which it depends is EOL since 2015. The latest KDE Plasma desktop has been available in the official ports tree for over four months (and has been in use by users of Area51 for much much longer).

So, given that there is a viable upgrade path (although, truth be told, you’ll probably have to re-configure KMail and get used to Falkon), we’ve decided to put a four month deprecation period on all the KDE4 ports. They will be removed at the end of this year, which will free up some maintainence time for chasing the steady stream of updates from the KDE community.

Akademy, Akadeyou

Akademy is the yearly conference of the KDE community, and of KDE e.V. What makes the conference isn’t so much the technical content — see Kevin’s sketchnotes for instance — but the people. Seeing KDE Brasil grow the way it has is great (hey, people, please post a date for LaKademy). Aracele gives a good overview. Even bigger is KDE India, what a bunch of happy and talented contributors. Shout-out to Abhijeet for being one of the far-flung travelers.

I could only stay until wednesday morning, so I didn’t talk with anywhere near all the people I would have liked to sit down with. I did sit with Tobias, so that half of the KDE-FreeBSD team was hacking together, and with Leinir, and there was beer with Paul, .. with a conference of 200 people, the list of darn-didn’t-talk-to is always going to be longer than the list of good-seeing-you-again people. Such is life.

In the sense that Akademy is about me, and you, and making connections within the community, I’ll share one more anekdote: I stayed in a dorm room at the recommended hostel, and the first morning, still in my shorts, had a brief conversation in German with some guy about the ventilation mechanism in the bathroom. Then I pulled on my KDE India shirt, and the conversation turned a corner: hey, are you going to that KDE contributors thing? Turns out that roommate was also going, to his first Akademy.

Turns out, mr. Schiffner was “just a user” who “just runs the 20 Linux desktops” in a company. Wow! I’m really happy we got some “just users” at the conference, because where it’s important for the developer community to “put a face to names” to improve communication the rest of the year, it is also important for users to know that there’s regular people behind the software, as well. Personally I’d be really happy to have some user-talks; talks about deployments or specific use-cases of applications; a KDEnlive talk from a movie-maker would be keen. (That said, Paul did give a talk somewhat like that, about KDEnlive and promo films).

So, take-away things from Akademy are:

  • Debugging KConfig is full of surprises, even now, and having KDE-FreeBSD CI is really useful.
  • The Netherlands is just a local transportation network, for Itinerary.
  • Distro’s generally all feel the same pain.
  • Nobody wants to think about LDAP.
  • People are more important than things.

Coming back from the conference is always a bit weird; there is tons of neat stuff from the event still whirling around in my brain, and there’s 900 unread email messages in my inbox that need attention. I’ve sorted through most of it, done some communications things, pushed a bunch of commits to Calamares, and am now gearing up for an event next week in Brussels. But in september, things will be calm again.

(PS: gosh, I missed Carlos Soriano at the event, who has written a really cool I-went-to-Akademy from another kind of outsider’s perspective — we’re all in this Free Software thing together.)

More Laptops

One of the things to come out of Akademy is the first community release of the KDE neon Pinebook Remix image. I’ve been carrying around the Pinebook for some time — since FOSDEM, really, where I first met some of the Pine folks. At Akademy, TL was back and we (that’s a kind of royal “we”, because TL and Rohan and Bhushan and other people did all the hard work) got around to putting the finishing touches on the Pinebook image.

There’s not much to show beyond what you can see on the Dot already (my own Pinebook is looking a bit beat-up after a year, and the drawing Timothée did on it is rubbing off), really, so I’m not going to add photos: the Pinebook is a low-cost, low-power, quite adequate laptop, and it runs a modern KDE Plasma.