RE: namespace protection compatible with the OSD?

2001-04-19 Thread Dave J Woolley

 From: phil hunt [SMTP:[EMAIL PROTECTED]]
 
 
 I hope this is not the case. I wouldn't like Microsoft to have the ability
 to suppress WINE because it uses the Windows API.
 
[DJW:]  They are attempting to achieve something
similar for MS Office products.  The MSDN Library
licence forbids the use of the file format documentation
for Word, etc., for what I interpret to
be:
- software that does not run on Windows;
- software that attempts to compete with MS Office.

-- 
--- DISCLAIMER -
Any views expressed in this message are those of the individual sender,
except where the sender specifically states them to be the views of BTS.

  



Re: namespace protection compatible with the OSD?

2001-04-19 Thread phil hunt

On Wed, 18 Apr 2001, Brian Behlendorf wrote:
 On Wed, 18 Apr 2001, phil hunt wrote:
  I'm not familiar with Perl, so I'll attempt to translate this into C
  for clarification.
 
 OK.
 
  I create a library in C. The interface is defined in mylibrary.h.
  For someone to use my library, they must:
 
 #include "mylibrary.h"
 
  The license for mylibrary contains a clause "if you create a derivative
  work, you must rename mylibrary.h to something like yourlibrary.h".
 
  Is this this the gist of what you are saying wrt Perl?
 
 Not exactly.  I'm saying two things: if you create a derivative work from
 my code, then the license says if you change the behavior of the functions
 or macros, etc., defined in my .h, that you must call it something else.
 However, if you keep the same interface (keep the .h consistant, but
 change the .c, though it's more accurate to say "API" and
 "implementation") then you may continue to call it "mylibrary.h".

IMO it could be hard to define what is or isn't the same behaviour.

Example (1):

You write a library to access data from a disk file, like in
a DBM-style database. This includes the call (in your header file):

   DataHandle getData(FileHandle fh, Key k);

I now re-implement your library so that the getData() function exists as
before, but tries to cache in RAM rather than reading the field on disk
every time. 

Furthermore, I decide to include a getData_lowLevel() function that
does the same as your original getData() function, and which my getData()
function uses.

Example (2):

(This example makes more sense in a language that allows variables
to have any datatype, such as Python or Smalltalk (or C++)). You write a
library that performs math functions such as exp(), log(), sin(),
cos(), tan(), et, taking floating-point arguments. 

I write a library with a superset of your library's functions,
and in which all the functions can take complex-number arguments too.
This behaves differently to your library, because in your library,
using complex number arguments produces a return value signalling an
error (or an error exception, or suchlike).


It seems to me that the spirit of the Open Source Definition allows
me to do that, and allows users of your original library to be able to
use my library as a plug-in replacement to your library, if they wish
to do so. A plugin replacement might well imply things like having the
same filename(s), depending on the language in question.

 Secondarily, I'm saying even if you didn't implement my code, but followed
 the published document that describes the spec (which I also put under
 this license), you'd have to follow the same rules.

Clearly this has nothing to do with Open Source as such, and IMO
is morally dubious to say the least.
 
  I'm not sure what "incompatible" means here? What if my new improved
  version was intended as a replacement, but which added new features
  in a way that necessitated a degree of incompatibility?
 
 If you make a change that introduces any degree of incompatibility, even
 if it's "fixing a bug", then it would have to be renamed.  Hopefully I'm
 reasonable enough to change my API should I be notified of bugs in it, but
 if I'm not, fork.

But the requiremnt of changing filenames could prohibit forking, to 
some extent.

  I don't know. In some cases I could see (if I have understood you
  correctly), the restriction could be a way of preventing a fork of the
  code. IMO, the ability to fork is a necessary part of an open source
  license.
 
 It doesn't limit the right to fork at all, but it does somewhat carve out
 an API namespace;

So it limits the right to fork something that's plug-in compatible with
the original? Users would have to make an extra effort to use the forked
version.

-- 
* Phil Hunt * 
"An unforseen issue has arisen with your computer. Don't worry your silly 
little head about what has gone wrong; here's a pretty animation of a 
paperclip to look at instead."
 -- Windows2007 error message





RE: namespace protection compatible with the OSD?

2001-04-19 Thread Lawrence E. Rosen

On Tue, 17 Apr 2001, Brian Behlendorf wrote:

 There are IP lawyers I know who will argue up and down that software
 implemented to a specification is a derivative work of that spec, so that
 spec's copyright terms need to be obeyed (which is why I said both the
 spec and the code were under my "call it something else if you're not
 compatible" license) when creating derivative works.

And this IP lawyer will argue up and down that copyright law protects
expression and not the underlying ideas.  Implementing a specification
without copying code is creating neither a copy nor a derivative work of
that specification.

I can understand the desire of some companies to prevent forking by claiming
ownership of their published specifications.  But having a desire doesn't
mean you have a right to satisfy your desire by imposing your will on
unwilling participants.  Claiming a monopoly right under copyright where
that claim is not allowed is copyright misuse, subjecting the claimant to a
lawsuit for, at the least, injunctive relief.

I appreciate your informing me that this issue has fomented lots of
discussion in the past in the open source community.  "Stallman's rebuff to
Alladin [sic] Software" notwithstanding, the final decision may have to come
from a court of law.  I, for one, would almost welcome such litigation,
because I believe the open source community needs to take a stand against
companies that pay lip service to open source principles while preventing
open source development with closed specifications and standards.  This is
hypocrisy.  As the open source community has long since proven repeatedly,
particularly with its contributions to Internet-related software, the
enforcement of appropriate standards can be encouraged and achieved without
recourse to licenses that prevent effective open source development.

As for a "call it something else" provision of a license, that relates to
trademark law and, as I said in a previous email to license-discuss, is
outside the scope of any specification.  You said that it's much more
efficient to
say "you can't use my code if you misuse my name" than "you can't use my
name because I own the trademark."  That misstates the legal significance of
the trademark.  I was trying to point out that you CAN'T ALLOW someone to
use your name -- e.g., ALL uses, even friendly ones, are misuses -- because
it is YOUR trademark and not theirs.  If you allow a third party who creates
a derivative work to market that derivative work under your trademark,
without exercising control over the quality of his derivative works, you
will lose your trademark.  It is okay for a third party to say his
derivative work is "compatible with" Apache, or "equivalent in functionality
to" Apache, or "meets the specifications of" Apache, or even that it is
"better than" Apache, but it is NOT okay for him to market his derivative
work "as" Apache.  Apache should not allow anyone else to adopt its
trademark for their software!  (The word "should" in that last sentence is
as close as I'm going to come to giving unsolicited legal advice to Apache.)

/Larry Rosen
650-216-1597
[EMAIL PROTECTED]
www.rosenlaw.com
www.opensource.org




RE: namespace protection compatible with the OSD?

2001-04-19 Thread Dave J Woolley

 From: Lawrence E. Rosen [SMTP:[EMAIL PROTECTED]]
 
 hypocrisy.  As the open source community has long since proven repeatedly,
 particularly with its contributions to Internet-related software, the
 enforcement of appropriate standards can be encouraged and achieved
 without
 recourse to licenses that prevent effective open source development.
 
[DJW:]  However, my impression is that that only holds
whilst the implementation is in the open source arena.
Closed source developers tend to be the ones that create
the greatest travesties of open standards, so it is possibly
not surprising that the same people are wary of creating
open standards - they may be judging other people by
their own standards.

-- 
--- DISCLAIMER -
Any views expressed in this message are those of the individual sender,
except where the sender specifically states them to be the views of BTS.
  



RE: namespace protection compatible with the OSD?

2001-04-19 Thread Eric Jacobs

"Lawrence E. Rosen" [EMAIL PROTECTED]

 I was trying to point out that you CAN'T ALLOW someone to use your name 
 -- e.g., ALL uses, even friendly ones, are misuses -- because it is YOUR 
 trademark and not theirs.  If you allow a third party who creates a 
 derivative work to market that derivative work under your trademark, 
 without exercising control over the quality of his derivative works, you
 will lose your trademark.  It is okay for a third party to say his
 derivative work is "compatible with" Apache, or "equivalent in 
 functionality to" Apache, or "meets the specifications of" Apache, or 
 even that it is "better than" Apache, but it is NOT okay for him to 
 market his derivative work "as" Apache.  Apache should not allow anyone 
 else to adopt its trademark for their software!  (The word "should" in 
 that last sentence is as close as I'm going to come to giving 
 unsolicited legal advice to Apache.)

"OSI Certified" is a certification mark, a kind of trademark. Yet open
source software authors can claim their software to be "OSI Certified",
not just "equivalent to OSI Certified". This doesn't constitute
abandonment of the trademark -- does it?


-- 




Re: namespace protection compatible with the OSD?

2001-04-19 Thread Brian Behlendorf

On Thu, 19 Apr 2001, Eric Jacobs wrote:
 Brian Behlendorf [EMAIL PROTECTED]

  I'm saying two things: if you create a derivative work
  from my code, then the license says if you change the behavior of the
  functions or macros, etc., defined in my .h, that you must call it
  something else. However, if you keep the same interface (keep the .h
  consistant, but change the .c, though it's more accurate to say "API"
  and "implementation") then you may continue to call it "mylibrary.h".

 I'm having trouble with the interface/implementation distinction here.
 Is "behavior" the same thing as "interface"?

"API"/"interface" is the set of commands/procedures/methods/macros/
whatever that I expose to people using my software, either at a user level
or a programmatic level.  The intended effect is that someone else who
writes code that exposes the same API can be a drop-in replacement for my
code.  "Implementation" is the code I wrote behind that API which actually
does the work, and can vary even if the API stays the same.

  Secondarily, I'm saying even if you didn't implement my code, but
  followed the published document that describes the spec (which I also
  put under this license), you'd have to follow the same rules.

 This cannot be accomplished with an open source copyright license. This
 sounds like a job for trademarks.

On what basis do you claim I can't do this with an open source copyright
license?  What OSD section does it violate?  That's what I want to
determine.  Think of me as playing devil's advocate on this, because one
side (perhaps the stronger side) of me does want to see this to *not* be
possible, and it might be yet another hole in the OSD - best to patch it
up now than wait for someone to abuse it.  However I want to find an
ironclad argument against it, and I haven't, other than "that would be a
bad thing - e.g., Win32 and Wine".

 All changes potentially introduce incompatibility, even bug-fixes, because
 old code can rely on the buggy behavior.

I would define in/compatibility as that defined by the spec, not the code.
If I expose through the API a routine that (the spec says) returns a float
that's the square root of a float, and it returns in rare circumstances an
incorrect value, fixing that bug is not changing the API as defined by the
spec.  I agree there are more subtle examples that would cause debates to
be had, and if escalated it would ultimately mean a judge being asked to
determine if a change broke compatibility, probably not a good thing.  =)

 Is your intent to prevent people from adding new features and calling it
 the same?

Primarily it's to prevent someone from intentionally removing/breaking
functionality but trying to claim they implement the same API, then adding
new functionality, trying to move people to that new API because it's the
only one that appears to "work".  For example, think Microsoft and Visual
J++ for example, where MS claimed to implement the java.* classes and be
compatible, yet they were broken in subtle ways (intentionally), and the
docs recommended developers use the com.microsoft classes instead.
Trademark in that situation was a weak instrument to try and use to
enforce conformance, for reasons you can read about in the history of the
MS/Sun Java case.  Developers who didn't particularly care about
compatibility and used VJ++ because it came free from MS weren't incented
to mandate compatibility from MS, so market pressure wasn't there.
Outside of the open source community, the drive to standards isn't nearly
as strong as we'd all like to think.

  It doesn't limit the right to fork at all, but it does somewhat carve
  out an API namespace; the example of MS using something like this to
  prevent Win32 reimplementation is probably a good example, where they'd
  put a license like this on their Win32 spec.

 This doesn't seem to be at all the same thing. Nobody has to execute
 a license of Microsoft's in order to implement the same API's as Windows,
 unless doing so involved creating a derivative work of some copyrighted
 material.

That's precisely what I'm saying.  What's the copyright on the
documentation for the Win32 API as provided by MS?

 What you're proposing sounds like it could be accomplished using
 trademark, and avoiding that whole sticky copyright-of-API's issue
 altogether.

Notice that what repels you about my proposal would still be possible in
that case, e.g., MS suing Wine developers for trademark violation.  At
least with the proposed copyright, your right to implement compatible
implementations would still survive.

Brian






Re: namespace protection compatible with the OSD?

2001-04-19 Thread Brian Behlendorf

On Thu, 19 Apr 2001, phil hunt wrote:
 IMO it could be hard to define what is or isn't the same behaviour.

Granted that "compatible" would need to be rigorously defined by the
license, and it would be up to the original copyright holder to ascertain
if a derivative work was non-compliant; and if the author of the
derivative work felt the original holder was unfairly labelling their work
incompatible, they'd take their debate to the court of public opinion, or
ultimately, a judge, who could rule in favor of the derivative author.

Note that this is the same situation as would be faced by a trademark
holder attempting to accomplish the same goal of API consistancy via
trademark law instead of copyright law - but in the case of trademark law,
if there were any examples of people who created even slightly
incompatible derivative works, my ability to enforce that trademark would
be seriously curtailed.  That would mean that I'd have to be much more of
an asshole to anyone creating derivative works - I'd have to go after the
independent developers just as much as the big guys.  Compared to
copyright, where I can selectively enforce without losing my ability
to enforce at all.  That's a pretty regressive situation, doncha think?

  Secondarily, I'm saying even if you didn't implement my code, but followed
  the published document that describes the spec (which I also put under
  this license), you'd have to follow the same rules.

 Clearly this has nothing to do with Open Source as such, and IMO
 is morally dubious to say the least.

It has everything to do with Open Source.  So far, most OS programs that
implement a published spec do so against specs with very liberal
copyrights - the IETF, the W3C, etc.  I'm worried about the more
"corporate" API's out there.  Wouldn't you be worried that MS might be
able to shut down WINE if they could claim the WINE developers got the
Win32 API docs under a copyright that said they couldn't reimplement it?
Someone already posted a link to the MSDN agreement that states that API's
you get through that service have this quality.  It's probably the main
reason we don't see big companies authoring Win32 alternatives anymore
(OS/2 was the last one, and yes I know that hidden function calls were the
bigger reason).  I would really like to find a good reason to shoot this
down on DFSG/OSD terms, and if I can't, then I'd suggest a patch to the
DFSG/OSD.   =)

  It doesn't limit the right to fork at all, but it does somewhat carve out
  an API namespace;

 So it limits the right to fork something that's plug-in compatible with
 the original? Users would have to make an extra effort to use the forked
 version.

No, if it's really "plug-in compatible", you can use the same API name.
If you change it's behavior in a way that breaks "plug-in compatible", or
however "compatible" is defined, you change the name.  In either case, the
advantages to forking are preserved - you don't have to rewrite code that
already exists.

Brian







Re: namespace protection compatible with the OSD?

2001-04-19 Thread Frank LaMonica

Brian,
Just a real world example:

SGI owns the OpenGL trademark, and it cannot be used without the
appropriate licensing from SGI.  The OpenGL API is publicly available,
and Brian Paul created an open source project which he named "Mesa3D"
because he couldn't use the OpenGL trademarked name.  Mesa3D is a fully
open source, free implementation of the OpenGL API.  The Mesa3D team,
still headed up by Brian Paul, is committed to making sure the API
remains identical to the one published by the OpenGL Architectural
Review Board (ARB), the independent organization which was created to
maintain the OpenGL API as a vendor neutral API, but that is a purely
voluntary decision on the part of that team.  Since Mesa3D in NOT OpenGL
(the official sample implementation released by SGI), and is not called
OpenGL (the trademarked name owned by SGI), Mesa3D COULD fork its API if
it chose to do so.  If it did, then it would no longer be an open source
implementation of the OpenGL API, but it could still be a valid and
useful API.  I have no idea if SGI could successfully sue Mesa3D if it
chose to do so, but the question has been avoided by Mesa3D's voluntary
commitment to follow the OpenGL API as it evolves.

Regards,
Frank

Brian Behlendorf wrote:
 
 On Thu, 19 Apr 2001, Eric Jacobs wrote:
  Brian Behlendorf [EMAIL PROTECTED]
 
   I'm saying two things: if you create a derivative work
   from my code, then the license says if you change the behavior of the
   functions or macros, etc., defined in my .h, that you must call it
   something else. However, if you keep the same interface (keep the .h
   consistant, but change the .c, though it's more accurate to say "API"
   and "implementation") then you may continue to call it "mylibrary.h".
 
  I'm having trouble with the interface/implementation distinction here.
  Is "behavior" the same thing as "interface"?
 
 "API"/"interface" is the set of commands/procedures/methods/macros/
 whatever that I expose to people using my software, either at a user level
 or a programmatic level.  The intended effect is that someone else who
 writes code that exposes the same API can be a drop-in replacement for my
 code.  "Implementation" is the code I wrote behind that API which actually
 does the work, and can vary even if the API stays the same.
 
   Secondarily, I'm saying even if you didn't implement my code, but
   followed the published document that describes the spec (which I also
   put under this license), you'd have to follow the same rules.
 
  This cannot be accomplished with an open source copyright license. This
  sounds like a job for trademarks.
 
 On what basis do you claim I can't do this with an open source copyright
 license?  What OSD section does it violate?  That's what I want to
 determine.  Think of me as playing devil's advocate on this, because one
 side (perhaps the stronger side) of me does want to see this to *not* be
 possible, and it might be yet another hole in the OSD - best to patch it
 up now than wait for someone to abuse it.  However I want to find an
 ironclad argument against it, and I haven't, other than "that would be a
 bad thing - e.g., Win32 and Wine".
 
  All changes potentially introduce incompatibility, even bug-fixes, because
  old code can rely on the buggy behavior.
 
 I would define in/compatibility as that defined by the spec, not the code.
 If I expose through the API a routine that (the spec says) returns a float
 that's the square root of a float, and it returns in rare circumstances an
 incorrect value, fixing that bug is not changing the API as defined by the
 spec.  I agree there are more subtle examples that would cause debates to
 be had, and if escalated it would ultimately mean a judge being asked to
 determine if a change broke compatibility, probably not a good thing.  =)
 
  Is your intent to prevent people from adding new features and calling it
  the same?
 
 Primarily it's to prevent someone from intentionally removing/breaking
 functionality but trying to claim they implement the same API, then adding
 new functionality, trying to move people to that new API because it's the
 only one that appears to "work".  For example, think Microsoft and Visual
 J++ for example, where MS claimed to implement the java.* classes and be
 compatible, yet they were broken in subtle ways (intentionally), and the
 docs recommended developers use the com.microsoft classes instead.
 Trademark in that situation was a weak instrument to try and use to
 enforce conformance, for reasons you can read about in the history of the
 MS/Sun Java case.  Developers who didn't particularly care about
 compatibility and used VJ++ because it came free from MS weren't incented
 to mandate compatibility from MS, so market pressure wasn't there.
 Outside of the open source community, the drive to standards isn't nearly
 as strong as we'd all like to think.
 
   It doesn't limit the right to fork at all, but it does somewhat carve
   out an API namespace; 

RE: namespace protection compatible with the OSD?

2001-04-19 Thread Brian Behlendorf

On Thu, 19 Apr 2001, Lawrence E. Rosen wrote:
 And this IP lawyer will argue up and down that copyright law protects
 expression and not the underlying ideas.  Implementing a specification
 without copying code is creating neither a copy nor a derivative work of
 that specification.

Would you agree that if I took one of Shakespeare's plays and reworked it
into a screenplay, or novel, that my work would be a derivative work?
Throw in translating to Chinese for good measure.  Throw in adding some
extra scenes and characters to really flesh out my work, or to adapt it to
a new culture.  I think the idea of implementing an API is the same thing.
And I think this is a much closer analogy than using the tax advice given
by a tax book.

Certainly, if I wrote a novel that happened to coincidentally share plot
lines with a Shakespeare play, that's not something to worry about - only
patents and trademarks are so broad as to cover unintended parallels.

I think the issue is sufficiently grey that it's worth considering it a
threat to open source development, and I'd like to find an ironclad
argument against it, or fix the OSD/DFSG.

 I appreciate your informing me that this issue has fomented lots of
 discussion in the past in the open source community.  "Stallman's rebuff to
 Alladin [sic] Software" notwithstanding, the final decision may have to come
 from a court of law.  I, for one, would almost welcome such litigation,
 because I believe the open source community needs to take a stand against
 companies that pay lip service to open source principles while preventing
 open source development with closed specifications and standards.  This is
 hypocrisy.  As the open source community has long since proven repeatedly,
 particularly with its contributions to Internet-related software, the
 enforcement of appropriate standards can be encouraged and achieved without
 recourse to licenses that prevent effective open source development.

So far we have a couple data points - Apache, sendmail, bind - to suggest
that open source drives compatibility.  We have data points to the
contrary as well - glibc, html authoring tools, linux package formats.
We have lots of data points to suggest that the world outside of the
circle we know doesn't give a hoot about compatibility, they just "want to
get the job done" even if the long-term impacts are significant, because
those long-term impacts don't affect the developers in that situation.
I'm suggesting that taking an ostrich approach to those issues isn't good
for the open source community - either we find a way to accomodate these
issues within the open source milieu, or we figure out a way to mitigate
the need for them.

 You said that it's much more efficient to say "you can't use my code
 if you misuse my name" than "you can't use my name because I own the
 trademark."  That misstates the legal significance of the trademark.
 I was trying to point out that you CAN'T ALLOW someone to use your
 name -- e.g., ALL uses, even friendly ones, are misuses -- because it
 is YOUR trademark and not theirs.  If you allow a third party who
 creates a derivative work to market that derivative work under your
 trademark, without exercising control over the quality of his
 derivative works, you will lose your trademark.

OK, so that suggests that the ASF had better *not* go out and get a
trademark on "Apache", because we'll quickly lose it should we not become
Nazis about enforcing it.  This also suggests that anyone who has a
trademark on a name used by an open source package, under a license that
doesn't control how that name is used in a derivative work (a license like
the GPL, for example), has lost the ability to enforce that trademark.
That's absurd.  This is precisely why trademark is a poor instrument for
this purpose.  It also means there's no way we could advocate, say,
org.apache.soap to become an industry-wide API, outside of the ASF's
control.

 It is okay for a third party to say his derivative work is "compatible
 with" Apache, or "equivalent in functionality to" Apache, or "meets
 the specifications of" Apache, or even that it is "better than"
 Apache, but it is NOT okay for him to market his derivative work "as"
 Apache.  Apache should not allow anyone else to adopt its trademark
 for their software!  (The word "should" in that last sentence is as
 close as I'm going to come to giving unsolicited legal advice to
 Apache.)

OK, so when Debian creates an Apache deb package, and calls that package
apache-1.3.19.deb, and tells people "you can install apache by doing
apt-get install apache", are you saying the ASF should not allow
them to do that, without granting them specific approval to do so?  Note
that such an arrangement is not cool with Debian, as it would violate the
DFSG (and the OSD) by creating a second agreement limiting the right to
redistribute, as well as being specific to Debian.

I am not a lawyer, but I'm getting uncomfortably familiar with too many
things 

RE: namespace protection compatible with the OSD?

2001-04-19 Thread Dave Gilbert

Hi,
  I can see the need for namespace protection; but it is clear that to
remain in the spirit of an open-source system it would have to be done
very carefully.  I mean:

Its reasonable (from my point of view):
  1) To say that any extension to the API must use a particular form of
name - e.g. myapi_extendersname_. (where extenders name could be an
organisation for grouping extensions). And to define a group of names
which only the original authors may extend.

  2) To say that any implementation of the API should implement existing
named entry points in a manner compatible with the API definition.

It is unreasonable:
  1) To say that no one is able to write a function with a particular name
  2) That no one else is able to reimplement a function with a given name.

Dave

-- 
  Have a happy GNU millennium! --   
/ Dr. David Alan Gilbert  | Running GNU/Linux on Alpha, | Happy  \ 
\   gro.gilbert @ treblig.org | 68K,MIPS,x86,ARM and SPARC  | In Hex /
 \ ___|___ http://www.treblig.org   |___/





Re: namespace protection compatible with the OSD?

2001-04-19 Thread John Cowan

Eric Jacobs wrote:


 without exercising control over the quality of his derivative works

 "OSI Certified" is a certification mark, a kind of trademark. Yet open
 source software authors can claim their software to be "OSI Certified",
 not just "equivalent to OSI Certified". This doesn't constitute
 abandonment of the trademark -- does it?

Not at all.  Note the phrase with  marker above.

-- 
There is / one art || John Cowan [EMAIL PROTECTED]
no more / no less  || http://www.reutershealth.com
to do / all things || http://www.ccil.org/~cowan
with art- / lessness   \\ -- Piet Hein




Re: namespace protection compatible with the OSD?

2001-04-19 Thread John Cowan

Brian Behlendorf wrote:


 Secondarily, I'm saying even if you didn't implement my code, but
 followed the published document that describes the spec (which I also
 put under this license), you'd have to follow the same rules.
 
 This cannot be accomplished with an open source copyright license. This
 sounds like a job for trademarks.
 
 On what basis do you claim I can't do this with an open source copyright
 license?  What OSD section does it violate?

The problem is not with "open source" but with "copyright license".  The
right you mention is just not one of those that a copyright holder has.

If I bake a cake based on the recipe in your copyrighted book:

1) the cake is not a derivative work of the book, and

2) the cake is not a derivative work of some other cake that you baked.

 Developers who didn't particularly care about
 compatibility and used VJ++ because it came free from MS weren't incented
 to mandate compatibility from MS,

That only worked for MS because of their overwhelming market power.
Defying standards is (probably) a losing game for everyone else.

 This doesn't seem to be at all the same thing. Nobody has to execute
 a license of Microsoft's in order to implement the same API's as Windows,
 unless doing so involved creating a derivative work of some copyrighted
 material.
 
 That's precisely what I'm saying.  What's the copyright on the
 documentation for the Win32 API as provided by MS?

It doesn't matter what it is.  See the cake example. 

-- 
There is / one art || John Cowan [EMAIL PROTECTED]
no more / no less  || http://www.reutershealth.com
to do / all things || http://www.ccil.org/~cowan
with art- / lessness   \\ -- Piet Hein




Re: namespace protection compatible with the OSD?

2001-04-19 Thread John Cowan

Brian Behlendorf wrote:


 Would you agree that if I took one of Shakespeare's plays and reworked it
 into a screenplay, or novel, that my work would be a derivative work?
 Throw in translating to Chinese for good measure.  Throw in adding some
 extra scenes and characters to really flesh out my work, or to adapt it to
 a new culture.

All of those things are making a derivative work, clearly.

 I think the idea of implementing an API is the same thing.
 And I think this is a much closer analogy than using the tax advice given
 by a tax book.

The closest analogy is building a house from a blueprint.  The house
isn't a derivative work of the blueprint, or architects wouldn't need
to get paid for drawing them -- they could sue the contractor for
infringement.

 I am not a lawyer, but I'm getting uncomfortably familiar with too many
 things usually only lawyers have to worry about.

Tell it, brother!

-- 
There is / one art || John Cowan [EMAIL PROTECTED]
no more / no less  || http://www.reutershealth.com
to do / all things || http://www.ccil.org/~cowan
with art- / lessness   \\ -- Piet Hein




Re: namespace protection compatible with the OSD?

2001-04-19 Thread Chloe Hoffman


In the U.S. at least, building a house from a blueprint is creating a copy of an architectural work - see the definition of an architectural work in s. 101 of the U.S. Copyright Act and other limitations in s. 120. If someone builds an unauthorized exact or substantially similar copy (i.e. a building according to the architectural work), it may be infringement (assuming access to the architectural work). The owner of an architectural work has the exclusive right to prepare derivative works (which of course can be licensed). As to the customs and conventions in the industry defining actual and implied licensing and ownershipthat's the story of extensive litigation (including numerous disputes between architects, home owners and builders).

From: John Cowan<[EMAIL PROTECTED]> 
To: Brian Behlendorf<[EMAIL PROTECTED]> 
CC: Lawrence E. Rosen<[EMAIL PROTECTED]> , [EMAIL PROTECTED] 
Subject: Re: namespace protection compatible with the OSD? 
Date: Thu, 19 Apr 2001 16:38:31 -0400 
 
Brian Behlendorf wrote: 
 
 
Would you agree that if I took one of Shakespeare's plays and 
reworked it 
into a screenplay, or novel, that my work would be a derivative 
work? 
Throw in translating to Chinese for good measure. Throw in adding 
some 
extra scenes and characters to really flesh out my work, or to 
adapt it to 
a new culture. 
 
All of those things are making a derivative work, clearly. 
 
I think the idea of implementing an API is the same thing. 
And I think this is a much closer analogy than using the tax advice 
given 
by a tax book. 
 
The closest analogy is building a house from a blueprint. The house 
isn't a derivative work of the blueprint, or architects wouldn't 
need 
to get paid for drawing them -- they could sue the contractor for 
infringement. 
 
I am not a lawyer, but I'm getting uncomfortably familiar with too 
many 
things usually only lawyers have to worry about. 
 
Tell it, brother! 
 
-- 
There is / one art || John Cowan 
<[EMAIL PROTECTED]> 
no more / no less || http://www.reutershealth.com 
to do / all things || http://www.ccil.org/~cowan 
with art- / lessness \\ -- Piet Hein 
 
Get your FREE download of MSN Explorer at http://explorer.msn.com


Re: namespace protection compatible with the OSD?

2001-04-19 Thread Brian Behlendorf


OK, so we have two new analogies to implementing an API, that of "baking a
cake from a recipe" and "that of building a house from blueprints".  I
still think the line between that and "write a novel based on a
Shakespeare play" is not defined.  What is the relevant case history,
especially in the field of software?  If we can find a precedent for or
against, we have an answer w/r/t the likely way a judge would rule.  And,
if it's true that a copyright on an API can't restrict the rights to
implement it, then my life becomes a lot easier.  =)

Brian




RE: namespace protection compatible with the OSD?

2001-04-19 Thread Lawrence E. Rosen

"OSI Certified" is a certification mark, a kind of trademark. Yet open
source software authors can claim their software to be "OSI Certified",
not just "equivalent to OSI Certified". This doesn't constitute
abandonment of the trademark -- does it?

"OSI Certified" is a certification mark, a special kind of trademark that
can ONLY be applied to third party software.  In fact, if OSI itself made
software it could NOT apply the certification mark to its own software.

The same general rules of trademark apply: OSI is responsible for ensuring
that third-party users of the OSI Certified certification mark meet certain
quality standards -- in this case, the requirement to distribute the
software under an OSI-approved license.

/Larry Rosen




Re: namespace protection compatible with the OSD?

2001-04-19 Thread John Cowan

Chloe Hoffman wrote:

 In the U.S. at least, building a house from a blueprint is creating a 
 copy of an architectural work

Oops, put my foot in it.  No dog biscuit!

 - see the definition of an "architectural 
 work" in s. 101 of the U.S. Copyright Act and other limitations in s. 
 120.

Well, at least it's a hack specific to architectural works.




Re: namespace protection compatible with the OSD?

2001-04-19 Thread Dave Gilbert

On Thu, 19 Apr 2001, Brian Behlendorf wrote:

 OK, so we have two new analogies to implementing an API, that of "baking a
 cake from a recipe" and "that of building a house from blueprints".  I
 still think the line between that and "write a novel based on a
 Shakespeare play" is not defined. 

Unfortunatly none of these analogies are correct; they all give a false
sense of apparent correctness which leads people to apply the wrong sort
of laws to them.

In terms of an API it is important to separate out the definition of the
API from its implementation and to realise that neither can be made from
the other directly without work and thought.

A skilled craftsman can, using his skill, knowledge and experience without
being inventive, build a house purely from the plans.  This is not
necessarily true of an API implementation; i.e. a skilled, but uninventive
programmer or system designer can NOT implement all APIs just from their
interface definition. Some APIs can be implemented purely from definition
without inventiveness, but there is almost always the opportunity for an
inventive implementer to entirely meet the API definition but produce a
different implementation from another implementer with possible benefits
such as speed, size etc.

Again, using an analogy which is probably a bad one I'd consider a car
wheel.  The API is the definition of what shape the axel/wheel/break disc
etc have to be for them to fit together.  A wheel maker may make a wheel
that 'implements the API' by ensuring that certain parts of it happen to
fit the car.  Similarly a car maker can use the API by making a car with
that shape fittings.

In an ideal world there is no requirement on either the car maker or the
wheel maker to use any particular technology in their products - they can
use wacky structural designs for better safety etc - without altering the
fact that they meet the API.

Given this API you can't design a car (hence its not like the house
blueprint analogy) and by looking at the wheel you can't design a car.

Now a car manufacturer might team up with a wheel manufacturer and decide
to change the interface between car and wheel - there are at least
two reasons he might want to do this:

  1) To generate an unfair monopoly so that no one else can sell cheaper
spare parts for the car.
  2) Becuase they have some improvement which provides some tangable
benefit to the consumer. This may involve some inventiveness e.g. some
clever mechanical arrangment between the two.

Taking case 1) it would seem that a third part wheel manufacturer could
buy a car and take one of the wheels off and look at the way it fixes to
the car and make another wheel that fits in the same place.  It would be
important that he only made something that fitted in the same way and
did not copy the actual wheel design.  Obviously the car manufacturer can
claim this is not an autharised part and may not meet various of its
specs.  Indeed it is the 3rd part wheel makers skill and inventiveness 
and trustworthy ness that people can use to guage whether it is a safe 
and good wheel and whether it has tangible benefits. What is the law in
this type of case?

Now what about number (2) - if they really do do something clever then
perhaps there is something patentable in there - but it would still be
monopalistic.

The real danger is people making small changes as in (1) which convey some
notional but misleading benefit and then claiming it is actually (2).
 
Dave

-- 
  Have a happy GNU millennium! --   
/ Dr. David Alan Gilbert  | Running GNU/Linux on Alpha, | Happy  \ 
\   gro.gilbert @ treblig.org | 68K,MIPS,x86,ARM and SPARC  | In Hex /
 \ ___|___ http://www.treblig.org   |___/




RE: namespace protection compatible with the OSD?

2001-04-19 Thread Rod Dixon, J.D., LL.M.

I am sorry about joining the discussion late. This sounds interesting.
Brian, do you mind clarifying your question without rehashing what has been
discussed? I do not want to bore those who have followed the thread, but
what do you mean by "implement" and what is the concern you are raising?

Rod

 -Original Message-
 From: Brian Behlendorf [mailto:[EMAIL PROTECTED]]
 Sent: Thursday, April 19, 2001 5:34 PM
 To: John Cowan
 Cc: [EMAIL PROTECTED]
 Subject: Re: namespace protection compatible with the OSD?



 OK, so we have two new analogies to implementing an API, that of "baking a
 cake from a recipe" and "that of building a house from blueprints".  I
 still think the line between that and "write a novel based on a
 Shakespeare play" is not defined.  What is the relevant case history,
 especially in the field of software?  If we can find a precedent for or
 against, we have an answer w/r/t the likely way a judge would rule.  And,
 if it's true that a copyright on an API can't restrict the rights to
 implement it, then my life becomes a lot easier.  =)

   Brian