From: John Leonard on
I'm studying the JAXB API. The sample source code files provided by
Sun have the following inclusion:

/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
*
* The contents of this file are subject to the terms of either the
GNU
* General Public License Version 2 only ("GPL") or the Common
Development
* and Distribution License("CDDL") (collectively, the "License").
You
* may not use this file except in compliance with the License. You
can obtain
* a copy of the License at https://glassfish.dev.java.net/public/CDDL+GPL.html
* or glassfish/bootstrap/legal/LICENSE.txt. See the License for the
specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice
in each
* file and include the License file at glassfish/bootstrap/legal/
LICENSE.txt.
* Sun designates this particular file as subject to the "Classpath"
exception
* as provided by Sun in the GPL Version 2 section of the License file
that
* accompanied this code. If applicable, add the following below the
License
* Header, with the fields enclosed by brackets [] replaced by your
own
* identifying information: "Portions Copyrighted [year]
* [name of copyright owner]"
*
* Contributor(s):
*
* If you wish your version of this file to be governed by only the
CDDL or
* only the GPL Version 2, indicate your decision by adding
"[Contributor]
* elects to include this software in this distribution under the
[CDDL or GPL
* Version 2] license." If you don't indicate a single choice of
license, a
* recipient has the option to distribute your version of this file
under
* either the CDDL, the GPL Version 2 or to extend the choice of
license to
* its licensees as provided above. However, if you add GPL Version 2
code
* and therefore, elected the GPL Version 2 license, then the option
applies
* only if the new code is made subject to such option by the
copyright
* holder.
*/

What exactly does this mean to me as an application developer? I'm
only using the code as an example of the proper way to use JAXB. I
will cut, paste and refactor the code for use in my program. Does it
mean that the use of JAXB itself constitutes GPL'd activity unless
it's done in some other way? In adding this notice, did Sun intend
that every file where it appears, or did appear, must contain it? Or
is there some other use which it is specifically intended to restrict?

My background includes microcomputer app development going back to the
80's. I have become accustomed to having access to freely usable
sample code from manufacturers and the like to get things going when
developing for a given platform. Has that changed?

John Leonard
From: markspace on
John Leonard wrote:

> What exactly does this mean to me as an application developer?


It means you can't use this code.


> I'm
> only using the code as an example of the proper way to use JAXB. I
> will cut, paste and refactor the code for use in my program.


Sun owns the resulting code if you do that. Also, if you remove the
copyright notice, you've violated the law.


I'd find at least two other examples of JAXB code, and use a combination
of all three patterns, but write the code yourself, copy nothing.
From: John Leonard on
> Sun owns the resulting code if you do that. Also, if you remove the
> copyright notice, you've violated the law.

I am sure that the license does not transfer ownership to Sun.

John L
From: RedGrittyBrick on
John Leonard wrote:
>> Sun owns the resulting code if you do that. Also, if you remove the
>> copyright notice, you've violated the law.
>
> I am sure that the license does not transfer ownership to Sun.
>

But the source of any derivative work (your application) must be made
freely[1] available under the same licence (GPL).

Any user of your application has the legal right to demand the source
code from you.

If you ignore this, you open yourself, and any employer, to future
lawsuits. As I expect you know, this has happened.

Of course, I am not a lawyer and not /your/ lawyer. I suggest you take
any legal question to a paid lawyer.


[1] AIUI for no more than a nominal charge for media.

--
RGB
From: Arne Vajhøj on
markspace wrote:
> John Leonard wrote:
>> What exactly does this mean to me as an application developer?
>
> It means you can't use this code.
>
>> I'm
>> only using the code as an example of the proper way to use JAXB. I
>> will cut, paste and refactor the code for use in my program.
>
> Sun owns the resulting code if you do that. Also, if you remove the
> copyright notice, you've violated the law.
>
> I'd find at least two other examples of JAXB code, and use a combination
> of all three patterns, but write the code yourself, copy nothing.

If the code is modified and the modified code is used in app that
is distributed, then the modified source code must be made available.

This applies to both GPL and CDDL.

The more interesting question is the implications for the rest
of the source code if the app is distributed.

If GPL is used, then any code "linked" to that code
must be under GPL or it is violating the license.

If CDDL is used, then it can be used with both open source code
and closed source code. Open source includes practically
all licenses except GPL (CDDL is not GPL compatible).

Whether the code can be used and whether GPL or CDDL should
be used depends on the app. It may be fine for some.

And SUN does not get any special rights to either modifications
of this code or code linked to this code - they of course get the
same rights as everybody else according to the previous.

The above is a summary of the general understanding of GPL and CDDL
among programmers - if this involves serious business, then a lawyer
with expertise in licenses should be consulted.

Arne