# HG changeset patch # User Richard Westhaver # Date 1718397378 0 # Node ID 9d6a767d72f0cfdad98b7b223071aa71e3ff7779 # Parent ad70dec68fa138e14f5849eecff1360153d6f744 add ublksrv and blake3 diff -r ad70dec68fa1 -r 9d6a767d72f0 autogen.lisp --- a/autogen.lisp Fri Jun 14 19:20:13 2024 +0000 +++ b/autogen.lisp Fri Jun 14 20:36:18 2024 +0000 @@ -26,6 +26,7 @@ (unless (probe-file hcfg) (print #0$./check.sh$#)) hcfg))) + (defun gethost (k) (getf *host* k)) (defun getprofile (k) (getf *profile* k)) (init-skel-vars) @@ -43,6 +44,7 @@ "Auto-generate the INFRA system." (info! "starting autogen.lisp" sb-ext:*core-pathname*) (terpri) + ;; print host, env, profile (format t "core: ~A~%" *core*) (terpri) (println "host:") @@ -55,17 +57,21 @@ (println "profile:") (loop for (k v) on *profile* by 'cddr do (format t " ~A = ~A~%" k v)) - -;;; init stash (via skel) - (sk-call* *skel-project* :clean :src) - + ;; + (sk-call* *skel-project* :clean :bootstrap) (let ((rocksdb-builder (sb-thread:make-thread (lambda () (sk-call* *skel-project* :rocksdb)))) (sbcl-builder (sb-thread:make-thread (lambda () (sk-call* *skel-project* :sbcl :sbcl-shared)))) (archlinux-pod-builder (sb-thread:make-thread (lambda () (sk-call *skel-project* :archlinux :operator)))) (alpine-pod-builder (sb-thread:make-thread (lambda () (sk-call *skel-project* :alpine :worker))))) (std/thread:wait-for-threads (list rocksdb-builder sbcl-builder archlinux-pod-builder alpine-pod-builder)))) + ;;; *host* +;; The host profile is generated automatically by 'check.sh'. After running +;; the script you'll have a file HOST.sxp. ;;; *profile* +;; The default profile is defined in 'default.sxp'. You can use that as a base +;; configuration and override it with INFRA_PROFILE + ;; (sb-ext:quit) diff -r ad70dec68fa1 -r 9d6a767d72f0 bootstrap.sh --- a/bootstrap.sh Fri Jun 14 19:20:13 2024 +0000 +++ b/bootstrap.sh Fri Jun 14 20:36:18 2024 +0000 @@ -19,23 +19,36 @@ exit 1 fi ensure mkdir -p "${_stash}/src" + ensure mkdir -p "${_stash}/share/lisp/fasl" ensure mkdir -p "${_stash}/bin" + ensure mkdir -p "${_stash}/lib" + ensure mkdir -p "${_stash}/include" + ensure mkdir -p "${_stash}/pack" cd "${_stash}" hg clone https://vc.compiler.company/comp/core src/core - local _sbcl_url="${_url}/pack/sbcl.tar.zst" - local _rocksdb_url="${_url}/pack/rocksdb.tar.zst" - local _core_url="${_url}/pack/core.tar.zst" - ensure download "$_sbcl_url" "sbcl.tar.zst" "$_arch" - unzstd "sbcl.tar.zst" - tar -xvf "sbcl.tar" - ensure download "$_rocksdb_url" "rocksdb.tar.zst" "$_arch" - unzstd "rocksdb.tar.zst" - tar -xvf "rocksdb.tar" - chmod +x bin/* - say "${_stash}/src/sbcl" - say "${_stash}/src/rocksdb" - say "${_stash}/bin/cl" - rm -rf *.tar* + local _sbcl_pack="pack/sbcl.tar.zst" + local _rocksdb_pack="pack/rocksdb.tar.zst" + local _core_pack="pack/core.tar.zst" + local _sbcl_url="${_url}/${_sbcl_pack}" + local _rocksdb_url="${_url}/${_rocksdb_pack}" + local _core_url="${_url}/${_core_pack}" + ensure download "$_sbcl_url" "$_sbcl_pack" "$_arch" + unzstd "${_sbcl_pack}" + tar -xvf "pack/sbcl.tar" + cd sbcl && INSTALL_ROOT=$(realpath ..) sh install.sh && cd .. + ensure download "$_rocksdb_url" "${_rocksdb_pack}" "$_arch" + unzstd "${_rocksdb_pack}" + tar -xvf "pack/rocksdb.tar" + mv rocksdb/include/* include/ + mv rocksdb/*.so lib/ + ensure download "$_core_url" "${_core_pack}" "$_arch" + unzstd "${_core_pack}" + tar -xvf "pack/core.tar" + mv core/bin/* bin/ + mv core/fasl/* share/lisp/fasl + # chmod +x "bin/*" + rm -rf core rocksdb sbcl + rm -rf pack/*.tar } _read() { diff -r ad70dec68fa1 -r 9d6a767d72f0 infra.asd --- a/infra.asd Fri Jun 14 19:20:13 2024 +0000 +++ b/infra.asd Fri Jun 14 20:36:18 2024 +0000 @@ -1,5 +1,5 @@ (defsystem :infra - :depends-on (:std :dat :cli :skel :log :net :packy) + :depends-on (:std :dat :cli :skel :log :net :packy :pod :box :organ) :components ((:file "autogen") (:file "deploy")) :build-pathname ".stash/bin/infra") diff -r ad70dec68fa1 -r 9d6a767d72f0 scripts/get-blake3.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/get-blake3.sh Fri Jun 14 20:36:18 2024 +0000 @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# get blake3 source code +git clone https://vc.compiler.company/packy/blake3.git .stash/src/blake3 diff -r ad70dec68fa1 -r 9d6a767d72f0 scripts/get-ublksrv.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/get-ublksrv.sh Fri Jun 14 20:36:18 2024 +0000 @@ -0,0 +1,3 @@ +#!/usr/bin/env bash +# get ublksrv source code +git clone https://vc.compiler.company/packy/ublksrv.git .stash/src/ublksrv diff -r ad70dec68fa1 -r 9d6a767d72f0 skelfile --- a/skelfile Fri Jun 14 19:20:13 2024 +0000 +++ b/skelfile Fri Jun 14 20:36:18 2024 +0000 @@ -24,6 +24,7 @@ ;; programs (src () #$mkdir -pv .stash/src$#) (bin () #$mkdir -pv .stash/bin$#) + (bootstrap () #$./bootstrap.sh$#) (emacs (src) #$./scripts/get-emacs.sh$# #$cd .stash/src/emacs && ./autogen.sh$# #$./scripts/build-emacs.sh$#) @@ -60,6 +61,15 @@ (xcaddy () #$go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest$#) (caddy-webdav (xcaddy) #$xcaddy build --output .stash/caddy --with github.com/mholt/caddy-webdav (rust () #$scripts/get-rust.sh$#) + (ublk () #$scripts/get-ublksrv.sh$# + #$cd .stash/src/ublksrv && autoreconf -i && ./configure && make$#) + (ublk-install () #$cd .stash/src/ublksrv && make install$#) + ;; ref: https://github.com/BLAKE3-team/BLAKE3/tree/master/c#building + (blake3 () #$scripts/get-blake3.sh$# + #$cd .stash/src/blake3/c && gcc -shared -O3 -o libblake3.so blake3.c blake3_dispatch.c blake3_portable.c \ + blake3_sse2_x86-64_unix.S blake3_sse41_x86-64_unix.S blake3_avx2_x86-64_unix.S \ + blake3_avx512_x86-64_unix.S$#) + (blake3-install () #$cd .stash/src/blake3/c && cp libblake3.so /usr/local/lib/ && cp blake3.h /usr/local/include/$#) ;; install (tree-sitter-langs (src) #$./scripts/tree-sitter-install-langs.sh$#) (cargo-tools () #$scripts/install-cargo-tools.sh$#)