Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
www/angie: replace with more comprehensive port
Replace port with a version that supports modules as slave ports. PR: 270933 Approved by: wen Differential Revision: https://reviews.freebsd.org/D39868
- Loading branch information
1 parent
5ef69a7
commit 38e8d9e
Showing
9 changed files
with
411 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,187 @@ | ||
PORTNAME= angie | ||
PORTVERSION= 1.2.0 | ||
CATEGORIES= www | ||
MASTER_SITES= https://download.angie.software/files/ | ||
PORTNAME?= angie | ||
PORTVERSION= 1.2.0 | ||
PORTREVISION= 1 | ||
CATEGORIES+= www | ||
MASTER_SITES+= https://download.angie.software/files/:angie | ||
DISTNAME= angie-${DISTVERSIONFULL} | ||
DISTFILES+= ${DISTNAME}${EXTRACT_SUFX}:angie | ||
|
||
MAINTAINER= wen@FreeBSD.org | ||
COMMENT= Efficient, powerful and scalable web server | ||
WWW= https://angie.software/en/ | ||
MAINTAINER?= oleg@mamontov.net | ||
COMMENT?= Efficient, powerful and scalable reverse proxy and web server | ||
WWW?= https://angie.software/en/ | ||
|
||
LICENSE= BSD2CLAUSE | ||
LICENSE_FILE= ${WRKSRC}/LICENSE | ||
LICENSE?= BSD2CLAUSE | ||
.if ${PORTNAME} == angie | ||
LICENSE_FILE= ${WRKSRC}/LICENSE | ||
.else | ||
LICENSE_FILE?= ${WRKSRC_module}/LICENSE | ||
.endif | ||
|
||
LIB_DEPENDS= libpcre2-8.so:devel/pcre2 | ||
.if ${PORTNAME} == angie | ||
LIB_DEPENDS= libpcre2-8.so:devel/pcre2 | ||
.else | ||
BUILD_DEPENDS+= pcre2>=0:devel/pcre2 | ||
RUN_DEPENDS+= angie==${PKGVERSION}:www/angie | ||
.endif | ||
|
||
USES= gmake ssl | ||
USES+= ssl | ||
USE_GITHUB= nodefault | ||
|
||
HAS_CONFIGURE= yes | ||
ALL_TARGET= | ||
HAS_CONFIGURE?= yes | ||
|
||
CONFIGURE_ARGS= --with-openssl=${LOCALBASE} | ||
.if ${PORTNAME} == angie | ||
ALL_TARGET= build | ||
SUB_FILES= angie.conf.sample \ | ||
default.conf.sample \ | ||
example.conf.sample \ | ||
pkg-message | ||
USE_RC_SUBR= angie | ||
.else | ||
ALL_TARGET?= modules | ||
CONFIGURE_ADD?= --add-dynamic-module=${WRKSRC_module} | ||
.endif | ||
|
||
post-install: | ||
${STRIP_CMD} ${STAGEDIR}${PREFIX}/angie/sbin/angie | ||
# modules always have their own assets | ||
PATCHDIR?= ${.CURDIR}/files | ||
FILESDIR?= ${.CURDIR}/files | ||
SCRIPTDIR?= ${.CURDIR}/scripts | ||
PKGDIR?= ${.CURDIR} | ||
|
||
# angie-specific variables | ||
CACHEDIR= /var/cache/angie | ||
LOGDIR= /var/log/angie | ||
MODDIR= ${PREFIX}/libexec/angie | ||
RUNDIR= /var/run | ||
WRKSRC_DEBUG= ${WRKSRC}-debug | ||
|
||
PLIST_SUB+= CACHEDIR=${CACHEDIR} \ | ||
LOGDIR=${LOGDIR} \ | ||
MODDIR=${MODDIR} \ | ||
RUNDIR=${RUNDIR} | ||
|
||
SUB_LIST+= CACHEDIR=${CACHEDIR} \ | ||
LOGDIR=${LOGDIR} \ | ||
MODDIR=${MODDIR} \ | ||
RUNDIR=${RUNDIR} \ | ||
WWWOWN=${WWWOWN} | ||
|
||
SUB_FILES?= pkg-message | ||
|
||
OPTIONS_SUB= yes | ||
|
||
CONFIGURE_ARGS= --prefix=${PREFIX}/etc/angie \ | ||
--conf-path=${PREFIX}/etc/angie/angie.conf \ | ||
--error-log-path=${LOGDIR}/error.log \ | ||
--http-log-path=${LOGDIR}/access.log \ | ||
--lock-path=${RUNDIR}/angie.lock \ | ||
--modules-path=${MODDIR} \ | ||
--pid-path=${RUNDIR}/angie.pid \ | ||
--sbin-path=${PREFIX}/sbin/angie \ | ||
--http-client-body-temp-path=${CACHEDIR}/client_temp \ | ||
--http-fastcgi-temp-path=${CACHEDIR}/fastcgi_temp \ | ||
--http-proxy-temp-path=${CACHEDIR}/proxy_temp \ | ||
--http-scgi-temp-path=${CACHEDIR}/scgi_temp \ | ||
--http-uwsgi-temp-path=${CACHEDIR}/uwsgi_temp \ | ||
--user=${WWWOWN} \ | ||
--group=${WWWGRP} \ | ||
--with-file-aio \ | ||
--with-http_addition_module \ | ||
--with-http_auth_request_module \ | ||
--with-http_dav_module \ | ||
--with-http_flv_module \ | ||
--with-http_gunzip_module \ | ||
--with-http_gzip_static_module \ | ||
--with-http_mp4_module \ | ||
--with-http_random_index_module \ | ||
--with-http_realip_module \ | ||
--with-http_secure_link_module \ | ||
--with-http_slice_module \ | ||
--with-http_ssl_module \ | ||
--with-http_stub_status_module \ | ||
--with-http_sub_module \ | ||
--with-http_v2_module \ | ||
--with-http_v3_module \ | ||
--with-mail \ | ||
--with-mail_ssl_module \ | ||
--with-stream \ | ||
--with-stream_realip_module \ | ||
--with-stream_ssl_module \ | ||
--with-stream_ssl_preread_module \ | ||
--with-threads \ | ||
--with-cc-opt="-I ${LOCALBASE}/include" \ | ||
--with-ld-opt="-L ${LOCALBASE}/lib" \ | ||
${CONFIGURE_ADD} | ||
|
||
OPTIONS_DEFINE?= DEBUG | ||
OPTIONS_DEFAULT?= DEBUG | ||
DEBUG_DESC?= Include debug version | ||
|
||
|
||
.include <bsd.port.options.mk> | ||
|
||
post-patch-DEBUG-on: | ||
@${CP} -Rp ${WRKSRC} ${WRKSRC_DEBUG} | ||
|
||
post-configure-DEBUG-on: | ||
@(cd ${WRKSRC_DEBUG} && \ | ||
${SET_LATE_CONFIGURE_ARGS} \ | ||
if ! ${SETENV} CC="${CC}" CPP="${CPP}" CXX="${CXX}" \ | ||
CFLAGS="${CFLAGS} -g" CPPFLAGS="${CPPFLAGS}" CXXFLAGS="${CXXFLAGS}" \ | ||
LDFLAGS="${LDFLAGS}" LIBS="${LIBS}" \ | ||
INSTALL="/usr/bin/install -c" \ | ||
INSTALL_DATA="${INSTALL_DATA}" \ | ||
INSTALL_LIB="${INSTALL_LIB}" \ | ||
INSTALL_PROGRAM="${INSTALL_PROGRAM}" \ | ||
INSTALL_SCRIPT="${INSTALL_SCRIPT}" \ | ||
${CONFIGURE_ENV} ${CONFIGURE_CMD} ${CONFIGURE_ARGS} --with-debug; then \ | ||
${ECHO_MSG} "===> Script \"${CONFIGURE_SCRIPT}\" failed unexpectedly."; \ | ||
(${ECHO_CMD} ${CONFIGURE_FAIL_MESSAGE}) | ${FMT_80} ; \ | ||
${FALSE}; \ | ||
fi \ | ||
) | ||
|
||
post-build-DEBUG-on: | ||
@(cd ${WRKSRC_DEBUG} && ${DO_MAKE_BUILD} ${ALL_TARGET}) | ||
|
||
.if ${PORTNAME} == angie | ||
do-install: | ||
${MKDIR} ${STAGEDIR}${CACHEDIR} | ||
${MKDIR} ${STAGEDIR}${DOCSDIR} | ||
${MKDIR} ${STAGEDIR}${ETCDIR}/http.d | ||
${MKDIR} ${STAGEDIR}${ETCDIR}/stream.d | ||
${MKDIR} ${STAGEDIR}${LOGDIR} | ||
${MKDIR} ${STAGEDIR}${MODDIR} | ||
${MKDIR} ${STAGEDIR}${WWWDIR}/html | ||
|
||
${RLN} ${STAGEDIR}${MODDIR} ${STAGEDIR}${ETCDIR}/modules | ||
|
||
${INSTALL_PROGRAM} ${WRKSRC}/objs/angie \ | ||
${STAGEDIR}${PREFIX}/sbin/angie-nodebug | ||
|
||
${LN} -fs angie-nodebug ${STAGEDIR}${PREFIX}/sbin/angie | ||
|
||
${INSTALL_MAN} ${WRKSRC}/objs/angie.8 ${STAGEDIR}${MAN8PREFIX}/man/man8 | ||
.for i in CHANGES CHANGES.ru README.rst | ||
${INSTALL_MAN} ${WRKSRC}/${i} ${STAGEDIR}${DOCSDIR} | ||
.endfor | ||
|
||
.for i in fastcgi.conf fastcgi_params mime.types scgi_params uwsgi_params | ||
${INSTALL_DATA} ${WRKSRC}/conf/${i} ${STAGEDIR}${ETCDIR}/${i}.sample | ||
.endfor | ||
${INSTALL_DATA} ${WRKDIR}/angie.conf.sample \ | ||
${STAGEDIR}${ETCDIR} | ||
${INSTALL_DATA} ${WRKDIR}/default.conf.sample \ | ||
${STAGEDIR}${ETCDIR}/http.d | ||
${INSTALL_DATA} ${WRKDIR}/example.conf.sample \ | ||
${STAGEDIR}${ETCDIR}/stream.d | ||
|
||
.for i in 50x.html index.html | ||
${INSTALL_DATA} ${WRKSRC}/html/${i} ${STAGEDIR}${WWWDIR}/html/${i}.sample | ||
.endfor | ||
|
||
do-install-DEBUG-on: | ||
${INSTALL} ${COPY} -m ${BINMODE} ${WRKSRC_DEBUG}/objs/angie \ | ||
${STAGEDIR}${PREFIX}/sbin/angie-debug | ||
.endif | ||
|
||
.include <bsd.port.mk> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,5 @@ | ||
TIMESTAMP = 1686140577 | ||
TIMESTAMP = 1690816224 | ||
SHA256 (angie-1.2.0.tar.gz) = 82f23115c2e8ebf00d5429622ad96e8c7e785e87bc298b292246660cc61e2cff | ||
SIZE (angie-1.2.0.tar.gz) = 1510159 | ||
SHA256 (leev-ngx_http_geoip2_module-3.4_GH0.tar.gz) = ad72fc23348d715a330994984531fab9b3606e160483236737f9a4a6957d9452 | ||
SIZE (leev-ngx_http_geoip2_module-3.4_GH0.tar.gz) = 8877 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
user %%WWWOWN%%; | ||
worker_processes auto; | ||
worker_rlimit_nofile 65536; | ||
|
||
error_log %%LOGDIR%%/error.log notice; | ||
pid %%RUNDIR%%/angie.pid; | ||
|
||
events { | ||
worker_connections 65536; | ||
} | ||
|
||
http { | ||
include %%ETCDIR%%/mime.types; | ||
default_type application/octet-stream; | ||
|
||
log_format main '$remote_addr - $remote_user [$time_local] "$request" ' | ||
'$status $body_bytes_sent "$http_referer" ' | ||
'"$http_user_agent" "$http_x_forwarded_for"'; | ||
|
||
log_format extended '$remote_addr - $remote_user [$time_local] "$request" ' | ||
'$status $body_bytes_sent "$http_referer" rt="$request_time" ' | ||
'"$http_user_agent" "$http_x_forwarded_for" ' | ||
'h="$host" sn="$server_name" ru="$request_uri" u="$uri" ' | ||
'ucs="$upstream_cache_status" ua="$upstream_addr" us="$upstream_status" ' | ||
'uct="$upstream_connect_time" urt="$upstream_response_time"'; | ||
|
||
access_log %%LOGDIR%%/access.log main; | ||
|
||
sendfile on; | ||
#tcp_nopush on; | ||
|
||
keepalive_timeout 65; | ||
|
||
#gzip on; | ||
|
||
include %%ETCDIR%%/http.d/*.conf; | ||
} | ||
|
||
#stream { | ||
# include %%ETCDIR%%/stream.d/*.conf; | ||
#} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
#!/bin/sh | ||
|
||
# PROVIDE: angie | ||
# REQUIRE: LOGIN | ||
# KEYWORD: shutdown | ||
|
||
# Add these lines to /etc/rc.conf.local or /etc/rc.conf | ||
# to enable the service: | ||
# | ||
# angie_enable (bool): Set to "NO" by default. | ||
# Set it to "YES" to enable angie. | ||
# | ||
# angie_flags (str): Set to "" by default. | ||
# Extra flags passed to start command. | ||
|
||
. /etc/rc.subr | ||
|
||
name=angie | ||
rcvar=angie_enable | ||
|
||
command=%%PREFIX%%/sbin/${name} | ||
pidfile=%%RUNDIR%%/${name}.pid | ||
required_files=%%ETCDIR%%/${name}.conf | ||
|
||
extra_commands="configtest reload upgrade" | ||
|
||
configtest_cmd=angie_config_check | ||
upgrade_cmd="angie_upgrade" | ||
|
||
reload_precmd=angie_config_check | ||
restart_precmd=angie_config_check | ||
start_precmd=angie_config_check | ||
|
||
load_rc_config $name | ||
|
||
: ${angie_enable:=NO} | ||
: ${angie_flags:=} | ||
: ${angie_config_valid:=""} | ||
|
||
angie_config_check() { | ||
[ -n "${angie_config_valid}" ] && return 0 | ||
|
||
echo "Checking config validity:" | ||
eval ${command} ${angie_flags} -t || return 1 | ||
|
||
angie_config_valid=yes | ||
} | ||
|
||
angie_upgrade() { | ||
if [ ! -s ${pidfile} ]; then | ||
echo "No running ${name} found." | ||
return 1 | ||
fi | ||
|
||
angie_config_check || return 1 | ||
|
||
echo "Starting new ${name}." | ||
kill -USR2 $(cat ${pidfile}) | ||
|
||
for i in $(seq 5); do | ||
sleep 1 | ||
if [ -f ${pidfile} -a -f ${pidfile}.oldbin ]; then | ||
echo "Shutting down old ${name}." | ||
kill -QUIT $(cat ${pidfile}.oldbin) | ||
return 0 | ||
fi | ||
done | ||
|
||
echo "Upgrade failed!" | ||
return 1 | ||
} | ||
|
||
run_rc_command "$1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
server { | ||
listen 80; | ||
server_name localhost; | ||
|
||
#access_log %%LOGDIR%%/host.access.log main; | ||
|
||
location / { | ||
root %%WWWDIR%%/html; | ||
index index.html index.htm; | ||
} | ||
|
||
location /status/ { | ||
api /status/; | ||
allow 127.0.0.1; | ||
deny all; | ||
} | ||
|
||
#error_page 404 /404.html; | ||
|
||
# redirect server error pages to the static page /50x.html | ||
# | ||
error_page 500 502 503 504 /50x.html; | ||
location = /50x.html { | ||
root %%WWWDIR%%/html; | ||
} | ||
|
||
# proxy the PHP scripts to Apache listening on 127.0.0.1:80 | ||
# | ||
#location ~ \.php$ { | ||
# proxy_pass http://127.0.0.1; | ||
#} | ||
|
||
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 | ||
# | ||
#location ~ \.php$ { | ||
# root html; | ||
# fastcgi_pass 127.0.0.1:9000; | ||
# fastcgi_index index.php; | ||
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; | ||
# include fastcgi_params; | ||
#} | ||
|
||
# deny access to .htaccess files, if Apache's document root | ||
# concurs with angie's one | ||
# | ||
#location ~ /\.ht { | ||
# deny all; | ||
#} | ||
} |
Oops, something went wrong.