[3/3] hyperscan: New package

Message ID 20190526175647.4101-3-stefan.schantl@ipfire.org
State Accepted
Commit 52ebc66bba0e44f9d70ebc29c16e877a9e23acfe
Headers
Series [1/3] colm: New package |

Commit Message

Stefan Schantl May 27, 2019, 3:56 a.m. UTC
  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

Michael Tremer May 28, 2019, 1:06 a.m. UTC | #1
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
>
  

Patch

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