summaryrefslogtreecommitdiff
path: root/scripts/package-build/linux-kernel/build-accel-ppp-ng.sh
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/linux-kernel/build-accel-ppp-ng.sh
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/linux-kernel/build-accel-ppp-ng.sh')
-rwxr-xr-xscripts/package-build/linux-kernel/build-accel-ppp-ng.sh69
1 files changed, 69 insertions, 0 deletions
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}