[comp.std.unix] A "public domain" set of include files.

std-unix@longway.TIC.COM (Moderator, John S. Quarterman) (11/10/88)

From: uunet!ames.arc.nasa.gov!sultra!dtynan (Der Tynan)

I have been wondering, for some time, about the status of the files in the
/usr/include directory.  It would seem to me, that these files are the
property of AT&T, and as such, cannot be distributed without a licence.
In the context of POSIX, and the numerous 'public domain' efforts in
progress, one of the things I would like to see, is a list of the 'necessary'
files in these directories, and perhaps, public domain (or freeware) versions
of these files.  Thus, people developing software (PD or otherwise), which
in some way or another, uses these definitions, can know what to expect.  I
know that the (admittedly, rather old) copy of the POSIX document I have,
gives some vague definitions to some of the files (pwd.h, for example).  It
doesn't really shed much light on what definitions can and cannot be used.
As an example, consider the following;
	if ((ip->i_mode & IFMT) == IFDIR)
		/* something */;

This is a fairly standard piece of code.  When RMS et al, produce a CERTIFIED
AT&T-free kernel, it would seem to me, that this code CANNOT be included in
any of the utilities, because it is using AT&T definitions.  I would appreciate
some clarification on this issue.  If such code cannot be used in UN*X clones,
or lookalikes, then it will have to be replaced with macro's such as
	if (isdir(ip))
		/* something */;

It would certainly be nice to know that now, rather than two years down the
road.
						- Der
-- 
	dtynan@sultra.UUCP  (Dermot Tynan @ Tynan Computers)
	{mips,pyramid}!sultra!dtynan

 ---  God invented alcohol to keep the Irish from taking over the planet  ---

[ The IEEE 1003.1 Full Use Standard is more clear about what parameter
files it requires.  AT&T has expressed no objection to the use by 1003.1
of the information specified in that standard for those files (including
IFMT and IFDIR).  Since the legal protection of AT&T code is as trade secrets,
it's hard to see how they could claim that those definitions qualify.  -mod ]

Volume-Number: Volume 15, Number 22

jpn@genrad.com (John P. Nelson) (11/12/88)

From: jpn@genrad.com (John P. Nelson)

>I have been wondering, for some time, about the status of the files in the
>/usr/include directory.  It would seem to me, that these files are the
>property of AT&T, and as such, cannot be distributed without a licence.

While they fall under the copyright rules, they do NOT fall under the
more restrictive "TRADE SECRET" rules, because they are available to the
normal binary licensee.

>As an example, consider the following;
>	if ((ip->i_mode & IFMT) == IFDIR)
>		/* something */;
>
>This is a fairly standard piece of code.  When RMS et al, produce a CERTIFIED
>AT&T-free kernel, it would seem to me, that this code CANNOT be included in
>any of the utilities, because it is using AT&T definitions.

Not quite.  If the definitions of these macros is contained in the MANUALS
(i.e. the SPECIFICATION), then anyone can recreate the header files from
the specification without fear of infringing on AT&T's copyright.  The
same thing would NOT be true if it were to fall under the AT&T "trade secret"
source contract.  Of course, it would still be illegal to include verbatim
copies of AT&T's header files.

Therefore, UNIX clones are quite legally able to match the UNIX interface,
since copyright only protects a particular EXPRESSION of an idea, not the idea
itself.

-- 
     john nelson

UUCP:	{decvax,mit-eddie}!genrad!teddy!jpn
smail:	jpn@teddy.genrad.com

Volume-Number: Volume 15, Number 27

henry@zoo.toronto.edu (11/16/88)

From: henry@zoo.toronto.edu

>... one of the things I would like to see, is a list of the 'necessary'
>files in these directories, and perhaps, public domain (or freeware) versions
>of these files...

There is a fundamental problem with this, in that those files can and often
do contain implementation-dependent information.  For example, <stdio.h>
must contain definitions of the getc and putc macros, which are intimately
tied to the implementation details of the rest of stdio.  For another
example, it's hard to imagine a portable version of <stdarg.h>, since its
whole purpose is to cover up implementation details.

>... Thus, people developing software (PD or otherwise), which
>in some way or another, uses these definitions, can know what to expect...

This is precisely what documentation, including standards, is supposed to
tell you.  (Admittedly, it doesn't always do this very well.)

                                     Henry Spencer at U of Toronto Zoology
                                 uunet!attcan!utzoo!henry henry@zoo.toronto.edu


Volume-Number: Volume 15, Number 30