Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: "Free if you know how to compile it" open source license?
10 points by sam0x17 on Sept 24, 2021 | hide | past | favorite | 21 comments
Has anyone tried setting up an open source license oriented around the idea of "it's free if you are savvy enough to compile a binary, otherwise here you can pay for a pre-compiled binary"? I feel like this could be a very interesting option for solo developers who want to monetize their open source work but want to keep things free for other developers and/or people willing to spend 5 minutes reading documentation on how to build the project.

This would also encourage non-developers to dip their toes in a development environment which would be an undeniably positive thing for the community.

Anyway was just wondering if at any point someone tried to set something up like this. I've been toying with adopting a model like this for one of my popular open source projects that has a _lot_ of non-programmer users and would benefit from increased participation from users in the open source process.



This makes me think of pgModeller:

"pgModeler is open-source software, and you can get its source code anytime if you want to compile it by yourself. As a convenience, we provide compiled binary packages at a really fair price. Also, if you're interested in evaluating a binary package, you can get a demo copy before proceeding with the purchase." (quoted from from [1])

It's open source (GPL 3).

They give build instructions, but it's quite strenuous to build[2].

[1]:https://pgmodeler.io/download

[2]:https://pgmodeler.io/support/installation


Will they accept patches to make it easier to build? :)

FWIW, seems also available in Debian - https://packages.debian.org/sid/pgmodeler and there are Docker builds, https://hub.docker.com/search?q=pgmodeler&type=image .


Do you mean that the license does not permit third parties to distribute compiled binaries, but only modified source code? Such a license does not meet the https://en.wikipedia.org/wiki/The_Open_Source_Definition . If you just mean that you (the original developer) want to give away the source but charge money for a compiled, installable version, you can already do that.


My thought is something like this: Building the project successfully confers full MIT license rights to the user who built the project.


That sounds like you’d just want MIT then and simply license your distribution of the binaries separately. However, doing that would mean that someone could just compile it themselves and then release their own binaries. You’d probably want to have a custom license that prevents distribution of binaries entirely.


The early days of PyMol (software for molecular structure visualization) were like that.

The software source was available to download and compile under a free software license. Pre-package binaries were available, but not under the same license. (Plus I think it included some non-free extensions). The developer made money selling site licenses for the pre-compiled binaries.

It wasn't much money. He had to deal with a lot of licensing paperwork. This was ~20 years ago, when credit card purchases were often over the telephone.

But this was also 20 years ago, before package managers became popular. I've had source-only free software distributions of mine turned into packaged distributions, without me even knowing about it. (Someone added one package to PyPI, and someone else another two to Debian.)

If your non-programmer users are used to installed from PyPI, or conda, or some other package management server, then they'll want to download your package from there too.

If your free software source is available, and it isn't packaged, then I think someone else is going to do it.

One of the downsides of package managers is how they worsen the connection between developer and user, and make it harder for users to 'dip toes' in the development environment.


I can't remember what the software was but I once ran across an open source project on GitHub that you could download there or at the bottom of the docs there was a link to steam basically saying "if you don't want to mess with GitHub you can download it from steam like you would a game or other software"

The Steam version was priced at $3 and had lots of positive reviews.


I think you're talking about Krita [1] perhaps

[1] https://store.steampowered.com/app/280680/Krita/


IIRC, Ardour (DAW software) is or maybe was like this. You can download and build the source but there's a cost to download binaries.


Borderless gaming, perhaps?


Armory3D seems to be doing just that. Looks like custom licenses are best for this scenario. Example https://armorpaint.org/download.html

Their license https://github.com/armory3d/armorpaint/blob/master/LICENSE.m...

ArmoryPaint is a sort of alternative to substance painter, and you can download it for 16€, but they also give you the choice of compiling it from source for free. It has a nice balance between people who pay for the convenience and frugal developers who understand and can compile it themselves (or don't but are now incentivized to learn, usually kids getting into game development) and can use the program; otherwise, wouldn't have been accessible.


Caddy (web server written in go) used to do something like this, basically it was ad-supported (injected ad headers) in a non-commercial free-as-in-beer pre-compiled version and had a paid commercial version.

If you compiled it yourself there were no ads or commercial restrictions though.


What in GPL or MIT is preventing you from selling the binaries? I mean, you'd have to ship the source code along with the binaries in the GPL case, but it doesn't prevent you from charging for it.


As I understand the GPL you only need to provide source to users. So you can sell it for $ and only then provide the source.

Of course that person could then post the source for anyone, and if you trusted that one-removed source you can get it from there.

(incidentally most paying users would not post the source because of loss aversion.)


This sounds like what Symless does with Synergy[1]. Or did -- now the repo is named "synergy-core", so they are likely also using an "open core" model now.

[1]: https://github.com/symless/synergy-core


Also this great pixel art editor doing it https://www.aseprite.org/

Wander if it's a good business decision ....


It wouldn't be open-source, but there are a few companies that do something similar.


I think it could meet the OSD definition... if it's identical to MIT except you have to build the project to become licensed, I don't see how that violates any of the OSD requirements.


People would have the right to download a binary from someone else who'd already compiled it. You're thinking of just having the binaries under a separate license, which isn't unheard of, but it also means that someone's just going to compile it and release it for free.


Exactly, and I'd be fine with that.


I still don't understand why compiling C programs is such a pain. Something about linking and dependencies; assumptions about system state that are often not true. IMO it should be as simple as 'cargo build'.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: