Convert bsnes into a group project and relicense it to GPLv3 or later.

This commit is contained in:
byuu 2020-03-23 00:57:29 +09:00
parent 8e80d2f8a4
commit 3df6623fbf
7 changed files with 30 additions and 133 deletions

1
.github/FUNDING.yml vendored
View file

@ -1 +0,0 @@
patreon: byuu

View file

@ -1,89 +0,0 @@
Contributing
============
Code contributions are most welcome and highly appreciated!
But first, please note that although bsnes is licensed under the GPLv3 license,
in order to be merged upstream, any code contributions must be provided under
the ISC source code license.
This is *not* a CLA (community license agreement), no legal contract needs to be
signed, and you will maintain full and exclusive copyright ownership over any
contributed source code.
There are two reasons for this requirement:
GPLv4+
------
bsnes is currently licensed under the GPLv3 license only. I do not license bsnes
under the GPLv3 or later license, because there is no way of knowing what the
GPLv4 and later licenses will change, and if they will be in the best interests
of emulator development and video game preservation.
Although I put a good deal of trust into the FSF, no one is an oracle that can
predict the future. Would *you* agree to a license before being able to read it?
However, the GPLv4 may prove beneficial, and close important holes in the GPLv3
license, just as the GPLv3 license closed the GPLv2's TiVoization loophole. And
so it is important that bsnes retains the option of relicensing to the GPLv4+ in
the future.
As a point of interest, there have been projects with similar concerns about
using a GPLv2 or later clause, that are now permanently stuck on the GPLv2
license. There have also been projects that did use a GPLv2 or later clause,
only to disagree with the changes introduced in the GPLv3.
ISC
---
The more important reason for this requirement is that it is my intention to
release the entirety of bsnes under the ISC license once official upstream
development has ceased.
The reason I would want to relicense bsnes to the ISC license upon its official
discontinuation is because once again, no one is an oracle, and I cannot predict
what future issues bsnes permanently remaining under the GPLv3 license may
cause.
For instance, imagine a world where a certain vendor took over the world, and
the only way to distribute applications was with their approval, and their store
rules forbade GPLv3 software. Or perhaps a world where the GPL was abandoned in
favor of the new OSSv1 license. But GPLv3 software was incompatible with the
OSSv1 license. Other open source developers would not be able to use bsnes in
that scenario.
It would be very disappointing if all of our work ended up unusable 50+ years
into the future because it was permanently bound to the GPLv3 license.
GPLv3
-----
The reason I use the GPLv3 license currently is because it is a balance between
altruism and self-interest. The GPLv3 allows other vendors to sell my own code
without sharing revenue with me, and indeed this has already happened. But the
GPLv3 also prevents other vendors from improving upon bsnes without sharing
their work with everyone else as I have.
While I am actively developing bsnes, I do not wish to compete against myself.
As such, I believe the GPLv3 is the best license during active development, and
the ISC is the best license once bsnes is officially discontinued.
Considerations
--------------
This is the part that should concern you as a contributor: I am not requesting
contributed source code to be released under the ISC so that I personally may
sell GPLv3 commercial license exemptions to your work, but in the future when
bsnes is released under the ISC license, that will open the door for anyone to
sell the work commercially in a closed source form.
If this is not acceptable to you, I wholly understand and I welcome you to
release your work under the GPLv3 in the form of a bsnes fork. And if your work
is not an essential part of the core emulation -- that is to say, it may be
optionally disabled -- then I am still willing to work with you in merging such
work upstream anyway under the full GPLv3 license, but please reach out to me
first before developing under the assumption your work will be merged upstream.
Thank you very much for reading and hopefully for your understanding.

View file

@ -1,4 +1,4 @@
bsnes was created and is maintained by byuu (Near), but many people have contributed to the project.
bsnes was originally developed by byuu, and is now a group project.
This software would not be where it is today without the help and support of the following individuals:
@ -6,8 +6,10 @@ This software would not be where it is today without the help and support of the
- Ange Albertini
- anomie
- AWJ
- BearOso
- Bisqwit
- blargg
- byuu
- Łukasz Krawczyk
- Danish
- DerKoun
@ -39,6 +41,7 @@ This software would not be where it is today without the help and support of the
- Overload
- p4plus2
- quequotion
- qwertymodo
- RedDwarf
- Richard Bannister
- Ryphecha
@ -52,4 +55,5 @@ This software would not be where it is today without the help and support of the
- wareya
- zones
If your contributions have been missed here, please reach out [here](https://byuu.org/contact) to have this corrected, thank you!
If you feel you are missing from this list, please submit a pull request and we will be happy to add your name here!

View file

@ -1,14 +1,14 @@
----------------------------------------------------------------------
bsnes - Super Nintendo emulator
Copyright © 2004-2019 byuu
Copyright © 2004-2020 byuu et al
https://byuu.org
https://github.com/bsnes-emu
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, specifically version 3 of the License
and no other version.
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -25,7 +25,7 @@ nall - C++ template library
ruby - Hardware abstraction library
hiro - User interface library
Copyright © 2006-2019 byuu
Copyright © 2006-2020 byuu et al
Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted, provided that the

View file

@ -1,21 +1,11 @@
bsnes
=====
![bsnes logo © byuu](https://byuu.org/images/bsnes/github/byuu-bsnes-logo.png)
![bsnes logo](https://byuu.org/images/bsnes/github/byuu-bsnes-logo.png)
bsnes is a multi-platform Super Nintendo (Super Famicom) emulator from
[byuu](https://byuu.org/about) that focuses on performance, features, and ease
of use.
Development
-----------
Git is used for the development of new releases, and represents a staging
environment. As bsnes is rather mature, things should generally be quite stable.
However, bugs will exist, regressions will occur, so proceed at your own risk.
If stability is required, please download the latest stable release from the
[official website.](https://byuu.org/bsnes)
bsnes is a multi-platform Super Nintendo (Super Famicom) emulator, originally
developed by [byuu](https://byuu.org/about), which focuses on performance,
features, and ease of use.
Unique Features
---------------
@ -66,27 +56,20 @@ Standard Features
Links
-----
- [Official website](https://byuu.org/bsnes)
- [Official git repository](https://github.com/byuu/bsnes)
- [Donations](https://patreon.com/byuu)
Release Builds
--------------
- [Windows binaries](https://byuu.itch.io/bsnes)
- [Official git repository](https://github.com/bsnes-emu/bsnes)
Nightly Builds
--------------
- [Download](https://cirrus-ci.com/github/byuu/bsnes/master)
- ![Build status](https://api.cirrus-ci.com/github/byuu/bsnes.svg?task=windows-x86_64-binaries)
- ![Build status](https://api.cirrus-ci.com/github/byuu/bsnes.svg?task=macOS-x86_64-binaries)
- ![Build status](https://api.cirrus-ci.com/github/byuu/bsnes.svg?task=linux-x86_64-binaries)
- ![Build status](https://api.cirrus-ci.com/github/byuu/bsnes.svg?task=freebsd-x86_64-binaries)
- [Download](https://cirrus-ci.com/github/bsnes-emu/bsnes/master)
- ![Build status](https://api.cirrus-ci.com/github/bsnes-emu/bsnes.svg?task=windows-x86_64-binaries)
- ![Build status](https://api.cirrus-ci.com/github/bsnes-emu/bsnes.svg?task=macOS-x86_64-binaries)
- ![Build status](https://api.cirrus-ci.com/github/bsnes-emu/bsnes.svg?task=linux-x86_64-binaries)
- ![Build status](https://api.cirrus-ci.com/github/bsnes-emu/bsnes.svg?task=freebsd-x86_64-binaries)
Preview
-------
![bsnes user interface © byuu](https://byuu.org/images/bsnes/github/byuu-bsnes-user-interface.png)
![bsnes running Bahamut Lagoon © byuu](https://byuu.org/images/bsnes/github/byuu-bsnes-bahamut-lagoon.png)
![bsnes running Tengai Makyou Zero © byuu](https://byuu.org/images/bsnes/github/byuu-bsnes-tengai-makyou-zero.png)
![bsnes user interface](https://byuu.org/images/bsnes/github/byuu-bsnes-user-interface.png)
![bsnes running Bahamut Lagoon](https://byuu.org/images/bsnes/github/byuu-bsnes-bahamut-lagoon.png)
![bsnes running Tengai Makyou Zero](https://byuu.org/images/bsnes/github/byuu-bsnes-tengai-makyou-zero.png)

View file

@ -30,9 +30,9 @@ using namespace nall;
namespace Emulator {
static const string Name = "bsnes";
static const string Version = "115";
static const string Copyright = "byuu";
static const string License = "GPLv3";
static const string Website = "https://byuu.org";
static const string Copyright = "byuu et al";
static const string License = "GPLv3 or later";
static const string Website = "https://github.com/bsnes-emu";
//incremented only when serialization format changes
static const string SerializerVersion = "115";

View file

@ -199,9 +199,9 @@ auto Presentation::create() -> void {
.setLogo(Resource::Logo)
.setDescription("Super Nintendo emulator")
.setVersion(Emulator::Version)
.setCopyright("byuu")
.setLicense("GPLv3")
.setWebsite("https://byuu.org")
.setCopyright(Emulator::Copyright)
.setLicense(Emulator::License)
.setWebsite(Emulator::Website)
.setAlignment(*this)
.show();
});