Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

ros install sbcll failed without libzstd-dev on debian #594

@jvasile

Description

@jvasile

TL;DR: ros install sbcl failed on Debian testing, but then I installed the libzstd-dev package and tried again. It worked. Perhaps a documentation fix is needed. Details below.

Environment

I am running Debian testing

$ uname -a
Linux silicon 6.10.11-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.10.11-1 (2024-09-22) x86_64 GNU/Linux

$ ros --version
roswell 23.10.14.114(NO-GIT-REVISION)

$ ros config
setup.time=3936981946
sbcl-bin.version=2.4.9
default.lisp=sbcl-bin

Possible subcommands:
set
show

How to reproduce the issue

$ ros install sbcl
Checking version to install....
Downloading https://github.com/sbcl/sbcl/releases.atom
[##########################################################################]100%
Checking for installed implementation in /home/james/.roswell/impls/x86-64/linux/sbcl/2.4.9/ 
Downloading https://github.com/sbcl/sbcl/archive/sbcl-2.4.9.tar.gz
   9M downloaded.
Downloading archive:https://github.com/sbcl/sbcl/archive/sbcl-2.4.9.tar.gz:OK
; compilation unit finished
Extracting archive:/home/james/.roswell/archives/sbcl-2.4.9.tar.gz
;     SLIME-STREAM-P
Applying patch:sbcl-1.3.11.patch
chdir /home/james/.roswell/src/sbcl-2.4.9/
patching file make-genesis-2.sh
patching file make-host-1.sh
patching file make-host-2.sh
patching file make-target-1.sh
patching file make-target-2.sh
     0 ......................................................................
   700 ......................Unhandled UIOP/RUN-PROGRAM:SUBPROCESS-ERROR in thread #<SB-THREAD:THREAD tid=353985 "main thread" RUNNING
                                                         {1003F90003}>:
  Subprocess #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {10036DB9A3}>
 with command ("/usr/bin/bash" "-lc"
               "cd \"/home/james/.roswell/src/sbcl-2.4.9/\";/usr/bin/bash ./make.sh '--xc-host=ros -L sbcl-bin without-roswell=t run -- --no-userinit --no-sysinit' '--prefix=/home/james/.roswell/impls/x86-64/linux/sbcl/2.4.9/'")
 exited with error code 2
; compiling file "/usr/share/common-lisp/source/slime/contrib/swank-hyperdoc.lisp" (written 06 JUN 2024 09
Backtrace for: #<SB-THREAD:THREAD tid=353985 "main thread" RUNNING {1003F90003}>
0: (SB-DEBUG::DEBUGGER-DISABLED-HOOK #<UIOP/RUN-PROGRAM:SUBPROCESS-ERROR {1003B86A23}> #<unused argument> :QUIT T)
1: (SB-DEBUG::RUN-HOOK SB-EXT:*INVOKE-DEBUGGER-HOOK* #<UIOP/RUN-PROGRAM:SUBPROCESS-ERROR {1003B86A23}>)
2: (INVOKE-DEBUGGER #<UIOP/RUN-PROGRAM:SUBPROCESS-ERROR {1003B86A23}>)
3: (CERROR "IGNORE-ERROR-STATUS" UIOP/RUN-PROGRAM:SUBPROCESS-ERROR :COMMAND ("/usr/bin/bash" "-lc" #<(SIMPLE-BASE-STRING 208) cd "/home/james/.roswell/src/sbcl-2.4.9/";/usr/bin/bash ./make.sh '--xc-host=ros -L sbcl-bin without-roswell=t run -- --no-userinit --no-sysinit' '--prefix=/home/james/.roswell/impls/x86-64/linux/sbcl... {1003630A6F}>) :CODE 2 :PROCESS #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {10036DB9A3}>)
4: (UIOP/RUN-PROGRAM::%CHECK-RESULT 2 :COMMAND ("/usr/bin/bash" "-lc" #<(SIMPLE-BASE-STRING 208) cd "/home/james/.roswell/src/sbcl-2.4.9/";/usr/bin/bash ./make.sh '--xc-host=ros -L sbcl-bin without-roswell=t run -- --no-userinit --no-sysinit' '--prefix=/home/james/.roswell/impls/x86-64/linux/sbcl... {1003630A6F}>) :PROCESS #<UIOP/LAUNCH-PROGRAM::PROCESS-INFO {10036DB9A3}> :IGNORE-ERROR-STATUS NIL)
5: (UIOP/RUN-PROGRAM::%USE-LAUNCH-PROGRAM ("/usr/bin/bash" "-lc" #<(SIMPLE-BASE-STRING 208) cd "/home/james/.roswell/src/sbcl-2.4.9/";/usr/bin/bash ./make.sh '--xc-host=ros -L sbcl-bin without-roswell=t run -- --no-userinit --no-sysinit' '--prefix=/home/james/.roswell/impls/x86-64/linux/sbcl... {1003630A6F}>) :OUTPUT T :IGNORE-ERROR-STATUS NIL)
6: (ROSWELL.INSTALL.SBCL::SBCL-MAKE (:TARGET "sbcl" :VERSION "2.4.9" :VERSION-NOT-SPECIFIED 0 :ARGV NIL))
7: (INSTALL-IMPL "sbcl" NIL NIL (#<FUNCTION (LAMBDA (ROSWELL.INSTALL::ARGV) :IN DECIDE-VERSION) {1003098FDB}> ROSWELL.INSTALL.SBCL::SBCL-ARGV-PARSE ROSWELL.INSTALL.SBCL::SBCL-START START #<FUNCTION (LAMBDA (ROSWELL.INSTALL::ARGV) :IN DECIDE-DOWNLOAD) {1003098FFB}> ROSWELL.INSTALL.SBCL::SBCL-EXPAND ROSWELL.INSTALL.SBCL::SBCL-PATCH ROSWELL.INSTALL.SBCL::SBCL-CONFIG ROSWELL.INSTALL.SBCL::SBCL-MAKE ROSWELL.INSTALL.SBCL::SBCL-INSTALL ROSWELL.INSTALL.SBCL::SBCL-BACKUP-FEATURES ROSWELL.INSTALL.SBCL::SBCL-MAKE-ARCHIVE ...))
8: (INSTALL-IMPL-IF-PROBED "sbcl" NIL #<unavailable argument>)
9: (INSTALL NIL)
10: (SB-INT:SIMPLE-EVAL-IN-LEXENV (APPLY (QUOTE MAIN) ROSWELL:*ARGV*) #<NULL-LEXENV>)
11: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) #<NULL-LEXENV>)
12: (SB-EXT:EVAL-TLF (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) NIL NIL)
13: ((LABELS SB-FASL::EVAL-FORM :IN SB-INT:LOAD-AS-SOURCE) (ROSWELL:QUIT (APPLY (QUOTE MAIN) ROSWELL:*ARGV*)) NIL)
14: (SB-INT:LOAD-AS-SOURCE #<CONCATENATED-STREAM :STREAMS NIL {10020ED843}> :VERBOSE NIL :PRINT NIL :CONTEXT "loading")
15: ((LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) #<CONCATENATED-STREAM :STREAMS NIL {10020ED843}> NIL)
16: (SB-FASL::CALL-WITH-LOAD-BINDINGS #<FUNCTION (LABELS SB-FASL::LOAD-STREAM-1 :IN LOAD) {7F0111FFF5DB}> #<CONCATENATED-STREAM :STREAMS NIL {10020ED843}> NIL #<CONCATENATED-STREAM :STREAMS NIL {10020ED843}>)
17: (LOAD #<CONCATENATED-STREAM :STREAMS NIL {10020ED843}> :VERBOSE NIL :PRINT NIL :IF-DOES-NOT-EXIST :ERROR :EXTERNAL-FORMAT :DEFAULT)
18: ((FLET ROSWELL::BODY :IN ROSWELL:SCRIPT) #<SB-SYS:FD-STREAM for "file /etc/roswell/install.ros" {10020EAAD3}>)
19: (ROSWELL:SCRIPT "/etc/roswell/install.ros" "sbcl")
20: (ROSWELL:RUN ((:EVAL "(ros:quicklisp)") (:SCRIPT "/etc/roswell/install.ros" "sbcl") (:QUIT NIL)))
21: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "/etc/roswell/install.ros" "sbcl") (:QUIT NIL)))) #<NULL-LEXENV>)
22: (EVAL (ROSWELL:RUN (QUOTE ((:EVAL "(ros:quicklisp)") (:SCRIPT "/etc/roswell/install.ros" "sbcl") (:QUIT NIL)))))
23: (SB-IMPL::PROCESS-EVAL/LOAD-OPTIONS ((:EVAL . "(progn #-ros.init(cl:load \"/etc/roswell/init.lisp\"))") (:EVAL . "(ros:run '((:eval\"(ros:quicklisp)\")(:script \"/etc/roswell/install.ros\"\"sbcl\")(:quit ())))")))
24: (SB-IMPL::TOPLEVEL-INIT)
25: ((FLET SB-UNIX::BODY :IN SB-IMPL::START-LISP))
26: ((FLET "WITHOUT-INTERRUPTS-BODY-3" :IN SB-IMPL::START-LISP))
27: (SB-IMPL::%START-LISP)

unhandled condition in --disable-debugger mode, quitting

Expected behavior

Complete the installation of sbcl.

Actual result

The install process quits during "patching file make-target-2.sh". This happens during this command:

 ./make.sh '--xc-host=ros -L sbcl-bin without-roswell=t run -- --no-userinit --no-sysinit' '--prefix=/home/james/.roswell/impls/x86-64/linux/sbcl/2.4.9/'

I didn't capture the error, but it complained about missing zstd.h, which is needed by coreparse.c.

Resolution

I installed the missing package that provides zstd.h. Then re-ran the make.sh command, which succeeded. Then I re-ran the ros install sbcl and it continued past the part that previously failed.

$ sudo apt-get -y install libzstd-dev
$ ./make.sh '--xc-host=ros -L sbcl-bin without-roswell=t run -- --no-userinit --no-sysinit' '--prefix=/home/james/.roswell/impls/x86-64/linux/sbcl/2.4.9/'
...
The build seems to have finished successfully, including 20 (out of 20)
contributed modules. ...
$ ros install sbcl
Checking version to install....
Checking for installed implementation in /home/james/.roswell/impls/x86-64/linux/sbcl/2.4.9/ 
Skip downloading https://github.com/sbcl/sbcl/archive/sbcl-2.4.9.tar.gz
specify download.force=t to download it again.

Extracting archive:/home/james/.roswell/archives/sbcl-2.4.9.tar.gz

Applying patch:sbcl-1.3.11.patch
chdir /home/james/.roswell/src/sbcl-2.4.9/
patching file make-genesis-2.sh
Reversed (or previously applied) patch detected!  Skipping patch.
1 out of 1 hunk ignored
patching file make-host-1.sh
Reversed (or previously applied) patch detected!  Skipping patch.
1 out of 1 hunk ignored
patching file make-host-2.sh
Reversed (or previously applied) patch detected!  Skipping patch.
1 out of 1 hunk ignored
patching file make-target-1.sh
Reversed (or previously applied) patch detected!  Skipping patch.
1 out of 1 hunk ignored
patching file make-target-2.sh
Reversed (or previously applied) patch detected!  Skipping patch.
1 out of 1 hunk ignored
     0 ......................................................................
   700 .........................G.............................................
  1400 ..........................................Computed perfect hash of 1978 keys: 0.028 sec (#P"output/ucd/ucd1-names.lisp-expr")
Computed perfect hash of 45995 keys: 0.292004 sec (#P"output/ucd/ucd-names.lisp-expr")
Computed perfect hash of 168 keys: 0.0 sec ("base-char-name")
Computed perfect hash of 135 keys: 0.004 sec ("titlecases")
Computed perfect hash of 211 keys: 0.0 sec ("foldcases")
............................
  2100 ..............................................
Installing sbcl/2.4.9
prefix: #P"/home/james/.roswell/impls/x86-64/linux/sbcl/2.4.9/"
chdir /home/james/.roswell/src/sbcl-2.4.9/
     0 .done.

Cleaning
chdir /home/james/.roswell/src/sbcl-2.4.9/
done.

Perhaps this package can be listed in the docs as a requirement to install sbcl?

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions