do-release-upgrade: preserve env vars needed for screen lock prevention
The screen lock prevention code relies on environment variables such as DBUS_SESSION_BUS_ADDRESS being preserved, since the org.freedesktop.ScreenSaver DBus interface is needed. This works in cases where the dist-upgrade script is invoked with 'sudo -E' (e.g. DistUpgradeViewText frontend). However, when pkexec is used (e.g. DistUpgradeViewGtk3 frontend) the environment variables cannot be preserved as per pkexec's design. Add an --env flag to do-release-upgrade that accepts a comma-separated list of environment variables (e.g. VAR1=VALUE1,VAR2=VALUE2) which should be set when executing the dist-upgrade script. This approach is similar to the existing workaround for RELEASE_UPGRADER_ALLOW_THIRD_PARTY, but is generalized to allow any environment variables to be set. Finally, when the DistUpgradeViewGtk3 or DistUpgradeViewKDE frontends are used, and the do-release-upgrade script is re-exec'd with pkexec, set the DBUS_SESSION_BUS_ADDRESS and XDG_SESSION_TYPE variables with --env so that the screen lock prevention code works with these frontends. LP: #1968607
Loading
Please register or sign in to comment