Merge pull request #85 from VectorCamp/feature/add-debian-package

Feature/add debian package
This commit is contained in:
Konstantinos Margaritis 2022-01-21 10:12:04 +02:00 committed by GitHub
commit 6cd6957a23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 270 additions and 3 deletions

View File

@ -3,7 +3,7 @@ project (vectorscan C CXX)
set (HS_MAJOR_VERSION 5)
set (HS_MINOR_VERSION 4)
set (HS_PATCH_VERSION 5)
set (HS_PATCH_VERSION 6)
set (HS_VERSION ${HS_MAJOR_VERSION}.${HS_MINOR_VERSION}.${HS_PATCH_VERSION})
set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
@ -236,8 +236,14 @@ if (ARCH_AARCH64)
endif ()
endif(ARCH_AARCH64)
set(ARCH_C_FLAGS "-${ARCH_FLAG}=${GNUCC_ARCH} -mtune=${TUNE_FLAG} ${ARCH_C_FLAGS}")
set(ARCH_CXX_FLAGS "-${ARCH_FLAG}=${GNUCC_ARCH} -mtune=${TUNE_FLAG} ${ARCH_CXX_FLAGS}")
message(STATUS "ARCH_C_FLAGS : ${ARCH_C_FLAGS}")
message(STATUS "ARCH_CXX_FLAGS : ${ARCH_CXX_FLAGS}")
if (NOT FAT_RUNTIME)
set(ARCH_C_FLAGS "-${ARCH_FLAG}=${GNUCC_ARCH} -mtune=${TUNE_FLAG} ${ARCH_C_FLAGS}")
set(ARCH_CXX_FLAGS "-${ARCH_FLAG}=${GNUCC_ARCH} -mtune=${TUNE_FLAG} ${ARCH_CXX_FLAGS}")
endif()
#if (ARCH_IA32 OR ARCH_X86_64 OR ARCH_ARM32 OR ARCH_AARCH64)
# if (NOT CMAKE_C_FLAGS MATCHES .*march.* AND NOT CMAKE_C_FLAGS MATCHES .*mtune.*)

5
debian/changelog vendored Normal file
View File

@ -0,0 +1,5 @@
vectorscan (5.4.6.1) unstable; urgency=medium
* Initial release. (Closes: #1004079)
-- Konstantinos Margaritis <markos@debian.org> Wed, 15 Dec 2021 13:20:38 +0200

60
debian/control vendored Normal file
View File

@ -0,0 +1,60 @@
Source: vectorscan
Priority: optional
Maintainer: Konstantinos Margaritis <markos@debian.org>
Build-Depends: cmake (>=2.8.11),
debhelper-compat (=12),
libboost-dev (>=1.57),
libpcap-dev,
pkg-config,
po-debconf,
python3,
ragel (>=6.9)
Standards-Version: 4.5.1
Section: libs
Rules-Requires-Root: no
Homepage: https://vectorcamp.gr/vectorscan
Vcs-Git: https://salsa.debian.org/debian/hyperscan.git
Vcs-Browser: https://salsa.debian.org/debian/vectorscan
Package: libvectorscan-dev
Section: libdevel
Architecture: any-amd64 arm64 ppc64el
Replaces: libhyperscan-dev
Conflicts: libhyperscan-dev
Provides: libhyperscan-dev
Depends: libvectorscan5 (= ${binary:Version}), ${misc:Depends}
Description: Portable fork of Intel's Hyperscan library (development files)
Vectorscan is a portable fork of Intel's Hyperscan project. It is a drop-in
replacement that promises to be API/ABI compatible with the original project,
while allowing it to run on other architectures such as AArch64 and Power9.
.
This package contains development libraries, header files and documentation for
the regular expression matching library libhyperscan. You can either use the
supplied shared or static library.
.
Vectorscan only runs on CPUs with a SIMD unit. On x86 CPUs, the minimum
requirement is SSE4.2, AArch64 ISA already implies Advanced SIMD/NEON and
ppc64le (Power8/Power9) already implies VSX enabled by default.
Package: libvectorscan5
Architecture: any-amd64 arm64 ppc64el
Depends: ${misc:Depends}, ${shlibs:Depends}, sse4.2-support [any-amd64]
Pre-Depends: debconf
Replaces: libhyperscan5
Conflicts: libhyperscan5
Provides: libhyperscan5
Description: Portable fork of Intel's Hyperscan library
Vectorscan is a portable fork of Intel's Hyperscan project. It is a drop-in
replacement that promises to be API/ABI compatible with the original project,
while allowing it to run on other architectures such as AArch64 and Power9.
.
Hyperscan is a high-performance multiple regex matching library.
It follows the regular expression syntax of the commonly-used libpcre library,
but is a standalone library with its own C API. Hyperscan uses hybrid automata
techniques to allow simultaneous matching of large numbers (up to tens of
thousands) of regular expressions and for the matching of regular expressions
across streams of data. Hyperscan is typically used in a DPI library stack.
.
Vectorscan only runs on CPUs with a SIMD unit. On x86 CPUs, the minimum
requirement is SSE4.2, AArch64 ISA already implies Advanced SIMD/NEON and
ppc64le (Power8/Power9) already implies VSX enabled by default.

130
debian/copyright vendored Normal file
View File

@ -0,0 +1,130 @@
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: vectorscan
Source: https://github.com/VectorCamp/vectorscan
Files: *
Copyright: 2015 Intel Corporation <hyperscan@intel.com>
2019-2022 VectorCamp PC <vectorscan@vectorcamp.gr>
2021-2022 Arm Limited
License: BSD-3-Clause-Intel
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of Intel Corporation nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: src/crc32.c
Copyright: 2004-2006 Intel Corporation
License: BSD-2-Clause
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: include/boost-patched/graph/dominator_tree.hpp
Copyright: 2005-2009 Jongsoo Park <jongsoo.park@gmail.com>
License: BSL-1.0
Permission is hereby granted, free of charge, to any person or organization
obtaining a copy of the software and accompanying documentation covered by
this license (the "Software") to use, reproduce, display, distribute,
execute, and transmit the Software, and to prepare derivative works of the
Software, and to permit third-parties to whom the Software is furnished to
do so, all subject to the following:
.
The copyright notices in the Software and this entire statement, including
the above license grant, this restriction and the following disclaimer,
must be included in all copies of the Software, in whole or in part, and
all derivative works of the Software, unless such copies or derivative
works are solely in the form of machine-executable object code generated by
a source language processor.
.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
Files: unit/gtest/*
Copyright: 2008 Google Inc.
License: BSD-3-Clause-Google
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of Google Inc. nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Files: debian/*
Copyright: 2016 Robert Haist <rhaist@mailbox.org>
2016 Hilko Bengen <bengen@debian.org>
2016 SZLin <szlin@cs.nctu.edu.tw>
2021-2022 VectorCamp PC
License: GPL-2+
This package 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 2 of the License, or
(at your option) any later version.
.
This package 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 <https://www.gnu.org/licenses/>
.
On Debian systems, the complete text of the GNU General
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".

1
debian/libvectorscan-dev.examples vendored Normal file
View File

@ -0,0 +1 @@
usr/share/doc/vectorscan/examples/*

4
debian/libvectorscan-dev.install vendored Normal file
View File

@ -0,0 +1,4 @@
usr/include/*
usr/lib/*/lib*.a
usr/lib/*/lib*.so
usr/lib/*/pkgconfig/*

1
debian/libvectorscan5.install vendored Normal file
View File

@ -0,0 +1 @@
usr/lib/*/lib*.so.*

View File

@ -0,0 +1,5 @@
# Rationale:
# The original library name libhs4 is to short and could
# be mistaken. So we changed it to libhyperscan5 for Debian.
libvectorscan5: package-name-doesnt-match-sonames

19
debian/rules vendored Executable file
View File

@ -0,0 +1,19 @@
#!/usr/bin/make -f
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
ifeq ($(DEB_HOST_ARCH),amd64)
export DEB_CMAKE_FLAGS = -DBUILD_AVX2=on -DBUILD_AVX512=on -DBUILD_AVX512VBMI=off -DFAT_RUNTIME=on
endif
%:
dh $@
override_dh_auto_configure:
dh_auto_configure -- \
-DBUILD_STATIC_AND_SHARED=1 \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
${DEB_CMAKE_FLAGS}
override_dh_missing:
dh_missing --fail-missing

1
debian/source/format vendored Normal file
View File

@ -0,0 +1 @@
3.0 (native)

21
debian/tests/build-lib vendored Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
# autopkgtest check: Build a program against libhyperscan and check whether a
# runnable binary is produced.
# Author: Sascha Steinbiss <satta@debian.org>
set -e
SRC=$(pwd)/examples/simplegrep.c
RES=$(pwd)/debian/tests/simplegrep.result
WORKDIR=$(mktemp -d)
trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
cd $WORKDIR
gcc -o simplegrep $SRC $(pkg-config --cflags --libs libhs)
[ -x simplegrep ]
echo "build: OK"
echo "barbaz" > 1
./simplegrep ba 1 > 2
diff 2 $RES
echo "run: OK"

2
debian/tests/control vendored Normal file
View File

@ -0,0 +1,2 @@
Tests: build-lib
Depends: build-essential, pkg-config, @

3
debian/tests/simplegrep.result vendored Normal file
View File

@ -0,0 +1,3 @@
Scanning 7 bytes with Hyperscan
Match for pattern "ba" at offset 2
Match for pattern "ba" at offset 5

5
debian/upstream/metadata vendored Normal file
View File

@ -0,0 +1,5 @@
---
Bug-Database: https://github.com/VectorCamp/vectorscan/issues
Bug-Submit: https://github.com/VectorCamp/vectorscan/issues/new
Repository: https://github.com/VectorCamp/vectorscan.git
Repository-Browse: https://github.com/VectorCamp/vectorscan

4
debian/watch vendored Normal file
View File

@ -0,0 +1,4 @@
version=4
opts="filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%<project>-$1.tar.gz%" \
https://github.com/vectorcamp/vectorscan/releases \
(?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate