summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2013-11-07 20:54:55 +1300
committerRobert Ancell <robert.ancell@canonical.com>2013-11-07 20:54:55 +1300
commite0d7a27a171f9af59e09eb5ccbbd8f7b482ee634 (patch)
tree284b322c7eb7f1e83e2a80beef6ebdd5662b43d0
parentd3b49f45c181d06f5979cbc15cbb18927bbe7b75 (diff)
downloadlightdm-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.am2
-rw-r--r--configure.ac1
-rw-r--r--po/POTFILES.in1
-rw-r--r--src/Makefile.am12
-rw-r--r--src/dm-tool.c (renamed from utils/dm-tool.c)0
-rw-r--r--src/session-child.c5
-rw-r--r--tests/Makefile.am2
-rw-r--r--tests/scripts/util-path.conf33
-rwxr-xr-xtests/test-util-path2
-rw-r--r--utils/Makefile.am30
-rwxr-xr-xutils/gdmflexiserver17
-rw-r--r--utils/lightdm-set-defaults.c277
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;
-
-}