[trial.misc.legal.software] What documentation is fair/legal to use to develop clone software?

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