Status update, March 2019 March 15, 2019 on Drew DeVault's blog

My todo list is getting completed at a pace it’s never seen before, and growing at a new pace, too. This full-time FOSS gig is really killing it! As the good weather finally starts to roll in, it’s time for March’s status update. Note: I posted updates on Patreon before, but will start posting here instead. This medium doesn’t depend on a proprietary service, allows for richer content, and is useful for my supporters who support my work via other donation platforms.

Sway 1.0 has been released! I wrote a detailed write-up on the release and our future plans separately, which I encourage you to read if you haven’t already. However, I do have some additional progress to share outside of the big sway 1.0 news. In the last update, I mentioned that I got a Librem 5 devkit from Guido Günther1 at FOSDEM. My plans were to get this up and running with sway and start improving touch support, and I’ve accomplished both:

A picture of a Librem5 devkit running pmOS and sway

As you can see, I also got postmarketOS running, and I love it - I hope to work with them a lot in the future. The first patch for improving touch support in sway has landed and I’ll be writing more in the future. I also sent some patches to Purism’s virtboard project, an on-screen keyboard, making it more useful for Sway users. I hope to make an OSK of my own at some point, with multiple layouts, CJK support, and client-aware autocompletion, in the future. Until then, an improved virtboard is a nice stop-gap :) I’ve also been working on wlroots a bit, including a patch adding remote desktop support.

In other Wayland news, I’ve also taken a part time contract to build a module integrating wlroots with the Godot game engine: gdwlroots. The long-term goal is to build a VR compositor based on Godot and develop standards for Wayland applications to have 3D content. 100% of this work is free software (MIT licensed) and will bring improvements to both the wlroots and Godot ecosystems. Next week I’ll be starting work on adding a Wayland backend to Godot so that Godot-based games can run on Wayland compositors directly. Here’s an example compositor running on Godot:

<video src=“" autoplay muted loop controls style=“max-width: 100%;”

I’ve also made some significant progress on aerc2. I have fleshed out the command subsystem, rigged up keybindings, and implemented the message list, and along with it all of the asynchronous communication between the UI thread, network thread, and mail server. I think at this point most of the unknowns are solved with aerc2, and the rest just remains to be implemented. I’m glad I chose to rewrite it from C, though my love for C still runs deep. The Go ecosystem is much better suited to the complex problems and dependency tree of software like aerc, plus has a nice concurrency model for aerc’s async design.2 The next major problem to address is the embedded terminal emulator, which I hope to start working on soon.

aerc2’s progress is a great example of my marginalized projects becoming my side projects, as my side projects become my full-time job, and thus all of them are developing at a substantially improved pace. The productivity increase is pretty crazy. I’m really thankful to everyone who’s supporting my work, and excited to keep building crazy cool software thanks to you.

I was meaning to work on RISC-V this month, but I’ve been a little bit distracted by everything else. However, there has been some discussion about how to approach upstreaming and I’m planning on tackling this next week. I also spent some time putting together a custom 1U I can install in my datacenter for a more permanent RISC-V setup. Some of this is working towards getting RISC-V ready for users to take advantage of - that relay is for cutting power to the board to force a reboot when it misbehaves - but a lot of this is also useful for my own purposes in porting musl & Alpine Linux.

Picture of a 1U chassis with a bunch of custom components within

One problem I’m still trying to solve is the microSD card. I don’t want to run untrusted code when that microSD card is plugged in. I’ve been working on some prototyping (breaking out the old soldering iron) to make a microSD… thing, which I can plug into this and physically cut VCC to the microSD card with that relay I have rigged up. This is pretty hard, and my initial attempts were unsuccessful. If anyone knowledgable about this has ideas, please get in touch.

Outside of RISC-V, I have been contributing to Alpine Linux a lot more lately in general. I adopted the sway & wlroots packages, have been working on improved PyQt support, cleaning up Python packages, clearing out the nonfree MongoDB packages, and more. I also added a bunch of new packages for miscellaneous stuff, including alacritty, font-noto-cjk, nethack, and Simon Ser’s go-dkim milter. Most importantly, however, I’ve started planning and discussing a Python overhaul project in aports with the Alpine team, which will including cleaning up all of the Python patches and starting on Python 2 removal. I depend a lot on Alpine and its Python support, so I’m excited to be working on these improvements!

I have some Sourcehut news as well. Like usual, there’ll be a detailed Sourcehut-specific update posted to the mailing list later on. With Ludovic Chabant’s help, there have been continued improvements to Mercurial support, notably adding integration as of yesterday. Thanks Ludovic! We’ve also been talking to some NetBSD folks who may be interested in using Sourcehut to host the NetBSD code once they finish their CVS->Hg migration, and we’ve been improving the performance for large repositories during their experiments on

There’s a bunch more going on with Sourcehut -, APIs, a command line interface for those APIs, webhooks, and more still - check out the email on later. That’s all I have for you today. Thank you for your support, and until next time!

This work was possible thanks to users who support me financially. Please consider donating to my work or buying a subscription. Thank you!

  1. A Purism employee that works closely with wlroots on the Librem 5 ↩︎

  2. “aerc” stands for “asynchronous email reading client”, after all. ↩︎

Articles from blogs I read Generated by openring

Go Developer Survey 2023 Q1 Results

An analysis of the results from the 2023 Q1 Go Developer Survey.

via The Go Blog May 11, 2023

Summary of changes for April 2023

Hey everyone! This is the list of all the changes we've done to our projects and apps during the month of April. We'll also be reporting in our on position in the world, and on our future plans. Summary Of Changes, added charging electro…

via Hundred Rabbits May 1, 2023

HDR hackfest wrap-up

Last week I’ve been attending the HDR hackfest organized by Red Hat. The trip to Prague was rather chaotic: the morning right after the SourceHut DoS incident, I got a notification that my plane was cancelled, so had to re-book a new flight and hotel. Then a…

via emersion May 1, 2023