Skip to content

Conversation

@roryyorke
Copy link
Collaborator

Build with "conda build" instead of setup.py

Conda only supports Python 2.7, and 3.3 and up, so drop 2.6 and 3.2, and
add 3.4 and 3.5.

Install gfortran for compiling, and nose for tests.

Don't install scipy; get matrix class from numpy instead. Scipy is
still needed for one example for generalized eigenvalues.

Use the python-control channel for lapack.

Correct license in meta.yaml; the intended license of Slycot seems to GPLv2 (see
gpl-2.0.txt in root).

Change meta.yaml project URL to python-control Slycot project page.

Split out the build script from meta.yaml; this might make life slightly
easier for anyone attempting to build this on Windows.

Removed from meta.yaml some comments that look like they were inherited
from a cookie-cutter template.

@slivingston slivingston self-assigned this Aug 27, 2016
@cwrowley
Copy link
Contributor

I haven't looked closely at this, but at first glance, this looks great. Here are some initial thoughts.

It's a minor point, but I don't understand the reason for separating the 2-line build script into a separate file. If this script were used elsewhere, then sure, but it isn't, so creating another file for this seems like it just makes things more complicated. The reason explained in the commit message is that it "might make life slightly easier for anyone attempting to build on Windows," which I suppose is possible, but I think we should worry about that once somebody tries to build on Windows. If somebody is going to build on Windows, I'd think the 2-line build script would be the least of their problems.

Another comment is about the GPL license. If the license for slycot is GPL, doesn't that conflict with the BSD license for python-control? Maybe that just means the two packages can never be bundled together?

@roryyorke
Copy link
Collaborator Author

roryyorke commented Aug 29, 2016

On the script separation: I guess the reasoning was half wishful-thinking about Windows, half fig-leaf for my own preferences. I'll revert this change.

On the license: looks like "current" SLICOT is released under GPLv3 [1]. The first commit of Slycot dates from 5 Feb 2010, under GPLv2-or-later [2].

Hm, I just noticed the license='BSD' line in python-control/Slycot's setup.py [3], while in HEAD of avventi/master setup.py is GPLv2-only [4].

[1] http://slicot.org/20-site/31-gpl-3-0-standalone
[2] avventi/Slycot@a6c3a3f/setup.py
[3] 00d5a54/setup.py
[4] avventi/Slycot@eca3b96/setup.py

edit: setup.py changed w.r.t. license here jgoppert/Slycot@f6a2789/setup.py

Build with "conda build" instead of setup.py

Conda only supports Python 2.7, and 3.3 and up, so drop 2.6 and 3.2, and
add 3.4 and 3.5.

Install gfortran for compiling, and nose for tests.

Don't install scipy; get matrix class from numpy instead.  Scipy is
still needed for one example for generalized eigenvalues.

Use the python-control channel for lapack.

Correct license in meta.yaml; the intended license of Slycot seems to GPLv2 (see
gpl-2.0.txt in root).

Change meta.yaml project URL to python-control Slycot project page.

Removed from meta.yaml some comments that look like they were inherited
from a cookie-cutter template.
@slivingston
Copy link
Member

@roryyorke Thanks for commenting that the license listed in setup.py had been modified. The change was made in commit f6a27896b6346f7418fb97bf3edb7f3b06ce3b04 (the relevant link to the repository of jgoppert/Slycot is jgoppert/Slycot@f6a2789/setup.py).

I will revert it back to GPLv2, because we cannot switch the license as such.

@slivingston
Copy link
Member

@cwrowley Regarding that control is under a BSD license whereas Slycot is under GPLv2, we can bundle them together. There is not a conflict between the two licenses [1], [2]. control can remain under a BSD license, and Slycot under GPLv2. However, generally source code should not be copied from Slycot into control to avoid a situation where some of control is under GPL.

[1] https://www.gnu.org/licenses/gpl-faq.html#WhatDoesCompatMean
[2] https://www.gnu.org/licenses/license-list.html#ModifiedBSD

@slivingston
Copy link
Member

The changes proposed in this pull request are good.

@slivingston
Copy link
Member

@roryyorke On line 1 of .travis.yml, should it be "cargo-culled"?

If so, I can apply the change directly on master branch.

@roryyorke
Copy link
Collaborator Author

It's a reference to [1](apologies if I'm missing the joke).

Regarding conda difficulties, which I too have had: we could consider
pinning dependency versions to get off conda's apparently interminable
upgrade treadmill.

[1] https://en.m.wikipedia.org/wiki/Cargo_cult_programming

On 20 Oct 2016 6:31 PM, "Scott C. Livingston" notifications@github.com
wrote:

@roryyorke On line 1 of .travis.yml, should it be "cargo-culled"?

If so, I can apply the change directly on master branch.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

adm78 referenced this pull request in adm78/Slycot Mar 2, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants