Update 3rd party module ngx_http_lua_module to 0.10.22 otherwise nginx fails to start with the following error message: nginx: [alert] failed to load the 'resty.core' module (https://github.com/openresty/lua-resty-core); ensure you are using an OpenResty release from https://openresty.org/en/download.html (reason: /usr/local/share/lua/5.1/resty/core/base.lua:23: ngx_http_lua_module 0.10.22 required) in /usr/local/etc/nginx/nginx.conf:76 This has been broken for almost two weeks, use the "Trivial and tested build and runtime fixes" blanket from 22.8.1 of the committers guide to prevent more people from breaking their production setups. nginx-devel already has version 0.10.22 of the module. PR: 267418
367 lines
12 KiB
Makefile
367 lines
12 KiB
Makefile
PORTNAME= nginx
|
|
PORTVERSION= 1.22.1
|
|
PORTREVISION?= 2
|
|
PORTEPOCH= 3
|
|
CATEGORIES= www
|
|
MASTER_SITES= https://nginx.org/download/ \
|
|
http://nginx.org/download/ \
|
|
LOCAL/joneum
|
|
DISTFILES= ${DISTNAME}${EXTRACT_SUFX}
|
|
|
|
MAINTAINER?= joneum@FreeBSD.org
|
|
COMMENT?= Robust and small WWW server
|
|
WWW= https://nginx.com/
|
|
|
|
LICENSE= BSD2CLAUSE
|
|
LICENSE_FILE= ${WRKSRC}/LICENSE
|
|
|
|
BROKEN_mips= error ngx_spinlock() or ngx_atomic_cmp_set() are not defined
|
|
BROKEN_mips64= error ngx_spinlock() or ngx_atomic_cmp_set() are not defined
|
|
|
|
CONFLICTS_INSTALL= nginx-devel
|
|
|
|
PORTSCOUT= limit:^1\.22\.[0-9]*
|
|
|
|
USES= compiler:c11 cpe
|
|
|
|
CPE_VENDOR= f5
|
|
CPE_PRODUCT= nginx
|
|
USE_GITHUB= nodefault
|
|
|
|
NGINX_VARDIR?= /var
|
|
NGINX_LOGDIR?= ${NGINX_VARDIR}/log/nginx
|
|
NGINX_RUNDIR?= ${NGINX_VARDIR}/run
|
|
NGINX_TMPDIR?= ${NGINX_VARDIR}/tmp/nginx
|
|
HTTP_PORT?= 80
|
|
|
|
NGINX_ACCESSLOG?= ${NGINX_LOGDIR}/access.log
|
|
NGINX_ERRORLOG?= ${NGINX_LOGDIR}/error.log
|
|
|
|
CONFLICTS?= nginx-devel-1.* \
|
|
nginx-full-1.* \
|
|
nginx-lite-1.* \
|
|
nginx-naxsi-1.*
|
|
USE_RC_SUBR= nginx
|
|
SUB_FILES= pkg-message
|
|
SUB_LIST+= WWWOWN=${WWWOWN} \
|
|
WWWGRP=${WWWGRP} \
|
|
NGINX_RUNDIR=${NGINX_RUNDIR} \
|
|
NGINX_TMPDIR=${NGINX_TMPDIR} \
|
|
PREFIX=${PREFIX}
|
|
|
|
HAS_CONFIGURE= yes
|
|
CONFIGURE_ARGS+=--prefix=${ETCDIR} \
|
|
--with-cc-opt="-I ${LOCALBASE}/include" \
|
|
--with-ld-opt="-L ${LOCALBASE}/lib" \
|
|
--conf-path=${ETCDIR}/nginx.conf \
|
|
--sbin-path=${PREFIX}/sbin/nginx \
|
|
--pid-path=${NGINX_RUNDIR}/nginx.pid \
|
|
--error-log-path=${NGINX_ERRORLOG} \
|
|
--user=${WWWOWN} --group=${WWWGRP} \
|
|
--with-compat \
|
|
--with-pcre
|
|
ALL_TARGET=
|
|
|
|
PLIST_SUB+= NGINX_TMPDIR=${NGINX_TMPDIR} NGINX_LOGDIR=${NGINX_LOGDIR} WWWOWN=${WWWOWN} WWWGRP=${WWWGRP}
|
|
|
|
USERS?= ${WWWOWN}
|
|
GROUPS?=${WWWGRP}
|
|
|
|
NO_OPTIONS_SORT= yes
|
|
|
|
OPTIONS_GROUP= MAILGRP HTTPGRP
|
|
# Modules that are part of the base nginx distribution
|
|
OPTIONS_GROUP_HTTPGRP= GOOGLE_PERFTOOLS HTTP HTTP_ADDITION HTTP_AUTH_REQ \
|
|
HTTP_CACHE HTTP_DAV HTTP_FLV HTTP_GUNZIP_FILTER HTTP_GZIP_STATIC \
|
|
HTTP_IMAGE_FILTER HTTP_MP4 HTTP_PERL HTTP_RANDOM_INDEX HTTP_REALIP \
|
|
HTTP_SECURE_LINK HTTP_SLICE HTTP_SLICE_AHEAD \
|
|
HTTP_SSL HTTP_STATUS HTTP_SUB HTTP_XSLT HTTPV2 HTTPV2_AUTOTUNE \
|
|
STREAM STREAM_SSL STREAM_SSL_PREREAD
|
|
# External modules (arrayvar MUST appear after devel_kit for build-dep)
|
|
OPTIONS_GROUP_HTTPGRP+= AJP AWS_AUTH BROTLI CACHE_PURGE CLOJURE CT DEVEL_KIT \
|
|
ARRAYVAR DRIZZLE DYNAMIC_TLS DYNAMIC_HC DYNAMIC_UPSTREAM ECHO ENCRYPTSESSION \
|
|
FORMINPUT GRIDFS HEADERS_MORE HTTP_ACCEPT_LANGUAGE \
|
|
HTTP_AUTH_DIGEST HTTP_AUTH_JWT HTTP_AUTH_KRB5 HTTP_AUTH_LDAP \
|
|
HTTP_AUTH_PAM HTTP_DAV_EXT HTTP_EVAL HTTP_FANCYINDEX HTTP_FOOTER \
|
|
HTTP_GEOIP2 HTTP_IP2LOCATION HTTP_IP2PROXY HTTP_JSON_STATUS HTTP_MOGILEFS \
|
|
HTTP_MP4_H264 HTTP_NOTICE HTTP_PUSH HTTP_PUSH_STREAM HTTP_REDIS \
|
|
HTTP_RESPONSE HTTP_SUBS_FILTER HTTP_TARANTOOL HTTP_UPLOAD \
|
|
HTTP_UPLOAD_PROGRESS HTTP_UPSTREAM_CHECK HTTP_UPSTREAM_FAIR \
|
|
HTTP_UPSTREAM_STICKY HTTP_VIDEO_THUMBEXTRACTOR HTTP_ZIP ICONV LET LINK LUA \
|
|
MEMC MODSECURITY3 NAXSI OPENTRACING PASSENGER POSTGRES RDS_CSV \
|
|
RDS_JSON REDIS2 RTMP SET_MISC SFLOW SHIBBOLETH SLOWFS_CACHE \
|
|
SMALL_LIGHT SRCACHE VOD VTS XSS WEBSOCKIFY
|
|
OPTIONS_GROUP_MAILGRP= MAIL MAIL_IMAP MAIL_POP3 MAIL_SMTP MAIL_SSL
|
|
OPTIONS_DEFINE= DEBUG DEBUGLOG DSO FILE_AIO IPV6 NJS THREADS WWW
|
|
OPTIONS_DEFAULT?= DSO FILE_AIO HTTP HTTP_ADDITION HTTP_AUTH_REQ HTTP_CACHE \
|
|
HTTP_DAV HTTP_FLV HTTP_GZIP_STATIC HTTP_GUNZIP_FILTER \
|
|
HTTP_MP4 HTTP_RANDOM_INDEX HTTP_REALIP HTTP_SECURE_LINK \
|
|
HTTP_SLICE HTTP_REWRITE HTTP_SSL HTTP_STATUS HTTP_SUB \
|
|
HTTPV2 MAIL MAIL_SSL PCRE_ONE STREAM STREAM_SSL STREAM_SSL_PREREAD \
|
|
THREADS WWW
|
|
|
|
OPTIONS_RADIO+= PCRE
|
|
OPTIONS_RADIO_PCRE= PCRE_ONE PCRE_TWO
|
|
PCRE_ONE_LIB_DEPENDS= libpcre.so:devel/pcre
|
|
PCRE_ONE_CONFIGURE_ON= --without-pcre2
|
|
PCRE_TWO_LIB_DEPENDS= libpcre2-8.so:devel/pcre2
|
|
|
|
OPTIONS_SUB= yes
|
|
|
|
.include "Makefile.options.desc"
|
|
|
|
.for opt in ${OPTIONS_GROUP_MAILGRP:NMAIL}
|
|
${opt}_IMPLIES= MAIL
|
|
.endfor
|
|
|
|
.for opt in ${OPTIONS_GROUP_HTTPGRP:NHTTP} WWW
|
|
${opt}_IMPLIES= HTTP
|
|
.endfor
|
|
|
|
# If the target is makesum, make sure that every distfile is fetched.
|
|
.if ${.TARGETS:Mmakesum}
|
|
OPTIONS_DEFAULT= ${OPTIONS_DEFINE} ${OPTIONS_GROUP_HTTP} ${OPTIONS_GROUP_MAIL}
|
|
.endif
|
|
|
|
# Non-module options handling
|
|
DEBUG_CFLAGS= -g
|
|
DEBUG_VARS= STRIP=#do not strip if nginx with debug information
|
|
DEBUGLOG_CONFIGURE_ON= --with-debug
|
|
DSO_CONFIGURE_ON= --modules-path=${MODULESDIR}
|
|
DSO_VARS= MODULESDIR=${PREFIX}/libexec/${PORTNAME}
|
|
FILE_AIO_CONFIGURE_ON= --with-file-aio
|
|
IPV6_CONFIGURE_OFF= --with-cc-opt="-DNGX_HAVE_INET6=0 -I ${LOCALBASE}/include"
|
|
THREADS_CONFIGURE_ON= --with-threads
|
|
|
|
# Bundled modules
|
|
GOOGLE_PERFTOOLS_LIB_DEPENDS= libprofiler.so:devel/google-perftools
|
|
GOOGLE_PERFTOOLS_CONFIGURE_ON= --with-google_perftools_module
|
|
HTTP_CONFIGURE_ON= --http-client-body-temp-path=${NGINX_TMPDIR}/client_body_temp \
|
|
--http-fastcgi-temp-path=${NGINX_TMPDIR}/fastcgi_temp \
|
|
--http-proxy-temp-path=${NGINX_TMPDIR}/proxy_temp \
|
|
--http-scgi-temp-path=${NGINX_TMPDIR}/scgi_temp \
|
|
--http-uwsgi-temp-path=${NGINX_TMPDIR}/uwsgi_temp \
|
|
--http-log-path=${NGINX_ACCESSLOG}
|
|
HTTP_CONFIGURE_OFF= --without-http
|
|
HTTP_ADDITION_CONFIGURE_ON= --with-http_addition_module
|
|
HTTP_AUTH_REQ_CONFIGURE_ON= --with-http_auth_request_module
|
|
HTTP_CACHE_CONFIGURE_OFF= --without-http-cache
|
|
HTTP_DAV_CONFIGURE_ON= --with-http_dav_module
|
|
HTTP_FLV_CONFIGURE_ON= --with-http_flv_module
|
|
HTTP_GZIP_STATIC_CONFIGURE_ON= --with-http_gzip_static_module
|
|
HTTP_GUNZIP_FILTER_CONFIGURE_ON=--with-http_gunzip_module
|
|
HTTP_IMAGE_FILTER_LIB_DEPENDS= libgd.so:graphics/gd
|
|
HTTP_IMAGE_FILTER_VARS= DSO_BASEMODS+=http_image_filter_module
|
|
HTTP_MP4_CONFIGURE_ON= --with-http_mp4_module
|
|
HTTP_PERL_CATEGORIES= perl5
|
|
HTTP_PERL_USES= perl5
|
|
HTTP_PERL_VARS= DSO_BASEMODS+=http_perl_module
|
|
HTTP_RANDOM_INDEX_CONFIGURE_ON= --with-http_random_index_module
|
|
HTTP_REALIP_CONFIGURE_ON= --with-http_realip_module
|
|
HTTP_SECURE_LINK_CONFIGURE_ON= --with-http_secure_link_module
|
|
HTTP_SLICE_CONFIGURE_ON= --with-http_slice_module
|
|
HTTP_SSL_CONFIGURE_ON= --with-http_ssl_module
|
|
HTTP_SSL_USES= ssl
|
|
HTTP_STATUS_CONFIGURE_ON= --with-http_stub_status_module
|
|
HTTP_SUB_CONFIGURE_ON= --with-http_sub_module
|
|
HTTP_XSLT_USES= gnome
|
|
HTTP_XSLT_USE= GNOME=libxml2,libxslt
|
|
HTTP_XSLT_VARS= DSO_BASEMODS+=http_xslt_module
|
|
HTTPV2_IMPLIES= HTTP_SSL
|
|
HTTPV2_CONFIGURE_ON= --with-http_v2_module
|
|
MAIL_VARS= DSO_BASEMODS+=mail
|
|
MAIL_IMAP_CONFIGURE_OFF= --without-mail_imap_module
|
|
MAIL_POP3_CONFIGURE_OFF= --without-mail_pop3_module
|
|
MAIL_SMTP_CONFIGURE_OFF= --without-mail_smtp_module
|
|
MAIL_SSL_USES= ssl
|
|
MAIL_SSL_CONFIGURE_ON= --with-mail_ssl_module
|
|
STREAM_VARS= DSO_BASEMODS+=stream
|
|
STREAM_SSL_IMPLIES= HTTP_SSL
|
|
STREAM_SSL_CONFIGURE_ON= --with-stream_ssl_module
|
|
STREAM_SSL_PREREAD_CONFIGURE_ON= --with-stream_ssl_preread_module
|
|
|
|
### External modules
|
|
.include "Makefile.extmod"
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${PORT_OPTIONS:MDSO}
|
|
_addbasemod= =dynamic
|
|
_addextmod= add-dynamic-module
|
|
.else
|
|
_addextmod= add-module
|
|
.endif
|
|
|
|
.for mod in ${DSO_BASEMODS}
|
|
CONFIGURE_ARGS+= --with-${mod}${_addbasemod}
|
|
.endfor
|
|
|
|
# Some modules depend on other being there before, for example, devel_kit needs
|
|
# to be there before a few other.
|
|
.for mod in ${FIRST_DSO_EXTMODS}
|
|
CONFIGURE_ARGS+= --${_addextmod}=${WRKSRC_${mod}}${${mod:tu}_SUBDIR}
|
|
.endfor
|
|
|
|
.for mod in ${DSO_EXTMODS}
|
|
CONFIGURE_ARGS+= --${_addextmod}=${WRKSRC_${mod}}${${mod:tu}_SUBDIR}
|
|
.endfor
|
|
# For non-GitHub hosted modules
|
|
.for moddir in ${DSO_EXTDIRS}
|
|
CONFIGURE_ARGS+= --${_addextmod}=${WRKDIR}/${moddir}
|
|
.endfor
|
|
|
|
.if empty(PORT_OPTIONS:MHTTP) && empty(PORT_OPTIONS:MMAIL)
|
|
IGNORE= requires at least HTTP or MAIL to \
|
|
be defined. Please do 'make config' again
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MPASSENGER} && empty(PORT_OPTIONS:MDEBUG)
|
|
CONFIGURE_ENV+= OPTIMIZE="yes"
|
|
CFLAGS+= -DNDEBUG
|
|
.endif
|
|
|
|
.if empty(PORT_OPTIONS:MPCRE_ONE) && empty(PORT_OPTIONS:MPCRE_TWO)
|
|
IGNORE= required at least PCRE_ONE or PCRE_TWO \
|
|
to be defined. Please do 'make config' again
|
|
.endif
|
|
|
|
.if ${PORT_OPTIONS:MPCRE_ONE}
|
|
NJS_CONFIGURE_ARGS= --no-pcre2
|
|
.endif
|
|
|
|
pre-everything::
|
|
@${ECHO_MSG}
|
|
.if ${PORT_OPTIONS:MHTTP_UPSTREAM_FAIR}
|
|
@${ECHO_MSG} "Enable http_ssl module to build upstream_fair with SSL support"
|
|
.endif
|
|
.if ${PORT_OPTIONS:MPASSENGER}
|
|
@${ECHO_MSG} "This port install Passenger module only"
|
|
.endif
|
|
@${ECHO_MSG}
|
|
|
|
post-extract-GRIDFS-on:
|
|
@${RMDIR} ${WRKSRC_gridfs}/mongo-c-driver/
|
|
@${MV} ${WRKSRC_mongo_c} ${WRKSRC_gridfs}/mongo-c-driver
|
|
|
|
post-patch:
|
|
@${REINPLACE_CMD} 's!%%HTTP_PORT%%!${HTTP_PORT}!; \
|
|
s!%%PREFIX%%!${PREFIX}!; \
|
|
s!%%NGINX_ERRORLOG%%!${NGINX_ERRORLOG}!' \
|
|
${WRKSRC}/conf/nginx.conf
|
|
|
|
post-patch-BROTLI-on:
|
|
@${REINPLACE_CMD} -E 's!^brotli=.*!brotli="${LOCALBASE}"!' ${WRKSRC_brotli}/config
|
|
|
|
post-patch-DRIZZLE-on:
|
|
@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_drizzle}/config
|
|
|
|
post-patch-FASTDFS-on:
|
|
@${REINPLACE_CMD} \
|
|
's!%%PREFIX%%!${PREFIX}!g;s!%%LOCALBASE%%!${LOCALBASE}!g' \
|
|
${WRKSRC_fastdfs}/src/config
|
|
|
|
# Respect CFLAGS by remove needless --std=c99 flag
|
|
post-patch-GRIDFS-on:
|
|
@${REINPLACE_CMD} 's!--std=c99!-DMONGO_HAVE_STDINT!' ${WRKSRC_gridfs}/config
|
|
|
|
post-patch-HTTP_AUTH_KRB5-on:
|
|
@${REINPLACE_CMD} 's!%%GSSAPILIBS%%!${GSSAPILIBS}!g; \
|
|
s!%%GSSAPIINCDIR%%!${GSSAPIINCDIR}!g; \
|
|
s!%%GSSAPILIBDIR%%!${GSSAPILIBDIR}!g' ${WRKSRC_auth_krb5}/config
|
|
|
|
post-patch-HTTP_TARANTOOL-on:
|
|
@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_nginx_tarantool}/config
|
|
|
|
# linker error acquire if --std=c99 defined, add "static" to inline function
|
|
post-patch-HTTP_ZIP-on:
|
|
@${REINPLACE_CMD} \
|
|
's!^inline!static inline!' \
|
|
${WRKSRC_mod_zip}/ngx_http_zip_parsers.*
|
|
|
|
post-patch-ICONV-on:
|
|
@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_iconv}/config
|
|
|
|
post-patch-PASSENGER-on:
|
|
@${REINPLACE_CMD} \
|
|
'177,179s!true!false!' \
|
|
${WRKSRC_PASSENGER}/build/basics.rb
|
|
@${REINPLACE_CMD} \
|
|
's!-I/usr/include/libev!!; \
|
|
s!-lev!!; \
|
|
s!-Iext/libev!!; \
|
|
s!-I/usr/include/libeio!!; \
|
|
s!-leio!!; \
|
|
s!-Iext/libeio!!' \
|
|
${WRKSRC_PASSENGER}/build/common_library.rb
|
|
|
|
post-patch-POSTGRES-on:
|
|
@${REINPLACE_CMD} 's!%%PREFIX%%!${LOCALBASE}!g' ${WRKSRC_postgres}/config
|
|
|
|
post-patch-SFLOW-on:
|
|
@${REINPLACE_CMD} \
|
|
's!%%PREFIX%%!${LOCALBASE}!g' \
|
|
${WRKSRC_sflow}/ngx_http_sflow_config.h
|
|
|
|
post-patch-VOD-on:
|
|
@${REINPLACE_CMD} \
|
|
's!%%PREFIX%%!${LOCALBASE}!g' \
|
|
${WRKSRC_vod}/config
|
|
|
|
pre-configure-SMALL_LIGHT-on:
|
|
( cd ${WRKSRC_small_light} && ./setup )
|
|
|
|
do-configure-NJS-on:
|
|
( cd ${WRKSRC_njs} && ${SETENV} ${CONFIGURE_ENV} ${CONFIGURE_CMD} ${NJS_CONFIGURE_ARGS} \
|
|
&& ${SETENV} ${MAKE_ENV} ${MAKE_CMD} njs \
|
|
&& ${MV} build/njs ${WRKSRC_njs} )
|
|
|
|
.if !target(do-install)
|
|
do-install:
|
|
${MKDIR} ${STAGEDIR}${ETCDIR}
|
|
${MKDIR} ${STAGEDIR}${NGINX_TMPDIR}
|
|
${MKDIR} ${STAGEDIR}${NGINX_LOGDIR}
|
|
${INSTALL_PROGRAM} ${WRKSRC}/objs/nginx ${STAGEDIR}${PREFIX}/sbin
|
|
.for i in koi-utf koi-win win-utf
|
|
${INSTALL_DATA} ${WRKSRC}/conf/${i} ${STAGEDIR}${ETCDIR}
|
|
.endfor
|
|
.for i in fastcgi_params mime.types scgi_params uwsgi_params
|
|
${INSTALL_DATA} ${WRKSRC}/conf/${i} ${STAGEDIR}${ETCDIR}/${i}-dist
|
|
.endfor
|
|
|
|
do-install-HTTP_PERL-on:
|
|
${MKDIR} ${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/nginx
|
|
${INSTALL_PROGRAM} ${WRKSRC}/objs/src/http/modules/perl/blib/arch/auto/nginx/nginx.so \
|
|
${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/auto/nginx
|
|
${INSTALL_DATA} ${WRKSRC}/objs/src/http/modules/perl/blib/lib/nginx.pm \
|
|
${STAGEDIR}${PREFIX}/${SITE_ARCH_REL}/
|
|
|
|
# Install dynamic modules
|
|
do-install-DSO-on:
|
|
${MKDIR} ${STAGEDIR}${MODULESDIR}
|
|
(cd ${WRKSRC}/objs/ && ${FIND} . -name '*.so' -maxdepth 1 -type f \
|
|
-exec ${INSTALL_PROGRAM} {} ${STAGEDIR}${MODULESDIR} \;)
|
|
|
|
do-install-LINK-on:
|
|
${INSTALL_DATA} ${WRKSRC_link}/src/ngx_link_func_module.h ${STAGEDIR}${PREFIX}/include
|
|
|
|
do-install-NAXSI-on:
|
|
${INSTALL_DATA} \
|
|
${WRKDIR}/naxsi-${NAXSI_NGINX_VER}/naxsi_config/naxsi_core.rules \
|
|
${STAGEDIR}${ETCDIR}
|
|
|
|
.endif
|
|
|
|
.if !target(post-install)
|
|
post-install:
|
|
${MKDIR} ${STAGEDIR}${PREFIX}/share/vim/vimfiles
|
|
cd ${WRKSRC}/contrib/vim && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/share/vim/vimfiles
|
|
${INSTALL_MAN} ${WRKSRC}/objs/nginx.8 ${STAGEDIR}${MAN8PREFIX}/man/man8
|
|
${CAT} ${WRKSRC}/conf/nginx.conf >> ${STAGEDIR}${ETCDIR}/nginx.conf-dist
|
|
|
|
post-install-WWW-on:
|
|
${MKDIR} ${STAGEDIR}${PREFIX}/www/nginx-dist
|
|
(cd ${WRKSRC}/html && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/www/nginx-dist && \
|
|
${TOUCH} ${STAGEDIR}${PREFIX}/www/nginx-dist/EXAMPLE_DIRECTORY-DONT_ADD_OR_TOUCH_ANYTHING)
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|