#6456: Upgrade cvxopt in sage from 0.9 to 1.1.2
--------------------------------+-------------------------------------------
Reporter: was | Owner: mabshoff
Type: defect | Status: needs_review
Priority: major | Milestone: sage-4.5.2
Component: packages | Keywords:
Author: schilly, dimpase | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
--------------------------------+-------------------------------------------
Comment(by drkirkby):
Looking in
{{{
cvxopt-1.1.2/src
}}}
I see
{{{
drwxr-xr-x 3 drkirkby staff 5 Mar 24 11:40 cvxopt-1.1.2
lrwxrwxrwx 1 drkirkby staff 16 Jul 26 16:10 src ->
cvxopt-1.1.2/src
}}}
It is certainly unusual to do this. Normally the top level src directory
contains the source, not another directory with a link like this. I know
of no other package like this.
I'm also puzzled why we have this:
{{{
# Solaris-specific patches
cp -p patches/sun_complex.h src/src/C/
cp -p patches/cvxopt.h src/src/C/
}}}
There is no file {{{src/src/C/sun_complex.h}}} so the first line just
creates copies the file {{{/usr/include/complex.h}}} from Solaris to the
patches directory. That file is from Sun, and its doubtful we can legally
distribute {{{/usr/include/complex.h}}}
The second patch, patches/cvxopt.h differs from src/src/C/cvxopt.h by very
little. A diff shows:
{{{
drkir...@hawk:~/sage-4.5.2.alpha0/spkg/optional/cvxopt-1.1.2$ diff -u
src/src/C/cvxopt.h patches/cvxopt.h
--- src/src/C/cvxopt.h Mon Jul 26 11:16:09 2010
+++ patches/cvxopt.h Mon Jul 26 10:58:48 2010
@@ -26,7 +26,14 @@
/* ANSI99 complex is disabled during build of CHOLMOD */
#ifndef NO_ANSI99_COMPLEX
+
+/* work around Solaris 10 specific problem in complex.h */
+#if defined (__sun)
+#include "sun_complex.h"
+#else
#include "complex.h"
+#endif
+
#define MAT_BUFZ(O) ((complex *)((matrix *)O)->buffer)
#endif
}}}
If I'm not mistaken, all these two patches achieve is to
* Add a file {{{/usr/include/complex.h}}} to Sage taken from Solaris,
that it is doubtful we can legally include, though I doubt Sun (now
Oracle) will complain.
* Change a file {{{patches/cvxopt.h}}} to include the file we have just
illegally copied.
It would to me at least be a lot easier to just change the second file so
it had
{{{
#ifdef if defined __sun /* Need to check if that's the best one */
#include <complex.h>
#endif
}}}
Why are we bothering to copy a system file from Solaris, rather than just
not use {{{#include <complex.h>}}}?
Dave
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6456#comment:39>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.