Do any Open Source Licences require source history?

A question to the void. Are you entitled to get the source history of open source projects?

Lots of Open Source licences give the consumer of software the right to a copy of the source code.

For example, GPLv3 says that distributors of software have to:

give anyone who possesses the object code ... a copy of the Corresponding Source

What is "Corresponding Source"?

The "Corresponding Source" means all the source code needed to generate, install, and run the object code

That, to me, reads like a user is only entitled to a code snap-shot. Not the full history of code development, but just the version of the source used to compile the distributed binaries.

My question to you, gentle reader - are there any licences which compel the distribution or publication of the development history?

Is this a good idea?

Services like GitHub and GitLab now dominate the open source conversation. But nothing about FOSS says that you must develop in public. It just seems to be the social norm now.

But I don't see any reason to make it a compulsory part of a licence.

10 thoughts on “Do any Open Source Licences require source history?

  1. I'm not aware of any, but it occurs to me that there's at least one case where this might be quite sensible to do a light variant of this: It may well make sense to license code in such a way that people have to provide both the version they received and their modifications.

    1. mark999 says:

      I do vaguely recall some license which required that anyone who modified the code must distribute as an unmodified src tarball alongside a patch containing their changes.

      Whatever I was reading said it was too annoying in practice and lost market share.

      I’m thinking this license was used with TCL and/or Perl projects.

  2. says:

    I googled a related question, can you give people an obfuscated version of the source. Stack overflow said the GPL defines the source code as "the preferred form of the work for making modifications to it" so I guess "it might be a legal fight". The same MIGHT apply to history?

    1. Christian R. Conrad says:

      Nope, no legal fight. The preferred form for making modifications is quite obviously the plain clear-text one, so obfuscated will be thrown out of court in no time.

  3. says:

    I suspect that those who do big final code drops for open inspection rather than participation wouldn't use such a licence.

  4. Not only is the user only entitled to a code snapshot, the user is only entitled to a code snapshot for three years after the distribution of the software:

    [6b] Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model

    Seems vaguely harsh that a company that loses the source code is also no longer allowed to offer customer support, but that's how it goes.

    This also applies only to licensees -- a developer who writes some code and licenses it under GPL is not obliged to offer the source code to anyone (although if contributions were accepted, and those licensed under the GPL, the source code would need to be offered).


    A license which compelled distribution of the history would seem to also have to compel usage of version control -- while extremely widespread it can't be guaranteed, and if not "we don't use version control, there is no history" would be a simple escape hatch.

    Given also that you'll sometimes want to modify the history to remove personal data or passwords or the like, I can only see such a license being anathema in corporations -- it's already widespread to avoid GPL projects in favour of MIT in case of possible legal issues, and having an infectious license that also requires to you give everybody the entire history of the project would be even more dangerous, and possibly conflict with other laws (e.g. GDPR).

  5. Les Nessman says:

    The GPLv3 requires that you mark your modifications:

    Conveying Modified Source Versions.
    You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified it, and giving a relevant date.

    Not exactly requiring a git repo, but a git repo would make it easier to comply with this condition.

    1. Christian R. Conrad says:

      “Prominent notice” = comment up at the top of the main code file, in with the other “Created by Joe Blow” and “Licensed under the GNU GPL”. Why would you need a VCS for that? NB: Stating that you modified it, not exactly what and where.

  6. says:

    I’ve a foggy memory of Apple doing this. Code they used came back altered in a bulk that was hard to get into upstream again. A lot of discussion was going on about this practice but I don’t recall the outcome.

Leave a Reply

Your email address will not be published.

%d bloggers like this: