Pothos on Debian Linux - A tale

I don’t use Debian but I am considering it for a number of reasons. In the context of software for radios, I wanted to see where things stand and what packages are on debian. I wondered why there’s no Pothos package on Debian and I come to find out it’s for a ridiculous reason. But it’s also funny if you follow the trail. The trail goes all the way back to JSON (of all things) and its license.

Here it is:


This is the part that Debian doesn’t like:

“The Software shall be used for Good, not Evil.”

Their lame argument is because, in lawyer-ese, they cannot guarantee that it will not be used for evil.

Are you still reading…? A side-note is that IBM lawyers sent a letter to the author asking if they could get a special license. He did and it said something like: “I give IBM permission to use this for evil.”!!

If you are curious it is at ~41 minutes in:


But why won’t Debian request such a license???

I became aware of this at some point, its kind of weird, either no one wants to update the packaging poco to a version which contains JSON or they update it but strip out the JSON support. ubuntu now packages a newer version of poco, but they strip out the JSON component. I was thinking of using the yaml parser which can handle JSON so we dont have to rely on the support from poco, but its not a priority.

Yes, because if you wanted to use it for evil youwould care about the license.

1 Like

It’s all about that license. FWIW, tl;dr, the author’s happy with the license as it is working as he intended.

I haven’t tried to build it on Debian but I might give it a try. I forgot about poco, right, that’s where it enters the equation for Pothos.

A little more info, at least its debian’s perspective. I have still seen poco packaged on other platforms with JSON:

The problem

JSON package is licenced under a MIT license but with an additional infamous clause:

The Software shall be used for Good, not Evil.

This license is considered non-free by Debian, GNU Project, Fedora, Google, Red Hat legal

The author Douglas Crockford is well aware of the harm he’s doing but numerous request from different projects and parties could not change his mind.

PS I also thought I should mention that I recently rewrote Pothos GUI to use the Qt JSON parser. But that still leaves the main library and some blocks with the dependency. Not sure I can help much with the legal definition for good and evil, but I would like to eventually get Pothos upstreamed on some of these other platforms. Not a huge priority, but I wish I knew about this beforehand :stuck_out_tongue:

1 Like

Well, if you ask, he will provide a special license that allows it to be used for evil. If permission to do evil is not provided and it’s used for evil then it also hurts their karma. Some have called it a morality clause. But it is really a karma clause.

I don’t get it… What exactly is licensed under those terms? The JSON specification or some specific parser???

For those interested. I actually took care of this – blog here about the json work

The next release will depend on a small json parser from nlohmann and will not use Poco::JSON. Still using Poco, just not the JSON part. They appear to package Poco without its JSON component.

Here it is, in all its glory. Thats all the fuss: https://github.com/pocoproject/poco/blob/develop/JSON/include/Poco/JSON/Parser.h#L32