diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2013-11-07 20:54:55 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2013-11-07 20:54:55 +1300 |
commit | e0d7a27a171f9af59e09eb5ccbbd8f7b482ee634 (patch) | |
tree | 284b322c7eb7f1e83e2a80beef6ebdd5662b43d0 | |
parent | d3b49f45c181d06f5979cbc15cbb18927bbe7b75 (diff) | |
download | lightdm-e0d7a27a171f9af59e09eb5ccbbd8f7b482ee634.tar.gz |
Remove lightdm-set-defaults and gdmflexiserver.
lightdm-set-defaults is not required since 1.8 as configuration can now be loaded from a lightdm.conf.d directory. This allows a file per setting to be written and better handles more than one thing (e.g. a packaging system) setting these values.
Any software that still relies on gdmflexiserver should have switched to using dm-tool or the D-Bus interface by now.
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | po/POTFILES.in | 1 | ||||
-rw-r--r-- | src/Makefile.am | 12 | ||||
-rw-r--r-- | src/dm-tool.c (renamed from utils/dm-tool.c) | 0 | ||||
-rw-r--r-- | src/session-child.c | 5 | ||||
-rw-r--r-- | tests/Makefile.am | 2 | ||||
-rw-r--r-- | tests/scripts/util-path.conf | 33 | ||||
-rwxr-xr-x | tests/test-util-path | 2 | ||||
-rw-r--r-- | utils/Makefile.am | 30 | ||||
-rwxr-xr-x | utils/gdmflexiserver | 17 | ||||
-rw-r--r-- | utils/lightdm-set-defaults.c | 277 |
12 files changed, 13 insertions, 369 deletions
diff --git a/Makefile.am b/Makefile.am index 467d5c6f..73c6788e 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,7 +6,7 @@ SUBDIRS += liblightdm-qt if COMPILE_TESTS SUBDIRS += tests endif -SUBDIRS += data po src doc help utils +SUBDIRS += data po src doc help DISTCHECK_CONFIGURE_FLAGS = --enable-introspection --enable-gtk-doc diff --git a/configure.ac b/configure.ac index a87fb93e..a57e1668 100644 --- a/configure.ac +++ b/configure.ac @@ -217,7 +217,6 @@ po/Makefile.in src/Makefile tests/Makefile tests/src/Makefile -utils/Makefile ]) AC_OUTPUT diff --git a/po/POTFILES.in b/po/POTFILES.in index 792db4fe..fcd65f67 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -2,5 +2,4 @@ # Please keep this file sorted alphabetically. [encoding: UTF-8] src/lightdm.c -utils/lightdm-set-defaults.c utils/dm-tool.c diff --git a/src/Makefile.am b/src/Makefile.am index 62ed09de..7a6962df 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,5 @@ sbin_PROGRAMS = lightdm +bin_PROGRAMS = dm-tool lightdm_SOURCES = \ accounts.c \ @@ -93,6 +94,17 @@ lightdm_LDADD = \ -lgcrypt \ -lpam +dm_tool_SOURCES = \ + dm-tool.c + +dm_tool_CFLAGS = \ + $(LIGHTDM_CFLAGS) \ + -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \ + -DLOCALE_DIR=\"$(datadir)/locale\" + +dm_tool_LDADD = \ + $(LIGHTDM_LIBS) + pkglibexec_PROGRAMS = lightdm-guest-session-wrapper lightdm_guest_session_wrapper_SOURCES = lightdm-guest-session-wrapper.c diff --git a/utils/dm-tool.c b/src/dm-tool.c index 99073569..99073569 100644 --- a/utils/dm-tool.c +++ b/src/dm-tool.c diff --git a/src/session-child.c b/src/session-child.c index bf70aa7f..f9d0bfb3 100644 --- a/src/session-child.c +++ b/src/session-child.c @@ -530,11 +530,6 @@ session_child_run (int argc, char **argv) g_free (value); } - /* Put our tools directory in the path as a hack so we can use the legacy gdmflexiserver interface */ - path = pam_getenv (pam_handle, "PATH"); - if (path) - pam_putenv (pam_handle, g_strdup_printf ("PATH=%s:%s", PKGLIBEXEC_DIR, path)); - /* Catch terminate signal and pass it to the child */ signal (SIGTERM, signal_cb); diff --git a/tests/Makefile.am b/tests/Makefile.am index 92014235..6bc5167a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -52,7 +52,6 @@ TESTS = \ test-xdg-current-desktop \ test-xdg-seat \ test-language-env \ - test-util-path \ test-session-stdout \ test-session-stderr \ test-session-stderr-multi-write \ @@ -451,7 +450,6 @@ EXTRA_DIST = \ scripts/user-layout.conf \ scripts/user-logged-in.conf \ scripts/user-name.conf \ - scripts/util-path.conf \ scripts/user-renamed.conf \ scripts/user-renamed-invalid.conf \ scripts/user-session.conf \ diff --git a/tests/scripts/util-path.conf b/tests/scripts/util-path.conf deleted file mode 100644 index fe21ed83..00000000 --- a/tests/scripts/util-path.conf +++ /dev/null @@ -1,33 +0,0 @@ -# -# Check utility path is set in session -# - -[SeatDefaults] -autologin-user=have-password1 -user-session=default - -#?RUNNER DAEMON-START - -# X server starts -#?XSERVER-0 START VT=7 - -# Daemon connects when X server is ready -#?*XSERVER-0 INDICATE-READY -#?XSERVER-0 INDICATE-READY -#?XSERVER-0 ACCEPT-CONNECT - -# Session starts -#?SESSION-X-0 START XDG_SEAT=seat0 XDG_VTNR=7 DESKTOP_SESSION=default USER=have-password1 -#?XSERVER-0 ACCEPT-CONNECT -#?SESSION-X-0 CONNECT-XSERVER - -# Check utility path is there -#?*SESSION-X-0 READ-ENV NAME=PATH -# FIXME: This is a really crap regex and the path could be overridden in the configure stage -#?SESSION-X-0 READ-ENV NAME=PATH VALUE=.*/lightdm:.* - -# Cleanup -#?*STOP-DAEMON -#?SESSION-X-0 TERMINATE SIGNAL=15 -#?XSERVER-0 TERMINATE SIGNAL=15 -#?RUNNER DAEMON-EXIT STATUS=0 diff --git a/tests/test-util-path b/tests/test-util-path deleted file mode 100755 index 05c7cd5d..00000000 --- a/tests/test-util-path +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -./src/dbus-env ./src/test-runner util-path test-gobject-greeter diff --git a/utils/Makefile.am b/utils/Makefile.am deleted file mode 100644 index 6c75d6dc..00000000 --- a/utils/Makefile.am +++ /dev/null @@ -1,30 +0,0 @@ -bin_PROGRAMS = dm-tool -pkglibexec_PROGRAMS = lightdm-set-defaults -legacydir = $(libexecdir)/lightdm -dist_legacy_SCRIPTS = gdmflexiserver - -dm_tool_SOURCES = \ - dm-tool.c - -dm_tool_CFLAGS = \ - $(LIGHTDM_CFLAGS) \ - -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \ - -DLOCALE_DIR=\"$(datadir)/locale\" - -dm_tool_LDADD = \ - $(LIGHTDM_LIBS) - -lightdm_set_defaults_SOURCES = \ - lightdm-set-defaults.c - -lightdm_set_defaults_CFLAGS = \ - $(LIGHTDM_CFLAGS) \ - -DCONFIG_DIR=\"$(sysconfdir)/lightdm\" \ - -DLOCALE_DIR=\"$(datadir)/locale\" - -lightdm_set_defaults_LDADD = \ - $(LIGHTDM_LIBS) - -DISTCLEANFILES = \ - Makefile.in - diff --git a/utils/gdmflexiserver b/utils/gdmflexiserver deleted file mode 100755 index 0e040302..00000000 --- a/utils/gdmflexiserver +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2011 Canonical Ltd -# Author: Michael Terry <michael.terry@canonical.com> -# -# This program is free software: you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation, version 3 of the License. -# -# See http://www.gnu.org/copyleft/gpl.html for the full text of the license. - -if [ -z "$XDG_SEAT_PATH" ]; then - # something went wrong - exit 1 -fi - -dbus-send --system --type=method_call --print-reply --dest=org.freedesktop.DisplayManager $XDG_SEAT_PATH org.freedesktop.DisplayManager.Seat.SwitchToGreeter diff --git a/utils/lightdm-set-defaults.c b/utils/lightdm-set-defaults.c deleted file mode 100644 index 75ea17c0..00000000 --- a/utils/lightdm-set-defaults.c +++ /dev/null @@ -1,277 +0,0 @@ -/* - * Copyright (C) 2011 Didier Roche. - * Author: Didier Roche <didrocks@ubuntu.com> - * - * This program is free software: you can redistribute it and/or modify it under - * the terms of the GNU General Public License as published by the Free Software - * Foundation, either version 3 of the License, or (at your option) any later - * version. See http://www.gnu.org/copyleft/gpl.html the full text of the - * license. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <stdlib.h> -#include <unistd.h> - -#include <glib.h> -#include <glib/gi18n.h> - -#define SEATDEFAULT_KEY_GROUP "SeatDefaults" -#define TYPE_KEY_NAME "type" -#define SESSION_KEY_NAME "user-session" -#define GREETER_KEY_NAME "greeter-session" -#define AUTOLOGIN_KEY_NAME "autologin-user" -#define HIDE_USERS_KEY_NAME "greeter-hide-users" -#define MANUAL_LOGIN_KEY_NAME "greeter-show-manual-login" -#define REMOTE_LOGIN_KEY_NAME "greeter-show-remote-login" -#define ALLOW_GUEST_KEY_NAME "allow-guest" - -#define IS_STRING_EMPTY(x) ((x)==NULL||(x)[0]=='\0') - -static gboolean debug = FALSE; -static gboolean keep_old = FALSE; -static gboolean remove = FALSE; -static gboolean hide_users = FALSE; -static gboolean show_manual_login = FALSE; -static gboolean show_remote_login = FALSE; -static gboolean allow_guest = FALSE; - -static char *type = NULL; -static char *session = NULL; -static char *greeter = NULL; -static char *autologin = NULL; -static char *str_hide_users = NULL; -static char *str_show_manual_login = NULL; -static char *str_show_remote_login = NULL; -static char *str_allow_guest = NULL; - -static GOptionEntry entries[] = -{ - { "debug", 'd', 0, G_OPTION_ARG_NONE, &debug, N_("Enable debugging"), NULL }, - { "keep-old", 'k', 0, G_OPTION_ARG_NONE, &keep_old, N_("Only update if no default already set"), NULL }, - { "remove", 'r', 0, G_OPTION_ARG_NONE, &remove, N_("Remove default value if it's the current one"), NULL }, - { "type", 't', 0, G_OPTION_ARG_STRING, &type, N_("Set default seat type"), NULL }, - { "session", 's', 0, G_OPTION_ARG_STRING, &session, N_("Set default session"), NULL }, - { "greeter", 'g', 0, G_OPTION_ARG_STRING, &greeter, N_("Set default greeter"), NULL }, - { "autologin",'a', 0, G_OPTION_ARG_STRING, &autologin, N_("Set autologin user"), NULL }, - { "hide-users",'i', 0, G_OPTION_ARG_STRING, &str_hide_users, N_("Set greeter-hide-users to true or false"), NULL }, - { "show-manual-login",'m', 0, G_OPTION_ARG_STRING, &str_show_manual_login, N_("Set show-manual-login to true or false"), NULL }, - { "show-remote-login",'R', 0, G_OPTION_ARG_STRING, &str_show_remote_login, N_("Set show-remote-login to true or false"), NULL }, - { "allow-guest",'l', 0, G_OPTION_ARG_STRING, &str_allow_guest, N_("Set allow-guest to true or false"), NULL }, - { NULL } -}; - -void -show_nothing(const gchar *log_domain, - GLogLevelFlags log_level, - const gchar *message, - gpointer unused_data) {}; - -int -update_boolean(const gboolean new_value, - gboolean keep_old, - const gchar *key_group, - const gchar *key_name, - GKeyFile *keyfile) -{ - if (keep_old) - g_debug ("keep-old mode: keep previous default value"); - else { - g_debug ("Update to %d for %s", new_value, key_name); - g_key_file_set_boolean (keyfile, key_group, key_name, new_value); - } - return(0); -} - -int -update_string(const gchar *default_value, - const gchar *new_value, - gboolean keep_old, - gboolean remove, - const gchar *key_group, - const gchar *key_name, - GKeyFile *keyfile) -{ - if (!(default_value) || (strlen(default_value) < 1)) { - g_debug ("No existing valid value for %s. Set to %s", key_name, new_value); - g_key_file_set_string (keyfile, key_group, key_name, new_value); - } - else { - if (remove) { - if (g_strcmp0 (default_value, new_value) == 0) { - g_debug ("Remove %s as default value for %s", default_value, key_name); - g_key_file_set_string (keyfile, key_group, key_name, ""); - return(0); - } - g_debug ("Can't remove: %s is not the default value for %s", default_value, key_name); - return(4); - } - else { - g_debug ("Found existing default value(%s) for %s", default_value, key_name); - if (keep_old) - g_debug ("keep-old mode: keep previous default value"); - else { - g_debug ("Update to %s for %s", new_value, key_name); - g_key_file_set_string (keyfile, key_group, key_name, new_value); - } - } - } - return(0); -} - -int -str_to_bool(const gchar *str, gboolean *bool_out) -{ - if (IS_STRING_EMPTY(str)) { - return -1; - } - else if (strncasecmp(str, "true", 4)==0) { - *bool_out = TRUE; - return 0; - } - else if (strncasecmp(str, "false", 5)==0) { - *bool_out = FALSE; - return 0; - } - else { - return -2; - } -} - -int -main (int argc, char *argv[]) -{ - GOptionContext *context = NULL; - GError *error = NULL; - - GKeyFile *keyfile; - GKeyFileFlags flags; - gchar *s_data; - gsize size; - const gchar *gdm_conf_file = CONFIG_DIR "/lightdm.conf"; - - gchar *default_type = NULL; - gchar *default_session = NULL; - gchar *default_greeter = NULL; - gchar *default_autologin = NULL; - gint return_code = 0; - - bindtextdomain (GETTEXT_PACKAGE, LOCALE_DIR); - bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); - textdomain (GETTEXT_PACKAGE); - -#if !defined(GLIB_VERSION_2_36) - g_type_init (); -#endif - - context = g_option_context_new (N_("- set lightdm default values")); - g_option_context_add_main_entries (context, entries, NULL); - if (!g_option_context_parse (context, &argc, &argv, &error)) { - g_printerr (N_("option parsing failed: %s\n"), error->message); - g_option_context_free (context); - g_error_free (error); - return 1; - } - if (IS_STRING_EMPTY (type) && IS_STRING_EMPTY (session) && IS_STRING_EMPTY (greeter) && IS_STRING_EMPTY (autologin) && IS_STRING_EMPTY(str_hide_users) && IS_STRING_EMPTY(str_show_manual_login) && IS_STRING_EMPTY(str_show_remote_login) && IS_STRING_EMPTY(str_allow_guest)) { - g_printerr (N_("Wrong usage of the command\n%s"), g_option_context_get_help (context, FALSE, NULL)); - g_option_context_free (context); - return 1; - } - if (context) - g_option_context_free (context); - if (!debug) - g_log_set_handler (NULL, G_LOG_LEVEL_DEBUG, show_nothing, NULL); - - keyfile = g_key_file_new (); - flags = G_KEY_FILE_KEEP_COMMENTS | G_KEY_FILE_KEEP_TRANSLATIONS; - if (!(g_key_file_load_from_file (keyfile, gdm_conf_file, flags, &error))) { - g_debug ("File doesn't seem to exist or can't be read: create one (%s)", error->message); - g_error_free (error); - error = NULL; - } - - // try to get the right keys - default_type = g_key_file_get_string (keyfile, SEATDEFAULT_KEY_GROUP, TYPE_KEY_NAME, NULL); - default_session = g_key_file_get_string (keyfile, SEATDEFAULT_KEY_GROUP, SESSION_KEY_NAME, NULL); - default_greeter = g_key_file_get_string (keyfile, SEATDEFAULT_KEY_GROUP, GREETER_KEY_NAME, NULL); - default_autologin = g_key_file_get_string (keyfile, SEATDEFAULT_KEY_GROUP, AUTOLOGIN_KEY_NAME, NULL); - - if (!(IS_STRING_EMPTY (type))) - return_code = update_string (default_type, type, keep_old, remove, SEATDEFAULT_KEY_GROUP, TYPE_KEY_NAME, keyfile); - if (!(IS_STRING_EMPTY (session))) - return_code = update_string (default_session, session, keep_old, remove, SEATDEFAULT_KEY_GROUP, SESSION_KEY_NAME, keyfile); - if (!(IS_STRING_EMPTY (greeter)) && (return_code == 0)) - return_code = update_string (default_greeter, greeter, keep_old, remove, SEATDEFAULT_KEY_GROUP, GREETER_KEY_NAME, keyfile); - if (!(IS_STRING_EMPTY (autologin)) && (return_code == 0)) - return_code = update_string (default_autologin, autologin, keep_old, remove, SEATDEFAULT_KEY_GROUP, AUTOLOGIN_KEY_NAME, keyfile); - if (!(IS_STRING_EMPTY(str_hide_users)) && (return_code == 0)) { - if (str_to_bool(str_hide_users, &hide_users) == 0) { - return_code = update_boolean (hide_users, keep_old, SEATDEFAULT_KEY_GROUP, HIDE_USERS_KEY_NAME, keyfile); - } - else { - g_printerr (N_("true and false are the only valid choices for hide-users\n")); - return 1; - } - } - if (!(IS_STRING_EMPTY(str_allow_guest)) && (return_code == 0)) { - if (str_to_bool(str_allow_guest, &allow_guest) == 0) { - return_code = update_boolean (allow_guest, keep_old, SEATDEFAULT_KEY_GROUP, ALLOW_GUEST_KEY_NAME, keyfile); - } - else { - g_printerr (N_("true and false are the only valid choices for allow-guest\n")); - return 1; - } - } - if (!(IS_STRING_EMPTY(str_show_manual_login)) && (return_code == 0)) { - if (str_to_bool(str_show_manual_login, &show_manual_login) == 0) { - return_code = update_boolean (show_manual_login, keep_old, SEATDEFAULT_KEY_GROUP, MANUAL_LOGIN_KEY_NAME, keyfile); - } - else { - g_printerr (N_("true and false are the only valid choices for show-manual-login\n")); - return 1; - } - } - if (!(IS_STRING_EMPTY(str_show_remote_login)) && (return_code == 0)) { - if (str_to_bool(str_show_remote_login, &show_remote_login) == 0) { - return_code = update_boolean (show_remote_login, keep_old, SEATDEFAULT_KEY_GROUP, REMOTE_LOGIN_KEY_NAME, keyfile); - } - else { - g_printerr (N_("true and false are the only valid choices for show-remote-login\n")); - return 1; - } - } - - if (return_code == 0) { - s_data = g_key_file_to_data (keyfile, &size, &error); - if (!s_data) { - g_debug ("Can't convert data to string: %s", error->message); - g_error_free (error); - return_code = 1; - } - else { - if(!g_file_set_contents (gdm_conf_file, s_data, size, &error)) { - g_printerr ("Can't update: %s\n", error->message); - g_error_free (error); - return_code = 1; - } - g_free (s_data); - } - } - - g_key_file_free (keyfile); - - if (default_type) - g_free (default_type); - if (default_session) - g_free (default_session); - if (default_greeter) - g_free (default_greeter); - if (default_autologin) - g_free (default_autologin); - - return return_code; - -} |