summaryrefslogtreecommitdiff
path: root/scripts/package-build
diff options
context:
space:
mode:
authorViacheslav Hletenko <v.gletenko@vyos.io>2025-07-31 17:31:05 +0300
committerGitHub <noreply@github.com>2025-07-31 15:31:05 +0100
commit2f2bfb56d284381992804c55572eaae829461d72 (patch)
treed85f280905ae19fa6f9e73d80aea7b8a4459afb3 /scripts/package-build
parent43fdd70e9a6f5f962e05f9a714fa87eeae3b46f8 (diff)
downloadvyos-build-2f2bfb56d284381992804c55572eaae829461d72.tar.gz
vyos-build-2f2bfb56d284381992804c55572eaae829461d72.zip
T7666: Add script to build accel-ppp-ng binaries (#1002)
* T7666: Add vpp-sflow src patches and accel-ppp-ng to gitignore * T7666: Add script to build accel-ppp-ng binaries * Update scripts/package-build/linux-kernel/build-accel-ppp-ng.sh --------- Co-authored-by: Daniil Baturin <daniil@baturin.org>
Diffstat (limited to 'scripts/package-build')
-rw-r--r--scripts/package-build/linux-kernel/.gitignore1
-rwxr-xr-xscripts/package-build/linux-kernel/build-accel-ppp-ng.sh69
-rwxr-xr-xscripts/package-build/linux-kernel/build.py10
-rw-r--r--scripts/package-build/linux-kernel/package.toml6
-rw-r--r--scripts/package-build/vpp/.gitignore2
5 files changed, 88 insertions, 0 deletions
diff --git a/scripts/package-build/linux-kernel/.gitignore b/scripts/package-build/linux-kernel/.gitignore
index f1fb5374..9f980130 100644
--- a/scripts/package-build/linux-kernel/.gitignore
+++ b/scripts/package-build/linux-kernel/.gitignore
@@ -2,6 +2,7 @@
/wireguard
/wireguard-linux-compat
/accel-ppp
+/accel-ppp-ng
/intel-qat
/linux-firmware
/vyos-drivers-intel*
diff --git a/scripts/package-build/linux-kernel/build-accel-ppp-ng.sh b/scripts/package-build/linux-kernel/build-accel-ppp-ng.sh
new file mode 100755
index 00000000..6698b7fd
--- /dev/null
+++ b/scripts/package-build/linux-kernel/build-accel-ppp-ng.sh
@@ -0,0 +1,69 @@
+#!/bin/sh
+
+CWD=$(pwd)
+KERNEL_VAR_FILE=${CWD}/kernel-vars
+VPP_INCLUDE_PATH="${CWD}/../vpp/vpp/src/vpp-api:${CWD}/../vpp/vpp/src:${CWD}/../vpp/vpp/build-root/build-vpp-native/vpp/CMakeFiles/vpp-api"
+VPP_LIBRARY_PATH="${CWD}/../vpp/vpp/build-root/build-vpp-native/vpp/CMakeFiles/debian/libvppinfra/usr/lib/x86_64-linux-gnu/:${CWD}/../vpp/vpp/build-root/install-vpp-native/vpp/lib/x86_64-linux-gnu/"
+VPP_LIB_CHECK_PATH="${CWD}/../vpp/vpp/build-root/build-vpp-native/vpp/CMakeFiles/debian/libvppinfra/usr/lib/x86_64-linux-gnu/"
+
+ACCEL_SRC=${CWD}/accel-ppp-ng
+
+# Build VPP as we need VPP libraries
+cd ../vpp/
+./build.py
+cd ${CWD}
+
+if [ ! -d ${VPP_LIB_CHECK_PATH} ]; then
+ echo "VPP source libraries not found"
+ exit 1
+fi
+
+if [ ! -d ${ACCEL_SRC} ]; then
+ echo "Accel-PPP source not found"
+ exit 1
+fi
+
+if [ ! -f ${KERNEL_VAR_FILE} ]; then
+ echo "Kernel variable file '${KERNEL_VAR_FILE}' does not exist, run ./build_kernel.sh first"
+ exit 1
+fi
+
+cd ${ACCEL_SRC}
+git reset --hard HEAD
+git clean --force -d -x
+
+PATCH_DIR=${CWD}/patches/accel-ppp-ng
+if [ -d $PATCH_DIR ]; then
+ cd ${ACCEL_SRC}
+ for patch in $(ls ${PATCH_DIR})
+ do
+ echo "I: Apply patch: ${PATCH_DIR}/${patch}"
+ patch -p1 < ${PATCH_DIR}/${patch}
+ done
+fi
+
+. ${KERNEL_VAR_FILE}
+mkdir -p ${ACCEL_SRC}/build
+cd ${ACCEL_SRC}/build
+
+echo "I: Build Accel-PPP Debian package"
+cmake -DBUILD_IPOE_DRIVER=TRUE \
+ -DBUILD_VLAN_MON_DRIVER=TRUE \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DKDIR=${KERNEL_DIR} \
+ -DLUA=5.3 \
+ -DMODULES_KDIR=${KERNEL_VERSION}${KERNEL_SUFFIX} \
+ -DHAVE_VPP=1 \
+ -DCPACK_TYPE=Debian12 ..
+CPATH="${VPP_INCLUDE_PATH}" LIBRARY_PATH="${VPP_LIBRARY_PATH}" make
+
+# Sign generated Kernel modules
+${CWD}/sign-modules.sh .
+
+cpack -G DEB
+
+# rename resulting Debian package according git description
+mv accel-ppp*.deb ${CWD}/accel-ppp-ng_$(git describe --always --tags)_$(dpkg --print-architecture).deb
+
+# move VPP binaries to linux-kernel dir, CI will get VPP .deb here
+cp ${CWD}/../vpp/*.deb ${CWD}
diff --git a/scripts/package-build/linux-kernel/build.py b/scripts/package-build/linux-kernel/build.py
index 5d891c71..a6323357 100755
--- a/scripts/package-build/linux-kernel/build.py
+++ b/scripts/package-build/linux-kernel/build.py
@@ -132,6 +132,9 @@ def build_package(package: dict, dependencies: list) -> None:
elif package['build_cmd'] == 'build_accel_ppp':
build_accel_ppp(package['commit_id'], package['scm_url'])
create_tarball(f'{package["name"]}-{package["commit_id"]}', f'{package["name"]}')
+ elif package['build_cmd'] == 'build_accel_ppp_ng':
+ build_accel_ppp_ng(package['commit_id'], package['scm_url'])
+ create_tarball(f'{package["name"]}-{package["commit_id"]}', f'{package["name"]}')
elif package['build_cmd'] == 'build_intel_qat':
build_intel_qat()
elif package['build_cmd'] == 'build_intel_igb':
@@ -217,6 +220,13 @@ def build_accel_ppp(commit_id, scm_url):
run(['./build-accel-ppp.sh'], check=True)
+def build_accel_ppp_ng(commit_id, scm_url):
+ """Build accel-ppp-ng"""
+ repo_dir = Path('accel-ppp-ng')
+ clone_or_update_repo(repo_dir, scm_url, commit_id)
+ run(['./build-accel-ppp-ng.sh'], check=True)
+
+
def build_intel_qat():
"""Build Intel QAT"""
run(['./build-intel-qat.sh'], check=True)
diff --git a/scripts/package-build/linux-kernel/package.toml b/scripts/package-build/linux-kernel/package.toml
index b98bcd2f..e98eb1ac 100644
--- a/scripts/package-build/linux-kernel/package.toml
+++ b/scripts/package-build/linux-kernel/package.toml
@@ -23,6 +23,12 @@ scm_url = "https://github.com/accel-ppp/accel-ppp.git"
build_cmd = "build_accel_ppp"
[[packages]]
+name = "accel-ppp-ng"
+commit_id = "5bcc6dd"
+scm_url = "https://github.com/accel-ppp/accel-ppp-ng.git"
+build_cmd = "build_accel_ppp_ng"
+
+[[packages]]
name = "ovpn-dco"
commit_id = "v0.2.20231117"
scm_url = "https://github.com/OpenVPN/ovpn-dco"
diff --git a/scripts/package-build/vpp/.gitignore b/scripts/package-build/vpp/.gitignore
index 38768675..83b6fa3f 100644
--- a/scripts/package-build/vpp/.gitignore
+++ b/scripts/package-build/vpp/.gitignore
@@ -1,2 +1,4 @@
/vpp/
/vyos-vpp-patches/
+/patches/
+/vpp-sflow/