| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
This prevents strings from being unnecessarily copied.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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()`.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
This commit removes some tab characters that inadvertently snuck
into the code.
|
|
|
|
|
|
| |
Right now there are three copies of activate_session_id.
This commit consolidates the code to gdm-common.c
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
GLib has provided a wrapper for this with g_mkdtemp() since 2.30.
|
|
|
|
|
|
|
| |
Add runtime configuration file /run/gdm/custom.conf, making device
dependent configurations possible.
https://bugzilla.gnome.org/show_bug.cgi?id=789081
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=787287
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
This reverts commit 6594b1f262ffaa3d120c0b23f92bad2802f17e4a.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=787287
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=787288
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
I really don't want
$ git grep slave
to return hits.
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Now that consolekit support is gone, this commit drops all
the conditionalizing of logind support.
https://bugzilla.gnome.org/show_bug.cgi?id=743940
|
|
|
|
|
|
| |
It was deprecated in 3.16 to be removed in 3.18
https://bugzilla.gnome.org/show_bug.cgi?id=743940
|
|
|
|
| |
This makes it clear what settings gdm is using.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
This reverts commit e546e4dc6649a4fdf9065322420a28fa7e666782.
It's causing problems because bindir and sbindir are in the wrong
order for a user session.
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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...
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
<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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
-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
|
|
|
|
|
|
| |
Nothing was using it...
https://bugzilla.gnome.org/show_bug.cgi?id=689569
|
|
|
|
|
|
| |
Both are deprecated and no longer necessary.
https://bugzilla.gnome.org/show_bug.cgi?id=689569
|
|
|
|
| |
Fix bug 683383.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|