RE: What is Copyleft?

2001-02-26 Thread Dave J Woolley

 From: Ryan S. Dancey [SMTP:[EMAIL PROTECTED]]
 
 The function prototypes in header files almost certainly cannot be
 copyrighted, thus there's no point in licensing their use.  In fact, you
 can
 almost always call an exported function by ordinal number, thus I wouldn't
 even have to include the actual function names in my non-licensed code; I
 could just call the functions by ordinal rather than by name.
[DJW:]  
The LGPL explicitly discusses this case, saying that a derivative
work may not exist, but even if it does, providing that the worst
you do is include 10 line inline subroutines, they will not impose
restrictions.  So, for most normal cases, the unlinked object case
either
doesn't require a license or gets an unrestricted one.

 In my opinion, not a derivative work, because the parts are never combined
 into one work.  In my opinion, from the standpoint of making a work a
 derivative work, the law does not understand or care about the concept of
 a
[DJW:]  
There is part of the wording of clause 5 that might be taken to
read that 6 should apply to a dynamically linked executable, even
if it is not a derivative work.  I believe they can say that 
inputting the dynamic library to the linker is restricted even if
none of it comes out.

IANAL

[DJW:]  

-- 
--- 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: What is Copyleft?

2001-02-24 Thread Fred Patrick

 
 A header that is pure API (only function declarations) are in 
 this class. The 
 names of the functions get copied over into the resulting object 
 file, but 
 the header file itself does not. I believe that there was a case 
 once that 
 ruled you couldn't copyright an API.
 

Are there more details about not being able to copyright an API? 
Does API in this usage apply to CORBA interfaces as well?

If so it doesn't make much sense to me.
Fred Patrick



Re: What is Copyleft?

2001-02-24 Thread David Johnson

On Saturday 24 February 2001 06:28 am, Fred Patrick wrote:

 Are there more details about not being able to copyright an API?
 Does API in this usage apply to CORBA interfaces as well?

 If so it doesn't make much sense to me.

I wish I had more details. I am only going by my recollection. I probably 
mispoke when I said you couldn't copyright an API. I'm fairly certain you 
can. But I don't think you can prevent anyone from either using it or writing 
a different implementation of it.

A license might be able to prevent someone from using the actual header file 
representation of an interface, but they can't stop the use of the interface 
itself. If you are able to use the header file, as the GPL fully allows, and 
the header file contains only an interface representation, then only the 
interface (function names) will be integrated into the calling code.

Doing a search on the web, I quickly found out that searching on legal topics 
is hard to do, or maybe I just don't know how. In any case, I found
http://www.vjolt.net/vol4/v4i2a6-harllee.html
which is full a great info. It discusses *unpublished* APIs. I was unable to 
find a reference to the case I was thinking of.

Absent that though, here is a hypothetical... Can you copyright your personal 
name in such a way that people could not legally address mail to you?

-- 
David Johnson
___
http://www.usermode.org



RE: What is Copyleft?

2001-02-24 Thread Fred Patrick



 -Original Message-
 From: David Johnson [mailto:[EMAIL PROTECTED]]
 Sent: Saturday, February 24, 2001 1:45 PM
 To: Fred Patrick; [EMAIL PROTECTED]
 Subject: Re: What is Copyleft?


 On Saturday 24 February 2001 06:28 am, Fred Patrick wrote:

  Are there more details about not being able to copyright an API?
  Does API in this usage apply to CORBA interfaces as well?
 
  If so it doesn't make much sense to me.

 I wish I had more details. I am only going by my recollection. I probably
 mispoke when I said you couldn't copyright an API. I'm fairly certain you
 can. But I don't think you can prevent anyone from either using
 it or writing
 a different implementation of it.

I am not so concerned about someone using the API but rather that they
modify the API specification. In the CORBA world, I do not care that someone
implements an interface but I do care if they make changes but still purport
to be implementing the same interface.
Fred Patrick




Re: What is Copyleft?

2001-02-24 Thread David Johnson

On Saturday 24 February 2001 12:13 pm, Fred Patrick wrote:

 I am not so concerned about someone using the API but rather that they
 modify the API specification. In the CORBA world, I do not care that
 someone implements an interface but I do care if they make changes but
 still purport to be implementing the same interface.

I don't know CORBA at all, but that sounds like it's at least two inches over 
the line labeled "fraud".

-- 
David Johnson
___
http://www.usermode.org



RE: What is Copyleft?

2001-02-24 Thread Lawrence E. Rosen

Absent that though, here is a hypothetical... Can you 
copyright your personal 
name in such a way that people could not legally address mail to you?
 
No.

/Larry Rosen



RE: What is Copyleft?

2001-02-23 Thread Dave J Woolley

 From: Ryan S. Dancey [SMTP:[EMAIL PROTECTED]]
 
 
 Is the argument that a run-time link to external code creates a derivative
 work (in the sense that the copyright statutes define a derivative work)
 of
[DJW:]  
I don't think so.  It think the argument is about taking
GPLed code that doesn't link with the library and deriving a
work that does link with the library.  Whilst it is arguable
as to whether the FSF's current interpretation of their licence
is consistent with what the licence actually says, a copyright
owner does have the power to license code with a restriction that
derived works may not be dynamically linked with certain
categories of shared library.

 the Program and the external code?  Under this theory, you couldn't use
 GPL'd code with RPC or HTML or SMPT or any other inter-process
 communication
 system unless the whole system was GPL'd!
[DJW:]  
I don't believe there is any problem in using it even with
proprietory
shared libraries providing that the shared library is being
substituted for a licence compatible one.  The problem is in
producing
a derived work specifically intended to be used with a proprietory 
library, including the thorny cases of various devices intended to
artificially create the first situation.  You can also do what you
like for internal use.

To be more concrete, if you develop a library that implements an 
algorithm for predicting future prices in the widgets market but
decide that, to save development costs, you should use a GPLed user
interface library, if you could dynamically link without
restriction,
you could create a GPLed user interface that was only useable with
your program to achieve something that you would not be allowed to
do if you statically linked.  You would therefore have produced a 
complete work in which the GPLed part was only useable as part of
the proprietory whole.


 If I understand the internals of the situation correctly (which I may
 not),
 a program that binds to a DLL at runtime does so through the mediation of
 the OS.  Data is packaged, handed to the OS, the OS moves it from the
[DJW:]  
In general no.  In general a few addresses in the code are
fixed up by the loader.  A small amount of code may get added
in some implementations, but that code is normally self contained.

IANAL
-- 
--- 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: What is Copyleft?

2001-02-23 Thread Rod Dixon, J.D., LL.M.


   How can that create a derivative work?
 
  Well, the question is why wouldn't it?

 Because you're not modifying the original work.  You're not adding
anything
 to it.  The two parts (the Program and the Library) aren't ever combined
 into one work.  If you would argue that they are combined because they're
 both loaded into memory together, than you'd have to say that everything
 in the computer's memory formed a derivative work, so you could never
use
 a GPL'd program unless every byte of information in the computer's memory
 was also GPL'd.

If by "adding anything" you mean an adaptation of the pre-exsisting work
sufficient to make an original work, then, yes, I agree with you. If you are
referring to the fact that the work vanishes in seconds, then I disagree. I
was not sure which point you were really making, and the two are quite
distinct.


  Try a better hypo or simply state what you are driving at.

 My above example is flawed.  It should have read "a database management
 program".

 I'm suggesting that the definition of a derivative work can't include data
 being passed between two independent pieces of code, via file, via a
 network, or via an internal process communication.  Making a function call
 is not the same thing as actually incorporating the code of that function
 into the body of the calling code.

 When you make a function call in compile-time linked code, you are
creating
 a derivative work, because the function code itself will be compiled into
 the Program and inextricably combined with your code.  When the two are
 separated by a run-time linking, there can be no derivative work.

 Imagine this example:

 I write a program which runs interactively.  It takes an input of the name
 of a DLL.
 The program loads the DLL, which will cause some of the code in that DLL
to
 excecute automatically when the library is loaded, even if the calling
 program does nothing.

 If the hypothosis that run-time linking created derivative works is true,
 the above program could never be covered by the GPL, because the person
who
 distributed it would not be able to provide permission to create the
 derivative work of the Program + DLL when run.
Interesting point. In the ordinary course of programming, I suspect there
would be no derivative work created, hence the GPL should provide no
obstacle for distributing the program as open source. As you mentioned,
there could be a counter-example such as the development of a text editor
for Windows that not only makes calls to print drivers that MS has thrown in
its OS, but also to DLLs written by printer manufacturers. Add to that fact
that the windows text editor reads into those drivers additional True Type
fonts (independently copyrightable) and you my have a genuine derivative
work question. Under copyright law, the adaptation of the print drivers may
be considered fair use.  (particularly those deemed part of the
OS...although I could think of a hypo that could produce instant lititgation
on both sides involving the copyright holders of the drivers developed by
the printer manufacturers). The GNU GPL, however, would seem to permit an
open source windows text editor to exist in this manner as well. You might
say that the derivative work is evanescent, and under such cases the GNU GPL
is silent. Indeed, as I stated before, I do not think the GPL should
preclude participation of the Program as an open source project under such
cases. Why should the GPL control the copyright interests in all of the
libraries that are used by open source software? I have not read RMS as
saying this, but perhaps he has done so. No question there is some risk or
tension in reliance on closed DLLs, but those issues should probably be
addressed as they arise (e.g., the use of the GNU LGPL).



 This is not such a far-fetched example.  This is how printer and video
 drivers work in Windows, for example; and many are not distributed with
the
 OS.  It would be impossible to write a GPL'd program that used the
standard
 device-driver model for printing using Windows if this run-time linking
 hypothesis were valid.
You are correct, but this point is not unique to the GPL. If common dynamic
liking to OS drivers created derivative works (which is not to say that this
can never be so...just that it is not the usual case), Microsoft may have
controlled the market for third party applications running on its OS to a
far greater extent than commonly understood.

Rod







RE: What is Copyleft?

2001-02-23 Thread Dave J Woolley

 From: Rod Dixon, J.D., LL.M. [SMTP:[EMAIL PROTECTED]]
 
 Interesting point. In the ordinary course of programming, I suspect there
 would be no derivative work created, hence the GPL should provide no
 obstacle for distributing the program as open source. As you mentioned,
 
[DJW:]  In the normal course of programming the host
program will be combined with the header files (or typelib)
from the libary to produce the object code and the further
reference will be made to the library in producing the 
final, executable.  You would need clean room development
to avoid this.

One other point is that the argument is about whether the 
letter of the GPL allows something rather than whether the
spirit does.  If the letter is found defective, it is resonable
to assume that the next version of the [L]GPLed code will
have a licence that is no longer defective.  You would then
be stuck with having to maintain a separate development branch.

IANAL 
[DJW:]  

-- 
--- 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: What is Copyleft?

2001-02-23 Thread Ken Arromdee

On Fri, 23 Feb 2001, Rod Dixon, J.D., LL.M. wrote:
 Interesting point. In the ordinary course of programming, I suspect there
 would be no derivative work created, hence the GPL should provide no
 obstacle for distributing the program as open source. As you mentioned,
 there could be a counter-example such as the development of a text editor
 for Windows that not only makes calls to print drivers that MS has thrown in
 its OS, but also to DLLs written by printer manufacturers. Add to that fact
 that the windows text editor reads into those drivers additional True Type
 fonts (independently copyrightable) and you my have a genuine derivative
 work question.

Something similar first turned up long ago when GNU software first was
ported to PCs.  Even regular compilers link programs to libraries that come
with the compiler, and there was concern that the GPL did not allow this since
those libraries didn't come with the OS, but with the compiler.

The "solution" was for RMS to state that standard compiler libraries count
as operating system components even if they don't really come with the
operating system.  I still find this unconvincing; but I would expect that a
similar rationalization would work with printer drivers.

(One of the biggest reasons this is unconvincing is that it doesn't bind
anyone else.  RMS can only redefine OS components on GPL software that is
his, not on GPL software from other people.)




Re: What is Copyleft?

2001-02-23 Thread Rod Dixon, J.D., LL.M.

Dave, I don't have the LGPL right in front of me, if you could quote the
provision you are referring to, it might help us respond. Even so, which
part of the license do you think is disobeyed, and why?

Rod


  From: Frank Hecker [SMTP:[EMAIL PROTECTED]]
 
  makes a distinction between licenses that are "copyleft" licenses,
  licenses that are "not a strong copyleft", and "non-copyleft" licenses.
  Thus the GPL is described as a "copyleft license", but the LGPL is
  described as "not a strong copyleft license, because it permits linking
  with non-free modules"; the MPL (which permits both static and dynamic
 
 [DJW:]
 I had a look over the LGPL and it seems to have some interesting
 restrictions on derivative works that are almost certainly
 violated more often than obeyed, at least for the glibc.
 It seems to require that limited licesnses be given to modify
 the code and to reverse engineer it to aid in modifying it. There
 are also requirements with regard to notifying the library copyright.

 As I read it, if you want to completely avoid restrictions, you
 must distribute the proprietory code as unlinked object files
 and let the end user create the final executable.  (This only
 works for the LGPL as it contains exemptions for common uses of
 header files.)

 IANAL
 --
 --- 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: What is Copyleft?

2001-02-23 Thread Rod Dixon, J.D., LL.M.

I don't understand your last sentence, and it sounds as if you might be
making an important distinction. I am confused by your reference to linked
to static version and "unlinked objects." How could both be occurring with
the same library?

Rod

 Dave J Woolley [EMAIL PROTECTED] writes:

  I had a look over the LGPL and it seems to have some interesting
  restrictions on derivative works that are almost certainly
  violated more often than obeyed, at least for the glibc.
  It seems to require that limited licesnses be given to modify
  the code and to reverse engineer it to aid in modifying it. There
  are also requirements with regard to notifying the library copyright.
 
  As I read it, if you want to completely avoid restrictions, you
  must distribute the proprietory code as unlinked object files
  and let the end user create the final executable.  (This only
  works for the LGPL as it contains exemptions for common uses of
  header files.)

 The LGPL, unlike the GPL, was intended to permit linking against
 dynamic libraries covered by the LGPL without thereby bringing the
 program which is linking against the dynamic library under the [L]GPL.
 That is, in the case of an LGPL dynamic library, you can provide the
 unlinked object files in the form of an executable which is linked to
 the dynamic library by the dynamic linker (i.e., by the end user).

 So, since glibc is available as a dynamic library, most uses of glibc
 do not conflict with the LGPL.  The only way to conflict would be link
 against the static version of glibc and distribute the resulting
 binary without distributing the unlinked objects.

 Ian





Re: What is Copyleft?

2001-02-23 Thread Ryan S. Dancey

From: "Dave J Woolley" [EMAIL PROTECTED]

 or you link it against the dynamic version to create a dynamically
 *linked* executable, which can load the full text of the library
 and run time.

  There are three possibilities here:

 - unlinked (LGPL gives a dispensation on the headers used);

In my opinion, not a derivative work.  LGPL neither grants nor restricts
rights to this situation, except as relates to the distribution of the
source code of the LGPL'd material, and in that sense, the code might as
well be GPL'd.

The function prototypes in header files almost certainly cannot be
copyrighted, thus there's no point in licensing their use.  In fact, you can
almost always call an exported function by ordinal number, thus I wouldn't
even have to include the actual function names in my non-licensed code; I
could just call the functions by ordinal rather than by name.

 - statically linked;

In my opinion, a derivative work of all the sources of the object code,
because they're all combined into one work when the compilation is complete.
With the GPL, all of that code would also have to be GPL'd.  With the LGPL,
nothing but the LGPL'd library code needs to be covered by the LGPL.

This, I think, is the most valuable use of the LGPL for programmers working
in a mixed free/non-free environment.  It allows a free-software library to
be used with non-free code.  From the standpoint of the FSF, this is a very
suboptimal situation (because it tends to allow non-free code to proliferate
by leveraging free code).

If a court found that the first and third results Mr. Woolley enumerated
were not derivative works (and thus could ignore the terms of the LGPL or
the GPL for non-free code), I suspect that a case could be made to the FSF
for abandoning the use of the LGPL.  I suspect that the "statically linked"
scenario is permitted because allowing unlinked and dynamically linked code
essentially means that not allowing it would just be frustrating, requiring
a program to dynamically link at program start, essentially achieving the
same result.

 - dynamically linked.

In my opinion, not a derivative work, because the parts are never combined
into one work.  In my opinion, from the standpoint of making a work a
derivative work, the law does not understand or care about the concept of a
thread of execution, no more than the law cares about the order you read
pages in a collection of books.

Furthermore, I would argue that the GPL doesn't cover this situation,
because the GPL explicitly disclaims any authority over what the program
does once it starts to execute.  "The act of running the program is not
restricted."

The only part of the free code that is actually combined with the non-free
code are the function prototypes, which I maintain cannot be copyrighted,
and thus are not governed by the terms of either the LGPL or the GPL.

Ryan




Re: What is Copyleft?

2001-02-23 Thread Ian Lance Taylor

"Rod Dixon, J.D., LL.M." [EMAIL PROTECTED] writes:

 I don't understand your last sentence, and it sounds as if you might be
 making an important distinction. I am confused by your reference to linked
 to static version and "unlinked objects." How could both be occurring with
 the same library?

The paragraph in question:

  So, since glibc is available as a dynamic library, most uses of glibc
  do not conflict with the LGPL.  The only way to conflict would be link
  against the static version of glibc and distribute the resulting
  binary without distributing the unlinked objects.

glibc is distributed as both a dynamic library (libc.so) and a static
library (libc.a).

The LGPL says that if you distributed a binary linked with a static
library, you must also distribute, in addition, the unlinked objects.
That way, if the library is updated, the recipient will be able to
relink against the new version of the library, producing a new binary.

You are correct that one would not normally have both a binary linked
to a static library, and unlinked objects.  The LGPL, however, says
that you must provide both.

Does that make more sense?  I've been working with linker internals
for so long that I'm no longer sure what is general knowledge and what
is weird stuff that only a few people know.

Ian



Re: What is Copyleft?

2001-02-23 Thread Ian Lance Taylor

Dave J Woolley [EMAIL PROTECTED] writes:

  So, since glibc is available as a dynamic library, most uses of glibc
  do not conflict with the LGPL.  The only way to conflict would be link
  against the static version of glibc and distribute the resulting
  binary without distributing the unlinked objects.
   [DJW:]  
   But the whole point of this thread is that the FSF
   consider running ld against dynamic libraries to 
   create a derivative work, even though the bulk of
   the library is only accessed at run time.

Sure, and that is a problem if the library is licensed under the GPL,
but it is not a problem for a dynamic library licensed under the LGPL.
The LGPL has the appropriate escape clauses in the way it defines a
``work which uses the Library.''

   Moreover, if that ld step didn't create a derivative
   work, the unlinked object code would represent
 a "work that uses the Library", and clause 6(b) would never apply.
 The existence of clause 6(b) implies that the intention was that executables
 that are dynamically linked should still be subject to the first paragraph
 of
 section 6.

My reading is that section 6 only applies to binaries which are
distributed with the library, or after they are linked with the
library.  That is not the case of typical binaries linked against
glibc.

I do think the binary which needs to be dynamically linked with glibc
is ``work that uses the Library.''

Clause 6(b) is an escape hatch similar to clause 6(a) if you provide a
way to replace the LGPL library which is being distributed with your
binary.  That is, you can provide unlinked objects, or you can provide
some dynamic library mechanism.

Ian



Re: What is Copyleft?

2001-02-23 Thread David Johnson

On Friday 23 February 2001 08:32 am, Dave  J Woolley wrote:

   [DJW:]  In the normal course of programming the host
   program will be combined with the header files (or typelib)
   from the libary to produce the object code and the further
   reference will be made to the library in producing the
   final, executable.  You would need clean room development
   to avoid this.

It would depend upon the specific header file. Although they are read in by 
the compiler, they do not always get translated into any bits. 

A header that is pure API (only function declarations) are in this class. The 
names of the functions get copied over into the resulting object file, but 
the header file itself does not. I believe that there was a case once that 
ruled you couldn't copyright an API.

Header files that contain macros, inlines or templates would be a different 
matter. I think that even these things would be usable under fair use, since 
their intent is to support the interface. 

 One other point is that the argument is about whether the 
 letter of the GPL allows something rather than whether the
 spirit does.

Sometimes the "spirit" of one part of a license is in conflict with the 
"spirit" of another. In the case of the GPL, I feel that the spirit of "we 
won't restrict usage" could be in direct conflict with the spirit of "don't 
combine this in any way with 'foreign' stuff".

And of course, the whole general spirit of "only use this particular license 
if you value freedom" is irrelevant.

-- 
David Johnson
___
http://www.usermode.org



Re: What is Copyleft?

2001-02-22 Thread Rick Moen

begin Ryan S. Dancey quotation:

 Here's a question I thought I'd never have to ask.
 What is a Copyleft?

Your underlying point is well-taken, and perceptive:  RMS's recent usage
of the term indeed appears to depart from its prior (and customary)
meaning, in objecting to the ability to link to non-free code.  

Here is FSF's answer to your question as posed, from
http://www.gnu.org/copyleft/copyleft.html :

"Copyleft says that anyone who redistributes the software, with or
without changes, must pass along the freedom to further copy and change
it."

-- 
Cheers,Before enlightenment, caffeine.
Rick Moen  After enlightenment, caffeine.
[EMAIL PROTECTED]



Re: What is Copyleft?

2001-02-22 Thread Rod Dixon

Correct. Your quote from RMS didn't indicate whether he was referring to
static or dynamic linking, but since your example uses dynamic linking, I
assume that is what RMS meant as well. I do not read the copyleft in the
GNU GPL to preclude runtime linking to DLLs. Indeed, to read the copyleft
in that manner would raise serious questions concerning its potential
copyright misuse in my opinion. There is no copyright interest that would
allow a copyright holder to such a thing, and one seeking to undermine the
copyright regime would seem unable to do so as well.
Rod


On Thu, 22 Feb 2001, Ryan S. Dancey wrote:

 Here's a question I thought I'd never have to ask.

 What is a Copyleft?

 The reason I ask this question relates to RMS's recent pronouncements about
 Apple's psuedo-open license terms.  He says, in part, that one of the flaws
 of the license is that:

 "It is not a true copyleft, because it allows linking with other files which
 may be entirely proprietary."

 I the working definition of "copyleft" I have been using is:

 "A way of using contract law (through a copyright license) to ensure that
 everyone has the freedom to copy, modify and distribute a given work.  It
 takes the copyright law and turns it inside-out.   Instead of being used to
 limit what you can do with a copyright work, a copyleft ensures that your
 freedom can't be abridged."

 Now, let me say that for the purposes to which RMS developed the GPL in the
 first place, his indication of a "flaw" with the Apple license is completely
 consistent.  However, I would say that the ability to link with non-free
 code, while an incompatibility with the GPL, isn't a copyleft problem.

 If the license allowed a user to link to non-free code, and distribute the
 combination in object-form only, then I would say that it was a copyleft
 problem, because free code would be rendered non-free (the gestalt work
 would have two copyright interests; the Free part, and the non-Free part,
 and thus the work as a whole couldn't be distributed without additional
 permissions).

 If I write a copyleft free program for Windows, I should be able to load and
 link at runtime to any DLL in the system, regardless of whether or not that
 DLL is free code or not, shouldn't I?  How else could a Windows program ever
 be written using the GPL? (I don't know enough about Linux to have an
 opinion about Linux code).

 The copyleft concept is supposed to ensure that any material I use or modify
 which is based on copylefted content has to obey the same terms as the
 original copyleft license, correct?

 The concept of "copyleft" itself shouldn't be so specific as to include
 material related to the linking model of computer software, should it?

 Ryan






Re: What is Copyleft?

2001-02-22 Thread Frank Hecker

"Ryan S. Dancey" wrote:
 Here's a question I thought I'd never have to ask.
 
 What is a Copyleft?
 
 The reason I ask this question relates to RMS's recent pronouncements about
 Apple's psuedo-open license terms.  He says, in part, that one of the flaws
 of the license is that:
 
 "It is not a true copyleft, because it allows linking with other files which
 may be entirely proprietary."

For what it's worth, the FSF discussion of "Various Licenses and
Comments about Them"

http://www.gnu.org/philosophy/license-list.html

makes a distinction between licenses that are "copyleft" licenses,
licenses that are "not a strong copyleft", and "non-copyleft" licenses.
Thus the GPL is described as a "copyleft license", but the LGPL is
described as "not a strong copyleft license, because it permits linking
with non-free modules"; the MPL (which permits both static and dynamic
linking with proprietary code) is also described as "not a strong
copyleft". On the other hand the MIT X license and Apache licenses are
described as "non-copyleft".

So I think the issue at hand is not that the meaning of copyleft is
directly tied to the issue of linking, it's that the FSF uses the issue
of linking to try and introduce a concept of the relative "strength" of
copyleft as embodied in different license.

Frank
-- 
Frank Heckerwork: http://www.collab.net/
[EMAIL PROTECTED]home: http://www.hecker.org/



RE: What is Copyleft?

2001-02-22 Thread Dave J Woolley

 From: Ryan S. Dancey [SMTP:[EMAIL PROTECTED]]
 
 If I write a copyleft free program for Windows, I should be able to load
 and
 link at runtime to any DLL in the system, regardless of whether or not
 that
 DLL is free code or not, shouldn't I?  How else could a Windows program
 ever
 
[DJW:]  My understanding is that the restrictions only apply
to the distribution of code. They are designed to stop people
distributing code which forces the recipient to have to pay
for a licence to use a pre-requisite library (static or dynamic).

If that is correct, you can write a program that is derived
from copylefted code and load it and link it with any DLL you
like, but you cannot give it to someone else if they cannot
sensibly use it without first obtaining that DLL.

The real borderline case is when you supply a token version of
the library.  I seem to remember that this hinges on whether the
full function of the copylefted code is accessible with that
token library.

IANAL
[DJW:]  

-- 
--- 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: What is Copyleft?

2001-02-22 Thread David Johnson

On Thursday 22 February 2001 02:16 pm, John Cowan wrote:

 No, DLLs are in the same address space as the main program.  They are
 ordinary code that instead of being mapped at link time, is mapped at
 the beginning of run time.  Calls to a routine in a DLL are essentially
 ordinary subroutine calls indirected through a table of pointers.

"address space" is an arbitrary criteria (as is the similar "process space"). 
I have serious doubts that it's even legally valid. A better criteria is 
needed. It is not the author doing the mapping of addresses, it is the OS. 
All the author is doing is using an API. 

-- 
David Johnson
___
http://www.usermode.org



Re: What is Copyleft?

2001-02-22 Thread Eric Jacobs

"Ryan S. Dancey" [EMAIL PROTECTED]

 
 When you make a function call in compile-time linked code, you are 
 creating a derivative work, because the function code itself will be 
 compiled into the Program and inextricably combined with your code.  
 When the two are separated by a run-time linking, there can be no 
 derivative work.

Actually, this has nothing to do with the issue of compile-time vs.
run-time linking.

Here's an example: Suppose I take an ordinary, simple, statically
linked program that is licensed under the GPL. I want to add some
code to it and keep it secret, so I do something like obfuscate
the C source or hide the source altogether and distribute object
files only. This obviously goes against the "preferred form"
clause of the GPL. However, it would not be a violation under
your logic, as the proprietary modifications can easily be
"extricated" using diff or a similar utility. (Suppose that I
am not distributing the final binary, but the tarball containing
the original source and proprietary files.)

What differentiates this scenario from the "mere aggregation" that
the GPL specifically disclaims? The way in which the original files
and the proprietary files interact -- their function call prototypes,
their linker symbols, the "data being passed between two independent
pieces of code." It is not insignificant.


--