-
Alban Crequy authored
gnome-initial-setup-copy-worker and gnome-keyring (and others) used to be started automatically by the session manager during the GSM_MANAGER_PHASE_INITIALIZATION phase. This is racy because gnome-keyring could read its file ~/.local/share/keyrings/login.keyring before it is written by gnome-initial-setup-copy-worker. The correct solution is to wait gnome-initial-setup-copy-worker finishes before starting other components in the initialization phase. I want to enforce this order without adding knowledge of gnome-initial-setup in gnome-keyring and others. It must also work on systems which don't use gnome-initial-setup. So I don't use a flag file in gnome-keyring's AutostartCondition to delay its startup. Instead, I add a new phase GSM_MANAGER_PHASE_EARLY_INITIALIZATION before the initialization phase. If no autostart desktop files use that phase, gnome-session will just go on to the next phase. But if gnome-initial-setup-copy-worker uses this new phase, it will ensure gnome-initial-setup-copy-worker finishes before the newly installed files in $HOME are read by anyone. Relevent documentation: https://wiki.gnome.org/SessionManagement http://standards.freedesktop.org/autostart-spec/autostart-spec-latest.html http://lists.freedesktop.org/archives/xdg/2007-January/007436.html https://bugzilla.gnome.org/show_bug.cgi?id=706692
3e8f8d08