You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, some important aspects about qBittorrent's licensing are not as clear as they should be. We must resolve this in order to ensure we can continue working smoothly with external dependencies such as Qt without any licensing troubles or ambiguities.
Additional context: refer to the discussion about licensing brought up in #14452.
Here is the proposed solution; further explanatory notes about each step are detailed further down.
Steps to clear up the current licensing
1. Verify that all source files have included the "GPLv2 or later" license header from the very beginning, and that there was no COPYING or similar file introduced before all other source files that contradicts the "GPLv2 or later" licensing . This is a necessary prerequisite for all of the following steps.
2. Add a LICENSE.txt file to the top-level with the following contents:
one line to give the program's name and an idea of what it does.
Copyright (C) yyyy name of author
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; either version 2
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
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Where one line to give the program's name and an idea of what it does. should be replaced by qBittorrent - a BitTorrent client, name of author by the qBittorrent project contributors and yyyy by the current year (the latter should obviously be updated periodically).
3. Figure out if anything related to OpenSSL licensing needs to be appended(or prepended?) to this LICENSE.txt file, and do that if it's needed.
4. Delete the license-related headers in each source file.
Notes about each step
_
For anyone willing to tackle this, here is a proposed method:
Start at any recent master commit, and record the commit hash.
Scan the git history of each file creation/deletion/rename, and note whether or not the files included the "GPLv2 or later" license header on their creation.
Create a list/table with results for each file
Note if the COPYING or similar licensing related files were introduced before or after any source file with the "GPLv2 or later" license header. This is important because the current COPYING file implies GPLv2 only. If it was introduced before anything else, I think we're screwed. If not, then it amounts to an invalid license change anyway, so we're good.
If we fail this step, then the whole effort to clear up the project's licensing and make sure that there is no problem with using Qt and migrating to Qt6 can become significantly more complex, and we'll need to reevaluate our options.
_
The template is copied verbatim from https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html. All that's required to correctly license the project with GPLv2 or later is to include this header at least once in the repo (in our case, in the proposed LICENSE.txt file), with the placeholders replaced with the appropriate values, as suggested.
For the rare case where someone may want to relinquish their copyright, we could advise them to make a commit appending something like this to the LICENSE.txt: John Smith <john.smith@example.com> relinquishes their copyright over files x, y and z on 2020-01-01. That way, the qBittorrent project contributors remains an accurate author attribution.
Nothing noteworthy
_
The GPL recommends, but does not require, that the header to be included in each source file. IMO we should not include the header in every file, it is redundant; many other GPL-licensed projects go this route. It is the responsibility of users who copy the project's source files standalone to include an appropriate licensing notice themselves. The copyright notice in the current headers is inaccurate, as it does not include every copyright holder in most cases. Placing the qBittorrent project contributors as the copyright holder in the top-level file solves this issue and makes it so that we don't have to worry about this in the future. The specific names/identities of the contributors are recorded in the repository metadata.
Miscellaneous
Not everything in this repository is a source file licensed under some sort of GPL license. Of the top of my head, I remember some icons have other licenses. We need to figure out how that fits into the picture. Perhaps a few more sections will need to be added to LICENSE.txt, specifically mentioning those files and the license that applies to them. That would also probably warrant a name change from LICENSE.txt to LICENSES.txt.
Please comment below with further suggestions and your findings. This post will be edited as-needed based on the discussion below.
Currently, some important aspects about qBittorrent's licensing are not as clear as they should be. We must resolve this in order to ensure we can continue working smoothly with external dependencies such as Qt without any licensing troubles or ambiguities.
Additional context: refer to the discussion about licensing brought up in #14452.
Here is the proposed solution; further explanatory notes about each step are detailed further down.
Steps to clear up the current licensing
1. Verify that all source files have included the "GPLv2 or later" license header from the very beginning, and that there was no
COPYINGor similar file introduced before all other source files that contradicts the "GPLv2 or later" licensing . This is a necessary prerequisite for all of the following steps.2. Add a
LICENSE.txtfile to the top-level with the following contents:Where
one line to give the program's name and an idea of what it does.should be replaced byqBittorrent - a BitTorrent client,name of authorbythe qBittorrent project contributorsandyyyyby the current year (the latter should obviously be updated periodically).3. Figure out if anything related to OpenSSL licensing needs to be appended(or prepended?) to this
LICENSE.txtfile, and do that if it's needed.4. Delete the license-related headers in each source file.
Notes about each step
mastercommit, and record the commit hash.COPYINGor similar licensing related files were introduced before or after any source file with the "GPLv2 or later" license header. This is important because the currentCOPYINGfile implies GPLv2 only. If it was introduced before anything else, I think we're screwed. If not, then it amounts to an invalid license change anyway, so we're good.LICENSE.txtfile), with the placeholders replaced with the appropriate values, as suggested.LICENSE.txt:John Smith <john.smith@example.com> relinquishes their copyright over files x, y and z on 2020-01-01. That way,the qBittorrent project contributorsremains an accurate author attribution.the qBittorrent project contributorsas the copyright holder in the top-level file solves this issue and makes it so that we don't have to worry about this in the future. The specific names/identities of the contributors are recorded in the repository metadata.Miscellaneous
LICENSE.txt, specifically mentioning those files and the license that applies to them. That would also probably warrant a name change fromLICENSE.txttoLICENSES.txt.Please comment below with further suggestions and your findings. This post will be edited as-needed based on the discussion below.