FAQ
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} ***

Search Discussions

  • Warren Young at May 18, 2007 at 12:08 pm

    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 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.
  • Basile STARYNKEVITCH at May 18, 2007 at 12:59 pm

    Warren Young wrote:
    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 :-) - 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.
  • Warren Young at May 18, 2007 at 2:14 pm

    Basile STARYNKEVITCH wrote:

    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.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupplusplus @
categoriesmysql
postedMay 17, '07 at 7:54p
activeMay 18, '07 at 2:14p
posts4
users2
websitemysql.com
irc#mysql

People

Translate

site design / logo © 2022 Grokbase