Opened 5 years ago
Last modified 2 years ago
#22380 closed enhancement
Upgrade to cvxopt 1.2.x — at Version 13
Reported by: | dimpase | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.0 |
Component: | packages: standard | Keywords: | upgrade, cvxopt |
Cc: | arojas, embray, fbissey, gh-timokau, infinity0, pcpa, saraedum, slelievre, strogdon, thansen, tmonteil | Merged in: | |
Authors: | François Bissey | Reviewers: | |
Report Upstream: | N/A | Work issues: | |
Branch: | u/fbissey/cvxopt-1.2.2 (Commits, GitHub, GitLab) | Commit: | 32e028e9d3b2a048cfe8db6b56212afbfe2321c8 |
Dependencies: | Stopgaps: |
Description (last modified by )
This ticket is to upgrade to cvxopt 1.2.2, released 2018-10-19.
- Download page: https://pypi.org/project/cvxopt/#files
- Tarballs:
Since cvxopt 1.1.9, SuiteSparse is no longer included, thus it will have to be packaged separately.
Ticket #19687 was our previous upgrade, to cvxopt 1.1.8 (released 2015-09-22).
Change History (14)
Changed 5 years ago by
comment:1 Changed 5 years ago by
- Cc fbissey added
- Description modified (diff)
the 1st task would be to understand whether the Suite tarfile needs to be cut to exclude non-GPL compatible parts (see attachment)...
comment:2 Changed 5 years ago by
I don't know about debian and other but we split suitesparse
in components in Gentoo. I would be shocked if the other didn't do the same. It looks like upstream integrated a lot of the autoconfig patches that were floating around which makes life easier.
What cvxopt needs:
- suitesparseconfig
*amd
*umfpack
*colamd
*cholmod
Indentation is for dependency. That's without optional or more complicated configuration - a minimal setup (although options using blas/lapack could be enabled without extra burden). All the above in mimimum configuration is LGPL 2.1. In non-mimimum configuration some switch to GPL-2.
comment:3 Changed 5 years ago by
From setup.py
- this can all be overridden, but it horrifies me
# Guess SUITESPARSE_LIB_DIR and SUITESPARSE_INC_DIR if platform.platform().startswith("Darwin"): # macOS SUITESPARSE_LIB_DIR = '/usr/local/lib' SUITESPARSE_INC_DIR = '/usr/local/include' else: # default: Ubuntu/Debian SUITESPARSE_LIB_DIR = "/usr/lib/x86_64-linux-gnu" SUITESPARSE_INC_DIR = "/usr/include/suitesparse"
The only line that is valid is the default include directory for debian. The rest is accessible by default without defining anything.
Basically it destroys stuff that would work out of the box without any values. This is relevant in that it means we will have to override things manually when it could work out of the box if left alone. That's not just suitesparse
. gsl, glpk...
Of course there are limitations of distutils that complicate things (an empty includedir
statement generate a -I
in the compilation line instead of nothing at all, the compiler then gets confused. The best default is probably '.' if you have to put something).
comment:4 Changed 5 years ago by
Good news, cvxopt-1.1.9
is in gentoo now and no doctests were harmed by the upgrade in sage-on-gentoo. The bad news is that writing the spkgs for this is not high on my TODO list.
comment:5 Changed 4 years ago by
- Cc arojas embray gh-timokau infinity0 pcpa saraedum slelievre strogdon thansen tmonteil added
- Description modified (diff)
- Keywords upgrade cvxopt added
- Milestone changed from sage-7.6 to sage-wishlist
- Summary changed from update cvxopt to 1.1.9 to Upgrade to cvxopt 1.2.1
Sage-on-Gentoo just upgraded to cvxopt 1.2.1.
comment:6 follow-up: ↓ 7 Changed 4 years ago by
It would be great if Gentoo's suite-sparse can be lifted to become a Sage package.
For starters I should get sage-on-gentoo running on my Gentoo laptop. How do I start with it?
comment:7 in reply to: ↑ 6 ; follow-up: ↓ 10 Changed 4 years ago by
Replying to dimpase:
It would be great if Gentoo's suite-sparse can be lifted to become a Sage package.
For starters I should get sage-on-gentoo running on my Gentoo laptop. How do I start with it?
Well we are a bit old school but the instructions of the README at https://github.com/cschwan/sage-on-gentoo are still working. One day I'll update them to something a little bit more modern. Note that you also need the science overlay. I won't finish sage 8.4 tongiht I am afraid. Too much to do, it will be ready in 12 hours.
comment:8 Changed 4 years ago by
Note: cvxopt 1.2.2 was released a few days ago.
comment:9 Changed 4 years ago by
- Description modified (diff)
- Summary changed from Upgrade to cvxopt 1.2.1 to Upgrade to cvxopt 1.2.x
Updating ticket description following the release of cvxopt 1.2.2.
comment:10 in reply to: ↑ 7 Changed 4 years ago by
Replying to fbissey:
Well we are a bit old school but the instructions of the README at https://github.com/cschwan/sage-on-gentoo are still working.
A somewhat cryptic error:
!!! The ebuild selected to satisfy "sage" has unmet requirements. - sci-mathematics/sage-8.4::sage-on-gentoo USE="X doc-html-bin -bliss -debug -doc-html -doc-pdf -doc-pdf-bin -jmol -latex -modular_decomposition -sagenb -testsuite" ABI_X86="(64)" L10N="-ca -de -en -es -fr -hu -it -ja -pt -ru -tr" PYTHON_TARGETS="python2_7 python3_6" The following REQUIRED_USE flag constraints are unsatisfied: doc-html-bin? ( l10n_en ) The above constraints are a subset of the following complete expression: doc-html? ( l10n_en sagenb ) doc-pdf? ( sagenb ) testsuite? ( any-of ( doc-html doc-html-bin ) ) doc-html-bin? ( !doc-html !doc-pdf l10n_en ) doc-pdf-bin? ( !doc-html !doc-pdf l10n_en ) any-of ( python_targets_python2_7 python_targets_python3_6 )
no idea what's wrong. Changing doc-html-bin
to -doc-html-bin
allows the build to go forward.
comment:11 Changed 4 years ago by
That's part of the possible useflags. Basically I allow you to choose which language you want to build but because the english version is the only complete one, if you elect to have documentation, the english one is compulsory. Put
L10N="en"
in make.conf
and you'll get pre-built english documentation installed.
comment:12 Changed 4 years ago by
I am going to make an attempt at a "reduced" suitesparse spkg. Reduced because I will not make default packages (which aren't used by anything else) that use cmake. Note that suitesparse will move to cmake for the whole thing in the near future.
The fun bit is that suitesparse is effectively a small mini distribution itself (but most of the upstreams are now totally absorbed by the project). It doesn't currently work very nicely with building phases unless we break down the various components. It does install directly on the file system and because it is like a mini distribution, trying to stop it will break the build system (where are my libraries and my include files).
Once it is completely cmake-ified it may actually behave better in that respect.
comment:13 Changed 4 years ago by
- Branch set to u/fbissey/cvxopt-1.2.2
- Commit set to 32e028e9d3b2a048cfe8db6b56212afbfe2321c8
- Description modified (diff)
- Milestone changed from sage-wishlist to sage-8.5
- Status changed from new to needs_review
SPKG.txt
for suitesparse needs a bit of polish but this is a good start for anyone who wants to tests this. This is open for reviews even though I am expecting a bit more work needs to be done.
New commits:
94517d2 | basic suitsparse spkg
|
903741f | initial update to cvxopt 1.2.2
|
093e5f3 | Merge branch 'develop' into cvxopt-1.22
|
32e028e | add suitesparse to cvxopt dependencies
|
suite-sparse license