Bug 177576

Summary: math/maxima fails to start with SBCL and quicklisp
Product: Ports & Packages Reporter: cpghost
Component: Individual Port(s)Assignee: Brendan Fabeny <bf>
Status: Closed Unable to Reproduce    
Severity: Affects Only Me CC: marino
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
file.diff none

Description cpghost 2013-04-02 09:40:00 UTC
math/maxima fails to start with SBCL when quicklisp is installed and enabled.

Because the maxima port is usually compiled as root but runs as a regular user, when it invokes SBCL with quicklisp enabled, it tries to access non-existent /root/.cache/common-lisp directory instead of $HOME/.cache/common-lisp of the invoking user. This causes SBCL to go into debugger-mode.

Fix: As explained in the following bug report of a Linux distribution:
  https://bugs.archlinux.org/task/29882
we need to disable user-specific initializations, i.e. prevent ~/.sbclrc
from running when maxima is invoked.

To do this, apply the attached patch to the startup script.

Patch attached with submission follows:
How-To-Repeat: Just install quicklisp for SBCL, i.e. add this to your ~/.sbclrc via quicklisp's setup function:

;;; The following lines added by ql:add-to-init-file:
#-quicklisp
(let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
                                       (user-homedir-pathname))))
  (when (probe-file quicklisp-init)
    (load quicklisp-init)))

Then, make and install math/maxima port with SBCL as default lisp, and run as regular user.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-04-02 09:40:08 UTC
Responsible Changed
From-To: freebsd-ports-bugs->bf

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 b. f. 2013-05-06 16:58:52 UTC
I am not able to reproduce your problem with sbcl 1.1.7 on 10-CURRENT
amd64: for me, sbcl doesn't drop to debugger on startup with the given
userinit  additions.  So it seems that there are some missing details
in the description of the problem -- like why user-cache isn't being
set properly.  In any event, I don't think that disabling all userinit
files by default is the proper fix, as this would prevent appropriate
use of such files.

b.