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

Kill All License Headers. #1263

Closed
bmr-cymru opened this issue Apr 4, 2018 · 9 comments
Closed

Kill All License Headers. #1263

bmr-cymru opened this issue Apr 4, 2018 · 9 comments

Comments

@bmr-cymru
Copy link
Member

We still have inconsistent FSF address details around the tree:

example_plugins/example.py:## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

vs.:

sos/__init__.py-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Since a lot of projects now take the approach that this is redundant (the LICENSE file is the canonical statement), and since maintaining these across hundreds of python source files is a giant pain in the ... I propose we just kill them all off and replace them with a generic copyright header (preserving dates and ownership details in plugins that have them now), e.g.:

# Copyright (C) 20XX Someone, Some Corp. All rights reserved.
#
# This file is part of the sos project: https://github.com/sosreport/sos
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# the version 2 of the GNU General Public License.
#
# See the LICENSE file in the source distribution for further information.
@bmr-cymru
Copy link
Member Author

s/the version/version/

@TurboTurtle
Copy link
Member

👍 I like it.

@TurboTurtle
Copy link
Member

TurboTurtle commented Apr 9, 2018

I had a free moment and created the above PR current with master, I'll update it as needed as we add any new plugins for 3.6.

@bmr-cymru
Copy link
Member Author

👍 thanks! I'm going to keep it to the side for now, while we work through the code changes still needed for 3.6. If there's time before the release we can merge it & make a clean start from the next release (I doubt that anything will conflict, since regular patches are never so high up in the file, but let's get that stuff done first).

@TurboTurtle
Copy link
Member

Closing per c8e1dc4

@kgaillot
Copy link
Contributor

kgaillot commented Oct 4, 2018

I'd like to point out that the solution for this issue made two substantive changes that may have not been intended. The original notices referred to "either version 2 of the License, or (at your option) any later version," while the new notices drop the "any later version" clause (which is not part of the LICENSE). Similarly, the new notices drop "WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE", which also is not part of the GPL itself.

A concise replacement keeping the original terms might be "version 2 or later of the GNU General Public License, without any warranty".

@bmr-cymru
Copy link
Member Author

The version clarification is intentional - the fact that that boilerplate was left in there many years ago was the unintended outcome. I'd planned to mention this in the commits, but in the end @TurboTurtle did the work, and I either forgot or didn't make clear this intent.

"either version 2 of the License, or (at your option) any later version,"

The sos team has never intended the project to be licensed under later versions of the GPL than v2. The original authors did not seem to realise the need to delete or amend these passages when the license was first put in place.

For the warranty point, I'm not sure - if people think it significant then I can try to get some qualified advice. We stripped the long boilerplate for the simple fact that changes over time were awkward to coordinate, left incorrect information in files, and having literally hundreds of copies of this text in the tree seems redundant for a project that uses an identical license for all sources. That said, adding the warranty exclusion passage isn't a real burden. It hasn't changed in many years.

The main LICENSE file to which the new header refers you does include the warranty statements and implied warranty exclusion from clauses 11 and 12:

                            NO WARRANTY

  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.

  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.

The notice on adding headers does not explicitly require the header text to be present in full in each source file (although it does suggest that it is the safest option):

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

My belief is that we are complying with slightly more than the "at least", and somewhat less than the "safest", and I believe the intent of the licensing is now more clear than previously - if a legal review felt differently then we'd be happy to change that and issue a notice of clarification, or we can just add the brief warranty text to the header.

@kgaillot
Copy link
Contributor

kgaillot commented Oct 5, 2018

Ah, it's fine as it is, then. I agree that a short notice in files and a complete license in a separate file is the best approach.

I'm not sure where I got the idea that the warranty exclusion wasn't in GPL. I could have sworn I had looked into that before for another project.

@bmr-cymru
Copy link
Member Author

I had to go check real quick this morning :-)

Thinking about it though, I don't see a reason to not include the warranty disclaimer - the hassle was with the address changes, and formatting differences in some versions of the header, but those extra few lines aren't going to hurt any, and means we're complying with the "safest" recommendation.

Thanks for flagging it up!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants