51Degrees / Device-Detection

THE Fastest and most Accurate device detection for C / PHP / Perl / Python and Node.js - professionally maintained device data
https://51degrees.com/device-detection
Other
112 stars 46 forks source link

Build errors #59

Closed pingvinton closed 11 months ago

pingvinton commented 1 year ago

Hello, when I try build dynamic module 51Degrees for nginx I got this error after command

make install trie

objs/src/http/modules/ngx_http_upstream_ip_hash_module.o \ objs/src/http/modules/ngx_http_upstream_least_conn_module.o \ objs/src/http/modules/ngx_http_upstream_random_module.o \ objs/src/http/modules/ngx_http_upstream_keepalive_module.o \ objs/src/http/modules/ngx_http_upstream_zone_module.o \ objs/ngx_modules.o \ -lm -lcrypt -lpcre -lz \ -Wl,-E cc -c -fPIC -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -DFIFTYONEDEGREES_TRIE -DFIFTYONEDEGREES_NO_THREADING -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \ -o objs/addon/51Degrees_module/ngx_http_51D_module.o \ /devmod-detection/nginx/51Degrees_module/ngx_http_51D_module.c cc -c -fPIC -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -DFIFTYONEDEGREES_TRIE -DFIFTYONEDEGREES_NO_THREADING -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \ -o objs/addon/trie/51Degrees.o \ /devmod-detection/nginx/51Degrees_module/src/trie/51Degrees.c cc -c -fPIC -pipe -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g -DFIFTYONEDEGREES_TRIE -DFIFTYONEDEGREES_NO_THREADING -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs -I src/http -I src/http/modules \ -o objs/ngx_http_51D_module_modules.o \ objs/ngx_http_51D_module_modules.c cc -o objs/ngx_http_51D_module.so \ objs/addon/51Degrees_module/ngx_http_51D_module.o \ objs/addon/trie/51Degrees.o \ objs/ngx_http_51D_module_modules.o \ -lm \ -shared /usr/bin/ld: objs/addon/trie/51Degrees.o:/devmod-detection/nginx/51Degrees_module/src/trie/51Degrees.h:720: multiple definition of fiftyoneDegreesMalloc'; objs/addon/51Degrees_module/ngx_http_51D_module.o:/devmod-detection/nginx/51Degrees_module/src/trie/51Degrees.h:720: first defined here /usr/bin/ld: objs/addon/trie/51Degrees.o:/devmod-detection/nginx/51Degrees_module/src/trie/51Degrees.h:727: multiple definition offiftyoneDegreesFree'; objs/addon/51Degrees_module/ngx_http_51D_module.o:/devmod-detection/nginx/51Degrees_module/src/trie/51Degrees.h:727: first defined here collect2: error: ld returned 1 exit status make[2]: [objs/Makefile:1205: objs/ngx_http_51D_module.so] Error 1 make[2]: Leaving directory '/devmod-detection/nginx/vendor/nginx-1.16.1' make[1]: [Makefile:11: install] Error 2 make[1]: Leaving directory '/devmod-detection/nginx/vendor/nginx-1.16.1' make: *** [Makefile:101: install] Error 2

pingvinton commented 1 year ago

When I try module only I got the same result

make module
justadreamer commented 11 months ago

Hi @pingvinton

This issue appears to relate to the previous version of 51Degrees, version 3. We suggest using version 4.

Version 4 algorithm was released in the summer of 2020 and is now over three years in production. This algorithm and associated data files is designed to handle the evolution of the internet including User Agent Client Hints (UACH). We recommend using the version 4 algorithm which is available for NGINX in the https://github.com/51degrees/device-detection-nginx/ repository and following the steps outlined there.

If you need help with this prior version then you can obtain support via this page. Alternatively fork this repo and make the necessary modifications yourself.

If you have issues using the examples with the version 4 NGINX module do post them on GitHub and we can look into them for you.

pingvinton commented 11 months ago

@justadreamer Hello, Thanks for your answer. Can I use db version 51Degrees-EnterpriseV3.4.trie with new module or I must build with old module from fork? And can I use new Nginx version for example 1.25?

justadreamer commented 11 months ago

Hi @pingvinton

With the v4 code you would need to use a new data file in a different format, please contact support in order to upgrade your license to v4 via https://51degrees.com/contact-us or directly to support@51degrees.com. V4 also supports all newer versions of nginx including 1.25.