Re: Missing CHOLMOD in octave 2.9.9
On Feb 18, 2007, at 22:23, Ryan Schmidt wrote:
On Feb 18, 2007, at 20:33, M. White wrote:
Hi, I am not exactly if this is the correct place to ask this question or not - my apologies if misplaced.
I just installed octave 2.9.9 using darwinports 1.3.2 and tried to run a small matrix test case for matlab (mytrit.m from Johan Helsing of Lund University). When I try to run it, it gets to the line:
R=chol(-A);
and I get the error message:
error: Missing CHOLMOD. Sparse cholesky factorization disabled
[If I comment out that section, everything else seems to run fine.]
Now as near as I can tell cholmod should be part of SuiteSparse (which was also installed [v. 2.4.0_0] as part of this process). The headers for cholmod are found in "/opt/local/include/ ufsparse". Unless there was some error in the installation that was not reported, I should have CHLMOD I think. There is also a chol.oct found in "/opt/local/libexec/octave/2.9.9/oct/powerpc- apple-darwin8.8.0/chol.oct".
Unfortunately, the I did not try to build it verbose - and cannot find any log or error files that might point out what actually happened. Does anyone have any ideas on what I possibly did wrong and how I might fix it?
I have a copy of 2.1.73 which was installed from binaries provided by hpc.sourcefourge.net last year in /usr/local/bin - but /opt/ local/bin comes first in my path. I had originally tried to install the 2.9.9 binaries from there, but it complained because I did not have UMFPACK (probably because I did not have ufsparse at that time).
Thank you for your time.
- M.
P.S. running Mac OS-X 10.4.8 on a G4.
I'm not sure if this is the behavior of the octave port, but the behavior of a MacPorts port *should* be that if you just install the port, you just get the basic software. If the software can optionally use some other feature (like suitesparse or cholmod in this case), then there should be a variant of the original port (octave) that you can use to enable this functionality (such as +suitesparse or +cholmod -- note this is just hypothetical; the octave port has no such variant). The maintainer of the octave port should comment on how it actually functions.
For future reference for anyone who might be interested or run across the same problem: Octave has a list of dependencies for full functionality, of which SuiteSparse is one of them (fftw is another of them). If you build octave verbose, it will tell you if it had problems with any of them. If you have the appropriate libraries, octave will use them, but it will try to compile without them. After multiple attempts at rebuilding, I finally found the problem - it is actually with the SuiteSparse port. When the port is installed, it fails to copy the header: cholmod_io64.h into the directory /opt/local/include/ufsparse and the first include file in cholmod.h is this file. This is why the sparse Cholesky factorization was disabled. The easiest way to fix it is to first configure SuiteSparse and then copy the cholmod_io64.h header into the appropriate directory before doing the install. Then an install of octave should work. Also, in doing this build (and looking at the octave wiki), I notice that there are 3 more dependencies for octave that are not part of the package: pcre curl [aka cURL] glpk One should probably install these ports before installing octave. [Note: the current darwinport of glpk is glpk-4.14, which will not work with octave (at least not without some hacking [requires modifying at least configure and __glpk__.cc, and possibly configure.in]) - so if you do not have it, that one does not really matter, 'cause it won't work anyway. I've read that the octave development group has a working solution for glpk-4.15, but it is not as simple as taking the current development version of __glpk__.cc and replacing the current one (at least it did not work for me - I had to edit the file by hand, and do not have any test cases to see if it is actually working).] - M.
Nope, upgraded to 4.15 a week ago: http://trac.macosforge.org/ projects/macports/changeset/22149 Regards, Elias Pipping On Feb 25, 2007, at 9:09 PM, M. White wrote:
[...] Note: the current darwinport of glpk is glpk-4.14, which will not work with octave [...]
On Feb 25, 2007, at 12:09 PM, M. White wrote:
On Feb 18, 2007, at 22:23, Ryan Schmidt wrote:
On Feb 18, 2007, at 20:33, M. White wrote:
Hi, I am not exactly if this is the correct place to ask this question or not - my apologies if misplaced.
I just installed octave 2.9.9 using darwinports 1.3.2 and tried to run a small matrix test case for matlab (mytrit.m from Johan Helsing of Lund University). When I try to run it, it gets to the line:
R=chol(-A);
and I get the error message:
error: Missing CHOLMOD. Sparse cholesky factorization disabled
[If I comment out that section, everything else seems to run fine.]
Now as near as I can tell cholmod should be part of SuiteSparse (which was also installed [v. 2.4.0_0] as part of this process). The headers for cholmod are found in "/opt/local/include/ ufsparse". Unless there was some error in the installation that was not reported, I should have CHLMOD I think. There is also a chol.oct found in "/opt/local/libexec/octave/2.9.9/oct/powerpc- apple-darwin8.8.0/chol.oct".
Unfortunately, the I did not try to build it verbose - and cannot find any log or error files that might point out what actually happened. Does anyone have any ideas on what I possibly did wrong and how I might fix it?
I have a copy of 2.1.73 which was installed from binaries provided by hpc.sourcefourge.net last year in /usr/local/bin - but /opt/ local/bin comes first in my path. I had originally tried to install the 2.9.9 binaries from there, but it complained because I did not have UMFPACK (probably because I did not have ufsparse at that time).
Thank you for your time.
- M.
P.S. running Mac OS-X 10.4.8 on a G4.
I'm not sure if this is the behavior of the octave port, but the behavior of a MacPorts port *should* be that if you just install the port, you just get the basic software. If the software can optionally use some other feature (like suitesparse or cholmod in this case), then there should be a variant of the original port (octave) that you can use to enable this functionality (such as +suitesparse or +cholmod -- note this is just hypothetical; the octave port has no such variant). The maintainer of the octave port should comment on how it actually functions.
For future reference for anyone who might be interested or run across the same problem:
Octave has a list of dependencies for full functionality, of which SuiteSparse is one of them (fftw is another of them). If you build octave verbose, it will tell you if it had problems with any of them. If you have the appropriate libraries, octave will use them, but it will try to compile without them.
After multiple attempts at rebuilding, I finally found the problem - it is actually with the SuiteSparse port. When the port is installed, it fails to copy the header:
cholmod_io64.h
into the directory
/opt/local/include/ufsparse
and the first include file in cholmod.h is this file. This is why the sparse Cholesky factorization was disabled. The easiest way to fix it is to first configure SuiteSparse and then copy the cholmod_io64.h header into the appropriate directory before doing the install. Then an install of octave should work.
Also, in doing this build (and looking at the octave wiki), I notice that there are 3 more dependencies for octave that are not part of the package:
pcre curl [aka cURL] glpk
One should probably install these ports before installing octave. [Note: the current darwinport of glpk is glpk-4.14, which will not work with octave (at least not without some hacking [requires modifying at least configure and __glpk__.cc, and possibly configure.in]) - so if you do not have it, that one does not really matter, 'cause it won't work anyway. I've read that the octave development group has a working solution for glpk-4.15, but it is not as simple as taking the current development version of __glpk__.cc and replacing the current one (at least it did not work for me - I had to edit the file by hand, and do not have any test cases to see if it is actually working).]
- M.
The patch for the missing cholmod_io64.h header file is done. FYI, it wasn't anything about the port, the upstream package is broken. I'll go ahead and start on adding the additional package dependencies, starting with pcre and curl. If glpk is workable, I'll add that too, else I'll leave it out. Cheers, Andre
On Feb 26, 2007, at 11:57 PM, Andre Stechert wrote:
On Feb 25, 2007, at 12:09 PM, M. White wrote:
On Feb 18, 2007, at 22:23, Ryan Schmidt wrote:
On Feb 18, 2007, at 20:33, M. White wrote:
Hi, I am not exactly if this is the correct place to ask this question or not - my apologies if misplaced.
I just installed octave 2.9.9 using darwinports 1.3.2 and tried to run a small matrix test case for matlab (mytrit.m from Johan Helsing of Lund University). When I try to run it, it gets to the line:
R=chol(-A);
and I get the error message:
error: Missing CHOLMOD. Sparse cholesky factorization disabled
[If I comment out that section, everything else seems to run fine.]
Now as near as I can tell cholmod should be part of SuiteSparse (which was also installed [v. 2.4.0_0] as part of this process). The headers for cholmod are found in "/opt/local/include/ ufsparse". Unless there was some error in the installation that was not reported, I should have CHLMOD I think. There is also a chol.oct found in "/opt/local/libexec/octave/2.9.9/oct/powerpc- apple-darwin8.8.0/chol.oct".
Unfortunately, the I did not try to build it verbose - and cannot find any log or error files that might point out what actually happened. Does anyone have any ideas on what I possibly did wrong and how I might fix it?
I have a copy of 2.1.73 which was installed from binaries provided by hpc.sourcefourge.net last year in /usr/local/bin - but /opt/ local/bin comes first in my path. I had originally tried to install the 2.9.9 binaries from there, but it complained because I did not have UMFPACK (probably because I did not have ufsparse at that time).
Thank you for your time.
- M.
P.S. running Mac OS-X 10.4.8 on a G4.
I'm not sure if this is the behavior of the octave port, but the behavior of a MacPorts port *should* be that if you just install the port, you just get the basic software. If the software can optionally use some other feature (like suitesparse or cholmod in this case), then there should be a variant of the original port (octave) that you can use to enable this functionality (such as +suitesparse or +cholmod -- note this is just hypothetical; the octave port has no such variant). The maintainer of the octave port should comment on how it actually functions.
For future reference for anyone who might be interested or run across the same problem:
Octave has a list of dependencies for full functionality, of which SuiteSparse is one of them (fftw is another of them). If you build octave verbose, it will tell you if it had problems with any of them. If you have the appropriate libraries, octave will use them, but it will try to compile without them.
After multiple attempts at rebuilding, I finally found the problem - it is actually with the SuiteSparse port. When the port is installed, it fails to copy the header:
cholmod_io64.h
into the directory
/opt/local/include/ufsparse
and the first include file in cholmod.h is this file. This is why the sparse Cholesky factorization was disabled. The easiest way to fix it is to first configure SuiteSparse and then copy the cholmod_io64.h header into the appropriate directory before doing the install. Then an install of octave should work.
Also, in doing this build (and looking at the octave wiki), I notice that there are 3 more dependencies for octave that are not part of the package:
pcre curl [aka cURL] glpk
One should probably install these ports before installing octave. [Note: the current darwinport of glpk is glpk-4.14, which will not work with octave (at least not without some hacking [requires modifying at least configure and __glpk__.cc, and possibly configure.in]) - so if you do not have it, that one does not really matter, 'cause it won't work anyway. I've read that the octave development group has a working solution for glpk-4.15, but it is not as simple as taking the current development version of __glpk__.cc and replacing the current one (at least it did not work for me - I had to edit the file by hand, and do not have any test cases to see if it is actually working).]
- M.
The patch for the missing cholmod_io64.h header file is done. FYI, it wasn't anything about the port, the upstream package is broken.
I'll go ahead and start on adding the additional package dependencies, starting with pcre and curl. If glpk is workable, I'll add that too, else I'll leave it out.
Cheers, Andre
Ergh. Uh, there _was_ a problem in the Portfile. Fixing that now.
_______________________________________________ macports-users mailing list macports-users@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo/macports-users
On Feb 26, 2007, at 23:57 , Andre Stechert wrote:
I'll go ahead and start on adding the additional package dependencies, starting with pcre and curl. If glpk is workable, I'll add that too, else I'll leave it out.
Actually, I'm just about finished with a set of patches for the octave port that fix a bunch of problems, including the pcre and glpk dependencies as well as making glpk usable. I'm also pretty close to an octave-forge port, too! I couldn't find where/how the octave build or runtime depend on curl? Can anyone point me to where it is so I can convince myself it really is needed? Thanks and stay tuned, Dave
Sorry, didn't realize you had work in progress :-(. The pcre, curl, and glpk dependencies went in last night as of revision 22369. I'm bummed to report that I also cannot find a single curl reference in the octave tarball. Looking around, I suspect this page was in play: http://wiki.octave.org/wiki.pl?action=browse&diff=1&id=OctaveForMac It's easy enough to remove the curl reference. I also made the patches necessary to fix glpk, as per the discussion with Andrew Makhorin here: http://www.nabble.com/Updating-glpk-binding-to-GLPK-4.15-t3250570.html Which leaves the following reports: 1) some folks are running into a problem with one of the libs not being ranlib'd. the folks that i talked to were running on panther. no fix for this yet, plus haven't reproduced it. 2) some folks seem to have a version of the fnmatch header around that's not smart enough to put extern "C" around the fnmatch declaration (or the dependent sw is declaring it itself). also haven't reproduced this. 3) octave/defaults.h contains wrong paths after installation (blocking octave-forge port) http://trac.macosforge.org/projects/macports/ticket/11181. Do you have a fix for this, given your work on octave-forge? 4) destroot.destdir keyword unnecessary http://trac.macosforge.org/projects/macports/ticket/11167 Bugs that should now be marked resolved/closed (I don't seem to be able to do this myself, so can someone else please do it for me :-D): http://trac.macosforge.org/projects/macports/ticket/11444 (SuiteSparse cholmod_io64.h) Cheers, Andre On Feb 27, 2007, at 9:08 AM, David MacMahon wrote:
On Feb 26, 2007, at 23:57 , Andre Stechert wrote:
I'll go ahead and start on adding the additional package dependencies, starting with pcre and curl. If glpk is workable, I'll add that too, else I'll leave it out.
Actually, I'm just about finished with a set of patches for the octave port that fix a bunch of problems, including the pcre and glpk dependencies as well as making glpk usable. I'm also pretty close to an octave-forge port, too!
I couldn't find where/how the octave build or runtime depend on curl? Can anyone point me to where it is so I can convince myself it really is needed?
Thanks and stay tuned, Dave
_______________________________________________ macports-users mailing list macports-users@lists.macosforge.org http://lists.macosforge.org/mailman/listinfo/macports-users
On Feb 27, 2007, at 10:48 , Andre Stechert wrote:
Sorry, didn't realize you had work in progress :-(.
Sorry, I didn't tell anyone! :-( :-)
It's easy enough to remove the curl reference.
Will do,
I also made the patches necessary to fix glpk, as per the discussion with Andrew Makhorin here:
http://www.nabble.com/Updating-glpk-binding-to-GLPK-4.15- t3250570.html
I've removed my parallel work from the upcoming patch.
Which leaves the following reports:
1) some folks are running into a problem with one of the libs not being ranlib'd. the folks that i talked to were running on panther. no fix for this yet, plus haven't reproduced it.
Didn't know about that one.
2) some folks seem to have a version of the fnmatch header around that's not smart enough to put extern "C" around the fnmatch declaration (or the dependent sw is declaring it itself). also haven't reproduced this.
If they are somehow getting /usr/include/fnmatch.h to compile with a compiler that does not define __cplusplus, then they will not get the extern "C". Perhaps octave's config.log from someone who encounters this problem would be informative.
3) octave/defaults.h contains wrong paths after installation (blocking octave-forge port) http://trac.macosforge.org/projects/macports/ticket/ 11181. Do you have a fix for this, given your work on octave-forge?
4) destroot.destdir keyword unnecessary http://trac.macosforge.org/projects/macports/ticket/11167
These two are fixed in my upcoming patch. They are really the same thing. #11167 nailed it on the head, Dave
Andre Stechert <andre@splunk.com> on Tuesday, February 27, 2007 at 10:48 AM -0800 wrote:
4) destroot.destdir keyword unnecessary http://trac.macosforge.org/projects/macports/ticket/11167
Bugs that should now be marked resolved/closed (I don't seem to be able to do this myself, so can someone else please do it for me :-D):
http://trac.macosforge.org/projects/macports/ticket/11444 (SuiteSparse cholmod_io64.h)
I closed #11167 and #11444. Mark
participants (5)
-
Andre Stechert
-
David MacMahon
-
Elias Pipping
-
M. White
-
Mark Duling