Bug#806779: nginx: provide vanilla-like build

2015-12-01 Thread Michael Lustfield
tags 806779 + wontfix
severity 806779 wishlist
thanks

We're not going to create yet another flavor of Nginx. I understand
why you want this. However, we already need to handle the transition
of the existing three flavors. There will not be an "nginx-modular" or
equivalent if it can be prevented.

Because Nginx will now support dynamic modules, our focus is and will
continue to be ensuring a seamless migration to it for everyone. It's
the same reason we froze new plugins. There will already be a *LOT* to
deal with. We don't need to make it more difficult than it will
already be.

As for the timing of it all; it currently looks like Debian 9 will
freeze not very long after we are expecting the dynamic module
support. If it works out, we will be on a very tight deadline. We
don't need to add to the excitement that we already have lined up.

I'm going to leave this bug open, though. It will need to be addressed
in the future; not now. This is a "Temporarily Won't Fix." For the
time being, you could use their repository if you need support.



Bug#806779: nginx: provide vanilla-like build

2015-12-01 Thread Konstantin Demin
On Tuesday 01 December 2015 14:35:43, Michael wrote:
> tags 806779 + wontfix
> severity 806779 wishlist
> thanks
> 
> We're not going to create yet another flavor of Nginx. I understand
> why you want this. However, we already need to handle the transition
> of the existing three flavors. There will not be an "nginx-modular" or
> equivalent if it can be prevented.
> 
> Because Nginx will now support dynamic modules, our focus is and will
> continue to be ensuring a seamless migration to it for everyone. It's
> the same reason we froze new plugins. There will already be a *LOT* to
> deal with. We don't need to make it more difficult than it will
> already be.
> 
> As for the timing of it all; it currently looks like Debian 9 will
> freeze not very long after we are expecting the dynamic module
> support. If it works out, we will be on a very tight deadline. We
> don't need to add to the excitement that we already have lined up.
> 
> I'm going to leave this bug open, though. It will need to be addressed
> in the future; not now. This is a "Temporarily Won't Fix." For the
> time being, you could use their repository if you need support.

Thank you for understanding my goals.
I'll be glad if further work will continue right after Release 9.
However, you might try it in experimental branch if you'll have enough time.

---
Best regards,
Konstantin Demin



Bug#806779: nginx: provide vanilla-like build

2015-12-01 Thread Konstantin Demin
tag 806779 patch

--
SY,
Konstantin Demin



Bug#806779: nginx: provide vanilla-like build

2015-12-01 Thread Christos Trochalakis

Hello Konstantin and thank you for the patch,

On Tue, Dec 01, 2015 at 11:07:34AM +0300, Konstantin Demin wrote:

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")



Since nginx is planning to add dynamic module support as part of the
1.9.x series[0], I don't think adding a new flavor is a good idea.
When that happens we will move to a single nginx core package and a
handful of satellite nginx modules.

[0] https://trac.nginx.org/nginx/milestone/1.9



Bug#806779: nginx: provide vanilla-like build

2015-12-01 Thread Konstantin Demin
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 
---
 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 

Bug#806779: nginx: provide vanilla-like build

2015-12-01 Thread Konstantin Demin
On Tuesday 01 December 2015 11:36:12, Christos Trochalakis wrote:
> Hello Konstantin and thank you for the patch,
> 
> On Tue, Dec 01, 2015 at 11:07:34AM +0300, Konstantin Demin wrote:
> >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")
> >
> 
> Since nginx is planning to add dynamic module support as part of the
> 1.9.x series[0], I don't think adding a new flavor is a good idea.
> When that happens we will move to a single nginx core package and a
> handful of satellite nginx modules.
> 
> [0] https://trac.nginx.org/nginx/milestone/1.9

Christos, thank you for information.

I've discussed with fellow nginx developer about that feature (dynamic modules) 
just after reading your e-mail.

Here are some key notes from our talk:
- feature requires building all modules at the same source tree or against same 
nginx version with same compilation flags;
- dynamic loading is optional feature for any nginx module; some modules (e.g., 
core modules) are static-compilation only;
- 3rd-party modules are required to be modified or even rewritten at all to 
support that feature; that requires more testing at all.
- implementation will take some time prior to 1.10 release; 1.10 release is 
planned in Q1 or Q2 2016.

I'm guess that feature will be production-ready not earlier than Q3.2016. Until 
then let's use standard version as well as enhanced versions (light, full and 
extras).

When nginx will become modular, I suppose that Debian Maintainers add build 
flavour with dynamic modules support (named like "nginx-modular" or so), but it 
will not replace other build flavours until feature will be well-tested.

When nginx will become _truly and fully_ modular, Debian Maintainers will 
rework source package anyway.

PS:
here is video from Nginx.conf 2015 (Sep 22-24, San Francisco) about Dynamic 
Modules development:
https://www.youtube.com/watch?v=KinJfCQ-WzY

---
SY,
Konstantin Demin