build: add lint target
ober
54594a6d67671d98fcc6222807b99b589701236a
--- 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