This adds the geoip2 module to nginx, I tested it by adding logging of
the country code with this in the main section:
load_module /var/www/modules/ngx_http_geoip2_module.so;
and this in the http block:
geoip2 /var/db/GeoIP/GeoLite2-Country.mmdb {
$geoip2_data_country_code default=US country iso_code;
}
log_format main '$remote_addr:$remote_port $http_host $remote_user
[$time_local] "$request" $status $body_bytes_sent "$http_referer"
"$http_user_agent" "$http_x_forwarded_for" [$geoip2_data_country_code]';
Also cleans up multi-distfiles a bit.
OK?
Index: Makefile
===================================================================
RCS file: /cvs/ports/www/nginx/Makefile,v
retrieving revision 1.138
diff -u -p -r1.138 Makefile
--- Makefile 26 Aug 2019 06:58:08 -0000 1.138
+++ Makefile 6 Nov 2019 11:53:10 -0000
@@ -5,6 +5,7 @@ BROKEN-hppa= src/core/ngx_rwlock.c:116:2
COMMENT-main= robust and small HTTP server and mail proxy server
COMMENT-image_filter= nginx image filter module
COMMENT-geoip= nginx GeoIP module
+COMMENT-geoip2= nginx GeoIP2 module
COMMENT-xslt= nginx XSLT filter module
COMMENT-mailproxy= nginx mail proxy module
COMMENT-stream= nginx TCP/UDP proxy module
@@ -20,12 +21,13 @@ VERSION= 1.16.1
DISTNAME= nginx-${VERSION}
CATEGORIES= www
-REVISION-main= 0
-VERSION-rtmp=1.2.1
+REVISION= 1
+VERSION-rtmp= 1.2.1
PKGNAME-main= ${DISTNAME}
PKGNAME-image_filter= nginx-image_filter-${VERSION}
PKGNAME-geoip= nginx-geoip-${VERSION}
+PKGNAME-geoip2= nginx-geoip2-${VERSION}
PKGNAME-xslt= nginx-xslt-${VERSION}
PKGNAME-mailproxy= nginx-mailproxy-${VERSION}
PKGNAME-stream= nginx-stream-${VERSION}
@@ -37,32 +39,33 @@ PKGNAME-perl= nginx-perl-${VERSION}
PKGNAME-passenger= nginx-passenger-${VERSION}
PKGNAME-rtmp= nginx-rtmp-${VERSION}
-
MASTER_SITES= https://nginx.org/download/
-MASTER_SITES0= https://github.com/simpl/ngx_devel_kit/archive/
-MASTER_SITES1= https://github.com/nbs-system/naxsi/archive/
-MASTER_SITES2= https://github.com/openresty/lua-nginx-module/archive/
-MASTER_SITES3=
https://raw.githubusercontent.com/rnagy/nginx_chroot_patch/master/
-MASTER_SITES4= https://github.com/openresty/headers-more-nginx-module/archive/
-MASTER_SITES5= https://github.com/kvspb/nginx-auth-ldap/archive/
-MASTER_SITES6= https://github.com/arut/nginx-rtmp-module/archive/
-
-DISTFILES= ${DISTNAME}${EXTRACT_SUFX} \
- ngx_devel_kit-{}v0.3.0.tar.gz:0 \
- naxsi-{}0.55.3.tar.gz:1 \
- lua-nginx-module-{}v0.10.11.tar.gz:2 \
- headers-more-nginx-module-{}v0.33.tar.gz:4 \
-
nginx-auth-ldap-0.20170725{42d195d7a7575ebab1c369ad3fc5d78dc2c2669c}.tar.gz:5 \
- nginx-rtmp-module-{}v${VERSION-rtmp}.tar.gz:6
+MASTER_SITES0= https://github.com/
+MASTER_SITES1=
https://raw.githubusercontent.com/rnagy/nginx_chroot_patch/master/
+
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
+
+_GH_MODS= \
+ openresty headers-more-nginx-module v0.33 \
+ openresty lua-nginx-module v0.10.11 \
+ nbs-system naxsi 0.55.3 \
+ kvspb nginx-auth-ldap
42d195d7a7575ebab1c369ad3fc5d78dc2c2669c \
+ arut nginx-rtmp-module v${VERSION-rtmp} \
+ simpl ngx_devel_kit v0.3.0 \
+ leev ngx_http_geoip2_module 3.3
+
+.for _a _p _c in ${_GH_MODS}
+DISTFILES+= ${_p}-{${_a}/${_p}/archive/}${_c}.tar.gz:0
+.endfor
-HOMEPAGE= http://nginx.org/
+HOMEPAGE= https://nginx.org/
MAINTAINER= Robert Nagy <[email protected]>
# BSD-like
PERMIT_PACKAGE= Yes
-MULTI_PACKAGES = -main -image_filter -geoip -xslt -mailproxy -stream \
+MULTI_PACKAGES = -main -image_filter -geoip -geoip2 -xslt -mailproxy
-stream \
-naxsi -perl -passenger -headers_more -ldap_auth -lua
-rtmp
FLAVOR ?=
@@ -77,6 +80,7 @@ WANTLIB-mailproxy=
WANTLIB-stream=
WANTLIB-image_filter= gd
WANTLIB-geoip= GeoIP
+WANTLIB-geoip2= maxminddb
WANTLIB-xslt= exslt xml2 xslt
WANTLIB-naxsi=
WANTLIB-ldap_auth= ldap
@@ -90,6 +94,7 @@ LIB_DEPENDS-xslt= textproc/libxml \
textproc/libxslt
LIB_DEPENDS-image_filter=graphics/gd
LIB_DEPENDS-geoip= net/GeoIP
+LIB_DEPENDS-geoip2= net/libmaxminddb
LIB_DEPENDS-ldap_auth= databases/openldap
LIB_DEPENDS-lua= ${MODLUA_LIB_DEPENDS}
LIB_DEPENDS-rtmp= textproc/libxml \
@@ -111,19 +116,21 @@ PREFIX-mailproxy= ${NGINX_MODULES_DIR}
PREFIX-stream= ${NGINX_MODULES_DIR}
PREFIX-image_filter= ${NGINX_MODULES_DIR}
PREFIX-geoip= ${NGINX_MODULES_DIR}
+PREFIX-geoip2= ${NGINX_MODULES_DIR}
PREFIX-xslt= ${NGINX_MODULES_DIR}
PREFIX-ldap_auth= ${NGINX_MODULES_DIR}
PREFIX-lua= ${NGINX_MODULES_DIR}
PREFIX-headers_more= ${NGINX_MODULES_DIR}
PREFIX-passenger= ${NGINX_MODULES_DIR}
-PREFIX-rtmp= ${NGINX_MODULES_DIR}
+PREFIX-rtmp= ${NGINX_MODULES_DIR}
CFLAGS+= -Wall -Wpointer-arith \
-I "${LOCALBASE}/include/libxml2" \
- -I "${LOCALBASE}/include" \
- -L "${X11BASE}/lib"
+ -I "${LOCALBASE}/include"
+LDFLAGS+= -L ${LOCALBASE}/lib -L ${X11BASE}/lib
+CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}"
-PATCHFILES+= nginx-1.16.1-chroot.patch:3
+PATCHFILES+= nginx-1.16.1-chroot.patch:1
PATCH_DIST_STRIP= -p1
CONFIGURE_STYLE= simple
@@ -181,23 +188,19 @@ CONFIGURE_ARGS+= --prefix=${NGINX_DIR} \
--add-dynamic-module=${WRKSRC}/naxsi/naxsi_src/ \
--add-dynamic-module=${WRKSRC}/ngx_devel_kit \
--add-dynamic-module=${WRKSRC}/headers-more-nginx-module \
- --add-dynamic-module=${WRKSRC}/nginx-auth-ldap
+ --add-dynamic-module=${WRKSRC}/nginx-auth-ldap \
+ --add-dynamic-module=${WRKSRC}/ngx_http_geoip2_module
-SUBSTFILES= conf/nginx.conf \
- lua-nginx-module/config \
- nginx-auth-ldap/config
+SUBSTFILES= conf/nginx.conf */config
NO_TEST= Yes
ALL_TARGET=
pre-patch:
- cd ${WRKSRC} && \
- mv ../naxsi-* naxsi
- cd ${WRKSRC} && \
- mv ../ngx_devel_kit-* ngx_devel_kit && \
- mv ../lua-nginx-module-* lua-nginx-module && \
- mv ../headers-more-nginx-module-* headers-more-nginx-module && \
- mv ../nginx-auth-ldap-* nginx-auth-ldap
+.for i in headers-more-nginx-module lua-nginx-module naxsi \
+ nginx-auth-ldap ngx_devel_kit ngx_http_geoip2_module
+ cd ${WRKSRC} && mv ../$i-* $i
+.endfor
pre-configure:
@cd ${WRKSRC} && ${SUBST_CMD} ${SUBSTFILES}
Index: distinfo
===================================================================
RCS file: /cvs/ports/www/nginx/distinfo,v
retrieving revision 1.72
diff -u -p -r1.72 distinfo
--- distinfo 26 Aug 2019 06:58:08 -0000 1.72
+++ distinfo 6 Nov 2019 11:53:10 -0000
@@ -3,14 +3,16 @@ SHA256 (lua-nginx-module-v0.10.11.tar.gz
SHA256 (naxsi-0.55.3.tar.gz) = CzyV0lB3Lcia2LSeR8HgJMWuLHbAz/pEXp/gXE3RNJU=
SHA256 (nginx-1.16.1-chroot.patch) =
ohNkspocgL7QnBX7q8Kgv2lgrN0ndgLKd0v5nSCLQRU=
SHA256 (nginx-1.16.1.tar.gz) = 8RwqbdHTUVc28DJIV5V9st6YvoYkYbWlQqOsYYjb4ys=
-SHA256 (nginx-auth-ldap-0.20170725.tar.gz) =
gNbM6amHfVHewvhaEc580l7b0tYFwovChofsxWlSKe4=
+SHA256 (nginx-auth-ldap-42d195d7a7575ebab1c369ad3fc5d78dc2c2669c.tar.gz) =
gNbM6amHfVHewvhaEc580l7b0tYFwovChofsxWlSKe4=
SHA256 (nginx-rtmp-module-v1.2.1.tar.gz) =
h6pZdACwtaBSdO4tI9jLgiThJoYiegq+MdeDs6ZF6jc=
SHA256 (ngx_devel_kit-v0.3.0.tar.gz) =
iOBamainQZBm9a51lm+x78QJutRSLRSYbaB0VUrmFhk=
+SHA256 (ngx_http_geoip2_module-3.3.tar.gz) =
QTeEOMgz4xOhiGnQxKcnBLSDXDCsr3/WgBOrZzL/eKc=
SIZE (headers-more-nginx-module-v0.33.tar.gz) = 28130
SIZE (lua-nginx-module-v0.10.11.tar.gz) = 616653
SIZE (naxsi-0.55.3.tar.gz) = 187416
SIZE (nginx-1.16.1-chroot.patch) = 8220
SIZE (nginx-1.16.1.tar.gz) = 1032630
-SIZE (nginx-auth-ldap-0.20170725.tar.gz) = 18457
+SIZE (nginx-auth-ldap-42d195d7a7575ebab1c369ad3fc5d78dc2c2669c.tar.gz) = 18457
SIZE (nginx-rtmp-module-v1.2.1.tar.gz) = 519919
SIZE (ngx_devel_kit-v0.3.0.tar.gz) = 66455
+SIZE (ngx_http_geoip2_module-3.3.tar.gz) = 8509
Index: patches/patch-ngx_http_geoip2_module_config
===================================================================
RCS file: patches/patch-ngx_http_geoip2_module_config
diff -N patches/patch-ngx_http_geoip2_module_config
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-ngx_http_geoip2_module_config 6 Nov 2019 11:53:10 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+
+Index: ngx_http_geoip2_module/config
+--- ngx_http_geoip2_module/config.orig
++++ ngx_http_geoip2_module/config
+@@ -2,7 +2,7 @@ ngx_feature="MaxmindDB library"
+ ngx_feature_name=
+ ngx_feature_run=no
+ ngx_feature_incs="#include <maxminddb.h>"
+-ngx_feature_libs=-lmaxminddb
++ngx_feature_libs="-L${LOCALBASE}/lib -lmaxminddb"
+ ngx_feature_test="MMDB_s mmdb"
+ . auto/feature
+
Index: pkg/DESCR-geoip2
===================================================================
RCS file: pkg/DESCR-geoip2
diff -N pkg/DESCR-geoip2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/DESCR-geoip2 6 Nov 2019 11:53:10 -0000
@@ -0,0 +1,6 @@
+ngx_http_geoip2_module - creates variables with values from the maxmind
+geoip2 databases based on the client IP (default) or from a specific
+variable (supports both IPv4 and IPv6).
+
+The module now supports nginx streams and can be used in the same way
+the http module can be used.
Index: pkg/PLIST-geoip2
===================================================================
RCS file: pkg/PLIST-geoip2
diff -N pkg/PLIST-geoip2
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/PLIST-geoip2 6 Nov 2019 11:53:10 -0000
@@ -0,0 +1,3 @@
+@comment $OpenBSD: PLIST-geoip2,v$
+ngx_http_geoip2_module.so
+ngx_stream_geoip2_module.so