aboutsummaryrefslogtreecommitdiff
path: root/src/connection/sbcl.lisp
Commit message (Collapse)AuthorAge
* convert PACKAGE:*CONSFIGURATOR-SYSTEM-DEPENDENCIES* to a constantSean Whitton2022-04-16
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rename RETURN-EXIT -> EXIT-CODE-TO-RETVALSean Whitton2022-04-02
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* use higher-numbered codes for change status, 1 for unhandled errorsSean Whitton2021-11-08
| | | | | | | | When SBCL fails to start up, such as when previously-loaded shared libraries cannot be found while trying to reinvoke a dumped image, it exits 1. We must avoid erroneously interpreting this as a successful attempt to make changes. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* :SBCL: avoid adding :DATA hostattrs that persist in *HOST*Sean Whitton2021-11-08
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* install system deps by searching for package managers on PATHSean Whitton2021-10-23
| | | | | | | | | | | | | | | | With this change we handle the situation in which we don't know the OS of a host on which we need to install system packages more cleanly than before. Also rely on the new PACKAGE:INSTALLED to install the OS bootstrapper in INSTALLER:CLEANLY-INSTALLED-ONCE. This allows us to simplify usage of the property by replacing the ORIGINAL-OS argument with ORIGINAL-OS-ARCHITECTURE. Making this change does mean that we now have two ways to specify the different names a package has on different OSs: (i) something like OS:ETYPECASE where each branch applies a property which invokes an OS-specific package manager; and (ii) the plists supplied to PACKAGE:INSTALLED. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* use CFFI, mostly via Osicat, for all syscalls/libc except fork(2)Sean Whitton2021-09-09
| | | | | | | | | | Also replace some calls to chmod(1) with calls to chmod(2). Using CFFI rather than implementation-specific wrappers should be better for portability. Also with this commit we stop hard coding types like uid_t as :UNSIGNED-INT, which was less portable. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* signal SKIPPED-PROPERTIES & factor out interpreting exit codesSean Whitton2021-07-10
| | | | | | | | | | | | Unconditionally signalling FAILED-CHANGE does not make sense because perhaps the type of condition C is not a subtype of SIMPLE-CONDITION. Moreover, when we invoke the SKIP-PROPERTY restart we do not actually pass the condition. For simplicity, and since all we need is notification that a SKIP-PROPERTY restart was invoked, instead define and signal a special-purpose condition. Additionally, use an exit code to pass the signal between Lisp images. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* add INSTALLER:CLEANLY-INSTALLED-ONCE & some utilsSean Whitton2021-07-10
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* :SBCL: drop unneeded IGNORING-HOSTATTRSSean Whitton2021-07-07
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* :SBCL: don't assume that *HOST*'s OS applies to intermediate hopsSean Whitton2021-07-07
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* :SBCL: fix looking for sbcl(1) already on PATHSean Whitton2021-07-07
| | | | | | | | | | The old :CHECK subroutine was meant to enable successfully applying SBCL-AVAILABLE to arbitrary hosts where sbcl(1) is already on PATH, but that does not work because the use of OS:ETYPECASE signals an error at :HOSTATTRS time if *HOST*'s OS is not known to be a subtype of OS:DEBIANLIKE. So move the check for sbcl(1) on PATH outside of any property application. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* :SBCL connection: propagate :NO-CHANGESean Whitton2021-06-05
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* separately upload, compile and load each ASDF systemSean Whitton2021-05-17
| | | | | | | | | | This avoids recompiling unchanged systems on every deploy, which makes for a decent performance boost, especially on systems with less processing power. Drop the idea of relying on distribution packages on the remote side -- we want to use the same version of the source as is running in the root Lisp. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* fix --no-userinit sbcl(1) optionSean Whitton2021-05-15
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* use ~S not ~A when printing the program we sentSean Whitton2021-05-06
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* :SBCL connection: output stdout even when remote Lisp failedSean Whitton2021-04-08
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* reindentSean Whitton2021-04-05
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* OS:TYPECASE->OS:ETYPECASE & OS:HOST-TYPECASE->OS:HOST-ETYPECASESean Whitton2021-04-01
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* convert "upload to root Lisp" error into a warningSean Whitton2021-03-27
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* when remote Lisp fails, use FAILED-CHANGE not just ERRORSean Whitton2021-03-22
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* switch order of output when remote Lisp failsSean Whitton2021-03-22
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* support passing :CHECK at beginning of DEFPROPLIST and DEFPROPSPECSean Whitton2021-03-22
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* untabifySean Whitton2021-03-22
| | | | Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>
* rename :DEBIAN-SBCL -> :SBCL & use a property to install sbclSean Whitton2021-03-22
Unconditionally calling apt was actually the only Debian-specific thing about the connection type. Signed-off-by: Sean Whitton <spwhitton@spwhitton.name>