New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Relicence Pixelfed as AGPLv3 #143

Closed
oct2pus opened this Issue Jun 2, 2018 · 31 comments

Comments

Projects
None yet
@oct2pus

oct2pus commented Jun 2, 2018

I would like Pixelfed to follow in the steps of Mastodon, Pleroma, GNUSocial, Peertube and Friendica in licencing Pixelfed as APGL.

Why?

There are numerous reasons why I believe AGPL is a better licence than the MIT licence for such a project, and let me go over my thoughts on the subject.

Honesty

The AGPL licence would make instances of Pixelfed legally liable to publish their source code if they create any sort of modification, this promotes a culture of honesty present in the majority of the fediverse.

Why is Honesty Important?

One of the major reasons people originally moved to the fediverse from places like twitter is because we can't trust the twitter corporate to have our best interests in mind. One of the reasons we can do this is because the majority of the code is open source, and not only that, individual instances also must publish their source code so we can all benefit mutually from each others work and see that nothing that would breach that trust.

Consistency

Because people are forced to share implimentations, we can achieve a consistent user experience. GPL code discourages proprietary implimentations because they must be shared amongst every other developer, who can then see and impliment either a consistent protocol that works in the same way or to even directly lift code from that developer and impliment it in their own project.

Code will head upstream

This is more a directly practical example, but you have access to other implimentations that you could merge upstream. This is more the linus argument on the utility of the GPL.

here is a quote from an article on CIO last year by Linus on the GPL and linux.

Hohndel, who has been involved with the kernel for a very long time, said that during the past 25 years there have been many challenges, and one of the biggest challenges was the possibility of fragmentation. "How do we keep one single kernel?" he asked.

"I used to be worried about fragmentation, and I used to think that it was inevitable at some point," said Torvalds. “Everyone was looking at the history of Linux and comparing it with UNIX. People would say that it’s going to fail because it's going to fragment. That's what happened before, so why even bother?"

What made the difference was the license. "FSF [Free Software Foundation] and I don't have a loving relationship, but I love GPL v2," said Torvalds. "I really think the license has been one of the defining factors in the success of Linux because it enforced that you have to give back, which meant that the fragmentation has never been something that has been viable from a technical standpoint."

Open isn't Free

I left the 'moral' argument for last because I'm not certain where you stand on Free vs Open Source Software. If you do not swap you would be the only permissively licenced relevant implimentation of Activitypub. This would allow easy corporate entry into our ecosphere which is largely dominated by freedom respecting implimentations. Provided they become popular, they could impliment proprietary extensions to the protocol and cause people to race to keep up if they become a major player in the ecosphere. Your implimentation could in essence, be a trojan horse for a much worse player in the ecosphere.


Please consider my thoughts and change the licence to AGPLv3.

@oct2pus oct2pus changed the title from Swap to the AGPLv3 Licence to Relicence Pixelfed as AGPLv3 Jun 2, 2018

@EliotBerriot

This comment has been minimized.

EliotBerriot commented Jun 2, 2018

Hi @oct2pus, and thank you for explaining the issue this carefully. I'm not related to PixelFed at all, but I run Funkwhale (it's another project that I run that is BSD-licensed), your arguments make a lot of sense and I wanted to thank you. I think I will consider Funkwhale's licence to AGPL soon.

@oct2pus

This comment has been minimized.

oct2pus commented Jun 2, 2018

Well at least I did one good thing today! 😃

@MrPetovan

This comment has been minimized.

MrPetovan commented Jun 2, 2018

I approve, and https://github.com/friendica/friendica I’m working on is under the AGPLv3 as well.

@nipos

This comment has been minimized.

nipos commented Jun 2, 2018

I agree and my Mastodon client (https://github.com/halcyon-suite/halcyon) is AGPL 3.0 too.

@yabirgb

This comment has been minimized.

Contributor

yabirgb commented Jun 2, 2018

Zinat is AGPL too https://github.com/yabirgb/zinat

@dansup dansup self-assigned this Jun 2, 2018

@dansup

This comment has been minimized.

Member

dansup commented Jun 2, 2018

@oct2pus Hello, thank you for your suggestion. I will work on this.

@BrainBlasted

This comment has been minimized.

Contributor

BrainBlasted commented Jun 3, 2018

@dansup: at this point, you will need to get permission from all 22 contributors to the code to relicense it. I support changing to AGPL, so good luck 👍

@trwnh

This comment has been minimized.

Contributor

trwnh commented Jun 3, 2018

@dansup - "LGTM"
@j1t - "I'm fine with AGPL"
@hellcp - "Do it!"
@imbsky - "I concur."
@m4sk1n - "You can relicense, but I have nothing against MIT."
@OpenAlgeria - "Do it!"
@moritzheiber - "I concur."
@Grazouillis - "It's ok"
@trwnh - Yes.
@Quenty31 - "I'm okay with" (https://framapiaf.org/@Quenti/100147924679131147)
@moshpirit - "Sure!"
@Nouutilizaire
@Ahmad-Amsyar - "I agree, this project has to be set free"
@swedneck - "AGPL is nice, and i'll license my translation under whatever is needed as well."
@timmyrs - "I'm fine with it too. My translation is licensed under whatever license you want."
@DeadSuperHero - "I concur."
@Zatnosk - "I support using AGPL for this project and projects like it."
@neilalexander - "No objections here."
@kpcyrd - "I agree with re-licensing to AGPLv3 or later"
@iah - "Nothing to object about."
@yabirgb - "No problems here"
@qwazix - "I agree and actually prefer AGPL."
@xmgz - "I agree with this change."

Any objections?

@moritzheiber

This comment has been minimized.

Contributor

moritzheiber commented Jun 3, 2018

I concur.

1 similar comment
@DeadSuperHero

This comment has been minimized.

Contributor

DeadSuperHero commented Jun 3, 2018

I concur.

@Ahmad-Amsyar

This comment has been minimized.

Contributor

Ahmad-Amsyar commented Jun 3, 2018

I agree, this project has to be set free all of us can benefit from this project.

@neilalexander

This comment has been minimized.

Contributor

neilalexander commented Jun 3, 2018

No objections here.

@qwazix

This comment has been minimized.

Contributor

qwazix commented Jun 3, 2018

@moshpirit

This comment has been minimized.

Contributor

moshpirit commented Jun 3, 2018

Sure! No problem :)

Thanks for the mentions!

@hellcp

This comment has been minimized.

Contributor

hellcp commented Jun 3, 2018

Do it!

@kpcyrd

This comment has been minimized.

Collaborator

kpcyrd commented Jun 3, 2018

I agree with re-licensing to AGPLv3 or later

@iah

This comment has been minimized.

Contributor

iah commented Jun 3, 2018

Nothing to object about.

@xmgz

This comment has been minimized.

Contributor

xmgz commented Jun 3, 2018

no problem, I agree with this change.

thanks @oct2pus for your proposal and explaining the reasons behind it

@yabirgb

This comment has been minimized.

Contributor

yabirgb commented Jun 3, 2018

No problems here

@oct2pus

This comment has been minimized.

oct2pus commented Jun 3, 2018

You're welcome, I'm surprised at the wonderful response I've received for it! Two additional projects (@EliotBerriot's FunkWhale and Unascribe's Ionch) at least plan on attempting an AGPLv3 conversion, so I'm glad I took an hour out to try and straighten out my thoughts!

@m4sk1n

This comment has been minimized.

Contributor

m4sk1n commented Jun 3, 2018

You can relicense, but I have nothing against MIT.

@timmyrs

This comment has been minimized.

Contributor

timmyrs commented Jun 3, 2018

I'm fine with it too. My translation is licensed under whatever license you want.

@ghost

This comment has been minimized.

ghost commented Jun 3, 2018

AGPL is nice, and i'll license my translation under whatever is needed as well.

@Grazouillis

This comment has been minimized.

Contributor

Grazouillis commented Jun 3, 2018

It's ok :)

@imbsky

This comment has been minimized.

Contributor

imbsky commented Jun 3, 2018

I concur.

@Zatnosk

This comment has been minimized.

Contributor

Zatnosk commented Jun 4, 2018

I support using AGPL for this project and projects like it.

@picsi

This comment has been minimized.

picsi commented Jun 4, 2018

I contributed to translation here and I support the change to "AGPL or later".

@dansup

This comment has been minimized.

Member

dansup commented Jun 4, 2018

LGTM 👍

@trwnh

This comment has been minimized.

Contributor

trwnh commented Jun 4, 2018

That just leaves

@Nouutilizaire

@OpenAlgeria

This comment has been minimized.

Contributor

OpenAlgeria commented Jun 4, 2018

Do it!👍

@j1t

This comment has been minimized.

Contributor

j1t commented Jun 4, 2018

I'm fine with AGPL

@dansup dansup closed this in #198 Jun 5, 2018

ellisist pushed a commit to ellisist/funkwhale that referenced this issue Oct 17, 2018

Merge tag '0.14.2' into develop
0.14.2 (2018-06-16)
-------------------

.. warning::

    This release contains a fix for a permission issue. You should upgrade
    as soon as possible. Read the changelog below for more details.

Upgrade instructions are available at
https://docs.funkwhale.audio/upgrading.html

Enhancements:

- Added feedback on shuffle button (#262)
- Added multiple warnings in the documentation that you should never run
  makemigrations yourself (#291)
- Album cover served in http (#264)
- Apache2 reverse proxy now supports websockets (tested with Apache 2.4.25)
  (!252)
- Display file size in human format during file upload (#289)
- Switch from BSD-3 licence to AGPL-3 licence (#280)

Bugfixes:

- Ensure radios can only be edited and deleted by their owners (#311)
- Fixed admin menu not showing after login (#245)
- Fixed broken pagination in Subsonic API (#295)
- Fixed duplicated websocket connexion on timeline (#287)

Documentation:

- Improved documentation about in-place imports setup (#298)

Other:

- Added Black and flake8 checks in CI to ensure consistent code styling and
  formatting (#297)
- Added bug and feature issue templates (#299)

Permission issues on radios
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Because of an error in the way we checked user permissions on radios,
public radios could be deleted by any logged-in user, even if they were not
the owner of the radio.

We recommend instances owners to upgrade as fast as possible to avoid any abuse
and data loss.

Funkwhale is now licenced under AGPL-3
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Following the recent switch made by PixelFed
(pixelfed/pixelfed#143), we decided along with
the community to relicence Funkwhale under the AGPL-3 licence. We did this
switch for various reasons:

- This is better aligned with other fediverse software
- It prohibits anyone to distribute closed-source and proprietary forks of Funkwhale

As end users and instance owners, this does not change anything. You can
continue to use Funkwhale exactly as you did before :)

Apache support for websocket
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Up until now, our Apache2 configuration was not working with websockets. This is now
solved by adding this at the beginning of your Apache2 configuration file::

    Define funkwhale-api-ws ws://localhost:5000

And this, before the "/api" block::

    # Activating WebSockets
    ProxyPass "/api/v1/instance/activity" ${funkwhale-api-ws}/api/v1/instance/activity

Websockets may not be supported in older versions of Apache2. Be sure to upgrade to the latest version available.

Serving album covers in https (Apache2 proxy)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Two issues are addressed here. The first one was about Django replying with
mixed content (http) when queried for covers. Setting up the `X-Forwarded-Proto`
allows Django to know that the client is using https, and that the reply must
be https as well.

Second issue was a problem of permission causing Apache a denied access to
album cover folder. It is solved by adding another block for this path in
the Apache configuration file for funkwhale.

Here is how to modify your `funkwhale.conf` apache2 configuration::

  <VirtualHost *:443>

    ...
    #Add this new line
    RequestHeader set X-Forwarded-Proto "https"
    ...
    # Add this new block below the other <Directory/> blocks
    # replace /srv/funkwhale/data/media with the path to your media directory
    # if you're not using the standard layout.
    <Directory /srv/funkwhale/data/media/albums>
      Options FollowSymLinks
      AllowOverride None
      Require all granted
    </Directory>
    ...
  </VirtualHost>

About the makemigrations warning
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

You may sometimes get the following warning while applying migrations::

    "Your models have changes that are not yet reflected in a migration, and so won't be applied."

This is a warning, not an error, and it can be safely ignored.
Never run the ``makemigrations`` command yourself.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment