Browse Source

gnu: maxima: Install .el files in the right place, and help find Gnuplot.

* gnu/packages/maths.scm (maxima): Remove Tcl from 'inputs'.  Add
  'post-install' phase.

Signed-off-by: Ludovic Courtès <>
Federico Beffa 6 years ago
committed by Ludovic Courtès
1 changed files with 28 additions and 7 deletions
  1. +28

+ 28
- 7
gnu/packages/maths.scm View File

@@ -850,8 +850,7 @@ to BMP, JPEG or PNG image formats.")
`(("gcl" ,gcl)
("gnuplot" ,gnuplot) ;for plots
("tcl" ,tcl) ;Tcl/Tk is used by 'xmaxima'
("tk" ,tk)))
("tk" ,tk))) ;Tcl/Tk is used by 'xmaxima'
`(("texinfo" ,texinfo)
("perl" ,perl)))
@@ -866,18 +865,40 @@ to BMP, JPEG or PNG image formats.")
(let ((v ,(package-version tk)))
(string-take v (string-index-right v #\.)))))

;; By default Maxima attempts to write temporary files to
;; '/tmp/nix-build-maxima-5.34.1', which doesn't exist. Work around
;; that.
#:make-flags (list "TMPDIR=/tmp")

#:phases (alist-cons-before
'check 'pre-check
(lambda _
(chmod "src/maxima" #o555))

;; Make sure the doc and emacs files are found in the
;; standard location. Also configure maxima to find gnuplot
;; without having it on the PATH.
'install 'post-install
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((gnuplot (assoc-ref inputs "gnuplot"))
(out (assoc-ref outputs "out"))
(datadir (string-append out "/share/maxima/" ,version)))
(with-directory-excursion out
(mkdir-p "share/emacs")
(mkdir-p "share/doc")
(string-append datadir "/emacs/")
(string-append out "/share/emacs/site-lisp"))
(string-append datadir "/doc/")
(string-append out "/share/doc/maxima"))
(string-append datadir "/share/maxima-init.lisp")
(lambda (in out)
(format out "~a ~s~a~%"
"(setf $gnuplot_command "
(string-append gnuplot "/bin/gnuplot") ")")
(dump-port in out))))))
(home-page "")
(synopsis "Numeric and symbolic expression manipulation")
(description "Maxima is a system for the manipulation of symbolic and
@@ -889,4 +910,4 @@ point numbers")
;; version (which implicitly means gpl1+).
;; At least one file (src/maxima.asd) says "version 2."
;; GPLv2 only is therefore the smallest subset.
(license license:gpl2)))
(license license:gpl2)))