[SoC] License question

<introduction> Hi, I'm Hugh Wimberly, and I submitted a proposal for SoC. I was directed here to ask questions, and hope I'm not bothering anyone.</introduction> For my project, I proposed to extend the regex library to use DFA-based regular expression matching, and essentially make it a hybrid matching engine that would be more predictably time-bounded. One of the reasons I proposed such an undertaking was that I know that there are other implementations that use this model; Plan 9 uses DFA-only regular expression matching, Tcl uses a very advanced hybrid model, and GNU awk uses almost exactly the model I proposed. These (and other) implementations are in general written in C and are all open-source. Since they're written in C, I couldn't directly use code anyway, but I'm a little worried about how much I can use them as a reference since most of them are licensed under the GPL, and Boost has an incredibly open license that isn't compatible with the GPL. My question is really just "what counts as using the code"--does writing similar code, knowingly using it as a reference infringe on copyright? If it does, I think I have to amend my proposal, because I think it would take me much longer than I thought if I can't reference existing implementations. -Hugh

Hugh Wimberly wrote:
<introduction> Hi, I'm Hugh Wimberly, and I submitted a proposal for SoC. I was directed here to ask questions, and hope I'm not bothering anyone.</introduction>
For my project, I proposed to extend the regex library to use DFA-based regular expression matching, and essentially make it a hybrid matching engine that would be more predictably time-bounded. One of the reasons I proposed such an undertaking was that I know that there are other implementations that use this model; Plan 9 uses DFA-only regular expression matching, Tcl uses a very advanced hybrid model, and GNU awk uses almost exactly the model I proposed. These (and other) implementations are in general written in C and are all open-source. Since they're written in C, I couldn't directly use code anyway, but I'm a little worried about how much I can use them as a reference since most of them are licensed under the GPL, and Boost has an incredibly open license that isn't compatible with the GPL. My question is really just "what counts as using the code"--does writing similar code, knowingly using it as a reference infringe on copyright? If it
I'm not a lawyer. That said, looking at a piece of related code for inspiration or understanding the algorithm does not infringe the copyright. If you start copying the code verbatim, in any way, then you've violated the copyright. In addition, you'll have violated the rules of SoC.
does, I think I have to amend my proposal, because I think it would take me much longer than I thought if I can't reference existing implementations.
I don't see a problem with doing some initial study to get the algorithms clear, however, research reports and other places might be better so you don't wind up with an 'accidental' infringement. That is the unconscious use. That said, using these other implementations to test against, for example, would be a valuable and allowed use. Jeff

-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Jeff Garland Sent: Tuesday, March 20, 2007 3:48 PM Subject: Re: [boost] [SoC] License question
Hugh Wimberly wrote:
general written in C and are all open-source. Since they're written in C, I couldn't directly use code anyway, but I'm a little worried about how much I can use them as a reference since most of them are licensed under the GPL, and Boost has an incredibly open license that isn't compatible with the GPL.
IANAL either, but according to http://www.gnu.org/licenses/license-list.html#SoftwareLicenses the latter statement, the one about GPL-compatibility, isn't accurate. cheers, aa -- Andreas Ames | Programmer | Comergo GmbH | ames AT avaya DOT com Sitz der Gesellschaft: Stuttgart Registergericht: Amtsgericht Stuttgart - HRB 22107 Geschäftsführer: Andreas von Meyer zu Knonow, Udo Bühler, Thomas Kreikemeier

Ames Andreas wrote:
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Jeff Garland Sent: Tuesday, March 20, 2007 3:48 PM Subject: Re: [boost] [SoC] License question
Hugh Wimberly wrote:
general written in C and are all open-source. Since they're written in C, I couldn't directly use code anyway, but I'm a little worried about how much I can use them as a reference since most of them are licensed under the GPL, and Boost has an incredibly open license that isn't compatible with the GPL.
IANAL either, but according to http://www.gnu.org/licenses/license-list.html#SoftwareLicenses the latter statement, the one about GPL-compatibility, isn't accurate.
That listing has a different view. It tells whether code that has originally been released under a non-GPL license can be relicensed under GPL (this is termed "combining", but since GPL is viral, the combined work has to licensed under GPL, including the formely non-GPL parts). Boost is a very free license, so this is possible. However, it is not possible to relicense GPLed code under BSL (unless you're the copyright holder). The GPL is a lot less free than the Boost license. This is the what Hugh was talking about. IANAL-ly yours, m Send instant messages to your online friends http://au.messenger.yahoo.com

Martin Wille wrote: [... "combining" ...]
However, it is not possible to relicense GPLed code under BSL (unless you're the copyright holder). The GPL is a lot less free than the Boost
http://www.usfca.edu/law/determann/softwarecombinations060403.pdf <quote> Under the U.S. Copyright Act, a combination of a computer program with other software results in the preparation of a derivative work only if the combination (a) is sufficiently permanent, (b) contains significant and creative portions of the other software, (c) is creative in its own right, and (d) involves significant and creative internal changes to the other software. Most software combinations fail to meet one or more of these requirements and constitute either compilations, collective works, or noncopyrightable aggregations, and neither affect copyright owners adaptation rights under Section 106 of the U.S. Copyright Act. Software combinations involving dynamic links usually lack permanency, combination creativity and internal changes. Even software combinations through static links do not necessarily affect adaptation rights, because such linking often results in the creation of a compilation or non-creative aggregation of programs or sub-programs. Nevertheless, under the U.S. Copyright Act, software developers typically have to obtain a license before they may combine programs through static linking because this affects the duplication rights of the linked programs copyright owner. Also, adaptation rights may be affected where software combinations (regardless of the code linking method) result in significant and creative changes to original screen output (e.g., in the context of computer games). Under common commercial licensing conditions, end users typically receive an express or implied license to execute proprietary software in combination with other software, regardless of whether the combination would qualify as a derivative work. Under the GPL, end users are free to combine GPLed code with any other code. Developers and distributors do not have to be concerned about contributory liability, so long as they distribute add-on software separately and the end-users are not legally restricted in combining the intended programs with the add-on software. Anybody who wants to distribute programs in combination and alongside with GPLed code, however, will have to closely examine the reach and consequences of the various conditions and restrictions in the GPL. The term derived work in the GPL should be interpreted to mean derivative works as defined by copyright law, and as a consequence, most programs could be distributed in combination with dynamically linked GPLed code without the necessity of subjecting the linking programs to the GPL. It seems possible, however, that courts may interpret the GPL in a broader way, which would increase concerns regarding the validity of the GPL under copyright misuse doctrines, competition laws and unfair contract term laws; such concerns can be greater or smaller depending on the circumstances of the licensing parties and jurisdictions involved. If such broad interpretations were to prevailbut the resulting validity concerns were notthe software industry might move more generally to GLP-like restrictive licensing practices that permit and prohibit certain software combinations. This would potentially have a serious impact on interoperability. Then, software combinations could become dangerous liaisons. </quote> regards, alexander.

Forgot one thing... Alexander Terekhov wrote:
Martin Wille wrote:
[... "combining" ...]
However, it is not possible to relicense GPLed code under BSL (unless you're the copyright holder). The GPL is a lot less free than the Boost
http://www.usfca.edu/law/determann/softwarecombinations060403.pdf
Consider also http://www.law.washington.edu/LCT/Events/FOSS/MootFacts.pdf (Moot Court Statements of Fact) http://www.law.washington.edu/LCT/Events/FOSS/OmegaBrief.pdf (Omega Plaintiff's Brief) http://www.law.washington.edu/LCT/Events/FOSS/AlphaBrief.pdf (Alpha Defendant's Brief) http://www.law.washington.edu/LCT/Events/FOSS/media/03.%20Beyond%20the%20Bas... (Hearing and Q&A) ------- The Scope of Derivative Works as Applied to Software: David Bender of White & Case LLP and author of Computer Law and Ieuan Mahony of Holland & Knight LLP will argue the proper scope of derivative work under U.S. copyright law when applied to software, before a panel of distinguished federal appellate judges: * HONORABLE WILLIAM C. BRYSON, U.S. Court of Appeals for the Federal Circuit * HONORABLE HALDANE ROBERT MAYER, U.S. Court of Appeals for the Federal Circuit * HONORABLE MARGARET MCKEOWN, U.S. Court of Appeals for the Ninth Circuit ------- Hth. regards, alexander.

Woah. I didn't really expect that response. The reason I initially asked is that I remember a few years back when a substantial portion of the code to Windows 2000 (I think?) was leaked, and some people expressed concerns that they could be exposed to lawsuits if they even looked at the code and then at a later date wrote some code for an operating system that performed something similar. However, I think those concerns (if they make sense at all) would be more over patent law than copyright law. I think it's fairly (?) clear that using code from other projects licensed under the GPL to gain knowledge about the algorithms so that I can implement them in a different context is okay, and that's what I intended to do all along. Regards, Hugh On 3/21/07, Alexander Terekhov <terekhov@web.de> wrote:
Forgot one thing...
Alexander Terekhov wrote:
Martin Wille wrote:
[... "combining" ...]
However, it is not possible to relicense GPLed code under BSL (unless you're the copyright holder). The GPL is a lot less free than the
Boost
http://www.usfca.edu/law/determann/softwarecombinations060403.pdf
Consider also
http://www.law.washington.edu/LCT/Events/FOSS/MootFacts.pdf (Moot Court Statements of Fact)
http://www.law.washington.edu/LCT/Events/FOSS/OmegaBrief.pdf (Omega Plaintiff's Brief)
http://www.law.washington.edu/LCT/Events/FOSS/AlphaBrief.pdf (Alpha Defendant's Brief)
http://www.law.washington.edu/LCT/Events/FOSS/media/03.%20Beyond%20the%20Bas... (Hearing and Q&A)
------- The Scope of "Derivative Works" as Applied to Software: David Bender of White & Case LLP and author of Computer Law and Ieuan Mahony of Holland & Knight LLP will argue the proper scope of "derivative work" under U.S. copyright law when applied to software, before a panel of distinguished federal appellate judges:
* HONORABLE WILLIAM C. BRYSON, U.S. Court of Appeals for the Federal Circuit * HONORABLE HALDANE ROBERT MAYER, U.S. Court of Appeals for the Federal Circuit * HONORABLE MARGARET MCKEOWN, U.S. Court of Appeals for the Ninth Circuit -------
Hth.
regards, alexander.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Hugh Wimberly wrote:
Woah. I didn't really expect that response. The reason I initially asked is that I remember a few years back when a substantial portion of the code to Windows 2000 (I think?) was leaked, and some people expressed concerns that they could be exposed to lawsuits if they even looked at the code and then at a later date wrote some code for an operating system that performed something similar. However, I think those concerns (if they make sense at all) would be more over patent law than copyright law.
Patents aside for a moment, see http://digital-law-online.info/lpdi1.0/treatise21.html and especially http://digital-law-online.info/lpdi1.0/treatise22.html regards, alexander.

Hugh Wimberly wrote:
I think it's fairly (?) clear that using code from other projects licensed under the GPL to gain knowledge about the algorithms so that I can implement them in a different context is okay, and that's what I intended to do all along.
Hmmm, not sure: if you read any theoretical articals relating to the subject area and use those to produce the code, then you should be OK (patents aside), but once you dig into other peoples code you are at least in theory "contaminated" to some degree. IANAL, John.

Well, almost all of what I know and the research I plan to do is scholarly; there are other areas though, where scholars like to "leave the details for the readers excersize". For instance, one of the big ones (for DFA-based regex) is efficiently dealing with zero-width assumptions. I can figure out a way to do it; I can with dificutly figure out a good way of doing it; but seeing a good way of doing it before working out my own way is preferable. I have no desire to violate licenses, or even to push boundries, but I also don't want to work harder than I have to, as long as I'm respecting copyright. The reason I asked in the first place is because I need to know if I should revise my proposal; without using anything but strictly scholarly sources, I think the DFA-based regex I write will only be able to handle a limited subset of cases and the "hybrid" portion won't come into use often. On the other hand, while the most helpful code is licensed under the GPL, there is a fair amount that is licensed under MIT, which seems to be compatable with BPL, so as long as I can (legally) get inspiration from those projects, I think I can stil manage what I proposed. -Hugh On 3/21/07, John Maddock <john@johnmaddock.co.uk> wrote:
Hugh Wimberly wrote:
I think it's fairly (?) clear that using code from other projects licensed under the GPL to gain knowledge about the algorithms so that I can implement them in a different context is okay, and that's what I intended to do all along.
Hmmm, not sure: if you read any theoretical articals relating to the subject area and use those to produce the code, then you should be OK (patents aside), but once you dig into other peoples code you are at least in theory "contaminated" to some degree.
IANAL, John.
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Hugh Wimberly wrote: [...]
don't want to work harder than I have to, as long as I'm respecting copyright. The reason I asked in the first place is because I need to know if I should revise my proposal; without using anything but strictly scholarly sources, I think the DFA-based regex I write will only be able to handle a limited subset of cases and the "hybrid" portion won't come into
http://digital-law-online.info/lpdi1.0/treatise27.html <quote> One way to avoid infringement when writing a program that is similar to another program is through the use of a clean room procedure. This is what was done when companies cloned the BIOS of the IBM personal computer to produce compatible systems. In a clean room procedure, there are two separate teams working on the development of the new program. The first team determines how the original program works, by examining its source code if it is available (IBM published the source code for its BIOS in a technical manual), by reverse engineering the program (by converting its object code back to source code and attempting to understand it or by testing it to see how it behaves), or by studying available user manuals and other descriptions of the programs function. This first team puts together a complete technical specification that describes the functioning of the original program. Such a specification is not an infringement, since the copyright in the original program doesnt protect its functionality, only the expression in the program that creates that functionality. Generally, an intellectual property attorney will review the functional specification to assure that it does not contain any protected expression from the original program. Given the functional specification, a second team of programmers, metaphorically in a clean room uncontaminated by the original program, implements the new program. These programmers have not seen the source code of the original program. In fact, it is best if they have never seen any aspect of the original program, getting all their knowledge of it from the functional specification. Because they havent seen the original program, they cannot be copying it, even unconsciously. </quote> regards, alexander.
participants (6)
-
Alexander Terekhov
-
Ames Andreas
-
Hugh Wimberly
-
Jeff Garland
-
John Maddock
-
Martin Wille