0

I'm writing a tool that heavily utilizes Git (without linking against parts of it, or using any of its source files in the code) through the cli interface.

I would still like to license it under the same terms as git itself, which has a little bit 'weirdly' formulated version of GPL v2: https://github.com/git/git/blob/master/COPYING

in particular the

Note that the only valid version of the GPL as far as this project is concerned is this particular version of the license (ie v2, not v2.2 or v3.x or whatever), unless explicitly otherwise stated.

HOWEVER, in order to allow a migration to GPLv3 if that seems like a good idea, I also ask that people involved with the project make their preferences known. In particular, if you trust me to make that decision, you might note so in your copyright message, ie something like

This file is licensed under the GPL v2, or a later version at the discretion of Linus.

might avoid issues. But we can also just decide to synchronize and
contact all copyright holders on record if/when the occasion arises.

Q1: for a repository that is going to be hosted on github, what's a propper way of "inheriting" this license? i.e. what should I put in the license file and what should I put in the header of each file?

I'm also a bit confused as to why most of git's source files don't contain any header about the license at all, while some just contain

/*
 * Copyright (C) 2005 Junio C Hamano
 */

or (https://github.com/git/git/blob/306ee63a703ad67c54ba1209dc11dd9ea500dc1f/builtin/write-tree.c)

/*
 * GIT - The information manager from hell
 *
 * Copyright (C) Linus Torvalds, 2005
 */

Q2: Is that the proper way of doing it? i.e do all files in that repository automatically inherit the license from the license file, no matter what's written in he file header?

Q3: There are also files that have the MIT license in the header (like https://github.com/git/git/blob/66e871b6647ffea61a77a0f82c7ef3415f1ee79c/git-p4.py) but these files still received changes after that within this repository - so does it even make sense that it has the MIT license in the header (since I'd assume if the answer to Q2 is 'yes' that file would not be available under MIT anymore)

2
  • To be clear, you want to name Linus Torvalds specifically as your GPL upgrade proxy person?
    – apsillers
    Commented Mar 3, 2021 at 16:33
  • @apsillers I would like to ensure that it can always be used in the same situations and under the same conditions that git itself can be used Commented Mar 4, 2021 at 19:33

1 Answer 1

1

Q1: for a repository that is going to be hosted on github, what's a propper way of "inheriting" this license? i.e. what should I put in the license file and what should I put in the header of each file?

If it is your intention that parts of the project can only be re-used in different projects under the terms of the GPLv2 license until and unless you re-license your entire project to another version of the GPL, then the header of each of your files should mention the license as "GPLv2 only", but you can accept contributions that mention the license as "GPLv2 or later".

The project-level license file should be the text of the GPLv2.

The part you quoted from the git COPYING file is not actually a change in the license. It is rather a comment on how people can indicate in advance that they trust a particular person to make decisions on upgrading the license version from GPLv2 to GPLv3. Unless you are a public person who is widely trusted in such matters, don't expect people to name you in such a way and then there would also be little point in adding such a note.

Q2: Is that the proper way of doing it? i.e do all files in that repository automatically inherit the license from the license file, no matter what's written in he file header?

The proper way is to add the GPL license header to all files. If you don't follow the proper way, then it can be up to a judge to weigh all the evidence and decide which license actually applies to a particular file. As judges are humans, it is not always predictable how they will rule.

Q3: There are also files that have the MIT license in the header (like https://github.com/git/git/blob/66e871b6647ffea61a77a0f82c7ef3415f1ee79c/git-p4.py) but these files still received changes after that within this repository - so does it even make sense that it has the MIT license in the header (since I'd assume if the answer to Q2 is 'yes' that file would not be available under MIT anymore)

Presumably, those files are indeed currently under the GPLv2 license. However, if parts of them were under the MIT license at the time those files were added to the project, then the terms of the MIT license require that you preserve the MIT license text.

The best course of action in such cases is to also add the GPL license header to the file, at least when the first modifications under the GPL license are made, and to put a comment next to the MIT license text that it is kept only to satisfy licensing requirements.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.