Source: nginx Version: 1.9.6-2 Severity: wishlist introduce build flavour "standard"
* introduce "standard" build: only vanilla source, no 3rd-party modules at all. reason: Nginx Inc. provides support only for vanilla-based build. * provide packages: "nginx-standard" and "nginx-standard-dbg". * make "nginx-standard" as default/first choice when installing "nginx" meta-package. * fix other package dependencies (mostly "Conflicts") Signed-off-by: Konstantin Demin <rockdri...@gmail.com> --- debian/control | 72 ++++++++++++++++++++++++++------- debian/nginx-common.preinst | 2 + debian/nginx-standard.dirs | 1 + debian/nginx-standard.install | 1 + debian/nginx-standard.lintian-overrides | 1 + debian/nginx-standard.manpages | 1 + debian/nginx-standard.postinst | 37 +++++++++++++++++ debian/nginx-standard.prerm | 22 ++++++++++ debian/rules | 25 +++++++++++- debian/tests/control | 3 ++ 10 files changed, 150 insertions(+), 15 deletions(-) create mode 100644 debian/nginx-standard.dirs create mode 100644 debian/nginx-standard.install create mode 100644 debian/nginx-standard.lintian-overrides create mode 100644 debian/nginx-standard.manpages create mode 100644 debian/nginx-standard.postinst create mode 100644 debian/nginx-standard.prerm diff --git a/debian/control b/debian/control index de705d4..865a64d 100644 --- a/debian/control +++ b/debian/control @@ -31,12 +31,14 @@ Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/nginx.git;a=summar Package: nginx Architecture: all -Depends: nginx-full (>= ${source:Version}) | - nginx-light (>= ${source:Version}) | - nginx-extras (>= ${source:Version}) , - nginx-full (<< ${source:Version}.1~) | - nginx-light (<< ${source:Version}.1~) | - nginx-extras (<< ${source:Version}.1~) , +Depends: nginx-standard (>= ${source:Version}) | + nginx-light (>= ${source:Version}) | + nginx-full (>= ${source:Version}) | + nginx-extras (>= ${source:Version}) , + nginx-standard (<< ${source:Version}.1~) | + nginx-light (<< ${source:Version}.1~) | + nginx-full (<< ${source:Version}.1~) | + nginx-extras (<< ${source:Version}.1~) , ${misc:Depends} Description: small, powerful, scalable web/proxy server Nginx ("engine X") is a high-performance web and reverse proxy server @@ -63,11 +65,13 @@ Depends: lsb-base (>= 3.2-14), ${misc:Depends}, python Replaces: nginx (<< 0.8.54-4), nginx-extras (<< 0.8.54-4), nginx-full (<< 0.8.54-4), - nginx-light (<< 0.8.54-4) + nginx-light (<< 0.8.54-4), + nginx-standard (<< 0.8.54-4) Breaks: nginx (<< 0.8.54-4), nginx-extras (<< 0.8.54-4), nginx-full (<< 0.8.54-4), - nginx-light (<< 0.8.54-4) + nginx-light (<< 0.8.54-4), + nginx-standard (<< 0.8.54-4) Suggests: fcgiwrap, nginx-doc, ssl-cert Description: small, powerful, scalable web/proxy server - common files Nginx ("engine X") is a high-performance web and reverse proxy server @@ -77,12 +81,52 @@ Description: small, powerful, scalable web/proxy server - common files This package contains base configuration files used by all versions of nginx. +Package: nginx-standard +Architecture: any +Depends: nginx-common (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} +Breaks: nginx (<< 1.4.5-1) +Provides: httpd, httpd-cgi, nginx +Conflicts: nginx-light, nginx-full, nginx-extras +Suggests: nginx-doc (= ${source:Version}) +Description: nginx web/proxy server (standard version) + Nginx ("engine X") is a high-performance web and reverse proxy server + created by Igor Sysoev. It can be used both as a standalone web server + and as a proxy to reduce the load on back-end HTTP or mail servers. + . + This package provides a standard version of nginx with the standard modules. + . + STANDARD HTTP MODULES: Core, Access, Auth Basic, Auto Index, Browser, Empty + GIF, FastCGI, Geo, Limit Connections, Limit Requests, Map, Memcached, Proxy, + Referer, Rewrite, SCGI, Split Clients, UWSGI. + . + OPTIONAL HTTP MODULES: Addition, Auth Request, Charset, WebDAV, FLV, GeoIP, + Gunzip, Gzip, Gzip Precompression, Headers, Image Filter, Index, Log, MP4, + Random Index, Real IP, Secure Link, HTTP/2, SSI, SSL, Stream, + Stub Status, Substitution, Thread Pool, Upstream, User ID, XSLT, Degradation. + . + MAIL MODULES: Mail Core, Auth HTTP, Proxy, SSL, IMAP, POP3, SMTP. + +Package: nginx-standard-dbg +Architecture: any +Section: debug +Priority: extra +Depends: nginx-standard (= ${binary:Version}), ${misc:Depends} +Conflicts: nginx-light-dbg, nginx-full-dbg, nginx-extras-dbg +Description: nginx web/proxy server (standard version) - debugging symbols + Nginx ("engine X") is a high-performance web and reverse proxy server + created by Igor Sysoev. It can be used both as a standalone web server + and as a proxy to reduce the load on back-end HTTP or mail servers. + . + This package provides debugging symbols for nginx-standard, to assist in + debugging issues that you may find. It should not be required for normal + operation. + Package: nginx-full Architecture: any Depends: nginx-common (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} Breaks: nginx (<< 1.4.5-1) Provides: httpd, httpd-cgi, nginx -Conflicts: nginx-extras, nginx-light +Conflicts: nginx-standard, nginx-light, nginx-extras Suggests: nginx-doc (= ${source:Version}) Description: nginx web/proxy server (standard version) Nginx ("engine X") is a high-performance web and reverse proxy server @@ -112,7 +156,7 @@ Architecture: any Section: debug Priority: extra Depends: nginx-full (= ${binary:Version}), ${misc:Depends} -Conflicts: nginx-extras-dbg, nginx-light-dbg +Conflicts: nginx-standard-dbg, nginx-light-dbg, nginx-extras-dbg Description: nginx web/proxy server (standard version) - debugging symbols Nginx ("engine X") is a high-performance web and reverse proxy server created by Igor Sysoev. It can be used both as a standalone web server @@ -127,7 +171,7 @@ Priority: extra Depends: nginx-common (= ${source:Version}), ${misc:Depends}, ${shlibs:Depends} Breaks: nginx (<< 1.4.5-1) Provides: httpd, httpd-cgi, nginx -Conflicts: nginx-extras, nginx-full +Conflicts: nginx-standard, nginx-full, nginx-extras Suggests: nginx-doc (= ${source:Version}) Description: nginx web/proxy server (basic version) Nginx ("engine X") is a high-performance web and reverse proxy server @@ -150,7 +194,7 @@ Architecture: any Section: debug Priority: extra Depends: nginx-light (= ${binary:Version}), ${misc:Depends} -Conflicts: nginx-extras-dbg, nginx-full-dbg +Conflicts: nginx-standard-dbg, nginx-full-dbg, nginx-extras-dbg Description: nginx web/proxy server (basic version) - debugging symbols Nginx ("engine X") is a high-performance web and reverse proxy server created by Igor Sysoev. It can be used both as a standalone web server @@ -169,7 +213,7 @@ Depends: nginx-common (= ${source:Version}), ${shlibs:Depends} Breaks: nginx (<< 1.4.5-1) Provides: httpd, httpd-cgi, nginx -Conflicts: nginx-full, nginx-light +Conflicts: nginx-standard, nginx-light, nginx-full Suggests: nginx-doc (= ${source:Version}) Description: nginx web/proxy server (extended version) Nginx ("engine X") is a high-performance web and reverse proxy server @@ -200,7 +244,7 @@ Architecture: any Section: debug Priority: extra Depends: nginx-extras (= ${binary:Version}), ${misc:Depends} -Conflicts: nginx-full-dbg, nginx-light-dbg +Conflicts: nginx-standard-dbg, nginx-light-dbg, nginx-full-dbg Description: nginx web/proxy server (extended version) - debugging symbols Nginx ("engine X") is a high-performance web and reverse proxy server created by Igor Sysoev. It can be used both as a standalone web server diff --git a/debian/nginx-common.preinst b/debian/nginx-common.preinst index 037c80f..7c17da9 100644 --- a/debian/nginx-common.preinst +++ b/debian/nginx-common.preinst @@ -15,6 +15,7 @@ case "$1" in install) # If we are doing a fresh install, then these files are no longer needed. # They were around for a very short time and are best simply removed. + rm -f /etc/logrotate.d/nginx-standard rm -f /etc/logrotate.d/nginx-full rm -f /etc/logrotate.d/nginx-light rm -f /etc/logrotate.d/nginx-extras @@ -27,6 +28,7 @@ case "$1" in rm -f /etc/ufw/applications.d/nginx/ufw.profile rmdir /etc/ufw/applications.d/nginx fi + rm -f /etc/logrotate.d/nginx-standard rm -f /etc/logrotate.d/nginx-full rm -f /etc/logrotate.d/nginx-light rm -f /etc/logrotate.d/nginx-extras diff --git a/debian/nginx-standard.dirs b/debian/nginx-standard.dirs new file mode 100644 index 0000000..236670a --- /dev/null +++ b/debian/nginx-standard.dirs @@ -0,0 +1 @@ +usr/sbin diff --git a/debian/nginx-standard.install b/debian/nginx-standard.install new file mode 100644 index 0000000..568d979 --- /dev/null +++ b/debian/nginx-standard.install @@ -0,0 +1 @@ +debian/build-standard/objs/nginx usr/sbin diff --git a/debian/nginx-standard.lintian-overrides b/debian/nginx-standard.lintian-overrides new file mode 100644 index 0000000..17c36eb --- /dev/null +++ b/debian/nginx-standard.lintian-overrides @@ -0,0 +1 @@ +nginx-standard: spelling-error-in-binary usr/sbin/nginx tEH the diff --git a/debian/nginx-standard.manpages b/debian/nginx-standard.manpages new file mode 100644 index 0000000..f818566 --- /dev/null +++ b/debian/nginx-standard.manpages @@ -0,0 +1 @@ +debian/build-standard/objs/nginx.8 diff --git a/debian/nginx-standard.postinst b/debian/nginx-standard.postinst new file mode 100644 index 0000000..bd9c818 --- /dev/null +++ b/debian/nginx-standard.postinst @@ -0,0 +1,37 @@ +#!/bin/sh +set -e + +case "$1" in + abort-upgrade|abort-remove|abort-deconfigure|configure) + ;; + + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +if [ -x /etc/init.d/nginx ]; then + if [ -f /run/nginx.pid ] && pidof /usr/sbin/nginx >/dev/null; then + NGX_PID=`cat /run/nginx.pid` + if kill -s USR2 $NGX_PID 2>/dev/null; then + while [ ! -s /run/nginx.pid.oldbin ] || [ ! -s /run/nginx.pid ]; do + cnt=`expr $cnt + 1` + if [ $cnt -gt 10 ]; then + kill -s KILL $NGX_PID + invoke-rc.d nginx start + exit 0 + fi + sleep 1 + done + NGX_OLD_PID=`cat /run/nginx.pid.oldbin` + kill -s QUIT $NGX_OLD_PID + fi + else + invoke-rc.d nginx start || exit $? + fi +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/nginx-standard.prerm b/debian/nginx-standard.prerm new file mode 100644 index 0000000..a2e3838 --- /dev/null +++ b/debian/nginx-standard.prerm @@ -0,0 +1,22 @@ +#!/bin/sh +set -e + +case "$1" in + remove|remove-in-favour|deconfigure|deconfigure-in-favour) + if [ -x /etc/init.d/nginx ]; then + invoke-rc.d nginx stop || exit $? + fi + ;; + + upgrade|failed-upgrade) + ;; + + *) + echo "prerm called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/rules b/debian/rules index 1cdef59..3dbb71d 100755 --- a/debian/rules +++ b/debian/rules @@ -10,7 +10,7 @@ debian_ldflags:=$(shell dpkg-buildflags --get LDFLAGS) DEBIAN_NGINX_PERL_LDFLAGS:= $(shell DEB_BUILD_MAINT_OPTIONS=hardening=+all,-pie dpkg-buildflags --get LDFLAGS) export DEBIAN_NGINX_PERL_LDFLAGS -FLAVOURS := full light extras +FLAVOURS := standard light full extras MODULESDIR = $(CURDIR)/debian/modules BASEDIR = $(CURDIR) @@ -49,6 +49,29 @@ common_configure_flags := \ --with-http_realip_module \ --with-http_auth_request_module +standard_configure_flags := \ + $(common_configure_flags) \ + --with-http_addition_module \ + --with-http_dav_module \ + --with-http_flv_module \ + --with-http_geoip_module \ + --with-http_gzip_static_module \ + --with-http_gunzip_module \ + --with-http_image_filter_module \ + --with-http_mp4_module \ + --with-http_random_index_module \ + --with-http_secure_link_module \ + --with-http_degradation_module \ + --with-http_v2_module \ + --with-http_sub_module \ + --with-http_xslt_module \ + --with-mail \ + --with-mail_ssl_module \ + --with-stream \ + --with-stream_ssl_module \ + --with-threads \ + --with-file-aio + light_configure_flags := \ $(common_configure_flags) \ --with-http_gzip_static_module \ diff --git a/debian/tests/control b/debian/tests/control index 8d0e384..ad5dbc8 100644 --- a/debian/tests/control +++ b/debian/tests/control @@ -10,3 +10,6 @@ Test-Command: curl --silent --fail -o /dev/null -w "response_code: %{http_code}\ Restrictions: allow-stderr isolation-container Depends: nginx-extras, curl +Test-Command: curl --silent --fail -o /dev/null -w "response_code: %{http_code}\n" http://127.0.0.1/ +Restrictions: allow-stderr isolation-container +Depends: nginx-standard, curl -- 2.6.2