Opened 9 years ago

Closed 8 years ago

#8645 closed defect (duplicate)

maxima package fails to install ECL library

Reported by: burcin Owned by: tbd
Priority: major Milestone: sage-duplicate/invalid/wontfix
Component: packages: standard Keywords: maxima, ecl
Cc: nbruin, was, mvngu, mpatel, jdemeyer Merged in:
Authors: Reviewers: Karl-Dieter Crisman
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description

With the recent ECL update #8275, maxima package doesn't install the ECL library (which was added in #7287). The library is built, but put in an unexpected location. Here is the end of the log:

;;; Note: Invoking external command:
;;;   ranlib /home/burcin/.cache/common-lisp/ecl-10.2.1-linux-x86-64/home/burcin/sage/sage-4.3.2/spkg/build/maxima-5.20.1/src/src/libmaxima.a
;;; Note: Invoking external command:
;;;   gcc "-I/home/burcin/sage/sage-4.3.2/local/include/"  -I/home/burcin/sage/sage-4.3.2/local/include -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64  -O2  -g  -Wall  -fPIC  -Dlinux -O -w -c "/tmp/ECLINITEsuxJJ.c" -o "/tmp/ECLINITEsuxJJ.o"
;;; Note: Invoking external command:
;;;   gcc -o "/home/burcin/.cache/common-lisp/ecl-10.2.1-linux-x86-64/home/burcin/sage/sage-4.3.2/spkg/build/maxima-5.20.1/src/src/maxima.fasb" -L"/home/burcin/sage/sage-4.3.2/local/lib/" "/tmp/ECLINITEsuxJJ.o" "/home/burcin/.cache/common-lisp/ecl-10.2.1-linux-x86-64/home/burcin/sage/sage-4.3.2/spkg/build/maxima-5.20.1/src/src/libmaxima.a"   -shared  -L/home/burcin/sage/sage-4.3.2/local/lib  -L/home/burcin/sage/sage-4.3.2/local/lib  -lecl  -lgmp -lgc -ldl  -lm 
installing Maxima library as /home/burcin/sage/sage-4.3.2/local/lib/ecl//maxima.fas
cp: cannot stat `maxima.fasb': No such file or directory

real    3m15.250s
user    2m34.586s
sys     0m19.645s
Successfully installed maxima-5.20.1

Note that the return value of the cp command is not checked.

The files are here:

burcin@karr ~/sage/sage-4.3.2 $ ls ~/.cache/common-lisp/ecl-10.2.1-linux-x86-64/home/burcin/sage/sage-4.3.2/spkg/build/maxima-5.20.1/src/src/
libmaxima.a  maxima.fasb  

Any ideas why?

Attachments (2)

ecl-10.4.1.patch (579 bytes) - added by nbruin 9 years ago.
patch for ecl-10.4.1.spkg
maxima-5.20.1.p1.patch (2.2 KB) - added by nbruin 9 years ago.
patch for maxima-5.20.1.p1.spkg

Download all attachments as: .zip

Change History (39)

comment:1 Changed 9 years ago by burcin

  • Component changed from algebra to packages
  • Owner changed from AlexGhitza to tbd

comment:2 Changed 9 years ago by nbruin

I checked and between maxima 5.19 and maxima 5.20 none of the "lisp" files have changed in src/src, so it seems very unlikely that the change in location of maxima.fasb is due to the maxima upgrade.

On the other hand, between ECL 9 and ECL 10, there seems to be a lot of activity in the ASDF module, which is responsible for the building:

http://ecls.cvs.sourceforge.net/viewvc/ecls/ecl/src/CHANGELOG?view=markup

so I can easily believe that the cause is here.

In particular, they are advertising a new option ":move-here" which allows the destination to be specified. I tried this with the presently packaged ECL 10.2.1 without luck, so perhaps upgrading ECL would be a good idea (and then hope they don't touch ASDF for a while).

On the plus side: The "fasb" file type is always recognised by ECL 10.4.2, so the ugly (and risky?) renaming should not be necessary anymore.

If after upgrading you still can't manage getting maxima.fasb in a sane location, perhaps drop Juanjo a line.

comment:3 Changed 9 years ago by nbruin

This may be of some help. I tried building with ECL 10.4.1. As announced in http://groups.google.com/group/sage-devel/browse_thread/thread/e094589b2d99be8a/ab26bd29b3a8990a we need a patch (attached there) to Maxima 5.20.1 to let it build.

The following instruction *should* do the trick

(require 'asdf)
(load "maxima-build.lisp")
(asdf:make-build :maxima :type :fasl :move-here ".")

but for me they lead to an error

Cannot rename the file #P"/home/nbruin/.cache/common-lisp/ecl-10.4.1-linux-x86-64/usr/local/sage/4.3.4/spkg/build/maxima-5.20.1/src/src/maxima.fasb" to #P"/usr/local/sage/4.3.4/spkg/build/maxima-5.20.1/src/src/maxima.fasb".
Explanation: Invalid cross-device link.

This error message indicates:

  • that ECL is trying to do exactly the right thing
  • that it's trying to do the move with a hard link, which it shouldn't try. That's a straightforward error, which will probably be fixed in ECL 10.4.2.

So my guess is that this issue should be fixable quite soon by upgrading.

Oh, and the line

cp maxima.fasb $ECLLIB/maxima.fas

should be changed to

cp maxima.fasb $ECLLIB || echo "Failed to build maxima.fasb"; exit 1

so that errors like this get caught next time and because ECL 10.4 supposedly natively recognizes .fasb files.

comment:4 Changed 9 years ago by nbruin

This should solve the problem:

mkdir ./lisp-cache

then in lisp:

(require 'asdf)
(setf asdf::*user-cache* (truename "./lisp-cache"))
(load "maxima-build.lisp")
(asdf:make-build :maxima :type :fasl :move-here ".")
  • this directory is guaranteed to be on the same file system
  • the cache is not accidentally on a slower (/home) file system
  • the cache gets wiped when spkg/build/maxima-5.20.1 does.
  • no interference with a possible cache that the user privately might have in ecl

So, what needs to be done is:

  • upgrade to ecl 10.4.1
  • patch Maxima to build with ecl 10.4.1
  • patch maxima's spkg-install with the above changes so that maxima.fasb gets built in the right place.

Changed 9 years ago by nbruin

patch for ecl-10.4.1.spkg

Changed 9 years ago by nbruin

patch for maxima-5.20.1.p1.spkg

comment:5 Changed 9 years ago by nbruin

  • Authors set to Nils Bruin
  • Status changed from new to needs_review

Updated spkgs up at

http://sage.math.washington.edu/home/nbruin/ecl-10.4.1.spkg

http://sage.math.washington.edu/home/nbruin/maxima-5.20.1.p1.spkg

I haven't extensively tested them but at least on sage.math they seem to work and changes are small otherwise. Someone probably wants to test maxima on ecl-10.4.1 extensively (although maxima is part of the regular ecl buildfarm testsuite)

For reference, I have also attached the patches for the spkgs. These are already applied to the above spkgs.

comment:6 Changed 9 years ago by jason

The maxima package at #8731 supersedes the maxima spkg here.

comment:7 Changed 9 years ago by jason

Does this ECL package fix #7690? The ecl update at #8808 claims to fix #7690.

comment:8 Changed 9 years ago by jason

  • Cc mvngu added

The src/ directory in the ecl spkg on this ticket is not the same as the ECL official sources (this spkg is missing several directories, like "src/contrib/encodings" and "src/msvc". So I think #8808's ecl spkg supersedes the ecl spkg on this ticket.

So with that, I think this ticket should be closed, as the two spkgs listed on it are superseded elsewhere.

comment:9 Changed 9 years ago by mvngu

  • Milestone changed from sage-4.4.2 to sage-duplicate/invalid/wontfix
  • Resolution set to invalid
  • Status changed from needs_review to closed

comment:10 Changed 9 years ago by jason

My apologies--#8808 was actually in error, and this spkg was correctly made. I've corrected the mistake on #8951. So really, this ticket should be closed as fixed, and #8808 should be closed as invalid.

comment:11 Changed 9 years ago by mvngu

  • Milestone changed from sage-duplicate/invalid/wontfix to sage-4.4.2
  • Resolution changed from invalid to fixed

comment:12 Changed 9 years ago by nbruin

  • Resolution fixed deleted
  • Status changed from closed to new

This ticket was not merged in 4.4.2, so I'm reopening. The ecl spkg on #8951 supersedes the one here. However, the maxima spkg on #8731 is listed as "needs work" so declaring that the spkg there supersedes the one here is a bit premature. The only change in

http://sage.math.washington.edu/home/nbruin/maxima-5.20.1.p1.spkg

is to the way that maxima.fasb get built, copied and its existence tested, so reviewing that should be quick.

comment:13 Changed 9 years ago by nbruin

  • Status changed from new to needs_review

comment:14 Changed 9 years ago by nbruin

  • Milestone changed from sage-4.4.2 to sage-4.4.4

comment:15 follow-up: Changed 9 years ago by drkirkby

I'm just building sage-4.4.4.alpha1 on Solaris 10 SPARC and will test this as soon as that is finished. What other machines has it been tested on?

I can't spend any more time on this just now - my wife wants me to do something which is going to take a few hours.

I think it is sensible to upgrade the maxima in this way, but there are various small changes to ECL which could (should) be merged into the ecl update.

Would you consider making merging these patches

  • On #8951, the patch which removes the tmp files and has a minor (really cosmetic) changes to spkg-install. The removal of the tmp files is quite important, as it often stops builds on 't2'
  • On #8089 the patch to disable assembly code on OpenSolaris?
  • On #9187 the patch to allow parallel building of .spkgs.

I think if a new .spkg with ECL 10.4.1 is created, and the Maxima changed to work properly with that, then these should be merged. Then hopefully the maxima update can be separated.

One of the issues I will have reviewing this is the fact I don't know lisp, but I doubt many people will so I will do my best.

But just now I need to do other things.

Dave

comment:16 in reply to: ↑ 15 ; follow-up: Changed 9 years ago by nbruin

If #9264 gets merged then this ticked can be closed as resolved.

comment:17 in reply to: ↑ 16 ; follow-up: Changed 9 years ago by drkirkby

Replying to nbruin:

If #9264 gets merged then this ticked can be closed as resolved.

Are you sure that is correct? #9264 only makes changes to ECL, not Maxima. So the revised Maxima package at http://sage.math.washington.edu/home/nbruin/maxima-5.20.1.p1.spkg must still be merged. What does not need merging is the ECL patch attached here, as that is covered by #9264

Dave

comment:18 in reply to: ↑ 17 ; follow-up: Changed 9 years ago by nbruin

Replying to drkirkby:

Are you sure that is correct? #9264 only makes changes to ECL, not Maxima.

Except for the "Important" section and the comment in the positive review. Only upgrading ECL will lead to maxima not building, so no doctests will pass. A successful merge has to include a change to maxima.

(incidentally, on #9264 it would have helped a lot if you had also run "make test" or "make ptest" after the successful build. One of the issues on #8731 was that it people were unsure whether the doctest failures were due to the ECL upgrade or the maxima upgrade. We now know it's just due to maxima 5.21 behaving differently)

comment:19 in reply to: ↑ 18 Changed 9 years ago by drkirkby

  • Status changed from needs_review to positive_review

Replying to nbruin:

Replying to drkirkby:

Are you sure that is correct? #9264 only makes changes to ECL, not Maxima.

Except for the "Important" section and the comment in the positive review. Only upgrading ECL will lead to maxima not building, so no doctests will pass. A successful merge has to include a change to maxima.

That was my point - upgrading just ECL would not have worked.

(incidentally, on #9264 it would have helped a lot if you had also run "make test" or "make ptest" after the successful build. One of the issues on #8731 was that it people were unsure whether the doctest failures were due to the ECL upgrade or the maxima upgrade. We now know it's just due to maxima 5.21 behaving differently)

OK, point taken.

It would be good if there was a list of doc tests associated with each package, so its possible to quickly test if changes break any tests.

Anyway, positive review.

Note to release manager

This ticket, and #9264 need to be merged together. Merging #9264 without this one will cause problems. Dave

Dave

comment:20 Changed 9 years ago by rlm

  • Merged in set to sage-4.5.alpha0
  • Resolution set to fixed
  • Reviewers set to David Kirkby
  • Status changed from positive_review to closed

comment:21 follow-up: Changed 9 years ago by mpatel

Could any of the changes here be related to the problems at #9460?

comment:22 in reply to: ↑ 21 ; follow-up: Changed 9 years ago by drkirkby

Replying to mpatel:

Could any of the changes here be related to the problems at #9460?

Possibly, though I don't recall seeing reports of this against sage-4.5.alpha0, which was when this ticket was merged.

Dave

comment:23 in reply to: ↑ 22 ; follow-up: Changed 9 years ago by rlm

Replying to drkirkby:

Replying to mpatel:

Could any of the changes here be related to the problems at #9460?

Possibly, though I don't recall seeing reports of this against sage-4.5.alpha0, which was when this ticket was merged.

William, AFAIK, reported those failures on the first alpha in the 4.5 series that he tested. So it is quite possible.

comment:24 in reply to: ↑ 23 Changed 9 years ago by drkirkby

Replying to rlm:

Replying to drkirkby:

Replying to mpatel:

Could any of the changes here be related to the problems at #9460?

Possibly, though I don't recall seeing reports of this against sage-4.5.alpha0, which was when this ticket was merged.

William, AFAIK, reported those failures on the first alpha in the 4.5 series that he tested. So it is quite possible.

In which case reverting this would be sensible, though it we be good if we could if we could find the circumstances in which the problem occurs - there is a note that it may occur only if Sage is built from a script.

Dave

comment:25 Changed 9 years ago by mpatel

It seems that there are unchecked in changes in the spkg:

$ tar xvf sage-4.5.alpha4/spkg/standard/maxima-5.20.1.p1.spkg
$ cd maxima-5.20.1.p1
$ hg stat
? patches/defsystem.lisp
? patches/ecl-port.lisp

comment:26 Changed 9 years ago by rlm

  • Resolution fixed deleted
  • Status changed from closed to new

comment:27 Changed 9 years ago by rlm

  • Merged in sage-4.5.alpha0 deleted

comment:28 follow-up: Changed 9 years ago by drkirkby

  • Cc mpatel added
  • Priority changed from minor to major

This is marked as minor, but I've found it causes Maxima to fail to install on bsd.math, so it breaks the build.

;;;   gcc -o "/Users/kirkby/sage-4.5.alpha1/spkg/build/maxima-5.20.1.p1/src/src/ECL001STjrNf.fas" -L"/Users/kirkby/sage-4.5.alpha1/local/lib/" "/Users/kirkby/sage-4.5.alpha1/spkg/build/maxima-5.20.1.p1/src/src/ECL001STjrNf.o"   -bundle  -L/Users/kirkby/sage-4.5.alpha1/local/lib -m64   -L/Users/kirkby/sage-4.5.alpha1/local/lib -m64   -lffi -lecl  -lgmp   -lm 
; loading system definition from
; /Users/kirkby/sage-4.5.alpha1/spkg/build/maxima-5.20.1.p1/src/src/maxima.asd
; into #<ASDF0 package>
;;; Loading "/Users/kirkby/sage-4.5.alpha1/spkg/build/maxima-5.20.1.p1/src/src/maxima.asd"
; registering #<SYSTEM :MAXIMA 4321128880> as MAXIMA
An error occurred during initialization:
Unknown keyword :MOVE-HERE.

installing Maxima library as /Users/kirkby/sage-4.5.alpha1/local/lib/ecl//maxima.fas
cp: cannot stat `maxima.fasb': No such file or directory
***********************************************************
Failed to install maxima.fasb as a library
***********************************************************

real	4m45.305s
user	3m35.767s
sys	0m41.909s
sage: An error occurred while installing maxima-5.20.1.p1

That's not a minor problem to me, if it stops Sage building.

comment:29 in reply to: ↑ 28 Changed 9 years ago by nbruin

Replying to drkirkby:

> Unknown keyword :MOVE-HERE.
> 
> installing Maxima library as /Users/kirkby/sage-4.5.alpha1/local/lib/ecl//maxima.fas
> cp: cannot stat `maxima.fasb': No such file or directory
> ***********************************************************
> Failed to install maxima.fasb as a library
> ***********************************************************
> 
> real	4m45.305s
> user	3m35.767s
> sys	0m41.909s
> sage: An error occurred while installing maxima-5.20.1.p1

The package maxima-5.20.1.p1 is designed to be built on ecl 10.4.1 or later. In order to use the :MOVE-HERE keyword, I had to upgrade to ecl 10.4.1.

I think sage is still shipping maxima-5.20.1.p0 with ecl 10.2.1, which silently fails to build maxima.fasb. Hence the original filing as "minor": a library that by default isn't used silently fails to build.

comment:30 follow-up: Changed 9 years ago by drkirkby

Thank you, it seem whenever we need to update we need to

  • Update maxima
  • Update ecl
  • Update the doctests

which is a bit annoying. It often does not seem possible to update ecl or maxima independently.

comment:31 in reply to: ↑ 30 ; follow-ups: Changed 9 years ago by nbruin

I don't think that is true. I think maxima-5.20.1.p0 will build an executable on ecl 10.4.1 and will silently fail to build maxima.fasl, just as it does on ecl 10.2.1. Furthermore, I think maxima-5.20.1 on ecl 10.2.1 produces the same output as on 10.4.1 (given that the only changes between .p0 and .p1 had to do with building a by default unused library)

The fact that doctests for maxima have to be adjusted is a good thing. A bunch of those detect error conditions that are not errors in newer versions of maxima.

But in general, you'd expect dependent packages to be - you know - dependent :-).

comment:32 in reply to: ↑ 31 Changed 9 years ago by nbruin

Replying to nbruin:

I don't think that is true. I think maxima-5.20.1.p0 will build an executable on ecl 10.4.1

Sorry, I take that back. That must have been before coffee. The point of ".p1" was to fix library building and detect failure of it, but in the process needed an ecl upgrade (because 10.2.1 was a snapshot of the building system in flux), which required further patches to maxima (announced and supplied by Juanjo -- Maxima is part of the ECL test suite, so he knows when Maxima/ECL breaks)

comment:33 in reply to: ↑ 31 Changed 9 years ago by leif

Replying to nbruin:

But in general, you'd expect dependent packages to be - you know - dependent :-).

Yes, but the current Sage build (and upgrade) process doesn't really reflect this... ;-)

(We use make, but sage-spkg usually just reports a dependent package was already installed; our current scheme lacks version requirements almost completely.)

For the rebuild dependent packages on upgrade issue, there's #9896 (needs review; not limited to MacOS X). :)

comment:34 Changed 9 years ago by zimmerma

#9538 might depend on that ticket.

Paul

comment:35 Changed 8 years ago by kcrisman

#10187 should fix this.

comment:36 Changed 8 years ago by kcrisman

  • Cc jdemeyer added
  • Status changed from new to needs_review

To release manager: #10187 was closed quite a while ago, and there it is confirmed that this should close this. Thanks!

comment:37 Changed 8 years ago by jdemeyer

  • Authors Nils Bruin deleted
  • Milestone changed from sage-4.6.2 to sage-duplicate/invalid/wontfix
  • Resolution set to duplicate
  • Reviewers changed from David Kirkby to Karl-Dieter Crisman
  • Status changed from needs_review to closed
Note: See TracTickets for help on using tickets.