Gramps and AGPL3

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Gramps and AGPL3

Helge.Herz-2
Hi devs,

I did start "How to run Gramps using python 3.3 on Win" with python
3.3.5, 32 bit. Looking for necessary components (I'm still hopeful to
get/catch the whole stuff now) and trying to use the latest Berkeley DB
[Berkeley DB 12cR1 (12.1.6.0.30) --> Berkeley DB 6.0.30.msi] I got this:
"...
Detected Berkeley DB version 6.0 from db.h

******* COMPILATION ABORTED *******

You are linking a Berkeley DB version licensed under AGPL3 or have a
commercial
license.

AGPL3 is a strong copyleft license and derivative works must be
equivalently licensed.

You have two choices:

   1. If your code is AGPL3 or you have a commercial Berkeley DB license
from Oracle, please, define the environment variable
'YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION' to any value, and
try to install this python library again.

   2. In any other case, you have to link to a previous version of
Berkeley DB. Remove Berlekey DB version 6.0 and let this python library
try to locate an older version of the Berkeley DB library in your
system. Alternatively, you can define the environment variable
'BERKELEYDB_DIR', or 'BERKELEYDB_INCDIR' and 'BERKELEYDB_LIBDIR', with
the path of the Berkeley DB you want to use and try to install this
python library again.
..."

I'm not so familiar with AGPL3. So, here is my question: Is this the way
we will go ahead with Gramps. Or shall I try to use the older 5.x
version of bsddb?
Thanks
- Helge

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gramps and AGPL3

John Ralls-2

On Mar 12, 2014, at 3:21 PM, Helge.Herz <[hidden email]> wrote:

> Hi devs,
>
> I did start "How to run Gramps using python 3.3 on Win" with python
> 3.3.5, 32 bit. Looking for necessary components (I'm still hopeful to
> get/catch the whole stuff now) and trying to use the latest Berkeley DB
> [Berkeley DB 12cR1 (12.1.6.0.30) --> Berkeley DB 6.0.30.msi] I got this:
> "...
> Detected Berkeley DB version 6.0 from db.h
>
> ******* COMPILATION ABORTED *******
>
> You are linking a Berkeley DB version licensed under AGPL3 or have a
> commercial
> license.
>
> AGPL3 is a strong copyleft license and derivative works must be
> equivalently licensed.
>
> You have two choices:
>
>   1. If your code is AGPL3 or you have a commercial Berkeley DB license
> from Oracle, please, define the environment variable
> 'YES_I_HAVE_THE_RIGHT_TO_USE_THIS_BERKELEY_DB_VERSION' to any value, and
> try to install this python library again.
>
>   2. In any other case, you have to link to a previous version of
> Berkeley DB. Remove Berlekey DB version 6.0 and let this python library
> try to locate an older version of the Berkeley DB library in your
> system. Alternatively, you can define the environment variable
> 'BERKELEYDB_DIR', or 'BERKELEYDB_INCDIR' and 'BERKELEYDB_LIBDIR', with
> the path of the Berkeley DB you want to use and try to install this
> python library again.
> ..."
>
> I'm not so familiar with AGPL3. So, here is my question: Is this the way
> we will go ahead with Gramps. Or shall I try to use the older 5.x
> version of bsddb?

Helge,

IMO that's a bit of an overreaction from Jesus Cea. The AGPL has a single additional requirement [1] over the GPL that we use, which is that if someone is using the program (or library, in the case of db6) to run a web service they must also provide source code, including any modifications they make. That doesn't have anything to do with you, though, unless you're planning to distribute an AIO with db6 in it. It certainly doesn't apply for testing. Go ahead and set the variable and build the module.

As a separate discussion, it would be reasonable for us to adopt that license since we provide a facility to run a web service. We could apply it only to the web code to avoid having to track down all of the copyright holders for the main part of Gramps to get their assent to change the license.

If you manage to get pybsddb3 to build on Windows I'd sure like to know how you did it. It wasn't cooperating with me at all yesterday.

Regards,
John Ralls

[1] https://www.gnu.org/licenses/why-affero-gpl.html
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gramps and AGPL3

Helge.Herz-2
Am 13.03.2014 01:27, schrieb John Ralls:
> If you manage to get pybsddb3 to build on Windows I'd sure like to know how you did it. It wasn't cooperating with me at all yesterday.
As in the past I plan to provide a wiki page "how to.." as result of my
trials too if there is any positive result.
- Helge

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gramps and AGPL3

Benny Malengier
We link to bsddb. Don't know why you compile it and not just download a lib, but that will be a windows issue I assume.

I am sad something like an OSS DB is not under LGPL. Bad play of Oracle. The python bindings are fortunately bsd 3 clause license.

We don't make a derivative, just use a database. So the viral nature of GPL should not be a problem here.Just set that flag and compile again.

As to AGPL, we decided in the past when starting the webservice, not to do that. Or better, Doug who did most of the coding decided not to do that :-)
The reason was that we can't change all of Gramps to AGPL as that would mean hunting down all contributors. So it would have been only new code or the web part, which we deemed not a good course.
Some developers were opposed to GPL v3 also. So we stuck to v2 or later.

In other words, going AGPL now would be too much work to handle. Better assume v4 of the GPL will cover all bases :-D

Benny

2014-03-13 7:16 GMT+01:00 Helge.Herz <[hidden email]>:
Am 13.03.2014 01:27, schrieb John Ralls:
> If you manage to get pybsddb3 to build on Windows I'd sure like to know how you did it. It wasn't cooperating with me at all yesterday.
As in the past I plan to provide a wiki page "how to.." as result of my
trials too if there is any positive result.
- Helge

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gramps and AGPL3

John Ralls-2

On Mar 13, 2014, at 1:31 PM, Benny Malengier <[hidden email]> wrote:

> We link to bsddb. Don't know why you compile it and not just download a lib, but that will be a windows issue I assume.

I was referring to the BSDDB3 [1] python module that wraps Berkeley DB, not to BerkeleyDB itself. This is the replacement for
>
> I am sad something like an OSS DB is not under LGPL. Bad play of Oracle. The python bindings are fortunately bsd 3 clause license.

Sleepycat always dual-licensed BerkeleyDB: Either GPL or commercial. Had they used LGPL they would have had trouble selling the commercial one. Oracle is mostly continuing that practice, just extending it a bit with the AGPL.

>
> We don't make a derivative, just use a database. So the viral nature of GPL should not be a problem here.Just set that flag and compile again.

We most certainly do make a derivative. Linking a shared library is making a derivative under the terms of the GPL. That’s why the LGPL exists, to relax that requirement. Not only that, but we’re redistributing Berkeley DB in the AIO bundles.

The reason the “viral nature of GPL” isn’t a problem here is that we’re already infected.

>
> As to AGPL, we decided in the past when starting the webservice, not to do that. Or better, Doug who did most of the coding decided not to do that :-)
> The reason was that we can't change all of Gramps to AGPL as that would mean hunting down all contributors. So it would have been only new code or the web part, which we deemed not a good course.

OK, I guess. If an AIO bundle includes BerkeleyDB 6.0.1 or later it should make it pretty clear that web use of the bundle is subject to the AGPL.

> Some developers were opposed to GPL v3 also. So we stuck to v2 or later.
>
> In other words, going AGPL now would be too much work to handle. Better assume v4 of the GPL will cover all bases :-D

Well, if some contributors are opposed to GPLV3 they’re not likely to assent to GPLV4.

Regards,
John Ralls


[1] https://pypi.python.org/pypi/bsddb3/6.0.1
------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gramps and AGPL3

Benny Malengier



2014-03-13 21:58 GMT+01:00 John Ralls <[hidden email]>:

On Mar 13, 2014, at 1:31 PM, Benny Malengier <[hidden email]> wrote:

> We link to bsddb. Don't know why you compile it and not just download a lib, but that will be a windows issue I assume.

I was referring to the BSDDB3 [1] python module that wraps Berkeley DB, not to BerkeleyDB itself. This is the replacement for
>
> I am sad something like an OSS DB is not under LGPL. Bad play of Oracle. The python bindings are fortunately bsd 3 clause license.

Sleepycat always dual-licensed BerkeleyDB: Either GPL or commercial. Had they used LGPL they would have had trouble selling the commercial one. Oracle is mostly continuing that practice, just extending it a bit with the AGPL.

Some people seem to think this could be a real problem. See Debian list or https://community.oracle.com/message/11184885 were Oracle in the end does not reply.
Ross, as Debian guy, do you know what people think this would mean for Gramps? I assume python 2 would just remain with v5, but python 3 needs the module.

It seems indeed that this is a specific move of Oracle to undermine the use of berkeley db database ...
I wonder how fast we could move to the sqlite via the code present of Doug in the webserver.
Annoying development.


>
> We don't make a derivative, just use a database. So the viral nature of GPL should not be a problem here.Just set that flag and compile again.

We most certainly do make a derivative. Linking a shared library is making a derivative under the terms of the GPL. That’s why the LGPL exists, to relax that requirement. Not only that, but we’re redistributing Berkeley DB in the AIO bundles.

And both are real problems. Linux does say that using the API  is not infringement. But IANAL.

Benny


The reason the “viral nature of GPL” isn’t a problem here is that we’re already infected.

>
> As to AGPL, we decided in the past when starting the webservice, not to do that. Or better, Doug who did most of the coding decided not to do that :-)
> The reason was that we can't change all of Gramps to AGPL as that would mean hunting down all contributors. So it would have been only new code or the web part, which we deemed not a good course.

OK, I guess. If an AIO bundle includes BerkeleyDB 6.0.1 or later it should make it pretty clear that web use of the bundle is subject to the AGPL.

> Some developers were opposed to GPL v3 also. So we stuck to v2 or later.
>
> In other words, going AGPL now would be too much work to handle. Better assume v4 of the GPL will cover all bases :-D

Well, if some contributors are opposed to GPLV3 they’re not likely to assent to GPLV4.

Regards,
John Ralls


[1] https://pypi.python.org/pypi/bsddb3/6.0.1


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gramps and AGPL3

Helge.Herz-2
In reply to this post by Benny Malengier
Am 13.03.2014 21:31, schrieb Benny Malengier:
> We link to bsddb. Don't know why you compile it and not just download
> a lib, but that will be a windows issue I assume.
>
I don't want or need to compile it for Win too. But the AGPL3 issue just
pops up during the connection of bsddb3 to python 3: python setup.py
install (for the Pythonbsddb3 package).
- Helge


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gramps and AGPL3

John Ralls-2
In reply to this post by Benny Malengier

On Mar 13, 2014, at 2:05 PM, Benny Malengier <[hidden email]> wrote:




2014-03-13 21:58 GMT+01:00 John Ralls <[hidden email]>:

On Mar 13, 2014, at 1:31 PM, Benny Malengier <[hidden email]> wrote:

> We link to bsddb. Don't know why you compile it and not just download a lib, but that will be a windows issue I assume.

I was referring to the BSDDB3 [1] python module that wraps Berkeley DB, not to BerkeleyDB itself. This is the replacement for
>
> I am sad something like an OSS DB is not under LGPL. Bad play of Oracle. The python bindings are fortunately bsd 3 clause license.

Sleepycat always dual-licensed BerkeleyDB: Either GPL or commercial. Had they used LGPL they would have had trouble selling the commercial one. Oracle is mostly continuing that practice, just extending it a bit with the AGPL.

Some people seem to think this could be a real problem. See Debian list or https://community.oracle.com/message/11184885 were Oracle in the end does not reply.
Ross, as Debian guy, do you know what people think this would mean for Gramps? I assume python 2 would just remain with v5, but python 3 needs the module.

It seems indeed that this is a specific move of Oracle to undermine the use of berkeley db database ...
I wonder how fast we could move to the sqlite via the code present of Doug in the webserver.
Annoying development.


>
> We don't make a derivative, just use a database. So the viral nature of GPL should not be a problem here.Just set that flag and compile again.

We most certainly do make a derivative. Linking a shared library is making a derivative under the terms of the GPL. That’s why the LGPL exists, to relax that requirement. Not only that, but we’re redistributing Berkeley DB in the AIO bundles.

And both are real problems. Linux does say that using the API  is not infringement. But IANAL.


I was mistaken about the old license, which is a BSD license with the additional requirement that 
"Redistributions in any form must be accompanied by information on how to obtain complete source code for the DB software and any  accompanying software that uses the DB software."

Quite a bit simpler than the GPL but with the same basic requirements as the GPL, not the LGPL. The LGPL equivalent would leave off the bit about "and any accompanying software that uses the DB software".

There is another concern besides the web-service aspect of AGPL3, though: The patent-poisoning terms of GPL3 aren't included in the GPL2 license that we use, which is another potential issue for AIO bundles.

Aside from AIO bundles, though, it's not really a problem for us because we don't require db6: The API we use is under the old license, so GPL2 is OK.  There's no need to redesign the database to be relational. Don't Panic!


Regards,
John Ralls

------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel
Reply | Threaded
Open this post in threaded view
|

Re: Gramps and AGPL3

Benny Malengier



2014-03-14 5:07 GMT+01:00 John Ralls <[hidden email]>:

On Mar 13, 2014, at 2:05 PM, Benny Malengier <[hidden email]> wrote:




2014-03-13 21:58 GMT+01:00 John Ralls <[hidden email]>:

On Mar 13, 2014, at 1:31 PM, Benny Malengier <[hidden email]> wrote:

> We link to bsddb. Don't know why you compile it and not just download a lib, but that will be a windows issue I assume.

I was referring to the BSDDB3 [1] python module that wraps Berkeley DB, not to BerkeleyDB itself. This is the replacement for
>
> I am sad something like an OSS DB is not under LGPL. Bad play of Oracle. The python bindings are fortunately bsd 3 clause license.

Sleepycat always dual-licensed BerkeleyDB: Either GPL or commercial. Had they used LGPL they would have had trouble selling the commercial one. Oracle is mostly continuing that practice, just extending it a bit with the AGPL.

Some people seem to think this could be a real problem. See Debian list or https://community.oracle.com/message/11184885 were Oracle in the end does not reply.
Ross, as Debian guy, do you know what people think this would mean for Gramps? I assume python 2 would just remain with v5, but python 3 needs the module.

It seems indeed that this is a specific move of Oracle to undermine the use of berkeley db database ...
I wonder how fast we could move to the sqlite via the code present of Doug in the webserver.
Annoying development.


>
> We don't make a derivative, just use a database. So the viral nature of GPL should not be a problem here.Just set that flag and compile again.

We most certainly do make a derivative. Linking a shared library is making a derivative under the terms of the GPL. That’s why the LGPL exists, to relax that requirement. Not only that, but we’re redistributing Berkeley DB in the AIO bundles.

And both are real problems. Linux does say that using the API  is not infringement. But IANAL.


I was mistaken about the old license, which is a BSD license with the additional requirement that 
"Redistributions in any form must be accompanied by information on how to obtain complete source code for the DB software and any  accompanying software that uses the DB software."

Quite a bit simpler than the GPL but with the same basic requirements as the GPL, not the LGPL. The LGPL equivalent would leave off the bit about "and any accompanying software that uses the DB software".

There is another concern besides the web-service aspect of AGPL3, though: The patent-poisoning terms of GPL3 aren't included in the GPL2 license that we use, which is another potential issue for AIO bundles.

Aside from AIO bundles, though, it's not really a problem for us because we don't require db6: The API we use is under the old license, so GPL2 is OK.  There's no need to redesign the database to be relational. Don't Panic!

Doug does not store it relational. He stores the pickled data like we do in bsddb. So, I was not thinking about relational. I can only assume that using sql to store no-sql will have some penalty.

Ok, with sleep I see things clearer. I see that AGPL v3 and GPLv3 are compatible.
As Gramps is under GPLv2 or later, using db6 in essence means that it must be considered GPLv3 if db6 is present. So there is no problem for Gramps, the problem is for all code that is not GPLv2 or later.

Nevertheless, Oracle changing the license like this is not a good sign, who knows what they do later. The main problem is that a lot of projects will move to another backend due to this, and then db will see less testing/support, and we know where that may lead. Nevertheless, no worries for now. We keep our code GPLv2 or later, and should bsd db ever not be used anymore, we effectively be GPLv2 or later again

Benny




Regards,
John Ralls


------------------------------------------------------------------------------
Learn Graph Databases - Download FREE O'Reilly Book
"Graph Databases" is the definitive new guide to graph databases and their
applications. Written by three acclaimed leaders in the field,
this first edition is now available. Download your free book today!
http://p.sf.net/sfu/13534_NeoTech
_______________________________________________
Gramps-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gramps-devel