changelog shortlog graph tags branches files raw help

Mercurial > infra / changeset: scripts update

changeset 229: 989b1b4782dc
parent 228: a5af81e9eb4d
child 230: 290f6f651c37
author: Richard Westhaver <ellis@rwest.io>
date: Sat, 25 May 2024 23:17:00 -0400
files: bootstrap.lisp install.sh makefile scripts/box-make.sh scripts/build-emacs-mini.sh scripts/build-emacs.sh scripts/bundle-code.sh scripts/bundle-dir.sh scripts/cargo-install.sh scripts/dist-sbcl-binary.sh scripts/dist-sbcl-source.sh scripts/get-cl.sh scripts/get-code.sh scripts/get-ecl.sh scripts/get-emacs.sh scripts/get-etc.sh scripts/get-linux.sh scripts/get-lust.sh scripts/get-nushell.sh scripts/get-rocksdb.sh scripts/get-rust.sh scripts/get-sbcl.sh scripts/get-stumpwm.sh scripts/get-tree-sitter.sh scripts/git-vendor-pull.sh scripts/init.sh scripts/install-core-pack.sh scripts/install-emacs-mini-pack.sh scripts/install-emacs-pack.sh scripts/install-nushell-pack.sh scripts/install-rocksdb-pack.sh scripts/install-sbcl-pack.sh scripts/quicklisp-install.sh scripts/tree-sitter-install-langs.sh skelfile
description: scripts update
     1.1--- a/bootstrap.lisp	Fri May 24 22:04:12 2024 +0000
     1.2+++ b/bootstrap.lisp	Sat May 25 23:17:00 2024 -0400
     1.3@@ -34,7 +34,7 @@
     1.4                   (dolist (k keys table)
     1.5                     (setf (gethash k table) (sb-posix:getenv k))))))
     1.6 
     1.7-;; (info! "starting bootstrap.lisp")
     1.8+(println "starting bootstrap.lisp")
     1.9 ;; (println sb-sys::*machine-version*)
    1.10 ;; (trace! "env:" (hash-table-alist *env*))
    1.11 
     2.1--- a/install.sh	Fri May 24 22:04:12 2024 +0000
     2.2+++ b/install.sh	Sat May 25 23:17:00 2024 -0400
     2.3@@ -1,7 +1,7 @@
     2.4 #!/bin/sh
     2.5 set -eu
     2.6 main() {
     2.7-  downloader --check
     2.8+  download --check
     2.9 
    2.10   get_architecture || return 1
    2.11   local _arch="$RETVAL"
    2.12@@ -25,9 +25,9 @@
    2.13   local _cc_url="${_url}/cc-install"
    2.14   local _sbcl_url="${_url}/pack/sbcl.tar.zst"
    2.15   local _rocksdb_url="${_url}/pack/rocksdb.tar.zst"
    2.16-  ensure downloader "$_sbcl_url" "${_stash}/sbcl.tar.zst" "$_arch"
    2.17-  ensure downloader "$_rocksdb_url" "${_stash}/rocksdb.tar.zst" "$_arch"
    2.18-  ensure downloader "$_cc_url" "${_stash}/cc-install" "$_arch"
    2.19+  ensure download "$_sbcl_url" "${_stash}/sbcl.tar.zst" "$_arch"
    2.20+  ensure download "$_rocksdb_url" "${_stash}/rocksdb.tar.zst" "$_arch"
    2.21+  ensure download "$_cc_url" "${_stash}/cc-install" "$_arch"
    2.22 }
    2.23 
    2.24 say() {
    2.25@@ -486,7 +486,7 @@
    2.26 
    2.27 # This wraps curl or wget. Try curl first, if not installed,
    2.28 # use wget instead.
    2.29-downloader() {
    2.30+download() {
    2.31   local _dld
    2.32   local _ciphersuites
    2.33   local _err
     3.1--- a/makefile	Fri May 24 22:04:12 2024 +0000
     3.2+++ b/makefile	Sat May 25 23:17:00 2024 -0400
     3.3@@ -77,7 +77,7 @@
     3.4 	cd $< && make static_lib DISABLE_JEMALLOC=1
     3.5 
     3.6 rocksdb-install:$(ROCKSDB_TARGET)
     3.7-	cd $< && make install LIB_MODE=shared && cp -r include/* /usr/local/include/
     3.8+	cd $< && make install-shared && cp -r include/* /usr/local/include/
     3.9 
    3.10 ### Nushell
    3.11 NUSHELL_TARGET:=build/src/nushell
    3.12@@ -90,7 +90,7 @@
    3.13 	cd $< && ./scripts/install-all.sh
    3.14 ### SBCL
    3.15 SBCL_TARGET:=build/src/sbcl
    3.16-SBCL_VERSION:=2.4.4a
    3.17+SBCL_VERSION:=2.4.5
    3.18 $(SBCL_TARGET):scripts/get-sbcl.sh $(B)
    3.19 	$<
    3.20 	cd $(SBCL_TARGET) && \
    3.21@@ -145,7 +145,7 @@
    3.22 cargo-tools-install:scripts/install-cargo-tools.sh
    3.23 	$<
    3.24 ### Tree-sitter
    3.25-TREE_SITTER_TARGET:=build/src/tree-sitter
    3.26+TREE_SIToTER_TARGET:=build/src/tree-sitter
    3.27 $(TREE_SITTER_TARGET):scripts/get-tree-sitter.sh
    3.28 	$<
    3.29 tree-sitter:$(TREE_SITTER_TARGET)
     4.1--- a/scripts/box-make.sh	Fri May 24 22:04:12 2024 +0000
     4.2+++ b/scripts/box-make.sh	Sat May 25 23:17:00 2024 -0400
     4.3@@ -1,11 +1,7 @@
     4.4 #!/bin/sh
     4.5-
     4.6-# SHELL=nu
     4.7 set -e
     4.8-img="${1:-infra/box}"
     4.9+img="${1:-localhost/box}"
    4.10 rule="${2:-sbcl-build}"
    4.11-# in nushell
    4.12-cmd="cd infra; hg pull -u; make build clean dist $rule"
    4.13+cmd="cd infra; skel pull ; skel make clean $rule"
    4.14 podman run --name "$rule" --replace -it "$img" -c "$cmd"
    4.15-podman cp --overwrite $rule:infra/dist .
    4.16-podman cp --overwrite $rule:infra/build .
    4.17+podman cp --overwrite $rule:infra/.stash .
     5.1--- a/scripts/build-emacs-mini.sh	Fri May 24 22:04:12 2024 +0000
     5.2+++ b/scripts/build-emacs-mini.sh	Sat May 25 23:17:00 2024 -0400
     5.3@@ -1,6 +1,6 @@
     5.4 #!/usr/bin/env bash
     5.5 CPUS=$(getconf _NPROCESSORS_ONLN)
     5.6-TARGETDIR="${1:-build/src/emacs}"
     5.7+TARGETDIR="${1:-.stash/src/emacs}"
     5.8 CONFIG=(--without-all
     5.9         --with-x-toolkit=no
    5.10         --without-x
     6.1--- a/scripts/build-emacs.sh	Fri May 24 22:04:12 2024 +0000
     6.2+++ b/scripts/build-emacs.sh	Sat May 25 23:17:00 2024 -0400
     6.3@@ -1,6 +1,6 @@
     6.4 #!/usr/bin/env bash
     6.5 CPUS=$(getconf _NPROCESSORS_ONLN)
     6.6-TARGETDIR="${1:-build/src/emacs}"
     6.7+TARGETDIR="${1:-.stash/src/emacs}"
     6.8 CONFIG=(--with-mailutils
     6.9 	--with-imagemagick
    6.10 	--with-x-toolkit=gtk
     7.1--- a/scripts/bundle-code.sh	Fri May 24 22:04:12 2024 +0000
     7.2+++ b/scripts/bundle-code.sh	Sat May 25 23:17:00 2024 -0400
     7.3@@ -1,7 +1,7 @@
     7.4 #!/bin/sh
     7.5 # bundle The Compiler Company source code
     7.6-OUT="${2:-$HOME/dev/comp/infra/dist}"
     7.7-SRC_PATH="$OUT/../build/src/code"
     7.8+OUT="${2:-/tmp/dist}"
     7.9+SRC_PATH="$OUT/../.stash/src/code"
    7.10 BUNDLE_NAME="${1:-code}"
    7.11 echo "Bundling $BUNDLE_NAME in $OUT..."
    7.12 SOURCES="${3:-org core infra demo}"
     8.1--- a/scripts/bundle-dir.sh	Fri May 24 22:04:12 2024 +0000
     8.2+++ b/scripts/bundle-dir.sh	Sat May 25 23:17:00 2024 -0400
     8.3@@ -2,7 +2,7 @@
     8.4 # bundle a tar.zst archive of Mercurial repositories.
     8.5 # must be absolute
     8.6 #WD=/mnt/y/data/packy
     8.7-WD="${2:-$HOME/dev/comp/infra/dist}"
     8.8+WD="${2:-/tmp/dist}"
     8.9 OUT=$WD/bundle
    8.10 SRC_PATH=$HOME/dev/comp
    8.11 BUNDLE_NAME="${1:-code}"
     9.1--- a/scripts/cargo-install.sh	Fri May 24 22:04:12 2024 +0000
     9.2+++ b/scripts/cargo-install.sh	Sat May 25 23:17:00 2024 -0400
     9.3@@ -1,2 +1,2 @@
     9.4 #!/usr/bin/env bash
     9.5-cargo install --path "${1}" --root "${2:-dist/rust}"
     9.6+cargo install --path "${1}" --root "${2:-.stash/src/rust}"
    10.1--- a/scripts/dist-sbcl-binary.sh	Fri May 24 22:04:12 2024 +0000
    10.2+++ b/scripts/dist-sbcl-binary.sh	Sat May 25 23:17:00 2024 -0400
    10.3@@ -1,8 +1,8 @@
    10.4 #!/bin/sh
    10.5 set -e
    10.6 # binary dist
    10.7-cd build/src/
    10.8-tar -I 'zstd' -cf ../../dist/sbcl-binary.tar.zst sbcl/output/sbcl.core sbcl/src/runtime/sbcl sbcl/output/prefix.def \
    10.9+cd .stash/src/
   10.10+tar -I 'zstd' -cf /tmp/dist/sbcl-binary.tar.zst sbcl/output/sbcl.core sbcl/src/runtime/sbcl sbcl/output/prefix.def \
   10.11     sbcl/src/runtime/sbcl.mk \
   10.12     `grep '^LIBSBCL=' sbcl/src/runtime/sbcl.mk | cut -d= -f2- | while read lib; do echo sbcl/src/runtime/$lib; done` \
   10.13     sbcl/BUGS sbcl/COPYING sbcl/CREDITS sbcl/INSTALL sbcl/NEWS sbcl/README \
    11.1--- a/scripts/dist-sbcl-source.sh	Fri May 24 22:04:12 2024 +0000
    11.2+++ b/scripts/dist-sbcl-source.sh	Sat May 25 23:17:00 2024 -0400
    11.3@@ -1,6 +1,6 @@
    11.4 #!/bin/sh
    11.5 set -e
    11.6-cd build/src/sbcl
    11.7+cd .stash/src/sbcl
    11.8 sh clean.sh
    11.9 cd ..
   11.10 tar -I 'zstd' -cf ../../dist/sbcl-source.tar.zst --exclude .git sbcl
    12.1--- a/scripts/get-cl.sh	Fri May 24 22:04:12 2024 +0000
    12.2+++ b/scripts/get-cl.sh	Sat May 25 23:17:00 2024 -0400
    12.3@@ -1,5 +1,5 @@
    12.4 #!/usr/bin/env bash
    12.5-TARGETDIR=${1:-build/cl}
    12.6+TARGETDIR=${1:-.stash/src/cl}
    12.7 hg clone https://vc.compiler.company/comp/cl $TARGETDIR
    12.8 pushd $TARGETDIR
    12.9 make
    13.1--- a/scripts/get-code.sh	Fri May 24 22:04:12 2024 +0000
    13.2+++ b/scripts/get-code.sh	Sat May 25 23:17:00 2024 -0400
    13.3@@ -1,7 +1,7 @@
    13.4 #!/usr/bin/env bash
    13.5 # Get The Compiler Company source code
    13.6 SRC="${1:-code}"
    13.7-OUT=build/src/$SRC
    13.8+OUT=.stash/src/$SRC
    13.9 mkdir -pv $OUT
   13.10 cd $OUT
   13.11 wget -nc https://packy.compiler.company/bundle/$SRC.tar.zst 
    14.1--- a/scripts/get-ecl.sh	Fri May 24 22:04:12 2024 +0000
    14.2+++ b/scripts/get-ecl.sh	Sat May 25 23:17:00 2024 -0400
    14.3@@ -1,4 +1,4 @@
    14.4 #!/usr/bin/env bash
    14.5 # get ECL source code
    14.6-TARGETDIR=${1:-build/src/ecl}
    14.7+TARGETDIR=${1:-.stash/src/ecl}
    14.8 git clone https://vc.compiler.company/packy/ecl.git $TARGETDIR
    15.1--- a/scripts/get-emacs.sh	Fri May 24 22:04:12 2024 +0000
    15.2+++ b/scripts/get-emacs.sh	Sat May 25 23:17:00 2024 -0400
    15.3@@ -1,3 +1,3 @@
    15.4 #!/usr/bin/env bash
    15.5 # get Emacs source code
    15.6-git clone https://vc.compiler.company/packy/emacs.git build/src/emacs
    15.7+git clone https://vc.compiler.company/packy/emacs.git .stash/src/emacs
    16.1--- a/scripts/get-etc.sh	Fri May 24 22:04:12 2024 +0000
    16.2+++ b/scripts/get-etc.sh	Sat May 25 23:17:00 2024 -0400
    16.3@@ -1,3 +1,3 @@
    16.4 #!/bin/bash
    16.5-TARGETDIR=${1:-build/etc}
    16.6+TARGETDIR=${1:-.stash/etc}
    16.7 hg clone https://vc.compiler.company/comp/etc $TARGETDIR
    17.1--- a/scripts/get-linux.sh	Fri May 24 22:04:12 2024 +0000
    17.2+++ b/scripts/get-linux.sh	Sat May 25 23:17:00 2024 -0400
    17.3@@ -23,7 +23,7 @@
    17.4 VER="${1:-$HOST_VER}"
    17.5 
    17.6 # Where to download the tarball and verification data.
    17.7-TARGETDIR=${2:-build/linux-$VER}
    17.8+TARGETDIR=${2:-.stash/src/linux-$VER}
    17.9 
   17.10 # For CI and other automated infrastructure, you may want to
   17.11 # create a keyring containing the keys belonging to:
    18.1--- a/scripts/get-lust.sh	Fri May 24 22:04:12 2024 +0000
    18.2+++ b/scripts/get-lust.sh	Sat May 25 23:17:00 2024 -0400
    18.3@@ -1,6 +1,6 @@
    18.4 #!/usr/bin/env bash
    18.5 # install the Lonely Rust compiler source code
    18.6-TARGETDIR=${1:-build/lust}
    18.7+TARGETDIR=${1:-.stash/lust}
    18.8 hg clone https://vc.compiler.company/comp/lust $TARGETDIR
    18.9 pushd $TARGETDIR
   18.10 make
    19.1--- a/scripts/get-nushell.sh	Fri May 24 22:04:12 2024 +0000
    19.2+++ b/scripts/get-nushell.sh	Sat May 25 23:17:00 2024 -0400
    19.3@@ -1,2 +1,2 @@
    19.4 #!/bin/sh
    19.5-git clone https://vc.compiler.company/packy/nushell.git build/src/nushell
    19.6+git clone https://vc.compiler.company/packy/nushell.git .stash/src/nushell
    20.1--- a/scripts/get-rocksdb.sh	Fri May 24 22:04:12 2024 +0000
    20.2+++ b/scripts/get-rocksdb.sh	Sat May 25 23:17:00 2024 -0400
    20.3@@ -1,3 +1,3 @@
    20.4 #!/usr/bin/env bash
    20.5 # get RocksDB source code
    20.6-git clone https://vc.compiler.company/packy/rocksdb.git build/src/rocksdb
    20.7+git clone https://vc.compiler.company/packy/rocksdb.git .stash/src/rocksdb
    21.1--- a/scripts/get-rust.sh	Fri May 24 22:04:12 2024 +0000
    21.2+++ b/scripts/get-rust.sh	Sat May 25 23:17:00 2024 -0400
    21.3@@ -8,5 +8,5 @@
    21.4 #rustup update
    21.5 #rustup default nightly
    21.6 
    21.7-TARGETDIR=${1:-build/src/rust}
    21.8+TARGETDIR=${1:-.stash/src/rust}
    21.9 git clone https://vc.compiler.company/packy/rust.git $TARGETDIR
    22.1--- a/scripts/get-sbcl.sh	Fri May 24 22:04:12 2024 +0000
    22.2+++ b/scripts/get-sbcl.sh	Sat May 25 23:17:00 2024 -0400
    22.3@@ -1,4 +1,4 @@
    22.4 #!/usr/bin/env bash
    22.5 # get SBCL source code
    22.6-TARGETDIR=${1:-build/src/sbcl}
    22.7+TARGETDIR=${1:-.stash/src/sbcl}
    22.8 git clone https://vc.compiler.company/packy/sbcl.git $TARGETDIR
    23.1--- a/scripts/get-stumpwm.sh	Fri May 24 22:04:12 2024 +0000
    23.2+++ b/scripts/get-stumpwm.sh	Sat May 25 23:17:00 2024 -0400
    23.3@@ -1,3 +1,3 @@
    23.4 #!/usr/bin/env bash
    23.5 # get Emacs source code
    23.6-git clone https://vc.compiler.company/packy/stumpwm.git build/src/stumpwm
    23.7+git clone https://vc.compiler.company/packy/stumpwm.git .stash/src/stumpwm
    24.1--- a/scripts/get-tree-sitter.sh	Fri May 24 22:04:12 2024 +0000
    24.2+++ b/scripts/get-tree-sitter.sh	Sat May 25 23:17:00 2024 -0400
    24.3@@ -1,2 +1,2 @@
    24.4 #!/usr/bin/bash
    24.5-git clone https://vc.compiler.company/packy/tree-sitter.git build/src/tree-sitter
    24.6+git clone https://vc.compiler.company/packy/tree-sitter.git .stash/src/tree-sitter
    25.1--- a/scripts/git-vendor-pull.sh	Fri May 24 22:04:12 2024 +0000
    25.2+++ b/scripts/git-vendor-pull.sh	Sat May 25 23:17:00 2024 -0400
    25.3@@ -7,8 +7,8 @@
    25.4 REMOTE="https://$DOMAIN/$NAME"
    25.5 BRANCH="${2:-master}"
    25.6 REPO="ssh://git@vc.compiler.company/packy/${1}"
    25.7-OUT="${3:-build/src/${1}}"
    25.8-mkdir -pv build/src
    25.9+OUT="${3:-.stash/src/${1}}"
   25.10+mkdir -pv .stash/src
   25.11 git clone $REPO $OUT
   25.12 pushd $OUT
   25.13 git pull $REMOTE $BRANCH
    26.1--- a/scripts/init.sh	Fri May 24 22:04:12 2024 +0000
    26.2+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.3@@ -1,682 +0,0 @@
    26.4-#!/bin/sh
    26.5-
    26.6-# run the compiler.company core installer (cc-install)
    26.7-
    26.8-# this script downloads and calls the 'cc-install' installer for the
    26.9-# current host. Follow the prompts and read the documentation to build
   26.10-# a fully compliant operator system.
   26.11-
   26.12-set -u
   26.13-
   26.14-COMPANY_UPDATE_ROOT="${COMPANY_UPDATE_ROOT:-https://packy.compiler.company/dist}"
   26.15-
   26.16-# this is copy/pasted from the actual release build.
   26.17-usage() {
   26.18-    cat <<EOF
   26.19-cc-install 0.1.0 (0941fa04c53d+ 2023-12-03)
   26.20-The compiler.company installer
   26.21-
   26.22-USAGE:
   26.23-    cc-install [OPTIONS]
   26.24-
   26.25-OPTIONS:
   26.26-    -y Disable confirmation prompt.
   26.27-    -h, --help
   26.28-            Print help information
   26.29-    -V, --version
   26.30-            Print version information
   26.31-EOF
   26.32-}
   26.33-
   26.34-main() {
   26.35-    downloader --check
   26.36-    need_cmd uname
   26.37-    need_cmd mktemp
   26.38-    need_cmd chmod
   26.39-    need_cmd mkdir
   26.40-    need_cmd rm
   26.41-    need_cmd rmdir
   26.42-
   26.43-    get_architecture || return 1
   26.44-    local _arch="$RETVAL"
   26.45-    assert_nz "$_arch" "arch"
   26.46-
   26.47-    local _ext=""
   26.48-    case "$_arch" in
   26.49-        *windows*)
   26.50-            _ext=".exe"
   26.51-            ;;
   26.52-    esac
   26.53-
   26.54-    local _url="${COMPANY_UPDATE_ROOT}/${_arch}/cc-install${_ext}"
   26.55-    local _dir
   26.56-    if ! _dir="$(ensure mktemp -d)"; then
   26.57-        # Because the previous command ran in a subshell, we must manually
   26.58-        # propagate exit status.
   26.59-        exit 1
   26.60-    fi
   26.61-    local _file="${_dir}/cc-install${_ext}"
   26.62-
   26.63-    local _ansi_escapes_are_valid=false
   26.64-    if [ -t 2 ]; then
   26.65-        if [ "${TERM+set}" = 'set' ]; then
   26.66-            case "$TERM" in
   26.67-                xterm*|rxvt*|urxvt*|linux*|vt*)
   26.68-                    _ansi_escapes_are_valid=true
   26.69-                ;;
   26.70-            esac
   26.71-        fi
   26.72-    fi
   26.73-
   26.74-    # check if we have to use /dev/tty to prompt the user
   26.75-    local need_tty=yes
   26.76-    for arg in "$@"; do
   26.77-        case "$arg" in
   26.78-            --help)
   26.79-                usage
   26.80-                exit 0
   26.81-                ;;
   26.82-            *)
   26.83-                OPTIND=1
   26.84-                if [ "${arg%%--*}" = "" ]; then
   26.85-                    # Long option (other than --help);
   26.86-                    # don't attempt to interpret it.
   26.87-                    continue
   26.88-                fi
   26.89-                while getopts :hy sub_arg "$arg"; do
   26.90-                    case "$sub_arg" in
   26.91-                        h)
   26.92-                            usage
   26.93-                            exit 0
   26.94-                            ;;
   26.95-                        y)
   26.96-                            # user wants to skip the prompt --
   26.97-                            # we don't need /dev/tty
   26.98-                            need_tty=no
   26.99-                            ;;
  26.100-                        *)
  26.101-                            ;;
  26.102-                        esac
  26.103-                done
  26.104-                ;;
  26.105-        esac
  26.106-    done
  26.107-
  26.108-    if $_ansi_escapes_are_valid; then
  26.109-        printf "\33[1minfo:\33[0m downloading installer\n" 1>&2
  26.110-    else
  26.111-        printf '%s\n' 'info: downloading installer' 1>&2
  26.112-    fi
  26.113-
  26.114-    ensure mkdir -p "$_dir"
  26.115-    ensure downloader "$_url" "$_file" "$_arch"
  26.116-    ensure chmod u+x "$_file"
  26.117-    if [ ! -x "$_file" ]; then
  26.118-        printf '%s\n' "Cannot execute $_file (likely because of mounting /tmp as noexec)." 1>&2
  26.119-        printf '%s\n' "Please copy the file to a location where you can execute binaries and run ./cc-install${_ext}." 1>&2
  26.120-        exit 1
  26.121-    fi
  26.122-
  26.123-    if [ "$need_tty" = "yes" ] && [ ! -t 0 ]; then
  26.124-        # The installer is going to want to ask for confirmation by
  26.125-        # reading stdin.  This script was piped into `sh` though and
  26.126-        # doesn't have stdin to pass to its children. Instead we're going
  26.127-        # to explicitly connect /dev/tty to the installer's stdin.
  26.128-        if [ ! -t 1 ]; then
  26.129-            err "Unable to run interactively. Run with -y to accept defaults, --help for additional options"
  26.130-        fi
  26.131-
  26.132-        ignore "$_file" "$@" < /dev/tty
  26.133-    else
  26.134-        ignore "$_file" "$@"
  26.135-    fi
  26.136-
  26.137-    local _retval=$?
  26.138-
  26.139-    ignore rm "$_file"
  26.140-    ignore rmdir "$_dir"
  26.141-
  26.142-    return "$_retval"
  26.143-}
  26.144-
  26.145-check_proc() {
  26.146-    # Check for /proc by looking for the /proc/self/exe link
  26.147-    # This is only run on Linux
  26.148-    if ! test -L /proc/self/exe ; then
  26.149-        err "fatal: Unable to find /proc/self/exe.  Is /proc mounted?  Installation cannot proceed without /proc."
  26.150-    fi
  26.151-}
  26.152-
  26.153-get_bitness() {
  26.154-    need_cmd head
  26.155-    # Architecture detection without dependencies beyond coreutils.
  26.156-    # ELF files start out "\x7fELF", and the following byte is
  26.157-    #   0x01 for 32-bit and
  26.158-    #   0x02 for 64-bit.
  26.159-    # The printf builtin on some shells like dash only supports octal
  26.160-    # escape sequences, so we use those.
  26.161-    local _current_exe_head
  26.162-    _current_exe_head=$(head -c 5 /proc/self/exe )
  26.163-    if [ "$_current_exe_head" = "$(printf '\177ELF\001')" ]; then
  26.164-        echo 32
  26.165-    elif [ "$_current_exe_head" = "$(printf '\177ELF\002')" ]; then
  26.166-        echo 64
  26.167-    else
  26.168-        err "unknown platform bitness"
  26.169-    fi
  26.170-}
  26.171-
  26.172-is_host_amd64_elf() {
  26.173-    need_cmd head
  26.174-    need_cmd tail
  26.175-    # ELF e_machine detection without dependencies beyond coreutils.
  26.176-    # Two-byte field at offset 0x12 indicates the CPU,
  26.177-    # but we're interested in it being 0x3E to indicate amd64, or not that.
  26.178-    local _current_exe_machine
  26.179-    _current_exe_machine=$(head -c 19 /proc/self/exe | tail -c 1)
  26.180-    [ "$_current_exe_machine" = "$(printf '\076')" ]
  26.181-}
  26.182-
  26.183-get_endianness() {
  26.184-    local cputype=$1
  26.185-    local suffix_eb=$2
  26.186-    local suffix_el=$3
  26.187-
  26.188-    # detect endianness without od/hexdump, like get_bitness() does.
  26.189-    need_cmd head
  26.190-    need_cmd tail
  26.191-
  26.192-    local _current_exe_endianness
  26.193-    _current_exe_endianness="$(head -c 6 /proc/self/exe | tail -c 1)"
  26.194-    if [ "$_current_exe_endianness" = "$(printf '\001')" ]; then
  26.195-        echo "${cputype}${suffix_el}"
  26.196-    elif [ "$_current_exe_endianness" = "$(printf '\002')" ]; then
  26.197-        echo "${cputype}${suffix_eb}"
  26.198-    else
  26.199-        err "unknown platform endianness"
  26.200-    fi
  26.201-}
  26.202-
  26.203-get_architecture() {
  26.204-    local _ostype _cputype _bitness _arch _clibtype
  26.205-    _ostype="$(uname -s)"
  26.206-    _cputype="$(uname -m)"
  26.207-    _clibtype="gnu"
  26.208-
  26.209-    if [ "$_ostype" = Linux ]; then
  26.210-        if [ "$(uname -o)" = Android ]; then
  26.211-            _ostype=Android
  26.212-        fi
  26.213-        if ldd --version 2>&1 | grep -q 'musl'; then
  26.214-            _clibtype="musl"
  26.215-        fi
  26.216-    fi
  26.217-
  26.218-    if [ "$_ostype" = Darwin ] && [ "$_cputype" = i386 ]; then
  26.219-        # Darwin `uname -m` lies
  26.220-        if sysctl hw.optional.x86_64 | grep -q ': 1'; then
  26.221-            _cputype=x86_64
  26.222-        fi
  26.223-    fi
  26.224-
  26.225-    if [ "$_ostype" = SunOS ]; then
  26.226-        # Both Solaris and illumos presently announce as "SunOS" in "uname -s"
  26.227-        # so use "uname -o" to disambiguate.  We use the full path to the
  26.228-        # system uname in case the user has coreutils uname first in PATH,
  26.229-        # which has historically sometimes printed the wrong value here.
  26.230-        if [ "$(/usr/bin/uname -o)" = illumos ]; then
  26.231-            _ostype=illumos
  26.232-        fi
  26.233-
  26.234-        # illumos systems have multi-arch userlands, and "uname -m" reports the
  26.235-        # machine hardware name; e.g., "i86pc" on both 32- and 64-bit x86
  26.236-        # systems.  Check for the native (widest) instruction set on the
  26.237-        # running kernel:
  26.238-        if [ "$_cputype" = i86pc ]; then
  26.239-            _cputype="$(isainfo -n)"
  26.240-        fi
  26.241-    fi
  26.242-
  26.243-    case "$_ostype" in
  26.244-
  26.245-        Android)
  26.246-            _ostype=linux-android
  26.247-            ;;
  26.248-
  26.249-        Linux)
  26.250-            check_proc
  26.251-            _ostype=unknown-linux-$_clibtype
  26.252-            _bitness=$(get_bitness)
  26.253-            ;;
  26.254-
  26.255-        FreeBSD)
  26.256-            _ostype=unknown-freebsd
  26.257-            ;;
  26.258-
  26.259-        NetBSD)
  26.260-            _ostype=unknown-netbsd
  26.261-            ;;
  26.262-
  26.263-        DragonFly)
  26.264-            _ostype=unknown-dragonfly
  26.265-            ;;
  26.266-
  26.267-        Darwin)
  26.268-            _ostype=apple-darwin
  26.269-            ;;
  26.270-
  26.271-        illumos)
  26.272-            _ostype=unknown-illumos
  26.273-            ;;
  26.274-
  26.275-        MINGW* | MSYS* | CYGWIN* | Windows_NT)
  26.276-            _ostype=pc-windows-gnu
  26.277-            ;;
  26.278-
  26.279-        *)
  26.280-            err "unrecognized OS type: $_ostype"
  26.281-            ;;
  26.282-
  26.283-    esac
  26.284-
  26.285-    case "$_cputype" in
  26.286-
  26.287-        i386 | i486 | i686 | i786 | x86)
  26.288-            _cputype=i686
  26.289-            ;;
  26.290-
  26.291-        xscale | arm)
  26.292-            _cputype=arm
  26.293-            if [ "$_ostype" = "linux-android" ]; then
  26.294-                _ostype=linux-androideabi
  26.295-            fi
  26.296-            ;;
  26.297-
  26.298-        armv6l)
  26.299-            _cputype=arm
  26.300-            if [ "$_ostype" = "linux-android" ]; then
  26.301-                _ostype=linux-androideabi
  26.302-            else
  26.303-                _ostype="${_ostype}eabihf"
  26.304-            fi
  26.305-            ;;
  26.306-
  26.307-        armv7l | armv8l)
  26.308-            _cputype=armv7
  26.309-            if [ "$_ostype" = "linux-android" ]; then
  26.310-                _ostype=linux-androideabi
  26.311-            else
  26.312-                _ostype="${_ostype}eabihf"
  26.313-            fi
  26.314-            ;;
  26.315-
  26.316-        aarch64 | arm64)
  26.317-            _cputype=aarch64
  26.318-            ;;
  26.319-
  26.320-        x86_64 | x86-64 | x64 | amd64)
  26.321-            _cputype=x86_64
  26.322-            ;;
  26.323-
  26.324-        mips)
  26.325-            _cputype=$(get_endianness mips '' el)
  26.326-            ;;
  26.327-
  26.328-        mips64)
  26.329-            if [ "$_bitness" -eq 64 ]; then
  26.330-                # only n64 ABI is supported for now
  26.331-                _ostype="${_ostype}abi64"
  26.332-                _cputype=$(get_endianness mips64 '' el)
  26.333-            fi
  26.334-            ;;
  26.335-
  26.336-        ppc)
  26.337-            _cputype=powerpc
  26.338-            ;;
  26.339-
  26.340-        ppc64)
  26.341-            _cputype=powerpc64
  26.342-            ;;
  26.343-
  26.344-        ppc64le)
  26.345-            _cputype=powerpc64le
  26.346-            ;;
  26.347-
  26.348-        s390x)
  26.349-            _cputype=s390x
  26.350-            ;;
  26.351-        riscv64)
  26.352-            _cputype=riscv64gc
  26.353-            ;;
  26.354-        loongarch64)
  26.355-            _cputype=loongarch64
  26.356-            ;;
  26.357-        *)
  26.358-            err "unknown CPU type: $_cputype"
  26.359-
  26.360-    esac
  26.361-
  26.362-    # Detect 64-bit linux with 32-bit userland
  26.363-    if [ "${_ostype}" = unknown-linux-gnu ] && [ "${_bitness}" -eq 32 ]; then
  26.364-        case $_cputype in
  26.365-            x86_64)
  26.366-                if [ -n "${CPUTYPE:-}" ]; then
  26.367-                    _cputype="$CPUTYPE"
  26.368-                else {
  26.369-                    # 32-bit executable for amd64 = x32
  26.370-                    if is_host_amd64_elf; then {
  26.371-                         echo "This host is running an x32 userland; as it stands, x32 support is poor," 1>&2
  26.372-                         echo "and there isn't a native toolchain -- you will have to install" 1>&2
  26.373-                         echo "multiarch compatibility with i686 and/or amd64, then select one" 1>&2
  26.374-                         echo "by re-running this script with the CPUTYPE environment variable" 1>&2
  26.375-                         echo "set to i686 or x86_64, respectively." 1>&2
  26.376-                         exit 1
  26.377-                    }; else
  26.378-                        _cputype=i686
  26.379-                    fi
  26.380-                }; fi
  26.381-                ;;
  26.382-            mips64)
  26.383-                _cputype=$(get_endianness mips '' el)
  26.384-                ;;
  26.385-            powerpc64)
  26.386-                _cputype=powerpc
  26.387-                ;;
  26.388-            aarch64)
  26.389-                _cputype=armv7
  26.390-                if [ "$_ostype" = "linux-android" ]; then
  26.391-                    _ostype=linux-androideabi
  26.392-                else
  26.393-                    _ostype="${_ostype}eabihf"
  26.394-                fi
  26.395-                ;;
  26.396-            riscv64gc)
  26.397-                err "riscv64 with 32-bit userland unsupported"
  26.398-                ;;
  26.399-        esac
  26.400-    fi
  26.401-
  26.402-    if [ "$_ostype" = "unknown-linux-gnueabihf" ] && [ "$_cputype" = armv7 ]; then
  26.403-        if ensure grep '^Features' /proc/cpuinfo | grep -q -v neon; then
  26.404-            # At least one processor does not have NEON.
  26.405-            _cputype=arm
  26.406-        fi
  26.407-    fi
  26.408-
  26.409-    _arch="${_cputype}-${_ostype}"
  26.410-
  26.411-    RETVAL="$_arch"
  26.412-}
  26.413-
  26.414-say() {
  26.415-    printf 'compiler.company: %s\n' "$1"
  26.416-}
  26.417-
  26.418-err() {
  26.419-    say "$1" >&2
  26.420-    exit 1
  26.421-}
  26.422-
  26.423-need_cmd() {
  26.424-    if ! check_cmd "$1"; then
  26.425-        err "need '$1' (command not found)"
  26.426-    fi
  26.427-}
  26.428-
  26.429-check_cmd() {
  26.430-    command -v "$1" > /dev/null 2>&1
  26.431-}
  26.432-
  26.433-assert_nz() {
  26.434-    if [ -z "$1" ]; then err "assert_nz $2"; fi
  26.435-}
  26.436-
  26.437-# Run a command that should never fail. If the command fails execution
  26.438-# will immediately terminate with an error showing the failing
  26.439-# command.
  26.440-ensure() {
  26.441-    if ! "$@"; then err "command failed: $*"; fi
  26.442-}
  26.443-
  26.444-# This is just for indicating that commands' results are being
  26.445-# intentionally ignored. Usually, because it's being executed
  26.446-# as part of error handling.
  26.447-ignore() {
  26.448-    "$@"
  26.449-}
  26.450-
  26.451-# This wraps curl or wget. Try curl first, if not installed,
  26.452-# use wget instead.
  26.453-downloader() {
  26.454-    local _dld
  26.455-    local _ciphersuites
  26.456-    local _err
  26.457-    local _status
  26.458-    local _retry
  26.459-    if check_cmd curl; then
  26.460-        _dld=curl
  26.461-    elif check_cmd wget; then
  26.462-        _dld=wget
  26.463-    else
  26.464-        _dld='curl or wget' # to be used in error message of need_cmd
  26.465-    fi
  26.466-
  26.467-    if [ "$1" = --check ]; then
  26.468-        need_cmd "$_dld"
  26.469-    elif [ "$_dld" = curl ]; then
  26.470-        check_curl_for_retry_support
  26.471-        _retry="$RETVAL"
  26.472-        get_ciphersuites_for_curl
  26.473-        _ciphersuites="$RETVAL"
  26.474-        if [ -n "$_ciphersuites" ]; then
  26.475-            _err=$(curl $_retry --proto '=https' --tlsv1.2 --ciphers "$_ciphersuites" --silent --show-error --fail --location "$1" --output "$2" 2>&1)
  26.476-            _status=$?
  26.477-        else
  26.478-            echo "Warning: Not enforcing strong cipher suites for TLS, this is potentially less secure"
  26.479-            if ! check_help_for "$3" curl --proto --tlsv1.2; then
  26.480-                echo "Warning: Not enforcing TLS v1.2, this is potentially less secure"
  26.481-                _err=$(curl $_retry --silent --show-error --fail --location "$1" --output "$2" 2>&1)
  26.482-                _status=$?
  26.483-            else
  26.484-                _err=$(curl $_retry --proto '=https' --tlsv1.2 --silent --show-error --fail --location "$1" --output "$2" 2>&1)
  26.485-                _status=$?
  26.486-            fi
  26.487-        fi
  26.488-        if [ -n "$_err" ]; then
  26.489-            echo "$_err" >&2
  26.490-            if echo "$_err" | grep -q 404$; then
  26.491-                err "installer for platform '$3' not found, this may be unsupported"
  26.492-            fi
  26.493-        fi
  26.494-        return $_status
  26.495-    elif [ "$_dld" = wget ]; then
  26.496-        if [ "$(wget -V 2>&1|head -2|tail -1|cut -f1 -d" ")" = "BusyBox" ]; then
  26.497-            echo "Warning: using the BusyBox version of wget.  Not enforcing strong cipher suites for TLS or TLS v1.2, this is potentially less secure"
  26.498-            _err=$(wget "$1" -O "$2" 2>&1)
  26.499-            _status=$?
  26.500-        else
  26.501-            get_ciphersuites_for_wget
  26.502-            _ciphersuites="$RETVAL"
  26.503-            if [ -n "$_ciphersuites" ]; then
  26.504-                _err=$(wget --https-only --secure-protocol=TLSv1_2 --ciphers "$_ciphersuites" "$1" -O "$2" 2>&1)
  26.505-                _status=$?
  26.506-            else
  26.507-                echo "Warning: Not enforcing strong cipher suites for TLS, this is potentially less secure"
  26.508-                if ! check_help_for "$3" wget --https-only --secure-protocol; then
  26.509-                    echo "Warning: Not enforcing TLS v1.2, this is potentially less secure"
  26.510-                    _err=$(wget "$1" -O "$2" 2>&1)
  26.511-                    _status=$?
  26.512-                else
  26.513-                    _err=$(wget --https-only --secure-protocol=TLSv1_2 "$1" -O "$2" 2>&1)
  26.514-                    _status=$?
  26.515-                fi
  26.516-            fi
  26.517-        fi
  26.518-        if [ -n "$_err" ]; then
  26.519-            echo "$_err" >&2
  26.520-            if echo "$_err" | grep -q ' 404 Not Found$'; then
  26.521-                err "installer for platform '$3' not found, this may be unsupported"
  26.522-            fi
  26.523-        fi
  26.524-        return $_status
  26.525-    else
  26.526-        err "Unknown downloader"   # should not reach here
  26.527-    fi
  26.528-}
  26.529-
  26.530-check_help_for() {
  26.531-    local _arch
  26.532-    local _cmd
  26.533-    local _arg
  26.534-    _arch="$1"
  26.535-    shift
  26.536-    _cmd="$1"
  26.537-    shift
  26.538-
  26.539-    local _category
  26.540-    if "$_cmd" --help | grep -q 'For all options use the manual or "--help all".'; then
  26.541-      _category="all"
  26.542-    else
  26.543-      _category=""
  26.544-    fi
  26.545-
  26.546-    case "$_arch" in
  26.547-
  26.548-        *darwin*)
  26.549-        if check_cmd sw_vers; then
  26.550-            case $(sw_vers -productVersion) in
  26.551-                10.*)
  26.552-                    # If we're running on macOS, older than 10.13, then we always
  26.553-                    # fail to find these options to force fallback
  26.554-                    if [ "$(sw_vers -productVersion | cut -d. -f2)" -lt 13 ]; then
  26.555-                        # Older than 10.13
  26.556-                        echo "Warning: Detected macOS platform older than 10.13"
  26.557-                        return 1
  26.558-                    fi
  26.559-                    ;;
  26.560-                11.*)
  26.561-                    # We assume Big Sur will be OK for now
  26.562-                    ;;
  26.563-                *)
  26.564-                    # Unknown product version, warn and continue
  26.565-                    echo "Warning: Detected unknown macOS major version: $(sw_vers -productVersion)"
  26.566-                    echo "Warning TLS capabilities detection may fail"
  26.567-                    ;;
  26.568-            esac
  26.569-        fi
  26.570-        ;;
  26.571-
  26.572-    esac
  26.573-
  26.574-    for _arg in "$@"; do
  26.575-        if ! "$_cmd" --help "$_category" | grep -q -- "$_arg"; then
  26.576-            return 1
  26.577-        fi
  26.578-    done
  26.579-
  26.580-    true # not strictly needed
  26.581-}
  26.582-
  26.583-# Check if curl supports the --retry flag, then pass it to the curl invocation.
  26.584-check_curl_for_retry_support() {
  26.585-    local _retry_supported=""
  26.586-    # "unspecified" is for arch, allows for possibility old OS using macports, homebrew, etc.
  26.587-    if check_help_for "notspecified" "curl" "--retry"; then
  26.588-        _retry_supported="--retry 3"
  26.589-        if check_help_for "notspecified" "curl" "--continue-at"; then
  26.590-            # "-C -" tells curl to automatically find where to resume the download when retrying.
  26.591-            _retry_supported="--retry 3 -C -"
  26.592-        fi
  26.593-    fi
  26.594-
  26.595-    RETVAL="$_retry_supported"
  26.596-}
  26.597-
  26.598-# Return cipher suite string specified by user, otherwise return strong TLS 1.2-1.3 cipher suites
  26.599-# if support by local tools is detected. Detection currently supports these curl backends:
  26.600-# GnuTLS and OpenSSL (possibly also LibreSSL and BoringSSL). Return value can be empty.
  26.601-get_ciphersuites_for_curl() {
  26.602-    if [ -n "${COMPANY_TLS_CIPHERSUITES-}" ]; then
  26.603-        # user specified custom cipher suites, assume they know what they're doing
  26.604-        RETVAL="$COMPANY_TLS_CIPHERSUITES"
  26.605-        return
  26.606-    fi
  26.607-
  26.608-    local _openssl_syntax="no"
  26.609-    local _gnutls_syntax="no"
  26.610-    local _backend_supported="yes"
  26.611-    if curl -V | grep -q ' OpenSSL/'; then
  26.612-        _openssl_syntax="yes"
  26.613-    elif curl -V | grep -iq ' LibreSSL/'; then
  26.614-        _openssl_syntax="yes"
  26.615-    elif curl -V | grep -iq ' BoringSSL/'; then
  26.616-        _openssl_syntax="yes"
  26.617-    elif curl -V | grep -iq ' GnuTLS/'; then
  26.618-        _gnutls_syntax="yes"
  26.619-    else
  26.620-        _backend_supported="no"
  26.621-    fi
  26.622-
  26.623-    local _args_supported="no"
  26.624-    if [ "$_backend_supported" = "yes" ]; then
  26.625-        # "unspecified" is for arch, allows for possibility old OS using macports, homebrew, etc.
  26.626-        if check_help_for "notspecified" "curl" "--tlsv1.2" "--ciphers" "--proto"; then
  26.627-            _args_supported="yes"
  26.628-        fi
  26.629-    fi
  26.630-
  26.631-    local _cs=""
  26.632-    if [ "$_args_supported" = "yes" ]; then
  26.633-        if [ "$_openssl_syntax" = "yes" ]; then
  26.634-            _cs=$(get_strong_ciphersuites_for "openssl")
  26.635-        elif [ "$_gnutls_syntax" = "yes" ]; then
  26.636-            _cs=$(get_strong_ciphersuites_for "gnutls")
  26.637-        fi
  26.638-    fi
  26.639-
  26.640-    RETVAL="$_cs"
  26.641-}
  26.642-
  26.643-# Return cipher suite string specified by user, otherwise return strong TLS 1.2-1.3 cipher suites
  26.644-# if support by local tools is detected. Detection currently supports these wget backends:
  26.645-# GnuTLS and OpenSSL (possibly also LibreSSL and BoringSSL). Return value can be empty.
  26.646-get_ciphersuites_for_wget() {
  26.647-    if [ -n "${COMPANY_TLS_CIPHERSUITES-}" ]; then
  26.648-        # user specified custom cipher suites, assume they know what they're doing
  26.649-        RETVAL="$COMPANY_TLS_CIPHERSUITES"
  26.650-        return
  26.651-    fi
  26.652-
  26.653-    local _cs=""
  26.654-    if wget -V | grep -q '\-DHAVE_LIBSSL'; then
  26.655-        # "unspecified" is for arch, allows for possibility old OS using macports, homebrew, etc.
  26.656-        if check_help_for "notspecified" "wget" "TLSv1_2" "--ciphers" "--https-only" "--secure-protocol"; then
  26.657-            _cs=$(get_strong_ciphersuites_for "openssl")
  26.658-        fi
  26.659-    elif wget -V | grep -q '\-DHAVE_LIBGNUTLS'; then
  26.660-        # "unspecified" is for arch, allows for possibility old OS using macports, homebrew, etc.
  26.661-        if check_help_for "notspecified" "wget" "TLSv1_2" "--ciphers" "--https-only" "--secure-protocol"; then
  26.662-            _cs=$(get_strong_ciphersuites_for "gnutls")
  26.663-        fi
  26.664-    fi
  26.665-
  26.666-    RETVAL="$_cs"
  26.667-}
  26.668-
  26.669-# Return strong TLS 1.2-1.3 cipher suites in OpenSSL or GnuTLS syntax. TLS 1.2
  26.670-# excludes non-ECDHE and non-AEAD cipher suites. DHE is excluded due to bad
  26.671-# DH params often found on servers (see RFC 7919). Sequence matches or is
  26.672-# similar to Firefox 68 ESR with weak cipher suites disabled via about:config.
  26.673-# $1 must be openssl or gnutls.
  26.674-get_strong_ciphersuites_for() {
  26.675-    if [ "$1" = "openssl" ]; then
  26.676-        # OpenSSL is forgiving of unknown values, no problems with TLS 1.3 values on versions that don't support it yet.
  26.677-        echo "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384"
  26.678-    elif [ "$1" = "gnutls" ]; then
  26.679-        # GnuTLS isn't forgiving of unknown values, so this may require a GnuTLS version that supports TLS 1.3 even if wget doesn't.
  26.680-        # Begin with SECURE128 (and higher) then remove/add to build cipher suites. Produces same 9 cipher suites as OpenSSL but in slightly different order.
  26.681-        echo "SECURE128:-VERS-SSL3.0:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-DTLS-ALL:-CIPHER-ALL:-MAC-ALL:-KX-ALL:+AEAD:+ECDHE-ECDSA:+ECDHE-RSA:+AES-128-GCM:+CHACHA20-POLY1305:+AES-256-GCM"
  26.682-    fi
  26.683-}
  26.684-
  26.685-main "$@" || exit 1
    27.1--- a/scripts/install-core-pack.sh	Fri May 24 22:04:12 2024 +0000
    27.2+++ b/scripts/install-core-pack.sh	Sat May 25 23:17:00 2024 -0400
    27.3@@ -1,6 +1,6 @@
    27.4 #!/bin/sh
    27.5 set -e
    27.6-cd build/src
    27.7+cd .stash/src
    27.8 curl -O https://packy.compiler.company/dist/x86_64-unknown-linux-gnu/core.tar.zst
    27.9 unzstd core.tar.zst
   27.10 tar -xvf core.tar
    28.1--- a/scripts/install-emacs-mini-pack.sh	Fri May 24 22:04:12 2024 +0000
    28.2+++ b/scripts/install-emacs-mini-pack.sh	Sat May 25 23:17:00 2024 -0400
    28.3@@ -1,6 +1,6 @@
    28.4 #!/bin/sh
    28.5 set -e
    28.6-cd build/src
    28.7+cd .stash/src
    28.8 curl -O https://packy.compiler.company/dist/x86_64-unknown-linux-gnu/emacs-mini.tar.zst
    28.9 unzstd emacs-mini.tar.zst
   28.10 tar -xvf emacs-mini.tar
    29.1--- a/scripts/install-emacs-pack.sh	Fri May 24 22:04:12 2024 +0000
    29.2+++ b/scripts/install-emacs-pack.sh	Sat May 25 23:17:00 2024 -0400
    29.3@@ -1,6 +1,6 @@
    29.4 #!/bin/sh
    29.5 set -e
    29.6-cd build/src
    29.7+cd .stash/src
    29.8 curl -O https://packy.compiler.company/dist/x86_64-unknown-linux-gnu/emacs.tar.zst
    29.9 unzstd emacs.tar.zst
   29.10 tar -xvf emacs.tar
    30.1--- a/scripts/install-nushell-pack.sh	Fri May 24 22:04:12 2024 +0000
    30.2+++ b/scripts/install-nushell-pack.sh	Sat May 25 23:17:00 2024 -0400
    30.3@@ -1,6 +1,6 @@
    30.4 #!/bin/sh
    30.5 set -e
    30.6-cd build/src 
    30.7+cd .stash/src 
    30.8 mkdir nushell && cd nushell
    30.9 curl -O https://packy.compiler.company/dist/x86_64-unknown-linux-gnu/nushell.tar.zst
   30.10 unzstd nushell.tar.zst
    31.1--- a/scripts/install-rocksdb-pack.sh	Fri May 24 22:04:12 2024 +0000
    31.2+++ b/scripts/install-rocksdb-pack.sh	Sat May 25 23:17:00 2024 -0400
    31.3@@ -2,7 +2,7 @@
    31.4 # the rocksdb pack only includes the shared library and headers. the
    31.5 # static library is shipped separately.
    31.6 set -e
    31.7-cd build/src
    31.8+cd .stash/src
    31.9 curl -O https://packy.compiler.company/dist/x86_64-unknown-linux-gnu/rocksdb.tar.zst
   31.10 unzstd rocksdb.tar.zst
   31.11 tar -xvf rocksdb.tar
    32.1--- a/scripts/install-sbcl-pack.sh	Fri May 24 22:04:12 2024 +0000
    32.2+++ b/scripts/install-sbcl-pack.sh	Sat May 25 23:17:00 2024 -0400
    32.3@@ -1,6 +1,6 @@
    32.4 #!/bin/sh
    32.5 set -e
    32.6-cd build/src 
    32.7+cd .stash/src 
    32.8 curl -O https://packy.compiler.company/dist/x86_64-unknown-linux-gnu/sbcl.tar.zst
    32.9 unzstd sbcl.tar.zst
   32.10 tar -xvf sbcl.tar
    33.1--- a/scripts/quicklisp-install.sh	Fri May 24 22:04:12 2024 +0000
    33.2+++ b/scripts/quicklisp-install.sh	Sat May 25 23:17:00 2024 -0400
    33.3@@ -12,5 +12,5 @@
    33.4 fi
    33.5 # installs to /usr/local/share/lisp
    33.6 sbcl --non-interactive \
    33.7-     --load build/quicklisp.lisp \
    33.8+     --load .stash/quicklisp.lisp \
    33.9      --eval "(quicklisp-quickstart:install :path \"/usr/local/share/quicklisp\" :dist-version $QUICKLISP_DIST_VERSION :client-version $QUICKLISP_CLIENT_VERSION)"
    34.1--- a/scripts/tree-sitter-install-langs.sh	Fri May 24 22:04:12 2024 +0000
    34.2+++ b/scripts/tree-sitter-install-langs.sh	Sat May 25 23:17:00 2024 -0400
    34.3@@ -9,7 +9,7 @@
    34.4 ) 
    34.5 # see https://tree-sitter.github.io/tree-sitter/#parsers for a
    34.6 # complete list of parsers available
    34.7-TARGETDIR="${1:-build/src/tree-sitter-langs}"
    34.8+TARGETDIR="${1:-.stash/src/tree-sitter-langs}"
    34.9 PREFIX=${PREFIX:-/usr/local}
   34.10 CC=${CC:-clang}
   34.11 CXX=${CXX:-clang++}
    35.1--- a/skelfile	Fri May 24 22:04:12 2024 +0000
    35.2+++ b/skelfile	Sat May 25 23:17:00 2024 -0400
    35.3@@ -8,16 +8,34 @@
    35.4 :vc (:hg "https://vc.compiler.company/comp/infra")
    35.5 :docs ((:org "readme"))
    35.6 :scripts "scripts"
    35.7-:rules 
    35.8-((default (emacs rocksdb sbcl rust))
    35.9- (emacs () #$make emacs-build$#)
   35.10- (emacs () #$make emacs-build-mini$#)
   35.11- (rocksdb () #$make rocksdb-build-shared$#)
   35.12- (rocksdb-static () #$make rocksdb-build-static$#)
   35.13- (sbcl () #$make sbcl-build-shared$#)
   35.14- (quicklisp () #$make quicklisp-install$#)
   35.15- (stumpwm () #$make stumpwm-build$#)
   35.16- (tree-sitter () #$make tree-sitter-build$#)
   35.17+:rules
   35.18+((check (#$./check.sh$#))
   35.19+ (archlinux () #$podman build -f containers/Containerfile.archlinux -t localhost/archlinux$#)
   35.20+ (alpine () #$podman build -f containers/Containerfile.alpine -t localhost/alpine$#)
   35.21+ (ubuntu () #$podman build -f containers/Containerfile.alpine -t localhost/alpine$#)
   35.22+ (box (archlinux) #$podman build -f containers/Containerfile.box -t localhost/box$#)
   35.23+ (worker (alpine) #$podman build -f containers/Containerfile.worker -t localhost/worker$#)
   35.24+ (operator (box) #$podman build -f containers/Containerfile.operator -t localhost/operator$#)
   35.25+ (containers (archlinux alpine ubuntu box worker operator))
   35.26+ (src () #$mkdir -pv .stash/src$#)
   35.27+ (emacs (src) #$./scripts/get-emacs.sh$#
   35.28+        #$cd .stash/src/emacs && ./autogen.sh$#
   35.29+        #$scripts/build-emacs.sh$#)
   35.30+ (emacs-mini (src)
   35.31+             #$cd .stash/src/emacs && ./autogen.sh$#
   35.32+             #$scripts/build-emacs-mini.sh$#)
   35.33+ (rocksdb (src) #$make rocksdb-build-shared$#)
   35.34+ (rocksdb-static (src) #$make rocksdb-build-static$#)
   35.35+ (sbcl (src) #$cd .stash/src/sbcl &&
   35.36+       ./make.sh --dynamic-space-size=8Gb --without-gencgc --with-mark-region-gc --fancy$#)
   35.37+ (sbcl-gencgc (src) #$cd .stash/src/sbcl &&
   35.38+       ./make.sh --dynamic-space-size=8Gb --fancy$#)
   35.39+ (quicklisp () #$cd .stash && curl -O https://beta.quicklisp.org/quicklisp.lisp$#
   35.40+            #$./scripts/quicklisp-install.sh$#)
   35.41+ (stumpwm (src) #$scripts/get-stumpwm.sh$#
   35.42+          #$cd .stash/src/stumpwm && ./autogen.sh && ./configure && make$#)
   35.43+ (tree-sitter (src) #$scripts/get-tree-sitter.sh$#)
   35.44  (linux () #$make linux$#)
   35.45- (clean () #$make clean$#)
   35.46- (rust () #$make rust$#))
   35.47+ (clean () #$rm -vf .stash$#)
   35.48+ (rust () #$make rust$#)
   35.49+ (rustup () #$curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y$#))