Opened 9 years ago
Closed 9 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)
Change History (39)
comment:1 Changed 9 years ago by
- Component changed from algebra to packages
- Owner changed from AlexGhitza to tbd
comment:2 Changed 9 years ago by
comment:3 Changed 9 years ago by
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
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.
comment:5 Changed 9 years ago by
- 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
The maxima package at #8731 supersedes the maxima spkg here.
comment:7 Changed 9 years ago by
comment:8 Changed 9 years ago by
- 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
- 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
comment:11 Changed 9 years ago by
- 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
- 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
- Status changed from new to needs_review
comment:14 Changed 9 years ago by
- Milestone changed from sage-4.4.2 to sage-4.4.4
comment:15 follow-up: ↓ 16 Changed 9 years ago by
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: ↓ 17 Changed 9 years ago by
If #9264 gets merged then this ticked can be closed as resolved.
comment:17 in reply to: ↑ 16 ; follow-up: ↓ 18 Changed 9 years ago by
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: ↓ 19 Changed 9 years ago by
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
- 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
- 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: ↓ 22 Changed 9 years ago by
Could any of the changes here be related to the problems at #9460?
comment:22 in reply to: ↑ 21 ; follow-up: ↓ 23 Changed 9 years ago by
comment:23 in reply to: ↑ 22 ; follow-up: ↓ 24 Changed 9 years ago by
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
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
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
- Resolution fixed deleted
- Status changed from closed to new
comment:27 Changed 9 years ago by
- Merged in sage-4.5.alpha0 deleted
comment:28 follow-up: ↓ 29 Changed 9 years ago by
- 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
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: ↓ 31 Changed 9 years ago by
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: ↓ 32 ↓ 33 Changed 9 years ago by
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
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
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
#9538 might depend on that ticket.
Paul
comment:35 Changed 9 years ago by
#10187 should fix this.
comment:36 Changed 9 years ago by
- 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 9 years ago by
- 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
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.