chiark / gitweb /
configure.ac, debian/: Overhaul Wireshark plugin build machinery.
[tripe] / debian / tripe-peer-services.postinst
index c21dc16c70b5a5cd361de14224f4888e362b7146..214f82a91df77112a6767432ed65e7b2f7fd98aa 100644 (file)
@@ -95,6 +95,46 @@ restart_services () {
   echo "."
 }
 
-restart_services conntrack connect watch
+retire_service () {
+  name=$1 version=$2
+
+  ## If the service is currently running, then ask it to stop.
+  if tripectl >/dev/null 2>&1 svcensure $name && \
+     ! tripectl >/dev/null 2>&1 svcensure $name $version~
+  then
+    tripectl svcsubmit $name quit
+  fi
+
+  ## Remove the symbolic link if it's there.
+  if [ -L /etc/tripe/services/$name ]; then
+    case $(readlink /etc/tripe/services/$name) in
+      /usr/lib/tripe/services/$name)
+       rm /etc/tripe/services/$name
+       ;;
+    esac
+  fi
+}
+
+case "$1" in
+  configure)
+    v=$2
+
+    ## Apply upgrades iteratively until we catch up with reality.
+    while :; do
+
+      ## Here, we killed the `watch' service.
+      if dpkg --compare-versions "$v" lt-nl 1.0.0pre14~; then
+       retire_service watch 1.0.0pre14
+       v=1.0.0pre14
+
+      ## No more updates to apply.
+      else
+       break
+      fi
+    done
+    ;;
+esac
+
+restart_services conntrack connect
 
 #DEBHELPER#