mirror of
https://github.com/luxfi/evm.git
synced 2026-09-24 00:27:44 +00:00
Renames LUX_-prefixed env vars to their canonical, non-noisy forms:
- LUX_RLP_PATH -> RLP_PATH (test override for the RLP fixture path)
- LUX_VERSION -> LUXD_VERSION (the luxd version being downloaded/cloned)
- LUX_PLUGIN_DIR -> PLUGIN_DIR (the lux plugin install dir, ~/.lux/plugins)
LUX_VERSION had two callers: shell scripts treating it as the luxd
version, and install_luxd_release.sh that already aliased
'LUXD_VERSION=${LUXD_VERSION:-${LUX_VERSION#v}}' on read. Collapse this
to a single canonical name (LUXD_VERSION) and a one-liner v-prefix
strip; no more aliasing.
LUX_PLUGIN_DIR points at ~/.lux/plugins on disk — the path is unchanged,
only the env var name. INSTALL=1 ./scripts/build.sh continues to work,
just driven from $PLUGIN_DIR.
Note: the historical README mention of LUX_VM_RUNTIME_ENGINE_ADDR /
LUX_VM_TRANSPORT (legacy luxfi/vm <= v1.1.0 names) is left in place
because it documents past behavior, per task convention for CHANGELOG/
historical docs.
BREAKING: external callers (CI, dev scripts, operators) must update
env var names. Per CLAUDE.md no-backwards-compatibility rule, the old
forms are removed.
85 lines
3.2 KiB
Bash
Executable File
85 lines
3.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Ignore warnings about variables appearing unused since this file is not the consumer of the variables it defines.
|
|
# shellcheck disable=SC2034
|
|
|
|
set -euo pipefail
|
|
|
|
# Set the PATHS
|
|
GOPATH="$(go env GOPATH)"
|
|
|
|
# Default install dir for luxd plugins. Overridable.
|
|
PLUGIN_DIR="${PLUGIN_DIR:-${HOME}/.lux/plugins}"
|
|
|
|
# Canonical EVM VM ID — derived from luxfi/constants.EVMID (Go source of truth),
|
|
# not a hardcoded base58 string. Cached per shell invocation.
|
|
if [[ -z "${EVM_VMID:-}" ]]; then
|
|
EVM_VMID="$(cd "${EVM_PATH:-$(dirname "${BASH_SOURCE[0]}")/..}" && go run ./cmd/vmid)"
|
|
fi
|
|
|
|
# Lux docker hub
|
|
# luxfi/node - defaults to local as to avoid unintentional pushes
|
|
# You should probably set it - export IMAGE_NAME='luxfi/evm'
|
|
IMAGE_NAME=${IMAGE_NAME:-"evm_luxd"}
|
|
|
|
# Shared between ./scripts/build_docker_image.sh and ./scripts/tests.build_docker_image.sh
|
|
LUXD_IMAGE_NAME="${LUXD_IMAGE_NAME:-luxfi/node}"
|
|
|
|
# if this isn't a git repository (say building from a release), don't set our git constants.
|
|
if [ ! -d .git ]; then
|
|
CURRENT_BRANCH=""
|
|
EVM_COMMIT=""
|
|
else
|
|
# Current branch
|
|
CURRENT_BRANCH=${CURRENT_BRANCH:-$(git describe --tags --exact-match 2>/dev/null || git symbolic-ref -q --short HEAD || git rev-parse --short HEAD || :)}
|
|
|
|
# Image build id
|
|
#
|
|
# Use an abbreviated version of the full commit to tag the image.
|
|
# WARNING: this will use the most recent commit even if there are un-committed changes present
|
|
EVM_COMMIT="$(git --git-dir="$EVM_PATH/.git" rev-parse HEAD || :)"
|
|
fi
|
|
|
|
# Don't export them as they're used in the context of other calls
|
|
if [[ -z ${LUXD_VERSION:-} ]]; then
|
|
# Get module details from go.mod - try node first, then luxd
|
|
MODULE_DETAILS="$(go list -m "github.com/luxfi/node" 2>/dev/null || go list -m "github.com/luxfi/luxd" 2>/dev/null || echo "")"
|
|
|
|
LUXD_VERSION="$(echo "${MODULE_DETAILS}" | awk '{print $2}')"
|
|
|
|
# Check if the version matches the pattern where the last part is the module hash
|
|
# v*YYYYMMDDHHMMSS-abcdef123456
|
|
#
|
|
# If not, the value is assumed to represent a tag
|
|
if [[ "${LUXD_VERSION}" =~ ^v.*[0-9]{14}-[0-9a-f]{12}$ ]]; then
|
|
MODULE_HASH="$(echo "${LUXD_VERSION}" | grep -Eo '[0-9a-f]{12}$')"
|
|
|
|
# The first 8 chars of the hash is used as the tag of luxd images
|
|
LUXD_VERSION="${MODULE_HASH::8}"
|
|
fi
|
|
fi
|
|
|
|
# Shared between ./scripts/build_docker_image.sh and ./scripts/tests.build_docker_image.sh
|
|
DOCKERHUB_TAG="${EVM_COMMIT::8}_${LUXD_VERSION}"
|
|
# WARNING: this will use the most recent commit even if there are un-committed changes present
|
|
BUILD_IMAGE_ID=${BUILD_IMAGE_ID:-"${CURRENT_BRANCH}_${LUXD_VERSION}"}
|
|
|
|
echo "Using branch: ${CURRENT_BRANCH}"
|
|
|
|
# Static compilation
|
|
STATIC_LD_FLAGS=''
|
|
if [ "${STATIC_COMPILATION:-}" = 1 ]; then
|
|
export CC=musl-gcc
|
|
command -v $CC || (echo $CC must be available for static compilation && exit 1)
|
|
STATIC_LD_FLAGS=' -extldflags "-static" -linkmode external '
|
|
fi
|
|
|
|
# Set the CGO flags to use the portable version of BLST
|
|
#
|
|
# We use "export" here instead of just setting a bash variable because we need
|
|
# to pass this flag to all child processes spawned by the shell.
|
|
export CGO_CFLAGS="-O2 -D__BLST_PORTABLE__"
|
|
|
|
# CGO_ENABLED is required for multi-arch builds.
|
|
export CGO_ENABLED=1
|