[GeoNetwork-devel] CFV: Z3950 improvements and SRU support

Dear PSC members,

A proposal to upgrade Z3950 support in GeoNetwork trunk (2.5 Unstable) is available at:

http://trac.osgeo.org/geonetwork/wiki/Z3950_sru_improvements

Very brief summary of improvements:

- overhaul Z code
- add SRU (search/retrieval via URL) support
- use JZKit version 3.0.1 (move from old JZKit 1)
- add Z3950 harvesting
- new Z3950 server enhancements (such as mapping between Z collection name and GeoNetwork category name and delivery of results in HTML)

No patch attached but all functions are in the BlueNetMEST sandbox. The proposal work has been done by Timo Proescholdt (WMO) and Simon Pigot (CSIRO) but thanks to Francois for the preliminary work done on the Z3950 harvester.

Cheers,
Simon

Dear Simon,
Great to see progress on the z3950 aspects of GeoNetwork!

+1 from me

Ciao,
Jeroen

On 29 apr 2010, at 13:16, <Simon.Pigot@anonymised.com> wrote:

Dear PSC members,

A proposal to upgrade Z3950 support in GeoNetwork trunk (2.5 Unstable) is available at:

Z3950_sru_improvements – GeoNetwork opensource Developer website

Very brief summary of improvements:

- overhaul Z code
- add SRU (search/retrieval via URL) support
- use JZKit version 3.0.1 (move from old JZKit 1)
- add Z3950 harvesting
- new Z3950 server enhancements (such as mapping between Z collection name and GeoNetwork category name and delivery of results in HTML)

No patch attached but all functions are in the BlueNetMEST sandbox. The proposal work has been done by Timo Proescholdt (WMO) and Simon Pigot (CSIRO) but thanks to Francois for the preliminary work done on the Z3950 harvester.

Cheers,
Simon

------------------------------------------------------------------------------
_______________________________________________
GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Great Simon!
+1 from me!

ciao,
Mathieu

On Thu, Apr 29, 2010 at 1:16 PM, Simon.Pigot@anonymised.com wrote:

Dear PSC members,

A proposal to upgrade Z3950 support in GeoNetwork trunk (2.5 Unstable) is available at:

http://trac.osgeo.org/geonetwork/wiki/Z3950_sru_improvements

Very brief summary of improvements:

  • overhaul Z code
  • add SRU (search/retrieval via URL) support
  • use JZKit version 3.0.1 (move from old JZKit 1)
  • add Z3950 harvesting
  • new Z3950 server enhancements (such as mapping between Z collection name and GeoNetwork category name and delivery of results in HTML)

No patch attached but all functions are in the BlueNetMEST sandbox. The proposal work has been done by Timo Proescholdt (WMO) and Simon Pigot (CSIRO) but thanks to Francois for the preliminary work done on the Z3950 harvester.

Cheers,
Simon



GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at http://sourceforge.net/projects/geonetwork

Simon.Pigot@anonymised.com wrote:

A proposal to upgrade Z3950 support in GeoNetwork trunk (2.5 Unstable) is available at:

http://trac.osgeo.org/geonetwork/wiki/Z3950_sru_improvements

- use JZKit version 3.0.1 (move from old JZKit 1)

I repeat my previous concerns:

JZKit 3 is issued under a licence not previously
used by GeoNetwork - I think some care is required
when this sort of thing happens.

BlueNetMEST doesn't use JZKit 3.0.1, it uses
"jzkit_core-3.0.1-SNAPSHOT.jar" etc. -
i.e., whatever version that is.

Since the filename is not a reliable guide
to version numbers, please provide a way of
getting the corresponding source code to these
three JARs - either by specifying the JZKit revision(s)
or, which would be much better, by checking in the
source - otherwise it is hard
to see how you (or anyone associated with GeoNetwork)
could comply (or be seen to be complying) with the licence's
requirement to provide source code.

In fact the same goes for the other LGPL/GPL
libraries, but at least they have reliable
version numbers in the filenames and it
is (usually, though not always) straightforward
to track down source code for them.

I note the comment on the proposal page
"sourcecode is not even longer officially available".
Well, I have a copy of the source code, FWIW, and
no doubt others do too, but we should be vigilant
about making sure that source code to the libraries
used in GeoNetwork is always available, not least
because this may be a requirement of their licences.

And, perhaps most important of all:
is there any evaluation of what has
come out of this effort to switch to JZKit 3?
Is Z39.50 searching now more robust?
Could the other Z39.50 improvements have been
made without switching JZKit versions?

--
Richard Walker
Software Improvements Pty Ltd
Phone: +61 2 6273 2055
Fax: +61 2 6273 2082

Software Improvements gn-devel wrote:

<snip>
I repeat my previous concerns:

JZKit 3 is issued under a licence not previously
used by GeoNetwork - I think some care is required
when this sort of thing happens.

BlueNetMEST doesn't use JZKit 3.0.1, it uses
"jzkit_core-3.0.1-SNAPSHOT.jar" etc. -
i.e., whatever version that is.

Since the filename is not a reliable guide
to version numbers, please provide a way of
getting the corresponding source code to these
three JARs - either by specifying the JZKit revision(s)
or, which would be much better, by checking in the
source - otherwise it is hard
to see how you (or anyone associated with GeoNetwork)
could comply (or be seen to be complying) with the licence's
requirement to provide source code.
  

jzkit3 is latest rev (260) from jzkit svn repository (http://developer.k-int.com/svn/jzkit/jzkit3/trunk/) plus changes to 8 files that may or may not be bugs/needed (these are my changes, Timo has been assiduous in making sure Ian Ibbotson and thus the jzkit3 repository has been kept up to date with changes - my changes have diminished to just 8 files from the 1300 odd in the release). If these can't be resolved before commit then I suggest we keep a patch file containing these differences and a zip archive of the appropriate svn rev of the jzkit code in the GeoNetwork repository until these changes has been clarified and they go away (this would satisfy the definition of 'Corresponding Source' in section 1 of the jzkit license).

In fact the same goes for the other LGPL/GPL
libraries, but at least they have reliable
version numbers in the filenames and it
is (usually, though not always) straightforward
to track down source code for them.

I note the comment on the proposal page
"sourcecode is not even longer officially available".
Well, I have a copy of the source code, FWIW, and
no doubt others do too, but we should be vigilant
about making sure that source code to the libraries
used in GeoNetwork is always available, not least
because this may be a requirement of their licences.

Yes - but is it the source code for the actual jzkit1 jars in use in GeoNetwork? (From memory, I think not). However, I agree (and any uncertainty over the jzkit1 jars just reinforces the case anyway) that we should have source available (as mentioned above) if we are forced (reluctantly) to make mods to jars that we use from other sources.

And, perhaps most important of all:
is there any evaluation of what has
come out of this effort to switch to JZKit 3?
Is Z39.50 searching now more robust?
Could the other Z39.50 improvements have been
made without switching JZKit versions?

Well, a few things have come out of this effort: SRU support (which probably couldn't have been done without jzkit3) and coincidentally moving a few new Z features to trunk from the BlueNetMEST - which worked with the old jzkit1-whatever jars and now work under jzkit3 but were more fun and educational to add to trunk with a new and known version of the jzkit source to look at :-).

Obviously more evaluation is great which leads to the 2.5 unstable to 2.6 stable transition for GeoNetwork. This transition is a good opportunity to track down issues/do evaluations and anything that comes out of that (I think) will have a much better chance of being fixed now that we're using a version of JZKit under active development. I hope you (and others) will have time to be able to provide more feedback, evaluation & contributions during the unstable to stable transition!

Cheers,
Simon

Simon Pigot wrote:

jzkit3 is latest rev (260) from jzkit svn repository (http://developer.k-int.com/svn/jzkit/jzkit3/trunk/) plus changes to 8 files that may or may not be bugs/needed (these are my changes, Timo has been assiduous in making sure Ian Ibbotson and thus the jzkit3 repository has been kept up to date with changes - my changes have diminished to just 8 files from the 1300 odd in the release). If these can't be resolved before commit then I suggest we keep a patch file containing these differences and a zip archive of the appropriate svn rev of the jzkit code in the GeoNetwork repository until these changes has been clarified and they go away (this would satisfy the definition of 'Corresponding Source' in section 1 of the jzkit license).

So IIUC one or more of the jzkit JARs
(jzkit_core-3.0.1-SNAPSHOT.jar, etc.) are not
built _only_ from the original source.

If so, then since it seems (to me) you are "conveying"
the software by checking it in to sourceforge,
to meet the licence requirements you must also:
1. Check in the modified source code, or do something
    equivalent (section 6 of the licence)
2. Make the modified source code available _from
    within the BlueNetMEST interface_ via a visible
    "Source" link or similar (section 13 of the licence
    as clarified by the second-last paragraph of
    the "How to apply ..." section)

But I'm still having a hard time getting
my head around how it is even legal to
link a library covered by AGPL without
AGPL applying to the whole thing.
AGPL is GPL++, not LGPL++.

Well, a few things have come out of this effort: SRU support (which probably couldn't have been done without jzkit3) and coincidentally moving a few new Z features to trunk from the BlueNetMEST - which worked with the old jzkit1-whatever jars and now work under jzkit3 but were more fun and educational to add to trunk with a new and known version of the jzkit source to look at :-).

So a definite maybe, then? :slight_smile:

--
Richard Walker
Software Improvements Pty Ltd
Phone: +61 2 6273 2055
Fax: +61 2 6273 2082

Richard,

On 5/3/2010 2:21 AM, Software Improvements gn-devel wrote:

But I'm still having a hard time getting
my head around how it is even legal to
link a library covered by AGPL without
AGPL applying to the whole thing.
AGPL is GPL++, not LGPL++.

did you get my email from 15/2/2010 regarding compatibility
between AGPL and GPL? I discussed the subject in it, answering the
issues you are raising and did not get any reply at the time.

So IIUC one or more of the jzkit JARs
(jzkit_core-3.0.1-SNAPSHOT.jar, etc.) are not
built _only_ from the original source.

If so, then since it seems (to me) you are "conveying"
the software by checking it in to sourceforge,
to meet the licence requirements you must also:
1. Check in the modified source code, or do something
     equivalent (section 6 of the licence)
2. Make the modified source code available _from
     within the BlueNetMEST interface_ via a visible
     "Source" link or similar (section 13 of the licence
     as clarified by the second-last paragraph of
     the "How to apply ..." section)

I'm not sure how familiar you are with the AGPL. I cannot claim
to be an expert, but to me it seems that the AGPL is all about "making
available network services" using a AGPL covered software. By checking in the binary Simon is not making available a network service.
It would be the responsibility of whoever RUNS the sandbox code PUBLICLY to make available the corresponding code.

Since we are working on merging Simons patches into the jzkit trunk I dont see a big issue here. As soon as they are in everybody can run
BlueMestNet code, before you'd have to make available the code to whoever accesses your installation.

best regards
Timo

Well, a few things have come out of this effort: SRU support (which
probably couldn't have been done without jzkit3) and coincidentally
moving a few new Z features to trunk from the BlueNetMEST - which worked
with the old jzkit1-whatever jars and now work under jzkit3 but were
more fun and educational to add to trunk with a new and known version of
the jzkit source to look at :-).

So a definite maybe, then? :slight_smile:

+1!

   Ciao,
   Emanuele

Alle 13:16:01 di giovedì 29 aprile 2010, Simon.Pigot@anonymised.com ha scritto:

Dear PSC members,

A proposal to upgrade Z3950 support in GeoNetwork trunk (2.5 Unstable) is
available at:

http://trac.osgeo.org/geonetwork/wiki/Z3950_sru_improvements

Very brief summary of improvements:

- overhaul Z code
- add SRU (search/retrieval via URL) support
- use JZKit version 3.0.1 (move from old JZKit 1)
- add Z3950 harvesting
- new Z3950 server enhancements (such as mapping between Z collection name
and GeoNetwork category name and delivery of results in HTML)

No patch attached but all functions are in the BlueNetMEST sandbox. The
proposal work has been done by Timo Proescholdt (WMO) and Simon Pigot
(CSIRO) but thanks to Francois for the preliminary work done on the Z3950
harvester.

Cheers,
Simon

---------------------------------------------------------------------------
--- _______________________________________________
GeoNetwork-devel mailing list
GeoNetwork-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geonetwork-devel
GeoNetwork OpenSource is maintained at
http://sourceforge.net/projects/geonetwork

I think I need to clarify my position.

What I _want_ to be able to do is:
1. Raise a glass to you and Simon, toast you saying,
     "Bravo! Job well done! However did you manage it?",
     give you three cheers and a pat on the back,
     etc. etc.
2. Breathe a sigh of relief that there can not ever be
     any lawsuits, irrespective of whatever (considerable)
     goodwill there currently is.

I have been trying to make sure that I can do (2) before
I do (1). I think I am close, but not there yet.
I freely concede that it is possible that what
I want is unreasonable, irrational, or even that I am plain
wrong in regards to the facts - in which case,
I hope someone will let me know.

Or perhaps I should just concede, skip (2) and go
straight to (1).

But you have now brought us back to the bigger issue you raised
earlier and which I missed at the time. I treat that
issue separately below after the "==========".

Timo Pröscholdt wrote:
> did you get my email from 15/2/2010 regarding compatibility
> between AGPL and GPL? I discussed the subject in it, answering the
> issues you are raising and did not get any reply at the time.

Well, that's not _completely_ fair. (Just a little bit).

In your e-mail of 2010-02-15 (which I certainly did read at the time)
you wrote:
> I checked this before working with JZKit3 and I did not consider it an
> issue, since it is all about code modification. If the AGPL code was
> modified, this would be a different issue, but we only link to it.
...
and on 2010-02-16 you wrote:
> Where it gets problematic is if we took sourcecode from AGPL copylefted
> JZKit, modified it and included it into the geonetwork source.

At the time I saw no indication that any modifications
to the JZKit code were required. I also accepted (with reservations)
your statements about how the AGPL would not spread to other
parts of the GN code.

But we're now in a situation where the JZKit code _has_ been
modified and the modified code has been "conveyed" in the sense
of the AGPL.

> I'm not sure how familiar you are with the AGPL. I cannot claim
> to be an expert, but to me it seems that the AGPL is all about "making
> available network services" using a AGPL covered software. By checking
> in the binary Simon is not making available a network service.
> It would be the responsibility of whoever RUNS the sandbox code PUBLICLY
> to make available the corresponding code.

But that's not what the licence _says_!

Clause 13 says "... if you modify the Program, your modified version
must prominently offer all users interacting with it remotely through
a computer network (if your version supports such interaction) an
opportunity to receive the Corresponding Source of your version by
providing access to the Corresponding Source from a network server at no
charge, through some standard or customary means of facilitating copying
of software."

The licence thus places responsibility for compliance on the person(s)
_modifying_ the software. That _may_ also apply to someone who
merely _deploys_ the previously-modified software (depending
on how the definition of "modify" given in the licence is
interpreted - it is not crystal clear to me),
but it certainly does not _exclude_ the
person(s) making the change(s) to the code in the first place.

I do find the wording of clause 13 very strange, especially
the part that refers to making available the source code to linked
libraries covered by GPL. Nevertheless, the responsibility for
compliance is placed squarely on the shoulders of
person(s) _modifying_ the software.

This particular issue is a storm in a teacup, isn't it?
Compliance in this case would be very easy to achieve, and
the licence leaves a lot of flexibility. I imagine it could be done by
adding a paragraph of instructions to the "About" page describing
how to download the source code from sourceforge, or it could
be a direct link to a zip file, or by some other means that achieves
the same result.

> Since we are working on merging Simons patches into the jzkit trunk I
> dont see a big issue here. As soon as they are in everybody can run
> BlueMestNet code, before you'd have to make available the code to
> whoever accesses your installation.

I accept that you offer that explanation in all sincerity,
but it's hard to accept such a line of argument in this case
without knowing the process and timeframe for it to happen.

This is a case of an open-source project using open-source libraries,
and I think this is _precisely_ where the community has to be
_seen_ to be taking compliance seriously if we expect the
"big companies" also to take it seriously.

==========

And now to the point from your e-mail of 2010-02-16 which I
didn't respond to previously but which now needs some community
discussion:

> AFAIK Geonetwork is GPL v2. Is GPL v2 compatible with GPL v3? Not in
> general, but since in GN it says "“version 2 or later,”, we should be safe.
> http://www.fsf.org/licensing/licenses/gpl-faq.html#v2v3Compatibility
>
> I think this is the sticky point. If this provision holds we are ok,
> otherwise we might have to think about making GN GPL v3 or using a non
> AGPL jzkit version (see below).

The GN source code does have comments saying GPLv2 or
"any later version".

It does appear to me that it will be necessary to change the
GN licence to GPLv3. JZKit3 is, in effect, under GPLv3
(plus Affero clause) and the corresponding box in the table
(row "I want to use a library under: GPLv3",
column "I want to release a project under: GPLv2 or later")
says "OK if you upgrade to GPLv3".

But that's not the end of the story - upgrading the GN
licence to GPLv3 might make it _not_ OK to link with
any other libraries released _only_ under GPLv2.
(See the entry in
row "I want to use a library under: GPLv2 only",
column "I want to release a project under: GPLv3 or later",
which says "NO".)
Are there any such libraries in GN?

--
Richard Walker
Software Improvements Pty Ltd
Phone: +61 2 6273 2055
Fax: +61 2 6273 2082

It sounded to me like the operative phrase was along the lines of having the source available if one “modifies the program.” From what I can tell, Tim is linking to the unmodified libraries within GN and therefore it is not an issue. If it were, I still don’t appreciate the nuances of various forms of GPL since they are public licenses and are there to encourage re-use not to inhibit it.

Doug.

Douglas D. Nebert, FGDC Secretariat,
t: +1 703 648 4151 f: +1 703 648-5755

On 5/4/2010 8:56 AM, Software Improvements gn-devel wrote:

I think I need to clarify my position.

thanks Richard,

my eagerness to raise and above all empty my glass with you, and everybody else involved in this, is increasing as this thread grows.

In order not to have too much hangover, I hope that we can finish
this soon, though.

Basically you have two concerns.

The first one concerns the uploading of a binary form of a AGPL covered work to the svn repository.
This is discussed in paragraph 6 of the APGL. Various means exist to provide access to the original source.
The best way would probably be a upload the source to some server and
add a note to GN pointing out where it can be downloaded as a shortime fix till the patches are in the jzkit trunk.

I want to point out that GN does not become part of JZKIT in the sense of the AGPL by publishing the sourcecode along with GN, since it would not be one compilation unit.

As you write, we are or can can become compliant easily.

Your second point concerns the compatibility of AGPL and GPL.

The compatibility of AGPL with the GPL does not depend on whether
the AGPL programm has been modified or not, since it stays AGPL anyway.
So if you agreed (reluctantly) at the time, you should still be agreeing (reluctantly of course (-: ).

However, it is true that the GN license status is not clear. It says
GPLv2 or any more recent one, which made me assume that it is basically also GPLv3 and thus compatible with AGPL.

I then pondered identity problems of the sort if Geonetwork could be too things at the same time. Although not (yet) being a philosopher I came to the conclusion that such schizophrenia would be possible, provided that there was no library in the source being only compatible with GPLv2.

I thus embarked on a seemingly endless journey through library sourecodes, checking the license status of the libraries contained in the trunk, of which I would everybody like to invite to check the result in the attached file.
The ones of which I could find out the status are all compatible to GPLv3. (under the conditions below)

There are some BSD style licenses. The original BDS license is not compatible to any GPL, but nowadays a modified version is used and compatible. Since they seem to have been compatible with GPLv2 they are then also compatible with v3.

Then there are some other licenses, which basically say you can do anything as long as the copyright stays in. I assume that these are
ok for v3 if they were ok with v2, since there is no explicit mention of the GPL.

Libs worth checking might be:

cog-jblobus-1.2 (license change from GTPL to apache)
and all stuff coming from sun/oracle like (jsr*,jts,persistence)

I could not find out anything about:

xsd-2.2.2.jar
ecore-2.2.2.jar
gt-*.jar

can someone help?

let us know what you think.
best regards
Timo

  What I _want_ to be able to do is:

1. Raise a glass to you and Simon, toast you saying,
      "Bravo! Job well done! However did you manage it?",
      give you three cheers and a pat on the back,
      etc. etc.
2. Breathe a sigh of relief that there can not ever be
      any lawsuits, irrespective of whatever (considerable)
      goodwill there currently is.

I have been trying to make sure that I can do (2) before
I do (1). I think I am close, but not there yet.
I freely concede that it is possible that what
I want is unreasonable, irrational, or even that I am plain
wrong in regards to the facts - in which case,
I hope someone will let me know.

Or perhaps I should just concede, skip (2) and go
straight to (1).

But you have now brought us back to the bigger issue you raised
earlier and which I missed at the time. I treat that
issue separately below after the "==========".

Timo Pröscholdt wrote:
  > did you get my email from 15/2/2010 regarding compatibility
  > between AGPL and GPL? I discussed the subject in it, answering the
  > issues you are raising and did not get any reply at the time.

Well, that's not _completely_ fair. (Just a little bit).

In your e-mail of 2010-02-15 (which I certainly did read at the time)
you wrote:
  > I checked this before working with JZKit3 and I did not consider it an
  > issue, since it is all about code modification. If the AGPL code was
  > modified, this would be a different issue, but we only link to it.
...
and on 2010-02-16 you wrote:
  > Where it gets problematic is if we took sourcecode from AGPL copylefted
  > JZKit, modified it and included it into the geonetwork source.

At the time I saw no indication that any modifications
to the JZKit code were required. I also accepted (with reservations)
your statements about how the AGPL would not spread to other
parts of the GN code.

But we're now in a situation where the JZKit code _has_ been
modified and the modified code has been "conveyed" in the sense
of the AGPL.

  > I'm not sure how familiar you are with the AGPL. I cannot claim
  > to be an expert, but to me it seems that the AGPL is all about "making
  > available network services" using a AGPL covered software. By checking
  > in the binary Simon is not making available a network service.
  > It would be the responsibility of whoever RUNS the sandbox code PUBLICLY
  > to make available the corresponding code.

But that's not what the licence _says_!

Clause 13 says "... if you modify the Program, your modified version
must prominently offer all users interacting with it remotely through
a computer network (if your version supports such interaction) an
opportunity to receive the Corresponding Source of your version by
providing access to the Corresponding Source from a network server at no
charge, through some standard or customary means of facilitating copying
of software."

The licence thus places responsibility for compliance on the person(s)
_modifying_ the software. That _may_ also apply to someone who
merely _deploys_ the previously-modified software (depending
on how the definition of "modify" given in the licence is
interpreted - it is not crystal clear to me),
but it certainly does not _exclude_ the
person(s) making the change(s) to the code in the first place.

I do find the wording of clause 13 very strange, especially
the part that refers to making available the source code to linked
libraries covered by GPL. Nevertheless, the responsibility for
compliance is placed squarely on the shoulders of
person(s) _modifying_ the software.

This particular issue is a storm in a teacup, isn't it?
Compliance in this case would be very easy to achieve, and
the licence leaves a lot of flexibility. I imagine it could be done by
adding a paragraph of instructions to the "About" page describing
how to download the source code from sourceforge, or it could
be a direct link to a zip file, or by some other means that achieves
the same result.

  > Since we are working on merging Simons patches into the jzkit trunk I
  > dont see a big issue here. As soon as they are in everybody can run
  > BlueMestNet code, before you'd have to make available the code to
  > whoever accesses your installation.

I accept that you offer that explanation in all sincerity,
but it's hard to accept such a line of argument in this case
without knowing the process and timeframe for it to happen.

This is a case of an open-source project using open-source libraries,
and I think this is _precisely_ where the community has to be
_seen_ to be taking compliance seriously if we expect the
"big companies" also to take it seriously.

==========

And now to the point from your e-mail of 2010-02-16 which I
didn't respond to previously but which now needs some community
discussion:

  > AFAIK Geonetwork is GPL v2. Is GPL v2 compatible with GPL v3? Not in
  > general, but since in GN it says "“version 2 or later,”, we should be
safe.
  > http://www.fsf.org/licensing/licenses/gpl-faq.html#v2v3Compatibility
  >
  > I think this is the sticky point. If this provision holds we are ok,
  > otherwise we might have to think about making GN GPL v3 or using a non
  > AGPL jzkit version (see below).

The GN source code does have comments saying GPLv2 or
"any later version".

It does appear to me that it will be necessary to change the
GN licence to GPLv3. JZKit3 is, in effect, under GPLv3
(plus Affero clause) and the corresponding box in the table
(row "I want to use a library under: GPLv3",
column "I want to release a project under: GPLv2 or later")
says "OK if you upgrade to GPLv3".

But that's not the end of the story - upgrading the GN
licence to GPLv3 might make it _not_ OK to link with
any other libraries released _only_ under GPLv2.
(See the entry in
row "I want to use a library under: GPLv2 only",
column "I want to release a project under: GPLv3 or later",
which says "NO".)
Are there any such libraries in GN?

(attachments)

licenses.txt (2.36 KB)

Timo Pröscholdt wrote:

Basically you have two concerns.

The first one concerns the uploading of a binary form of a AGPL covered work to the svn repository.
This is discussed in paragraph 6 of the APGL. Various means exist to provide access to the original source.
The best way would probably be a upload the source to some server and
add a note to GN pointing out where it can be downloaded as a shortime fix till the patches are in the jzkit trunk.

Seems perfectly reasonable.

I want to point out that GN does not become part of JZKIT in the sense of the AGPL by publishing the sourcecode along with GN, since it would not be one compilation unit.

Certainly.

As you write, we are or can can become compliant easily.

Yes, but only because of the meaning of "or".
My claim was that the second branch of the disjunction is true, but
that the first is false.

Your second point concerns the compatibility of AGPL and GPL.

The compatibility of AGPL with the GPL does not depend on whether
the AGPL programm has been modified or not, since it stays AGPL anyway.
So if you agreed (reluctantly) at the time, you should still be agreeing (reluctantly of course (-: ).

Agreed. The compatibility _or incompatibility_ is unchanged.

However, it is true that the GN license status is not clear. It says
GPLv2 or any more recent one, which made me assume that it is basically also GPLv3 and thus compatible with AGPL.

I then pondered identity problems of the sort if Geonetwork could be too things at the same time. Although not (yet) being a philosopher I came to the conclusion that such schizophrenia would be possible, provided that there was no library in the source being only compatible with GPLv2.

This was also my conclusion.

I thus embarked on a seemingly endless journey through library sourecodes, checking the license status of the libraries contained in the trunk, of which I would everybody like to invite to check the result in the attached file.
The ones of which I could find out the status are all compatible to GPLv3. (under the conditions below)

There are some BSD style licenses. The original BDS license is not compatible to any GPL, but nowadays a modified version is used and compatible. Since they seem to have been compatible with GPLv2 they are then also compatible with v3.

Then there are some other licenses, which basically say you can do anything as long as the copyright stays in. I assume that these are
ok for v3 if they were ok with v2, since there is no explicit mention of the GPL.

Libs worth checking might be:

cog-jblobus-1.2 (license change from GTPL to apache)
and all stuff coming from sun/oracle like (jsr*,jts,persistence)

I could not find out anything about:

xsd-2.2.2.jar
ecore-2.2.2.jar
gt-*.jar

can someone help?

let us know what you think.

I think this is exactly the sort of analysis that needs
to be completed.

The information at:
http://wiki.osgeo.org/index.php/GeoNetwork_Provenance_Review
http://wiki.osgeo.org/wiki/GeoNetwork_Library_Review
should be updated whenever a library is added/updated.
Unfortunately, these documents have not been updated
since GN completed incubation.

The libraries you mention (xsd, ecore, gt-*) were checked
in in revision 2726 ("CSW 2.0.2 major improvements").

The gt-* JARs are from geotools. They are LGPL 2.1.

The xsd and ecore libraries are
from the Eclipse project and are subject to the Eclipse
licence.

For example, xsd-2.2.2.jar is a renamed copy
of:
org.eclipse.xsd_2.2.2.v200702131851.jar

See http://www.eclipse.org/legal/eplfaq.php
question 32.
"32. Are the Eclipse Public License (EPL) and the General Public License (GPL) compatible?
The EPL and the GPL are not compatible in any combination where the result would be considered either: (a) a #derivative work# (which Eclipse interprets consistent with the definition of that term in the U.S. Copyright Act ) or (b) a work #based on# the GPL code, as that phrase is used in the GPLv2, GPLv3 or the GPL FAQ as applicable. Further, you may not combine EPL and GPL code in any scenario where source code under those licenses are both the same source code module.

Based upon the position of the Free Software Foundation, you may not combine EPL and GPL code in any scenario where linking exists between code made available under those licenses. The above applies to both GPL version 2 and GPL version 3."

Wow! What does this mean for the CSW stuff?

--
Richard Walker
Software Improvements Pty Ltd
Phone: +61 2 6273 2055
Fax: +61 2 6273 2082

Software Improvements gn-devel wrote:

[snip]

The libraries you mention (xsd, ecore, gt-*) were checked
in in revision 2726 ("CSW 2.0.2 major improvements").

The gt-* JARs are from geotools. They are LGPL 2.1.

The xsd and ecore libraries are
from the Eclipse project and are subject to the Eclipse
licence.

For example, xsd-2.2.2.jar is a renamed copy
of:
org.eclipse.xsd_2.2.2.v200702131851.jar

See Eclipse Public License 1.0 (EPL) Frequently Asked Questions | The Eclipse Foundation
question 32.
"32. Are the Eclipse Public License (EPL) and the General Public License (GPL) compatible?
The EPL and the GPL are not compatible in any combination where the result would be considered either: (a) a #derivative work# (which Eclipse interprets consistent with the definition of that term in the U.S. Copyright Act ) or (b) a work #based on# the GPL code, as that phrase is used in the GPLv2, GPLv3 or the GPL FAQ as applicable. Further, you may not combine EPL and GPL code in any scenario where source code under those licenses are both the same source code module.

Based upon the position of the Free Software Foundation, you may not combine EPL and GPL code in any scenario where linking exists between code made available under those licenses. The above applies to both GPL version 2 and GPL version 3."

Wow! What does this mean for the CSW stuff?

Whatever it means for the CSW stuff, it will also mean for much bigger projects like GeoServer (also GPLv2 - http://geoserver.org/display/GEOS/License - and also distributing the eclipse jars through its use of geotools) and anything else out there that links geotools (since the xsd and other eclipse jars are a dependency introduced by geotools) - so at least we won't have to solve this incompatibility on our own!

Cheers,
Simon

On 5/7/2010 6:40 AM, Software Improvements gn-devel wrote:

Timo Pröscholdt wrote:

Basically you have two concerns.

The information at:
http://wiki.osgeo.org/index.php/GeoNetwork_Provenance_Review
http://wiki.osgeo.org/wiki/GeoNetwork_Library_Review
should be updated whenever a library is added/updated.
Unfortunately, these documents have not been updated
since GN completed incubation.

I agree that updating it would have been useful. Should we use
my document to bring it up to date?

The libraries you mention (xsd, ecore, gt-*) were checked
in in revision 2726 ("CSW 2.0.2 major improvements").

The gt-* JARs are from geotools. They are LGPL 2.1.

The xsd and ecore libraries are
from the Eclipse project and are subject to the Eclipse
licence.

I think the answer is in paragraph 3 of the EPL.
(http://www.eclipse.org/legal/epl-v10.html)

Basically you can distribute the object code of a EPL covered work under your own license (which would be GPLv2 and v3 compatible). There are some provisions, but my reading is that they should be ok. Can someone confirm that?

Not only am I becoming a philosopher but also increasingly a lawyer it seems.. high time to go into the weekend.
Timo

Simon wrote:

Whatever it means for the CSW stuff, it will also mean for much bigger projects like GeoServer (also GPLv2 - http://geoserver.org/display/GEOS/License - and also distributing the eclipse jars through its use of geotools) and anything else out there that links geotools (since the xsd and other eclipse jars are a dependency introduced by geotools) - so at least we won't have to solve this incompatibility on our own!

Yes, it seems the Geotools people have been avoiding dealing with
this too:
http://docs.codehaus.org/display/GEOTOOLS/Licenses+Investigation

Timo Pröscholdt wrote:

The information at:
http://wiki.osgeo.org/index.php/GeoNetwork_Provenance_Review
http://wiki.osgeo.org/wiki/GeoNetwork_Library_Review
should be updated whenever a library is added/updated.
Unfortunately, these documents have not been updated
since GN completed incubation.

I agree that updating it would have been useful. Should we use
my document to bring it up to date?

(Well, you shouldn't have to, in the case of JARs that other
people are responsible for uploading - they should already
have done that themselves.)

I am sure your efforts will be greatly appreciated by
the GN community.

I think the answer is in paragraph 3 of the EPL.
(http://www.eclipse.org/legal/epl-v10.html)

Basically you can distribute the object code of a EPL covered work under your own license (which would be GPLv2 and v3 compatible). There are some provisions, but my reading is that they should be ok. Can someone confirm that?

No, I already quoted the Eclipse Project's own FAQ in which
_they themselves_ say that the EPL is _not_ compatible
with the GPL.
The "problem" seems to be the EPL's conditions relating
to patents.

Here's another example from the Eclipse side:
http://dev.eclipse.org/blogs/mike/2010/04/06/epl-gpl-commentary/
"The EPL and the GPL are inherently incompatible licenses. That is the position of both the Free Software Foundation and the Eclipse Foundation. In preparing this we consulted with the FSF to make sure we fully understood their interpretation of the GPL and how it interacts with the EPL. You may not link GPL and EPL code together and distribute the result. It doesn#t matter if the linking is dynamic, static or whatever. This bears repeating: if you or your organization are distributing EPL and GPL licensed code linked together into a single program you are almost certainly violating both the EPL and the GPL."

And another example from the FSF side:
http://www.fsf.org/blogs/licensing/using-the-gpl-for-eclipse-plug-ins
"The first thing to understand is that the GNU GPL and the Eclipse Public License (EPL) are incompatible. This means that if you create a work that contains code released under both licenses, it's not possible to satisfy the conditions of both those licenses simultaneously. The reason the EPL specifically is GPL-incompatible is because it has its own copyleft terms#they're not as strong as the GPL's, but strong enough that there's a conflict between the two. If you try to release a piece of software with code under both these licenses, you will end up violating one license or the other."

This second page explains how to "get around" the limitation,
but it involves getting special permission from all the
copyright holders of the GPL-covered libraries.

The other way around seems to be requiring that users
download the GPL and EPL parts _separately_.
Then the combination is not being
"distributed" ("conveyed" in GPLv3 terms).

Neither of these approaches seems particularly attractive.

--
Richard Walker
Software Improvements Pty Ltd
Phone: +61 2 6273 2055
Fax: +61 2 6273 2082