I've noticed a lot of Apple software pretends to be open-source (like this one: "Lunar is also open-source so you can check that for yourself: Github - alin23/Lunar "), when they really aren't. They're - at best - open core: https://en.wikipedia.org/wiki/Open-core_model
For example, I quote from the Lunar GitHub page:
> I'm pausing contributions for the moment as Lunar has paid features and isn't compilable because of missing parts of the source code (Pro features code is encrypted).
> Lunar can't be built from this repo yet as the source code for the paid features is hidden. I will try to post stubs for those paid features to at least make it compilable in an only-free-features form.
So right now I couldn't modify and/or redistribute Lunar as I see fit. It is not open source.
And even if the Lunar repository is updated so that it at least compiles the free version, then what? Then it would fit the strictest definitions of open-source (you are free to modify and redistribute), but would miss the community aspect completely due to misaligned incentives. I could add a great feature, but my pull request would be denied if it overlaps a paid feature.
You could fork Lunar at that point and make all the traditionally paid features for free and accept pull requests simply based on merit. But at that point you would be open-source, and not open-core anymore, and the concept of a paid version would simply go away. I don't really see open-core actually working in any way other than an attempt to leech contributions from the open-source community without playing by its rules.
Yes, it's not open-source by that definition.
It was fully open-source until v3: https://github.com/alin23/Lunar/tree/lunar3
I've kept that around, it's still compilable, but probably not that useful.
When making Lunar paid in v4, I didn't want to remove the possibility of sharing knowledge, so I kept the non-paid parts open-source.
This allowed other apps like MonitorControl [1] and DisplayBuddy [2] to port some Lunar features (like DDC on M1) to their own code. So I'd say it's still useful enough.
Just to clarify, I am okay with paid software existing. It is even better if you share (parts of) the source code to the community in a permissive license. But unless your incentives are aligned with community, I would be crystal-clear and not advertise it as open-source.
Your incentives aren't aligned with the community. Should a free, open-source alternative to Lunar exist with all its features, your sales would go down. It is in your best interest to:
1. Create the best possible product that works the fastest, smoothest, without bugs, etc.
2. Create a minimal viable free product maximizing the amount of new trial users for Lunar.
3. Maximize the difference between the free and premium product to convert the most users from #2.
Open source contributors shares incentive #1 with you. They don't share incentive #2, but there's no conflict here. But incentive #3 directly clashes with those of an open source contributor if only the free product is open source.I want to assume good intentions here, because the malicious interpretation would be that one wants to take advantage of the open source community by getting free work done on incentive #1 while rejecting anything that would cross incentive #3.
So what is your goal? You obviously want to make money - we all do. What else? Is your goal to give to the open-source community for similar applications that wouldn't directly compete with you? It's noble, but risky, as you can't enforce that. If your goal is to conduct a 'business transaction' with the open-source community: "access to my source code in exchange for potential contributions under conditions w.r.t. incentive #3", that's fine too. But that is not open-source.
If you simply publish the source code explicitly stating that parts of the source code of Lunar is available under a permissive license, that you only merge contributions that fix bugs or add pre-approved features, but otherwise people are free to do with it what they want, I don't have a problem with it. But calling it open-source is misleading in my opinion.
I have to reverse engineer a lot of macOS internals and some hardware too to make some features possible. I don’t want to keep that for myself. This XDR thing makes an exception because it required a lot more RE work than I expected I’d like to get some publicity for it before open-sourcing and writing it up.
I don’t think I can take advantage of the open source community here. The OSS community has largely chosen MonitorControl since it is fully open source, free and accepts contributions.
I couldn’t have started Lunar without the open source ddcctl [0] project, and I want to give back as much as I can without jeopardizing sales and having to go back to a 9-to-5 job.