| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Currently, the GDM meson build has a hard dependency on systemd.
However, GDM can function just fine if one is using elogind. This allows
a user to build GDM against libelogind and also disable the systemd
system and user units.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
error was leaked. While at it use g_auto*.
|
|
|
|
| |
Variables g, k, l are leaked. While at it, use g_autofree.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
gdm_settings_direct_get_string() is never called with value == NULL.
Remove the check to make it behave like the other "get" functions.
|
|
|
|
|
|
|
|
| |
...and also in private get/set functions that are called via
gdm_settings_get_value() and gdm_settings_set_value().
gdm_settings_get_value() is never called with value == NULL.
Remove this case and add a guard.
|
| |
|
| |
|
|
|
|
| |
Otherwise we are going to read `res` that contains a garbage value.
|
|
|
|
| |
Value stored to 'ret' is never read.
|
|
|
|
|
|
|
| |
gdm_settings_direct_set doesn't exist.
gdm_settings_direct_get is unused.
Fixes: e1a7b7cac426f81ea2ab60263907bd92032f1068
|
|
|
|
|
|
| |
This function doesn't exist.
Fixes: e1a7b7cac426f81ea2ab60263907bd92032f1068
|
|
|
|
|
|
|
|
|
|
| |
Ideally we would reread /run/gdm/custom.conf after we've decided
graphics setup is complete. This is because the file may not
get written out by udev until after GDM is already started and waiting.
As a first step to get there, this commit adds an API for rereading
the file, and changes the SIGHUP handler to use it (instead of
the complete teardown and reinitialization it was doing before).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There's currently a way to disable wayland, but no way to disable Xorg.
We currently prefer wayland if it's not disabled, but have no way to
prefer Xorg without disabling wayland entirely.
There's currently no way use legacy Xorg support at all if user display
server support is enabled at a build time.
This commit adds more flexibility to display server selection. It adds
two new keys: XorgEnable and and PreferredDisplayServer.
XorgEnable=false disables Xorg support entirely on seat 0.
PreferredDisplayServer can be set to "wayland", "xorg", "legacy-xorg" or
"none" to select which display server is used by default. If it's set to
"wayland", it will fall back to "xorg". If it's set to "xorg" it will
fall back to "wayland".
|
|
|
|
|
|
|
|
|
|
|
| |
In the initial setup session we may need to run a Flatpak application;
Flatpak requires XDG_DATA_DIRS to include its locations to work
correctly, but that's not set at the moment for the initial-setup
session.
This commit borrows the code from GdmSessionWorker to read
XDG_DATA_DIRS from gdm's env.d machinery for the initial-setup session
as well.
|
|
|
|
|
| |
We need to use this machinery from a second location; as a first step
factor it out to gdm-common.
|
|
|
|
| |
It's deprecated now, and always returns TRUE.
|
|
|
|
| |
Replace g_set_error with g_set_error_literal where it makes sense.
|
|
|
|
|
|
| |
Our turkey has freezer burn, so I'm dropping it.
https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/96
|
|
|
|
|
|
|
|
|
|
| |
We're going to be switching to meson, and meson doesn't
deal too well with an @ in the configuration file that's not
part of a substitution variable.
This commit switches the gdm service over to use a cmake style
of substitution variables, so we can later tell meson to use
configure in cmake mode and workaround the @ confusion.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately, GDM may be running multiple greeters, and each greeter is
currently using the same user. So while in a lot of setups each user
should only have one graphical session and also only one DBus session
bus, this is not true for the gdm greeter.
Lacking another solution (e.g. separate users), we need to be able to
correctly lookup the session information for all greeter instances. We
can do so by using sd_pid_get_session and using this information is safe
if it does return something.
See: #526
|
| |
|
|
|
|
|
|
|
| |
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
|