[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#600465: unblock: freeradius 2.1.10+dfsg-1



On Sun, Nov 14, 2010 at 08:33:47PM +0100, Josip Rodin wrote:
> > I'll get to it today. It'll also fix another logging regression that got
> > reported in the meantime.
> 
> Argh, I just read the update, so I guess it's best to clarify, by pasting
> the changelog entries of the new packages I've been testing and hashing out
> for a while now: [...]

I've completed my own basic regression testing, it looks good, and the
upgrade properly fixed a broken logging and permissions setup where I had
those issues (600 root:root radiusd.conf). I uploaded it just now.

This is at the cost of a bit of extra code (a lot of it copied and pasted
between analogous postinsts):

% diff -ruN freeradius-2.1.10+dfsg-[12] | diffstat
 changelog                        |   45 +++++++++++++++
 control                          |    6 +-
 freeradius-common.postinst       |   83 +++++++++++++++++++++++-----
 freeradius-common.prerm          |    4 -
 freeradius-mysql.postinst        |   42 ++++++++++++--
 freeradius-mysql.prerm           |    4 -
 freeradius-postgresql.postinst   |   43 ++++++++++++--
 freeradius-postgresql.prerm      |    4 -
 freeradius.init                  |   18 ++++--
 freeradius.logrotate             |    6 +-
 freeradius.postinst              |  115 +++++++++++++++++++++++++++------------
 freeradius.preinst               |    2 
 freeradius.prerm                 |    4 -
 patches/series                   |    1 
 patches/zombie_period_start.diff |   13 ++++
 15 files changed, 314 insertions(+), 76 deletions(-)

Full diff follows:

diff -ruN freeradius-2.1.10+dfsg-1/debian/changelog freeradius-2.1.10+dfsg-2/debian/changelog
--- freeradius-2.1.10+dfsg-1/debian/changelog	2010-11-14 21:34:49.000000000 +0100
+++ freeradius-2.1.10+dfsg-2/debian/changelog	2010-11-14 20:20:24.000000000 +0100
@@ -1,3 +1,48 @@
+freeradius (2.1.10+dfsg-2) unstable; urgency=medium
+
+  * The zombie period start time variable mistakenly got set to a random
+    value because of an upstream typo. Cherry-picked upstream commit
+    7b7dff7724721f8af5fd163f2292d427a869992d into a Debian patch,
+    requested for squeeze in #600465.
+  * Since 2.1.9, the daemon stopped reopening the default radius.log file
+    constantly, which means the default logrotate setup breaks the default
+    logging. D'oh. We now have to send SIGHUP to the daemon as a postrotate
+    action, which makes it reopen log files and continue normally.
+    * Added delaycompress to the logrotate options, just to be on the safe
+      side.
+    * Added a reload action into the init script accordingly, so that the
+      right pidfile is picked up (one that can be overridden by the admin
+      in /etc/default/freeradius, available since the last release).
+    * Called reload from the postrotate section, closes: #602815.
+    * However, the latter signal also makes the server re-read configuration
+      files, but unlike the initial server start, this all happens under
+      the unprivileged user. That in turn means that if by any chance there
+      is any part of FR configuration that happens not to be readable by
+      group freerad (or whatever non-default is configured), the reload
+      will fail, effectively silently, as the log has been moved away. Gah.
+      So we have to make an effort to ensure that the configuration files
+      are still readable by that user, otherwise the reload fails and the
+      aforementioned bug is not fixed. The files seem to revert to
+      root:root upon conffile actions, at least that's what happened to me
+      and I think that was the cause. So, on upgrade, try to re-apply the
+      dpkg-statoverrides on our /etc/freeradius/* stuff, whatever they are,
+      under the assumption they will let the freerad group read config files
+      as is the initial setup. (I wish dpkg-statoverride --update $file
+      just did the right thing, but it doesn't, so there's a new local
+      function that does that.)
+    * While doing the latter, noticed that we were checking for directories
+      in dpkg-statoverride --list output with trailing slashes, but they
+      get output without it, so it was a no-op. Fixed the check by removing
+      the trailing slashes. Also then noticed that we were grepping --list
+      output, but it takes an optional glob pattern, so saved us that
+      pointless grep fork by using that facility, just as described in the
+      policy manual.
+    * force-reload switches from restart to reload, per policy 9.3.2.
+  * lenny backport needed also libltdl-dev (2.2.x) to build properly, rather
+    than libltdl3-dev, which is obsolete and doesn't make sense anyway.
+
+ -- Josip Rodin <joy-packages@debian.org>  Sat, 13 Nov 2010 15:21:30 +0100
+
 freeradius (2.1.10+dfsg-1) unstable; urgency=medium
 
   * New upstream version, closes a bunch of reproducible SNAFUs,
diff -ruN freeradius-2.1.10+dfsg-1/debian/control freeradius-2.1.10+dfsg-2/debian/control
--- freeradius-2.1.10+dfsg-1/debian/control	2010-11-14 21:34:49.000000000 +0100
+++ freeradius-2.1.10+dfsg-2/debian/control	2010-11-13 16:01:24.000000000 +0100
@@ -4,7 +4,8 @@
  dpkg-dev (>= 1.13.19),
  autotools-dev,
  libtool (>= 2.2),
- libltdl3-dev,
+ libltdl-dev (>= 2.2),
+ libssl-dev,
  libpam0g-dev,
  libmysqlclient-dev,
  libgdbm-dev,
@@ -16,8 +17,7 @@
  libpcap-dev,
  python-dev,
  libsnmp-dev,
- libpq-dev,
- libssl-dev
+ libpq-dev
 Section: net
 Priority: optional
 Maintainer: Josip Rodin <joy-packages@debian.org>
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius-common.postinst freeradius-2.1.10+dfsg-2/debian/freeradius-common.postinst
--- freeradius-2.1.10+dfsg-1/debian/freeradius-common.postinst	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius-common.postinst	2010-11-14 20:35:29.000000000 +0100
@@ -2,6 +2,73 @@
 
 set -e
 
+update_fs_from_statoverride() {
+  # I wish a simple dpkg-statoverride --update $file just did
+  # the right thing, but it doesn't, so we have to do it manually.
+  type=$1
+  user=$2
+  group=$3
+  mode=$4
+  file=$5
+  if [ -n "$type" -a -n "$group" -a -n "$mode" -a -n "$file" ]; then
+    if [ "$(find $file -maxdepth 0 -type $type -group $group -perm $mode)" = "" -a -$type $file ]; then
+      chgrp $group $file
+      chmod $mode $file
+    fi
+  fi
+}
+
+handle_config_files() {
+  runmode=$1
+
+  set +e
+  so=$(dpkg-statoverride --list /etc/freeradius)
+  ret=$?
+  set -e
+  case "$runmode" in
+    initial)
+      if [ $ret != 0 ]; then
+        dpkg-statoverride --add --update freerad freerad 2751 /etc/freeradius
+      fi
+      ;;
+    upgrade)
+      update_fs_from_statoverride d $so
+      ;;
+  esac
+
+  set +e
+  so=$(dpkg-statoverride --list /etc/freeradius/radiusd.conf)
+  ret=$?
+  set -e
+  case "$runmode" in
+    initial)
+      if [ $ret != 0 ]; then
+        dpkg-statoverride --add --update root freerad 0640 /etc/freeradius/radiusd.conf 
+      fi
+      ;;
+    upgrade)
+      update_fs_from_statoverride f $so
+      ;;
+  esac
+
+  # Relax permissions on local dictionary - allows radclient to run and should
+  # not contain secrets.  At any rate, only do it on fresh install
+  set +e
+  so=$(dpkg-statoverride --list /etc/freeradius/dictionary)
+  ret=$?
+  set -e
+  case "$runmode" in
+    initial)
+      if [ $ret != 0 ]; then
+        dpkg-statoverride --add --update root freerad 0644 /etc/freeradius/dictionary
+      fi
+      ;;
+    upgrade)
+      update_fs_from_statoverride f $so
+      ;;
+  esac
+}
+
 case "$1" in
   configure)
         if [ -z "$2" ]; then
@@ -13,20 +80,10 @@
           # group if authenticating by another mechanism
           adduser --quiet freerad shadow
 
-          if ! dpkg-statoverride --list | grep -qw /etc/freeradius$; then
-            dpkg-statoverride --add --update freerad freerad 2751 /etc/freeradius
-          fi
-
-          if ! dpkg-statoverride --list | grep -qw /etc/freeradius/radiusd.conf$; then
-            dpkg-statoverride --add --update root freerad 0640 /etc/freeradius/radiusd.conf 
-          fi
-
-          # Relax permissions on local dictionary - allows radclient to run and should
-          # not contain secrets.  At any rate, only do it on fresh install
-          if ! dpkg-statoverride --list | grep -qw /etc/freeradius/dictionary$; then
-            dpkg-statoverride --add --update root freerad 0644 /etc/freeradius/dictionary
-          fi
+          handle_config_files initial
 
+        else
+          handle_config_files upgrade
         fi
         ;;
 esac
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius-common.prerm freeradius-2.1.10+dfsg-2/debian/freeradius-common.prerm
--- freeradius-2.1.10+dfsg-1/debian/freeradius-common.prerm	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius-common.prerm	2010-11-14 18:11:37.000000000 +0100
@@ -5,12 +5,12 @@
 case "$1" in
   remove)
         for file in /etc/freeradius/radiusd.conf /etc/freeradius/dictionary; do
-          if dpkg-statoverride --list | grep -qw $file$; then
+          if dpkg-statoverride --list $file >/dev/null; then
             dpkg-statoverride --remove $file
           fi
         done
 
-        if dpkg-statoverride --list | grep -qw /etc/freeradius$; then
+        if dpkg-statoverride --list /etc/freeradius >/dev/null; then
           dpkg-statoverride --remove /etc/freeradius
         fi
         ;;
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius-mysql.postinst freeradius-2.1.10+dfsg-2/debian/freeradius-mysql.postinst
--- freeradius-2.1.10+dfsg-1/debian/freeradius-mysql.postinst	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius-mysql.postinst	2010-11-14 20:35:45.000000000 +0100
@@ -2,6 +2,22 @@
 
 set -e
 
+update_fs_from_statoverride() {
+  # I wish a simple dpkg-statoverride --update $file just did
+  # the right thing, but it doesn't, so we have to do it manually.
+  type=$1
+  user=$2
+  group=$3
+  mode=$4
+  file=$5
+  if [ -n "$type" -a -n "$group" -a -n "$mode" -a -n "$file" ]; then
+    if [ "$(find $file -maxdepth 0 -type $type -group $group -perm $mode)" = "" -a -$type $file ]; then
+      chgrp $group $file
+      chmod $mode $file
+    fi
+  fi
+}
+
 case "$1" in
   configure)
         for file in /etc/freeradius/sql/mysql/counter.conf \
@@ -11,16 +27,32 @@
           /etc/freeradius/sql/mysql/nas.sql \
           /etc/freeradius/sql/mysql/schema.sql
         do
-          if ! dpkg-statoverride --list | grep -qw $file$; then
-            dpkg-statoverride --add --update root freerad 0640 $file
+          set +e
+          so=$(dpkg-statoverride --list $file)
+          ret=$?
+          set -e
+          if [ -z "$2" ]; then
+            if [ $ret != 0 ]; then
+              dpkg-statoverride --add --update root freerad 0640 $file
+            fi
+          else
+            update_fs_from_statoverride f $so
           fi
         done
 
         for dir in /etc/freeradius/sql \
           /etc/freeradius/sql/mysql
         do
-          if ! dpkg-statoverride --list | grep -qw $dir$; then
-            dpkg-statoverride --add --update root freerad 2751 $dir
+          set +e
+          so=$(dpkg-statoverride --list $dir)
+          ret=$?
+          set -e
+          if [ -z "$2" ]; then
+            if [ $ret != 0 ]; then
+              dpkg-statoverride --add --update root freerad 2751 $dir
+            fi
+          else
+            update_fs_from_statoverride d $so
           fi
         done
 
@@ -35,5 +67,3 @@
 #DEBHELPER#
 
 exit 0
-
-
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius-mysql.prerm freeradius-2.1.10+dfsg-2/debian/freeradius-mysql.prerm
--- freeradius-2.1.10+dfsg-1/debian/freeradius-mysql.prerm	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius-mysql.prerm	2010-11-14 18:12:50.000000000 +0100
@@ -11,7 +11,7 @@
           /etc/freeradius/sql/mysql/nas.sql \
           /etc/freeradius/sql/mysql/schema.sql
         do
-          if dpkg-statoverride --list | grep -qw $file$; then
+          if dpkg-statoverride --list $file >/dev/null; then
             dpkg-statoverride --remove $file
           fi
         done
@@ -19,7 +19,7 @@
         for dir in /etc/freeradius/sql \
           /etc/freeradius/sql/mysql
         do
-          if dpkg-statoverride --list | grep -qw $dir$; then
+          if dpkg-statoverride --list $dir >/dev/null; then
             dpkg-statoverride --remove $dir
           fi
         done
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius-postgresql.postinst freeradius-2.1.10+dfsg-2/debian/freeradius-postgresql.postinst
--- freeradius-2.1.10+dfsg-1/debian/freeradius-postgresql.postinst	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius-postgresql.postinst	2010-11-14 20:36:00.000000000 +0100
@@ -2,6 +2,22 @@
 
 set -e
 
+update_fs_from_statoverride() {
+  # I wish a simple dpkg-statoverride --update $file just did
+  # the right thing, but it doesn't, so we have to do it manually.
+  type=$1
+  user=$2
+  group=$3
+  mode=$4
+  file=$5
+  if [ -n "$type" -a -n "$group" -a -n "$mode" -a -n "$file" ]; then
+    if [ "$(find $file -maxdepth 0 -type $type -group $group -perm $mode)" = "" -a -$type $file ]; then
+      chgrp $group $file
+      chmod $mode $file
+    fi
+  fi
+}
+
 case "$1" in
   configure)
         for file in /etc/freeradius/sql/postgresql/cisco_h323_db_schema.sql \
@@ -14,16 +30,32 @@
           /etc/freeradius/sql/postgresql/update_radacct_group_trigger.sql \
           /etc/freeradius/sql/postgresql/voip-postpaid.conf
         do
-          if ! dpkg-statoverride --list | grep -qw $file$; then
-            dpkg-statoverride --add --update root freerad 0640 $file
+          set +e
+          so=$(dpkg-statoverride --list $file)
+          ret=$?
+          set -e
+          if [ -z "$2" ]; then
+            if [ $ret != 0 ]; then
+              dpkg-statoverride --add --update root freerad 0640 $file
+            fi
+          else
+            update_fs_from_statoverride f $so
           fi
         done
 
         for dir in /etc/freeradius/sql \
           /etc/freeradius/sql/postgresql
         do
-          if ! dpkg-statoverride --list | grep -qw $dir$; then
-            dpkg-statoverride --add --update root freerad 2751 $dir
+          set +e
+          so=$(dpkg-statoverride --list $dir)
+          ret=$?
+          set -e
+          if [ -z "$2" ]; then
+            if [ $ret != 0 ]; then
+              dpkg-statoverride --add --update root freerad 2751 $dir
+            fi
+          else
+            update_fs_from_statoverride d $so
           fi
         done
 
@@ -38,6 +70,3 @@
 #DEBHELPER#
 
 exit 0
-
-
-
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius-postgresql.prerm freeradius-2.1.10+dfsg-2/debian/freeradius-postgresql.prerm
--- freeradius-2.1.10+dfsg-1/debian/freeradius-postgresql.prerm	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius-postgresql.prerm	2010-11-14 18:13:09.000000000 +0100
@@ -14,7 +14,7 @@
           /etc/freeradius/sql/postgresql/update_radacct_group_trigger.sql \
           /etc/freeradius/sql/postgresql/voip-postpaid.conf
         do
-          if dpkg-statoverride --list | grep -qw $file$; then
+          if dpkg-statoverride --list $file >/dev/null; then
             dpkg-statoverride --remove $file
           fi
         done
@@ -22,7 +22,7 @@
         for dir in /etc/freeradius/sql \
           /etc/freeradius/sql/postgresql
         do
-          if dpkg-statoverride --list | grep -qw $dir$; then
+          if dpkg-statoverride --list $dir >/dev/null; then
             dpkg-statoverride --remove $dir
           fi
         done
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius.init freeradius-2.1.10+dfsg-2/debian/freeradius.init
--- freeradius-2.1.10+dfsg-1/debian/freeradius.init	2010-11-14 21:34:49.000000000 +0100
+++ freeradius-2.1.10+dfsg-2/debian/freeradius.init	2010-11-13 15:51:51.000000000 +0100
@@ -48,18 +48,28 @@
                 log_daemon_msg "Stopping $DESCR" "$PROG"
                 if [ -f "$PIDFILE" ] ; then
                   start-stop-daemon --stop --retry=TERM/30/KILL/5 --quiet --pidfile $PIDFILE || ret=$?
-                  log_end_msg $ret
                 else 
                   log_action_cont_msg "$PIDFILE not found"
-                  log_end_msg 0
+                  ret=0
                 fi
+                log_end_msg $ret
                 ;;
-        restart|force-reload)
+        restart)
                 $0 stop
                 $0 start
                 ;;
+        reload|force-reload)
+                log_daemon_msg "Reloading $DESCR" "$PROG"
+                if [ -f "$PIDFILE" ] ; then
+                  start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || ret=$?
+                else 
+                  log_action_cont_msg "$PIDFILE not found"
+                  ret=0
+                fi
+                log_end_msg $ret
+                ;;
         *)
-                echo "Usage: $0 start|stop|restart|force-reload"
+                echo "Usage: $0 start|stop|restart|force-reload|reload"
                 exit 1 
                 ;;
 esac
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius.logrotate freeradius-2.1.10+dfsg-2/debian/freeradius.logrotate
--- freeradius-2.1.10+dfsg-1/debian/freeradius.logrotate	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius.logrotate	2010-11-13 17:15:54.000000000 +0100
@@ -2,6 +2,10 @@
         weekly
         rotate 52
         compress
+        delaycompress
         notifempty
+        missingok
+        postrotate
+                /etc/init.d/freeradius reload > /dev/null
+        endscript
 }
-
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius.postinst freeradius-2.1.10+dfsg-2/debian/freeradius.postinst
--- freeradius-2.1.10+dfsg-1/debian/freeradius.postinst	2010-11-14 21:34:49.000000000 +0100
+++ freeradius-2.1.10+dfsg-2/debian/freeradius.postinst	2010-11-14 20:11:53.000000000 +0100
@@ -2,9 +2,84 @@
 
 set -e
 
+update_fs_from_statoverride() {
+  # I wish a simple dpkg-statoverride --update $file just did
+  # the right thing, but it doesn't, so we have to do it manually.
+  type=$1
+  user=$2
+  group=$3
+  mode=$4
+  file=$5
+  if [ -n "$type" -a -n "$group" -a -n "$mode" -a -n "$file" ]; then
+    if [ "$(find $file -maxdepth 0 -type $type -group $group -perm $mode)" = "" -a -$type $file ]; then
+      chgrp $group $file
+      chmod $mode $file
+    fi
+  fi
+}
+
+handle_config_files() {
+  runmode=$1
+
+  for file in /etc/freeradius/preproxy_users \
+              /etc/freeradius/policy.conf \
+              /etc/freeradius/eap.conf \
+              /etc/freeradius/experimental.conf \
+              /etc/freeradius/huntgroups \
+              /etc/freeradius/proxy.conf \
+              /etc/freeradius/attrs.pre-proxy \
+              /etc/freeradius/hints \
+              /etc/freeradius/sql.conf \
+              /etc/freeradius/ldap.attrmap \
+              /etc/freeradius/attrs \
+              /etc/freeradius/policy.txt \
+              /etc/freeradius/attrs.accounting_response \
+              /etc/freeradius/attrs.access_reject \
+              /etc/freeradius/attrs.access_challenge \
+              /etc/freeradius/clients.conf \
+              /etc/freeradius/acct_users
+  do
+    set +e
+    so=$(dpkg-statoverride --list $file)
+    ret=$?
+    set -e
+    case "$runmode" in
+      initial)
+        if [ $ret != 0 ]; then
+          dpkg-statoverride --add --update root freerad 0640 $file
+        fi
+        ;;
+      upgrade)
+        update_fs_from_statoverride f $so
+        ;;
+    esac
+  done
+
+  for dir in /etc/freeradius/certs \
+             /etc/freeradius/sites-available \
+             /etc/freeradius/sites-enabled
+  do
+    set +e
+    so=$(dpkg-statoverride --list $dir)
+    ret=$?
+    set -e
+    case "$runmode" in
+      initial)
+        if [ $ret != 0 ]; then
+          dpkg-statoverride --add --update freerad freerad 2751 $dir
+        fi
+        ;;
+      upgrade)
+        update_fs_from_statoverride d $so
+        ;;
+    esac
+  done
+}
+
 case "$1" in
   configure)
         if [ -z "$2" ]; then
+
           # Changed in 1.1.5-1 for new installs (we used to start at S50
           # and stop at K50)  We now start at S50 and stop at K19 so we
           # start after services which may be used and stop before them.
@@ -12,11 +87,11 @@
 
           # Set up initial permissions on all the freeradius directories
 
-          if ! dpkg-statoverride --list | grep -q /var/run/freeradius$; then
+          if ! dpkg-statoverride --list /var/run/freeradius >/dev/null; then
             dpkg-statoverride --add --update freerad freerad 0755 /var/run/freeradius
           fi
 
-          if ! dpkg-statoverride --list | grep -q /var/log/freeradius$; then
+          if ! dpkg-statoverride --list /var/log/freeradius >/dev/null; then
             dpkg-statoverride --add --update freerad freerad 0750 /var/log/freeradius
           fi
 
@@ -24,41 +99,15 @@
             [ ! -f "/var/log/freeradius/${file}" ] && install -o freerad -g freerad -m 644 /dev/null /var/log/freeradius/${file}
           done
 
-          for file in /etc/freeradius/preproxy_users \
-            /etc/freeradius/policy.conf \
-            /etc/freeradius/eap.conf \
-            /etc/freeradius/experimental.conf \
-            /etc/freeradius/huntgroups \
-            /etc/freeradius/proxy.conf \
-            /etc/freeradius/attrs.pre-proxy \
-            /etc/freeradius/hints \
-            /etc/freeradius/sql.conf \
-            /etc/freeradius/ldap.attrmap \
-            /etc/freeradius/attrs \
-            /etc/freeradius/policy.txt \
-            /etc/freeradius/attrs.accounting_response \
-            /etc/freeradius/attrs.access_reject \
-            /etc/freeradius/attrs.access_challenge \
-            /etc/freeradius/clients.conf \
-            /etc/freeradius/acct_users
-          do
-            if ! dpkg-statoverride --list | grep -qw $file$; then
-              dpkg-statoverride --add --update root freerad 0640 $file
-            fi
-          done
-
-          for dir in /etc/freeradius/certs/ \
-            /etc/freeradius/sites-available/ \
-            /etc/freeradius/sites-enabled/
-          do
-            if ! dpkg-statoverride --list | grep -qw $dir$; then
-              dpkg-statoverride --add --update freerad freerad 2751 $dir
-            fi
-          done
+          handle_config_files initial
 
           action="start"
+
         else
+
+          handle_config_files upgrade
           action="restart"
+
         fi
 
         # Create links for default sites, but only if this is an initial
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius.preinst freeradius-2.1.10+dfsg-2/debian/freeradius.preinst
--- freeradius-2.1.10+dfsg-1/debian/freeradius.preinst	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius.preinst	2010-11-14 18:12:00.000000000 +0100
@@ -76,7 +76,7 @@
           rm_conffile "$file"
 
           # must get rid of the overrides otherwise they corrupt the database
-          if dpkg-statoverride --list | grep -qw $file$; then
+          if dpkg-statoverride --list $file >/dev/null; then
             dpkg-statoverride --remove $file
           fi
 
diff -ruN freeradius-2.1.10+dfsg-1/debian/freeradius.prerm freeradius-2.1.10+dfsg-2/debian/freeradius.prerm
--- freeradius-2.1.10+dfsg-1/debian/freeradius.prerm	2010-09-28 13:03:56.000000000 +0200
+++ freeradius-2.1.10+dfsg-2/debian/freeradius.prerm	2010-11-14 18:12:31.000000000 +0100
@@ -28,7 +28,7 @@
           /etc/freeradius/clients.conf \
           /etc/freeradius/acct_users
         do
-          if dpkg-statoverride --list | grep -qw $file$; then
+          if dpkg-statoverride --list $file >/dev/null; then
             dpkg-statoverride --remove $file
           fi
         done
@@ -39,7 +39,7 @@
           /var/run/freeradius \
           /var/log/freeradius
         do
-          if dpkg-statoverride --list | grep -qw $dir$; then
+          if dpkg-statoverride --list $dir >/dev/null; then
             dpkg-statoverride --remove $dir
           fi
         done
diff -ruN freeradius-2.1.10+dfsg-1/debian/patches/series freeradius-2.1.10+dfsg-2/debian/patches/series
--- freeradius-2.1.10+dfsg-1/debian/patches/series	2010-11-14 21:34:49.000000000 +0100
+++ freeradius-2.1.10+dfsg-2/debian/patches/series	2010-11-13 15:47:32.000000000 +0100
@@ -4,3 +4,4 @@
 rlm_sql.libs.diff
 eap.server.key.diff
 eap.random_file.diff
+zombie_period_start.diff
diff -ruN freeradius-2.1.10+dfsg-1/debian/patches/zombie_period_start.diff freeradius-2.1.10+dfsg-2/debian/patches/zombie_period_start.diff
--- freeradius-2.1.10+dfsg-1/debian/patches/zombie_period_start.diff	1970-01-01 01:00:00.000000000 +0100
+++ freeradius-2.1.10+dfsg-2/debian/patches/zombie_period_start.diff	2010-11-13 15:47:22.000000000 +0100
@@ -0,0 +1,13 @@
+diff --git a/src/main/event.c b/src/main/event.c
+index 6ec1de9..fb51708 100644
+--- a/src/main/event.c
++++ b/src/main/event.c
+@@ -1122,7 +1122,7 @@ static void no_response_to_proxied_request(void *ctx)
+ 	home->state = HOME_STATE_ZOMBIE;
+ 	
+ 	home->zombie_period_start.tv_sec = home->last_packet;
+-	home->zombie_period_start.tv_sec = USEC / 2;
++	home->zombie_period_start.tv_usec = USEC / 2;
+ 	
+ 	fr_event_delete(el, &home->ev);
+ 	home->currently_outstanding = 0;

-- 
     2. That which causes joy or happiness.



Reply to: