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