Package: nginx-extras
Version: 1.2.1-2.2
Severity: serious
Tags: patch
Justification: 6

Hi! 

When installing nginx-{naxsi,light,full,extras} the postinst scripts
create a symlink in /etc/nginx/sites-enabled/default from
/etc/nginx/sites-available/default if /etc/nginx/sites-enabled/default
doesn't exist. This script does not check if /etc/nginx/sites-enabled or
/etc/nginx/sites-available are in existance.

This results in breakage of these packages when installing them on an
existing nginx configuration without sites-enabled/sites-available. 

The attached patch should fix this by testing wether or not
sites-enabled/sites-available do exist and only then also will create
the symbolic link.

Hope it helps,

Andreas Marschke.

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (10, 'unstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.2.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages nginx-extras depends on:
ii  libc6                       2.13-35
ii  libexpat1                   2.1.0-1
ii  libgd2-noxpm                2.0.36~rc1~dfsg-6.1
ii  libgeoip1                   1.4.8+dfsg-3
ii  liblua5.1-0                 5.1.5-4
ii  libpam0g                    1.1.3-7.1
ii  libpcre3                    1:8.30-5
ii  libperl5.14                 5.14.2-13
ii  libssl1.0.0                 1.0.1c-4
ii  libxml2                     2.8.0+dfsg1-5
ii  libxslt1.1                  1.1.26-13
ii  nginx-common                1.2.1-2.2
ii  perl                        5.14.2-13
ii  perl-base [perlapi-5.14.2]  5.14.2-13
ii  zlib1g                      1:1.2.7.dfsg-13

nginx-extras recommends no packages.

nginx-extras suggests no packages.

-- no debconf information
diff --git a/debian/nginx-extras.postinst b/debian/nginx-extras.postinst
index 0bef8e1..71583d7 100644
--- a/debian/nginx-extras.postinst
+++ b/debian/nginx-extras.postinst
@@ -3,7 +3,9 @@ set -e
 
 case "$1" in
   configure)
-    if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ]; then
+    if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ] &&
+       [ -d /etc/nginx/sites-enabled ] && 
+       [ -d /etc/nginx/sites-available ]; then
       ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
     fi
     ;;
diff --git a/debian/nginx-full.postinst b/debian/nginx-full.postinst
index 0bef8e1..20c4def 100644
--- a/debian/nginx-full.postinst
+++ b/debian/nginx-full.postinst
@@ -3,7 +3,8 @@ set -e
 
 case "$1" in
   configure)
-    if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ]; then
+    if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ] &&
+       [ -d /etc/nginx/sites-enabled ] && [ -d /etc/nginx/sites-available ]; then
       ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
     fi
     ;;
diff --git a/debian/nginx-light.postinst b/debian/nginx-light.postinst
index 0bef8e1..0268e82 100644
--- a/debian/nginx-light.postinst
+++ b/debian/nginx-light.postinst
@@ -3,7 +3,9 @@ set -e
 
 case "$1" in
   configure)
-    if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ]; then
+    if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ] &&
+       [ -d /etc/nginx/sites-enabled ] &&
+       [ -d /etc/nginx/sites-available ]; then
       ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
     fi
     ;;
diff --git a/debian/nginx-naxsi.postinst b/debian/nginx-naxsi.postinst
index 0bef8e1..0268e82 100644
--- a/debian/nginx-naxsi.postinst
+++ b/debian/nginx-naxsi.postinst
@@ -3,7 +3,9 @@ set -e
 
 case "$1" in
   configure)
-    if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ]; then
+    if [ -z $2 ] && [ ! -e /etc/nginx/sites-enabled/default ] &&
+       [ -d /etc/nginx/sites-enabled ] &&
+       [ -d /etc/nginx/sites-available ]; then
       ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
     fi
     ;;

Reply via email to