|WiringPi – Deprecated|
|Written by Harry Fairhead|
|Saturday, 24 August 2019|
|Open source is wonderful – except when it isn’t. The latest mini-disaster, let’s not get carried away, is that the creator and maintainer of wiringPi has given up, frustrated with the way people, aka users, treat his code and him.
It is difficult to know how important wiringPi is. It provides an Arduino “wiring” approach to using the Raspberry Pi’s GPIO (General Purpose Input Output) aka the electronics used to get data in and out. Personally I have never used it, mainly because I prefer a more direct approach to the GPIO which has minimal and entirely replaceable dependencies. That way I know my code can go on forever. The big problem with adopting any new approach that is open source is dependency – in the sense “can you depend on it and its maintainer”. Your product may well outlive the open source libraries that you use.
Of course, you might be about to tell me that the joy of open source is that you have the source. Which means even if the project is abandoned you can carry on using it and carry on modifying it. The problem with this argument is that you probably adopted the library to avoid having to create your own from scratch and to avoid having to understand the internals. Now, cast adrift, you have the much harder task of understanding someone else’s take on the “internals”.
The surprise then is that a blog post appeared titled wiringPi – deprecated… Now deprecated is a strange word to use about an entirely open source project and it isn’t entirely clear what it means. What is clear is that its creator and maintainer is giving up on the project. What isn’t clear is what happens to the code base in the future:
“I will make a final release of wiringPi available soon – with the sources, but that’s that. No more public releases. I’ll still be maintaining it for my own uses and clients, but for everyone else, please look for alternative GPIO library for on-going projects.”
If anyone feels like taking over the project and forking it I can’t see any reason why not – but be careful what you wish for.
The reasons for giving up on wiringPi are clearly going to be many and nuanced, but the blog post gives some clues and you might recognize some of the complaints. First we have the problem of interfacing with the technically incompetent:
Of course, there is the issue of people making money out of software that you have decided to give away for free, but this complaint is slightly different:
“And those who’ve stolen my software and sold it as your own? Hm. Sure – it’s hard to steal free software, but say you’re a German Pi UPS maker and you pull apart wiringPi to get just the bits you need, statically link that into your own control code, but rather than publish the code and a little “thanks” note you leave my email address it in, then the poor user who has paid you their good money to buy your kit gets in-touch with me when they upgrade their Pi…”
It is clear that open source code that can be used in marketable hardware devices is even more of a problem than code used to create cloud services that charge. However, it seems that the whole “my code is free” is a problem for its creators. You mean you aren’t going to feel proprietorial when someone does this to you:
“The sad thing is that people steal GPL, LGPL and other Free/Libre software all the time. I’ve even had someone tell me to my face that they would take and re-publish my code under their name because there is nothing I can do about it. So no more.”
And you are at the mercy of users who don’t appreciate that you have a life outside of open source and make demands that might be reasonable for commercial software, but:
“The final straw? An individual by the name of DanielK who bleated at me for not releasing the sources for the Pi v4 version in a timely manner. I’d put up a .deb file designed for the correct dynamic linking, but Daniel pointed out
Great. Thanks, Dan. As I had limited capacity available at the time, I just felt that that was that. If I’m going to get emails like that for a little project then it’s not worth it anymore.”
So there you are. There are lots of other small points in the blog post, but the bottom line is being in charge of an open source project sucks – unless you have a skin as thick as a rhino’s and are happy to realize that you don’t have to respond to users who just don’t get it.
I have “friends” who say I’d be ideal as a maintainer of an open source project, but I really wouldn’t want to be that guy. Open source has a problem and I don’t think anyone has any idea how to solve it.
Whatever happens in the future, despite my opening remarks, I think I’d steer clear of wiringPi for new projects and, yes, I think that this is what “deprecate” means.