mason@tmsoft.uucp (Dave Mason) (07/27/90)
I just resubscribed to comp.sources.d to post this question & discovered the end of a related discussion. Hopefully I've phrased my question in a slightly less controversial way. I am developing a clone of some major AT&T software (exactly *what* is a secret for now). I obviously don't want the result legally encumbered, as it is to be freely distributable (a la FSF or less restrictive rules). The question is: What can I base my knowledge on? Some answers: The X/Open manuals? The Posix manuals? The UNIX manuals? The Bach book? Reading the .h files? The SVID? Other people reading the source & answering questions (this seems to be breaking their trade-secret agreement with AT&T)? The Lyons book? Me reading the sources (I'm sure this is not kosher)? I've listed these in descreasing likelyhood of being OK. To this point I have looked at the X/Open & UNIX manuals & read the Bach book & very occasionally looked at .h files. The X/Open manuals don't give binary encodings... does Posix? For example, suppose I were doing a STDIO? How would I know the function names, valid parameters, binary values of #defined values (such as _IOFBF, _IOLBF, _IONBF in setvbuff(3))? This last point is the most tricky - short of looking in stdio.h (or writing a program that tried random values until it got a result I was looking for) I can't see how one could get the correct semantics. And the .h are clearly copyrighted... I'd really like to hear from people that have actually developed PD clones (Henry, Ozan, AST, RMS, other FSF, ...) or other people who KNOW what they're talking about, rather than from people saying ``I think the law ought to say blah...''. That's an interesting discussion too, but I'm looking for facts. If FSF has a ``Guidelines to writing freed software'', I'm sure it would be helpful. Thanks muchly, ../Dave <mason%tmsoft@toronto.edu>
sean@ms.uky.edu (Sean Casey) (07/28/90)
mason@tmsoft.uucp (Dave Mason) writes: |I am developing a clone of some major AT&T software (exactly *what* is a |secret for now). I obviously don't want the result legally |encumbered, as it is to be freely distributable (a la FSF or less |restrictive rules). |The question is: What can I base my knowledge on? And so it begins. How horribly sad that programmers even have to ask such questions. -- *** Sean Casey sean@ms.uky.edu, sean@ukma.bitnet, ukma!sean
jcmorris@mwunix.mitre.org (Joe Morris) (07/29/90)
In article <jb0lh55m9@tmsoft.uucp> mason@tmsoft.UUCP (Dave Mason) writes: > >The question is: What can I base my knowledge on [in writing a clone]? > [...] >I'd really like to hear from people that have actually developed PD >clones (Henry, Ozan, AST, RMS, other FSF, ...) > [...] For an example of a quite successful cloning of UNIX (tm and all that) see Andy Tannenbaum's MINIX system. He took the UNIX externals and wrote the entire system to support them without using a single line of AT&T copyrighted code. The text (which includes a lot of the MINIX 1.0 source) is titled _Operating_Systems:_Design_and_Implementation_. Both the book and the machine-readable (including SOURCE!!!) are available from Prentiss-Hall by mail order. Some software storefronts (WaldenSoftware, Computer Literacy, etc.) stock the book; I haven't ever seen the disks in a store (but haven't really looked that hard). There's also a USENET newsgroup on MINIX: comp.os.minix .
brnstnd@kramden.acf.nyu.edu (Dan Bernstein) (07/29/90)
In article <jb0lh55m9@tmsoft.uucp> mason@tmsoft.UUCP (Dave Mason) writes: > I am developing a clone of some major AT&T software (exactly *what* is a > secret for now). I obviously don't want the result legally > encumbered, as it is to be freely distributable (a la FSF or less > restrictive rules). > The question is: What can I base my knowledge on? The real question isn't what you can do, but what you can't. You have to worry about (among other things, and in order of difficulty) trademark law, copyright law, patent law, trade secret law, and contract law. Trademark law: Make sure that you don't use a trademarked product symbol or name without giving AT&T (or whoever owns the trademark) credit. You probably don't have many names to worry about. Copyright law: Unless you make copies of or derivative works from the AT&T manuals and code, you're safe. Asking someone else to do the dirty work is no good: you're liable for contributory infringement. Patent law: Almost certainly inapplicable. Don't worry about it. (Yet.) Trade secret law: You're not allowed to steal someone's secrets. So if AT&T uses some neat coding techniques that they're not telling anyone about, and if you sneak a look at code saying ``Trade secrets in here! Go away!'' and figure out those coding techniques, you're in trouble. Contract law: Whatever you've signed, you'd better obey. The easiest test for safety in cloning is whether you've looked at (or disassembled, or pried into) the original code. If you haven't, then you can't possibly be breaking copyright law or trade secret law. > Some answers: The X/Open manuals? The Posix manuals? The UNIX > manuals? The Bach book? Reading the .h files? The SVID? Fine. Information can only be protected by trade secret, and nothing you've listed is a trade secret. Anything you can legally read, you can legally learn from, and legally apply. (A particular *expression* of information is protected by copyright, but the information itself cannot be.) > Other > people reading the source & answering questions (this seems to be > breaking their trade-secret agreement with AT&T)? It is more likely that they signed a contract agreeing to respect the trade secret. In any case, they lose their license. > Me > reading the sources (I'm sure this is not kosher)? If you *don't* read the sources, your position is very difficult to attack, so I recommend taking that strategy. Reading the sources may not be a tort, but what happens if you subconsciously reproduce the same variable names in your code? The same function names? The entire original? It's safer not to. > To this point I have looked at > the X/Open & UNIX manuals & read the Bach book & very occasionally > looked at .h files. Fine. When I want to clone a program, I read the man page. Then I write the program, applying knowledge gleaned from books and other man pages. Then I rewrite the man page. As a last step, I often check that my program uses the same output format as the original, though in extreme cases this may violate copyright law. (Visual images are copyrightable.) > For example, suppose I were doing a STDIO? How would I know the > function names, valid parameters, binary values of #defined values > (such as _IOFBF, _IOLBF, _IONBF in setvbuff(3))? You read stdio.h. You hope that the Lotus decision and the proposed European copyright law don't stand up to criticism. > And the .h are > clearly copyrighted... Unless you copy them (or display them in public :-) ), this is irrelevant. ---Dan
hollaar%basset.utah.edu@cs.utah.edu (Lee Hollaar) (07/29/90)
In article <337:Jul2821:30:4090@kramden.acf.nyu.edu> brnstnd@kramden.acf.nyu.edu (Dan Bernstein) writes: >In article <jb0lh55m9@tmsoft.uucp> mason@tmsoft.UUCP (Dave Mason) writes: >> I am developing a clone of some major AT&T software (exactly *what* is a >> secret for now). I obviously don't want the result legally >> encumbered, as it is to be freely distributable (a la FSF or less >> restrictive rules). >> The question is: What can I base my knowledge on? >The real question isn't what you can do, but what you can't. You have to >worry about (among other things, and in order of difficulty) trademark >law, copyright law, patent law, trade secret law, and contract law. >Copyright law: Unless you make copies of or derivative works from the >AT&T manuals and code, you're safe. In Lotus Development Corp. v. Paperback Software International and Stephenson Software, Ltd., Judge Keeton of the U.S. District Court, District of Massachusetts, ruled that nonliteral elements of a computer program (such as menu structure and command names) can be copyrighted, and a program that copies those nonliteral elements infringes the copyright, even though all the source code is original and not copied. He proposed a three-part legal test: FIRST, in making the determination of "copyrightability," the decisionmaker must focus upon alternatives that counsel may suggest, or the court may conceive, along the scale from most generalized conception to the most particularized, and choose some formulation -- some conception or definition of the "idea" -- for the purpose of distinguishing between the idea and its expression. SECOND, the decisionmaker must focus upon whether an alleged expression of the idea is limited to elements essential to expression of that idea (or is one of only a few ways of expressing the idea) or instead includes indentifiable elements of expression not essential to every expression of that idea. THIRD, having identified elements of expression not essential to every expression of the idea, the decisionmaker must focus on whether those elements are a substantial part of the allegedly copyrightable "work". In the 1-2-3 case, there was no copying of the Lotus code. However, the screen looked the same and the same commands were used in each menu in the same order. The "idea" that could not be protected by copyright (but probably now could be patented) was a computerized spreadsheet (not original to Lotus). An expression of that idea essential to the idea is the "rotated L" that labels the rows and columns, since virtually every spreadsheet uses it. A copyrightable nonliteral expression is the ordering of menus and commands, since spreadsheets that are not clones of 1-2-3 express the spreadsheet idea using different commands and menus. So, at least in one court, you can infringe a copyright without copying or even seeing the code of the copyrighted program. This is very likely if you are cloning a user interface or other display. >Patent law: Almost certainly inapplicable. Don't worry about it. (Yet.) There are now hundreds of software patents, and the number is increasing every year. Some of them are flakey, but even those could be a problem, since the legal presumption is that they are valid. Remember, it doesn't matter you have ever seen or heard of the patented invention for you to infringe the patent. >The easiest test for safety in cloning is whether you've looked at (or >disassembled, or pried into) the original code. If you haven't, then >you can't possibly be breaking copyright law or trade secret law. I'm sure Paperback Software wishes that were true. It's not that simple. Lee Hollaar Professor of Computer Science Registered Patent Agent
johnl@esegue.segue.boston.ma.us (John R. Levine) (07/29/90)
In article <jb0lh55m9@tmsoft.uucp> mason@tmsoft.UUCP (Dave Mason) writes: >I am developing a clone of some major AT&T software ... > >The question is: What can I base my knowledge on? Until last week, I would have said that reverse engineering software based on publicly available sources, e.g. commercially published books, but not using restricted or licensed materials, e.g. the header files or the Lions boos, would be safe. Since the 1-2-3 look and feel decision, though, it's entirely up in the air. In that case, which is being appealed, the judge held that even though there was no claim whatsoever that the defendants used any licensed or secret materials, their program was infringing merely because of its functional similarities to 1-2-3. So it's anyone's guess. Good luck. -- John R. Levine, Segue Software, POB 349, Cambridge MA 02238, +1 617 864 9650 johnl@esegue.segue.boston.ma.us, {ima|lotus|spdcc}!esegue!johnl Marlon Brando and Doris Day were born on the same day.
drd@siia.mv.com (David Dick) (08/03/90)
In <sean.649170360@s.ms.uky.edu> sean@ms.uky.edu (Sean Casey) writes: >mason@tmsoft.uucp (Dave Mason) writes: >|I am developing a clone of some major AT&T software (exactly *what* is a >|secret for now). I obviously don't want the result legally >|encumbered, as it is to be freely distributable (a la FSF or less >|restrictive rules). >|The question is: What can I base my knowledge on? >And so it begins. How horribly sad that programmers even have to ask such >questions. There is nothing sad or horrible about it. Doctors and lawyers ask their colleagues questions about ethics from time to time; are programmers to be less professional or less ethical? David Dick Software Innovations, Inc. [the Software Moving Company(sm)] drd@siia.mv.com -or- uunet!siia!alton!drdick