Package: freeradius
Version: 2.1.10+dfsg-2
Severity: normal
Tags: patch

I just got a bug report which I wanted to forward. The user tried to update 
(version before 2.1.8) and got following error:

Updating default SSL certificate settings, if any...
ln: creating symbolic link `/etc/freeradius/certs/random' to `/dev/urandom': 
File exists
dpkg: error processing freeradius (--install):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 freeradius


The problem is that the file already existed as a symlink. I would propose a 
patch which changes the test to -e instead of -f.


--- System information. ---
Architecture: amd64
Kernel:       Linux 2.6.38-1-amd64

Debian Release: wheezy/sid
  500 unstable        www.debian-multimedia.org 
  500 unstable        ftp.debian.org 
    1 experimental    www.debian-multimedia.org 
    1 experimental    ftp.debian.org 

--- Package information. ---
Depends                         (Version) | Installed
=========================================-+-====================
lsb-base                    (>= 3.1-23.2) | 3.2-27
libc6                            (>= 2.4) | 2.11.2-13
libfreeradius2        (= 2.1.9+dfsg-1+b1) | 
libgdbm3                       (>= 1.8.3) | 1.8.3-9
libltdl7                      (>= 2.2.6b) | 2.2.6b-2
libpam0g                    (>= 0.99.7.1) | 1.1.2-2
libperl5.10                   (>= 5.10.1) | 5.10.1-18
libpython2.6                     (>= 2.6) | 2.6.6-8+b1
libssl0.9.8                 (>= 0.9.8m-1) | 0.9.8o-5
zlib1g                       (>= 1:1.1.4) | 1:1.2.3.4.dfsg-3
freeradius-common                         | 
ssl-cert                                  | 1.0.28
ca-certificates                           | 20090814+nmu2
adduser                                   | 3.112+nmu2


Recommends            (Version) | Installed
===============================-+-===========
freeradius-utils                | 


Suggests                   (Version) | Installed
====================================-+-===========
freeradius-ldap                      | 
freeradius-postgresql                | 
freeradius-mysql                     | 
freeradius-krb5                      | 




From da73e1c666ce008dbfae907d1af3c4769530ca8b Mon Sep 17 00:00:00 2001
From: Sven Eckelmann <[email protected]>
Date: Fri, 25 Mar 2011 18:53:07 +0100
Subject: [PATCH] Test for existing file instead of regular file in postinst


Signed-off-by: Sven Eckelmann <[email protected]>
---
 debian/freeradius.postinst |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/debian/freeradius.postinst b/debian/freeradius.postinst
index 58ae9b4..179a824 100755
--- a/debian/freeradius.postinst
+++ b/debian/freeradius.postinst
@@ -137,7 +137,7 @@ case "$1" in
                make-ssl-cert generate-default-snakeoil
             fi
             if egrep -q '^[ 	]*certificate_file = \${certdir}/server.pem' /etc/freeradius/eap.conf && \
-               test ! -f /etc/freeradius/certs/server.pem
+               test ! -e /etc/freeradius/certs/server.pem
             then
               serverpem=wasnotthere
 	      ln -s /etc/ssl/certs/ssl-cert-snakeoil.pem /etc/freeradius/certs/server.pem
@@ -146,7 +146,7 @@ case "$1" in
                  [ "$serverpem" = "wasnotthere" ] ) \
                || \
                ( egrep -q '^[ 	]*private_key_file = \${certdir}/server.key' /etc/freeradius/eap.conf && \
-                 test ! -f /etc/freeradius/certs/server.key )
+                 test ! -e /etc/freeradius/certs/server.key )
             then
 	      ln -s /etc/ssl/private/ssl-cert-snakeoil.key /etc/freeradius/certs/server.key
 	      sed -i -e 's,^\([ 	]*private_key_file = \${certdir}\)/server.pem$,\1/server.key,' /etc/freeradius/eap.conf
@@ -156,17 +156,17 @@ case "$1" in
 	      fi
 	    fi
             if egrep -q '^[ 	]*CA_file = \${cadir}/ca.pem' /etc/freeradius/eap.conf && \
-               test ! -f /etc/freeradius/certs/ca.pem
+               test ! -e /etc/freeradius/certs/ca.pem
             then
 	      ln -s /etc/ssl/certs/ca-certificates.crt /etc/freeradius/certs/ca.pem
 	    fi
             if egrep -q '^[ 	]*random_file = \${certdir}/random' /etc/freeradius/eap.conf && \
-               test ! -f /etc/freeradius/certs/random
+               test ! -e /etc/freeradius/certs/random
             then
 	      sed -i -e 's,^\([ 	]*random_file = \)\${certdir}/random$,\1/dev/urandom,' /etc/freeradius/eap.conf
 	    fi
             if egrep -q '^[ 	]*dh_file = \${certdir}/dh' /etc/freeradius/eap.conf && \
-               test ! -f /etc/freeradius/certs/dh
+               test ! -e /etc/freeradius/certs/dh
             then
               # ssl-cert dependency also provides us with openssl
 	      openssl dhparam -out /etc/freeradius/certs/dh 1024
-- 
1.7.4.1

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to