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 | |
| 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')
| -rw-r--r-- | scripts/package-build/linux-kernel/.gitignore | 1 | ||||
| -rwxr-xr-x | scripts/package-build/linux-kernel/build-accel-ppp-ng.sh | 69 | ||||
| -rwxr-xr-x | scripts/package-build/linux-kernel/build.py | 10 | ||||
| -rw-r--r-- | scripts/package-build/linux-kernel/package.toml | 6 | ||||
| -rw-r--r-- | scripts/package-build/vpp/.gitignore | 2 |
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/ |
