You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
angie/SPECS/angie.spec

2412 lines
83 KiB

Name: angie
Version: 1.6.2
Release: 1%{?dist}
Summary: Efficient, powerful and scalable reverse proxy and web server
License: BSD-2-Clause
URL: https://angie.software
Source0: https://download.angie.software/files/%{name}-%{version}.tar.gz
Source1: angie.conf
Source2: default.conf
Source3: example.conf
Source4: angie.logrotate
Source5: angie.service
Source6: angie.upgrade
Source30: nginx-auth-jwt-0.7.0.tar.gz
Source39: README-module-auth-jwt
Source74: nginx-auth-ldap-241200eac8e4acae74d353291bd27f79e5ca3dc4.tar.gz
Source73: README-module-auth-ldap
Source7: spnego-http-auth-nginx-module-v1.1.1.tar.gz
Source40: README-module-auth-spnego
Source8: ngx_brotli-v1.0.0rc.tar.gz
Source41: README-module-brotli
Source27: ngx_cache_purge-2.5.3.tar.gz
Source42: README-module-cache-purge
Source9: nginx-dav-ext-module-v3.0.0.tar.gz
Source43: README-module-dav-ext
Source77: ngx_dynamic_limit_req_module-1.9.3.tar.gz
Source78: README-module-dynamic-limit-req
Source28: echo-nginx-module-v0.63.tar.gz
Source44: README-module-echo
Source32: ngx_http_enhanced_memcached_module-v0.3.tar.gz
Source45: README-module-enhanced-memcached
Source31: nginx-eval-module-2016.06.10.tar.gz
Source46: README-module-eval
Source10: ngx_http_geoip2_module-3.4.tar.gz
Source47: README-module-geoip2
Source11: headers-more-nginx-module-v0.37.tar.gz
Source48: README-module-headers-more
Source49: README-module-image-filter
Source19: nginx-jwt-module-v3.4.1.tar.gz
Source50: README-module-jwt
Source26: nginx-keyval-0.3.0.tar.gz
Source51: README-module-keyval
Source21: lua-resty-core-v0.1.28.tar.gz
Source22: lua-resty-lrucache-v0.13.tar.gz
Source23: luajit2-v2.1-20240626.tar.gz
Source24: lua-nginx-module-v0.10.26.tar.gz
Source25: stream-lua-nginx-module-bea8a0c0de94cede71554f53818ac0267d675d63.tar.gz
Source94: chronos-v0.2-4.tar.gz
Source95: lua-cjson-2.1.0.tar.gz
Source96: lua-dumper-v0.1.1.tar.gz
Source97: inspect.lua-v3.1.3.tar.gz
Source98: lua-resty-hmac-5f60e1a28b9fdd7939f0e1738171f0ca5fe22978.tar.gz
Source99: lua-resty-http-v0.17.2.tar.gz
Source100: lua-resty-jwt-v0.2.3.tar.gz
Source101: lua-resty-openidc-v1.7.6.tar.gz
Source102: lua-resty-openssl-1.4.0.tar.gz
Source103: lua-resty-session-v3.10.tar.gz
Source104: lua-resty-string-v0.15.tar.gz
Source52: README-module-lua
Source67: libinjection-b9fcaaf9e50e9492807b23ffcc6af46ee1f203b9.tar.gz
Source68: ModSecurity-v3.0.12.tar.gz
Source69: ModSecurity-nginx-v1.0.3.tar.gz
Source70: ssdeep-release-2.14.1.tar.gz
Source71: angie-module-modsecurity.logrotate
Source72: modsecurity.rules.conf
Source53: README-module-modsecurity
Source12: ngx_devel_kit-v0.3.3.tar.gz
Source54: README-module-ndk
Source13: njs-0.8.5.tar.gz
Source55: README-module-njs
Source34: dd-opentracing-cpp-v1.3.7.tar.gz
Source35: nginx-opentracing-v0.35.3.tar.gz
Source36: opentracing-cpp-v1.6.0.tar.gz
Source37: zipkin-cpp-opentracing-966416e4d6aec23f572730aede6c087ccce6d194.tar.gz
Source56: README-module-opentracing
Source79: abseil-cpp-20211102.0.tar.gz
Source80: c-ares-cares-1_27_0.tar.gz
Source81: grpc-v1.46.7.tar.gz
Source82: nginx-otel-v0.1.1.tar.gz
Source83: opentelemetry-cpp-v1.11.0.tar.gz
Source84: opentelemetry-proto-v1.0.0.tar.gz
Source85: protobuf-v3.19.5.tar.gz
Source86: re2-2024-03-01.tar.gz
Source87: README-module-otel
Source57: README-module-perl
Source29: ngx_postgres-1.0rc7.tar.gz
Source58: README-module-postgres
Source20: redis2-nginx-module-v0.15.tar.gz
Source59: README-module-redis2
Source14: nginx-rtmp-module-v1.2.2.tar.gz
Source60: README-module-rtmp
Source15: set-misc-nginx-module-v0.33.tar.gz
Source61: README-module-set-misc
Source16: ngx_http_substitutions_filter_module-e12e965ac1837ca709709f9a26f572a54d83430e.tar.gz
Source62: README-module-subs
Source38: testcookie-nginx-module-64137c2f7e66e8866f56fdecaaf09ac10a034da9.tar.gz
Source63: README-module-testcookie
Source17: nginx-upload-module-2.3.0.tar.gz
Source64: README-module-upload
Source18: nginx-vod-module-1.33.tar.gz
Source65: README-module-vod
Source90: nginx-module-stream-sts-v0.1.1.tar.gz
Source91: nginx-module-sts-v0.1.1.tar.gz
Source92: nginx-module-vts-v0.2.2.tar.gz
Source93: README-module-vts
Source66: README-module-xslt
Source75: mod_zip-1.3.0.tar.gz
Source76: README-module-zip
Source88: zstd-nginx-module-f4ba115e0b0eaecde545e5f37db6aa18917d8f4b.tar.gz
Source89: README-module-zstd
Patch0: luajit2-luaconf.h.patch
Patch1: luajit2-Makefile.patch
Patch2: lua-config.patch
Patch3: stream-lua-config.patch
Patch18: lua-cjson.patch
Patch12: libinjection-version.patch
Patch10: modsecurity-ssdeep.patch
Patch11: modsecurity-libmaxminddb.patch
Patch8: dd-opentracing-cpp-cmakelists.patch
Patch9: opentracing-cpp-fix-ftbfs-glibc-2.34.patch
Patch14: abseil-off_t.patch
Patch15: abseil-str_format.patch
Patch4: ngx_postgres-default_port.patch
Patch5: ngx_postgres-dynamic.patch
Patch6: ngx_postgres-subrequest_in_memory.patch
Patch16: zstd-nginx-module.nostatic.patch
Patch13: configure-accelerator.patch
BuildRequires: gcc
BuildRequires: make
BuildRequires: openssl-devel
BuildRequires: pcre2-devel
BuildRequires: zlib-devel
BuildRequires: libcurl-devel
BuildRequires: msgpack-devel
BuildRequires: perl-ExtUtils-Embed
BuildRequires: perl-macros
BuildRequires: libzstd-devel
Requires: systemd
%description
Actively developing fork of nginx aiming to keep it great
with brand new extra functionality.
%prep
rm -Rf %{_builddir}/*
%setup -q
%patch13 -p1
tar -xpzf %{_sourcedir}/nginx-auth-jwt-0.7.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-auth-ldap-241200eac8e4acae74d353291bd27f79e5ca3dc4.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/spnego-http-auth-nginx-module-v1.1.1.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/ngx_brotli-v1.0.0rc.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/ngx_cache_purge-2.5.3.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-dav-ext-module-v3.0.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/ngx_dynamic_limit_req_module-1.9.3.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/echo-nginx-module-v0.63.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/ngx_http_enhanced_memcached_module-v0.3.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-eval-module-2016.06.10.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/ngx_http_geoip2_module-3.4.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/headers-more-nginx-module-v0.37.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-jwt-module-v3.4.1.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-keyval-0.3.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/chronos-v0.2-4.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-cjson-2.1.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-dumper-v0.1.1.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/inspect.lua-v3.1.3.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-core-v0.1.28.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-hmac-5f60e1a28b9fdd7939f0e1738171f0ca5fe22978.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-http-v0.17.2.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-jwt-v0.2.3.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-lrucache-v0.13.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-openidc-v1.7.6.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-openssl-1.4.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-session-v3.10.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-resty-string-v0.15.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/luajit2-v2.1-20240626.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/lua-nginx-module-v0.10.26.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/stream-lua-nginx-module-bea8a0c0de94cede71554f53818ac0267d675d63.tar.gz -C %{_builddir}
%patch0 -d %{_builddir}/luajit2-2.1-20240626 -p0
%patch1 -d %{_builddir}/luajit2-2.1-20240626 -p0
%patch2 -d %{_builddir}/lua-nginx-module-0.10.26 -p0
%patch3 -d %{_builddir}/stream-lua-nginx-module-bea8a0c0de94cede71554f53818ac0267d675d63 -p0
%patch18 -d %{_builddir}/lua-cjson-2.1.0 -p0
tar -xpzf %{_sourcedir}/ModSecurity-v3.0.12.tar.gz -C %{_builddir}
rmdir %{_builddir}/ModSecurity-3.0.12/others/libinjection
tar -xpzf %{_sourcedir}/libinjection-b9fcaaf9e50e9492807b23ffcc6af46ee1f203b9.tar.gz -C %{_builddir}
%patch12 -d %{_builddir}/libinjection-b9fcaaf9e50e9492807b23ffcc6af46ee1f203b9 -p0
mv %{_builddir}/libinjection-b9fcaaf9e50e9492807b23ffcc6af46ee1f203b9 %{_builddir}/ModSecurity-3.0.12/others/libinjection
tar -xpzf %{_sourcedir}/ModSecurity-nginx-v1.0.3.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/ssdeep-release-2.14.1.tar.gz -C %{_builddir}
%patch10 -d %{_builddir}/ModSecurity-3.0.12 -p0
%patch11 -d %{_builddir}/ModSecurity-3.0.12 -p0
tar -xpzf %{_sourcedir}/ngx_devel_kit-v0.3.3.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/njs-0.8.5.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/dd-opentracing-cpp-v1.3.7.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-opentracing-v0.35.3.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/opentracing-cpp-v1.6.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/zipkin-cpp-opentracing-966416e4d6aec23f572730aede6c087ccce6d194.tar.gz -C %{_builddir}
%patch8 -d %{_builddir}/dd-opentracing-cpp-1.3.7 -p0
%patch9 -d %{_builddir}/opentracing-cpp-1.6.0 -p0
tar -xpzf %{_sourcedir}/abseil-cpp-20211102.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/c-ares-cares-1_27_0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/grpc-v1.46.7.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-otel-v0.1.1.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/opentelemetry-cpp-v1.11.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/opentelemetry-proto-v1.0.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/protobuf-v3.19.5.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/re2-2024-03-01.tar.gz -C %{_builddir}
%patch14 -d %{_builddir}/abseil-cpp-20211102.0 -p0
%patch15 -d %{_builddir}/abseil-cpp-20211102.0 -p0
tar -xpzf %{_sourcedir}/ngx_postgres-1.0rc7.tar.gz -C %{_builddir}
%patch4 -d %{_builddir}/ngx_postgres-1.0rc7 -p0
%patch5 -d %{_builddir}/ngx_postgres-1.0rc7 -p0
%patch6 -d %{_builddir}/ngx_postgres-1.0rc7 -p0
tar -xpzf %{_sourcedir}/redis2-nginx-module-v0.15.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-rtmp-module-v1.2.2.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/set-misc-nginx-module-v0.33.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/ngx_http_substitutions_filter_module-e12e965ac1837ca709709f9a26f572a54d83430e.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/testcookie-nginx-module-64137c2f7e66e8866f56fdecaaf09ac10a034da9.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-upload-module-2.3.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-vod-module-1.33.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-module-stream-sts-v0.1.1.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-module-sts-v0.1.1.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/nginx-module-vts-v0.2.2.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/mod_zip-1.3.0.tar.gz -C %{_builddir}
tar -xpzf %{_sourcedir}/zstd-nginx-module-f4ba115e0b0eaecde545e5f37db6aa18917d8f4b.tar.gz -C %{_builddir}
%patch16 -d %{_builddir}/zstd-nginx-module-f4ba115e0b0eaecde545e5f37db6aa18917d8f4b -p0
cp -Rp %{_builddir}/angie-%{version} %{_builddir}/angie-debug
%build
set -e
export CFLAGS="$RPM_OPT_FLAGS"
_build() {
local configure_add configure_env cc_opt ld_opt make_target=modules objs_dir
local arg; for arg in "$@"; do
case "$arg" in
cc_opt=*)
cc_opt="${arg#cc_opt=}"
;;
configure_add=*)
configure_add="${arg#configure_add=}"
;;
configure_env=*)
configure_env=${arg#configure_env=}
;;
objs_dir=*)
objs_dir="${arg#objs_dir=}"
;;
ld_opt=*)
ld_opt="${arg#ld_opt=}"
;;
make_target=*)
make_target=${arg#make_target=}
;;
esac
done
local configure_args="
--prefix=/etc/angie
--conf-path=/etc/angie/angie.conf
--error-log-path=%{_var}/log/angie/error.log
--http-log-path=%{_var}/log/angie/access.log
--lock-path=/run/angie.lock
--modules-path=/usr/lib/angie/modules
--pid-path=/run/angie.pid
--sbin-path=/usr/sbin/angie
--http-acme-client-path=%{_var}/lib/angie/acme
--http-client-body-temp-path=%{_var}/cache/angie/client_temp
--http-fastcgi-temp-path=%{_var}/cache/angie/fastcgi_temp
--http-proxy-temp-path=%{_var}/cache/angie/proxy_temp
--http-scgi-temp-path=%{_var}/cache/angie/scgi_temp
--http-uwsgi-temp-path=%{_var}/cache/angie/uwsgi_temp
--user=angie
--group=angie
--with-file-aio
--with-http_acme_module
--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_mqtt_preread_module
--with-stream_rdp_preread_module
--with-stream_realip_module
--with-stream_ssl_module
--with-stream_ssl_preread_module
--with-threads
$configure_add
--feature-cache=../angie-feature-cache
"
[ -n "$cc_opt" ] && configure_args="$configure_args --with-cc-opt=\"$cc_opt\""
# always prepend LDFLAGS (if set) to --with-ld-opt
if [ -n "$RPM_LD_FLAGS" ]; then
[ -n "$ld_opt" ] && ld_opt="$RPM_LD_FLAGS $ld_opt" || ld_opt="$RPM_LD_FLAGS"
fi
[ -n "$ld_opt" ] && configure_args="$configure_args --with-ld-opt=\"$ld_opt\""
(
[ -f Makefile ] && make clean
eval env $configure_env ./configure $configure_args
[ -n "$objs_dir" ] && mkdir "$objs_dir"
if [ $make_target != none ]; then
make %{?_smp_mflags} $make_target
if [ -n "$objs_dir" ]; then
cp -p objs/*.so "$objs_dir"
fi
fi
)
(
cd ../angie-debug
[ -f Makefile ] && make clean
eval env $configure_env ./configure $configure_args --with-debug
if [ $make_target != none ]; then
make %{?_smp_mflags} $make_target
if [ -n "$objs_dir" ]; then
for so in $(cd objs && ls *.so); do
cp -p objs/$so ../%{name}-%{version}/"$objs_dir"/${so%%.so}-debug.so
done
fi
fi
)
}
_build configure_add=--add-dynamic-module=../nginx-auth-jwt-0.7.0 \
objs_dir=module-auth-jwt
cp %{_sourcedir}/README-module-auth-jwt module-auth-jwt/README
cp ../nginx-auth-jwt-0.7.0/LICENSE module-auth-jwt/LICENSE
_build configure_add=--add-dynamic-module=../nginx-auth-ldap-241200eac8e4acae74d353291bd27f79e5ca3dc4 \
objs_dir=module-auth-ldap
cp %{_sourcedir}/README-module-auth-ldap module-auth-ldap/README
cp ../nginx-auth-ldap-241200eac8e4acae74d353291bd27f79e5ca3dc4/LICENSE module-auth-ldap/LICENSE
_build configure_add=--add-dynamic-module=../spnego-http-auth-nginx-module-1.1.1 \
objs_dir=module-auth-spnego
cp %{_sourcedir}/README-module-auth-spnego module-auth-spnego/README
cp ../spnego-http-auth-nginx-module-1.1.1/LICENSE module-auth-spnego/LICENSE
_build configure_add=--add-dynamic-module=../ngx_brotli-1.0.0rc \
objs_dir=module-brotli
cp %{_sourcedir}/README-module-brotli module-brotli/README
cp ../ngx_brotli-1.0.0rc/LICENSE module-brotli/LICENSE
_build configure_add=--add-dynamic-module=../ngx_cache_purge-2.5.3 \
objs_dir=module-cache-purge
cp %{_sourcedir}/README-module-cache-purge module-cache-purge/README
cp ../ngx_cache_purge-2.5.3/LICENSE module-cache-purge/LICENSE
_build configure_add=--add-dynamic-module=../nginx-dav-ext-module-3.0.0 \
objs_dir=module-dav-ext
cp %{_sourcedir}/README-module-dav-ext module-dav-ext/README
cp ../nginx-dav-ext-module-3.0.0/LICENSE module-dav-ext/LICENSE
_build configure_add=--add-dynamic-module=../ngx_dynamic_limit_req_module-1.9.3 \
objs_dir=module-dynamic-limit-req
cp %{_sourcedir}/README-module-dynamic-limit-req module-dynamic-limit-req/README
cp ../ngx_dynamic_limit_req_module-1.9.3/LICENSE module-dynamic-limit-req/LICENSE
_build configure_add=--add-dynamic-module=../echo-nginx-module-0.63 \
objs_dir=module-echo
cp %{_sourcedir}/README-module-echo module-echo/README
cp ../echo-nginx-module-0.63/LICENSE module-echo/LICENSE
_build configure_add=--add-dynamic-module=../ngx_http_enhanced_memcached_module-0.3 \
objs_dir=module-enhanced-memcached
cp %{_sourcedir}/README-module-enhanced-memcached module-enhanced-memcached/README
cp ../ngx_http_enhanced_memcached_module-0.3/README.markdown module-enhanced-memcached/LICENSE
_build configure_add=--add-dynamic-module=../nginx-eval-module-2016.06.10 \
objs_dir=module-eval
cp %{_sourcedir}/README-module-eval module-eval/README
cp ../nginx-eval-module-2016.06.10/LICENCE module-eval/LICENSE
_build configure_add=--add-dynamic-module=../ngx_http_geoip2_module-3.4 \
objs_dir=module-geoip2
cp %{_sourcedir}/README-module-geoip2 module-geoip2/README
cp ../ngx_http_geoip2_module-3.4/LICENSE module-geoip2/LICENSE
_build configure_add=--add-dynamic-module=../headers-more-nginx-module-0.37 \
objs_dir=module-headers-more
cp %{_sourcedir}/README-module-headers-more module-headers-more/README
cp ../headers-more-nginx-module-0.37/README.markdown module-headers-more/LICENSE
_build configure_add=--with-http_image_filter_module=dynamic \
objs_dir=module-image-filter
cp %{_sourcedir}/README-module-image-filter module-image-filter/README
_build configure_add=--add-dynamic-module=../nginx-jwt-module-3.4.1 \
objs_dir=module-jwt
cp %{_sourcedir}/README-module-jwt module-jwt/README
cp ../nginx-jwt-module-3.4.1/LICENSE module-jwt/LICENSE
_build configure_add=--add-dynamic-module=../nginx-keyval-0.3.0 \
objs_dir=module-keyval
cp %{_sourcedir}/README-module-keyval module-keyval/README
cp ../nginx-keyval-0.3.0/LICENSE module-keyval/LICENSE
(
cd ../luajit2-2.1-20240626
make %{?_smp_mflags} CFLAGS="$CFLAGS -fPIC" DESTDIR=$(pwd) install
)
_build configure_add="--add-dynamic-module=../lua-nginx-module-0.10.26
--add-dynamic-module=../stream-lua-nginx-module-bea8a0c0de94cede71554f53818ac0267d675d63
--add-dynamic-module=../ngx_devel_kit-0.3.3" \
configure_env="LUAJIT_INC=../luajit2-2.1-20240626/usr/include/luajit-2.1
LUAJIT_LIB=../luajit2-2.1-20240626/usr/lib" \
objs_dir=module-lua
mkdir module-lua/lua-clibs
cc -O2 -fPIC -I../luajit2-2.1-20240626/src -c ../chronos-0.2-4/src/chronos.c \
-o ../chronos-0.2-4/src/chronos.o
cc -shared -o module-lua/lua-clibs/chronos.so ../chronos-0.2-4/src/chronos.o -lrt
make %{?_smp_mflags} -C ../lua-cjson-2.1.0 install \
LUA_CMODULE_DIR=$(pwd)/module-lua/lua-clibs LUA_INCLUDE_DIR=../luajit2-2.1-20240626/src
make %{?_smp_mflags} -C ../lua-resty-core-0.1.28 install \
DESTDIR=$(pwd)/module-lua/lua-libs LUA_LIB_DIR=
make %{?_smp_mflags} -C ../lua-resty-lrucache-0.13 install \
DESTDIR=$(pwd)/module-lua/lua-libs LUA_LIB_DIR=
cp ../lua-dumper-0.1.1/dumper.lua \
module-lua/lua-libs
cp ../inspect.lua-3.1.3/inspect.lua \
module-lua/lua-libs
cp -Rp ../lua-resty-hmac-5f60e1a28b9fdd7939f0e1738171f0ca5fe22978/lib/resty/* \
module-lua/lua-libs/resty
make %{?_smp_mflags} -C ../lua-resty-http-0.17.2 install \
DESTDIR=$(pwd)/module-lua/lua-libs LUA_LIB_DIR=
cp -Rp ../lua-resty-jwt-0.2.3/lib/resty/* \
module-lua/lua-libs/resty
cp -Rp ../lua-resty-openidc-1.7.6/lib/resty/* \
module-lua/lua-libs/resty
make %{?_smp_mflags} -C ../lua-resty-openssl-1.4.0 install \
DESTDIR=$(pwd)/module-lua/lua-libs LUA_LIB_DIR=
cp -Rp ../lua-resty-session-3.10/lib/resty/* \
module-lua/lua-libs/resty
make %{?_smp_mflags} -C ../lua-resty-string-0.15 install \
DESTDIR=$(pwd)/module-lua/lua-libs LUA_LIB_DIR=
cp %{_sourcedir}/README-module-lua module-lua/README
cp ../lua-nginx-module-0.10.26/README.markdown module-lua/LICENSE
(
cd ../ssdeep-release-2.14.1
./bootstrap
./configure --prefix=%{_builddir}/sandbox \
--libdir=%{_builddir}/sandbox/lib \
--enable-shared=no \
--with-pic
make %{?_smp_mflags} && make install
)
(
cd ../ModSecurity-3.0.12
./build.sh
./configure --prefix=%{_builddir}/sandbox \
--libdir=%{_builddir}/sandbox/lib \
--enable-shared=no \
--with-geoip=no \
--with-lmdb \
--with-maxmind \
--with-lua \
--with-pcre2 \
--with-pic \
--with-ssdeep=%{_builddir}/sandbox
make %{?_smp_mflags} && make install
)
_build configure_add=--add-dynamic-module=%{_builddir}/ModSecurity-nginx-1.0.3 \
cc_opt="-I%{_builddir}/sandbox/include" \
ld_opt="-L%{_builddir}/sandbox/lib \
$(pkg-config --libs --static \
%{_builddir}/sandbox/lib/pkgconfig/modsecurity.pc) \
-lstdc++" \
objs_dir=module-modsecurity
cp %{_sourcedir}/README-module-modsecurity module-modsecurity/README
cp ../ModSecurity-nginx-1.0.3/LICENSE module-modsecurity/LICENSE
sed -E -e 's,\b(SecAuditLog)\b.*,\1 /var/log/angie/modsecurity/audit.log,' \
-e 's,\b(SecDebugLog)\b.*,\1 /var/log/angie/modsecurity/debug.log,' \
-e 's,\b(SecAuditLogStorageDir)\b.*,\1 /var/log/angie/modsecurity/concurrent,' \
../ModSecurity-3.0.12/modsecurity.conf-recommended > \
module-modsecurity/modsecurity.conf
cp ../ModSecurity-3.0.12/unicode.mapping module-modsecurity/unicode.mapping
_build configure_add=--add-dynamic-module=../ngx_devel_kit-0.3.3 \
cc_opt="-DNDK_SET_VAR -DNDK_UPSTREAM_LIST" \
objs_dir=module-ndk
cp %{_sourcedir}/README-module-ndk module-ndk/README
cp ../ngx_devel_kit-0.3.3/LICENSE module-ndk/LICENSE
_build configure_add=--add-dynamic-module=../njs-0.8.5/nginx \
objs_dir=module-njs
(
cd ../njs-0.8.5
[ -f Makefile ] && make clean
./configure --ld-opt="$LDFLAGS"
make %{?_smp_mflags}
)
cp %{_sourcedir}/README-module-njs module-njs/README
cp ../njs-0.8.5/LICENSE module-njs/LICENSE
(
cd ../opentracing-cpp-1.6.0
mkdir .build && cd .build
cmake -DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DBUILD_DYNAMIC_LOADING=ON \
-DBUILD_MOCKTRACER=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_STATIC_LIBS=ON \
..
make -j2 install
)
(
cd ../dd-opentracing-cpp-1.3.7
mkdir .build && cd .build
cmake -DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DBUILD_SHARED=OFF \
-DBUILD_PLUGIN=ON \
..
make -j2
)
(
cd ../zipkin-cpp-opentracing-966416e4d6aec23f572730aede6c087ccce6d194
mkdir .build && cd .build
cmake -DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_STATIC_LIBS=OFF \
-DBUILD_PLUGIN=ON \
..
make -j2
)
_build configure_add=--add-dynamic-module=../nginx-opentracing-0.35.3/opentracing \
cc_opt="-I%{_builddir}/sandbox/include" \
ld_opt="-L%{_builddir}/sandbox/lib" \
objs_dir=module-opentracing
cp %{_sourcedir}/README-module-opentracing module-opentracing/README
cp ../nginx-opentracing-0.35.3/LICENSE module-opentracing/LICENSE
(
cd ../c-ares-cares-1_27_0
mkdir .build && cd .build
cmake -DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DCARES_STATIC=ON \
-DCARES_SHARED=OFF \
-DCARES_STATIC_PIC=ON \
..
make -j2 install
)
(
cd ../abseil-cpp-20211102.0
mkdir .build && cd .build
cmake -DCMAKE_CXX_STANDARD=11 \
-DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_PREFIX_PATH=${_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DABSL_PROPAGATE_CXX_STD=ON \
..
make -j2 install
)
(
cd ../re2-2024-03-01
mkdir .build && cd .build
cmake -DCMAKE_CXX_STANDARD=11 \
-DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
..
make -j2 install
)
(
cd ../protobuf-3.19.5
mkdir .build && cd .build
cmake -DCMAKE_CXX_STANDARD=11 \
-DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-Dprotobuf_BUILD_TESTS=OFF \
../cmake
make -j2 install
)
(
cd ../grpc-1.46.7
# prevent fetching opencensus-proto
touch third_party/opencensus-proto/src
mkdir .build && cd .build
cmake -DCMAKE_CXX_STANDARD=11 \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DgRPC_BUILD_CSHARP_EXT=OFF \
-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF \
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \
-DgRPC_ABSL_PROVIDER=package \
-DgRPC_CARES_PROVIDER=package \
-DgRPC_PROTOBUF_PROVIDER=package \
-DgRPC_RE2_PROVIDER=package \
-DgRPC_SSL_PROVIDER=package \
-DgRPC_ZLIB_PROVIDER=package \
..
make -j2 install
)
(
cd ../opentelemetry-cpp-1.11.0
mkdir .build && cd .build
cmake -DCMAKE_CXX_STANDARD=11 \
-DCMAKE_INSTALL_PREFIX=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DBUILD_TESTING=OFF \
-DOTELCPP_PROTO_PATH=%{_builddir}/opentelemetry-proto-1.0.0 \
-DWITH_ABSEIL=ON \
-DWITH_BENCHMARK=OFF \
-DWITH_EXAMPLES=OFF \
-DWITH_FUNC_TESTS=OFF \
..
make -j2 install
)
_build make_target=none objs_dir=module-otel
(
cd ../nginx-otel-0.1.1
mkdir .build && cd .build
cmake -DCMAKE_PREFIX_PATH=%{_builddir}/sandbox \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DNGX_OTEL_FETCH_DEPS=OFF \
-DNGX_OTEL_NGINX_BUILD_DIR=%{_builddir}/%{buildsubdir}/objs \
-DNGX_OTEL_PROTO_DIR=%{_builddir}/opentelemetry-proto-1.0.0 \
..
make -j2
cp ngx_otel_module.so %{_builddir}/%{buildsubdir}/module-otel
)
cp %{_sourcedir}/README-module-otel module-otel/README
cp ../nginx-otel-0.1.1/LICENSE module-otel/LICENSE
_build configure_add=--with-http_perl_module=dynamic \
objs_dir=module-perl
(
make %{?_smp_mflags} -f objs/Makefile install_perl_modules \
DESTDIR=$(pwd)/module-perl/pm INSTALLDIRS=vendor
find module-perl/pm -not -name 'nginx.*' -type f -delete
find module-perl/pm -depth -type d -empty -delete
)
cp %{_sourcedir}/README-module-perl module-perl/README
_build configure_add=--add-dynamic-module=../ngx_postgres-1.0rc7 \
objs_dir=module-postgres
cp %{_sourcedir}/README-module-postgres module-postgres/README
cp ../ngx_postgres-1.0rc7/LICENSE module-postgres/LICENSE
_build configure_add=--add-dynamic-module=../redis2-nginx-module-0.15 \
objs_dir=module-redis2
cp %{_sourcedir}/README-module-redis2 module-redis2/README
cp ../redis2-nginx-module-0.15/README.markdown module-redis2/LICENSE
_build configure_add=--add-dynamic-module=../nginx-rtmp-module-1.2.2 \
objs_dir=module-rtmp
cp %{_sourcedir}/README-module-rtmp module-rtmp/README
cp ../nginx-rtmp-module-1.2.2/LICENSE module-rtmp/LICENSE
_build configure_add="--add-dynamic-module=../ngx_devel_kit-0.3.3
--add-dynamic-module=../set-misc-nginx-module-0.33" \
objs_dir=module-set-misc
cp %{_sourcedir}/README-module-set-misc module-set-misc/README
cp ../set-misc-nginx-module-0.33/README.markdown module-set-misc/LICENSE
_build configure_add=--add-dynamic-module=../ngx_http_substitutions_filter_module-e12e965ac1837ca709709f9a26f572a54d83430e \
objs_dir=module-subs
cp %{_sourcedir}/README-module-subs module-subs/README
cp ../ngx_http_substitutions_filter_module-e12e965ac1837ca709709f9a26f572a54d83430e/README module-subs/LICENSE
_build configure_add=--add-dynamic-module=../testcookie-nginx-module-64137c2f7e66e8866f56fdecaaf09ac10a034da9 \
objs_dir=module-testcookie
cp %{_sourcedir}/README-module-testcookie module-testcookie/README
cp ../testcookie-nginx-module-64137c2f7e66e8866f56fdecaaf09ac10a034da9/README.markdown module-testcookie/LICENSE
_build configure_add=--add-dynamic-module=../nginx-upload-module-2.3.0 \
objs_dir=module-upload
cp %{_sourcedir}/README-module-upload module-upload/README
cp ../nginx-upload-module-2.3.0/LICENCE module-upload/LICENSE
_build configure_add=--add-dynamic-module=../nginx-vod-module-1.33 \
cc_opt="-I/usr/include/ffmpeg" \
objs_dir=module-vod
cp %{_sourcedir}/README-module-vod module-vod/README
cp ../nginx-vod-module-1.33/LICENSE module-vod/LICENSE
_build configure_add="--add-dynamic-module=../nginx-module-stream-sts-0.1.1
--add-dynamic-module=../nginx-module-sts-0.1.1
--add-dynamic-module=../nginx-module-vts-0.2.2" \
objs_dir=module-vts
cp %{_sourcedir}/README-module-vts module-vts/README
cp ../nginx-module-vts-0.2.2/LICENSE module-vts/LICENSE
_build configure_add=--with-http_xslt_module=dynamic \
objs_dir=module-xslt
cp %{_sourcedir}/README-module-xslt module-xslt/README
_build configure_add=--add-dynamic-module=../mod_zip-1.3.0 \
objs_dir=module-zip
cp %{_sourcedir}/README-module-zip module-zip/README
cp ../mod_zip-1.3.0/LICENSE module-zip/LICENSE
_build configure_add=--add-dynamic-module=../zstd-nginx-module-f4ba115e0b0eaecde545e5f37db6aa18917d8f4b \
objs_dir=module-zstd
cp %{_sourcedir}/README-module-zstd module-zstd/README
cp ../zstd-nginx-module-f4ba115e0b0eaecde545e5f37db6aa18917d8f4b/LICENSE module-zstd/LICENSE
_build \
make_target=build
%install
rm -Rf %{buildroot}
mkdir -p %{buildroot}
install -dm 755 \
%{buildroot}%{_sysconfdir}/angie \
%{buildroot}%{_var}/cache/angie \
%{buildroot}%{_var}/lib/angie \
%{buildroot}%{_libdir}/angie/modules
install -Dm 755 objs/angie %{buildroot}%{_sbindir}/angie-nodebug
install -Dm 755 ../angie-debug/objs/angie %{buildroot}%{_sbindir}/angie-debug
ln -fs angie-nodebug %{buildroot}%{_sbindir}/angie
install -Dm 644 objs/angie.8 %{buildroot}%{_mandir}/man8/angie.8
install -dm 755 %{buildroot}%{_datadir}/angie/html
install -Dm 644 html/* -t %{buildroot}%{_datadir}/angie/html
install -Dm 644 conf/fastcgi.conf -t %{buildroot}%{_sysconfdir}/angie
install -Dm 644 conf/fastcgi_params -t %{buildroot}%{_sysconfdir}/angie
install -Dm 644 conf/mime.types -t %{buildroot}%{_sysconfdir}/angie
install -Dm 644 conf/prometheus_all.conf -t %{buildroot}%{_sysconfdir}/angie
install -Dm 644 conf/scgi_params -t %{buildroot}%{_sysconfdir}/angie
install -Dm 644 conf/uwsgi_params -t %{buildroot}%{_sysconfdir}/angie
install -Dm 644 %{_sourcedir}/angie.conf %{buildroot}%{_sysconfdir}/angie/angie.conf
install -Dm 644 %{_sourcedir}/default.conf %{buildroot}%{_sysconfdir}/angie/http.d/default.conf
install -Dm 644 %{_sourcedir}/example.conf %{buildroot}%{_sysconfdir}/angie/stream.d/example.conf
install -Dm 644 %{_sourcedir}/angie.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/angie
install -Dm 644 %{_sourcedir}/angie.service %{buildroot}%{_unitdir}/angie.service
install -Dm 755 %{_sourcedir}/angie.upgrade %{buildroot}%{_libexecdir}/initscripts/legacy-actions/angie/upgrade
ln -fs ../../usr/lib64/angie/modules %{buildroot}%{_sysconfdir}/angie/modules
install -Dm 755 module-auth-jwt/ngx_http_auth_jwt_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-auth-ldap/ngx_http_auth_ldap_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-auth-spnego/ngx_http_auth_spnego_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-brotli/ngx_http_brotli_filter_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-brotli/ngx_http_brotli_static_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-cache-purge/ngx_http_cache_purge_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-dav-ext/ngx_http_dav_ext_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-dynamic-limit-req/ngx_http_dynamic_limit_req_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-echo/ngx_http_echo_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-enhanced-memcached/ngx_http_enhanced_memcached_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-eval/ngx_http_eval_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-geoip2/ngx_http_geoip2_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-geoip2/ngx_stream_geoip2_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-headers-more/ngx_http_headers_more_filter_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-image-filter/ngx_http_image_filter_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -dm 755 %{buildroot}%{_libdir}/angie/modules/max-lt
install -Dm 755 module-jwt/ngx_http_auth_jwt_module*.so \
-t %{buildroot}%{_libdir}/angie/modules/max-lt
install -Dm 755 module-keyval/ngx_http_keyval_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-lua/ngx_http_lua_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-lua/ngx_stream_lua_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-lua/lua-clibs/chronos.so \
%{buildroot}%{_libdir}/angie/luajit/chronos.so
install -Dm 755 module-lua/lua-clibs/cjson.so \
%{buildroot}%{_libdir}/angie/luajit/cjson.so
for file in $(cd module-lua/lua-libs && find . -type f); do
install -Dm 644 module-lua/lua-libs/$file \
%{buildroot}%{_datadir}/angie/luajit/$file
done
install -Dm 644 %{_sourcedir}/angie-module-modsecurity.logrotate \
%{buildroot}%{_sysconfdir}/logrotate.d/angie-module-modsecurity
install -Dm 755 module-modsecurity/ngx_http_modsecurity_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -dm 755 %{buildroot}%{_sysconfdir}/angie/modsecurity
install -Dm 644 module-modsecurity/modsecurity.conf \
-t %{buildroot}%{_sysconfdir}/angie/modsecurity
install -Dm 644 module-modsecurity/unicode.mapping \
-t %{buildroot}%{_sysconfdir}/angie/modsecurity
install -Dm 644 %{_sourcedir}/modsecurity.rules.conf \
%{buildroot}%{_sysconfdir}/angie/modsecurity/rules.conf
install -dm 755 %{buildroot}%{_var}/lib/angie/modsecurity
install -Dm 755 module-ndk/ndk_http_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-njs/ngx_http_js_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-njs/ngx_stream_js_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 ../njs-0.8.5/build/njs \
%{buildroot}%{_bindir}/njs
install -Dm 755 module-opentracing/ngx_http_opentracing_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 %{_builddir}/dd-opentracing-cpp-1.3.7/.build/libdd_opentracing_plugin.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 %{_builddir}/zipkin-cpp-opentracing-966416e4d6aec23f572730aede6c087ccce6d194/.build/zipkin_opentracing/libzipkin_opentracing_plugin.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-otel/ngx_otel_module.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-perl/ngx_http_perl_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
for file in $(cd module-perl/pm && find . -type f -name nginx.so); do
install -Dm 755 module-perl/pm/$file %{buildroot}/$file
done
for file in $(cd module-perl/pm && find . -type f -not -name nginx.so); do
install -Dm 644 module-perl/pm/$file %{buildroot}/$file
done
install -Dm 755 module-postgres/ngx_postgres_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-redis2/ngx_http_redis2_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-rtmp/ngx_rtmp_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-set-misc/ngx_http_set_misc_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-subs/ngx_http_subs_filter_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-testcookie/ngx_http_testcookie_access_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-upload/ngx_http_upload_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-vod/ngx_http_vod_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-vts/ngx_*_traffic_status_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -dm 755 %{buildroot}%{_datadir}/angie-module-vts/stream
install -Dm 644 %{_builddir}/nginx-module-vts-0.2.2/share/*.html \
-t %{buildroot}%{_datadir}/angie-module-vts
install -Dm 644 %{_builddir}/nginx-module-sts-0.1.1/share/*.html \
-t %{buildroot}%{_datadir}/angie-module-vts/stream
install -Dm 755 module-xslt/ngx_http_xslt_filter_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-zip/ngx_http_zip_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-zstd/ngx_http_zstd_filter_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
install -Dm 755 module-zstd/ngx_http_zstd_static_module*.so \
-t %{buildroot}%{_libdir}/angie/modules
%clean
rm -Rf %{buildroot}
%files
%{_sbindir}/angie
%{_sbindir}/angie-debug
%{_sbindir}/angie-nodebug
%dir %{_sysconfdir}/angie
%dir %{_sysconfdir}/angie/http.d
%dir %{_sysconfdir}/angie/stream.d
%config(noreplace) %{_sysconfdir}/angie/angie.conf
%config(noreplace) %{_sysconfdir}/angie/http.d/default.conf
%config(noreplace) %{_sysconfdir}/angie/stream.d/example.conf
%config(noreplace) %{_sysconfdir}/angie/fastcgi.conf
%config(noreplace) %{_sysconfdir}/angie/fastcgi_params
%config(noreplace) %{_sysconfdir}/angie/mime.types
%config(noreplace) %{_sysconfdir}/angie/prometheus_all.conf
%config(noreplace) %{_sysconfdir}/angie/scgi_params
%config(noreplace) %{_sysconfdir}/angie/uwsgi_params
%config(noreplace) %{_sysconfdir}/logrotate.d/angie
%{_sysconfdir}/angie/modules
%dir %{_datadir}/angie
%{_datadir}/angie/html
%doc CHANGES CHANGES.ru README
%license LICENSE
%dir %{_libdir}/angie
%dir %{_libdir}/angie/modules
%dir %{_libexecdir}/initscripts/legacy-actions/angie
%{_libexecdir}/initscripts/legacy-actions/angie/upgrade
%{_mandir}/man8/angie.8*
%{_unitdir}/angie.service
%dir %{_var}/cache/angie
%dir %{_var}/lib/angie
%pre
# install:1, upgrade:2
if [ $1 -eq 1 ]; then
if ! getent group angie >/dev/null; then
groupadd -r angie
fi
if ! getent passwd angie >/dev/null; then
useradd -c Angie -d %{_var}/cache/angie -g angie -r -s /sbin/nologin angie
fi
fi
%post
# install:1, upgrade:2
%systemd_post angie.service
if [ ! -e %{_var}/log/angie ]; then
install -d -m 755 -o root -g root %{_var}/log/angie || :
fi
if [ ! -e %{_var}/lib/angie/acme ]; then
install -d -m 700 -o root -g root %{_var}/lib/angie/acme || :
fi
if [ $1 -eq 1 ]; then
cat <<EOM
----------------------------------------------------------------------
Thanks for using Angie!
Please find the official documentation for Angie here:
* https://angie.software/en/
----------------------------------------------------------------------
EOM
fi
%preun
# uninstall:0, upgrade:1
%systemd_preun angie.service
if [ $1 -eq 0 ]; then
if [ -d %{_var}/lib/angie/acme ]; then
rmdir %{_var}/lib/angie/acme 2>/dev/null || :
fi
if [ -d %{_var}/log/angie ]; then
rmdir %{_var}/log/angie 2>/dev/null || :
fi
fi
%postun
# uninstall:0, upgrade:1
%systemd_postun angie.service
if [ $1 -eq 1 ]; then
if systemctl is-active angie >/dev/null 2>&1; then
service angie upgrade >/dev/null 2>&1 || \
echo "Binary upgrade failed, please check error.log"
fi
fi
%package module-auth-jwt
Summary: Angie auth-jwt dynamic module
BuildRequires: jansson-devel
Requires: angie = %{version}-%{release}
Conflicts: angie-module-jwt
%description module-auth-jwt
Module adds SPNEGO support to Angie.
%files module-auth-jwt
%{_libdir}/angie/modules/ngx_http_auth_jwt_module.so
%{_libdir}/angie/modules/ngx_http_auth_jwt_module-debug.so
%doc module-auth-jwt/README
%license module-auth-jwt/LICENSE
%post module-auth-jwt
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The auth-jwt dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_auth_jwt_module.so;
Please refer to the modules documentation for further details:
https://github.com/kjdev/nginx-auth-jwt
----------------------------------------------------------------------
BANNER
fi
%package module-auth-ldap
Summary: Angie auth-ldap dynamic module
BuildRequires: openldap-devel
Requires: angie = %{version}-%{release}
%description module-auth-ldap
LDAP module for Angie which supports authentication
against multiple LDAP servers.
%files module-auth-ldap
%{_libdir}/angie/modules/ngx_http_auth_ldap_module.so
%{_libdir}/angie/modules/ngx_http_auth_ldap_module-debug.so
%doc module-auth-ldap/README
%license module-auth-ldap/LICENSE
%post module-auth-ldap
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The auth-ldap dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_auth_ldap_module.so;
Please refer to the modules documentation for further details:
https://github.com/kvspb/nginx-auth-ldap
----------------------------------------------------------------------
BANNER
fi
%package module-auth-spnego
Summary: Angie auth-spnego dynamic module
BuildRequires: krb5-devel
Requires: angie = %{version}-%{release}
%description module-auth-spnego
Module adds SPNEGO support to Angie.
%files module-auth-spnego
%{_libdir}/angie/modules/ngx_http_auth_spnego_module.so
%{_libdir}/angie/modules/ngx_http_auth_spnego_module-debug.so
%doc module-auth-spnego/README
%license module-auth-spnego/LICENSE
%post module-auth-spnego
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The auth-spnego dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_auth_spnego_module.so;
Please refer to the modules documentation for further details:
https://github.com/stnoonan/spnego-http-auth-nginx-module
----------------------------------------------------------------------
BANNER
fi
%package module-brotli
Summary: Angie Brotli dynamic module
BuildRequires: brotli-devel
Requires: angie = %{version}-%{release}
%description module-brotli
Module adds Brotli compression support to Angie.
Brotli is a generic-purpose lossless compression algorithm that compresses
data using a combination of a modern variant of the LZ77 algorithm, Huffman
coding and 2nd order context modeling, with a compression ratio comparable
to the best currently available general-purpose compression methods.
It is similar in speed with deflate but offers more dense compression.
%files module-brotli
%{_libdir}/angie/modules/ngx_http_brotli_filter_module.so
%{_libdir}/angie/modules/ngx_http_brotli_filter_module-debug.so
%{_libdir}/angie/modules/ngx_http_brotli_static_module.so
%{_libdir}/angie/modules/ngx_http_brotli_static_module-debug.so
%doc module-brotli/README
%license module-brotli/LICENSE
%post module-brotli
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The Brotli dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_brotli_filter_module.so;
or:
load_module modules/ngx_http_brotli_static_module.so;
Please refer to the modules documentation for further details:
https://github.com/arut/nginx-dav-ext-module
----------------------------------------------------------------------
BANNER
fi
%package module-cache-purge
Summary: Angie cache-purge dynamic module
Requires: angie = %{version}-%{release}
%description module-cache-purge
Module which adds ability to purge content from FastCGI, proxy, SCGI and uWSGI caches.
%files module-cache-purge
%{_libdir}/angie/modules/ngx_http_cache_purge_module.so
%{_libdir}/angie/modules/ngx_http_cache_purge_module-debug.so
%doc module-cache-purge/README
%license module-cache-purge/LICENSE
%post module-cache-purge
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The cache-purge dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_cache_purge_module.so;
Please refer to the module documentation for further details:
https://github.com/nginx-modules/ngx_cache_purge
----------------------------------------------------------------------
BANNER
fi
%package module-dav-ext
Summary: Angie dav-ext dynamic module
Requires: angie = %{version}-%{release}
%description module-dav-ext
Module extends built-in DAV module with PROPFIND, OPTIONS, LOCK, UNLOCK support.
%files module-dav-ext
%{_libdir}/angie/modules/ngx_http_dav_ext_module.so
%{_libdir}/angie/modules/ngx_http_dav_ext_module-debug.so
%doc module-dav-ext/README
%license module-dav-ext/LICENSE
%post module-dav-ext
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The dav-ext dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_dav_ext_module.so;
Please refer to the modules documentation for further details:
https://github.com/arut/nginx-dav-ext-module
----------------------------------------------------------------------
BANNER
fi
%package module-dynamic-limit-req
Summary: Angie dynamic-limit-req dynamic module
BuildRequires: hiredis-devel
Requires: angie = %{version}-%{release}
%description module-dynamic-limit-req
Module is used to dynamically lock IP and release it periodically.
%files module-dynamic-limit-req
%{_libdir}/angie/modules/ngx_http_dynamic_limit_req_module.so
%{_libdir}/angie/modules/ngx_http_dynamic_limit_req_module-debug.so
%doc module-dynamic-limit-req/README
%license module-dynamic-limit-req/LICENSE
%post module-dynamic-limit-req
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The dynamic-limit-req dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_dynamic_limit_req_module.so;
Please refer to the modules documentation for further details:
https://github.com/limithit/ngx_dynamic_limit_req_module
----------------------------------------------------------------------
BANNER
fi
%package module-echo
Summary: Angie echo dynamic module
Requires: angie = %{version}-%{release}
%description module-echo
Module brings "echo", "sleep", "time", "exec" and more shell-style goodies to config file.
%files module-echo
%{_libdir}/angie/modules/ngx_http_echo_module.so
%{_libdir}/angie/modules/ngx_http_echo_module-debug.so
%doc module-echo/README
%license module-echo/LICENSE
%post module-echo
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The echo dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_echo_module.so;
Please refer to the module documentation for further details:
https://github.com/openresty/echo-nginx-module
----------------------------------------------------------------------
BANNER
fi
%package module-enhanced-memcached
Summary: Angie enhanced-memcached dynamic module
Requires: angie = %{version}-%{release}
%description module-enhanced-memcached
Module is used to obtain responses from a memcached server.
%files module-enhanced-memcached
%{_libdir}/angie/modules/ngx_http_enhanced_memcached_module.so
%{_libdir}/angie/modules/ngx_http_enhanced_memcached_module-debug.so
%doc module-enhanced-memcached/README
%license module-enhanced-memcached/LICENSE
%post module-enhanced-memcached
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The enhanced memcached dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_enhanced_memcached_module.so;
Please refer to the module documentation for further details:
https://github.com/bpaquet/ngx_http_enhanced_memcached_module
----------------------------------------------------------------------
BANNER
fi
%package module-eval
Summary: Angie eval dynamic module
Requires: angie = %{version}-%{release}
%description module-eval
This module captures subrequest response bodies into NGINX variables.
%files module-eval
%{_libdir}/angie/modules/ngx_http_eval_module.so
%{_libdir}/angie/modules/ngx_http_eval_module-debug.so
%doc module-eval/README
%license module-eval/LICENSE
%post module-eval
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The eval dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_eval_module.so;
Please refer to the modules documentation for further details:
https://github.com/openresty/nginx-eval-module
----------------------------------------------------------------------
BANNER
fi
%package module-geoip2
Summary: Angie GeoIP2 dynamic module
BuildRequires: libmaxminddb-devel
Requires: angie = %{version}-%{release}
%description module-geoip2
Module captures information from the client IP address in variables,
using the MaxMind GeoIP2 databases.
%files module-geoip2
%{_libdir}/angie/modules/ngx_http_geoip2_module.so
%{_libdir}/angie/modules/ngx_http_geoip2_module-debug.so
%{_libdir}/angie/modules/ngx_stream_geoip2_module.so
%{_libdir}/angie/modules/ngx_stream_geoip2_module-debug.so
%doc module-geoip2/README
%license module-geoip2/LICENSE
%post module-geoip2
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The GeoIP2 dynamic modules for Angie have been installed.
To enable these modules, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_geoip2_module.so;
load_module modules/ngx_stream_geoip2_module.so;
Please refer to the modules documentation for further details:
https://github.com/leev/ngx_http_geoip2_module
----------------------------------------------------------------------
BANNER
fi
%package module-headers-more
Summary: Angie headers-more dynamic module
Requires: angie = %{version}-%{release}
%description module-headers-more
Module allows to set and clear input and output headers for Angie.
%files module-headers-more
%{_libdir}/angie/modules/ngx_http_headers_more_filter_module.so
%{_libdir}/angie/modules/ngx_http_headers_more_filter_module-debug.so
%doc module-headers-more/README
%license module-headers-more/LICENSE
%post module-headers-more
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The headers-more dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_headers_more_filter_module.so;
Please refer to the modules documentation for further details:
https://github.com/openresty/headers-more-nginx-module/
----------------------------------------------------------------------
BANNER
fi
%package module-image-filter
Summary: Angie image-filter dynamic module
BuildRequires: gd-devel
Requires: angie = %{version}-%{release}
%description module-image-filter
Module is a filter that transforms images in JPEG, GIF, PNG, and WebP formats.
%files module-image-filter
%{_libdir}/angie/modules/ngx_http_image_filter_module.so
%{_libdir}/angie/modules/ngx_http_image_filter_module-debug.so
%doc module-image-filter/README
%license LICENSE
%post module-image-filter
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The image-filter dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_image_filter_module.so;
Please refer to the modules documentation for further details:
https://angie.software/http_image_filter/
----------------------------------------------------------------------
BANNER
fi
%package module-jwt
Summary: Angie JWT dynamic module
BuildRequires: jansson-devel
BuildRequires: libjwt-devel
Requires: angie = %{version}-%{release}
Conflicts: angie-module-auth-jwt
%description module-jwt
Module provides JWT validity check functionality for Angie.
%files module-jwt
%dir %{_libdir}/angie/modules/max-lt
%{_libdir}/angie/modules/max-lt/ngx_http_auth_jwt_module.so
%{_libdir}/angie/modules/max-lt/ngx_http_auth_jwt_module-debug.so
%doc module-jwt/README
%license module-jwt/LICENSE
%post module-jwt
if [ $1 -eq 1 ]; then
if [ ! -e %{_libdir}/angie/modules/ngx_http_auth_jwt_module.so ]; then
ln -fs max-lt/ngx_http_auth_jwt_module.so \
%{_libdir}/angie/modules/ngx_http_auth_jwt_module.so
fi
cat <<BANNER
----------------------------------------------------------------------
The jwt dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_auth_jwt_module.so;
Please refer to the module documentation for further details:
https://github.com/max-lt/nginx-jwt-module
----------------------------------------------------------------------
BANNER
fi
%preun module-jwt
if [ $1 -eq 0 ]; then
if [ -L %{_libdir}/angie/modules/ngx_http_auth_jwt_module.so ]; then
rm %{_libdir}/angie/modules/ngx_http_auth_jwt_module.so
fi
fi
%package module-keyval
Summary: Angie keyval dynamic module
BuildRequires: hiredis-devel
Requires: angie = %{version}-%{release}
%description module-keyval
This Angie module creates variables with values taken
from key-value pairs.
%files module-keyval
%{_libdir}/angie/modules/ngx_http_keyval_module.so
%{_libdir}/angie/modules/ngx_http_keyval_module-debug.so
%doc module-keyval/README
%license module-keyval/LICENSE
%post module-keyval
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The keyval dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_keyval_module.so;
Please refer to the modules documentation for further details:
https://github.com/kjdev/nginx-keyval
----------------------------------------------------------------------
BANNER
fi
%package module-lua
Summary: Angie Lua dynamic module
Requires: angie = %{version}-%{release}
Requires: angie-module-ndk = %{version}-%{release}
%description module-lua
Module embeds the power of Lua into Angie HTTP/STREAM Servers.
%files module-lua
%{_datadir}/angie/luajit
%{_libdir}/angie/luajit
%{_libdir}/angie/modules/ngx_http_lua_module.so
%{_libdir}/angie/modules/ngx_http_lua_module-debug.so
%{_libdir}/angie/modules/ngx_stream_lua_module.so
%{_libdir}/angie/modules/ngx_stream_lua_module-debug.so
%doc module-lua/README
%license module-lua/LICENSE
%post module-lua
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The Lua dynamic modules for Angie have been installed.
To enable these modules, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ndk_http_module.so;
load_module modules/ngx_http_lua_module.so;
load_module modules/ngx_stream_lua_module.so;
Please refer to the modules documentation for further details:
https://github.com/openresty/lua-nginx-module
https://github.com/openresty/stream-lua-nginx-module
----------------------------------------------------------------------
BANNER
fi
%package module-modsecurity
Summary: Angie modsecurity dynamic module
BuildRequires: cmake
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: libmaxminddb-devel
BuildRequires: libtool
BuildRequires: lmdb-devel
BuildRequires: lua-devel
BuildRequires: m4
BuildRequires: libstdc++-static
BuildRequires: yajl-devel
Requires: angie = %{version}-%{release}
%description module-modsecurity
The ModSecurity-nginx connector is the connection point between Angie
and libmodsecurity (ModSecurity v3). ModSecurity is an open source, cross
platform web application firewall (WAF) engine for Apache, IIS and Nginx
that is developed by Trustwave SpiderLabs.
%files module-modsecurity
%dir %{_sysconfdir}/angie/modsecurity
%config(noreplace) %{_sysconfdir}/angie/modsecurity/modsecurity.conf
%config(noreplace) %{_sysconfdir}/angie/modsecurity/rules.conf
%config(noreplace) %{_sysconfdir}/angie/modsecurity/unicode.mapping
%config(noreplace) %{_sysconfdir}/logrotate.d/angie-module-modsecurity
%{_libdir}/angie/modules/ngx_http_modsecurity_module.so
%{_libdir}/angie/modules/ngx_http_modsecurity_module-debug.so
%dir %{_var}/lib/angie/modsecurity
%doc module-modsecurity/README
%license module-modsecurity/LICENSE
%pre module-modsecurity
# install:1, upgrade:2
if [ $1 -eq 1 ]; then
if [ ! -e %{_var}/log/angie/modsecurity ]; then
install -d -m 755 -o root -g root %{_var}/log/angie/modsecurity || :
fi
if [ ! -e %{_var}/log/angie/modsecurity/concurrent ]; then
install -d -m 755 -o angie -g angie %{_var}/log/angie/modsecurity/concurrent || :
fi
fi
%post module-modsecurity
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The ModSecurity dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_modsecurity_module.so;
Please refer to the module documentation for further details:
https://github.com/owasp-modsecurity/ModSecurity-nginx
----------------------------------------------------------------------
BANNER
fi
%preun module-modsecurity
# uninstall:0, upgrade:1
%systemd_preun angie.service
if [ $1 -eq 0 ]; then
if [ -d %{_var}/log/angie/modsecurity/concurrent ]; then
rmdir %{_var}/log/angie/modsecurity/concurrent 2>/dev/null || :
fi
if [ -d %{_var}/log/angie/modsecurity ]; then
rmdir %{_var}/log/angie/modsecurity 2>/dev/null || :
fi
fi
%package module-ndk
Summary: Angie NDK dynamic module
Requires: angie = %{version}-%{release}
%description module-ndk
Module is designed to extend the Angie core functionality.
%files module-ndk
%{_libdir}/angie/modules/ndk_http_module.so
%{_libdir}/angie/modules/ndk_http_module-debug.so
%doc module-ndk/README
%license module-ndk/LICENSE
%post module-ndk
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The ndk dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ndk_http_module;
Please refer to the modules documentation for further details:
https://github.com/vision5/ngx_devel_kit
----------------------------------------------------------------------
BANNER
fi
%package module-njs
Summary: Angie NJS dynamic module
Requires: angie = %{version}-%{release}
%description module-njs
Module is a subset of the JavaScript language that allows extending
Angie functionality.
%files module-njs
%{_libdir}/angie/modules/ngx_http_js_module.so
%{_libdir}/angie/modules/ngx_http_js_module-debug.so
%{_libdir}/angie/modules/ngx_stream_js_module.so
%{_libdir}/angie/modules/ngx_stream_js_module-debug.so
%doc module-njs/README
%license module-njs/LICENSE
%post module-njs
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The njs dynamic modules for Angie have been installed.
To enable these modules, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_js_module.so;
load_module modules/ngx_stream_js_module.so;
Please refer to the njs documentation for further details:
https://github.com/nginx/njs
https://angie.software/js_reference/
https://angie.software/http_js/
https://angie.software/stream_js/
----------------------------------------------------------------------
BANNER
fi
%package module-njs-cli
Summary: Angie NJS CLI dynamic module
BuildRequires: libedit-devel
%description module-njs-cli
Command-line interface for Angie NJS.
%files module-njs-cli
%{_bindir}/njs
%doc module-njs/README
%license module-njs/LICENSE
%post module-njs-cli
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The njs CLI for Angie has been installed.
Please refer to the njs documentation for further details:
https://angie.software/js_reference/
----------------------------------------------------------------------
BANNER
fi
%package module-opentracing
Summary: Angie OpenTracing dynamic module
BuildRequires: cmake
BuildRequires: libstdc++-static
Requires: angie = %{version}-%{release}
%description module-opentracing
Module is used to enable requests served by nginx for distributed tracing
via The OpenTracing Project.
%files module-opentracing
%{_libdir}/angie/modules/libdd_opentracing_plugin.so
%{_libdir}/angie/modules/libzipkin_opentracing_plugin.so
%{_libdir}/angie/modules/ngx_http_opentracing_module.so
%{_libdir}/angie/modules/ngx_http_opentracing_module-debug.so
%doc module-opentracing/README
%license module-opentracing/LICENSE
%post module-opentracing
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The opentracing dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_opentracing_module.so;
Please refer to the module documentation for further details:
https://github.com/opentracing-contrib/nginx-opentracing
Please refer to the plugins documentation for further details:
https://github.com/opentracing-contrib/nginx-opentracing/tree/master/example/trivial
----------------------------------------------------------------------
BANNER
fi
%package module-otel
Summary: Angie OpenTelemetry dynamic module
BuildRequires: cmake
BuildRequires: libstdc++-static
Requires: angie = %{version}-%{release}
%description module-otel
Module is used to send telemetry data to an OTel collector. It provides support for W3C trace
context propagation, OpenTelemetry Protocol (OTLP)/gRPC trace exports and offers several
benefits over exiting OTel modules.
%files module-otel
%{_libdir}/angie/modules/ngx_otel_module.so
%doc module-otel/README
%license module-otel/LICENSE
%post module-otel
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The opentelemetry dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_otel_module.so;
Please refer to the module documentation for further details:
https://github.com/nginxinc/nginx-otel
----------------------------------------------------------------------
BANNER
fi
%package module-perl
Summary: Angie Perl dynamic module
BuildRequires: perl-devel
Requires: angie = %{version}-%{release}
%description module-perl
Module is used to implement location and variable handlers in Perl and insert
Perl calls into SSI.
%files module-perl
%{_libdir}/angie/modules/ngx_http_perl_module.so
%{_libdir}/angie/modules/ngx_http_perl_module-debug.so
%{perl_vendorarch}/auto/nginx
%{perl_vendorarch}/nginx.pm
%{_mandir}/man3/nginx.3pm.gz
%doc module-perl/README
%license LICENSE
%post module-perl
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The Perl dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_perl_module.so;
Please refer to the modules documentation for further details:
https://angie.software/http_perl/
----------------------------------------------------------------------
BANNER
fi
%package module-postgres
Summary: Angie PostgreSQL dynamic module
BuildRequires: libpq-devel
Requires: angie = %{version}-%{release}
%description module-postgres
Module that allows angie to communicate directly with PostgreSQL database.
%files module-postgres
%{_libdir}/angie/modules/ngx_postgres_module.so
%{_libdir}/angie/modules/ngx_postgres_module-debug.so
%doc module-postgres/README
%license module-postgres/LICENSE
%post module-postgres
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The postgres dynamic modules for Angie have been installed.
To enable these modules, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_postgres_module.so;
Please refer to the modules documentation for further details:
https://github.com/FRiCKLE/ngx_postgres
----------------------------------------------------------------------
BANNER
fi
%package module-redis2
Summary: Angie Redis 2 dynamic module
Requires: angie = %{version}-%{release}
%description module-redis2
Module makes Angie talk to a Redis 2.x server in a non-blocking way.
%files module-redis2
%{_libdir}/angie/modules/ngx_http_redis2_module.so
%{_libdir}/angie/modules/ngx_http_redis2_module-debug.so
%doc module-redis2/README
%license module-redis2/LICENSE
%post module-redis2
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The redis2 dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_redis2_module.so;
Please refer to the module documentation for further details:
https://github.com/openresty/redis2-nginx-module
----------------------------------------------------------------------
BANNER
fi
%package module-rtmp
Summary: Angie RTMP dynamic module
Requires: angie = %{version}-%{release}
%description module-rtmp
Module provides HLS and MPEG-DASH live streaming capabilities.
%files module-rtmp
%{_libdir}/angie/modules/ngx_rtmp_module.so
%{_libdir}/angie/modules/ngx_rtmp_module-debug.so
%doc module-rtmp/README
%license module-rtmp/LICENSE
%post module-rtmp
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The RTMP dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_rtmp_module.so;
Please refer to the module documentation for further details:
https://github.com/arut/nginx-rtmp-module
----------------------------------------------------------------------
BANNER
fi
%package module-set-misc
Summary: Angie set-misc dynamic module
Requires: angie = %{version}-%{release}
Requires: angie-module-ndk = %{version}-%{release}
%description module-set-misc
Module implements numerous additional set_* directives extending
Angie core rewrite module.
%files module-set-misc
%{_libdir}/angie/modules/ngx_http_set_misc_module.so
%{_libdir}/angie/modules/ngx_http_set_misc_module-debug.so
%doc module-set-misc/README
%license module-set-misc/LICENSE
%post module-set-misc
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The set-misc dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ndk_http_module.so;
load_module modules/ngx_http_set_misc_module.so;
Please refer to the modules documentation for further details:
https://github.com/openresty/set-misc-nginx-module
----------------------------------------------------------------------
BANNER
fi
%package module-subs
Summary: Angie substitutions dynamic module
Requires: angie = %{version}-%{release}
%description module-subs
Module performs both regular expression and fixed string
substitutions on response bodies.
%files module-subs
%{_libdir}/angie/modules/ngx_http_subs_filter_module.so
%{_libdir}/angie/modules/ngx_http_subs_filter_module-debug.so
%doc module-subs/README
%license module-subs/LICENSE
%post module-subs
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The substitutions dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_subs_filter_module.so;
Please refer to the module documentation for further details:
https://github.com/yaoweibin/ngx_http_substitutions_filter_module
----------------------------------------------------------------------
BANNER
fi
%package module-testcookie
Summary: Angie testcookie dynamic module
Requires: angie = %{version}-%{release}
%description module-testcookie
This Angie module is a simple robot mitigation
module using cookie based challenge/response.
%files module-testcookie
%{_libdir}/angie/modules/ngx_http_testcookie_access_module.so
%{_libdir}/angie/modules/ngx_http_testcookie_access_module-debug.so
%doc module-testcookie/README
%license module-testcookie/LICENSE
%post module-testcookie
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The testcookie dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_testcookie_access_module.so;
Please refer to the modules documentation for further details:
https://github.com/kyprizel/testcookie-nginx-module
----------------------------------------------------------------------
BANNER
fi
%package module-upload
Summary: Angie upload dynamic module
Requires: angie = %{version}-%{release}
%description module-upload
Module parses request body storing all files being uploaded to a directory.
%files module-upload
%{_libdir}/angie/modules/ngx_http_upload_module.so
%{_libdir}/angie/modules/ngx_http_upload_module-debug.so
%doc module-upload/README
%license module-upload/LICENSE
%post module-upload
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The upload dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_upload_module.so;
Please refer to the module documentation for further details:
https://github.com/fdintino/nginx-upload-module
----------------------------------------------------------------------
BANNER
fi
%package module-vod
Summary: Angie VOD dynamic module
BuildRequires: ffmpeg-devel
Requires: angie = %{version}-%{release}
%description module-vod
Module allows on-the-fly repackaging of MP4 files to DASH, HDS, HLS, MSS.
%files module-vod
%{_libdir}/angie/modules/ngx_http_vod_module.so
%{_libdir}/angie/modules/ngx_http_vod_module-debug.so
%doc module-vod/README
%license module-vod/LICENSE
%post module-vod
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The VOD dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_vod_module.so;
Please refer to the module documentation for further details:
https://github.com/kaltura/nginx-vod-module
----------------------------------------------------------------------
BANNER
fi
%package module-vts
Summary: Angie vts dynamic module
Requires: angie = %{version}-%{release}
%description module-vts
Module provides virtual host traffic status
%files module-vts
%{_datadir}/angie-module-vts
%{_libdir}/angie/modules/ngx_http_stream_server_traffic_status_module.so
%{_libdir}/angie/modules/ngx_http_stream_server_traffic_status_module-debug.so
%{_libdir}/angie/modules/ngx_http_vhost_traffic_status_module.so
%{_libdir}/angie/modules/ngx_http_vhost_traffic_status_module-debug.so
%{_libdir}/angie/modules/ngx_stream_server_traffic_status_module.so
%{_libdir}/angie/modules/ngx_stream_server_traffic_status_module-debug.so
%doc module-vts/README
%license module-vts/LICENSE
%post module-vts
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The vts dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_stream_server_traffic_status_module.so;
load_module modules/ngx_http_vhost_traffic_status_module.so;
load_module modules/ngx_stream_server_traffic_status_module.so;
Please refer to the module documentation for further details:
https://github.com/vozlt/nginx-module-vts
https://github.com/vozlt/nginx-module-stream-sts
https://github.com/vozlt/nginx-module-sts
----------------------------------------------------------------------
BANNER
fi
%package module-xslt
Summary: Angie XSLT dynamic module
BuildRequires: libxslt-devel
Requires: angie = %{version}-%{release}
%description module-xslt
Module is a filter that transforms XML responses using XSLT stylesheets.
%files module-xslt
%{_libdir}/angie/modules/ngx_http_xslt_filter_module.so
%{_libdir}/angie/modules/ngx_http_xslt_filter_module-debug.so
%doc module-xslt/README
%license LICENSE
%post module-xslt
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The XSLT dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_xslt_filter_module.so;
Please refer to the modules documentation for further details:
https://angie.software/http_xslt/
----------------------------------------------------------------------
BANNER
fi
%package module-zip
Summary: Angie ZIP dynamic module
Requires: angie = %{version}-%{release}
%description module-zip
Module assembles component files from upstream servers response into ZIP archives dynamically.
%files module-zip
%{_libdir}/angie/modules/ngx_http_zip_module.so
%{_libdir}/angie/modules/ngx_http_zip_module-debug.so
%doc module-zip/README
%license module-zip/LICENSE
%post module-zip
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The zip dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_zip_module.so;
Please refer to the module documentation for further details:
https://github.com/evanmiller/mod_zip
----------------------------------------------------------------------
BANNER
fi
%package module-zstd
Summary: Angie module for the Zstandard compression
Requires: angie = %{version}-%{release}
%description module-zstd
Module is a filter that compresses responses using the "zstd" method.
This often helps to reduce the size of transmitted data by half or even more.
%files module-zstd
%{_libdir}/angie/modules/ngx_http_zstd_filter_module.so
%{_libdir}/angie/modules/ngx_http_zstd_filter_module-debug.so
%{_libdir}/angie/modules/ngx_http_zstd_static_module.so
%{_libdir}/angie/modules/ngx_http_zstd_static_module-debug.so
%doc module-zstd/README
%license module-zstd/LICENSE
%post module-zstd
if [ $1 -eq 1 ]; then
cat <<BANNER
----------------------------------------------------------------------
The Zstandard compression dynamic module for Angie has been installed.
To enable this module, add the following to /etc/angie/angie.conf
and reload angie:
load_module modules/ngx_http_zstd_filter_module.so;
load_module modules/ngx_http_zstd_static_module.so;
Please refer to the module documentation for further details:
https://github.com/tokers/zstd-nginx-module
----------------------------------------------------------------------
BANNER
fi
%changelog
* Sat Aug 31 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 1.6.2-1
- Rebuilt for MSVSphere 9.4
* Fri Aug 16 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.6.2-1
- Release 1.6.2
* Wed Aug 07 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.6.1-1
- Release 1.6.1
- Updated angie-module-opentracing to v0.35.3
- Updated angie-module-zstd to f4ba115e0b0eaecde545e5f37db6aa18917d8f4b
* Thu Jun 27 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.6.0-1
- Release 1.6.0
- Updated angie-module-auth-jwt to 0.7.0
- Updated angie-module-auth-ldap to 241200eac8e4acae74d353291bd27f79e5ca3dc4
- Updated angie-module-jwt to 3.4.1
- Updated angie-module-keyval to 0.3.0
- Updated angie-module-njs to 0.8.5
* Mon Jun 03 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.5.2-1
- Release 1.5.2
- Updated angie-module-opentracing to 0.35.2
* Wed May 15 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.5.1-1
- Release 1.5.1
* Wed Apr 24 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.5.0-3
- Added angie-module-vts
* Tue Apr 16 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.5.0-2
- Added angie-module-zstd
- Updated angie-module-njs to 0.8.4
* Mon Mar 25 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.5.0-1
- Release 1.5.0
- Added angie-module-otel
- Updated angie-module-jwt to v3.4.0
* Thu Feb 15 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.4.1-1
- Release 1.4.1
- Added angie-module-dynamic-limit-req
- Updated angie-module-njs to 0.8.3
- Updated angie-module-vod to 1.33
* Mon Jan 22 2024 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.4.0-3
- Added angie-module-zip ver. 1.3.0
- Updated angie-module-auth-jwt to 0.6.0
- Updated angie-module-headers-more to 0.37
- Updated angie-module-lua to 0.10.26
- Updated angie-module-modsecurity to 3.0.11
* Tue Dec 12 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.4.0-2
- Added missed distribution file for angie-module-auth-ldap into SRPM
* Mon Dec 11 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.4.0-1
- Release 1.4.0
- Added angie-module-auth-ldap
- Updated angie-module-auth-jwt to 0.4.0
- Updated angie-module-headers-more to 0.36
- Updated angie-module-ndk to 0.3.3
- Updated angie-module-opentracing to 0.33.0
* Fri Dec 1 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.3.2-2
- Added angie-module-modsecurity
* Wed Nov 22 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.3.2-1
- Release 1.3.2
* Mon Nov 13 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.3.1-3
- Added angie-module-testcookie
- Updated angie-module-headers-more to 0.35
- Updated angie-module-njs to 0.8.2
- Updated angie-module-vod to 1.32
* Thu Oct 26 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.3.1-2
- Added angie-module-opentracing
* Tue Oct 17 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.3.1-1
- Release 1.3.1
* Thu Sep 21 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.3.0-2
- Moved angie/http.d/prometheus.conf.sample to angie/prometheus_all.conf
* Tue Sep 19 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.3.0-1
- Release 1.3.0
- Updated angie-module-keyval to 0.2.0
- Updated angie-module-lua to 0.10.25
- Updated angie-module-njs to 0.8.1
* Wed Aug 30 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.2.0-5
- Added filetrigger for ALT Linux
* Thu Aug 17 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.2.0-4
- Added angie-module-enhanced-memcached
- Added angie-module-eval
* Thu Jul 27 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.2.0-3
- Added angie-module-auth-jwt
- Updated angie-module-jwt to 3.2.2
* Mon Jul 17 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.2.0-2
- Added angie-module-cache-purge
- Added angie-module-echo
- Added angie-module-keyval
- Added angie-module-postgresql
- Updated angie-module-njs to 0.8.0
- Updated angie-module-njs-cli to 0.8.0
* Tue May 30 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.2.0-1
- Release 1.2.0
- Added angie-module-lua
- Added angie-module-redis2
* Wed May 10 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.1.0-3
- Added angie-module-jwt
- Added angie-module-subs
- Added angie-module-upload
- Added angie-module-vod
- Updated angie-module-njs to 0.7.12
- Updated angie-module-njs-cli to 0.7.12
* Fri Mar 10 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.1.0-2
- Added angie-module-auth-spnego
- Added angie-module-brotli
- Added angie-module-dav-ext
- Added angie-module-headers-more
- Added angie-module-ndk
- Added angie-module-rtmp
- Added angie-module-set-misc
- Updated angie-module-njs to 0.7.11
- Separate angie-module-njs-cli package
* Wed Jan 25 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.1.0-1
- Release 1.1.0
* Fri Jan 13 2023 Release Engineering Team <devops@tech.wbsrv.ru> - angie-1.0.0-1
- new version 1.0.0