From: Jonathan McDowell Date: Tue, 7 Jun 2016 15:11:04 +0000 (+0100) Subject: Update Debian packaging to cope with onak.conf -> onak.ini change X-Git-Tag: onak-0.5.0~27 X-Git-Url: http://the.earth.li/gitweb/?p=onak.git;a=commitdiff_plain;h=95242a64d701a8bc935115c1b9d7db324aef64c5 Update Debian packaging to cope with onak.conf -> onak.ini change Use the "onak dumpconfig" utility to provide a smooth upgrade path for previous versions of onak, and notify the user that the change has taken place. --- diff --git a/debian/NEWS.Debian b/debian/NEWS.Debian new file mode 100644 index 0000000..60b3af0 --- /dev/null +++ b/debian/NEWS.Debian @@ -0,0 +1,14 @@ +onak (0.4.6-1+git) UNRELEASED; urgency=low + + Upstream onak has migrated to a new .ini style configuration file, + referred to as onak.ini instead of onak.conf. If you had local modifications + to /etc/onak.conf they have been retained in /etc/onak.conf.dpkg-bak and + automatically migrated to the new style in /etc/onak.ini. If you have any + other copies of the configuration (e.g. store in home directories) then + the "onak dumpconfig" utility can upgrade them for you. onak is still + capable of reading old style configurations but this is expected to go away + in a future release and no new configuration options will be available in + the old config file format. + + -- Jonathan McDowell Tue, 07 Jun 2016 16:05:43 +0100 + diff --git a/debian/README.Debian b/debian/README.Debian index 98a3785..2088f6d 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -1,7 +1,7 @@ onak for Debian --------------- -Before using onak you will want to edit /etc/onak.conf and set 'this_site' as +Before using onak you will want to edit /etc/onak.ini and set 'this_site' as appropriate. The OpenPGP Key Server specification uses host:11371/pks/lookup etc as the URLs, diff --git a/debian/onak.init b/debian/onak.init index e61d603..110099c 100644 --- a/debian/onak.init +++ b/debian/onak.init @@ -32,7 +32,7 @@ SCRIPTNAME=/etc/init.d/onak # and status_of_proc is working. . /lib/lsb/init-functions -if ! grep -q -E '^use_keyd *(true|yes|1)$' /etc/onak.conf; then +if ! grep -q -E '^use_keyd=*(true|yes|1)$' /etc/onak.ini; then exit 0 fi diff --git a/debian/onak.install b/debian/onak.install index 2e70627..9935e4c 100644 --- a/debian/onak.install +++ b/debian/onak.install @@ -1,2 +1,2 @@ -onak.conf etc +onak.ini etc add lookup gpgwww hashquery usr/lib/cgi-bin/pks diff --git a/debian/onak.maintscript b/debian/onak.maintscript new file mode 100644 index 0000000..30dc7a4 --- /dev/null +++ b/debian/onak.maintscript @@ -0,0 +1 @@ +rm_conffile /etc/onak.conf 0.4.6-1 onak diff --git a/debian/postinst b/debian/postinst index 40d0d5f..da6c3eb 100644 --- a/debian/postinst +++ b/debian/postinst @@ -3,6 +3,18 @@ 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 + /usr/bin/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 @@ -11,8 +23,8 @@ if [ "$1" = "configure" ]; then # 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.gz ]; then zcat /usr/share/doc/onak/noodles.key | onak -b add @@ -34,20 +46,6 @@ 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# @@ -58,6 +56,6 @@ fi # 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.conf; then +if grep -q -E '^use_keyd=*(true|yes|1)$' /etc/onak.ini; then invoke-rc.d onak start || exit $? fi diff --git a/debian/prerm b/debian/prerm index e3b75c4..aa3c2a7 100644 --- a/debian/prerm +++ b/debian/prerm @@ -3,7 +3,7 @@ set -e # If keyd was enabled then make sure to stop it. -if grep -q -E '^use_keyd *(true|yes|1)$' /etc/onak.conf; then +if grep -q -E '^use_keyd=*(true|yes|1)$' /etc/onak.ini; then invoke-rc.d onak stop || exit $? fi