head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.40 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.38 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.36 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.34 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.32 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.30 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.28 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.26 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.24 pkgsrc-2024Q1-base:1.1 pkgsrc-2023Q4:1.1.0.22 pkgsrc-2023Q4-base:1.1 pkgsrc-2023Q3:1.1.0.20 pkgsrc-2023Q3-base:1.1 pkgsrc-2023Q2:1.1.0.18 pkgsrc-2023Q2-base:1.1 pkgsrc-2023Q1:1.1.0.16 pkgsrc-2023Q1-base:1.1 pkgsrc-2022Q4:1.1.0.14 pkgsrc-2022Q4-base:1.1 pkgsrc-2022Q3:1.1.0.12 pkgsrc-2022Q3-base:1.1 pkgsrc-2022Q2:1.1.0.10 pkgsrc-2022Q2-base:1.1 pkgsrc-2022Q1:1.1.0.8 pkgsrc-2022Q1-base:1.1 pkgsrc-2021Q4:1.1.0.6 pkgsrc-2021Q4-base:1.1 pkgsrc-2021Q3:1.1.0.4 pkgsrc-2021Q3-base:1.1 pkgsrc-2021Q2:1.1.0.2 pkgsrc-2021Q2-base:1.1; locks; strict; comment @# @; 1.1 date 2021.04.16.13.57.52; author cirnatdan; state Exp; branches; next ; commitid 6rs8yYxeYRqruwPC; desc @@ 1.1 log @x11/libgdm: import libgdm-40.0 The GNOME Display Manager is a system service that is responsible for providing graphical log-ins and managing local and remote displays. This package installs libgdm, which is the client part of GDM. @ text @$NetBSD$ $OpenBSD: patch-daemon_gdm-local-display-factory_c,v 1.13 2019/11/02 15:34:07 ajacoutot Exp $ REVERT - OpenBSD does not have a systemd implementation (we need ConsoleKit) From 1ac67f522f5690c27023d98096ca817f12f7eb88 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 12 Jun 2015 13:28:01 -0400 Subject: drop consolekit support REVERT - OpenBSD does not have a systemd implementation (we need ConsoleKit) From 9be58c9ec9a3a411492a5182ac4b0d51fdc3a323 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Fri, 12 Jun 2015 13:48:52 -0400 Subject: require logind support Index: daemon/gdm-local-display-factory.c --- daemon/gdm-local-display-factory.c.orig 2021-03-16 20:48:04.000000000 +0000 +++ daemon/gdm-local-display-factory.c @@@@ -28,7 +28,9 @@@@ #include #include +#ifdef WITH_SYSTEMD #include +#endif #include "gdm-common.h" #include "gdm-manager.h" @@@@ -42,6 +44,8 @@@@ #include "gdm-local-display.h" #include "gdm-legacy-display.h" +#define CK_SEAT1_PATH "/org/freedesktop/ConsoleKit/Seat1" + #define GDM_DBUS_PATH "/org/gnome/DisplayManager" #define GDM_LOCAL_DISPLAY_FACTORY_DBUS_PATH GDM_DBUS_PATH "/LocalDisplayFactory" #define GDM_MANAGER_DBUS_NAME "org.gnome.DisplayManager.LocalDisplayFactory" @@@@ -60,9 +64,10 @@@@ struct _GdmLocalDisplayFactory /* FIXME: this needs to be per seat? */ guint num_failures; - +#ifdef WITH_SYSTEMD guint seat_new_id; guint seat_removed_id; +#endif guint seat_properties_changed_id; gboolean seat0_graphics_check_timed_out; @@@@ -89,8 +94,9 @@@@ static void ensure_display_for_seat static void on_display_status_changed (GdmDisplay *display, GParamSpec *arg1, GdmLocalDisplayFactory *factory); - +#ifdef WITH_SYSTEMD static gboolean gdm_local_display_factory_sync_seats (GdmLocalDisplayFactory *factory); +#endif static gpointer local_display_factory_object = NULL; static gboolean lookup_by_session_id (const char *id, GdmDisplay *display, @@@@ -235,7 +241,7 @@@@ gdm_local_display_factory_create_transie g_debug ("GdmLocalDisplayFactory: Creating transient display"); -#ifdef ENABLE_USER_DISPLAY_SERVER +#if defined(ENABLE_USER_DISPLAY_SERVER) && defined(WITH_SYSTEMD) display = gdm_local_display_new (); if (gdm_local_display_factory_use_wayland ()) g_object_set (G_OBJECT (display), "session-type", "wayland", NULL); @@@@ -376,7 +382,7 @@@@ on_display_status_changed (GdmDisplay /* reset num failures */ factory->num_failures = 0; - gdm_local_display_factory_sync_seats (factory); + ensure_display_for_seat (factory, seat_id); } break; case GDM_DISPLAY_FAILED: @@@@ -480,9 +486,10 @@@@ ensure_display_for_seat (GdmLocalDisplay const char *session_type = "wayland"; GdmDisplayStore *store; GdmDisplay *display = NULL; +#ifdef WITH_SYSTEMD g_autofree char *login_session_id = NULL; - ret = sd_seat_can_graphical (seat_id); + ret = sd_seat_can_graphical (seat_id); if (ret < 0) { g_critical ("Failed to query CanGraphical information for seat %s", seat_id); @@@@ -496,7 +503,7 @@@@ ensure_display_for_seat (GdmLocalDisplay g_debug ("GdmLocalDisplayFactory: System supports graphics"); seat_supports_graphics = TRUE; } - +#endif if (g_strcmp0 (seat_id, "seat0") == 0) { is_seat0 = TRUE; @@@@ -575,7 +582,7 @@@@ ensure_display_for_seat (GdmLocalDisplay g_debug ("GdmLocalDisplayFactory: display already created"); return; } - +#ifdef WITH_SYSTEMD /* If we already have a login window, switch to it */ if (gdm_get_login_window_session_id (seat_id, &login_session_id)) { GdmDisplay *display; @@@@ -589,14 +596,14 @@@@ ensure_display_for_seat (GdmLocalDisplay g_object_set (G_OBJECT (display), "status", GDM_DISPLAY_MANAGED, NULL); g_debug ("GdmLocalDisplayFactory: session %s found, activating.", login_session_id); - gdm_activate_session_by_id (factory->connection, seat_id, login_session_id); + activate_session_by_id (factory->connection, seat_id, login_session_id); return; } } - +#endif g_debug ("GdmLocalDisplayFactory: Adding display on seat %s", seat_id); -#ifdef ENABLE_USER_DISPLAY_SERVER +#if defined(ENABLE_USER_DISPLAY_SERVER) && defined(WITH_SYSTEMD) if (is_seat0) { display = gdm_local_display_new (); if (session_type != NULL) { @@@@ -627,7 +634,7 @@@@ ensure_display_for_seat (GdmLocalDisplay return; } - +#ifdef WITH_SYSTEMD static void delete_display (GdmLocalDisplayFactory *factory, const char *seat_id) { @@@@ -791,7 +798,7 @@@@ lookup_by_tty (const char *id, return g_strcmp0 (tty_to_check, tty_to_find) == 0; } -#if defined(ENABLE_USER_DISPLAY_SERVER) +#if defined(ENABLE_USER_DISPLAY_SERVER) && defined(WITH_SYSTEMD) static void maybe_stop_greeter_in_background (GdmLocalDisplayFactory *factory, GdmDisplay *display) @@@@ -1046,7 +1053,7 @@@@ gdm_local_display_factory_stop_monitor ( } #endif } - +#endif static void on_display_added (GdmDisplayStore *display_store, const char *id, @@@@ -1079,6 +1086,7 @@@@ static gboolean gdm_local_display_factory_start (GdmDisplayFactory *base_factory) { GdmLocalDisplayFactory *factory = GDM_LOCAL_DISPLAY_FACTORY (base_factory); + GdmDisplay *display; GdmDisplayStore *store; g_return_val_if_fail (GDM_IS_LOCAL_DISPLAY_FACTORY (factory), FALSE); @@@@ -1097,8 +1105,15 @@@@ gdm_local_display_factory_start (GdmDisp factory, 0); - gdm_local_display_factory_start_monitor (factory); - return gdm_local_display_factory_sync_seats (factory); +#ifdef WITH_SYSTEMD + if (LOGIND_RUNNING()) { + gdm_local_display_factory_start_monitor (factory); + return gdm_local_display_factory_sync_seats (factory); + } +#endif + /* On ConsoleKit just create Seat1, and that's it. */ + ensure_display_for_seat (factory, CK_SEAT1_PATH); + return TRUE; } static gboolean @@@@ -1108,9 +1123,9 @@@@ gdm_local_display_factory_stop (GdmDispl GdmDisplayStore *store; g_return_val_if_fail (GDM_IS_LOCAL_DISPLAY_FACTORY (factory), FALSE); - +#ifdef WITH_SYSTEMD gdm_local_display_factory_stop_monitor (factory); - +#endif store = gdm_display_factory_get_display_store (GDM_DISPLAY_FACTORY (factory)); g_signal_handlers_disconnect_by_func (G_OBJECT (store), @@@@ -1262,9 +1277,9 @@@@ gdm_local_display_factory_finalize (GObj g_clear_object (&factory->skeleton); g_hash_table_destroy (factory->used_display_numbers); - +#ifdef WITH_SYSTEMD gdm_local_display_factory_stop_monitor (factory); - +#endif G_OBJECT_CLASS (gdm_local_display_factory_parent_class)->finalize (object); } @