Bug 98763 - maxima-5.9.1 doe not compile with CMUCL
|
Bug#:
98763
|
Product: Gentoo Linux
|
Version: unspecified
|
Platform: AMD64
|
|
OS/Version: Linux
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: FIXED
|
Assigned To: sci@gentoo.org
|
Reported By: gakrivas@image.ntua.gr
|
|
Component: Applications
|
|
|
URL:
|
|
Summary: maxima-5.9.1 doe not compile with CMUCL
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2005-07-12 03:59 0000
|
The ebuild uses command "lisp", which doesn't exist in my system. I guess the
ebuild should depend on another package which provides this command. I tried to
emerge packages such as gcl, clisp but it didn't help.
Reproducible: Always
Steps to Reproduce:
1.emerge maxima
2.
3.
Actual Results:
[...]
make[1]: Entering directory
`/var/tmp/portage/maxima-5.9.1-r2/work/maxima-5.9.1/src'
test -d binary-cmucl || mkdir binary-cmucl
test -d binary-cmucl/numerical || mkdir binary-cmucl/numerical
test -d binary-cmucl/numerical/slatec || mkdir binary-cmucl/numerical/slatec
(echo '(progn (load "../lisp-utils/defsystem.lisp") (funcall (intern
"OPERATE-ON-SYSTEM" :mk) "maxima" :compile :verbose t))' | lisp -noinit -batch)
&& \
(echo '(progn (load "../lisp-utils/defsystem.lisp") (funcall (intern
"OPERATE-ON-SYSTEM" :mk) "maxima" :load :verbose t) (ext:save-lisp
"binary-cmucl/maxima.core"))' | lisp -noinit -batch)
/bin/sh: lisp: command not found
make[1]: *** [binary-cmucl/maxima.core] Error 127
make[1]: Leaving directory
`/var/tmp/portage/maxima-5.9.1-r2/work/maxima-5.9.1/src'
make: *** [all-recursive] Error 1
!!! ERROR: sci-mathematics/maxima-5.9.1-r2 failed.
!!! Function src_compile, Line 63, Exitcode 2
!!! (no error message)
!!! If you need support, post the topmost build error, NOT this status message.
Expected Results:
compile.
emerge --info
Portage 2.0.51.22-r1 (default-linux/amd64/2005.0, gcc-3.4.4, glibc-2.3.5-r0,
2.6.11-gentoo-r11 x86_64)
=================================================================
System uname: 2.6.11-gentoo-r11 x86_64 AMD Athlon(tm) 64 Processor 3800+
Gentoo Base System version 1.6.12
distcc 2.18.3 x86_64-pc-linux-gnu (protocols 1 and 2) (default port 3632)
[disabled]
ccache version 2.3 [enabled]
dev-lang/python: 2.3.5
sys-apps/sandbox: 1.2.9
sys-devel/autoconf: 2.13, 2.59-r6
sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5
sys-devel/binutils: 2.15.92.0.2-r10
sys-devel/libtool: 1.5.18-r1
virtual/os-headers: 2.6.11-r2
ACCEPT_KEYWORDS="amd64"
AUTOCLEAN="yes"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=k8 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/splash /etc/terminfo /etc/env.d"
CXXFLAGS="-march=k8 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoconfig ccache distlocks sandbox sfperms strict"
GENTOO_MIRRORS="ftp://ftp.ntua.gr/pub/linux/gentoo
http://ftp.snt.utwente.nl/pub/os/linux/gentoo
ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://gentoo.mirror.icd.hu/
ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo"
LANG="en_US.utf8"
LINGUAS="en el"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="amd64 X a52 aalib acpi alsa apache2 arts avi bash-completion berkdb
bitmap-fonts bonobo cdr crypt cups curl directfb dts dv dvd dvdread eds encode
esd fam fame fbcon flac font-server foomaticdb fortran gdbm ggi gif gimpprint
gnome gpm gstreamer gtk2 gtkhtml guile hal imagemagick imlib ipv6 jack java jp2
jpeg junit kde kdeenablefinal libcaca libwww lzw lzw-tiff mad matroska mozilla
mp3 mpeg mysql nas ncurses nls nptl nptlonly ogg oggvorbis opengl oss pam perl
pic png ppds python qt quicktime readline real samba sdl slang ssl subtitles
symlink tcltk tcpd tetex theora tiff truetype truetype-fonts type1-fonts
unicode usb userlocales vorbis xine xinerama xml xml2 xmms xpm xrandr xv xvid
xvmc zlib linguas_en linguas_el userland_GNU kernel_linux elibc_glibc"
Unset: ASFLAGS, CTARGET, LC_ALL, LDFLAGS, MAKEOPTS
The ebuild seems to expect cmucl on an x86:
DEPEND="tetex? ( virtual/tetex )
emacs? ( virtual/emacs )
auctex? ( app-emacs/auctex )
>=sys-apps/texinfo-4.3
x86? ( !clisp? ( !sbcl? ( !gcl? ( !cmucl? ( dev-lisp/cmucl ) ) ) ) )
clisp? ( >=dev-lisp/clisp-2.33.2-r1 )
x86? ( cmucl? ( >=dev-lisp/cmucl-19a ) )
x86? ( gcl? ( >=dev-lisp/gcl-2.6.4 ) )
x86? ( sbcl? ( >=dev-lisp/sbcl-0.8.14 ) )"
I'ld remove the last three x86? (with corresponding parens...)
Adding "clisp" to the USE flags in make.conf will help!
I haven't figured out exactly what's wrong, but I can't seem to get
maxima-5.9.1-r2 to compile at all at the moment. I'm cycling through the four
lisps trying to find out which if any actually build. To the original poster:
"cmucl" when correctly installed defines the command "lisp". THe other lisps all
show up as themselves; i.e., clisp, gcl or sbcl. So if you haven't installed
"cmucl", you won't have "lisp". I don't know if that's going to help, though.
This is just plain messed up at the moment.
OK ... I have a combination that works!! This is on an x86 with everything
involved in /etc/portage/package.keywords:
DreamGate portage # emerge -pv cmucl clisp gcl sbcl maxima
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] dev-lisp/cmucl-19b -doc -lesstif -nosource 0 kB
[ebuild R ] dev-lisp/clisp-2.34-r1 +X -fastcgi +pcre +postgres +readline
+zlib 0 kB
[ebuild R ] dev-lisp/gcl-2.6.7 +X +ansi -custreloc -debug -dlopen -doc
+emacs -gprof +readline +tcltk 0 kB
[ebuild R ] dev-lisp/sbcl-0.9.3 -hardened +ldb -nosource -threads -unicode 0 kB
[ebuild R ] sci-mathematics/maxima-5.9.1-r2 +auctex +clisp -cmucl +emacs
+gcl +sbcl +tetex 0 kB
Total size of downloads: 0 kB
DreamGate portage #
-----------------------------------------------------------------------------
In other words, it looks like CMUCL can't compile maxima-5.9.1-r2, but the other
three Lisps can do it. I'll verify that CMUCL (19b) fails to compile maxima.
It's definitely installed. I took a look at the ebuild and if you don't specify
a USE flag for one of the four Lisps, it defaults to CMUCL.
Yup ... CMUCL 19B won't compile maxima 5.9.1-r2 -- let's call this a CMUCL
problem. Thus spake DreamGate:
DreamGate portage # emerge -pv maxima
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] sci-mathematics/maxima-5.9.1-r2 +auctex -clisp* +cmucl* +emacs
-gcl* -sbcl* +tetex 0 kB
Total size of downloads: 0 kB
DreamGate portage # emerge -v maxima
Calculating dependencies ...done!
>>> emerge (1 of 1) sci-mathematics/maxima-5.9.1-r2 to /
>>> md5 files ;-) maxima-5.9.1.ebuild
>>> md5 files ;-) maxima-5.9.1-r2.ebuild
>>> md5 files ;-) files/5.9.1-sbcl-gentoo.patch
>>> md5 files ;-) files/50maxima-gentoo.el
>>> md5 files ;-) files/digest-maxima-5.9.1
>>> md5 files ;-) files/maxima-emacs.patch
>>> md5 files ;-) files/digest-maxima-5.9.1-r2
>>> md5 src_uri ;-) maxima-5.9.1.tar.gz
>>> Unpacking source...
>>> Unpacking maxima-5.9.1.tar.gz to /var/tmp/portage/maxima-5.9.1-r2/work
* Applying 5.9.1-sbcl-gentoo.patch ... [ ok ]
* Applying maxima-emacs.patch ... [ ok ]
>>> Source unpacked.
checking for a BSD-compatible install... /bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for lisp... true
checking for lisp... (cached) true
cmucl runtime is "/usr/bin/././lisp"
checking POSIX shell to see that it contains getopts... trying /bin/sh
POSIX shell is /bin/sh
configure: creating ./config.status
config.status: creating Makefile
config.status: creating maxima-local
config.status: creating xmaxima-local
config.status: creating maxima.spec
config.status: creating maxima.iss
config.status: creating src/Makefile
config.status: creating src/maxima
config.status: creating src/maxima.bat
config.status: creating src/rmaxima
config.status: creating src/autoconf-variables.lisp
config.status: creating lisp-utils/Makefile
config.status: creating tests/Makefile
config.status: creating doc/Makefile
config.status: creating doc/emaxima/Makefile
config.status: creating doc/info/Makefile
config.status: creating doc/intromax/Makefile
config.status: creating doc/man/Makefile
config.status: creating doc/man/maxima.1
config.status: creating doc/share/Makefile
config.status: creating interfaces/Makefile
config.status: creating interfaces/emacs/Makefile
config.status: creating interfaces/emacs/emaxima/Makefile
config.status: creating interfaces/emacs/misc/Makefile
config.status: creating interfaces/xmaxima/Makefile
config.status: creating interfaces/xmaxima/autoconf-variables.tcl
config.status: creating interfaces/xmaxima/Tkmaxima/Header.tcl
config.status: creating interfaces/xmaxima/win32/Makefile
config.status: creating plotting/header.tcl
config.status: creating plotting/mgnuplot
config.status: creating share/Makefile
config.status: creating demo/Makefile
config.status: creating plotting/Makefile
Summary:
CMUCL enabled. Executable name: "lisp"
cmucl runtime is "/usr/bin/././lisp"
default lisp: cmucl
wish executable name: "wish"
Making all in src
make[1]: Entering directory `/var/tmp/portage/maxima-5.9.1-r2/work/maxima-5.9.1/src'
test -d binary-cmucl || mkdir binary-cmucl
test -d binary-cmucl/numerical || mkdir binary-cmucl/numerical
test -d binary-cmucl/numerical/slatec || mkdir binary-cmucl/numerical/slatec
(echo '(progn (load "../lisp-utils/defsystem.lisp") (funcall (intern
"OPERATE-ON-SYSTEM" :mk) "maxima" :compile :verbose t))' | lisp -noinit -batch) && \
(echo '(progn (load "../lisp-utils/defsystem.lisp") (funcall (intern
"OPERATE-ON-SYSTEM" :mk) "maxima" :load :verbose t) (ext:save-lisp
"binary-cmucl/maxima.core"))' | lisp -noinit -batch)
CMU Common Lisp CVS 19b 19b-release-20050628-3 + minimal debian patches (19B),
running on DreamGate
With core: /usr/lib/cmucl/lisp.core
Dumped on: Thu, 2005-08-18 08:13:16-07:00 on DreamGate
For support see http://www.cons.org/cmucl/support.html
Send bug reports to http://bugs.gentoo.org
Type (help) for help or (quit) to exit.
Loaded subsystems:
Python 1.1, target Intel x86
CLOS based on Gerd's PCL 2004/04/14 03:32:47
*
; Loading
#P"/var/tmp/portage/maxima-5.9.1-r2/work/maxima-5.9.1/lisp-utils/defsystem.lisp".
Warning: Old-style IN-PACKAGE.
; Compiling LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OBJECT STREAM):
; Compiling Top-Level Form:
; Compiling LAMBDA (.PV-CELL. .NEXT-METHOD-CALL. OBJECT STREAM):
; Compiling Top-Level Form:
; Loading #P"/var/tmp/portage/maxima-5.9.1-r2/work/maxima-5.9.1/src/maxima.system".
; - Compiling defsystem "maxima"
; - Loading module "package"
; Compilation unit aborted.
Error in batch processing:
Error in function NAMESTRING:
Cannot determine the namestring for pathnames with no host:
#<Unprintable pathname, Host=NIL, Device=NIL, Directory=(:ABSOLUTE "var"
"tmp" "portage"
"maxima-5.9.1-r2"
"work"
"maxima-5.9.1"
"src"),
Name="maxima-package", Type="lisp", Version=NIL>
make[1]: *** [binary-cmucl/maxima.core] Error 1
make[1]: Leaving directory `/var/tmp/portage/maxima-5.9.1-r2/work/maxima-5.9.1/src'
make: *** [all-recursive] Error 1
!!! ERROR: sci-mathematics/maxima-5.9.1-r2 failed.
!!! Function src_compile, Line 63, Exitcode 2
!!! (no error message)
!!! If you need support, post the topmost build error, NOT this status message.
DreamGate portage #
You are right. AMD64 support for Maxima is obviously broken since the ebuild
does not depend on any lisp implementation on this architecture. I removed the
~amd64 keyword until this is fixed and tested properly. Sorry about this. :(
Matthew:
I am CC'ing you on this since you added the broken amd64 support. Please fix
it ASAP and make the commit message something other than "." this time.
*** Bug 103227 has been marked as a duplicate of this bug. ***
*** Bug 103259 has been marked as a duplicate of this bug. ***
Probably its a good thing to change the summery...
Use the attached ebuild for amd64 support via sbcl and gcl. Your fallback in
src_compile() should have been qualified for x86 BTW. Also, you can test for
an ANSI-supporting gcl by testing for the presence of
/usr/$(lib_dir)/gcl/unixport/saved_ansi_gcl
$ uname -mi
x86_64 AuthenticAMD
$ ACCEPT_KEYWORDS='~amd64' USE='gcl' sudo emerge maxima
...
$ maxima Maxima 5.9.1 http://maxima.sourceforge.net
Using Lisp GNU Common Lisp (GCL) GCL 2.6.7 (aka GCL)
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.
(%i1)
$ ACCEPT_KEYWORDS='~amd64' USE='sbcl' sudo emerge maxima
...
$ maxima Maxima 5.9.1 http://maxima.sourceforge.net
Using Lisp SBCL 0.9.3
Distributed under the GNU Public License. See the file COPYING.
Dedicated to the memory of William Schelter.
This is a development version of Maxima. The function bug_report()
provides bug reporting information.
(%i1)
There are two bugs here. The amd64 support and the breakage on cmucl. Bug
#103227 and Bug #103259 are duplicates of the bug in Comment #5 here, but the
desciption and summary is for a completely different bug.
*** Bug 103892 has been marked as a duplicate of this bug. ***
Added Matthew's work to CVS. This should fix the "lisp: command not found"
error. Changing summary accordingly.
Things have certainly improved with the new ebuild. A quick peek at the DEPENDs
raised a few questions:
DEPEND="tetex? ( virtual/tetex )
emacs? ( virtual/emacs )
auctex? ( app-emacs/auctex )
>=sys-apps/texinfo-4.3
x86? ( !clisp? ( !sbcl? ( !gcl? ( !cmucl? ( dev-lisp/cmucl ) ) ) ) )
# No specific version of cmucl?
# Why test on cmucl?
amd64? ( !gcl? ( dev-lisp/sbcl ) )
# amd64 does compile with clisp too. I'ld add a '!clisp?' clause here.
# No specific version of sbcl?
clisp? ( >=dev-lisp/clisp-2.33.2-r1 )
x86? ( cmucl? ( >=dev-lisp/cmucl-19a ) )
# Suggestion: ask for minimal versions regardless of architecture unless a
certain combination is known to be bad.
x86? ( gcl? ( >=dev-lisp/gcl-2.6.7 ) )
x86? ( sbcl? ( >=dev-lisp/sbcl-0.8.14 ) )
amd64? ( gcl? ( >=dev-lisp/gcl-2.6.7 ) )"
# You forgot amd64? ( sbcl? ( >=dev-lisp/sbcl-0.8.14 ) )
This version is for cut-and-paste:
DEPEND="tetex? ( virtual/tetex )
emacs? ( virtual/emacs )
auctex? ( app-emacs/auctex )
>=sys-apps/texinfo-4.3
x86? ( !clisp? ( !sbcl? ( !gcl? ( >=dev-lisp/cmucl-19a ) ) ) )
amd64? ( !clisp? ( !gcl? ( >=dev-lisp/sbcl-0.8.14 ) ) )
clisp? ( >=dev-lisp/clisp-2.33.2-r1 )
cmucl? ( >=dev-lisp/cmucl-19a )
gcl? ( >=dev-lisp/gcl-2.6.7 )
sbcl? ( >=dev-lisp/sbcl-0.8.14 )"
Here is a new ebuild for maxima with some changes:
- No more use of arch use flags
- Now all use flags work as should. (before USE="-cumcl" emerge maxima was
useless as it used cucml anyway, in x86)
- Now the default lisp is gcl and not cmucl. This is preferable as gcl has
readline support and produces a fast binary.
- No more gcl use flag, to prevent point 2
To address the problem with cmucl in amd64, the use flag cmucl should be added
to use.mask for amd64 (it only affects maxima).
The problem is that gcl does not use ansi for default, so, many users will have
to recompile gcl...
Lucas Chiesa
CMUCL is now masked on amd64, and the new ebuild is the tree. This should fix
the issue. Thanks to Lucas Chiesa for his work.
(In reply to comment #18)
> CMUCL is now masked on amd64, and the new ebuild is the tree. This should fix
> the issue. Thanks to Lucas Chiesa for his work.
Thanks!! I'll test it tomorrow.