Re: [opensource-dev] LGPL violation

2010-10-28 Thread Aidan Thornton
On 10/28/10, Erik Anderson  wrote:
> There is a static component that is linked when linking to dynamic
> libraries, however that is present mostly to inform the compiler on what the
> ABI is, or how your compiled code is expected to interact with the DLL.  It
> is very possible to write a piece of code that explicitly loads the library
> by name and manually builds calls to it.  In fact, it's likely possible to
> compile a program intended to run with a .dll without any related files
> being on the machine at the time.

Yeah, but that's not what we're talking about.
libmedia_plugin_webkit.so is in fact linked statically with various Qt
libraries - the entirety of the code for those Qt libraries is
incorporated into libmedia_plugin_webkit.so by the linker at compile
time, not just a stub. The same happens with libmedia_plugin_webkit.a
and  libmedia_plugin_webkit.dylib. I'm not sure exactly why Linden Lab
decided to do this - it's not a common thing to do and getting it to
work right requires a certain amount of mucking with the build system,
since static libraries normally aren't compiled with options that
allow them to be included in a shared library - but do it they did.
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] LGPL violation

2010-10-28 Thread Erik Anderson
There is a static component that is linked when linking to dynamic
libraries, however that is present mostly to inform the compiler on what the
ABI is, or how your compiled code is expected to interact with the DLL.  It
is very possible to write a piece of code that explicitly loads the library
by name and manually builds calls to it.  In fact, it's likely possible to
compile a program intended to run with a .dll without any related files
being on the machine at the time.

On Thu, Oct 28, 2010 at 8:52 AM, Carlo Wood  wrote:

> On Thu, Oct 28, 2010 at 08:27:52AM -0500, Dave Booth wrote:
> > On 10/28/2010 06:29, Carlo Wood wrote:
> > libmedia_plugin_webkit.{sp,dll,dylib}
> >
> > Make sure you quote examples of static linking when you're talking about
> > static linking :)
>
> Make sure you read carefully what I say and understand it before
> talking about wrong examples :)
>
> libmedia_plugin_webkit.{sp,dll,dylib} are linked STATICALLY with
> the Qt libs (as in, linked with .a).
>
> Thus:
>
>  Qt*.a (LGPL) + LL*.o (LGPL+FLOSS) = libmedia_plugin_webkit.so
>
>  ==> LL*.o must be made public (or their source code), or
>  libmedia_plugin_webkit.so cannot be shipped.
>
> --
> Carlo Wood 
> ___
> Policies and (un)subscribe information available here:
> http://wiki.secondlife.com/wiki/OpenSource-Dev
> Please read the policies before posting to keep unmoderated posting
> privileges
>
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Re: [opensource-dev] LGPL violation

2010-10-28 Thread Brendan Wilson
Actually the Qt wbekit source that LL uses is available as I had to
completely rebuild the set of libs on my system when I was working on
snowglobe using visual studio 2008 as the lib provided by LL caused an issue
when starting the viewer after being build due to an manifest
incompatibility issue. 

 

From: opensource-dev-boun...@lists.secondlife.com
[mailto:opensource-dev-boun...@lists.secondlife.com] On Behalf Of Carlo Wood
Sent: Thursday, October 28, 2010 11:52 AM
To: Dave Booth
Cc: opensource-dev@lists.secondlife.com
Subject: Re: [opensource-dev] LGPL violation

 

On Thu, Oct 28, 2010 at 08:27:52AM -0500, Dave Booth wrote:
> On 10/28/2010 06:29, Carlo Wood wrote:
> libmedia_plugin_webkit.{sp,dll,dylib}
>
> Make sure you quote examples of static linking when you're talking about
> static linking :)

Make sure you read carefully what I say and understand it before
talking about wrong examples :)

libmedia_plugin_webkit.{sp,dll,dylib} are linked STATICALLY with
the Qt libs (as in, linked with .a).

Thus:

 Qt*.a (LGPL) + LL*.o (LGPL+FLOSS) = libmedia_plugin_webkit.so

 ==> LL*.o must be made public (or their source code), or
 libmedia_plugin_webkit.so cannot be shipped.

--
Carlo Wood 
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting
privileges 

  _  

No virus found in this message.
Checked by AVG - www.avg.com
Version: 10.0.1153 / Virus Database: 424/3224 - Release Date: 10/28/10

___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

Re: [opensource-dev] LGPL violation

2010-10-28 Thread Carlo Wood
On Thu, Oct 28, 2010 at 08:27:52AM -0500, Dave Booth wrote:
> On 10/28/2010 06:29, Carlo Wood wrote:
> libmedia_plugin_webkit.{sp,dll,dylib}
> 
> Make sure you quote examples of static linking when you're talking about 
> static linking :)

Make sure you read carefully what I say and understand it before
talking about wrong examples :)

libmedia_plugin_webkit.{sp,dll,dylib} are linked STATICALLY with
the Qt libs (as in, linked with .a).

Thus:

 Qt*.a (LGPL) + LL*.o (LGPL+FLOSS) = libmedia_plugin_webkit.so

 ==> LL*.o must be made public (or their source code), or
 libmedia_plugin_webkit.so cannot be shipped.

-- 
Carlo Wood 
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] LGPL violation

2010-10-28 Thread Dave Booth
On 10/28/2010 06:29, Carlo Wood wrote:
libmedia_plugin_webkit.{sp,dll,dylib}

Make sure you quote examples of static linking when you're talking about 
static linking :)

Dynamically loaded libraries (that is, after all, what "dll" is an 
abbreviation for) are by definition not statically linked. if they were 
statically linked you wouldnt need the .dll, the .so or the .dylib file 
because the object code would have been incorporated into the binary at 
link time.  Statically linked progs dont require external library files, 
dynamically linked ones do. Thats the reason that on Solaris systems 
roots default shell is /sbin/sh rather than /bin/sh - its statically 
linked so that even if the lib loader is hosed the sysadmin can still 
get to a working shell to fix it. (historically, statically linked progs 
went in /sbin not /bin - not always a convention honored these days 
since so few progs are ever completely statically linked any more but in 
this case it was)

Now get off my lawn ;)

Dave

___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] LGPL violation

2010-10-28 Thread Carlo Wood
On Wed, Oct 27, 2010 at 10:17:01AM -0400, Oz Linden (Scott Lawrence) wrote:
>   On 2010-10-23 7:27, Carlo Wood wrote:
> > I am not a lawyer :p, but I think that it is allowed to link an LGPL-ed
> > library statically against a proprietary executable provided you
> > provide the object code or source code of the work that uses the library.
> 
> Not correct.  LGPL code may be linked to other source without having the 
> viral effect of requiring that other source also be published as open 
> source.  LGPL _does_ require that if any changes are made to the source 
> under that license, then those changes (and the original sources) must 
> be open and available either as LGPL or as GPL.

You state pretty firmly, while I believe you are in error.

You are NOT allowed to link statically with an LGPL-ed library unless you
provide the means for the user to relink the library, for example by
providing the .o (object) files that it is linked with.

>From many available links, let me quote an answer from
http://answers.google.com/answers/threadview/id/439136.html:


Q2a: What is the implication of static linking?
A2a: You need to comply with the license requirements. Eban Moglen in
  http://www.spinics.net/lists/xf/msg02311.html
indicates that you are producing a "derivative work" of the code in
the library. In the United States the US Copyright Office states at
  http://www.copyright.gov/circs/circ14.html
  A "derivative work," that is, a work that is based on (or derived
  from) one or more already existing works ... [copyright statements].
Both of those statements are pretty clear so section 6 of the LGPL
applies. Note that you can distribute (6a)
  ... [your work] as object code and/or source code, so that the user
  can modify the Library and then relink to produce a modified
  executable containing the modified Library
You can thus distribute object files (and protect your source code)
and still comply with the requirements of the LGPL.

However, others (in particular, Richard Stallman) does not necessarily
interpret the LGPL in this way. I strongly recommend you contact the
copyright holder prior to building a statically linked application for
distribution as a commercial product.


In this case, you'd have to contact Troll Tech and ask them if even
this is allowed, but at the very least you can NOT distribute
libmedia_plugin_webkit.{sp,dll,dylib}, which is statically linked
with Qt, without at least providing the object files that it exists
of (in addition to Qt), that you are the copyright holder of.

I think this is extremely logical: The user must at all times
be able to get the source code of the LGPL-ed library, change it,
and *RELINK* it with the application he or she is using.

The BSD guys have a different view though (just to make clear that
you completely orthogonal view really ought to be backed up by one
of your lawyers). Quoting 
http://www.freebsd.org/doc/en/articles/bsdl-gpl/article.html#ORIGINS-LGPL
(where 'glibc' is used as an example of an LGPL-ed library):


If you statically link an application with glibc, such as is often
required in embedded systems, you cannot keep your application proprietary,
that is, the source must be released. Both the GPL and LGPL require
any modifications to the code directly under the license to be released.


-- 
Carlo Wood 
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] LGPL violation

2010-10-27 Thread Sythos
On Wed, 27 Oct 2010 23:38:55 +0200
Altair "Sythos" Memo  wrote:


> yu can put in a DLL all the code, LGPL allow you to do, bu you shoudl
> release the LGPL part of code (not the piece yours or under other
> license), you must release the LGPL code of DLL, not all

please... turn on your typonese translator before read my last email XD
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] LGPL violation

2010-10-27 Thread Sythos
On Wed, 27 Oct 2010 10:38:32 -0400
Malachi  wrote:

> does this mean that if i move all of my own code over to a dll file
> that is loaded at runtime that i do not have to release the source
> for it?

uhm... both no and yes

yu can put in a DLL all the code, LGPL allow you to do, bu you shoudl
release the LGPL part of code (not the piece yours or under other
license), you must release the LGPL code of DLL, not all
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] LGPL violation

2010-10-27 Thread Malachi
does this mean that if i move all of my own code over to a dll file that  
is loaded at runtime that i do not have to release the source for it?



On Wed, 27 Oct 2010 10:17:01 -0400, Oz Linden (Scott Lawrence)  
 wrote:

>   On 2010-10-23 7:27, Carlo Wood wrote:
>> I am not a lawyer :p, but I think that it is allowed to link an LGPL-ed
>> library statically against a proprietary executable provided you
>> provide the object code or source code of the work that uses the  
>> library.
>
> Not correct.  LGPL code may be linked to other source without having the
> viral effect of requiring that other source also be published as open
> source.  LGPL _does_ require that if any changes are made to the source
> under that license, then those changes (and the original sources) must
> be open and available either as LGPL or as GPL.
>
> ___
> Policies and (un)subscribe information available here:
> http://wiki.secondlife.com/wiki/OpenSource-Dev
> Please read the policies before posting to keep unmoderated posting  
> privileges


-- 
Using Opera's revolutionary email client: http://www.opera.com/mail/
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] LGPL violation

2010-10-27 Thread Oz Linden (Scott Lawrence)
  On 2010-10-23 7:27, Carlo Wood wrote:
> I am not a lawyer :p, but I think that it is allowed to link an LGPL-ed
> library statically against a proprietary executable provided you
> provide the object code or source code of the work that uses the library.

Not correct.  LGPL code may be linked to other source without having the 
viral effect of requiring that other source also be published as open 
source.  LGPL _does_ require that if any changes are made to the source 
under that license, then those changes (and the original sources) must 
be open and available either as LGPL or as GPL.

___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges


Re: [opensource-dev] LGPL violation

2010-10-23 Thread Erik Anderson
I'm thinking that it may not require full source code if the ABI is
published at least -- the only "static link" that seems involved here is
whatever stub (.a?) is necessary to specify the ABI.  That would permit
someone to link to the library with alternate code (or replace the library
with free source if necessary).  It looks like they're going down a similar
route with the mesh deconstruction code.

On Sat, Oct 23, 2010 at 4:27 AM, Carlo Wood  wrote:

> I am not a lawyer :p, but I think that it is allowed to link an LGPL-ed
> library statically against a proprietary executable provided you
> provide the object code or source code of the work that uses the library.
>
> In other words, it must be possible to make changes to Qt and *relink*.
>
> Translating that idea to linking statically with a shared library, it
> is clear that one still has to be able to make changes to Qt and relink,
> or they are non-compliant. This means they must provide all the object
> code that was used to create (link) libmedia_plugin_gstreamer.so, or
> they must provide the source code so that people can generate this
> object code themselves.
>
> Imho, the only practical solution is to make the source code availabe,
> and most likely just all the source code of the whole viewer.
>
> On Fri, Oct 22, 2010 at 07:02:18PM -0700, Erik Anderson wrote:
> > Not sure this is worth sending to the list, but could you clarify that
> .so
> > files are statically linked to the executable that they are loaded into?
>  This
> > is a bit confusing to me.
> >
> > Or are they considered statically linked if you use the default dynamic
> loading
> > logic, rather than hand-coding GetProcAddr calls or equivalent?
>
> Nah - none of that. libmedia_plugin_gstreamer.so (the extension is
> different
> on OS other than linux I guess) is a shared library. However, it is
> constructed
> by linking statically with a modified version of Qt that was created by LL.
> Obviously, the users need to know what those mods are and they should be
> allowed to make changes of their own.
>
> For example, someone who already made changes to this version of Qt would
> not be able to use the mesh viewer until LL releases the full source code,
> so they are non-compliant if they release a 'beta' version of a viewer
> without
> providing the means to re-link libmedia_plugin_gstreamer.so with a
> different Qt.
>
> --
> Carlo Wood 
>
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges

[opensource-dev] LGPL violation

2010-10-23 Thread Carlo Wood
I am not a lawyer :p, but I think that it is allowed to link an LGPL-ed
library statically against a proprietary executable provided you
provide the object code or source code of the work that uses the library.

In other words, it must be possible to make changes to Qt and *relink*.

Translating that idea to linking statically with a shared library, it
is clear that one still has to be able to make changes to Qt and relink,
or they are non-compliant. This means they must provide all the object
code that was used to create (link) libmedia_plugin_gstreamer.so, or
they must provide the source code so that people can generate this
object code themselves.

Imho, the only practical solution is to make the source code availabe,
and most likely just all the source code of the whole viewer.

On Fri, Oct 22, 2010 at 07:02:18PM -0700, Erik Anderson wrote:
> Not sure this is worth sending to the list, but could you clarify that .so
> files are statically linked to the executable that they are loaded into?  This
> is a bit confusing to me.
> 
> Or are they considered statically linked if you use the default dynamic 
> loading
> logic, rather than hand-coding GetProcAddr calls or equivalent?

Nah - none of that. libmedia_plugin_gstreamer.so (the extension is different
on OS other than linux I guess) is a shared library. However, it is constructed
by linking statically with a modified version of Qt that was created by LL.
Obviously, the users need to know what those mods are and they should be
allowed to make changes of their own.

For example, someone who already made changes to this version of Qt would
not be able to use the mesh viewer until LL releases the full source code,
so they are non-compliant if they release a 'beta' version of a viewer without
providing the means to re-link libmedia_plugin_gstreamer.so with a different Qt.

-- 
Carlo Wood 
___
Policies and (un)subscribe information available here:
http://wiki.secondlife.com/wiki/OpenSource-Dev
Please read the policies before posting to keep unmoderated posting privileges