Renamed 2.0.0-pre2 to 2.0.0, in preparation for the release.
[freeradius.git] / debian / freeradius.postrm
index 546ae91..d206391 100755 (executable)
@@ -2,30 +2,36 @@
 
 set -e
 
-if [ "$1" = "remove" -o  "$1" = "purge" ]
-then
-       rm -f /etc/init.d/freeradius
-       update-rc.d -f freeradius remove >/dev/null
-fi
-
 case "$1" in
        remove)
                ;;
        purge)
-               if [ -d /var/log/freeradius ] 
+               update-rc.d -f freeradius remove >/dev/null
+               if [ -d /var/log/freeradius ]
                then
-                       cd /var/log/freeradius
-                       rm -f radius.log radius.log.* radius.log.*.gz
-                       rm -f radwtmp radwtmp.* radwtmp.*.gz
-                       rm -f radutmp radwatch.log
-                       test -d radacct && rm -rf radacct
-
-                       cd /var/log
                        rm -rf /var/log/freeradius
                fi
-               rm -rf /etc/freeradius
+               # Make sure we remove the /var/run directory as well.
+               # It can sometimes get left behind and, as we remove
+               # the user, it ends up owned by a non-existant user.
+               if [ -d /var/run/freeradius ]
+               then
+                       rm -rf /var/run/freeradius
+               fi
+               rmdir --ignore-fail-on-non-empty /etc/freeradius
+               # If we haven't managed to remove /etc/freeradius, make
+               # sure that freerad:freerad doesn't own anything before
+               # we remove the user and group.
+               if [ -d /etc/freeradius ]
+               then
+                       find /etc/freeradius -user freerad -print0 | \
+                               xargs -0 -r chown root
+                       find /etc/freeradius -group freerad -print0 | \
+                               xargs -0 -r chgrp root
+               fi
                deluser freerad shadow || true
                deluser freerad || true
+               delgroup freerad || true
                ;;
        *)
                ;;