diff --git a/.github/workflows/builds.yml b/.github/workflows/builds.yml index 34d308979e..297b281dff 100644 --- a/.github/workflows/builds.yml +++ b/.github/workflows/builds.yml @@ -212,7 +212,6 @@ jobs: git \ jansson-devel \ jq \ - lua-devel \ libtool \ libyaml-devel \ libnfnetlink-devel \ @@ -365,7 +364,6 @@ jobs: git \ jansson-devel \ jq \ - lua-devel \ libtool \ libyaml-devel \ libnfnetlink-devel \ @@ -513,7 +511,7 @@ jobs: - name: Configuring run: | ./autogen.sh - CFLAGS="${DEFAULT_CFLAGS}" ./configure --disable-lua + CFLAGS="${DEFAULT_CFLAGS}" ./configure - run: make -j ${{ env.CPUS }} check - name: Checking includes run: | @@ -563,7 +561,6 @@ jobs: git \ jansson-devel \ jq \ - lua-devel \ libtool \ libyaml-devel \ libnfnetlink-devel \ @@ -679,7 +676,7 @@ jobs: name: dist - run: tar zxvf suricata-*.tar.gz --strip-components=1 - name: ./configure - run: CFLAGS="${DEFAULT_CFLAGS}" ./configure --disable-lua + run: CFLAGS="${DEFAULT_CFLAGS}" ./configure - run: make -j ${{ env.CPUS }} - run: make install - run: make install-conf @@ -742,7 +739,6 @@ jobs: hiredis-devel \ jansson-devel \ jq \ - lua-devel \ libasan \ libtool \ libyaml-devel \ @@ -839,7 +835,6 @@ jobs: hiredis-devel \ jansson-devel \ jq \ - lua-devel \ libasan \ libtool \ libyaml-devel \ @@ -937,7 +932,6 @@ jobs: hiredis-devel \ jansson-devel \ jq \ - lua-devel \ libasan \ libtool \ libyaml-devel \ @@ -1035,7 +1029,6 @@ jobs: hiredis-devel \ jansson-devel \ jq \ - lua-devel \ libasan \ libtool \ libyaml-devel \ @@ -1066,7 +1059,7 @@ jobs: - run: tar xf prep/libhtp.tar.gz - run: tar xf prep/suricata-update.tar.gz - run: ./autogen.sh - - run: CC="clang" CFLAGS="$DEFAULT_CFLAGS -Wshadow -fsanitize=address -fno-omit-frame-pointer" ./configure --enable-debug --enable-unittests --disable-shared --enable-rust-strict --enable-hiredis --enable-nfqueue --enable-lua + - run: CC="clang" CFLAGS="$DEFAULT_CFLAGS -Wshadow -fsanitize=address -fno-omit-frame-pointer" ./configure --enable-debug --enable-unittests --disable-shared --enable-rust-strict --enable-hiredis --enable-nfqueue env: LDFLAGS: "-fsanitize=address" ac_cv_func_realloc_0_nonnull: "yes" @@ -1128,7 +1121,6 @@ jobs: hiredis-devel \ jansson-devel \ jq \ - lua-devel \ libasan \ libtool \ libyaml-devel \ @@ -1213,7 +1205,6 @@ jobs: hiredis-devel \ jansson-devel \ jq \ - lua-devel \ libasan \ libtool \ libyaml-devel \ @@ -1307,7 +1298,6 @@ jobs: gcc \ gcc-c++ \ git \ - lua-devel \ libasan \ libtool \ libyaml-devel \ @@ -1378,7 +1368,6 @@ jobs: libhiredis-dev \ libhyperscan-dev \ libjansson-dev \ - liblua5.4-dev \ libmagic-dev \ libnet1-dev \ libnetfilter-queue-dev \ @@ -1459,7 +1448,6 @@ jobs: libnuma-dev \ libhiredis-dev \ libhyperscan-dev \ - liblua5.4-dev \ libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ @@ -1587,7 +1575,6 @@ jobs: libnfnetlink0 \ libnuma-dev \ libhiredis-dev \ - liblua5.1-dev \ libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ @@ -1702,7 +1689,6 @@ jobs: libnfnetlink0 \ libnuma-dev \ libhiredis-dev \ - liblua5.1-dev \ libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ @@ -1850,7 +1836,6 @@ jobs: libnfnetlink0 \ libnuma-dev \ libhiredis-dev \ - liblua5.1-dev \ libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ @@ -1939,7 +1924,6 @@ jobs: libnfnetlink0 \ libnuma-dev \ libhiredis-dev \ - liblua5.1-dev \ libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ @@ -2040,7 +2024,6 @@ jobs: libnfnetlink0 \ libnuma-dev \ libhiredis-dev \ - liblua5.4-dev \ libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ @@ -2180,7 +2163,7 @@ jobs: chmod 755 $HOME/.cargo/bin/cbindgen echo "$HOME/.cargo/bin" >> $GITHUB_PATH - run: ./autogen.sh - - run: CFLAGS="$DEFAULT_CFLAGS -DNDEBUG" ./configure --enable-warnings --enable-unittests --disable-lua + - run: CFLAGS="$DEFAULT_CFLAGS -DNDEBUG" ./configure --enable-warnings --enable-unittests - run: make -j ${{ env.CPUS }} - run: make check - run: make dist @@ -2310,7 +2293,6 @@ jobs: libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ - liblua5.4-dev \ libpython2.7 \ make \ parallel \ @@ -2401,7 +2383,6 @@ jobs: libnfnetlink0 \ libhiredis-dev \ libjansson-dev \ - liblua5.4-dev \ libpython2.7 \ make \ rustc \ @@ -2472,7 +2453,6 @@ jobs: libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ - liblua5.4-dev \ libpython2.7 \ make \ parallel \ @@ -2564,7 +2544,6 @@ jobs: libyaml-dev \ libcap-ng-dev \ libcap-ng0 \ - liblua5.4-dev \ libmagic-dev \ libnetfilter-queue-dev \ libnetfilter-queue1 \ @@ -2683,7 +2662,6 @@ jobs: libmaxminddb-dev \ libjansson-dev \ libjansson4 \ - liblua5.4-dev \ libnuma-dev \ liblz4-dev \ libssl-dev \ @@ -2771,7 +2749,6 @@ jobs: libmagic-dev \ libjansson-dev \ libjansson4 \ - liblua5.4-dev \ liblz4-dev \ libssl-dev \ liblzma-dev \ @@ -2853,7 +2830,6 @@ jobs: libmaxminddb-dev \ libjansson-dev \ libjansson4 \ - liblua5.4-dev \ libnuma-dev \ liblz4-dev \ libssl-dev \ @@ -2941,7 +2917,6 @@ jobs: libmagic-dev \ libjansson-dev \ libgeoip-dev \ - liblua5.4-dev \ libhiredis-dev \ libevent-dev \ libtool \ @@ -3057,7 +3032,7 @@ jobs: cp prep/cbindgen $HOME/.cargo/bin chmod 755 $HOME/.cargo/bin/cbindgen - run: ./autogen.sh - - run: CFLAGS="${DEFAULT_CFLAGS}" ./configure --enable-warnings --enable-unittests --enable-fuzztargets --disable-lua + - run: CFLAGS="${DEFAULT_CFLAGS}" ./configure --enable-warnings --enable-unittests --enable-fuzztargets - run: make -j ${{ env.CPUS }} - run: make check - run: tar xf prep/suricata-verify.tar.gz @@ -3091,7 +3066,6 @@ jobs: libtool \ libyaml \ pyyaml \ - lua \ pcre2 \ pkg-config \ python \ @@ -3138,7 +3112,7 @@ jobs: with: msystem: MINGW64 update: true - install: git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool libyaml-devel pcre2-devel jansson-devel make mingw-w64-x86_64-libyaml mingw-w64-x86_64-pcre2 mingw-w64-x86_64-rust mingw-w64-x86_64-jansson unzip p7zip python-setuptools mingw-w64-x86_64-python-yaml mingw-w64-x86_64-jq mingw-w64-x86_64-libxml2 mingw-w64-x86_64-lua + install: git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool libyaml-devel pcre2-devel jansson-devel make mingw-w64-x86_64-libyaml mingw-w64-x86_64-pcre2 mingw-w64-x86_64-rust mingw-w64-x86_64-jansson unzip p7zip python-setuptools mingw-w64-x86_64-python-yaml mingw-w64-x86_64-jq mingw-w64-x86_64-libxml2 # hack: install our own cbindgen system wide as we can't get the # preinstalled one to be picked up by configure - name: cbindgen @@ -3194,7 +3168,7 @@ jobs: with: msystem: MINGW64 update: true - install: git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool libyaml-devel pcre2-devel jansson-devel make mingw-w64-x86_64-libyaml mingw-w64-x86_64-pcre2 mingw-w64-x86_64-rust mingw-w64-x86_64-jansson unzip p7zip python-setuptools mingw-w64-x86_64-python-yaml mingw-w64-x86_64-jq mingw-w64-x86_64-libxml2 libpcap-devel mingw-w64-x86_64-libpcap mingw-w64-x86_64-lua + install: git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool libyaml-devel pcre2-devel jansson-devel make mingw-w64-x86_64-libyaml mingw-w64-x86_64-pcre2 mingw-w64-x86_64-rust mingw-w64-x86_64-jansson unzip p7zip python-setuptools mingw-w64-x86_64-python-yaml mingw-w64-x86_64-jq mingw-w64-x86_64-libxml2 libpcap-devel mingw-w64-x86_64-libpcap # hack: install our own cbindgen system wide as we can't get the # preinstalled one to be picked up by configure - name: cbindgen @@ -3238,7 +3212,7 @@ jobs: with: msystem: MINGW64 update: true - install: git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool libyaml-devel pcre2-devel jansson-devel make mingw-w64-x86_64-libyaml mingw-w64-x86_64-pcre2 mingw-w64-x86_64-rust mingw-w64-x86_64-jansson unzip p7zip python-setuptools mingw-w64-x86_64-python-yaml mingw-w64-x86_64-jq mingw-w64-x86_64-libxml2 libpcap-devel mingw-w64-x86_64-libpcap mingw-w64-x86_64-lua + install: git mingw-w64-x86_64-toolchain automake1.16 automake-wrapper autoconf libtool libyaml-devel pcre2-devel jansson-devel make mingw-w64-x86_64-libyaml mingw-w64-x86_64-pcre2 mingw-w64-x86_64-rust mingw-w64-x86_64-jansson unzip p7zip python-setuptools mingw-w64-x86_64-python-yaml mingw-w64-x86_64-jq mingw-w64-x86_64-libxml2 libpcap-devel mingw-w64-x86_64-libpcap # hack: install our own cbindgen system wide as we can't get the # preinstalled one to be picked up by configure - name: cbindgen diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 7f946046ee..b7db5b86dd 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -52,7 +52,6 @@ jobs: sudo apt-get install libssl-dev sudo apt-get install libpcre2-dev sudo apt-get install libjansson-dev - sudo apt-get install liblua5.4-dev sudo apt-get install libpcap-dev sudo apt-get install libnuma-dev git clone --depth 1 https://github.com/OISF/libhtp.git diff --git a/.github/workflows/rust-checks.yml b/.github/workflows/rust-checks.yml index 56c74273b3..142832f4d8 100644 --- a/.github/workflows/rust-checks.yml +++ b/.github/workflows/rust-checks.yml @@ -56,7 +56,6 @@ jobs: git \ jansson-devel \ jq \ - lua-devel \ libtool \ libyaml-devel \ libnfnetlink-devel \ @@ -141,7 +140,6 @@ jobs: git \ jansson-devel \ jq \ - lua-devel \ libtool \ libyaml-devel \ libnfnetlink-devel \ diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index e3bd82d12d..7807662d5e 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -44,7 +44,6 @@ jobs: git \ jansson-devel \ jq \ - lua-devel \ libtool \ libyaml-devel \ libnfnetlink-devel \ diff --git a/.github/workflows/scan-build.yml b/.github/workflows/scan-build.yml index 2cad3ff152..8db811df12 100644 --- a/.github/workflows/scan-build.yml +++ b/.github/workflows/scan-build.yml @@ -56,7 +56,6 @@ jobs: libnuma-dev \ libhiredis-dev \ libhyperscan-dev \ - liblua5.4-dev \ libjansson-dev \ libevent-dev \ libevent-pthreads-2.1-7 \ diff --git a/configure.ac b/configure.ac index a736614d1e..242862722a 100644 --- a/configure.ac +++ b/configure.ac @@ -243,9 +243,6 @@ #check for os AC_MSG_CHECKING([host os]) - # Default lua libname if not detected otherwise. - LUA_LIB_NAME="lua5.4" - # If no host os was detected, try with uname if test -z "$host" ; then host="`uname`" @@ -259,7 +256,6 @@ e_magic_file_comment="#" case "$host" in *-*-*freebsd*) - LUA_LIB_NAME="lua-5.4" CFLAGS="${CFLAGS} -DOS_FREEBSD" CPPFLAGS="${CPPFLAGS} -I/usr/local/include -I/usr/local/include/libnet11" LDFLAGS="${LDFLAGS} -L/usr/local/lib -L/usr/local/lib/libnet11" @@ -272,7 +268,6 @@ RUST_LDADD="-lm -lc++ -lc++abi" ;; *darwin*|*Darwin*) - LUA_LIB_NAME="lua-5.4" CFLAGS="${CFLAGS} -DOS_DARWIN" CPPFLAGS="${CPPFLAGS} -I/opt/local/include" LDFLAGS="${LDFLAGS} -L/opt/local/lib -framework Security" @@ -293,7 +288,6 @@ TRY_WPCAP="yes" ;; *-*-cygwin) - LUA_LIB_NAME="lua" WINDOWS_PATH="yes" TRY_WPCAP="yes" ;; @@ -1877,120 +1871,11 @@ fi fi - # liblua - AC_ARG_ENABLE(lua, - AS_HELP_STRING([--disable-lua],[Disable Lua support]), - [ enable_lua="$enableval"], - [ enable_lua="yes"]) - - AC_ARG_WITH(liblua_includes, - [ --with-liblua-includes=DIR liblua include directory], - [with_liblua_includes="$withval"],[with_liblua_includes="no"]) - AC_ARG_WITH(liblua_libraries, - [ --with-liblua-libraries=DIR liblua library directory], - [with_liblua_libraries="$withval"],[with_liblua_libraries="no"]) - - if test "$enable_lua" = "yes"; then - if test "$with_liblua_includes" != "no"; then - CPPFLAGS="${CPPFLAGS} -I${with_liblua_includes}" - else - # lua lua54 lua5.4 lua-5.4 - PKG_CHECK_MODULES([LUA], [lua], [LUA="yes"], [ - PKG_CHECK_MODULES([LUA], [lua5.4], [LUA="yes"], [ - PKG_CHECK_MODULES([LUA], [lua-5.4], [LUA="yes"], [ - PKG_CHECK_MODULES([LUA], [lua54], [LUA="yes"], [ - LUA="no" - ]) - ]) - ]) - ]) - CPPFLAGS="${CPPFLAGS} ${LUA_CFLAGS}" - fi - - AC_CHECK_HEADER(lualib.h,LUA="yes",LUA="no") - if test "$LUA" = "yes"; then - if test "$with_liblua_libraries" != "no"; then - LDFLAGS="${LDFLAGS} -L${with_liblua_libraries}" - AC_CHECK_LIB(${LUA_LIB_NAME}, luaL_openlibs,, LUA="no") - if test "$LUA" = "no"; then - echo - echo " ERROR! liblua library not found, go get it" - echo " from http://lua.org/index.html or your distribution:" - echo - echo " Ubuntu: apt-get install liblua5.4-dev" - echo " Fedora: dnf install lua-devel" - echo " CentOS/RHEL: yum install lua-devel" - echo - echo " If you installed software in a non-standard prefix" - echo " consider adjusting the PKG_CONFIG_PATH environment variable" - echo " or use --with-liblua-libraries configure option." - echo - exit 1 - fi - else - # lua lua54 lua5.4 lua-5.4 - PKG_CHECK_MODULES([LUA], [lua], [LUA="yes"], [ - PKG_CHECK_MODULES([LUA], [lua5.4], [LUA="yes"], [ - PKG_CHECK_MODULES([LUA], [lua-5.4], [LUA="yes"], [ - PKG_CHECK_MODULES([LUA], [lua54], [LUA="yes"], [ - LUA="no" - ]) - ]) - ]) - ]) - LIBS="${LIBS} ${LUA_LIBS}" - fi - - if test "$LUA" = "no"; then - AC_CHECK_LIB(lua, luaL_openlibs,, LUA="no") - fi - - if test "$LUA" = "yes"; then - AC_DEFINE([HAVE_LUA],[1],[liblua available]) - enable_lua="yes" - fi - else - echo - echo " ERROR! liblua headers not found, go get them" - echo " from http://lua.org/index.html or your distribution:" - echo - echo " Ubuntu: apt-get install liblua5.4-dev" - echo " Fedora: dnf install lua-devel" - echo " CentOS/RHEL: yum install lua-devel" - echo - echo " If you installed software in a non-standard prefix" - echo " consider adjusting the PKG_CONFIG_PATH environment variable" - echo " or use --with-liblua-includes and --with-liblua-libraries" - echo " configure option." - echo - exit 1 - fi - fi - - AM_CONDITIONAL([HAVE_LUA], [test "x$enable_lua" != "xno"]) - - # If Lua is enabled, test the integer size. - if test "x$enable_lua" = "xyes" -a "$cross_compiling" != "yes"; then - TMPLIBS="$LIBS" - LIBS="" - - AC_MSG_CHECKING([size of lua integer]) - AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include ]], - [[ - if (sizeof(lua_Integer) == 8) { - return 1; - } - return 0; - ]])], - [ - AC_MSG_RESULT([4]) - ], - [ - AC_MSG_RESULT([8]) - AC_SUBST([LUA_INT8], ["lua_int8"]) - ]) - LIBS="$TMPLIBS" - fi + # Lua support, always enabled + # TODO: Update the code to not require this. + AC_DEFINE([HAVE_LUA], [1], [lua support available]) + AM_CONDITIONAL([HAVE_LUA], [true]) + AC_SUBST([LUA_INT8], ["lua_int8"]) # libmaxminddb AC_ARG_ENABLE(geoip, @@ -2284,7 +2169,7 @@ fi fi RUST_SURICATA_LIB="${RUST_SURICATA_LIBDIR}/${RUST_SURICATA_LIBNAME}" - CFLAGS="${CFLAGS} -I\${srcdir}/../rust/gen -I\${srcdir}/../rust/dist" + CFLAGS="${CFLAGS} -I\${srcdir}/../rust/gen -I\${srcdir}/../rust/dist -I../rust/gen" AC_SUBST(RUST_SURICATA_LIB) AC_SUBST(RUST_LDADD) if test "x$CARGO_HOME" = "x"; then diff --git a/doc/userguide/install.rst b/doc/userguide/install.rst index 49885c99e5..cf9c6c03fe 100644 --- a/doc/userguide/install.rst +++ b/doc/userguide/install.rst @@ -109,10 +109,9 @@ Recommended:: sudo apt-get install autoconf automake build-essential ccache clang curl git \ gosu jq libbpf-dev libcap-ng0 libcap-ng-dev libelf-dev \ libevent-dev libgeoip-dev libhiredis-dev libjansson-dev \ - liblua5.4-dev libmagic-dev libnet1-dev libpcap-dev \ - libpcre2-dev libtool libyaml-0-2 libyaml-dev m4 make \ - pkg-config python3 python3-dev python3-yaml sudo zlib1g \ - zlib1g-dev + libmagic-dev libnet1-dev libpcap-dev libpcre2-dev libtool \ + libyaml-0-2 libyaml-dev m4 make pkg-config python3 \ + python3-dev python3-yaml sudo zlib1g zlib1g-dev cargo install --force cbindgen Extra for iptables/nftables IPS integration:: diff --git a/rust/Cargo.lock.in b/rust/Cargo.lock.in index 5d7021aac7..f3b1a2eace 100644 --- a/rust/Cargo.lock.in +++ b/rust/Cargo.lock.in @@ -77,7 +77,7 @@ dependencies = [ "asn1-rs-impl", "displaydoc", "nom", - "num-traits 0.2.17", + "num-traits 0.2.18", "rusticata-macros", "thiserror", "time", @@ -89,9 +89,9 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.80", + "quote 1.0.36", + "syn 2.0.59", "synstructure 0.13.1", ] @@ -101,16 +101,16 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.80", + "quote 1.0.36", + "syn 2.0.59", ] [[package]] name = "autocfg" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" [[package]] name = "base64" @@ -192,9 +192,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -210,9 +210,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.3.2" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" dependencies = [ "cfg-if", ] @@ -238,9 +238,9 @@ dependencies = [ [[package]] name = "data-encoding" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" [[package]] name = "der-parser" @@ -252,7 +252,7 @@ dependencies = [ "displaydoc", "nom", "num-bigint 0.4.4", - "num-traits 0.2.17", + "num-traits 0.2.18", "rusticata-macros", ] @@ -273,9 +273,9 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.80", + "quote 1.0.36", + "syn 2.0.59", ] [[package]] @@ -302,8 +302,8 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.80", + "quote 1.0.36", "syn 1.0.109", "synstructure 0.12.6", ] @@ -318,6 +318,12 @@ dependencies = [ "miniz_oxide", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "generic-array" version = "0.14.7" @@ -330,9 +336,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.11" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" dependencies = [ "cfg-if", "libc", @@ -357,9 +363,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hkdf" -version = "0.12.3" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +checksum = "7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7" dependencies = [ "hmac", ] @@ -385,9 +391,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" [[package]] name = "kerberos-parser" @@ -408,9 +414,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.150" +version = "0.2.153" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" [[package]] name = "lzma-rs" @@ -446,9 +452,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" dependencies = [ "adler", ] @@ -480,8 +486,8 @@ version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd0b9a93a84b0d3ec3e70e02d332dc33ac6dfac9cde63e17fcb77172dededa62" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.80", + "quote 1.0.36", "syn 1.0.109", ] @@ -506,7 +512,7 @@ dependencies = [ "num-integer", "num-iter", "num-rational", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -517,7 +523,7 @@ checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -528,7 +534,7 @@ checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -538,7 +544,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ "autocfg", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -554,23 +560,22 @@ dependencies = [ [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] name = "num-iter" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +checksum = "d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -582,7 +587,7 @@ dependencies = [ "autocfg", "num-bigint 0.2.6", "num-integer", - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] @@ -591,14 +596,14 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" dependencies = [ - "num-traits 0.2.17", + "num-traits 0.2.18", ] [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" dependencies = [ "autocfg", ] @@ -619,8 +624,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.80", + "quote 1.0.36", "syn 1.0.109", ] @@ -635,9 +640,9 @@ dependencies = [ [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "phf" @@ -716,9 +721,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "a56dea16b0a29e94408b9aa5e2940a4eedbd128a1ba20e8f7ae60fd3d465af0e" dependencies = [ "unicode-ident", ] @@ -734,11 +739,11 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.33" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ - "proc-macro2 1.0.69", + "proc-macro2 1.0.80", ] [[package]] @@ -799,9 +804,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" +checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" [[package]] name = "sawp" @@ -828,8 +833,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49a585d3c22887d23bb06dd602b8ce96c2a716e1fa89beec8bfb49e466f2d643" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.80", + "quote 1.0.36", "syn 1.0.109", ] @@ -847,22 +852,22 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.192" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" +checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.192" +version = "1.0.197" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" +checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.80", + "quote 1.0.36", + "syn 2.0.59", ] [[package]] @@ -940,7 +945,7 @@ dependencies = [ "ntp-parser", "num", "num-derive", - "num-traits 0.2.17", + "num-traits 0.2.18", "regex", "sawp", "sawp-modbus", @@ -948,6 +953,7 @@ dependencies = [ "sha2", "snmp-parser", "suricata-derive", + "suricata-lua-sys", "test-case", "time", "tls-parser", @@ -961,11 +967,19 @@ name = "suricata-derive" version = "8.0.0-dev" dependencies = [ "proc-macro-crate", - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.80", + "quote 1.0.36", "syn 1.0.109", ] +[[package]] +name = "suricata-lua-sys" +version = "0.1.0-alpha.1" +source = "git+https://github.com/jasonish/suricata-lua-sys#cb449d352da17e5ef120f0b6b031dbe63ae64f06" +dependencies = [ + "fs_extra", +] + [[package]] name = "syn" version = "0.15.44" @@ -983,19 +997,19 @@ version = "1.0.109" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.80", + "quote 1.0.36", "unicode-ident", ] [[package]] name = "syn" -version = "2.0.39" +version = "2.0.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +checksum = "4a6531ffc7b071655e4ce2e04bd464c4830bb585a61cabb96cf808f05172615a" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.80", + "quote 1.0.36", "unicode-ident", ] @@ -1005,8 +1019,8 @@ version = "0.12.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", + "proc-macro2 1.0.80", + "quote 1.0.36", "syn 1.0.109", "unicode-xid 0.2.4", ] @@ -1017,9 +1031,9 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.80", + "quote 1.0.36", + "syn 2.0.59", ] [[package]] @@ -1038,9 +1052,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f" dependencies = [ "cfg-if", - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.80", + "quote 1.0.36", + "syn 2.0.59", ] [[package]] @@ -1049,30 +1063,30 @@ version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.80", + "quote 1.0.36", + "syn 2.0.59", "test-case-core", ] [[package]] name = "thiserror" -version = "1.0.50" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.50" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" dependencies = [ - "proc-macro2 1.0.69", - "quote 1.0.33", - "syn 2.0.39", + "proc-macro2 1.0.80", + "quote 1.0.36", + "syn 2.0.59", ] [[package]] diff --git a/rust/Cargo.toml.in b/rust/Cargo.toml.in index e53d50054f..afb1060af1 100644 --- a/rust/Cargo.toml.in +++ b/rust/Cargo.toml.in @@ -69,6 +69,8 @@ time = "=0.3.20" suricata-derive = { path = "./derive", version = "@PACKAGE_VERSION@" } +suricata-lua-sys = { git = "https://github.com/jasonish/suricata-lua-sys", version = "0.1.0-alpha.1" } + [dev-dependencies] test-case = "~3.3.1" hex = "~0.4.3" diff --git a/rust/Makefile.am b/rust/Makefile.am index 29cb05577a..b90d0332f5 100644 --- a/rust/Makefile.am +++ b/rust/Makefile.am @@ -61,6 +61,9 @@ endif $(RUST_SURICATA_LIBDIR)/${RUST_SURICATA_LIBNAME}; \ fi $(MAKE) gen/rust-bindings.h + mkdir -p $(abs_top_builddir)/rust/gen + cp -a $(RUST_SURICATA_LIBDIR)/build/suricata-lua-sys-*/out/lua/*.h \ + $(abs_top_builddir)/rust/gen/ install-library: $(MKDIR_P) "$(DESTDIR)$(libdir)" @@ -92,7 +95,8 @@ vendor: if HAVE_CBINDGEN gen/rust-bindings.h: $(RUST_SURICATA_LIB) - cbindgen --config $(abs_top_srcdir)/rust/cbindgen.toml \ + cd $(abs_top_srcdir)/rust && \ + cbindgen --config $(abs_top_srcdir)/rust/cbindgen.toml \ --quiet --verify --output $(abs_top_builddir)/rust/gen/rust-bindings.h || true else gen/rust-bindings.h: diff --git a/rust/src/lib.rs b/rust/src/lib.rs index 9b434ce61a..0b705d3c3f 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -124,3 +124,6 @@ pub mod util; pub mod ffi; pub mod feature; pub mod sdp; + +#[allow(unused_imports)] +pub use suricata_lua_sys; diff --git a/src/suricata-common.h b/src/suricata-common.h index da4b933cf7..1f3c6341e5 100644 --- a/src/suricata-common.h +++ b/src/suricata-common.h @@ -494,19 +494,9 @@ typedef enum { LOGGER_JSON_ARP, } LoggerId; -#ifndef HAVE_LUA - /* If we don't have Lua, create a typedef for lua_State so the * exported Lua functions don't fail the build. */ -typedef void lua_State; - -#else - -#include -#include -#include - -#endif +typedef struct lua_State lua_State; #include "tm-threads-common.h" #include "util-optimize.h" diff --git a/src/util-lua.h b/src/util-lua.h index ef15d93652..dd069384d5 100644 --- a/src/util-lua.h +++ b/src/util-lua.h @@ -31,6 +31,11 @@ typedef void lua_State; #else + +#include "lua.h" +#include "lualib.h" +#include "lauxlib.h" + #include "threadvars.h" #include "detect.h"