summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorasklymenko <a.klymenko@vyos.io>2026-01-29 21:46:44 +0200
committerasklymenko <a.klymenko@vyos.io>2026-01-29 21:46:44 +0200
commitf98e6951cb8c799a6d80a64b0302d1cdb6b1940e (patch)
tree5815348a4ca76727d93583df669716799bec9b88 /scripts
parentca5cb3f91d6981185f8c0c29550fdd8fc8e8c1fd (diff)
downloadvyos-build-f98e6951cb8c799a6d80a64b0302d1cdb6b1940e.tar.gz
vyos-build-f98e6951cb8c799a6d80a64b0302d1cdb6b1940e.zip
T8219: Start building Salt from source
Diffstat (limited to 'scripts')
-rw-r--r--scripts/package-build/salt/.gitignore1
l---------scripts/package-build/salt/build.py1
-rw-r--r--scripts/package-build/salt/build.sh76
-rw-r--r--scripts/package-build/salt/package.toml25
4 files changed, 103 insertions, 0 deletions
diff --git a/scripts/package-build/salt/.gitignore b/scripts/package-build/salt/.gitignore
new file mode 100644
index 00000000..5c783a52
--- /dev/null
+++ b/scripts/package-build/salt/.gitignore
@@ -0,0 +1 @@
+/salt/
diff --git a/scripts/package-build/salt/build.py b/scripts/package-build/salt/build.py
new file mode 120000
index 00000000..3c76af73
--- /dev/null
+++ b/scripts/package-build/salt/build.py
@@ -0,0 +1 @@
+../build.py \ No newline at end of file
diff --git a/scripts/package-build/salt/build.sh b/scripts/package-build/salt/build.sh
new file mode 100644
index 00000000..b99b9d93
--- /dev/null
+++ b/scripts/package-build/salt/build.sh
@@ -0,0 +1,76 @@
+#!/bin/sh
+
+# ==============================================================================
+# Script to build Salt (Onedir) for VyOS
+# ==============================================================================
+
+# Exit immediately on error
+set -e
+
+# Configuration
+ARCH=$(dpkg --print-architecture)
+
+# Uncomment SALT_REPO and ALT_VERSION variable to build Salt manually
+#SALT_REPO="https://github.com/saltstack/salt.git"
+#SALT_VERSION="v3006.19"
+TOOLS_REPO="https://github.com/saltstack/python-tools-scripts"
+
+# Check this page to find a correct relenv/python combination.
+# https://github.com/saltstack/relenv/releases
+RELENV_VERSION="0.22.2"
+RELENV_PYTHON_VERSION="3.11.14"
+
+# Specify the platform parameter, use x86_64 for amd64, arm64 for arm64
+if [ "${ARCH}" = "arm64" ]; then
+ BUILD_ARCH=${ARCH}
+else
+ BUILD_ARCH="x86_64"
+fi
+
+# Specify the Python version currently used by VyOS. This version will be used to specify the correct requirements list,
+# for example: requirements/static/pkg/py3.11/tools.tx
+PYTHON_VERSION="3.11"
+
+BUILD_DIR="salt"
+OUTPUT_DIR="$BUILD_DIR/artifacts"
+
+# Prepare Build Directory
+mkdir -p "$BUILD_DIR"
+cd "$BUILD_DIR"
+
+if [ ! -d "python-tools-scripts" ]; then
+ git clone ${TOOLS_REPO}
+fi
+
+# Setup Python Build Environment
+echo "Setting up build virtual environment..."
+if [ ! -d "venv-build" ]; then
+ python3 -m venv venv-build
+fi
+
+# Install Python build requirements
+echo "Installing Python build requirements..."
+venv-build/bin/python3 -m pip install --upgrade pip
+
+# Install all required build tools
+venv-build/bin/python3 -m pip install relenv build packaging jinja2 pyyaml msgpack-python python-tools-scripts ppbt setuptools tornado
+
+# Install repo-specific tools if found
+if [ -f "requirements/static/pkg/py${PYTHON_VERSION}/tools.txt" ]; then
+ venv-build/bin/python3 -m pip install -r requirements/static/pkg/py${PYTHON_VERSION}/tools.txt
+fi
+
+# Build the package
+echo "Starting Build..."
+export PYTHONPATH=$PYTHONPATH:$(pwd)
+
+# The build script below handles fetching the correct runtime version.
+venv-build/bin/python3 -m tools.pkg.build deb
+
+# Example: tools pkg build deb --relenv-version=0.22.2 --python-version=3.10.19 --arch=x86_64
+venv-build/bin/tools pkg build deb --relenv-version=${RELENV_VERSION} --python-version=${RELENV_PYTHON_VERSION} --arch=${BUILD_ARCH}
+
+echo "List artifacts..."
+find ../ -name "*.deb"
+
+echo "Build finished successfully"
diff --git a/scripts/package-build/salt/package.toml b/scripts/package-build/salt/package.toml
new file mode 100644
index 00000000..24bada78
--- /dev/null
+++ b/scripts/package-build/salt/package.toml
@@ -0,0 +1,25 @@
+[[packages]]
+name = "salt"
+commit_id = "v3006.19"
+scm_url = "https://github.com/saltstack/salt.git"
+build_cmd = "cd ..; ./build.sh"
+
+[dependencies]
+packages = [
+ "libssl-dev",
+ "libffi-dev",
+ "python3-dev",
+ "python3-pip",
+ "python3-venv",
+ "patchelf",
+ "fakeroot",
+ "dpkg-dev",
+ "cargo",
+ "dh-make",
+ "libgdbm-dev",
+ "liblzma-dev",
+ "libzmq3-dev",
+ "patchelf",
+ "pkg-config",
+ "python3-venv"
+]