]> git.proxmox.com Git - proxmox-backup.git/blob - debian/postinst
switch regular dependencies to workspace ones
[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' '2.2.2~'; then
45 echo "moving prune schedule from datacenter config to new prune job config"
46 proxmox-backup-manager update-to-prune-jobs-config \
47 || echo "Failed to move prune jobs, please check manually"
48 true
49 fi
50
51 if dpkg --compare-versions "$2" 'lt' '2.3.1~'; then
52 lock_user="$(stat --format '%U' /etc/proxmox-backup/.datastore.lck)"
53 if [ "${lock_user}" != "backup" ]; then
54 echo "updating /etc/proxmox-backup/.datastore.lck from wrong user '${lock_user}' to 'backup'"
55 chown backup:backup /etc/proxmox-backup/.datastore.lck \
56 || printf "Failed to fix datastore.lck user, please retry manually with:\n\n\t%s\n\n" \
57 "chown backup:backup /etc/proxmox-backup/.datastore.lck"
58 fi
59 fi
60
61 if dpkg --compare-versions "$2" 'lt' '2.1.3~' && test -e /etc/proxmox-backup/sync.cfg; then
62 prev_job=""
63
64 # read from HERE doc because POSIX sh limitations
65 while read -r key value; do
66 if test "$key" = "sync:"; then
67 if test -n "$prev_job"; then
68 # previous job doesn't have an explicit value
69 update_sync_job "$prev_job"
70 fi
71 prev_job=$value
72 else
73 prev_job=""
74 fi
75 done <<EOF
76 $(grep -e '^sync:' -e 'remove-vanished' /etc/proxmox-backup/sync.cfg)
77 EOF
78 if test -n "$prev_job"; then
79 # last job doesn't have an explicit value
80 update_sync_job "$prev_job"
81 fi
82 fi
83 fi
84 ;;
85
86 abort-upgrade|abort-remove|abort-deconfigure)
87 ;;
88
89 *)
90 echo "postinst called with unknown argument \`$1'" >&2
91 exit 1
92 ;;
93 esac
94
95 exit 0