]> git.proxmox.com Git - proxmox-backup.git/blob - debian/postinst
d/control: use regular versioned build-dependency
[proxmox-backup.git] / debian / postinst
1 #!/bin/sh
2
3 set -e
4
5 #DEBHELPER#
6
7 update_sync_job() {
8 job="$1"
9
10 echo "Updating sync job '$job' to make old 'remove-vanished' default explicit.."
11 proxmox-backup-manager sync-job update "$job" --remove-vanished true \
12 || echo "Failed, please check sync.cfg manually!"
13 }
14
15 case "$1" in
16 configure)
17 # need to have user backup in the tape group
18 usermod -a -G tape backup
19
20 # modeled after dh_systemd_start output
21 systemctl --system daemon-reload >/dev/null || true
22 if [ -n "$2" ]; then
23 if dpkg --compare-versions "$2" 'lt' '1.0.7-1'; then
24 # there was an issue with reloading and systemd being confused in older daemon versions
25 # so restart instead of reload if upgrading from there, see commit 0ec79339f7aebf9
26 # FIXME: remove with PBS 2.1
27 echo "Upgrading from older proxmox-backup-server: restart (not reload) daemons"
28 _dh_action=try-restart
29 else
30 _dh_action=try-reload-or-restart
31 fi
32 else
33 _dh_action=start
34 fi
35 deb-systemd-invoke $_dh_action proxmox-backup.service proxmox-backup-proxy.service >/dev/null || true
36
37 if test -n "$2"; then
38 # FIXME: Remove in future version once we're sure no broken entries remain in anyone's files
39 if grep -q -e ':termproxy::[^@]\+: ' /var/log/proxmox-backup/tasks/active; then
40 echo "Fixing up termproxy user id in task log..."
41 flock -w 30 /var/log/proxmox-backup/tasks/active.lock sed -i 's/:termproxy::\([^@]\+\): /:termproxy::\1@pam: /' /var/log/proxmox-backup/tasks/active || true
42 fi
43
44 if dpkg --compare-versions "$2" 'lt' '7.1-1' && test -e /etc/proxmox-backup/sync.cfg; then
45 prev_job=""
46
47 # read from HERE doc because POSIX sh limitations
48 while read -r key value; do
49 if test "$key" = "sync:"; then
50 if test -n "$prev_job"; then
51 # previous job doesn't have an explicit value
52 update_sync_job "$prev_job"
53 fi
54 prev_job=$value
55 else
56 prev_job=""
57 fi
58 done <<EOF
59 $(grep -e '^sync:' -e 'remove-vanished' /etc/proxmox-backup/sync.cfg)
60 EOF
61 if test -n "$prev_job"; then
62 # last job doesn't have an explicit value
63 update_sync_job "$prev_job"
64 fi
65 fi
66 fi
67 ;;
68
69 abort-upgrade|abort-remove|abort-deconfigure)
70 ;;
71
72 *)
73 echo "postinst called with unknown argument \`$1'" >&2
74 exit 1
75 ;;
76 esac
77
78 exit 0