Fix DBus session address, fix service handling
This commit is contained in:
parent
7b490275ba
commit
d04ec4ed19
1 changed files with 26 additions and 25 deletions
|
@ -73,40 +73,41 @@ desktop-file-install --delete-original \
|
||||||
|
|
||||||
%posttrans
|
%posttrans
|
||||||
export SFOSUSER=$(id -un 100000)
|
export SFOSUSER=$(id -un 100000)
|
||||||
|
export DBUS_USER_ADDRESS=unix:path=/run/user/100000/dbus/user_bus_socket
|
||||||
|
|
||||||
# Remove all service (new and old)
|
# Remove old service
|
||||||
systemctl stop %{name}-oneshot.service || true
|
systemctl stop %{name}.service
|
||||||
systemctl stop %{name}.service || true
|
systemctl disable %{name}.service
|
||||||
su $SFOSUSER -c "systemctl --user stop %{name}.service" || true
|
rm %{_unitdir}/%{name}.service
|
||||||
|
|
||||||
systemctl disable %{name}-oneshot.service || true
|
|
||||||
systemctl disable %{name}.service || true
|
|
||||||
su $SFOSUSER -c "systemctl --user disable %{name}.service" || true
|
|
||||||
|
|
||||||
rm %{_unitdir}/%{name}-oneshot.service || true
|
|
||||||
rm %{_unitdir}/%{name}.service || true
|
|
||||||
rm %{_userunitdir}/%{name}.service || true
|
|
||||||
rm /etc/systemd/system/%{name}.service || true
|
|
||||||
rm /etc/systemd/system/%{name}-oneshot.service || true
|
|
||||||
|
|
||||||
# Install/update permission daemon (root)
|
# Install/update permission daemon (root)
|
||||||
cp %{_datadir}/%{name}/service/%{name}-oneshot.service %{_unitdir}/%{name}-oneshot.service
|
cp %{_datadir}/%{name}/service/%{name}-oneshot.service %{_unitdir}/%{name}-oneshot.service
|
||||||
systemctl daemon-reload
|
systemctl daemon-reload
|
||||||
systemctl start %{name}-oneshot.service
|
|
||||||
systemctl enable %{name}-oneshot.service
|
systemctl enable %{name}-oneshot.service
|
||||||
|
systemctl start %{name}-oneshot.service
|
||||||
|
|
||||||
# Install/update background daemon (default user)
|
# Install/update background daemon (default user)
|
||||||
cp %{_datadir}/%{name}/service/%{name}.service %{_userunitdir}/%{name}.service
|
cp %{_datadir}/%{name}/service/%{name}.service %{_userunitdir}/%{name}.service
|
||||||
su $SFOSUSER -c "systemctl --user daemon-reload"
|
su $SFOSUSER -c "DBUS_SESSION_BUS_ADDRESS=$DBUS_USER_ADDRESS systemctl --user daemon-reload"
|
||||||
su $SFOSUSER -c "systemctl --user start %{name}.service"
|
su $SFOSUSER -c "DBUS_SESSION_BUS_ADDRESS=$DBUS_USER_ADDRESS systemctl --user enable %{name}.service"
|
||||||
su $SFOSUSER -c "systemctl --user enable %{name}.service"
|
su $SFOSUSER -c "DBUS_SESSION_BUS_ADDRESS=$DBUS_USER_ADDRESS systemctl --user start %{name}.service"
|
||||||
|
exit 0
|
||||||
|
|
||||||
%postun
|
%postun
|
||||||
|
// Run on uninstall, not on upgrade
|
||||||
|
if [ $1 -eq 0 ]; then
|
||||||
# Figure out the default user name
|
# Figure out the default user name
|
||||||
export SFOSUSER=$(id -un 100000)
|
export SFOSUSER=$(id -un 100000)
|
||||||
|
export DBUS_USER_ADDRESS=unix:path=/run/user/100000/dbus/user_bus_socket
|
||||||
|
|
||||||
su $SFOSUSER -c "systemctl --user disable --now %{name}.service" || true
|
su $SFOSUSER -c "DBUS_SESSION_BUS_ADDRESS=$DBUS_USER_ADDRESS systemctl --user stop %{name}.service"
|
||||||
systemctl disable --now %{name}-oneshot.service || true
|
su $SFOSUSER -c "DBUS_SESSION_BUS_ADDRESS=$DBUS_USER_ADDRESS systemctl --user disable %{name}.service"
|
||||||
rm %{_unitdir}/%{name}-oneshot.service
|
|
||||||
rm %{_userunitdir}/%{name}.service
|
rm %{_userunitdir}/%{name}.service
|
||||||
|
su $SFOSUSER -c "DBUS_SESSION_BUS_ADDRESS=$DBUS_USER_ADDRESS systemctl --user daemon-reload"
|
||||||
|
|
||||||
|
systemctl stop %{name}-oneshot.service
|
||||||
|
systemctl disable %{name}-oneshot.service
|
||||||
|
rm %{_unitdir}/%{name}-oneshot.service
|
||||||
|
systemctl daemon-reload
|
||||||
|
fi
|
||||||
|
exit 0
|
||||||
|
|
Loading…
Reference in a new issue