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

Reply via email to