MySQLTalk.org Forum Index MySQLTalk.org
MYSQL discussions groups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

pro domo static library for MySQL++

 
Post new topic   Reply to topic    MySQLTalk.org Forum Index -> MySQL++
View previous topic :: View next topic  
Author Message
Basile STARYNKEVITCH
Guest





PostPosted: Fri May 18, 2007 1:01 am    Post subject: pro domo static library for MySQL++ Reply with quote



HEllo all

I am well aware of the Reply to Can't configure to build static library on
Mac OS X 10.4.9 http://lists.mysql.com/plusplus/6594

However, I disagree with the argument that a GPL-ed library should be linked
dynamically. Licence terms are legal stuff, linking mode is technical stuff.

I would explain concretely.

I only want to use mysqlpp in small CGI programs I am writing (opensource
GPL licence). I am pretty sure I am not alone. But such CGI programs are
deployed (ie used) on small cheap web sites, whose web hosting company
usually does not provide any additional shared libraries than the barely
essentials (like libmysqlclient, libc, libdl, libm and their dependencies).
Some hosting companies don't even put a libstdc++.so - you need to link it
statically!

So I am not able to use libmysqlpp because it has no static version, even
when coding GPL-ed free software.

And I was not able to patch quickly the libmysqlpp source to enable static
linking on linux/Debian/Etch/AMD64 ou linux/Debian/Etch/x86 - apparently the
Debian maintainer was not able neither :-(

So there are valid reasons to ship a statically linked version, even for a
GPL library (and of course also for LGPL).

Regards.


--
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
8, rue de la Faïencerie, 92340 Bourg La Reine, France
*** opinions {are only mines, sont seulement les miennes} ***
Back to top
Warren Young
Guest





PostPosted: Fri May 18, 2007 3:28 pm    Post subject: Re: pro domo static library for MySQL++ Reply with quote



Basile STARYNKEVITCH wrote:
Quote:

However, I disagree with the argument that a GPL-ed library should be linked
dynamically. Licence terms are legal stuff, linking mode is technical stuff.

The law does not allow you to reinterpret a license in a way that is
technically convenient for you. The license's correct interpretation is
independent of your wishes. If it's inconvenient for you to obey the
license, you simply have no legal ability to use the software: standard
copyright applies, you don't own the copyright on this software, and so
you have no right to copy the software.

Quote:
I only want to use mysqlpp in small CGI programs I am writing (opensource
GPL licence). I am pretty sure I am not alone. But such CGI programs are
deployed (ie used) on small cheap web sites, whose web hosting company
usually does not provide any additional shared libraries than the barely
essentials (like libmysqlclient, libc, libdl, libm and their dependencies).
Some hosting companies don't even put a libstdc++.so - you need to link it
statically!

A lawyer might argue that this usage wouldn't fall under the
distribution terms of the GPL (v2, at least) since only company
employees should have access to the server. Another lawyer might then
argue that this still amounts to distribution, since the binary has been
copied to a server not belonging to the company.

The only way to resolve that argument is to have a lawsuit; we can't
resolve it here on the list. If that does not appeal, I suggest that
you either 1) find a better web host; or 2) host your site on
company-owned servers.

Again: just because it's inconvenient does not make it wrong. If you do
not choose to take the technical steps required to comply with the GPL
and LGPL, you have no license to use the software. It's that simple.
Back to top
Basile STARYNKEVITCH
Guest





PostPosted: Fri May 18, 2007 6:06 pm    Post subject: Re: pro domo static library for MySQL++ Reply with quote



Warren Young wrote:
Quote:
Basile STARYNKEVITCH wrote:

However, I disagree with the argument that a GPL-ed library should be
linked
dynamically. Licence terms are legal stuff, linking mode is technical
stuff.

The law does not allow you to reinterpret a license in a way that is
technically convenient for you. The license's correct interpretation is
independent of your wishes. If it's inconvenient for you to obey the
license, you simply have no legal ability to use the software: standard
copyright applies, you don't own the copyright on this software, and so
you have no right to copy the software.


I certainly don't want to start a lawsuit and I am pretty certain that
the law to which I have to obey -I am a french citizen and my hosting
company is french- is not the same as the law that you have to obey
(since you are probably citizen of the USA. And not every human is a USA
citizen and have to obey to Bush's government Smile - my president is
Sarkozy [but he didn't got my voice]). The courts involved are
different. The Bern convention on copyright is common.

Back to the point. I was referring to the following imaginary scenario:

I am developping an opensource GPL software FooBark (I am assuming this
name is not used yet, please replace it by whatever is appropriate).

FooBark is a CGI application. It is linked with libmysqlpp.

At the exactly same moment, I put on the same site foobark.org (supposed
to be hosted in France or Europe, and I being a French citizen):
the full code source of FooBark as a foobark-0.1.tgz file, a source
code under GPL license as http://foobark.org/foobark-0.1.tgz

a demo of FooBark as http://foobark.org/foobark.cgi as a binary
foobark.cgi which happens to be linked statically with libstdc++ and
libmysqlpp and libmysqlclient (and any others) dynamically with libc.so
libm.so libdl.so (because my hosting company don't provide anything
else). Notice that you won't even be able to observe that foobark.cgi is
statically linked (because in general you cannot access the binary of
any running cgi programs, like you cannot access the binary of your
Apache2 or PHP executable.).

Notice that I am distributing a source program and deploying at the same
time a binary of the exactly same program, which I have wrote and
release under GPL.

Notice that for libreadline, which is a GPL-ed library, there exists in
some Linux distributions, some static binaries linked to it (IIRC, some
versions of the rkiss shell shipped statically linked). I feel it is a
compelling example.

Please tell me which exact part of the GPL or LGPL licence(s) forbid my
example FooBark but allows statically linked binaries to libreadline

Again, I am definitely not talking about developping proprietery
software, but only about GPL licensed software. And notice that dynamic
linking is orthogonal to licensing. It could be concievable to produce
an entire linux distribution without any shared library or ld.so linker.
I don't see how that could hurt the GPL (or LGPL) license, which can
(and has probably been) used on systems (like SunOS3) which did not had
any shared libraries!

Are you saying that nobody could port MySQL++ to a static-library only
system like old SunOS3 and release the source in GPL or LGPL licence
together with the statically linked binaries?

Are you implying that non-shared linking systems cannot be developped in
GPL licenses?

Is there anything in GPL which forbids demoing a GPL-ed application on
the same site where the source code of this application is released?


Please reply by taking into account that I am exclusively thinking of
GPL (opensource, free software under GPL v2 licence) applications
(possibly using MySQL++). I am not talking about other kind of software
development.

Recall that http://www.gnu.org/licenses/gpl.html says

Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted


Anyway, I won't use libmysqlpp. But with your reasoning, you might loose
some clients, committed to open-source.


I repeat: linking is a technical issue (as is running a program: I could
run a program on a chalk board). And I cannot imagine how can someone
violate the GPL (or is it LGPL, I don't care here!) license of mysqlpp
by publishing together the whole source of an application using it and
at the same time demo-ing it on the web.


I strongly insist that I am talking only about an hypothetical web CGI
application, licensed under GPL, which would have be distributed under
GPL and at the same time deployed as a static binary. And again, I
cannot understand how someone can know if a particular CGI is statically
linked, or dynamically linked, or running under an emulator or a C
interpreter, powered by pigeons, etc. The only thing you can measure on
the web is HTTP protocol exchanges!

I am explicitly not talking about running a GPL-ed application on a site
which does not at the same time publish the source form of it (under GPL
licence).

Again, all the above is my imagination only. I won't use libmysqlpp. So
don't threaten to sue me. It is irrelevant.
Back to top
Warren Young
Guest





PostPosted: Fri May 18, 2007 7:20 pm    Post subject: Re: pro domo static library for MySQL++ Reply with quote

Basile STARYNKEVITCH wrote:
Quote:

I am developping an opensource GPL software FooBark (I am assuming this
name is not used yet, please replace it by whatever is appropriate).

FooBark is a CGI application. It is linked with libmysqlpp.

If the program is licensed under the GPL and you distribute the source,
then you can statically link to any GPL'd or LGPL'd libraries.

MySQL++'s build system doesn't allow static linking right now, but it is
not that way because I'm actively trying to prevent the scenario you
describe. It is simply a limitation of the current build system.
Specifically, the problem is that selecting a linkage type with Autoconf
doesn't affect all of the Bakefile-generated stuff. Static linkage used
to work back when we were using Automake.

I'm not motivated to fix it because I don't believe your scenario is
common. If it were, we'd be seeing a lot more complaints about it.
Since we're not, I'm not going to spend time trying to fix it.

If you fix it, I'll consider the patch thoughtfully.

Before you spend yet more time arguing with me, you might think about
whether your time isn't better spent working on that patch.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    MySQLTalk.org Forum Index -> MySQL++ All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.