sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.45k stars 481 forks source link

experimental package macaulay2-1.1-r7221.p0.spkg fails to install #11710

Closed a9bc4e33-7b98-4180-affc-8dfcef89e22b closed 7 years ago

a9bc4e33-7b98-4180-affc-8dfcef89e22b commented 13 years ago

sage-4.7.1 on the Skynet machine eno (x86_64-Linux-core2-fc) fails to install the experimental package macaulay2-1.1-r7221.p0.spkg.

(Note that installing optional package gdbm-1.8.3.spkg is a prerequiste for installing macaulay2-1.1-r7221.p0.spkg.)

Rather than fix this problem, it may be better to upgrade to a more recent version of Macaulay2, such as macaulay2-1.4-r12617.

eno% ./sage -i ../optional/bug/macaulay2-1.1-r7221.p0.spkg
Installing ../optional/bug/macaulay2-1.1-r7221.p0.spkg
Calling sage-spkg on ../optional/bug/macaulay2-1.1-r7221.p0.spkg
Warning: Attempted to overwrite SAGE_ROOT environment variable
macaulay2-1.1-r7221.p0
Machine:
Linux eno 2.6.40-4.fc15.x86_64 #1 SMP Fri Jul 29 18:46:53 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Deleting directories from past builds of previous/current versions of macaulay2-1.1-r7221.p0
Extracting package /home/mariah/sage/sage-4.7.1-x86_64-Linux-core2-fc-macaulay2/../optional/bug/macaulay2-1.1-r7221.p0.spkg ...
-rw-r----- 1 mariah sage 2652090 Dec 24  2008 /home/mariah/sage/sage-4.7.1-x86_64-Linux-core2-fc-macaulay2/../optional/bug/macaulay2-1.1-r7221.p0.spkg
Finished extraction
****************************************************
Host system
uname -a:
Linux eno 2.6.40-4.fc15.x86_64 #1 SMP Fri Jul 29 18:46:53 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
****************************************************
****************************************************
CC Version
gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/gcc-4.6.1/x86_64-Linux-core2-fc/libexec/gcc/x86_64-unknown-linux-gnu/4.6.1/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /usr/local/gcc-4.6.1/src/gcc-4.6.1/configure --enable-languages=c,c++,fortran --with-gnu-as --with-gnu-as=/usr/local/binutils-2.21/x86_64-Linux-core2-fc-gcc-4.5.1-rh/bin/as --with-gnu-ld --with-ld=/usr/local/binutils-2.21/x86_64-Linux-core2-fc-gcc-4.5.1-rh/bin/ld --with-gmp=/usr/local/mpir-2.4.0/x86_64-Linux-core2-fc-gcc-4.6.0-rh --with-mpfr=/usr/local/mpfr-3.0.1/x86_64-Linux-core2-fc-mpir-2.4.0-gcc-4.6.0-rh --with-mpc=/usr/local/mpc-0.9/x86_64-Linux-core2-fc-mpir-2.4.0-mpfr-3.0.1-gcc-4.6.0-rh --prefix=/usr/local/gcc-4.6.1/x86_64-Linux-core2-fc
Thread model: posix
gcc version 4.6.1 (GCC) 
****************************************************
+ autoconf

...stuff deleted...

checking for a BSD-compatible install... /usr/bin/install -c
checking for gawk... gawk
checking for gcc... gcc
checking whether the C compiler works... no
configure: error: in `/home/mariah/sage/sage-4.7.1-x86_64-Linux-core2-fc-macaulay2/spkg/build/macaulay2-1.1-r7221.p0/src/BUILD/normal':
configure: error: C compiler cannot create executables
See `config.log' for more details

Depends on #13234

Component: packages: experimental

Keywords: sd32, sd40.5

Author: Andrey Novoseltsev

Reviewer: John Perry

Issue created by migration from https://trac.sagemath.org/ticket/11710

83660e46-0051-498b-a8c1-f7a7bd232b5a commented 13 years ago
comment:1

Attaching config.log in this case wouldn't be bad.

But as you mentioned, the package is fairly old anyway, which doesn't necessarily mean a newer version will install seamlessly. Did you already try that?

a9bc4e33-7b98-4180-affc-8dfcef89e22b commented 13 years ago
comment:2

Yes, I tried installing a newer version. It did not go well, and I have abandoned the effort for now. (Other things are demanding my attention.) Perhaps someone else will have better luck!

83660e46-0051-498b-a8c1-f7a7bd232b5a commented 13 years ago

Description changed:

--- 
+++ 
@@ -1,9 +1,9 @@
-sage-4.7.1 on eno (x86_64-Linux-core2-fc) fails to install experimental package macaulay2-1.1-r7221.p0.spkg.  
+sage-4.7.1 on the [Skynet machine eno](http://wiki.sagemath.org/skynet#Eno) (x86_64-Linux-core2-fc) fails to install the [experimental package macaulay2-1.1-r7221.p0.spkg](http://www.sagemath.org//packages/experimental/macaulay2-1.1-r7221.p0.spkg).

-(Note that installing optional package gdbm-1.8.3.spkg is a prerequiste for installing macaulay2-1.1-r7221.p0.spkg.)
+(Note that installing [optional package gdbm-1.8.3.spkg](http://www.sagemath.org/packages/optional/gdbm-1.8.3.spkg) is a prerequiste for installing `macaulay2-1.1-r7221.p0.spkg`.)

 Rather than fix this problem, it may be better to upgrade to
-a more recent version of macaulay2, such as macaulay2-1.4-r12617.
+a more recent version of [Macaulay2](http://www.math.uiuc.edu/Macaulay2/), such as [macaulay2-1.4-r12617](http://www.math.uiuc.edu/Macaulay2/Downloads/SourceCode/Macaulay2-1.4-r12617-src.tar.bz2).

eno% ./sage -i ../optional/bug/macaulay2-1.1-r7221.p0.spkg @@ -45,5 +45,5 @@ configure: error: in /home/mariah/sage/sage-4.7.1-x86_64-Linux-core2-fc-macaulay2/spkg/build/macaulay2-1.1-r7221.p0/src/BUILD/normal': configure: error: C compiler cannot create executables Seeconfig.log' for more details +```

-```

williamstein commented 13 years ago

Changed keywords from none to sd32

novoselt commented 12 years ago
comment:5

For the record: Macaulay2 1.5 is about to be released.

benjaminfjones commented 12 years ago
comment:6

To review #12335 I need to install the spkg macaulay2-1.1-r7221.p0 into sage-5.0 but when I try I get:


Error: the autoconf program is not installed on your system.

/bin/sh: autoconf: not found
Please install or update autoconf: the version () should be at least 2.59.

It's mentioned in the error message that one can try:

make get-autoconf

but going to a sage shell and into the spkg src and running this command fails:


(sage-sh) jonesbe@sage:src$ make get-autoconf
make -f Makefile -C autoconf
make[1]: Entering directory `/home/jonesbe/sage/sage-5.0/spkg/build/macaulay2-1.1-r7221.p0/src/autoconf'
curl ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz -o "autoconf-2.61.tar.gz" && touch .fetched
/bin/sh: curl: not found
make[1]: *** [.fetched] Error 127
make[1]: Leaving directory `/home/jonesbe/sage/sage-5.0/spkg/build/macaulay2-1.1-r7221.p0/src/autoconf'
make: *** [get-autoconf] Error 2
johnperry-math commented 12 years ago
comment:7

Replying to @benjaminfjones:

To review #12335 I need to install the spkg macaulay2-1.1-r7221.p0 into sage-5.0 but when I try I get:


Error: the autoconf program is not installed on your system.

Is autoconf installed on your system? If not, does Sage include its own autoconf?

These may be dumb questions, but I can get past the autoconf, maybe because it's on my system. It breaks for me elsewhere.

novoselt commented 12 years ago
comment:8

I am trying to build M2 1.4 from source - it would be way better to upgrade spkg. My diary:

novoselt commented 12 years ago
comment:9

I am not sure where fat source is, but I have downloaded files one by one until there were no complaints from here: http://www.math.uiuc.edu/Macaulay2/Downloads/OtherSourceCode/1.4/index.html I had to get 21 out of 29 currently posted there:

4ti2-1.3.2.tar.gz               gfan0.4plus.tar.gz   nauty24r2.tar.gz
cdd+-077a.tar.gz                glpk-4.44.tar.gz     normaliz2.5Source.zip
cddlib-094f.tar.gz              lapack-3.2.2.tgz     ntl-5.5.2.tar.gz
factory-3-1-1.tar.gz            libfac-3-1-1.tar.gz  pari-2.3.5.tar.gz
frobby_v0.8.2.tar.gz            lrslib-042c.tar.gz   readline61-001
gc-7.2alpha5-2010-09-03.tar.gz  mpfr-3.0.0.tar.gz    readline61-002
gdbm-1.8.3.tar.gz               mpir-2.1.2.tar.gz    readline-6.1.tar.gz

As I understand some of these should be substituted by Sage versions. From a license point of view, would it be OK to make an optional spkg with the rest included?

novoselt commented 12 years ago
comment:10

The end of make's output:

linalg.cpp:528:1: error: ‘FieldMatrix::FieldMatrix’ names the constructor, not the type
make[3]: *** [linalg.o] Error 1
make[3]: Leaving directory `/home/novoselt/tests/Macaulay2-1.4-r12617/BUILD/normal/libraries/gfan/build/gfan0.4plus'
make[2]: *** [.compiled-0.4plus] Error 2
make[2]: Leaving directory `/home/novoselt/tests/Macaulay2-1.4-r12617/BUILD/normal/libraries/gfan'
make[1]: *** [all-in-gfan] Error 2
make[1]: Leaving directory `/home/novoselt/tests/Macaulay2-1.4-r12617/BUILD/normal/libraries'
make: *** [all-in-libraries] Error 2
make: Leaving directory `/home/novoselt/tests/Macaulay2-1.4-r12617/BUILD/normal'
novoselt commented 12 years ago
comment:11

I made a new spkg based on Macaulay2-1.4, so far it fails to build because of 4ti2 and gfan. Both are installed in Sage (4ti2 as optional), but not detected by M2 - I've asked M2 developers what can be done. Including these into M2 package breaks during gfan installation, so I have no idea yet how close I am to a working package.

novoselt commented 12 years ago

Changed keywords from sd32 to sd32, sd40.5

novoselt commented 12 years ago
comment:12

Here is an spkg that tries to build (building 4ti2 and gfan is prohibited):

http://sage.math.washington.edu/home/novoselt/macaulay2-1.4-r12617.spkg

It crashes with implicit-function-declaration after several minutes into the build.

I am also experimenting with the trunk version of version 1.5, but so far I had to enable downloading extra files, these extra files are huge (27Mb for normaliz), and the build is taking forever (although it is likely to succeed - it seems to process documentation now).

novoselt commented 12 years ago
comment:13

The trunk version has succeeded, although my system now has autoconf, lib(n)curses and libxml2.

johnperry-math commented 12 years ago
comment:14

Replying to @novoselt:

The trunk version has succeeded, although my system now has autoconf, lib(n)curses and libxml2.

Is it possible and/or advisable to test? I'm interested in trying this out.

novoselt commented 12 years ago
comment:15

Sure, here is a link:

http://sage.math.washington.edu/home/novoselt/macaulay2-1.5.spkg

Let me know if it complains about bison and flex during build - the install script does not check for them yet.

johnperry-math commented 12 years ago
comment:16

Replying to @novoselt:

Sure, here is a link:

http://sage.math.washington.edu/home/novoselt/macaulay2-1.5.spkg

Let me know if it complains about bison and flex during build - the install script does not check for them yet.

I had complaints about libxml2 and yacc. I installed bison for yacc. Right now it's still building, but I'm guessing (fingers crossed) that I have everything I need.

I may leave before it quits, and it may be Thursday before I'm back in the office, but I will let you know how it turns out.

novoselt commented 12 years ago
comment:17

I think there is an option to build without xml, but I didn't try it yet. In any case since I was not able to build 1.4 due to errors during compilation of M2 itself, I'd like to wait till 1.5 is officially released, hopefully with proper packages for Normaliz etc. Then we can see how to cut down on dependencies.

johnperry-math commented 12 years ago
comment:18

I encountered a complaint about flex, too. Trying another rebuild...

novoselt commented 12 years ago
comment:19

Interesting - so this complain was late in the build process, M2 didn't detect its absence? I've updated 1.5 spkg to have checks for gdbm, 4ti2, bison, and flex spkgs. The rest of dependencies has to be dropped somehow.

johnperry-math commented 12 years ago

Author: Andrey Novoseltsev

johnperry-math commented 12 years ago
comment:20

As far as I know, M2 didn't detect its absence, no. It does detect some other things.

Apparently, the build finished, but I don't see any variant of "Macaulay2" in the list of optional_packages, either in the installed section, or the uninstalled section. (i.e., when I call optional_packages() at the command line.)

If I knew how to test it out, I'd give you some more useful information. (For example, whether it crashes while using it.) I'm turning back to #12802 for a little bit, and I have some other things to do, so I'll look at it later.

BTW, what would constitute grounds for a positive review? Not just the installation, presumably, but a fairly careful amount of checking that it works, right?

johnperry-math commented 12 years ago

Reviewer: John Perry

novoselt commented 12 years ago
comment:21

You can try to run "sage -M2" to get M2 prompt and see if it works (worked for me showing version 1.4.0.1). Also I see it in "sage -i" - the list of installed packages. Maybe to see it in optional ones it has to be registered somehow.

For a positive review you need to check that it follows guidelines here: http://sagemath.org/doc/developer/producing_spkgs.html and perhaps there are also specific guidelines for checking them. In any case this is not ready for review yet ;-)

Note also that if you just want to use M2 with Sage, you can install M2 on its own and if it is in your PATH, Sage interface should work. At least I made it work reliably with version 1.3.1 a couple years ago: #7897.

johnperry-math commented 12 years ago
comment:22

Replying to @novoselt:

You can try to run "sage -M2" to get M2 prompt and see if it works (worked for me showing version 1.4.0.1).

Macaulay2, version 1.4.0.1
with packages: ConwayPolynomials, Elimination, IntegralClosure, LLLBases,
               PrimaryDecomposition, ReesAlgebra, TangentCone

i1 : 

Also I see it in "sage -i" - the list of installed packages. Maybe to see it in optional ones it has to be registered somehow.

Okay, yes, I see it there.

For a positive review you need to check that it follows guidelines here: http://sagemath.org/doc/developer/producing_spkgs.html and perhaps there are also specific guidelines for checking them. In any case this is not ready for review yet ;-)

Good point about not being ready for review. :-) For future reference, it's nice to have the link. But, I would also like to try it out with more than the M2 command line; I have seen from my work in mpolynomial_ideal that there are Macaulay2 representations of polynomials as well as Singular representations, and I think CoCoA representations as well, so I'd like to try working between the groups.

Note also that if you just want to use M2 with Sage, you can install M2 on its own and if it is in your PATH, Sage interface should work. At least I made it work reliably with version 1.3.1 a couple years ago: #7897.

I might like to use M2 with sage, and I have a version installed, as I had thought of looking into this myself at one point. Thanks for the tip.

novoselt commented 12 years ago
comment:23

One automatic thing to try is (in Sage root)

novoselt@tx2-lmde ~/sage-5.1.beta0 $ ./sage -t -long -optional devel/sage/sage/interfaces/macaulay2.py 
sage -t -long -optional "devel/sage/sage/interfaces/macaulay2.py"
**********************************************************************
File "/home/novoselt/sage-5.1.beta0/devel/sage/sage/interfaces/macaulay2.py", line 398:
    sage: macaulay2.version() #optional
Expected:
    (1, 3, 1)
Got:
    (1, 4, 0, 1)
**********************************************************************
File "/home/novoselt/sage-5.1.beta0/devel/sage/sage/interfaces/macaulay2.py", line 575:
    sage: latex(m) #optional
Expected:
    \begin{pmatrix}1& {2}\\ {3}& {4}\\ \end{pmatrix}
Got:
    \begin{pmatrix}1& 2\\ 3& 4\\ \end{pmatrix}
**********************************************************************
File "/home/novoselt/sage-5.1.beta0/devel/sage/sage/interfaces/macaulay2.py", line 618:
    sage: R.external_string()                      #optional
Expected:
    'QQ[x..y, Degrees => {2:1}, Heft => {1}, MonomialOrder => VerticalList{MonomialSize => 32, GRevLex => {2:1}, Position => Up}, DegreeRank => 1]'
Got:
    'QQ(monoid[x..y, Degrees => {2:1}, Heft => {1}, MonomialOrder => VerticalList{MonomialSize => 32, GRevLex => {2:1}, Position => Up}, DegreeRank => 1])'
**********************************************************************
File "/home/novoselt/sage-5.1.beta0/devel/sage/sage/interfaces/macaulay2.py", line 830:
    sage: "generators" in traits     # optional
Expected:
    True
Got:
    False
**********************************************************************
4 items had failures:
   1 of   4 in __main__.example_21
   1 of   6 in __main__.example_29
   1 of   5 in __main__.example_32
   1 of   6 in __main__.example_43
***Test Failed*** 4 failures.
For whitespace errors, see the file /home/novoselt/.sage//tmp/macaulay2_19614.py
     [12.5 s]

Which shows that things still work quite well - only the last test is not quite clear without looking at the code (and there are 144 failures without M2 available, so there are quite a few tests in that module).

If you have a separate M2 installed, be careful during review tests - if you don't have a working installation inside of Sage the system-wide will be used silently and without any difference. So it may seem that spkg is working when it does not.

On an unrelated note, it is peculiar how 1 was not in {} before but {2} was in pmatrix code. New way is more consistent and easier to read by a human, I'd like to change Sage latexing in the same way to make manual modifications of results easier...

novoselt commented 12 years ago

Dependencies: #13234

dimpase commented 12 years ago
comment:25

Replying to @novoselt: IMHO, many more spkg's need to be created to satisfy all the dependencies.

83660e46-0051-498b-a8c1-f7a7bd232b5a commented 8 years ago
comment:31

(Not sure what Authors and Reviewers means here, as there doesn't seem to be any code / patch / branch.)

"The current stable version is 1.9.2, released August, 2016."

https://github.com/Macaulay2/M2/releases/tag/version-1.9.2

dimpase commented 7 years ago
comment:33

I think this can be closed as won't fix. M2 needs many patched, for Boehm GC compatibility, packages (e.g. Flint, NTL) , and it's very bulky this way.

koffie commented 7 years ago
comment:35

I agree, and furthermore it is not even listed under the experimental packages anymore.