diff options
| author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2025-07-31 17:31:05 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-07-31 15:31:05 +0100 |
| commit | 2f2bfb56d284381992804c55572eaae829461d72 (patch) | |
| tree | d85f280905ae19fa6f9e73d80aea7b8a4459afb3 /scripts/package-build/linux-kernel/build-accel-ppp-ng.sh | |
| parent | 43fdd70e9a6f5f962e05f9a714fa87eeae3b46f8 (diff) | |
| download | vyos-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-x | scripts/package-build/linux-kernel/build-accel-ppp-ng.sh | 69 |
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} |
