Skip to content
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

oct2pus opened this issue Jun 2, 2018 · 31 comments

Relicence Pixelfed as AGPLv3 #143

oct2pus opened this issue Jun 2, 2018 · 31 comments


Copy link

@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.


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.


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.


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 Swap to the AGPLv3 Licence Relicence Pixelfed as AGPLv3 Jun 2, 2018
Copy link

@agateblue agateblue 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.

Copy link

@oct2pus oct2pus commented Jun 2, 2018

Well at least I did one good thing today! 😃

Copy link

@MrPetovan MrPetovan commented Jun 2, 2018

I approve, and I’m working on is under the AGPLv3 as well.

Copy link

@nipos nipos commented Jun 2, 2018

I agree and my Mastodon client ( is AGPL 3.0 too.

Copy link

@yabirgb yabirgb commented Jun 2, 2018

Zinat is AGPL too

Copy link

@dansup dansup commented Jun 2, 2018

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

Copy link

@BrainBlasted 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 👍

Copy link

@trwnh 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" (
@moshpirit - "Sure!"
@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?

Copy link

@moritzheiber moritzheiber commented Jun 3, 2018

I concur.

1 similar comment
Copy link

@DeadSuperHero DeadSuperHero commented Jun 3, 2018

I concur.

Copy link

@Ahmad-Amsyar Ahmad-Amsyar commented Jun 3, 2018

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

Copy link

@neilalexander neilalexander commented Jun 3, 2018

No objections here.

Copy link

@qwazix qwazix commented Jun 3, 2018

Copy link

@moshpirit moshpirit commented Jun 3, 2018

Sure! No problem :)

Thanks for the mentions!

Copy link

@hellcp hellcp commented Jun 3, 2018

Do it!

Copy link

@kpcyrd kpcyrd commented Jun 3, 2018

I agree with re-licensing to AGPLv3 or later

Copy link

@iah iah commented Jun 3, 2018

Nothing to object about.

Copy link

@xmgz xmgz commented Jun 3, 2018

no problem, I agree with this change.

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

Copy link

@yabirgb yabirgb commented Jun 3, 2018

No problems here

Copy link

@oct2pus 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!

Copy link

@mkljczk mkljczk commented Jun 3, 2018

You can relicense, but I have nothing against MIT.

Copy link

@timmyRS timmyRS commented Jun 3, 2018

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

Copy link

@ghost ghost commented Jun 3, 2018

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

Copy link

@Grazouillis Grazouillis commented Jun 3, 2018

It's ok :)

Copy link

@smorimoto smorimoto commented Jun 3, 2018

I concur.

Copy link

@Zatnosk Zatnosk commented Jun 4, 2018

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

Copy link

@nicolasmaia nicolasmaia commented Jun 4, 2018

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

Copy link

@dansup dansup commented Jun 4, 2018


Copy link

@trwnh trwnh commented Jun 4, 2018

That just leaves


Copy link

@n-haddag n-haddag commented Jun 4, 2018

Do it!👍

Copy link

@j1t 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
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


- 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)
- Display file size in human format during file upload (#289)
- Switch from BSD-3 licence to AGPL-3 licence (#280)


- 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)


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


- 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

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
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet