babbush / HistoricalFermiLib

This is repo where we developed FermiLib, which then became OpenFermion
Apache License 2.0
1 stars 0 forks source link

Make sure library linkage is Kosher #29

Closed babbush closed 7 years ago

babbush commented 7 years ago

Need to make sure that the way we are linking to pyscf and psi4 does not contaminate our Apache 2.0 license. Note that psi4 is currently GPL but they might change to LGPL whereas pyscf is BSD 2.0.

damiansteiger commented 7 years ago

Did you include any code or just call their functions? (Including some of their code would mean we have to include their license and copyright etc.)

We are fine with calling pyscf functions but we should limit the usage of pyscf to one or two standalone files. Preferably with the same interface as when calling for Psi4 so users have a choice.

Psi4 is annoying as it is GPL and there we are currently not safe. We shouldn't directly call psi4 but leave it to the user to call it.

I will deal with this issue in April

babbush commented 7 years ago

@damiansteiger I do not include any code from either pyscf or psi4 in the sense that I did not look at or copy/paste any of their code and put it into FermiLib. All we do is call psi4 and pyscf. Indeed, I have two scripts "run_pyscf.py" and "run_psi4.py" which do exactly the same things but one is for psi4 and one is for pyscf. But look carefully at how I "call psi4". Are you sure this contaminates our license? Or does it just contaminate the license for the scripts run_psi4.py and psi4_template? Somehow, we are going to need to make something like that available to users.

Please let me know your thoughts so we can have a discussion about how to deal with the psi4 issue.

damiansteiger commented 7 years ago

@babbush Could you follow up with the PSI4 guy to see if they would consider changing the license (soon!) or should I do that (I am happy to send out some emails)? If you do it, maybe CC me as I am familiar with software licenses and copyright law issues.

Btw: Unless they have all signed a CAA (copyright assignment agreement - much stronger than our CLA) then for them to change the license would require to get permission from all contributors...

The preferred license would be Apache 2. But also LGPL v3 would be a great compromise.

Also we need to make them aware that they changed (probably by accident) their license this fall when updating the LICENSE file. Previously they used

GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

see https://github.com/psi4/psi4/blob/v1.1a1/LICENSE

Now the "any later version" disappeared see https://github.com/psi4/psi4/blob/master/LICENSE

This is of particular importance to us. Our wrapper around PSI4 is most certainly a derivate work and hence inherits their GPL license (if they keep the "any later version" we can inhert a GPLv3 license). However, if we inherit a GPLv2, this license is incompatible with Apache 2 which means our wrapper cannot import any data structures from Fermilib unless we make a dual license et cetera... (GPLv3 would allow to include Apache 2 code - it will still result in a GPLv3 combined work)

thomashaener commented 7 years ago

I think this was indeed an accident; it still says "any later version" in https://github.com/psi4/psi4/blob/master/CITATION So I think we should be fine...

babbush commented 7 years ago

Hey Damian,

Please go ahead and email Daniel Crawford yourself. I have talked to him recently and he knows me now, so you can cc me.

damiansteiger commented 7 years ago

Okay. I will go ahead and keep you in the cc.