Navigation plugin - first go

Yes, i put both you (2006,2007) and Marcus in the navigate.cpp/h files
for copyright.

(Wed, Mar 21, 2007 at 02:53:45PM +0100) Benoit Jacob jacob@math.jussieu.fr:

Many thanks Marcus, I’ll try it tonight.

The copyright question that you raise is interesting, I’d like to know
Donald’s opinion on it. Meanwhile, I think it’s safe to say that
the copyright on a file goes to whoever made a serious contribution to it.
For instance, in the case of navigate.cpp, the copyright would go to you
(for writing this file) and me (for writing the original kalzium
implementation). However there are other possible policies and I think
this deserves discussion. What’s for sure is that any serious contribution
must be duly acknowledged, and I think the best place to acknowledge it is
in the source file itself. What can be discussed is whether this
acknowledgement must necessarily take the form of a copyright line.

Cheers,
Benoit

On Wed, 21 Mar 2007, Marcus D. Hanwell wrote:

Hi guys,

Please find attached three files - they all belong in avogadro/plugins and
they are for the navigation plugin that has ported the code from kalzium
and
then added a little from the select rotate tool. I haven’t touched the
copyright - wasn’t sure what should go in there.

I am not used to working with source files with people’s names in. The
code is
derived from SelectRotate with Benoit’s navigation code from Kalzium ported
across. Then I got it all working. I am pretty happy as I feel much more
familiar with the code and have made my first plugin.

I have split the actions into atom clicked, or atom not clicked. If an
atom is
clicked then the left and middle buttons perform atom centred navigation.
If
not then it is normal molecule centered. I would appreciate your thoughts
on
it - I really like it and this is pretty much how I would like to navigate
around a molecule.

Left button rotates, middle button zooms in/out and right button tranlates
in
plane. The mouse wheel zooms in and out too. Benoit and I discussed using
modifiers for people who do not have three mouse buttons.

Thanks,

Marcus

QT4 OpenSource edition is licensed under the GPL and since this is the
case our code (library and all) must be licensed under that same
license:


http://www.gnu.org/licenses/gpl-faq.html#LinkingWithGPL
You have a GPL’ed program that I’d like to link with my code to build a
proprietary program. Does the fact that I link with your program mean I
have to GPL my program?

Yes.

So i think that answers our question.

(Wed, Mar 21, 2007 at 02:18:38PM +0000) “Marcus D. Hanwell” m.hanwell@shef.ac.uk:

I am with Benoit on this - any free licence is fine. I favour LGPL/BSD for
libraries and GPL for programs. I think Qt makes certain requirements when
you use the open source edition too. Mainly I would like to be acknowledged
and trust you guys to be fair. The copyright in the files I find a little
confusing but once I know the rules and conventions I am sure it will be no
problem.

On Wed, 21 Mar 2007, Donald Ephraim Curtis wrote:

Well, arguably, i think the major difference is this: do we want to
force people to release under GPL if they want to use our code. While

Woops. I had misread this, sorry. Well, we do agree that this is the major
difference. However, in the rest of the paragraph you were mentionning
proprietary software; but there’s not only GPL software and proprietary
software, there’s also Free software released under other free licenses,
like the LGPL. I hope this clarifies my previous mail.

Cheers,
Benoit

Looks like you’re right.


http://www.trolltech.com/developer/knowledgebase/187/?searchterm=license%20BSD
Can I make software with the Qt Open Source Edition and release it under
the GNU GPL, BSD, or Artistic license?

Entry number: 187 - Can I make software with the Qt Open Source Edition
and release it under the GNU GPL, BSD, or Artistic license?
Answer:

Yes. The GNU GPL, GPL-compatible licenses, or any other approved open
source license will do. The FSF.org and OpenSource.org web sites list
approved software licenses.

(Wed, Mar 21, 2007 at 03:33:15PM +0100) Benoit Jacob jacob@math.jussieu.fr:

Interesting, but on the other hand, many KDE libraries are LGPL.

Isn’t it possible to let a LGPL library link to a GPL one?

The FAQ that you quote seems to be talking proprietary software and using
the expression “to GPL” to mean “to relicense under a
GPL-binary-compatible license”.

Cheers,
Benoit

On Wed, 21 Mar 2007, Donald Ephraim Curtis wrote:

QT4 OpenSource edition is licensed under the GPL and since this is the
case our code (library and all) must be licensed under that same
license:


http://www.gnu.org/licenses/gpl-faq.html#LinkingWithGPL
You have a GPL’ed program that I’d like to link with my code to build a
proprietary program. Does the fact that I link with your program mean I
have to GPL my program?

Yes.

So i think that answers our question.

(Wed, Mar 21, 2007 at 02:18:38PM +0000) "Marcus D. Hanwell"
m.hanwell@shef.ac.uk:

I am with Benoit on this - any free licence is fine. I favour LGPL/BSD for
libraries and GPL for programs. I think Qt makes certain requirements when
you use the open source edition too. Mainly I would like to be
acknowledged
and trust you guys to be fair. The copyright in the files I find a little
confusing but once I know the rules and conventions I am sure it will be
no
problem.

Well, arguably, i think the major difference is this: do we want to
force people to release under GPL if they want to use our code. While
this is good in theory, it also discourages commercial development on
the Linux environment. However, since we (each developer) technically
own the copyright we could always convert the code to LGPL if there was
a special case.

KDELIBS is a special case because here it’s a desktop environment and
they are trying to promote the use of their toolkit. The commercial
developer would still need to purchase a license for QT4.

Although, for pure entertainment i’d be happy to hear your reasons
Geoff. I know you thought about this when releasing openbabel so you’re
probably got a decent grasp on it. And yeah, like you said it’s moot
because we’d need to convince you to release libopenbabel under LGPL for
us to even think about it right?

(Wed, Mar 21, 2007 at 10:38:42AM -0400) Geoffrey Hutchison geoff.hutchison@gmail.com:

On Mar 21, 2007, at 11:25 AM, Donald Ephraim Curtis wrote:

QT4 OpenSource edition is licensed under the GPL and since this is the
case our code (library and all) must be licensed under that same
license:

Arguably, the Qt4 “open source” version claims "similar licenses"
http://www.trolltech.com/developer/knowledgebase/187/

But it’s moot. Open Babel is also currently only available under the
GPL. I’d be happy to give various reasons it’s a good idea to keep
the GPL for the library. But individual contributors can make their
code available under whatever license you want.

So Marcus, if you want to make your code available to Avogadro under
the BSD license, that’s fine. Just make sure you note that in the top
of the file.

Cheers,
-Geoff

OK, I feel the need to write another mail to sum up the discussion.

First, any software released under a GPL-compatible license (this includes
LGPL, BSD(no advertising clause), X11, and tons of others) may link to a
GPL-compatible library.

The difference between releasing Avogadro and libavogadro under the GPL
and releasing them under the LGPL are:

if GPL, proprietary software won’t be able to link to it. But BSD and LGPL
software will be able to.

So it all boils down to what Donald said in his mail - sorry for the noise
I generated since.

Personnally, I don’t have a strong preference of license. I think Avogadro
can stay GPL, I don’t see a problem with that. With the GPL, libavogadro
will still be usable by LGPL and BSD programs, and it will still be
possible to write LGPL and BSD Avogadro-plugins.

I don’t remember what was the problem with the GPL in the first place, it
seems very good for what we want.

Maybe I shouldn’t have brought up the issue about copy-and-pasting code -
that unnecessarily complicated the discussion.

Cheers,
Benoit

(Wed, Mar 21, 2007 at 04:22:21PM +0100) Benoit Jacob jacob@math.jussieu.fr:

On Wed, 21 Mar 2007, Donald Ephraim Curtis wrote:

Well, arguably, i think the major difference is this: do we want to
force people to release under GPL if they want to use our code.

I think there’s more than just that. If there were only that then I
wouldn’t care - if my own version of the “world”, proprietary software
doesn’t even exist. To me, the really important point is that there is
many LGPL-licensed software around, and being LGPL ourselves allows us to
be more useful to them. It allows them to copy-and-paste our code, or even
to import a whole source file without having to relicense anything. For
example sphere.* and cylinder.* are fully generic and could be useful as
is in other projects. camera.* is also rather generic.

To be clear. You mean other LGPL libraries can copy our code, rather
than commercial people can copy our code? Also, in this case we could
easily license sphere.* cylinder.* under LGPL while still have
libavogadro licensed under GPL. This would allow people to copy that
code and still make their library LGPL. As far as i can tell (and i
read through most of the LGPL), commercial people are considered “work
that uses the library” just allowed to link. Whereas any code copied
etc is considered a portion of the library (or a derivation of a portion
the library). Also, the LGPL still requires that if you distribute your
app you also make available the source code for the library along with
any object files for your app, enough so that if i modify the library i
can still compile your commercial app.

The only argument i one could make is that libavogadro is replicating
stuff that is already commercially available. One of the arguments
towards using LGPL is that if you’re competing with commercial libraries
that do the same thing it’s possible that someday people will decide to
use your library instead of the other commercially available ones. On
the other hand there are some things that are unique about libavogadro
that makes it kinda good to force people to use GPL if they want our
plugin interface.

While
this is good in theory, it also discourages commercial development on
the Linux environment. However, since we (each developer) technically
own the copyright we could always convert the code to LGPL if there was
a special case.

Unfortunately, I guess that quite often, things will happen differently:
the prospective commercial developer sees that your code is GPL and that
turns him away. He doesn’t even contact you, he doesn’t even know that you
might agree to relicense.

Well, that’s just a guess. I’m not speaking of experience here.

Although, for pure entertainment i’d be happy to hear your reasons
Geoff. I know you thought about this when releasing openbabel so you’re
probably got a decent grasp on it. And yeah, like you said it’s moot
because we’d need to convince you to release libopenbabel under LGPL for
us to even think about it right?

I would disagree with that: as the LGPL is GPL-compatible, a LGPL’d
libavogadro may perfectly link to a GPL’d OpenBabel. I don’t see where
there might be a problem here.

It’s just like with KDELibs. If libavogadro is LGPL and OB is GPL, then
anything that uses libavogadro “technically” links to OB and thus has to
be GPL. Just like KDELibs links to QT so if you want to develop a
commercial app you can use KDELibs but you still need a commercial QT
license.

I don’t mind keeping this conversation going. I hope everyone else is
finding this as imformative as I am. I suppose some of you might be
getting sick of it already.

-Donald

Am Mittwoch, 21. März 2007 17:20 schrieb Benoit Jacob:

I don’t remember what was the problem with the GPL in the first place, it
seems very good for what we want.

Company X develops a PDA tomorrow which ships Avogadro. As such devices (like
99% of all embedded devices) use a static lib of Qt the company simply can’t
use Avogadro (or Kalzium3D).

Carsten

(Wed, Mar 21, 2007 at 05:50:10PM +0100) Benoit Jacob jacob@math.jussieu.fr:

No, it doesn’t have to be GPL. It has to be GPL-compatible, and that
includes any serious Free software license like LGPL and BSD. It rules out
proprietary software.

My bad, you’re right here. I meant to say Free software.

I think the problem is that you’re worried about other free software
licenses and i’m concerned with commercial software.

Just so it’s out on the table i’ll ramble one more time… The only
reason to go LGPL is to allow commercial linking. But, correct me if
i’m wrong, as Geoff was right when he said this is moot because OB is
GPL. So even if libavogadro is LGPL there is no way any commercial app
can use it because of OpenBabel.

The way i read a lot of the GPL is based on source and binary code. Any
binary code which uses (during execution) on other binary code licensed
under the GPL has to be licensed under another free software license.
(and according to GPL section 10 must also have authorization from the
author of the GPL’d code). Any source code marked with the GPL becomes
GPL licensed binary code.

So, any program that links to libavogadro is technically using
OpenBabel’s binary code which is GPL. Just like anything linking to
KDElibs is using QT4’s binary code. And thus, no commercial development
with libavogadro. It makes no difference if we use LGPL or GPL. And
since i know Geoff won’t care, feel my gavel finalize this decision for
GPL.

On the other hand, I would license Eigen under LGPL for the sake of KDE.

Just like KDELibs links to QT so if you want to develop a
commercial app you can use KDELibs but you still need a commercial QT
license.

That’s true.

Well, I think everything is sorted out. The only difference between having
avo under GPL or LGPL is, that LGPL allows linking with non-free software.

As I don’t care about non-free software, I’ll let you and the others
decide here.

I only cared about all this as long as I (wrongly) believed that having
avo under GPL would rule out LGPL and BSD-licensed software, but since it
doesn’t, I don’t have any objection anymore. Both GPL and LGPL are fine
for me as licenses for avo and libavo.

Cheers,
Benoit

On Wednesday 21 March 2007 18:33, Benoit Jacob wrote:

On Wed, 21 Mar 2007, Donald Ephraim Curtis wrote:

I think the problem is that you’re worried about other free software
licenses and i’m concerned with commercial software.

Right!

Just so it’s out on the table i’ll ramble one more time… The only
reason to go LGPL is to allow commercial linking. But, correct me if
i’m wrong, as Geoff was right when he said this is moot because OB is
GPL. So even if libavogadro is LGPL there is no way any commercial app
can use it because of OpenBabel.

That’s right.

The way i read a lot of the GPL is based on source and binary code. Any
binary code which uses (during execution) on other binary code licensed
under the GPL has to be licensed under another free software license.
(and according to GPL section 10 must also have authorization from the
author of the GPL’d code). Any source code marked with the GPL becomes
GPL licensed binary code.

No exactly, you can call any executable (using exec for instantce ) even gpl,
in your commercial application.

I think you’ve got it right, but I amn’t an expert myself. One comment
though: the way I read it, section 10 only applies to licenses for which
it’s not clear that they’re GPL-compatible. Obviously one doesn’t have to
ask for permission when the license is known to be GPL-compatible -
otherwise mailing lists would be flooded with requests for such
permissions. For a list of GPL-compatible licenses, see:
http://www.gnu.org/philosophy/license-list.html#GPLCompatibleLicenses

So, any program that links to libavogadro is technically using
OpenBabel’s binary code which is GPL. Just like anything linking to
KDElibs is using QT4’s binary code. And thus, no commercial development
with libavogadro. It makes no difference if we use LGPL or GPL.

All that is right.

And
since i know Geoff won’t care, feel my gavel finalize this decision for
GPL.

OK, so that’s settled.

On the other hand, I would license Eigen under LGPL for the sake of KDE.

The LGPL doesn’t even make sense for a template library. The LGPL is
written in a language that doesn’t make sense in the context of a library
that doesn’t have a binary form. The fact that some templated code is
LGPL-licensed is only a problem, not a model to follow. This also explains
why very few template libraries are LGPL. They tend to go either for
GPL+exception like Eigen, or for a BSD-style license.

Cheers,
Benoit


Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net’s Techsay panel and you’ll get the chance to share
your opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV


Avogadro-devel mailing list
Avogadro-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/avogadro-devel


Dr. Armando Navarro-Vázquez
RIAIDT. Univdade de Resonancia Magnetica
Universidade de Santiago de Compostela
http://desoft03.usc.es/armando/index.html

On Wednesday 21 March 2007 19:11:22 Carsten Niehaus wrote:

Am Mittwoch, 21. März 2007 17:20 schrieb Benoit Jacob:

I don’t remember what was the problem with the GPL in the first place, it
seems very good for what we want.

Company X develops a PDA tomorrow which ships Avogadro. As such devices
(like 99% of all embedded devices) use a static lib of Qt the company
simply can’t use Avogadro (or Kalzium3D).

How is it relevant that they link to Qt statically? They just have to
recompile Avo themselves. No big deal, unless they’re clowns.

Benoit

Carsten

Am Mittwoch, 21. März 2007 19:26 schrieb Benoît Jacob:

Company X develops a PDA tomorrow which ships Avogadro. As such devices
(like 99% of all embedded devices) use a static lib of Qt the company
simply can’t use Avogadro (or Kalzium3D).

How is it relevant that they link to Qt statically? They just have to
recompile Avo themselves. No big deal, unless they’re clowns.

Mmh, there is a catch… Alex told me, his company is in that very position
and they rewrote libjpeg or something because it is only GPL and not more
free. Well, IANAL:

Carsten

On Mar 21, 2007, at 2:11 PM, Carsten Niehaus wrote:

Company X develops a PDA tomorrow which ships Avogadro. As such
devices (like
99% of all embedded devices) use a static lib of Qt the company
simply can’t
use Avogadro (or Kalzium3D).

It’s not so much of a problem. You can use open source code with
closed-source libraries. I can run Avogadro on a Mac. I could even do
that before Qt/Mac was available under the GPL – I’d just have to
pay for the Qt license.

So Company X would have to pay for their Qt license, but they can
pretty clearly use the GPL’ed Avogadro.

It’s different if Company X is using libjpeg and wants to integrate
into more open (or closed) software. I don’t think it really
compares. Only if commercial vendors want to use Avogadro would there
be much issue.

And as Armando pointed out, it’s easy to use GPL’ed executables.
(Some people use Open Babel this way.)

Finally, as I pointed out, people can contribute code under a
different license if they want. If someone worries that their code
should be available in an LGPL library – let them contribute under
that.

Cheers,
-Geoff