On Sun, 12 Aug 2012 01:40:06 +0300 "Alex Joni" <alex.j...@robcon.ro> wrote:
> Last emc1 version was 1.2.0-rc1 iirc, > you can still find the CVS tree for emc1 here: > http://emc.cvs.sourceforge.net/viewvc/emc/emc/ Thanks Alex! I've been doing some research into copyright law to determine if Michael Haberler can use free software components (like 0MQ) that are available only under licenses that may conflict with the licenses under which Linuxcnc is made available. The situation is complicated and also not 100% knowable because the law is either vague or silent with regard to important issues. For example, the issue of what I would call "continuous creation" such as occurs in a project like this where changes are made nearly every day, and the actual copyrightable work will _never_ be finished, is not meaningfully addressed in law. Another example is that a contribution to a work which may establish a copyright interest for an author must be "independently copyrightable", but this phrase is not clearly defined and is subject to interpretation. However, after lots of reading I've come to some preliminary conclusions: 1. Linuxcnc is a "collective work" which means, "a work, such as a periodical issue, anthology, or encyclopedia, in which a number of contributions, constituting separate and independent works in themselves, are assembled into a collective whole". 2. This means that many parts of Linuxcnc, particularly those created from scratch after the exit of NIST from the development process, have known authors with indisputable copyright interests. These authors have chosen to allow copying of their works subject to licenses of their own choosing, mostly the GPL I think. In this category you would find things like AXIS, the HAL system and its components, utilities like stepconf, the beautiful documentation, the build system and infrastructure, etc. The important issue is that these are "independent works", that can stand on their own without the rest of Linuxcnc. I would suggest that these parts be made _more_ independent by such actions as packaging them separately so that they can be installed individually, and also by eliminating installation dependencies on, and inclusions (include, require, source, import, etc statements) of (if at all possible), any code that is about to be defined in the next paragraph (3) below. In short; create as many "independent works" as possible with good copyright pedigrees, and enforceable licenses. If any of these are also "joint works" (about to be discussed at length), the authors should have a written agreement that codifies their mutual agreement on licensing. 3. The remaining part of Linuxcnc is that part which originated at NIST, and possibly elsewhere. This part itself is a "collective work", consisting of the interpreter (Tom Kramer + many happy helpers), the task planner, the motion controller, the I/O controller, rtapi, etc (Fred Proctor, Will Shackelford, + many more happy helpers), NML (James Albus, Fred Proctor, Will Shackelford, et al), and other parts with a similar set of authors. A. In the beginning, this was mostly a “work of the United States Government” which means, "a work prepared by an officer or employee of the United States Government as part of that person’s official duties". B. There may also be a few files that were provided by third parties (like Servo To Go, or Delta Tau) to facilitate using their products, or something provided by another early EMC user like GM. If anything remains of these in the present day Linuxcnc, then their copyright owners, and the license under which they are distributed should be identified within the text of the file itself. C. According to U.S. copyright law, "Copyright protection under this title is not available for any work of the United States Government, but the United States Government is not precluded from receiving and holding copyrights transferred to it by assignment, bequest, or otherwise." (http://www.law.cornell.edu/uscode/text/17/105) D. I'm not sure if 'not copyright protect-able' is the same as 'being in the public domain'. I can't cite an explanation of this and it seems too important to ignore. E. As far as I know, all the earliest non-governmental participants in the EMC project, including GM's Pontiac Powertran Division, Boeing, and me signed Cooperative Research And Development Agreements (CRADAs) in which the government agreed to help with research if the participants disclaimed any intellectual property interests, including copyrights, in the results. I'll see if I can dig up my copy of this just for completeness. F. At some time, after my involvement began, and probably before the move to Sourceforge, I believe some part(s) of EMC became a "joint work", which means "a work prepared by two or more authors with the intention that their contributions be merged into inseparable or interdependent parts of a unitary whole". I believe it became a "joint work" rather than a "derivative work" because the intent was always collaboration on successive versions of a single work. For a summary of the doctrine of "joint works" see: http://cyber.law.harvard.edu/metaschool/fisher/joint/links/articles/lape.html G. Just FYI, a "derivative work" is "a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a "derivative work." I believe miniEMC2 is an example of a "derivative work" based on EMC2. For an explanation of the difference between "joint works" and "derivative works" see: http://www.owe.com/legalities/legalities28.htm H. The above linked owe.com article states, "Under copyright law, absent a written agreement otherwise, each joint author owns an undivided interest in the whole work." I. There has been some debate about the elements (their quantity, quality and other characteristics) necessary to form a contribution sufficient to establish authorship in a "joint work". Generally the consensus seems to be that a contribution must be: i. original or innovative AND ii. "fixed in a tangible medium of expression" (http://codes.lp.findlaw.com/uscode/17/1/102) My take on this is that a contribution of code that exceeds the threshold of just fixing a typographical error or reformatting, and which represents anything greater than a minimal amount of creativity would satisfy the first criteria. The second criteria is satisfied when the contribution is checked into the source code repository and merged with the existing code. For more information on contribution requirements to "joint works", see: http://digitalcommons.lmu.edu/elr/vol12/iss1/8/ and http://euro.ecom.cmu.edu/program/law/08-732/Transactions/LegalIssuesNimmer.pdf In summary, I think that Michael Haberler can use 0MQ, even if it is GPL3 licensed, if: I. He is one of the authors of the "joint work" started by NIST by virtue of his contributions thereto. He can exercise his right to re-license the use of this part of Linuxcnc in a compatible way, for example GPL2+. OR II. Some other author of the "joint work" started by NIST can exercise their right to re-license the use of this part of Linuxcnc in a compatible way to aid Mr. Haberler in his endeavor. The above assumes that all the work to be done affects only the NIST originated portions of Linuxcnc. The authors of the other parts of Linuxcnc will have to decide what they want to do with respect to this issue. Since most of these other parts are also "joint works", any of their authors can unilaterally re-license their work to be compatible with the new 0MQ using version. I would suggest however, that these decisions be made in consultation with as many of the co-authors of their respective works as can be found, out of respect for democratic ideals and to preserve the peace. Finally, I feel that these copyright law issues should be considered when deciding the future form of Linuxcnc. Assuming we all desire essentially "share and share alike" licensing, rewriting the NIST originated code would eliminate any ambiguity in the licensing status of this part of the code. I also strongly suggest that the various parts of the Linuxcnc system be separated into libraries or standalone programs as much as is practical. This will help define who the authors of each piece are, aid testability through modularity, and maximize the hazard to any hostile party attempting to use the code outside the terms of the licensing. Thanks, Matt ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Emc-developers mailing list Emc-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-developers