CONTRIB: move 51Degrees to addons/51degrees

Now it's much cleaner, both 51d.c and the dummy library live together and
are easier to spot and maintain. The build howto probably ought to be moved
there as well. Makefile, docs and MAINTAINERS were updated, as well as
the github CI's build matrix, travis CI's, and coverity checks.
This commit is contained in:
Willy Tarreau 2021-04-02 16:12:32 +02:00
parent 1efe68978e
commit 977209d1d8
13 changed files with 14 additions and 13 deletions

4
.github/matrix.py vendored
View File

@ -83,7 +83,7 @@ for CC in ["gcc", "clang"]:
"DEVICEATLAS_SRC=contrib/deviceatlas", "DEVICEATLAS_SRC=contrib/deviceatlas",
"USE_PROMEX=1", "USE_PROMEX=1",
"USE_51DEGREES=1", "USE_51DEGREES=1",
"51DEGREES_SRC=contrib/51d/src/pattern", "51DEGREES_SRC=addons/51degrees/dummy/pattern",
], ],
} }
) )
@ -149,7 +149,7 @@ matrix.append(
"DEVICEATLAS_SRC=contrib/deviceatlas", "DEVICEATLAS_SRC=contrib/deviceatlas",
"USE_PROMEX=1", "USE_PROMEX=1",
"USE_51DEGREES=1", "USE_51DEGREES=1",
"51DEGREES_SRC=contrib/51d/src/pattern", "51DEGREES_SRC=addons/51degrees/dummy/pattern",
], ],
} }
) )

View File

@ -17,7 +17,7 @@ jobs:
COVERITY_SCAN_PROJECT_NAME: 'Haproxy' COVERITY_SCAN_PROJECT_NAME: 'Haproxy'
COVERITY_SCAN_BRANCH_PATTERN: '*' COVERITY_SCAN_BRANCH_PATTERN: '*'
COVERITY_SCAN_NOTIFICATION_EMAIL: 'chipitsine@gmail.com' COVERITY_SCAN_NOTIFICATION_EMAIL: 'chipitsine@gmail.com'
COVERITY_SCAN_BUILD_COMMAND: "make CC=clang TARGET=linux-glibc USE_ZLIB=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_LUA=1 USE_OPENSSL=1 USE_SYSTEMD=1 USE_WURFL=1 WURFL_INC=contrib/wurfl WURFL_LIB=contrib/wurfl USE_DEVICEATLAS=1 DEVICEATLAS_SRC=contrib/deviceatlas USE_51DEGREES=1 51DEGREES_SRC=contrib/51d/src/pattern" COVERITY_SCAN_BUILD_COMMAND: "make CC=clang TARGET=linux-glibc USE_ZLIB=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_LUA=1 USE_OPENSSL=1 USE_SYSTEMD=1 USE_WURFL=1 WURFL_INC=contrib/wurfl WURFL_LIB=contrib/wurfl USE_DEVICEATLAS=1 DEVICEATLAS_SRC=contrib/deviceatlas USE_51DEGREES=1 51DEGREES_SRC=addons/51degrees/dummy/pattern"
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Install apt dependencies - name: Install apt dependencies

View File

@ -13,7 +13,7 @@ env:
global: global:
- FLAGS="USE_ZLIB=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_LUA=1 USE_OPENSSL=1 USE_SYSTEMD=1 USE_WURFL=1 WURFL_INC=contrib/wurfl WURFL_LIB=contrib/wurfl USE_DEVICEATLAS=1 DEVICEATLAS_SRC=contrib/deviceatlas USE_51DEGREES=1" - FLAGS="USE_ZLIB=1 USE_PCRE=1 USE_PCRE_JIT=1 USE_LUA=1 USE_OPENSSL=1 USE_SYSTEMD=1 USE_WURFL=1 WURFL_INC=contrib/wurfl WURFL_LIB=contrib/wurfl USE_DEVICEATLAS=1 DEVICEATLAS_SRC=contrib/deviceatlas USE_51DEGREES=1"
- TMPDIR=/tmp - TMPDIR=/tmp
- FIFTYONEDEGREES_SRC="contrib/51d/src/pattern" - FIFTYONEDEGREES_SRC="addons/51degrees/dummy/pattern"
- DEBUG_OPTIONS="DEBUG_STRICT=1" - DEBUG_OPTIONS="DEBUG_STRICT=1"
addons: addons:
@ -49,7 +49,7 @@ matrix:
- os: linux - os: linux
if: type == cron if: type == cron
compiler: clang compiler: clang
env: TARGET=linux-glibc OPENSSL_VERSION=1.1.0l FIFTYONEDEGREES_SRC="contrib/51d/src/trie" CC=clang-9 env: TARGET=linux-glibc OPENSSL_VERSION=1.1.0l FIFTYONEDEGREES_SRC="addons/51degrees/dummy/trie" CC=clang-9
name: openssl-1.1.1 | 51d trie name: openssl-1.1.1 | 51d trie
- os: linux - os: linux
env: DEBUG_OPTIONS="" env: DEBUG_OPTIONS=""

View File

@ -20,7 +20,7 @@ List of maintainers
51Degrees device identification 51Degrees device identification
Maintainer: Ben Shillito <ben@51degrees.com> Maintainer: Ben Shillito <ben@51degrees.com>
Files: src/51d.c, contrib/51d, doc/51Degrees-device-detection.txt Files: addons/51degrees, doc/51Degrees-device-detection.txt
Cache Cache
Maintainer: William Lallemand <wlallemand@haproxy.com> Maintainer: William Lallemand <wlallemand@haproxy.com>

View File

@ -652,7 +652,7 @@ ifneq ($(USE_51DEGREES),)
51DEGREES_LIB = $(51DEGREES_SRC) 51DEGREES_LIB = $(51DEGREES_SRC)
OPTIONS_OBJS += $(51DEGREES_LIB)/../cityhash/city.o OPTIONS_OBJS += $(51DEGREES_LIB)/../cityhash/city.o
OPTIONS_OBJS += $(51DEGREES_LIB)/51Degrees.o OPTIONS_OBJS += $(51DEGREES_LIB)/51Degrees.o
OPTIONS_OBJS += src/51d.o OPTIONS_OBJS += addons/51degrees/51d.o
OPTIONS_CFLAGS += $(if $(51DEGREES_INC),-I$(51DEGREES_INC)) OPTIONS_CFLAGS += $(if $(51DEGREES_INC),-I$(51DEGREES_INC))
ifeq ($(USE_THREAD),) ifeq ($(USE_THREAD),)
OPTIONS_CFLAGS += -DFIFTYONEDEGREES_NO_THREADING OPTIONS_CFLAGS += -DFIFTYONEDEGREES_NO_THREADING
@ -1004,6 +1004,7 @@ clean:
$(Q)rm -f haproxy-$(VERSION) haproxy-$(VERSION)$(SUBVERS)$(EXTRAVERSION) nohup.out gmon.out $(Q)rm -f haproxy-$(VERSION) haproxy-$(VERSION)$(SUBVERS)$(EXTRAVERSION) nohup.out gmon.out
$(Q)rm -f {admin,dev,contrib}/*/*.[oas] {admin,dev,contrib}/*/*/*.[oas] {admin,dev,contrib}/*/*/*/*.[oas] $(Q)rm -f {admin,dev,contrib}/*/*.[oas] {admin,dev,contrib}/*/*/*.[oas] {admin,dev,contrib}/*/*/*/*.[oas]
$(Q)rm -f addons/promex/*.[oas] $(Q)rm -f addons/promex/*.[oas]
$(Q)rm -f addons/51degrees/*.[oas] addons/51degrees/dummy/*.[oas] addons/51degrees/dummy/*/*.[oas]
$(Q)rm -f admin/iprange/iprange admin/iprange/ip6range admin/halog/halog $(Q)rm -f admin/iprange/iprange admin/iprange/ip6range admin/halog/halog
$(Q)rm -f dev/flags/flags dev/poll/poll dev/tcploop/tcploop $(Q)rm -f dev/flags/flags dev/poll/poll dev/tcploop/tcploop
$(Q)rm -f dev/hpack/decode dev/hpack/gen-enc dev/hpack/gen-rht $(Q)rm -f dev/hpack/decode dev/hpack/gen-enc dev/hpack/gen-rht

View File

@ -54,14 +54,14 @@ Trie data. Free Hash Trie data file can be obtained by signing up for a licence
key at https://51degrees.com/products/store/on-premise-device-detection. key at https://51degrees.com/products/store/on-premise-device-detection.
For HAProxy developers who need to verify that their changes didn't affect the For HAProxy developers who need to verify that their changes didn't affect the
51Degrees implementation, a dummy library if provided in the contrib/51d 51Degrees implementation, a dummy library is provided in the
directory. This does not function, but implements the API such that the "addons/51degrees/dummy" directory. This does not function, but implements the
51Degrees module can be used (but not return any meaningful information). To API such that the 51Degrees module can be used (but not return any meaningful
test either Pattern or Hash Trie, build with: information). To test either Pattern or Hash Trie, build with:
$ make TARGET=<target> USE_51DEGREES=1 51DEGREES_SRC=contrib/51d/src/pattern $ make TARGET=<target> USE_51DEGREES=1 51DEGREES_SRC=addons/51degrees/dummy/pattern
or or
$ make TARGET=<target> USE_51DEGREES=1 51DEGREES_SRC=contrib/51d/src/trie $ make TARGET=<target> USE_51DEGREES=1 51DEGREES_SRC=addons/51degrees/dummy/trie
respectively. respectively.