diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/build-freebsd.yml | 2 | ||||
-rw-r--r-- | .github/workflows/build.yml | 63 |
2 files changed, 39 insertions, 26 deletions
diff --git a/.github/workflows/build-freebsd.yml b/.github/workflows/build-freebsd.yml index 1dc5ac278..590d4156d 100644 --- a/.github/workflows/build-freebsd.yml +++ b/.github/workflows/build-freebsd.yml @@ -23,7 +23,7 @@ jobs: - uses: actions/checkout@v4 - name: Test in FreeBSD id: test - uses: vmactions/freebsd-vm@v1 + uses: vmactions/freebsd-vm@main with: usesh: true prepare: | diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3bf6b5c49..14feef895 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,6 +33,7 @@ jobs: os: "ubuntu-latest" ndpi_build: "-DBUILD_NDPI=ON" ndpid_examples: "-DBUILD_EXAMPLES=ON" + ndpid_rust_examples: "-DBUILD_RUST_EXAMPLES=ON" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=OFF" ndpid_zlib: "-DENABLE_ZLIB=ON" ndpid_extras: "" @@ -41,11 +42,12 @@ jobs: poll: "-DFORCE_POLL=OFF" upload: true upload_suffix: "" - ndpi_min_version: "4.14" + ndpi_min_version: "4.16" - compiler: "gcc" os: "ubuntu-latest" ndpi_build: "-DBUILD_NDPI=ON" ndpid_examples: "-DBUILD_EXAMPLES=ON" + ndpid_rust_examples: "" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=ON" ndpid_zlib: "-DENABLE_ZLIB=ON" ndpid_extras: "-DNDPI_WITH_MAXMINDDB=ON -DNDPI_WITH_PCRE=ON -DENABLE_MEMORY_PROFILING=ON" @@ -54,11 +56,12 @@ jobs: poll: "-DFORCE_POLL=OFF" upload: true upload_suffix: "-host-gcrypt" - ndpi_min_version: "4.14" + ndpi_min_version: "4.16" - compiler: "clang" os: "ubuntu-latest" ndpi_build: "-DBUILD_NDPI=ON" ndpid_examples: "-DBUILD_EXAMPLES=ON" + ndpid_rust_examples: "" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=OFF" ndpid_zlib: "-DENABLE_ZLIB=OFF" ndpid_extras: "" @@ -67,11 +70,12 @@ jobs: poll: "-DFORCE_POLL=OFF" upload: true upload_suffix: "-no-zlib" - ndpi_min_version: "4.14" + ndpi_min_version: "4.16" - compiler: "gcc" os: "ubuntu-latest" ndpi_build: "-DBUILD_NDPI=ON" ndpid_examples: "-DBUILD_EXAMPLES=ON" + ndpid_rust_examples: "" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=OFF" ndpid_zlib: "-DENABLE_ZLIB=ON" ndpid_extras: "" @@ -79,11 +83,12 @@ jobs: coverage: "-DENABLE_COVERAGE=ON" poll: "-DFORCE_POLL=ON" upload: false - ndpi_min_version: "4.14" + ndpi_min_version: "4.16" - compiler: "clang" os: "ubuntu-latest" ndpi_build: "-DBUILD_NDPI=ON" ndpid_examples: "-DBUILD_EXAMPLES=ON" + ndpid_rust_examples: "" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=OFF" ndpid_zlib: "-DENABLE_ZLIB=ON" ndpid_extras: "" @@ -91,11 +96,12 @@ jobs: coverage: "-DENABLE_COVERAGE=OFF" poll: "-DFORCE_POLL=OFF" upload: false - ndpi_min_version: "4.14" + ndpi_min_version: "4.16" - compiler: "clang-12" - os: "ubuntu-20.04" + os: "ubuntu-22.04" ndpi_build: "-DBUILD_NDPI=ON" ndpid_examples: "-DBUILD_EXAMPLES=ON" + ndpid_rust_examples: "" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=OFF" ndpid_zlib: "-DENABLE_ZLIB=ON" ndpid_extras: "" @@ -103,11 +109,12 @@ jobs: coverage: "-DENABLE_COVERAGE=OFF" poll: upload: false - ndpi_min_version: "4.14" + ndpi_min_version: "4.16" - compiler: "gcc-10" - os: "ubuntu-20.04" + os: "ubuntu-22.04" ndpi_build: "-DBUILD_NDPI=ON" ndpid_examples: "-DBUILD_EXAMPLES=ON" + ndpid_rust_examples: "" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=OFF" ndpid_zlib: "-DENABLE_ZLIB=OFF" ndpid_extras: "" @@ -115,11 +122,12 @@ jobs: coverage: "-DENABLE_COVERAGE=OFF" poll: "-DFORCE_POLL=ON" upload: false - ndpi_min_version: "4.14" - - compiler: "gcc-7" - os: "ubuntu-20.04" + ndpi_min_version: "4.16" + - compiler: "gcc-9" + os: "ubuntu-22.04" ndpi_build: "-DBUILD_NDPI=ON" ndpid_examples: "-DBUILD_EXAMPLES=ON" + ndpid_rust_examples: "" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=OFF" ndpid_zlib: "-DENABLE_ZLIB=ON" ndpid_extras: "" @@ -127,11 +135,12 @@ jobs: coverage: "-DENABLE_COVERAGE=OFF" poll: "-DFORCE_POLL=OFF" upload: false - ndpi_min_version: "4.14" + ndpi_min_version: "4.16" - compiler: "cc" os: "macOS-13" ndpi_build: "-DBUILD_NDPI=OFF" ndpid_examples: "-DBUILD_EXAMPLES=OFF" + ndpid_rust_examples: "" ndpid_gcrypt: "-DNDPI_WITH_GCRYPT=OFF" ndpid_zlib: "-DENABLE_ZLIB=ON" ndpid_extras: "" @@ -140,7 +149,7 @@ jobs: coverage: "-DENABLE_COVERAGE=OFF" poll: upload: false - ndpi_min_version: "4.14" + ndpi_min_version: "4.16" steps: - name: Print Matrix @@ -169,7 +178,7 @@ jobs: - name: Install MacOS Prerequisites if: startsWith(matrix.os, 'macOS') run: | - brew install coreutils flock automake make unzip cmake pkg-config git wget + brew install coreutils automake make unzip wget 'https://www.tcpdump.org/release/libpcap-1.10.4.tar.gz' tar -xzvf libpcap-1.10.4.tar.gz cd libpcap-1.10.4 @@ -191,6 +200,10 @@ jobs: sudo apt-get update sudo apt-get install autoconf automake cmake libtool pkg-config gettext libjson-c-dev flex bison libpcap-dev zlib1g-dev libcurl4-openssl-dev libdbus-1-dev sudo apt-get install ${{ matrix.compiler }} lcov iproute2 + - name: Install Ubuntu Prerequisites (Rust/Cargo) + if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.ndpid_rust_examples, '-DBUILD_RUST_EXAMPLES=ON') + run: | + sudo apt-get install cargo - name: Install Ubuntu Prerequisites (libgcrypt) if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.ndpid_gcrypt, '-DNDPI_WITH_GCRYPT=ON') run: | @@ -204,7 +217,7 @@ jobs: run: | sudo apt-get install libmaxminddb-dev libpcre2-dev - name: Install Ubuntu Prerequisites (libnl-genl-3-dev) - if: endsWith(matrix.compiler, 'gcc-7') == false && startsWith(matrix.ndpi_build, '-DBUILD_NDPI=ON') && startsWith(matrix.coverage, '-DENABLE_COVERAGE=OFF') && startsWith(matrix.sanitizer, '-DENABLE_SANITIZER=ON') && startsWith(matrix.ndpid_gcrypt, '-DNDPI_WITH_GCRYPT=OFF') && startsWith(matrix.ndpid_zlib, '-DENABLE_ZLIB=ON') + if: startsWith(matrix.ndpi_build, '-DBUILD_NDPI=ON') && startsWith(matrix.coverage, '-DENABLE_COVERAGE=OFF') && startsWith(matrix.sanitizer, '-DENABLE_SANITIZER=ON') && startsWith(matrix.ndpid_gcrypt, '-DNDPI_WITH_GCRYPT=OFF') && startsWith(matrix.ndpid_zlib, '-DENABLE_ZLIB=ON') run: | sudo apt-get install libnl-genl-3-dev - name: Checking Network Buffer Size @@ -217,7 +230,7 @@ jobs: cmake -S . -B build -DCMAKE_C_COMPILER="$CMAKE_C_COMPILER" -DCMAKE_C_FLAGS="$CMAKE_C_FLAGS" -DCMAKE_MODULE_LINKER_FLAGS="$CMAKE_MODULE_LINKER_FLAGS" -DCMAKE_C_EXE_LINKER_FLAGS="$CMAKE_C_EXE_LINKER_FLAGS" \ -DENABLE_DBUS=ON -DENABLE_CURL=ON -DENABLE_SYSTEMD=ON \ ${{ matrix.poll }} ${{ matrix.coverage }} ${{ matrix.sanitizer }} ${{ matrix.ndpi_build }} \ - ${{ matrix.ndpid_examples }} ${{ matrix.ndpid_zlib }} ${{ matrix.ndpid_gcrypt }} ${{ matrix.ndpid_extras }} + ${{ matrix.ndpid_examples }} ${{ matrix.ndpid_rust_examples }} ${{ matrix.ndpid_zlib }} ${{ matrix.ndpid_gcrypt }} ${{ matrix.ndpid_extras }} - name: Build nDPId run: | cmake --build build --verbose @@ -237,7 +250,7 @@ jobs: -I. -I./dependencies -I./dependencies/jsmn -I./dependencies/uthash/include \ -o /tmp/a.out - name: Build single nDPId/nDPIsrvd executables (invoke CC directly - static nDPI lib) - if: endsWith(matrix.compiler, 'gcc-7') == false && startsWith(matrix.ndpi_build, '-DBUILD_NDPI=ON') && startsWith(matrix.coverage, '-DENABLE_COVERAGE=OFF') && startsWith(matrix.sanitizer, '-DENABLE_SANITIZER=ON') && startsWith(matrix.ndpid_gcrypt, '-DNDPI_WITH_GCRYPT=OFF') && startsWith(matrix.ndpid_zlib, '-DENABLE_ZLIB=ON') + if: startsWith(matrix.ndpi_build, '-DBUILD_NDPI=ON') && startsWith(matrix.coverage, '-DENABLE_COVERAGE=OFF') && startsWith(matrix.sanitizer, '-DENABLE_SANITIZER=ON') && startsWith(matrix.ndpid_gcrypt, '-DNDPI_WITH_GCRYPT=OFF') && startsWith(matrix.ndpid_zlib, '-DENABLE_ZLIB=ON') run: | cc -Wall -Wextra -std=gnu99 ${{ matrix.poll }} -DENABLE_ZLIB=1 -DENABLE_MEMORY_PROFILING=1 \ -fsanitize=address -fsanitize=undefined -fno-sanitize=alignment -fsanitize=enum -fsanitize=leak \ @@ -276,7 +289,7 @@ jobs: cmake -S . -B ./build \ -DENABLE_DBUS=ON -DENABLE_CURL=ON -DENABLE_SYSTEMD=ON \ ${{ matrix.poll }} ${{ matrix.coverage }} ${{ matrix.sanitizer }} ${{ matrix.ndpi_build }} \ - ${{ matrix.ndpid_examples }} ${{ matrix.ndpid_zlib }} ${{ matrix.ndpid_gcrypt }} ${{ matrix.ndpid_extras }} + ${{ matrix.ndpid_examples }} ${{ matrix.ndpid_rust_examples }} ${{ matrix.ndpid_zlib }} ${{ matrix.ndpid_gcrypt }} ${{ matrix.ndpid_extras }} cd ../.. rm -rf "nDPId-dist-${RAND_ID}" - name: CPack DEB @@ -308,11 +321,11 @@ jobs: sudo systemctl stop ndpisrvd.service journalctl --no-tail --no-pager -u ndpisrvd.service -u ndpid@lo.service - name: Build PF_RING and nDPId (invoke CC directly - dynamic nDPI lib) - if: endsWith(matrix.compiler, 'gcc-7') == false && startsWith(matrix.ndpi_build, '-DBUILD_NDPI=ON') && startsWith(matrix.coverage, '-DENABLE_COVERAGE=OFF') && startsWith(matrix.sanitizer, '-DENABLE_SANITIZER=ON') && startsWith(matrix.ndpid_gcrypt, '-DNDPI_WITH_GCRYPT=OFF') && startsWith(matrix.ndpid_zlib, '-DENABLE_ZLIB=ON') + if: startsWith(matrix.ndpi_build, '-DBUILD_NDPI=ON') && startsWith(matrix.coverage, '-DENABLE_COVERAGE=OFF') && startsWith(matrix.sanitizer, '-DENABLE_SANITIZER=ON') && startsWith(matrix.ndpid_gcrypt, '-DNDPI_WITH_GCRYPT=OFF') && startsWith(matrix.ndpid_zlib, '-DENABLE_ZLIB=ON') run: | git clone --depth=1 https://github.com/ntop/PF_RING.git - cd PF_RING && make all && sudo make install prefix=/usr - cd .. + cd PF_RING/userland && ./configure && make && sudo make install prefix=/usr + cd ../.. cc -Wall -Wextra -std=gnu99 ${{ matrix.poll }} -DENABLE_PFRING=1 -DENABLE_ZLIB=1 -DENABLE_MEMORY_PROFILING=1 \ -fsanitize=address -fsanitize=undefined -fno-sanitize=alignment -fsanitize=enum -fsanitize=leak \ nDPId.c npfring.c nio.c utils.c \ @@ -320,7 +333,7 @@ jobs: -I./build/libnDPI/include/ndpi \ -I./PF_RING/userland/lib -I./PF_RING/kernel \ -o /tmp/a.out \ - -ldl ./PF_RING/userland/lib/libpfring.a -lpcap ./build/libnDPI/lib/libndpi.a -pthread -lm -lz + -ldl /usr/lib/libpfring.a -lpcap ./build/libnDPI/lib/libndpi.a -pthread -lm -lz - name: Build against libnDPI-${{ matrix.ndpi_min_version }} if: startsWith(matrix.os, 'ubuntu') run: | @@ -351,7 +364,7 @@ jobs: -DBUILD_NDPI=OFF -DBUILD_EXAMPLES=ON \ -DENABLE_DBUS=ON -DENABLE_CURL=ON -DENABLE_SYSTEMD=ON \ ${{ matrix.poll }} ${{ matrix.coverage }} \ - ${{ matrix.sanitizer }} ${{ matrix.ndpid_examples }}; } + ${{ matrix.sanitizer }} ${{ matrix.ndpid_examples }} ${{ matrix.ndpid_rust_examples }}; } test $WGET_RET -ne 0 || { echo "Running Make.. (pkgconfig)"; \ cmake --build ./build-local-pkgconfig --verbose; } test $WGET_RET -ne 0 || { echo "Testing Executable.. (pkgconfig)"; \ @@ -366,7 +379,7 @@ jobs: -DENABLE_DBUS=ON -DENABLE_CURL=ON -DENABLE_SYSTEMD=ON \ -DNDPI_NO_PKGCONFIG=ON -DSTATIC_LIBNDPI_INSTALLDIR=/usr \ ${{ matrix.poll }} ${{ matrix.coverage }} ${{ matrix.ndpid_gcrypt }} \ - ${{ matrix.sanitizer }} ${{ matrix.ndpid_examples }}; } + ${{ matrix.sanitizer }} ${{ matrix.ndpid_examples }} ${{ matrix.ndpid_rust_examples }}; } test $WGET_RET -ne 0 || { echo "Running Make.. (static)"; \ cmake --build ./build-local-static --verbose; } test $WGET_RET -ne 0 || { echo "Testing Executable.. (static)"; \ @@ -383,7 +396,7 @@ jobs: -DPFRING_LINK_STATIC=OFF \ -DPFRING_INSTALLDIR=/usr -DPFRING_KERNEL_INC="$(realpath ./PF_RING/kernel)" \ ${{ matrix.poll }} ${{ matrix.coverage }} ${{ matrix.ndpid_gcrypt }} \ - ${{ matrix.sanitizer }} ${{ matrix.ndpid_examples }}; } + ${{ matrix.sanitizer }} ${{ matrix.ndpid_examples }} ${{ matrix.ndpid_rust_examples }}; } test $WGET_RET -ne 0 || test ! -d ./PF_RING || { echo "Running Make.. (PF_RING)"; \ cmake --build ./build-local-pfring --verbose; } test $WGET_RET -ne 0 || test ! -d ./PF_RING || { echo "Testing Executable.. (PF_RING)"; \ |