From d10be5cf4d0123bf510623a928488b9b9bc2b9bf Mon Sep 17 00:00:00 2001 From: Jamie Cho Date: Fri, 14 Aug 2026 10:05:39 -0400 Subject: [PATCH] build: upgrade Toolshed 2.5 -> 2.6.0 and BASIC-To-6809 v5.33 -> v5.35 Toolshed v2.6.0 gives its unix Makefile a standard prefix/bindir/docdir and honours DESTDIR against /usr/local, instead of hardcoding $(DESTDIR)/usr/bin. That retires the workaround in the stage: rather than installing into the real prefix and hand-copying ten named binaries plus the share directory into /staging, the stage now just installs with DESTDIR=/staging. The installed set is unchanged -- upstream's APPS list is exactly the set the old loop copied. One path moves as a result: ToolShed.html now lands in /usr/local/share/doc/toolshed/ rather than /usr/local/share/toolshed/, which is upstream's new docdir and matches the convention basto6809.pdf already uses. Nothing in the repo referenced the old location. BASIC-To-6809 has no tags, so it stays pinned by SHA with the version carried in the zip name; v5.35 is the only release left in Binary_Versions (5.33 has since moved to Old_Versions). The archive's internal directory name is unchanged, so the sparse-checkout and unzip paths still hold. Verified on arm64: make lint is clean, both stages build (Toolshed's own unit tests pass during the build), the banners report Toolshed 2.6.0 and BasTo6809 V5.35, and basto6809todsk still drives BasTo6809 -> lwasm -> decb to produce a DSK that decb dir reads back. Co-Authored-By: Claude Opus 5 (1M context) --- Dockerfile | 19 +++++++------------ README.md | 4 ++-- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 172267a..27e21ae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -110,21 +110,16 @@ RUN --mount=type=cache,target=/root/.ccache,sharing=shared \ # # Nothing builds against this -- it is a run-time dependency of the image # (basto6809todsk shells out to `decb`), so it belongs here rather than in -# foundation. Its Makefile maps DESTDIR to $(DESTDIR)/usr/bin instead of -# /usr/local/bin, so install normally and copy the paths into /staging, the -# same way the jgrinder stage handles naken_asm. +# foundation. As of v2.6.0 the Makefile honours a standard DESTDIR over a +# /usr/local prefix, so it installs straight into /staging; earlier releases +# hardcoded $(DESTDIR)/usr/bin and needed the binaries copied in by hand. FROM foundation AS toolshed RUN --mount=type=cache,target=/root/.ccache,sharing=shared \ - git clone --depth=1 --branch v2_5 \ + git clone --depth=1 --branch v2.6.0 \ https://github.com/nitros9project/toolshed.git && \ cd toolshed && \ make -j -C build/unix CC="ccache gcc" && \ - make -C build/unix install && \ - mkdir -p /staging/usr/local/bin /staging/usr/local/share && \ - for t in ar2 os9 mamou cecb decb tocgen makewav dis68 lst2cmt cocofuse; do \ - cp "/usr/local/bin/$t" /staging/usr/local/bin/; \ - done && \ - cp -R /usr/local/share/toolshed /staging/usr/local/share/ && \ + make -C build/unix CC="ccache gcc" install DESTDIR=/staging && \ cd /root && rm -rf toolshed # Install preprocessor @@ -249,14 +244,14 @@ RUN --mount=type=cache,target=/root/.ccache,sharing=shared \ # out just the manual and this architecture's zip, which pulls ~43MB instead. FROM foundation AS basto RUN if [ "$(uname -m)" = "aarch64" ]; then ARCH=arm64; else ARCH=x86_64; fi && \ - ZIP="BASIC-To-6809_v5.33_Linux_$ARCH.zip" && \ + ZIP="BASIC-To-6809_v5.35_Linux_$ARCH.zip" && \ git init -q BASIC-To-6809 && \ cd BASIC-To-6809 && \ git remote add origin https://github.com/nowhereman999/BASIC-To-6809.git && \ git config remote.origin.promisor true && \ git config remote.origin.partialclonefilter blob:none && \ git sparse-checkout set --no-cone /Manual.pdf "/Binary_Versions/$ZIP" && \ - git fetch --depth=1 --filter=blob:none origin 1fd2f46923e61b60f54a16e5b317a633eaa43c80 && \ + git fetch --depth=1 --filter=blob:none origin 1a843504f1ab520770aceae05d4ff4fe82edac32 && \ git checkout -q FETCH_HEAD && \ mkdir -p /staging/usr/local/share/doc && \ cp Manual.pdf /staging/usr/local/share/doc/basto6809.pdf && \ diff --git a/README.md b/README.md index af55862..313588a 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Color Computer](https://en.wikipedia.org/wiki/TRS-80_Color_Computer) applications. It implements a Docker image that includes the following tools: * CoCo Languages and Libraries - * [BasTo6809 V5.33](https://github.com/nowhereman999/BASIC-To-6809) + * [BasTo6809 V5.35](https://github.com/nowhereman999/BASIC-To-6809) * [CMOC 0.1.99](http://sarrazip.com/dev/cmoc.html) * [Java Grinder](http://www.mikekohn.net/micro/java_grinder.php) * [LWTOOLS 4.24](http://lwtools.projects.l-w.ca) @@ -20,7 +20,7 @@ applications. It implements a Docker image that includes the following tools: * [milliluk-tools](https://github.com/milliluk/milliluk-tools) * [preprocessor](https://github.com/yggdrasilradio/preprocessor) * [salvador](https://github.com/emmanuel-marty/salvador) - * [ToolShed 2.5](https://github.com/nitros9project/toolshed) + * [ToolShed 2.6.0](https://github.com/nitros9project/toolshed) * [ZX0](https://github.com/einar-saukas/ZX0) * MC-10