lem icon indicating copy to clipboard operation
lem copied to clipboard

Cannot install Lem via Roswell on macOS due to error related to `qlot`

Open Deeperand opened this issue 1 year ago • 3 comments

Problem Description

When I try to install

Reproduce

Firstly, I delete ~/.roswell to ensure the environment is clean, then run ros run to let Roswell re-download basic environment, then I run

$ ros follow-dependency=t install lem-project/lem

but meet can't execute qlot problem

Installing from github lem-project/lem
[1/3] System 'lem' found. Loading the system..
While evaluating the form starting at line 1, column 0
  of #P"/Users/he/.roswell/local-projects/lem-project/lem/lem.asd":Aborted during step [1/3].
Unhandled LOAD-SYSTEM-DEFINITION-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {7008B804E3}>: Error while trying to load definition for system lem from pathname /Users/he/.roswell/local-projects/lem-project/lem/lem.asd: Couldn't execute "qlot": No such file or directory

so I install qlot, which run successfully

$ ros install qlot

then try to install Lem again

$ ros follow-dependency=t install lem-project/lem

this time qlot give me an error about moving some folder

ros follow-dependency=t install lem-project/lem
Installing from github lem-project/lem
Installing Quicklisp to /Users/he/.roswell/local-projects/lem-project/lem/.qlot/...
Reading '/Users/he/.roswell/local-projects/lem-project/lem/qlfile'...
Installing dist "quicklisp".
qlot: mv: /Users/he/.roswell/lisp/quicklisp/dists/quicklisp/archives/trivial-mimes-20231021-git.tgz.partial: No such file or directory
Error: Subprocess with command "/opt/homebrew/bin/ros roswell-internal-use download http://beta.quicklisp.org/archive/trivial-mimes/2023-10-21/trivial-mimes-20231021-git.tgz /Users/he/.roswell/lisp/quicklisp/dists/quicklisp/archives/trivial-mimes-20231021-git.tgz 2"
 exited with error code 7

[1/3] System 'lem' found. Loading the system..
While evaluating the form starting at line 1, column 0
  of #P"/Users/he/.roswell/local-projects/lem-project/lem/lem.asd":Aborted during step [1/3].
Unhandled LOAD-SYSTEM-DEFINITION-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {7008B804E3}>: Error while trying to load definition for system lem from pathname /Users/he/.roswell/local-projects/lem-project/lem/lem.asd: Subprocess #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {70057F06F3}>
 with command ("qlot" "install" "--no-deps")
 exited with error code 255

More Info

I also tried install qlot first, and install Lem next, but also failed

$ ros follow-dependency=t install qlot lem-project/lem

this is error message

$ ros follow-dependency=t install qlot lem-project/lem
To load "qlot":
  Load 1 ASDF system:
    asdf
  Install 1 Quicklisp release:
    qlot
Downloading http://beta.quicklisp.org/archive/qlot/2023-10-21/qlot-20231021-git.tgz
##########################################################################
; Loading "qlot"

[1/3] System 'qlot' found. Loading the system..
[2/3] Processing build-hook..
[3/3] Attempting to install the scripts in roswell/ subdirectory of the system...
Found 1 scripts: qlot
/Users/he/.roswell/bin/qlot
Installing from github lem-project/lem
Installing Quicklisp to /Users/he/.roswell/local-projects/lem-project/lem/.qlot/...
Reading '/Users/he/.roswell/local-projects/lem-project/lem/qlfile'...
Installing dist "quicklisp".
qlot: Qlot secure downloader was unexpectedly terminated.
See error logs at '/var/folders/vt/54vkcvv178972028htnlv0rr0000gn/T/qlot-install-AR3FSGEY.log'.
[1/3] System 'lem' found. Loading the system..
While evaluating the form starting at line 1, column 0
  of #P"/Users/he/.roswell/local-projects/lem-project/lem/lem.asd":Aborted during step [1/3].
Unhandled LOAD-SYSTEM-DEFINITION-ERROR in thread #<SB-THREAD:THREAD "main thread" RUNNING {7008B804E3}>: Error while trying to load definition for system lem from pathname /Users/he/.roswell/local-projects/lem-project/lem/lem.asd: Subprocess #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {7008A37F43}>
 with command ("qlot" "install" "--no-deps")
 exited with error code 255

if I continue running install, I will meet System "alexandria" not found problem

$ ros install lem-project/lem
Installing from github lem-project/lem
To load "lem":
  Load 1 ASDF system:
    lem
; Loading "lem"
[1/3] System 'lem' found. Loading the system..Aborted during step [1/3].
Unhandled QUICKLISP-CLIENT:SYSTEM-NOT-FOUND in thread #<SB-THREAD:THREAD "main thread" RUNNING
                                                         {7008B804E3}>:
  System "alexandria" not found

Environment Info

  • Operation System: macOS 13.5.2
  • SBCL version: 2.3.9
  • roswell version
    roswell 23.10.14.114(NO-GIT-REVISION)
    build with Apple clang version 14.0.3 (clang-1403.0.22.14.1)
    libcurl=7.87.0
    Quicklisp=2021-02-13
    Dist=2023-10-21
    lispdir='/opt/homebrew/Cellar/roswell/23.10.14.114/etc/roswell/'
    homedir='/Users/he/.roswell/'
    sbcl-bin-variant=''
    

Deeperand avatar Oct 25 '23 16:10 Deeperand

Hi, I'm reading a perhaps similar MacOS issue on Discord.

Yeah Roswell can be a little broken on macOS It’s because it’s trying to install quicklisp from HTTP Try doing ‘brew uninstall —zap Roswell’ and installing qlot manually Let it handle the quicklisp install

curl -L https://qlot.tech/installer | bash

(this will install to your user directory ~/, which you can remove with the uninstaller script)

then maked sdl2.

Hope this helps.

vindarel avatar Oct 30 '23 09:10 vindarel

I also had severe issues getting lem to compile/run on macOS 14.0 (different to the ones in the issue) and I also initially installed roswell from homebrew which did not work out.

Those are my steps to get the SDL2 version to work:

  • brew uninstall --zap roswell
  • curl -L https://qlot.tech/installer | bash
  • git clone --recursive [email protected]:lem-project/lem.git
  • cd lem
  • make sdl2 (this generate the lem executable in the same directory)
  • ./lem

Dima-369 avatar Dec 07 '23 15:12 Dima-369

You can use roswell from homebrew, but you'll have to setup a script on your path for SBCL that will use roswell.

printf '#!/bin/sh\nexec ros -L sbcl-bin run -- "$@"\n' | \
    sudo tee /usr/local/bin/sbcl \
  && sudo chmod +x /usr/local/bin/sbcl

Alternatively look at what the make file is doing, and run those commands but with ros run instead.

cianoc avatar Feb 01 '24 17:02 cianoc