flathub / org.freefilesync.FreeFileSync

https://flathub.org/apps/details/org.freefilesync.FreeFileSync
102 stars 19 forks source link

FFS license disallows a modified binary installer redistribution #48

Closed kparal closed 3 years ago

kparal commented 3 years ago

As reported by @Garbulix here, the FFS FAQ says:

The software must be distributed free of charge and without modification to the contents of the installer package. Redistributing the installer package with any files added, removed, or modified is prohibited. The inclusion of the installer package or any of the included files in a different archive, or in a different installer is forbidden. For example, the integration into a third-party automated installation mechanism is forbidden without the prior permission of the author.

It seems we can't take the binaries and convert them into a Flatpak package. A permission must be obtained, or we need to compile from source, or we need to remove FFS from Flathub, IIUIC.

kparal commented 3 years ago

I requested a FFS author permission here: https://freefilesync.org/forum/viewtopic.php?t=8142

Garbulix commented 3 years ago

aaaaand it's gone.

at least I guess.

kparal commented 3 years ago

aaaaand it's gone.

I'm not sure what you mean. However, the permission was not granted. We either need to switch back to compiling the source code, or remove FFS from Flathub.

I covered the issues with compiling the source code here and also in this commit.

I currently don't have time to struggle with FFS sources. So I'll keep this ticket open for a while (a few weeks?), waiting if someone comes and volunteers to maintain this repo using FFS sources (I'm of course willing to help the person to set up everything necessary infrastructure and process-wise). If there's no such person, I'll request FFS to be removed from Flathub.

Garbulix commented 3 years ago

I'm not sure what you mean.

I posted that image (with text) just after Zenju's reply on forum. That was a methaphor for a fact that may be the end of the FreeFileSync's Flatpak version. I understand that wasn't obvious (because it wasn't).

Let's wait then.

barthalion commented 3 years ago

I don't think there's a need to drop it. Simply switch the FFS module in the manifest to use extra-data like Spotify does.

kparal commented 3 years ago

I don't think there's a need to drop it. Simply switch the FFS module in the manifest to use extra-data like Spotify does.

Interesting. Here's the Spotify manifest (notice this and this).

Do I understand correctly that extra-data is downloaded during installation from the users' computer, and therefore Flathub doesn't redistribute the referenced file? (A bit off-topic: That means that such Flatpak installations can easily fail, right?). It a bit under-documented [1] [2] (see Extra data sources).

If that's the case, this would definitely not apply:

The software must be distributed free of charge and without modification to the contents of the installer package. Redistributing the installer package with any files added, removed, or modified is prohibited. The inclusion of the installer package or any of the included files in a different archive, or in a different installer is forbidden.

But how about the last sentence?

For example, the integration into a third-party automated installation mechanism is forbidden without the prior permission of the author.

It is true that Flathub would provide scripts to automate a FFS installation. OTOH, Flathub would not distribute the FFS binary and therefore its license should not apply at all, or should it? Can the developer legally oblige us to do or not do something, when we don't redistribute his/her software at all, just provide scripts to operate on it? It seems the same approach as e.g. wine uses to download Microsoft's fonts or libraries - directly from the user's computer, and then process them. Is there some Flathub's staff who can legally guide us here?

barthalion commented 3 years ago

It is true that Flathub would provide scripts to automate a FFS installation. OTOH, Flathub would not distribute the FFS binary and therefore its license should not apply at all, or should it? Can the developer legally oblige us to do or not do something, when we don't redistribute his/her software at all, just provide scripts to operate on it?

Yes, this is how it works – flatpak just stores metadata such as URL and checksum, then download and installation is initiated and happens on the users' computer. Obviously if upstream ever asks us to stop, then we likely would comply, but this is go-to solution for proprietary software.

kparal commented 3 years ago

@barthalion I see you're a member of the Flathub project. Can I consider your response as an official blessing to continue releasing FFS on Flathub using extra-data?

Obviously if upstream ever asks us to stop, then we likely would comply, but this is go-to solution for proprietary software.

I'd like to clarify this further. Is Flathub subject to upstream demands in this case, or it isn't? Or do you mean that Flathub would comply as a gesture of good will?

The upstream author did deny my request (created before I was aware of extra-data functionality). Just in case the upstream forum ever gets inaccessible, I'm going to quote here in full.

My request is here:

Hello, I'm the maintainer of the FFS flatpak package distributed by Flathub: https://flathub.org/apps/details/org.freefilesync.FreeFileSync

In the past, I compiled FFS from source, but due to various problems (like FFS depending on custom-patched system libraries, and others) I switched to distributing FFS Linux binaries, as provided on the download page: https://freefilesync.org/download.php

I have been notified by a community member that the current license seems to disallow that. Specifically, on https://freefilesync.org/faq.php#distribute it says:

The software must be distributed free of charge and without modification to the contents of the installer package. Redistributing the installer package with any files added, removed, or modified is prohibited. The inclusion of the installer package or any of the included files in a different archive, or in a different installer is forbidden. For example, the integration into a third-party automated installation mechanism is forbidden without the prior permission of the author.

I'm not a lawyer, but it seems that converting the provided binaries (previously included in a tarball, now in a runnable installer) into a flatpak package is currently forbidden.

I'm writing this post to request a permission from the FFS author (Zenju), so that Flathub can continue to distribute FFS pre-compiled binaries. If you, Zenju, don't agree with this, I'll either need to switch to compiling from source again, or remove FFS from Flathub, if I understand it correctly.

Thank you for your response.

And the developer's ("Zenju") response is here:

I'm sorry, but I'm not going to allow it. The reason is (unsurprisingly) that third-party installers skip the "Support the Project" message during installation. With all advertisements being completely gone from the FFS installer at this point, direct support by users is what keeps the project financially afloat. https://freefilesync.org/faq.php#advertisement

Zenju did not explicitly deny the "extra-data" approach where the installer is downloaded during installation and therefore Flathub doesn't distribute it, but according to his/her justification, that would be denied as well, because the request for supporting the project wouldn't be displayed in this case either. The question is whether Zenju can actually deny something in this case, and whether Flathub is OK with not respecting upstream's wishes. (And I'm quite impartial here, I can see the situation from both sides).

barthalion commented 3 years ago

I'd like to clarify this further. Is Flathub subject to upstream demands in this case, or it isn't? Or do you mean that Flathub would comply as a gesture of good will?

More as a gesture of good will, I'd say, but we would need to discuss it internally if such request is actually made.

kparal commented 3 years ago

Thanks for all the details, @barthalion . I'll try to switch the manifest to use extra-data, so that we're not in violation with the license. If the upstream author contacts Flathub in the future and asks for app removal, it will be up to Flathub admins to decide on how to approach that.

kparal commented 3 years ago

I had to revert that commit, because the official build can't be installed, while test and dev builds can. See #49 for details. This will require some debugging, I set up a beta branch for that. Sigh.

barthalion commented 3 years ago

I installed it from beta just fine. In what way it failed for you?

kparal commented 3 years ago

@barthalion @Garbulix I created #53 to debug the installation issue. I'll be grateful if you can submit your successes or failures in there, together with your distribution and flatpak version, thanks.