The "GPL How to" has the following to say about applying copyright notices of code copied from other programs:

If you have copied code from other programs covered by the same license, copy their copyright notices too. Put all the copyright notices together, right near the top of each file.

I did a total refactoring of a C# library, which itself was a port from Visual Basic (VB) code. The original VB code is currently released under the Microsoft Public License (Ms-PL), but originally under GPL. The C# library is GPL, continuing work on the older VB library. Basically I only used the same 'technique' they used.

I don't care making the library GPL, so that's not the issue. (From this answer I gather my library might be considered a derivative work.) I do however find it cumbersome having to copy the previous copyright notices in every source file. I would rather only reference them in the README file. This question discusses the need to add notices to every source file, but there's no consensus between the answers. Therefore I'd like to add the license to every file as a safety measure.

Do I have to include copyright notices of the projects on which my library was based in all source files as well?


1 Answer 1


MS-PL (definition) is much more liberal compared to GPL. Not very identical, but MS-PL more like Apache license, where in the code is given as-is. MS-PL original software doesn't mind whether a derived software is distributed as source or binary or even commercial. Hence, if you take MS-PL code, modify (whether trivial or with refactoring) you can publish it through GPL

However, it is clear that you cannot remove MS-PL license notice. And hence, the GPL license granted by you essentially becomes a dual license. Since MS-PL already permits other people to include your work in commerical, GPL's provided protection will no longer hold! Yes, your license will no longer be any stronger than the weakest of all - the MS-PL.

One more ref: http://www.cmswire.com/cms/web-development/taking-a-closer-look-at-microsofts-mspl-open-source-license-004248.php

There is a general opinion, [ Is it possible to rewrite every line of an open source project in a slightly different way, and use it in a closed source project? ] that even if you modify every line of code, it is still a derived work; hence you cannot really rule out MS-PL terms.


Oops! I just got off the tangent to read the question properly.

Basically, assuming that GPL is common across all three generations. This is simple. What GPL requires is that for every file copyright claim needs to be included with mention of GPL. See GPL Howto it reads following:

Whichever license you plan to use, the process involves adding two elements to each source file of your program: a copyright notice (such as “Copyright 1999 Terry Jones”), and a statement of copying permission, saying that the program is distributed under the terms of the GNU General Public License (or the Lesser GPL).

So there needs to be at least one copyright claim attached to every source file without which you cannot attach GPL (or any license) to it!

Now, the real question in your case is,

if you have really modified a file heavily or almost re-written but do not include original author's name, are you violating copyright law? (by not copy pasting the original author's name).

This is determined by the common notion of whether new author deserves copyright over determined works. See this wiki page for primary introduction: When does derivative-work copyright exist?

The simple answer is: when the change is significant. This is quite ambiguous given that it is a statement underlaw, but it is true. Even copying only rythm but not words and making remixes in music comes in severe gray area because of this; and this notion of significant change varies between laws of different countries.

Having said that, it would be suffice to notice that had you almost started with a new file and re-wrote the program, the new file will typically deserve your name rather than old author. In general, if you simply copy a file and simply change author's copyright notice to put your name, you will be violating copyright.

So as a practical advice if you have started out with new set of files, put your name, if you have kept original files, keep the original names (you can add your name in addition).

  • 1
    Interesting post, but it doesn't really answer the question I was asking. As a side note: I believe the original author released the previously GPL'ed code as MS-PL, but the derivative work was on the GPL'ed code, not the MS-PL library. So I'm not working on MS-PL, perhaps I should remove that history as it might only lead to confusion. Feb 19, 2012 at 16:52
  • The question is - is it a derived work? Yes if you keep a program identical and merely change every line in some irrelevent way it is derived - if you use the concepts of the program and write it again it may not be. Feb 19, 2012 at 17:47

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.