[OpenAFS-devel] IBM public license code (from OpenAFS) in samba/examples/nss ok?

Jeffrey Hutzelman jhutz@cmu.edu
Thu, 26 Aug 2004 12:20:25 -0400


On Thursday, August 26, 2004 17:53:17 +0200 Volker Lendecke 
<Volker.Lendecke@SerNet.DE> wrote:

> On Thu, Aug 26, 2004 at 11:46:54AM -0400, Jeffrey Hutzelman wrote:
>> For a couple of years now I've been maintaining a registry of AFS
>> protocol  constants, including RPC opcode numbers
>> (http://grand.central.org/numbers);  a side goal is to eventually
>> completely document the various AFS protocols.  To that end, it has
>> always been my intent to provide .xg files and opcode  headers which can
>> be freely used by any AFS implementation.
>
> How do you make sure that this information is not tainted by any license?
>
> Completely reverse-engineer the way the Samba developers do? This is
> probably not possible for anybody ever having looked at OpenAFS code and
> who has gained knowledge of the inner workings. Probably someone without
> any prior knowledge has to look at (encrypted) network traces and try to
> work out the inner workings of the protocol, the way Samba has been
> developed over the years.

Well, first it should be noted that the majority of AFS traffic is _not_ 
encrypted, at least some of the time.  Nearly everything had already been 
reverse-engineered by others by the time OpenAFS was released, in the 
process of building interoperable implementations like Arla.  I have been 
and expect to continue to be able to use the results of that work.  And, 
there is actually quite a bit of published textual documentation, though 
some of it is rather old.


But most important is this point - copyrights do not protect ideas and 
information; they protect the _expression_ of ideas and information.  I 
can't copy ptopcodes.h, but I _can_ tell you what the opcode is for each 
RPC.  And in fact, what I do is generate headers mechanically from the 
registry tables (so, the work in generating PR_ops.h is entirely in writing 
down the registry table, which hasn't been done yet for this particular 
registry).

Similarly, I can write documentation describing the ptserver RPC protocol, 
including telling you what all the RPC's do, what their names are, and what 
the types of their arguments are.  I just can't copy text from IBM's 
documentation or code.

-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
   Sr. Research Systems Programmer
   School of Computer Science - Research Computing Facility
   Carnegie Mellon University - Pittsburgh, PA