[3/3] hyperscan: New package
Commit Message
This package adds hyperscan support to suricata
Fixes #12053.
Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
---
config/rootfiles/common/hyperscan | 18 +++++++
lfs/hyperscan | 81 +++++++++++++++++++++++++++++++
make.sh | 1 +
3 files changed, 100 insertions(+)
create mode 100644 config/rootfiles/common/hyperscan
create mode 100644 lfs/hyperscan
Comments
Hi Stefan,
This is a very important patchset and I have just merged it.
I had to move the root files into directories for x86_64 and i586 so that we won’t try to package it on other architectures.
We could consider to not build ragel and the other dependency on ARM, because we won’t use it.
Looking forward to doing benchmarks with this!
Best,
-Michael
> On 26 May 2019, at 18:56, Stefan Schantl <stefan.schantl@ipfire.org> wrote:
>
> This package adds hyperscan support to suricata
>
> Fixes #12053.
>
> Signed-off-by: Stefan Schantl <stefan.schantl@ipfire.org>
> ---
> config/rootfiles/common/hyperscan | 18 +++++++
> lfs/hyperscan | 81 +++++++++++++++++++++++++++++++
> make.sh | 1 +
> 3 files changed, 100 insertions(+)
> create mode 100644 config/rootfiles/common/hyperscan
> create mode 100644 lfs/hyperscan
>
> diff --git a/config/rootfiles/common/hyperscan b/config/rootfiles/common/hyperscan
> new file mode 100644
> index 000000000..3cec5c087
> --- /dev/null
> +++ b/config/rootfiles/common/hyperscan
> @@ -0,0 +1,18 @@
> +#usr/include/hs
> +#usr/include/hs/hs.h
> +#usr/include/hs/hs_common.h
> +#usr/include/hs/hs_compile.h
> +#usr/include/hs/hs_runtime.h
> +#usr/lib/libhs.so
> +usr/lib/libhs.so.5
> +usr/lib/libhs.so.5.1.1
> +usr/lib/libhs_runtime.so
> +usr/lib/libhs_runtime.so.5
> +usr/lib/libhs_runtime.so.5.1.1
> +#usr/lib/pkgconfig/libhs.pc
> +#usr/share/doc/hyperscan
> +#usr/share/doc/hyperscan/examples
> +#usr/share/doc/hyperscan/examples/README.md
> +#usr/share/doc/hyperscan/examples/patbench.cc
> +#usr/share/doc/hyperscan/examples/pcapscan.cc
> +#usr/share/doc/hyperscan/examples/simplegrep.c
> diff --git a/lfs/hyperscan b/lfs/hyperscan
> new file mode 100644
> index 000000000..f390c827e
> --- /dev/null
> +++ b/lfs/hyperscan
> @@ -0,0 +1,81 @@
> +###############################################################################
> +# #
> +# IPFire.org - A linux based firewall #
> +# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
> +# #
> +# This program is free software: you can redistribute it and/or modify #
> +# it under the terms of the GNU General Public License as published by #
> +# the Free Software Foundation, either version 3 of the License, or #
> +# (at your option) any later version. #
> +# #
> +# This program is distributed in the hope that it will be useful, #
> +# but WITHOUT ANY WARRANTY; without even the implied warranty of #
> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
> +# GNU General Public License for more details. #
> +# #
> +# You should have received a copy of the GNU General Public License #
> +# along with this program. If not, see <http://www.gnu.org/licenses/>. #
> +# #
> +###############################################################################
> +
> +###############################################################################
> +# Definitions
> +###############################################################################
> +
> +include Config
> +
> +VER = 5.1.1
> +
> +THISAPP = hyperscan-$(VER)
> +DL_FILE = $(THISAPP).tar.gz
> +DL_FROM = $(URL_IPFIRE)
> +DIR_APP = $(DIR_SRC)/$(THISAPP)
> +TARGET = $(DIR_INFO)/$(THISAPP)
> +SUP_ARCH = x86_64 i586
> +
> +###############################################################################
> +# Top-level Rules
> +###############################################################################
> +
> +objects = $(DL_FILE)
> +
> +$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
> +
> +$(DL_FILE)_MD5 = 96f9cd558132dd65ec03648aaaba2a48
> +
> +install : $(TARGET)
> +
> +check : $(patsubst %,$(DIR_CHK)/%,$(objects))
> +
> +download :$(patsubst %,$(DIR_DL)/%,$(objects))
> +
> +md5 : $(subst %,%_MD5,$(objects))
> +
> +###############################################################################
> +# Downloading, checking, md5sum
> +###############################################################################
> +
> +$(patsubst %,$(DIR_CHK)/%,$(objects)) :
> + @$(CHECK)
> +
> +$(patsubst %,$(DIR_DL)/%,$(objects)) :
> + @$(LOAD)
> +
> +$(subst %,%_MD5,$(objects)) :
> + @$(MD5)
> +
> +###############################################################################
> +# Installation Details
> +###############################################################################
> +
> +$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
> + @$(PREBUILD)
> + @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
> + cd $(DIR_APP) && cmake . \
> + -DCMAKE_INSTALL_PREFIX:PATH=/usr \
> + -DBUILD_SHARED_LIBS:BOOL=ON \
> + -DBUILD_STATIC_AND_SHARED:BOOL=OFF
> + cd $(DIR_APP) && make $(MAKETUNING)
> + cd $(DIR_APP) && make install
> + @rm -rf $(DIR_APP)
> + @$(POSTBUILD)
> diff --git a/make.sh b/make.sh
> index b26b49d59..bbbf0eb41 100755
> --- a/make.sh
> +++ b/make.sh
> @@ -1323,6 +1323,7 @@ buildipfire() {
> lfsmake2 libhtp
> lfsmake2 colm
> lfsmake2 ragel
> + lfsmake2 hyperscan
> lfsmake2 suricata
> lfsmake2 oinkmaster
> lfsmake2 ids-ruleset-sources
> --
> 2.20.1
>
new file mode 100644
@@ -0,0 +1,18 @@
+#usr/include/hs
+#usr/include/hs/hs.h
+#usr/include/hs/hs_common.h
+#usr/include/hs/hs_compile.h
+#usr/include/hs/hs_runtime.h
+#usr/lib/libhs.so
+usr/lib/libhs.so.5
+usr/lib/libhs.so.5.1.1
+usr/lib/libhs_runtime.so
+usr/lib/libhs_runtime.so.5
+usr/lib/libhs_runtime.so.5.1.1
+#usr/lib/pkgconfig/libhs.pc
+#usr/share/doc/hyperscan
+#usr/share/doc/hyperscan/examples
+#usr/share/doc/hyperscan/examples/README.md
+#usr/share/doc/hyperscan/examples/patbench.cc
+#usr/share/doc/hyperscan/examples/pcapscan.cc
+#usr/share/doc/hyperscan/examples/simplegrep.c
new file mode 100644
@@ -0,0 +1,81 @@
+###############################################################################
+# #
+# IPFire.org - A linux based firewall #
+# Copyright (C) 2007-2018 IPFire Team <info@ipfire.org> #
+# #
+# This program is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# This program is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
+# #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER = 5.1.1
+
+THISAPP = hyperscan-$(VER)
+DL_FILE = $(THISAPP).tar.gz
+DL_FROM = $(URL_IPFIRE)
+DIR_APP = $(DIR_SRC)/$(THISAPP)
+TARGET = $(DIR_INFO)/$(THISAPP)
+SUP_ARCH = x86_64 i586
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 96f9cd558132dd65ec03648aaaba2a48
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+ @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+ @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+ @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+ @$(PREBUILD)
+ @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+ cd $(DIR_APP) && cmake . \
+ -DCMAKE_INSTALL_PREFIX:PATH=/usr \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DBUILD_STATIC_AND_SHARED:BOOL=OFF
+ cd $(DIR_APP) && make $(MAKETUNING)
+ cd $(DIR_APP) && make install
+ @rm -rf $(DIR_APP)
+ @$(POSTBUILD)
@@ -1323,6 +1323,7 @@ buildipfire() {
lfsmake2 libhtp
lfsmake2 colm
lfsmake2 ragel
+ lfsmake2 hyperscan
lfsmake2 suricata
lfsmake2 oinkmaster
lfsmake2 ids-ruleset-sources