summaryrefslogtreecommitdiff
path: root/common
Commit message (Collapse)AuthorAgeFilesLines
* manager: Find user's current graphical session, not session of callerwip/benzea/systemd-userIain Lane2019-08-052-4/+120
| | | | | | | If (e.g.) gnome-shell is started as a systemd --user unit, it won't be part of the login session. We should instead look through all of the user's sessions until we find the login session, and take that as our session.
* Allow sessions to register with GDMIain Lane2019-05-291-0/+2
| | | | | | | | | | | | | | | | | | | | | | Recording when sessions start, for Wayland → Xorg fallback or transitioning to the user session, is currently done with timeouts. This isn't ideal, because on some very slow machines the timeout can be hit before the session has had a chance to fail: if gnome-session takes more than 3 seconds to fail then the session will be considered to have exited rather than failed, and so we don't do Xorg fallback. We can do this more reliably if we allow sessions to optionally register themselves with GDM. Then we will know when they've started, so can shut down the greeter or fall back to Xorg as appropriate. The mechanism is that they specify X-GDM-SessionRegisters=true in their file, and then call RegsterSession on the DisplayManager interface on the bus (added in the previous commit) to say that they've started up. If X-GDM-SessionRegisters is missing or false, GDM will call the same method for them after 10 seconds. Closes: #483
* Use G_PARAM_STATIC_STRIGS on propertiesNiels De Graef2019-01-071-1/+1
| | | | This prevents strings from being unnecessarily copied.
* settings-desktop-backend: use G_DECLARE_FINAL_TYPENiels De Graef2018-12-232-54/+29
|
* settings-backend: use G_DECLARE_DERIVABLE_TYPENiels De Graef2018-12-232-34/+4
|
* settings: use G_DECLARE_FINAL_TYPENiels De Graef2018-12-232-43/+16
| | | | | | | | | Note that we need to remove the signal vfunc in GdmSettingsClass, so make sure to change the `g_signal_new("value-changed", ...)`, to cope with that. It also immediately gets rid of the deprecated `g_type_class_add_private()`.
* common: don't bail if session disappears out from under usRay Strode2018-08-311-1/+7
| | | | | | | | | | | | | | | | | | | | | It's entirely possible for a session returned by sd_seat_get_sessions to disappear immediately after the sd_seat_get_sessions call returns. This is especially likely at logout time where the session will briefly be in the "closing" state before getting reaped. If that happens when we're looking for a greeter session, we stop looking for a greeter session and bail out all confused. This commit fixes the confusion by gracefully handling the session disappearing by just proceeding to the next session in the list. This commit is very similar to commit 155ee7eca which got accidentally reverted during code consolidation. The main difference is this commit checks the correct error code of -ENXIO instead of -ENOENT, so it might actually fix what it's ostensibly supposed to fix.
* common: remove unnecessary freeRay Strode2018-08-311-3/+1
| | | | | | | | | | | | This commit drops an erroneous free call, that would potentially free a dangling pointer. Luckily the error condition can never occur because the error code checked is never returned, so the free call is dead code. This commit removes the free call. A subsequent commit will fix the error code checking.
* common: get rid of some tabs that snuck inRay Strode2018-08-311-1/+1
| | | | | This commit removes some tab characters that inadvertently snuck into the code.
* common: dedupe activate_session_idRay Strode2018-08-022-5/+11
| | | | | | Right now there are three copies of activate_session_id. This commit consolidates the code to gdm-common.c
* common: dedupe gdm_get_login_window_session_idRay Strode2018-08-022-13/+36
| | | | | | | | Right now there are two slightly different cut-and-pastes of the function to get the session id of the login session in the code. This commit deduplicates them.
* Remove mkdtemp() and its wrappers.Niels De Graef2018-06-245-262/+0
| | | | GLib has provided a wrapper for this with g_mkdtemp() since 2.30.
* common: Support runtime configurationsFelix Zhang2018-02-124-44/+155
| | | | | | | Add runtime configuration file /run/gdm/custom.conf, making device dependent configurations possible. https://bugzilla.gnome.org/show_bug.cgi?id=789081
* common: Also set GROUP in scriptsSam Spilsbury2018-01-081-0/+26
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=787287
* common: don't run scripts with bogus DISPLAY and XAUTHORITYRay Strode2018-01-081-2/+7
| | | | | | | | | | | | DISPLAY and XAUTHORITY might not be set if we're starting the X server as part of the session. In that case we should ensure the variables aren't set in the environment of the gdm session scripts. This commit fixes that. https://bugzilla.gnome.org/show_bug.cgi?id=792150
* Remove unused variablesRobert Ancell2017-12-041-3/+0
|
* Revert "common: Also set GROUP in scripts"Ray Strode2017-10-031-26/+0
| | | | This reverts commit 6594b1f262ffaa3d120c0b23f92bad2802f17e4a.
* common: Also set GROUP in scriptsSam Spilsbury2017-10-031-0/+26
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=787287
* settings: Make sure to set old settings global to NULL on finalizeSam Spilsbury2017-09-051-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=787288
* common: limit potentially expensive name lookupsRay Strode2017-03-031-12/+12
| | | | | | | | | | | | Right now we're doing name look ups when we don't have to. These name look ups can cause lengthy timeouts in misconfigured environments. This commit reduces the name looks used by GDM to make it more resiliant to failure. Ported from RHEL 6 to RHEL 7 by Ashish Shah <ashishks@redhat.com> https://bugzilla.gnome.org/show_bug.cgi?id=779499
* Xsession: get rid of "custom" sessionRay Strode2015-11-061-2/+0
| | | | | | | | | | | | custom is a magic name we used to allow for having the user decide their session by a ~/.xsession file. We no longer support that construct and haven't for many years. Instead, users who want that functionality can just add a xsession file to accomplish it. This commit just removes some left over cruft that never got cleaned up.
* get rid of references to slavesRay Strode2015-10-271-1/+1
| | | | | | | | I really don't want $ git grep slave to return hits.
* gdm-common: Add gdm_shell_expand() and testsAlexander Larsson2015-06-222-0/+96
| | | | | | | This allows shell-like expansion of strings. It will be later used to allow configuring the environment via config files. https://bugzilla.gnome.org/show_bug.cgi?id=751158
* require logind supportRay Strode2015-06-123-46/+10
| | | | | | | Now that consolekit support is gone, this commit drops all the conditionalizing of logind support. https://bugzilla.gnome.org/show_bug.cgi?id=743940
* drop consolekit supportRay Strode2015-06-121-304/+0
| | | | | | It was deprecated in 3.16 to be removed in 3.18 https://bugzilla.gnome.org/show_bug.cgi?id=743940
* settings: print custom.conf at startupRay Strode2015-03-061-0/+8
| | | | This makes it clear what settings gdm is using.
* user-switching: Make sure all exit paths have return valuesRay Strode2015-02-191-0/+2
| | | | | | | | | | | | | | | The openSUSE Build Service raises a flag for [ 55s] I: Program returns random data in a function [ 55s] E: gdm no-return-in-nonvoid-function gdm-common.c:850 [ 55s] E: gdm no-return-in-nonvoid-function gdm-user-switching.c:597 This can happen when CONSOLEKIT is disabled (As is newly the case) and LOGING_RUNNING would return false. Based on a patch by Dominique Leuenberger https://bugzilla.gnome.org/show_bug.cgi?id=744787
* local-display-factory: provide override for disabling waylandRay Strode2015-02-181-0/+1
| | | | | | | | | | Since this wayland code is still pretty new, we need to provide an exit tactic for users. This commit introduces daemon/WaylandEnable which can be set to false, to disable wayland support. https://bugzilla.gnome.org/show_bug.cgi?id=744764
* xdmcp: Allow timed/autologin on remote displaysMario Izquierdo Rodríguez2014-08-201-0/+1
| | | | | | | | This commit readds the security/AllowRemoteAutoLogin key (deprecated in >= 2.20) and so XDMCP setups can be configured to use autologin and timedlogin. https://bugzilla.gnome.org/show_bug.cgi?id=624958
* Revert "worker: get PATH from parent instead of #define"Ray Strode2014-04-222-1/+2
| | | | | | | This reverts commit e546e4dc6649a4fdf9065322420a28fa7e666782. It's causing problems because bindir and sbindir are in the wrong order for a user session.
* worker: get PATH from parent instead of #defineRay Strode2014-04-102-2/+1
| | | | | | | | If no PATH is set, then the session worker tries to set one up, based on guess. This commit changes GDM to just use the PATH given to GDM itself, rather than guessing (and getting it wrong). https://bugzilla.gnome.org/show_bug.cgi?id=727980
* common: remove gdm_string_hex_{de,en}code()Christian Schramm2014-04-072-217/+0
| | | | | | | | | These functions are unused, so there's no reason to keep them around. This commit removes those functions and corresponding test code. https://bugzilla.gnome.org/show_bug.cgi?id=727183
* Move gdm_slave_run_script to common codeJasper St. Pierre2014-03-143-0/+187
| | | | | | | We're going to move the code that runs Init to gdm-server.c and the code that runs PostLogin / PreSession to gdm-session-worker.c https://bugzilla.gnome.org/show_bug.cgi?id=726380
* common: Remove settings client / serverJasper St. Pierre2014-02-137-942/+0
| | | | | | This is used in *one* place in the simple slave. Just port it over to use gdm_settings_direct instead of keeping an entire DBus API around for just one call...
* profile: Kill warningJasper St. Pierre2014-02-101-3/+3
|
* utils: move login screen jumping code to commonRay Strode2014-02-072-1/+549
| | | | | | flexiserver has a bunch of complicated logic i want to use in the worker. Move that code to the common library and make flexiserver link against the common library.
* Don't enable debugging by default if the version is "unstable"Colin Walters2013-11-222-23/+0
| | | | | | | | | | | | | | | | | I'm open to negotiation for this, but basically...gdm is at present second only to the kernel in the sheer amount of spew it emits - when the version is "unstable". But it always will be for Continuous. Nowadays of course, I think Continuous helps act as a testing system for GDM that obviates a lot of the need for lots of debugging info for gdm during "unstable" cycles. I suspect that we will over time add other informational messages at strategic points by default; this patch is not the end of the story. It's a new beginning. https://bugzilla.gnome.org/show_bug.cgi?id=715037
* Add an option to use GDM as a standalone XDMCP serverLaurent Bigonville2013-11-111-0/+1
| | | | | | | | | This patch add an option (xdmcp/ShowLocalGreeter) to disable the local X console and turn GDM into a simple XDMCP server Thanks to Patrick Monnerat and Josselin Mouette for the patch https://bugzilla.gnome.org/show_bug.cgi?id=567522
* drop authdirRay Strode2013-08-281-1/+0
| | | | | | | | | | | | <Black_Prince> halfline: what's the point of authdir in gdm? (/var/gdm) ? <Black_Prince> it doesn't appear to be used anywere <halfline> no point <Black_Prince> there are some references in daemon/main.c, but nothing ever gets stored in there <Black_Prince> instead, xauthdir is used https://bugzilla.gnome.org/show_bug.cgi?id=706974
* Fix checks for logindMartin Pitt2013-03-291-0/+3
| | | | | | | | | | | | It is possible to build systemd without logind or run logind without systemd init, in both cases testing for systemd init is wrong. Check for /run/systemd/seats in the parts which talk to logind instead, as recommended by systemd upstream. For details, see: <https://mail.gnome.org/archives/desktop-devel-list/2013-March/msg00092.html> https://bugzilla.gnome.org/show_bug.cgi?id=696266
* log: When using systemd, just log to stdout/stderrColin Walters2013-02-043-112/+74
| | | | | | | | | | | | | 1) This avoids duplicated output since we were using LOG_PERROR which writes to both syslog and stderr. 2) syslog() is basically deprecated in the systemd world, so let's avoid using it. In this approach, we also output a level prefix to stderr. Some adjustments from Simon McVittie https://bugzilla.gnome.org/show_bug.cgi?id=692308
* log: Log messages of level MESSAGE, INFO tooSimon McVittie2013-02-041-1/+1
| | | | | | | | | Previously, gdm would log messages of levels ERROR, CRITICAL, WARNING, and optionally also DEBUG, to syslog. This left messages of level MESSAGE or INFO not logged, and no way to get them logged. Bug: https://bugzilla.gnome.org/show_bug.cgi?id=692301 Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
* Log output to systemd journal if availableColin Walters2013-01-222-0/+28
| | | | | | | | | | | Previously, we put stuff in /var/log/gdm for the session, and then ~/.cache/gdm/session.log for the user. Now let's use explicit sd_journal_stream_fd() calls. Some adjustments from Ray Strode. https://bugzilla.gnome.org/show_bug.cgi?id=676181
* Port to g_unix_signal_add(), drop GdmSignalHandlerColin Walters2013-01-225-746/+1
| | | | | | | | | | | The level of copy/paste going on here before is rather astonishing. For example, in some cases, I dropped spurious handling of SIGHUP, when the code didn't have any settings to reread. Anyways, the code is now clearer, and we get to drop all the bits of gdm-signal-handler.[ch] for the integrated GLib handling. https://bugzilla.gnome.org/show_bug.cgi?id=676181
* gdm-common: Drop some dead codeColin Walters2012-12-034-78/+6
| | | | | | | | | | | -unknown-origin.[ch] according to ChangeLog was about copyright status...but the file clearly has a copyright header now, so presumably this is just long dead history. Nothing was using gdm_safe_fopen_w(). After deleting that, we're left with VE_IGNORE_EINTR(), which is now just in gdm-common.h https://bugzilla.gnome.org/show_bug.cgi?id=689569
* gdm-md5: DeleteColin Walters2012-12-033-509/+0
| | | | | | Nothing was using it... https://bugzilla.gnome.org/show_bug.cgi?id=689569
* Drop calls to g_type_init()/g_thread_init()Colin Walters2012-12-032-4/+0
| | | | | | Both are deprecated and no longer necessary. https://bugzilla.gnome.org/show_bug.cgi?id=689569
* Trivial: Update FSF Address.Dominique Leuenberger2012-09-0632-41/+41
| | | | Fix bug 683383.
* daemon: Add initial setup integrationJasper St. Pierre2012-08-011-0/+1
| | | | | | | | | | | | | | | | | When a system boots for the first time, we want to show a special tool that will allow the user to set up their system the way they want to. This will be triggered by a special file: /var/run/wants-initial-setup The responsibilities of this tool include creating the user's account, so we have to create a special user account to run the tool under. Administrators are given the ability to turn this off in a GDM setting if they want to. https://bugzilla.gnome.org/show_bug.cgi?id=678057
* common: Use GDBus for GdmSettingsGiovanni Campagna2012-07-174-178/+144
| | | | | | | | | | | GdmSettings is a system bus service provided by GDM so that greeters can read custom.conf without parsing the file themselves. This commit changes GdmSettings to use gdbus instead of dbus-glib. https://bugzilla.gnome.org/show_bug.cgi?id=622888