I have some legal questions regarding OpenJDKs source header:
/*
* Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
(...)
- Is it GPL-conform to define a comment-part of a source-file (in this case the header) as “must not be modified”?
- Do other GPL-licensed open-source projects derived from this sources need to obey this “statement”?
- Does Oracle really have a Copyright on these GPL-sources?
- Is it GPL-conform to state that it’s only allowed to
modify [the software] under the terms of the GNU General Public License version 2
? - What does this mean for GPLv3 open-source projects which are using these (possibly modified) sources?
- Do I have to fear editing (and publishing) this file (and maybe adding something to the file header) in my own GPLv3 open-source project?
I can’t answer all of those questions, so I’ll just pick some ;-):
Does Oracle really have a Copyright on these GPL-sources?
Yes, they probably do. Most of the code was written (or bought) by Sun which was bought by Oracle. And Sun was/Oracle is pretty stringent with regard to copyright tracking, so in general you can assume that if they claim copyright, they probably have it.
Is it GPL-conform to state that it’s only allowed to modify [the software] under the terms of the GNU General Public License version 2?
Well, yes. That’s what the GPL does: it grants you the permission to modify the code, provided you conform to the GPL.
And no, the common “version 2 or greater” is not required.
What does this mean for GPLv3 open-source projects which are using these (possibly modified) sources?
Since this doesn’t allow usage under GPLv3, they will have to keep this part GPLv2.
Default disclaimer: this is not legal advice. As usual: contact a lawyer and pay them money if it’s really important to you.
I am not a lawyer. If you need legal advice, consult a lawyer.
Is it GPL-conform to define a comment-part of a source-file (in this case the header) as “must not be modified”?
AFAIK, it is not incompatible. I believe that the “conditions” of a license are additive. And as the owners of the copyright, Oracle have a right to tailor the license agreement to their own ends. (The GPL section that forbids placing extra license restrictions on a downstream derived product applies to direct and indirect licensees … not to the original licensor.)
Do other GPL-licensed open-source projects derived from this sources need to obey this “statement”?
Yes.
Does Oracle really have a Copyright on these GPL-sources?
Yes. Sun wrote the code, and Oracle took over Sun. Oracle owns the copyrights.
Is it GPL-conform to state that it’s only allowed to modify [the software] under the terms of the GNU General Public License version 2?
Yes. Indeed, this is pretty common. The Linux source code says the same thing, AFAIK.
What does this mean for GPLv3 open-source projects which are using these (possibly modified) sources?
It depends.
-
If the usage is governed by the “Classpath Exception”, then there are no implications. (The “Classpath Exception” basically allows you to use the Java class libraries in any project, commercial or non-commercial without any of the GPL limitations on redistribution … of your code.)
-
The Oracle binary distribution license allows you to embed JRE / JDK binaries in your product … provided that you don’t tinker with them.
-
Otherwise your usage is covered by the GPL2, and according to this FAQ the terms of GPL2 and GPL3 are incompatible.
Do I have to fear editing (and publishing) this file (and maybe adding something to the file header) in my own GPLv3 open-source project?
If you publish / redistribute it, (apart from under the Binary License terms), then: Yes, you need to obey the rules. And rules say NO MODIFICATION of the header.
Otherwise No.