X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=debian%2Fpostinst;h=b5d02ac6e53ed17d5d9caa7835f1345c60aeec04;hb=dfab9e96ee1fa4a10acf9c1cf644d7a4366a5af6;hp=b8fa63f5ec80dc5bffb5675ad548614db8e05d75;hpb=f0a63a7442a69bd08130efcb03d5e4b18110b859;p=onak.git diff --git a/debian/postinst b/debian/postinst index b8fa63f..b5d02ac 100644 --- a/debian/postinst +++ b/debian/postinst @@ -3,29 +3,41 @@ set -e if [ "$1" = "configure" ]; then + if dpkg --compare-versions -- "$2" le "0.4.6-1"; then + echo "Upgrading from old onak.conf version" + if [ -e /etc/onak.conf.dpkg-backup -a ! -e /etc/onak.conf ]; then + echo "Migrating onak.conf to onak.ini" + # Old config file was modified; generate a new style + # file. onak will use the file extension to determine it's + # an old style config, so we need the symlink. + ln -s /etc/onak.conf.dpkg-backup /etc/onak.conf + onak -c /etc/onak.conf dumpconfig /etc/onak.ini + rm /etc/onak.conf + fi + fi # Add the onak user adduser --system --home /var/lib/onak --no-create-home --disabled-login onak + # Take ownership of the database and spool directory + chown onak /var/lib/onak + chown onak /var/spool/onak + + # Create our logfile + touch /var/log/onak.log + chown onak /var/log/onak.log + # # If we're using a default config and there's no onak database, create it # by adding my key. # - if grep -q "^db_dir /var/lib/onak" /etc/onak.conf && - grep -q "^db_backend db4" /etc/onak.conf && + if grep -q "^backend=defaultdb4" /etc/onak.ini && + grep -q "^location=/var/lib/onak" /etc/onak.ini && [ ! -e /var/lib/onak/num_keydb -a \ - -e /usr/share/doc/onak/noodles.key ]; then - zcat /usr/share/doc/onak/noodles.key | onak -b add + -e /usr/share/doc/onak/noodles.key.gz ]; then + zcat /usr/share/doc/onak/noodles.key | runuser -u onak -- onak -b add fi - # Take ownership of the database and spool directory - chown -R onak /var/lib/onak - chown -R onak /var/spool/onak - - # Create our logfile - touch /var/log/onak.log - chown onak /var/log/onak.log - # Make the CGI tools setuid onak for i in /usr/lib/cgi-bin/pks/* do @@ -34,20 +46,16 @@ if [ "$1" = "configure" ]; then dpkg-statoverride --update --add onak root 4755 $i fi done - - # If we don't have a DB backend defined, then add appropriate config - if ! grep -q db_backend /etc/onak.conf; then - echo "# Auto added on package update" >> /etc/onak.conf - echo "backends_dir /usr/lib/onak/backends" >> /etc/onak.conf - echo "db_backend db4" >> /etc/onak.conf - fi - - # If we still have the old default mail_dir setting, fix it - if grep -q "mail_dir /community/pgp-keyserver/incoming" /etc/onak.conf; then - sed -i.bak "s/community\/pgp-keyserver\/incoming/var\/spool\/onak/" \ - /etc/onak.conf - fi - fi #DEBHELPER# + +# +# With the move to systemd this will force systemd to start keyd even if it's +# disabled in the onak config file; the systemd service file can't check the +# way the init script does. Work around this by doing the check here and +# only calling invoke-rc.d if it's actually enabled. +# +if grep -q -E '^use_keyd=*(true|yes|1)$' /etc/onak.ini; then + invoke-rc.d onak start || exit $? +fi