build: add lint target

ober

54594a6d67671d98fcc6222807b99b589701236a

diff --git a/Makefile b/Makefile
index 99ca2de..0e81334 100644
--- a/Makefile
+++ b/Makefile
@@ -45,6 +45,7 @@ JSH_WIREGUARD_HOST_LIB ?= $(JSH_WIREGUARD_DIR)/target/release/libjsh_wireguard.a
 # for engines actually wired into the shell binary by default.
 JSH_NATIVE_NO_SQLITE_FEATURES ?= tls crypto
 JERBOA_NATIVE_HOST_FEATURES ?= $(JSH_NATIVE_NO_SQLITE_FEATURES)
+JSH_JERBUILD_DETERMINISTIC_IDS ?= 0
 JERBOA_SSH_REPO ?= $(VENDOR)/jerboa-ssh
 JSQLITE_REPO ?= $(VENDOR)/jsqlite
 JSQLITE_URL ?= https://git.sr.ht/~lisp/jerboa-sqlite
@@ -93,7 +94,7 @@ PODMAN ?= podman
         jerboa-yubikey-lib check-yubikey-lib-fresh \
         yubikey-native-linux-amd64 yubikey-native-linux-arm64 \
         vendor-deps vendor-deps-linux vendor-native-rs vendor-native-rs-pruned \
-        install install-binary install-shims learn-codex-shim
+        install install-binary install-shims learn-codex-shim lint
 
 all: ffi jerboa compile
 
@@ -377,7 +378,7 @@ jsh-freebsd: ensure-jerboa-tools ensure-jsqlite ffi-shim-symbols.list vendor-dep
 	  *) echo "ERROR: .jerbuild.freebsd-amd64 must run on FreeBSD amd64" >&2; exit 1 ;; \
 	esac
 	@echo "=== Building jsh for FreeBSD with jerbuild ==="
-	JERBUILD="$(JERBUILD)" JSH_FEATURES="$(JSH_FEATURES)" $(JERBUILD) build --config .jerbuild.freebsd-amd64
+	JERBUILD="$(JERBUILD)" JSH_FEATURES="$(JSH_FEATURES)" JERBOA_BINARY_DETERMINISTIC_IDS="$(JSH_JERBUILD_DETERMINISTIC_IDS)" $(JERBUILD) build --config .jerbuild.freebsd-amd64
 
 jsh-freebsd-minimal:
 	@echo "=== jsh-freebsd-minimal is a compatibility alias; building with all features ==="
@@ -403,7 +404,7 @@ jsh-freebsd-full:
 # actually gets called did not have it.)
 jsh-jerbuild: ensure-jerboa-tools ensure-jsqlite ffi-shim-symbols.list vendor-deps jerboa vendor-staged-libs gen-embed rust-wireguard-host
 	@echo "=== Building jsh with jerbuild ==="
-	JERBUILD="$(JERBUILD)" JSH_FEATURES="$(JSH_FEATURES)" JSH_WIREGUARD_LIB="$(JSH_WIREGUARD_HOST_LIB)" $(JERBUILD) build --config .jerbuild
+	JERBUILD="$(JERBUILD)" JSH_FEATURES="$(JSH_FEATURES)" JSH_WIREGUARD_LIB="$(JSH_WIREGUARD_HOST_LIB)" JERBOA_BINARY_DETERMINISTIC_IDS="$(JSH_JERBUILD_DETERMINISTIC_IDS)" $(JERBUILD) build --config .jerbuild
 	@if [ -f jsh-macos ]; then shasum -a 256 jsh-macos > jsh-macos.sha256; fi
 
 jsh-macos: jsh-jerbuild
@@ -681,7 +682,7 @@ jsh-linux-native: ensure-jerboa-tools ensure-jsqlite ffi-shim-symbols.list vendo
 	  *) echo "ERROR: .jerbuild.linux-amd64 must run on Linux amd64" >&2; exit 1 ;; \
 	esac
 	@echo "=== Building native Linux amd64 jsh with jerbuild ==="
-	JERBUILD="$(JERBUILD)" JSH_FEATURES="$(JSH_FEATURES)" $(JERBUILD) build --config .jerbuild.linux-amd64
+	JERBUILD="$(JERBUILD)" JSH_FEATURES="$(JSH_FEATURES)" JERBOA_BINARY_DETERMINISTIC_IDS="$(JSH_JERBUILD_DETERMINISTIC_IDS)" $(JERBUILD) build --config .jerbuild.linux-amd64
 
 # Aliases.
 linux:            linux-amd64
@@ -920,6 +921,7 @@ verify-harden: binary
 # ─── Testing ─────────────────────────────────────────────────────────────────
 
 test: ensure-jerboa-tools stage-jsqlite ffi vendor-deps jerboa-native-host
+	@bash test/test-select-features.sh
 	@echo "=== Running unit tests ==="
 	@rm -f src/jsh/ffi.so src/jsh/ffi.wpo
 	$(JSH_INTERPRETED_NATIVE_ENV) $(JERBUILD) exec --libdirs "$(LIBDIRS_JSH)" test/test-jsh.ss
@@ -1034,6 +1036,9 @@ help:
 check-platforms:
 	@tools/check-platforms.sh
 
+lint:
+	@sh support/security-policy-check.sh
+
 install-hooks:
 	@if [ ! -d .git ]; then echo "not a git checkout — cannot install hooks" >&2; exit 1; fi
 	@mkdir -p .git/hooks