www-legal-discuss mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeffrey Thompson <jt...@us.ibm.com>
Subject RE: virality of IBM's CPL ?
Date Thu, 27 Jul 2006 13:47:32 GMT
"Jim Barnett" <jimb@bea.com> wrote on 07/26/2006 06:08:32 PM:

> Good points Jeff, but I not convinced that the "derivative work" status
> of a work you produce is relevant for determining whether you are
> subject to "copyleft" treatment under the CDDL/MPL.  Also, it may be me
> that's "missing something" with respect to the CPL/EPL rather than you
> missing anything with respect to the MPL/CDDL, but therein lies the
> educational value of these discussions. 
> The CDDL defines "Modifications" as:
> "Modifications means the Source Code and Executable form of any of the
> following:
>       A. Any file that results from an addition to, deletion from or
> modification of the contents of a file containing Original Software or
> previous Modifications;
>       B. Any new file that contains any part of the Original Software or
> previous Modification; or
>       C. Any new file that is contributed or otherwise made available
> under the terms of this License."
> The CDDL defines "Larger Work" as:
> "Larger Work means a work which combines Covered Software or portions
> thereof with code not governed by the terms of this License."
> It defines "Covered Software" as:
> "Covered Software means (a) the Original Software, or (b) Modifications,
> or (c) the combination of files containing Original Software with files
> containing Modifications, in each case including portions thereof. 
> Let's use a simple directory-based example.  Assume I've downloaded
> software having the following directory and file structure under the
> Folder:  ROOT
>    - File: logfile
>    - File: widget
>    - File: fubar
> Assume further that each of these files in folder ROOT consist of 5
> lines of code.
> If I simply aggregate this folder and all of its files without
> modification with my own set of files (payroll, timecards, leads), the
> whole is a "Larger Work" under the CDDL and I can proceed licensing that
> entire work in executable format under terms of my choosing with no
> additional requirement that I make any of the files available in source
> code under the CDDL.
> The Copyright Act which defines "derivative work" as "a work that is
> based on (or derived from) one or more already existing works". The
> Copyright Office tells us that "A typical example of a derivative work
> received for registration in the Copyright Office is one that is
> primarily a new work but incorporates some previously published
> material. This previously published material makes the work a derivative
> work under the copyright law."
> In the example above the Larger Work fits the definition of a
> "derivative work".  It is a new work that incorporates previously
> published material.  Nonetheless, I have no "copyleft" obligations.
> If instead I deleted one line from logfile, and added 4 new lines to
> fubar, and aggregated the ROOT folder with the modified files with the
> same three self-developed files (payroll, timecards, leads), I may still
> distribute the Larger Work in executable format under terms of my
> choosing, but I have the additional obligation to make any "Covered
> Software" in the Larger Work "available in Source Code form and that
> Source Code form must be distributed only under the terms of this
> License."  This means that I would have to make available redacted
> "logfile" (the 4 remaining lines) and supplemented "fubar" (all 9 lines)
> in source format under the terms of the CDDL.

No disagreement with the above.

> Using the same examples, how would you analyze my obligations under the
> EPL and its definition of "Contribution"?
> The EPL defines "Contribution" as:
> "Contribution" means:
>     a) in the case of the initial Contributor, the initial code and
> documentation distributed under this Agreement, and
>     b) in the case of each subsequent Contributor:
>     i) changes to the Program, and
>     ii) additions to the Program; 
> where such changes and/or additions to the Program originate from and
> are distributed by that particular Contributor. A Contribution
> 'originates' from a Contributor if it was added to the Program by such
> Contributor itself or anyone acting on such Contributor's behalf.
> Contributions do not include additions to the Program which: (i) are
> separate modules of software distributed in conjunction with the Program
> under their own license agreement, and (ii) are not derivative works of
> the Program."
> Is there any possible aggregation of my files ("payroll," "timecards,"
> and "leads") with EPL-covered files, with or without modification, that
> is not "primarily a new work but incorporates some previously published
> material"?  Given that the exception from EPL "copyleft" requirement is
> conjunctive (i.e., my work must be both (a) a separate module from the
> EPL-covered work and (b) not a derivative work of EPL-covered work, it
> doesn't seem that I can simply put my files in a separate "module" in
> the aggregation and escape having those files become "Contributions."
> In fact I think that it is the very act of aggregation that results in a
> "derivative work".  Perhaps I don't understand what is meant by
> "module."

Whether the combination of payroll, timecard, and leads with logfile, 
widget, and fubar creates a derivative work of the EPL code is a separate 
question from whether the files payroll, timecard, and leads are 
themselves derivative works.  If you wrote these 3 files w/o reference to 
the EPL code, then they are clearly not derivative works even though the 
combination of all 6 would be.  That is the issue being addressed by 
clause (ii) of the conjunctive exception.  If you add your 3 files, if you 
do it in a way that they get compiled into a separate module from the EPL 
licensed code, and if the 3 files weren't derived from the EPL licensed 
code, then they are not considered a Contribution, and not subject to the 
requirement that they be distributed under the EPL.

Re the meaning of module, here is a definition from one of the online 
computing dictionaries:


1. <programming> An independent piece of software which forms part of one 
or more larger programs. Different languages have different concepts of a 
module but there are several common ideas.  Modules are usually compiled 
separately (in compiled languages) and provide an abstraction or 
information hiding mechanism so that a module's implementation can be 
changed without requiring any change to other modules. In this respect 
they are similar to objects in an object-oriented language, though a 
module may contain many procedures and/or functions which would correspond 
to many objects.  A module often has its own name space for identifiers so 
the same identifier may be used to mean different things in different 

Multiple files can be combined into a single module, but do not need to 
be.  So, if in your example, each of the 6 files was compiled into its own 
module, the MPL and EPL end up with the same result.

> In any case I personally would benefit from an example using the same
> facts as I've used above where my files ("payroll," "timecards," and
> "leads") are aggregated with the EPL-covered files in the ROOT folder to
> form a single application, and my files would not become a Contribution
> that I am obligated to offer under the terms of the EPL.

I can illustrate where I believe that you and I differ, though.  Assume 
that instead of adding just the 3 new files, you didn't like the way that 
the original logfile code was implemented.  You read and studied it and 
considered making major changes to it, but rather than fight through this 
unusual and poorly written code, you decide to completely rewrite that 
function.  You sit down and write "logfile2.0" which performs the same 
function as logfile.  Notwithstanding that you didn't directly copy 
anything from logfile at all, you ended up writing logfile2.0 in such a 
way as a court would conclude that it was a non-literal copy -- that is, 
the court appointed expert would notice substantial similarities between 
the two implementations and conclude that copying was the cause.

Where are we now?  Do you have to license your logfile2.0 source code 
under the MPL or EPL?

What you had said/implied before was that since you didn't copy any 
literal code and since this is a separate FILE, the MPL doesn't reach that 
new code.  My concern is if that's the case, then the court would conclude 
that you have no license to distribute the source or object code of 
logfile2.0.  This is why I'm suggesting that the definition of 
Modification should not be so narrowly construed.

Under the EPL, I believe, the situation is much clearer. The copyright 
grant is to create and distribute derivative works.  Regardless of where 
the line between derivative works and non-derivative works is drawn (as 
you pointed out earlier, each jurisdiction might have its own definition), 
only derivative works require consent of the copyright holder.  So, the 
copyright holder is giving you permission to create and distribute to the 
full extent that such permission is needed. 

> One last thought:  it may be that I am reading the EPL exception
> language too literally.  Maybe what is intended is the following: 
> "Contributions do not include additions to the Program which are
> separate modules of software that do not include any part of the
> Program, but are distributed in conjunction with the Program under their
> own license agreement."

Something like that, but to the "do not include any part of the Program" 
is somewhat unclear.  Does it cover non-literal copying or not?  Since 
plaintiffs historically have been able to convince courts that non-literal 
copying is not permitted, we need to address it.  The best way I know how 
to do so is to simply refer to the term "derivative work" since that, by 
reference, incorporates all of the historical court opinions on the topic. 
 I realize that this means that the ultimate result is somewhat 
unpredictable -- depending on which court you end up in, but that's the 
case for most aspects of the law and I'd rather be uncertain as to what 
license I need to distribute the source code under over being uncertain 
about whether I have the right to distribute the code at all.  The former 
I can manage to.  The latter, I can not.

> Help!
> Thanks,
> Jim

Staff Counsel, IBM Corporation  (914)766-1757  (tie)8-826  (fax) -8160
(notes) jthom@ibmus  (internet) jthom@us.ibm.com (home) jeff@beff.net
(web) http://www.beff.net/ 

View raw message