Skip to content

Add ubuntu-noble base image and Roswell SBCL Common Lisp images#4

Open
norman-abramovitz wants to merge 5 commits intomainfrom
norm/roswell-sbcl-noble
Open

Add ubuntu-noble base image and Roswell SBCL Common Lisp images#4
norman-abramovitz wants to merge 5 commits intomainfrom
norm/roswell-sbcl-noble

Conversation

@norman-abramovitz
Copy link
Contributor

Summary

  • Add concourse/ubuntu-noble base image (Ubuntu 24.04 LTS)
  • Add concourse-cl/jammy and concourse-cl/noble Common Lisp images using Roswell SBCL 2.6.2
  • Include Quicklisp (auto-loaded on startup) and ASDF in CL images
  • Add SBCL_DIST build arg to switch between Roswell and SourceForge SBCL sources
  • Add PLATFORM variable to root Makefile (default: linux/amd64)
  • Add concourse-jammy base image build target and proper dependencies
  • Bump genesis to 3.0.9

Changes

New files:

  • concourse/ubuntu-noble/Dockerfile — Noble base image
  • concourse-cl/jammy/ — Dockerfile, Makefile, README, tests
  • concourse-cl/noble/ — Dockerfile, Makefile, README, tests

Modified files:

  • Makefile — Added PLATFORM variable, concourse-jammy/concourse-noble targets, cl-jammy/cl-noble targets with proper base image dependencies

Key design decisions:

  • Roswell SBCL binary requires only GLIBC 2.17+, ensuring broad compatibility
  • SBCL_DIST allows switching between roswell (default) and sourceforge sources
  • Quicklisp installed non-interactively and added to .sbclrc for auto-loading
  • CFFI libraries (e.g. OpenSSL via cl+ssl) loaded at runtime via dlopen, no cross-image glibc issues

Test plan

  • Built and tested concourse-cl:ubuntu-jammy (hello-world)
  • Built and tested concourse-cl:ubuntu-noble (hello-world)
  • Verified SBCL 2.6.2, ASDF 3.3.1, Quicklisp auto-load on both images
  • Built shout project successfully on both jammy and noble base images
  • Verified glibc/OpenSSL compatibility across both images

- Create concourse/ubuntu-noble base image (glibc 2.39)
- Update concourse-cl/jammy to use Roswell SBCL 2.6.2 instead of
  SourceForge (includes --fancy: core compression + threading)
- Create concourse-cl/noble variant on the noble base
- Update top-level Makefile with noble and CL targets
- Add SBCL_DIST build arg (roswell/sourceforge) for switchable SBCL sources
- Add PLATFORM variable to root Makefile with linux/amd64 default
- Add concourse-jammy base image target and cl-jammy dependency on it
- Set image version label to SBCL_VERSION instead of empty string
- Set WORKDIR /u before CMD for clean container startup
Install Quicklisp non-interactively and add to .sbclrc so it
auto-loads with ASDF on startup.
Document SBCL, Quicklisp, ASDF availability, Makefile variables
(SBCL_VERSION, SBCL_DIST, PLATFORM), and base image usage example.
Document glibc/OpenSSL versions per image, Roswell binary
compatibility (requires only GLIBC 2.17+), CFFI runtime
loading behavior, and cross-image binary portability caveats.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant