- local template config_new password realm
-
- pkg freeradius-aai lt 2.1.3-0lenny0 || return 0
-
- # handle static configs
- restore_config freeradius-aai freeradius 2.1.3-0lenny0 \
- /etc/freeradius/clients.conf \
- /etc/freeradius/hints \
- /etc/freeradius/ldap.attrmap \
- /etc/freeradius/radiusd.conf
-
- # handle template based configs
- template=/usr/share/carnet-upgrade/files/etc/freeradius/eap.conf.template
- config_new=$(mktemp /var/lib/carnet-upgrade/eap.conf.XXXXXX)
- password=$(grep -s '^[[:space:]]*private_key_password[[:space:]]*=' \
- /etc/freeradius/eap.conf)
- cp $template $config_new
- sed -i "s/.*#PASSWORD#.*/$password/" $config_new
- if cmp -s $config_new /etc/freeradius/eap.conf >/dev/null; then
- log "Restoring config file /etc/freeradius/eap.conf"
- cp -v /usr/share/carnet-upgrade/files/etc/freeradius/eap.conf.restore \
- /etc/freeradius/eap.conf
- fi
- rm -f $config_new
-
- template=/usr/share/carnet-upgrade/files/etc/freeradius/proxy.conf.template
- config_new=$(mktemp /var/lib/carnet-upgrade/proxy.conf.XXXXXX)
- realm=$(sed -n '/^[[:space:]]*suffix[[:space:]]*/ {
- s///; s/"//g; s/,dc=/./g; s/dc=//; s/.hr$//; p; q }' /etc/ldap/slapd.conf)
- cp $template $config_new
- sed -i "s/#REALM#/$realm/" $config_new
- if cmp -s $config_new /etc/freeradius/proxy.conf >/dev/null; then
- log "Restoring config file /etc/freeradius/proxy.conf"
- cp -v /usr/share/carnet-upgrade/files/etc/freeradius/proxy.conf.restore \
- /etc/freeradius/proxy.conf
- fi
- rm -f $config_new
-
- # install the new packages
- if ! apt-get -y install freeradius; then
- # freeradius upgrade fails here, try to fix it by creating certificates
- [ -x /etc/freeradius/certs/bootstrap ] && /etc/freeradius/certs/bootstrap
-
- dpkg --configure -a
- apt-get -y -f install
- fi