1. 12 Jan, 2022 1 commit
  2. 10 Dec, 2021 1 commit
  3. 03 Dec, 2020 2 commits
  4. 31 Jul, 2020 1 commit
    • Benjamin Berg's avatar
      util, main: Reset all failed states on startup · bd02b914
      Benjamin Berg authored and Benjamin Berg's avatar Benjamin Berg committed
      In the event that the user logs back in after a session failure, it is
      likely that some failed units cannot start. Reset all failed states to
      ensure that systemd at least tries to start all previously failed units
      on every login.
      bd02b914
  5. 04 May, 2020 1 commit
  6. 10 Apr, 2020 1 commit
  7. 16 Dec, 2019 2 commits
    • Iain Lane's avatar
      binary: Allow quitting early on SIGTERM/SIGINT · 04d1eb2d
      Iain Lane authored
      Now we're started by systemd, we also need to handle being *stopped* by
      systemd too. systemd sends us a SIGTERM to ask us to quit, but we refuse
      to exit on SIGTERM if we're not fully running. That's a problem if the
      SIGTERM is sent early in startup. For example, if gnome-shell has exited
      due to Wayland not being supported, and we're trying to fall back to
      Xorg, the session will not be running at this point, but we want to be
      able to kill everything in order to try again with Xorg.
      
      Fix this by looking at the `GError` returned by `gsm_manager_logout()`,
      and directly quitting if we're not in the running phase yet.
      04d1eb2d
    • Iain Lane's avatar
  8. 02 Aug, 2019 1 commit
  9. 01 Aug, 2019 3 commits
    • Benjamin Berg's avatar
      main: Export autostart dir into environment · e6a94c31
      Benjamin Berg authored
      The autostart directory that was overriden by GDM needs to be passed to
      the systemd service via environment. Export the parameter when needed so
      that this will work properly.
      e6a94c31
    • Benjamin Berg's avatar
      main: Add systemd gnome-session monitoring code for leader · 7ba953ea
      Benjamin Berg authored
      We are in the situation that gnome-session-binary is the session leader
      process for the user. This process is managed via logind and is inside
      the session scope of the user. This process has an important role for
      the session lifetime management, but we cannot track or manage its state
      from the systemd user instance.
      
      This adds a simple protocol to allow us managing the state. The
      counterpart is in gnome-session-ctl.c.
      
      It works by creating a named fifo called gnome-session-leader-fifo in
      the users runtime directory. The session leader opens it for writing,
      the monitoring process opens it for reading.
      
      By closing the FD the monitor process can signal to the leader that the
      session has been shut down normally. By writing to the FD the leader can
      signal the monitoring process to initiate a clean shutdown of the
      session. If either process crashes or is killed, the FD is closed and
      the other side will also quit.
      7ba953ea
    • Benjamin Berg's avatar
      manager: Add systemd-managed property · 98becaf1
      Benjamin Berg authored
      When running on systemd a few things need to change in the manager. Add
      a property for this but leave it unused for now.
      98becaf1
  10. 30 Jul, 2019 1 commit
  11. 13 Mar, 2018 1 commit
  12. 12 Feb, 2018 1 commit
  13. 04 Jan, 2018 1 commit
  14. 15 Nov, 2017 1 commit
  15. 10 Nov, 2017 1 commit
  16. 20 Sep, 2017 1 commit
  17. 29 Jun, 2017 1 commit
  18. 21 Jun, 2017 2 commits
  19. 22 Mar, 2017 1 commit
  20. 13 Jan, 2017 2 commits
  21. 24 Oct, 2016 1 commit
  22. 10 Oct, 2016 1 commit
  23. 18 Aug, 2016 1 commit
  24. 22 Jul, 2016 1 commit
    • Hanno Böck's avatar
      main: fix heap overflow in dbus-launch wrapping · 7ee3571c
      Hanno Böck authored
      I have discovered a heap overflow with the help of an address sanitizer.
      
      The require_dbus_session() function has this code:
      
              new_argv = g_malloc (argc + 3 * sizeof (*argv));
      
      The intention is to allocate space for (argc + 3) pointers. However obviously a
      parenthesis is missing, therefore only argc bytes + 3 * pointer size gets
      allocated, which is insufficient space. This leads to invalid memory writes.
      
      The fix is trivial: Parentheses around argc + 3.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=768441
      7ee3571c
  25. 09 Apr, 2016 2 commits
  26. 01 Apr, 2016 1 commit
  27. 31 Mar, 2016 1 commit
    • Andreas Henriksson's avatar
      main: fix starting gnome session via startx · 890a797a
      Andreas Henriksson authored
      The changes related to gsm_util_setenv during 3.19.x seems to have
      broken starting a gnome desktop the old fashioned way, eg. via startx.
      
      The gnome.session required components has OnlyShowIn=GNOME; which
      disqualifies them from being started unless XDG_CURRENT_DESKTOP is also
      set to GNOME (by the gio utility function used to look up info).
      
      Currently gnome-session already carries code to catch the case of
      XDG_CURRENT_DESKTOP being unset and set it to GNOME as a fallback.
      Unfortunately the changes to gsm_util_setenv seems to have made it only
      set the values in the (dbus activated) child environment, rather than
      the current environment which g_desktop_app_info_get_show_in is looking
      at.
      
      Make the fallback code set XDG_CURRENT_DESKTOP in both current
      and child environment fixes it.
      Also move the entire hunk of code before initializing gio to
      prevent potential thread issues, now that is uses g_setenv.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=764379
      890a797a
  28. 25 Feb, 2016 2 commits
  29. 21 Jan, 2016 2 commits
  30. 14 Oct, 2015 2 commits