void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.49k stars 2.11k forks source link

Package request: Helio Sequencer #48957

Open blacklightpy opened 5 months ago

blacklightpy commented 5 months ago

Package name

helio

Package homepage

https://github.com/helio-fm/helio-sequencer

Description

One music sequencer for all major platforms, desktop and mobile

Does the requested package meet the package requirements?

Compiled

Is the requested package released?

Yes

iFoundSilentHouse commented 5 months ago

https://github.com/void-linux/void-packages/pull/49361 but it's only for x86_64 & i686 for now. Still more arches than Arch linux has in it's package though XD

iFoundSilentHouse commented 5 months ago

I should agree on that licensing for this DAW seem to not suit BSD license of void. I've made a custom repo which I will maintain and update. If you choose first method of installation, updates of package will be handled automatically with xbps. https://github.com/iFoundSilentHouse/helio-sequencer-void-linux

blacklightpy commented 5 months ago

@iFoundSilentHouse Why does it not suit the BSD license of Void? Packages distributed by void don't have to be BSD or MIT. In this case, it is clearly dual licensed.

Anyways, a template is nice, thanks.

blacklightpy commented 5 months ago

Btw this doesn't work on musl, does it?

iFoundSilentHouse commented 5 months ago

I'll make a support for musl later. Stay on tune :)

iFoundSilentHouse commented 5 months ago

@iFoundSilentHouse Why does it not suit the BSD license of Void? Packages distributed by void don't have to be BSD or MIT. In this case, it is clearly dual licensed.

Anyways, a template is nice, thanks.

As far as I can understand, helio-sequencer uses JUCE packages X. When someone installs JUCE packages X, he agrees to distribute his program under under gpl. Xbps is a compiling-based package manager - it needs to download them. And it's bsd licensed. Bsd claims that it can close source once needed. This hypothetical action will violate JUCE license and cause court proceedings

blacklightpy commented 4 months ago

@iFoundSilentHouse But wouldn't that violate every GPL program?

What needs to be done in this case is to ensure that a non-free fork of Void should not distribute GPL software in it's repository. That is, if you are referring to the helio-sequencer.xbps file.

If that was the case, distributing GIMP on MS Store would mean MS Store would have to be open sourced. GPL permits you to distribute the software. It is only concerned that the source code of whatever was compiled be provided. [In a way, I do think it is actually a violation, but even RMS hasn't decided on a strong answer to that].

It's not like XBPS depends on Helio, it's the Helio package that depends on XBPS. Besides, GPL does allow system libraries and the build system to be proprietary. The only condition is that a free compiler should also be able to link to the same system libraries.

For example: Open Source App <-> Closed Source Pull Library <-> GPL Package.

In this case, it is not the pull library that is depending on the GPL Package, but the Open Source App is. In our case, Helio Sequencer is the Open Source App that needs JUCE.

iFoundSilentHouse commented 4 months ago

What needs to be done in this case is to ensure that a non-free fork of Void should not distribute GPL software in it's repository. That is, if you are referring to the helio-sequencer.xbps file.

Yes we should ensure and the only option to "ensure" now is make this package nonfree and restricted. I'm not cool with that at all: HW won't be public and everyone will have to compile it in xbps-src.

If that was the case, distributing GIMP on MS Store would mean MS Store would have to be open sourced.

Distributing binaries is fine with gpl. But downloading is not fine with JUCE licensing. Just downloading full JUCE sets you in a trap that's making you either open code or pay a fee. Thats what their license says. Juce is not gpl at all :(

blacklightpy commented 4 months ago

@iFoundSilentHouse From https://juce.com/get-juce/:

Do I need a JUCE licence if I am not releasing products containing JUCE?

JUCE is dual licensed under both the JUCE licence and the GPLv3.

This means that you can choose to use JUCE under the terms of the GPLv3 licence. If you are not "propagating" or "conveying" closed-source software containing JUCE outside of your organisation then you may not be violating the terms of the GPLv3. The creation and use of "in-house" tools and the internal development of "pre-release" software (before it goes out to external testers) is usually permitted under the GPLv3. Please refer to the GPLv3 terms for the full details.

If you are not using JUCE under the GPLv3 then you will require a JUCE licence. You will need to maintain a licence for at least the duration over which you are distributing closed-source binaries containing JUCE.

blacklightpy commented 4 months ago

Whatever is with the EULA is probably a wording mistake. The FAQ clarifies their intentions well as dual licensing. Perhaps, simply opening a PR with them would be enough to fix their EULA.

blacklightpy commented 4 months ago

I mean issue, not PR. It seems it has to be done at the forum, so I'll do that.

iFoundSilentHouse commented 4 months ago

I mean issue, not PR. It seems it has to be done at the forum, so I'll do that.

I guess github is fine too https://github.com/juce-framework/JUCE Yes... The info in the license page of JUCE github says the opposite thing. And I think BSD licensing consiquensies is an exception of FAQ statement you may not be violating terms of GPLv3. That's why one of void team members could've declined helio to be in void.

blacklightpy commented 4 months ago

@iFoundSilentHouse

The issue templates say that you have to open non bug reports at the forum.

I've opened it here: https://forum.juce.com/t/clarify-juce-dual-licensing-properly/60659

classabbyamp commented 4 months ago

the licence of void-packages (BSD2) has nothing to do with anything here. that licence only applies to the code contained within the repo (xbps-src and the templates), not any package a template creates

iFoundSilentHouse commented 4 months ago

the licence of void-packages (BSD2) has nothing to do with anything here. that licence only applies to the code contained within the repo (xbps-src and the templates), not any package a template creates

Then I can't understand what's wrong with packaging helio-sequencer...

iFoundSilentHouse commented 4 months ago

@iFoundSilentHouse

The issue templates say that you have to open non bug reports at the forum.

I've opened it here: https://forum.juce.com/t/clarify-juce-dual-licensing-properly/60659

Hey. About bsd it was just my guess. Edit text if there's an available option please

classabbyamp commented 4 months ago

Then I can't understand what's wrong with packaging helio-sequencer...

void prefers to package free software, and juce has licence terms that are apparently not free

iFoundSilentHouse commented 4 months ago

void prefers to package free software, and juce has licence terms that are apparently not free

If I understand you correctly, void prefers not to package helio-sequencer(GPLv3) because it has non-free dependency of JUCE which, like any other dependencies, should be downloaded, therefore packaged. Is that right? I just want to dispell any potential misunderstanding.

blacklightpy commented 4 months ago

Hey. About bsd it was just my guess. Edit text if there's an available option please

@iFoundSilentHouse I'm also not sure what the problem is. JUCE says if you use it without paying you must release it as GPL. But they say that's forcing GPL.

But if I reword it without changing it as if you use the software and don't want to release it as GPL, you must pay for it, there doesn't seem to be any problem.

This is the way in which Qt is licensed too.

The confusion maybe regarding the way in which the EULA says if you use it, you must release the source code as per GPL. So they seem to think simply downloading it binds you to the EULA or forced release of source code even if you are not distributing it.

But I see it as, if you use it, you have to either pay for the EULA or use it under GPL, meaning, for private use, you are supposed distribute the source code according to GPL, which means you don't have to at all, because you don't have to distribute it if you are not distributing binaries. And for public distribution, you should release the source code or pay for nonfree distribution.

Apart from this, I don't see the nonfree terms. What's the difference between JUCE and Qt?

The only reason for this dual licensing is that some people may want to use it for proprietary use cases without being restricted by GPL. It doesn't seem to want to restrict free users in any manner, because it is dual licensed.

The EULA is distinct from the GPL license, both of which are the options. Void can just choose GPL.

Both of these (that it is dual licensed, as well as you can use it without distributing the source code privately) are clarified well in the JUCE FAQ.

blacklightpy commented 4 months ago

If I understand you correctly, void prefers not to package helio-sequencer(GPLv3) because it has non-free dependency of JUCE which, like any other dependencies, should be downloaded, therefore packaged. Is that right? I just want to dispell any potential misunderstanding.

@iFoundSilentHouse but then JUCE is GPL too..

blacklightpy commented 4 months ago

@iFoundSilentHouse I found the problem.

They (JUCE) say that you must distribute "your applications under GPL", not "our application" or "your applications bundled with JUCE".

So they worry that they may want Void (and any other software that the Void team will ever release) to become GPL regardless of it being in no way affiliated with JUCE.

iFoundSilentHouse commented 4 months ago

@blacklightpy I don't know man. We're only guessing. I'm sorry but I don't think it's such a big deal to continue this discussion. HS is already available in my repo and I plan to maintain it.

blacklightpy commented 4 months ago

@blacklightpy I don't know man. We're only guessing. I'm sorry but I don't think it's such a big deal to continue this discussion. HS is already available in my repo and I plan to maintain it.

@iFoundSilentHouse I asked them on IRC and they clarified this. Knowing that I'll update it on the forum thread.

blacklightpy commented 3 months ago

@iFoundSilentHouse @classabbyamp Good news, JUCE 8 is now AGPLv3 and the problem has been addressed. But I guess we'll have to wait for the release. https://github.com/juce-framework/JUCE/issues/1373#event-12753740642