checked in (request 29925)
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=113
This commit is contained in:
committed by
Git OBS Bridge
parent
c1cb311d64
commit
463990edb7
301
SuSEconfig.gdm
301
SuSEconfig.gdm
@@ -3,19 +3,317 @@
|
|||||||
# Copyright (c) 2004-2006 SuSE
|
# Copyright (c) 2004-2006 SuSE
|
||||||
# Author: Stanislav Brabec <sbrabec@suse.cz>
|
# Author: Stanislav Brabec <sbrabec@suse.cz>
|
||||||
|
|
||||||
|
type -p awk &> /dev/null || {
|
||||||
|
echo "${0##*/}: No awk in PATH ... skipping"
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
type -p cmp &> /dev/null || {
|
type -p cmp &> /dev/null || {
|
||||||
echo "${0##*/}: No cmp in PATH ... skipping"
|
echo "${0##*/}: No cmp in PATH ... skipping"
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Read old values. We will need one for correct updating of
|
||||||
|
if test -f $r/etc/gdm/gdm_sysconfig.conf ; then
|
||||||
|
. $r/etc/gdm/gdm_sysconfig.conf
|
||||||
|
fi
|
||||||
|
export OLD_DISPLAYMANAGER_AUTOLOGIN="$DISPLAYMANAGER_AUTOLOGIN"
|
||||||
|
|
||||||
r=$ROOT
|
r=$ROOT
|
||||||
|
# Set default values. (This overwrites all variables from gdm_sysconfig.conf.)
|
||||||
|
DISPLAYMANAGER_REMOTE_ACCESS="no"
|
||||||
|
DISPLAYMANAGER_ROOT_LOGIN_REMOTE="no"
|
||||||
|
DISPLAYMANAGER_STARTS_XSERVER="yes"
|
||||||
|
DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN="no"
|
||||||
|
DISPLAYMANAGER_AUTOLOGIN=""
|
||||||
DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"
|
DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"
|
||||||
|
DISPLAYMANAGER_AD_INTEGRATION="no"
|
||||||
|
DISPLAYMANAGER_SHUTDOWN=""
|
||||||
test -f $r/etc/sysconfig/displaymanager || {
|
test -f $r/etc/sysconfig/displaymanager || {
|
||||||
echo "${0##*/}: No $r/etc/sysconfig/displaymanager found."
|
echo "${0##*/}: No $r/etc/sysconfig/displaymanager found."
|
||||||
exit 1
|
exit 1
|
||||||
}
|
}
|
||||||
. $r/etc/sysconfig/displaymanager
|
. $r/etc/sysconfig/displaymanager
|
||||||
|
|
||||||
|
test -f $r/etc/sysconfig/security || {
|
||||||
|
echo "${0##*/}: No $r/etc/sysconfig/security found."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
. $r/etc/sysconfig/security
|
||||||
|
|
||||||
|
test -f $r/lib/YaST/SuSEconfig.functions || {
|
||||||
|
echo "${0##*/}: ERROR - can not find $r"'/lib/YaST/SuSEconfig.functions!!'
|
||||||
|
echo "${0##*/}: This should not happen. Exit..."
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
. $r/lib/YaST/SuSEconfig.functions
|
||||||
|
|
||||||
|
GDM_IS_RUNNING=false
|
||||||
|
if test -z "$r" ; then
|
||||||
|
if test "$DISPLAYMANAGER" = gdm ; then
|
||||||
|
if /etc/init.d/xdm status >/dev/null ; then
|
||||||
|
GDM_IS_RUNNING=false
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Write new set of monitore variables.
|
||||||
|
echo -en "# custom.conf was last time updated with following sysconfig:\\nDISPLAYMANAGER_REMOTE_ACCESS=\"$DISPLAYMANAGER_REMOTE_ACCESS\"\\nDISPLAYMANAGER_ROOT_LOGIN_REMOTE=\"$DISPLAYMANAGER_ROOT_LOGIN_REMOTE\"\\nDISPLAYMANAGER_STARTS_XSERVER=\"$DISPLAYMANAGER_STARTS_XSERVER\"\\nDISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN=\"$DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN\"\\nDISPLAYMANAGER_AUTOLOGIN=\"$DISPLAYMANAGER_AUTOLOGIN\"\\nDISPLAYMANAGER_PASSWORD_LESS_LOGIN=\"$DISPLAYMANAGER_PASSWORD_LESS_LOGIN\"\\nDISPLAYMANAGER_AD_INTEGRATION=\"$DISPLAYMANAGER_AD_INTEGRATION\"\\nDISPLAYMANAGER_SHUTDOWN=\"$DISPLAYMANAGER_SHUTDOWN\"\\nPERMISSION_SECURITY=\"$PERMISSION_SECURITY\"\\n" >$r/etc/gdm/gdm_sysconfig.conf.new
|
||||||
|
|
||||||
|
# Are there any changes in monitored variables?
|
||||||
|
if cmp -s 2>/dev/null $r/etc/gdm/gdm_sysconfig.conf $r/etc/gdm/gdm_sysconfig.conf.new ; then
|
||||||
|
rm $r/etc/gdm/gdm_sysconfig.conf.new
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
function sysconfig_yesno_to_gdm {
|
||||||
|
eval local suseval=\$$1
|
||||||
|
case "$suseval" in
|
||||||
|
yes )
|
||||||
|
export $2=true
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
export $2=false
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
export comment_$2="displaymanager:$1"
|
||||||
|
}
|
||||||
|
function sysconfig_yesno_to_gdm_reversed {
|
||||||
|
eval local suseval=\$$1
|
||||||
|
case "$suseval" in
|
||||||
|
yes )
|
||||||
|
export $2=false
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
export $2=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
export comment_$2="displaymanager:~$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
sysconfig_yesno_to_gdm DISPLAYMANAGER_REMOTE_ACCESS xdmcp_Enable
|
||||||
|
|
||||||
|
sysconfig_yesno_to_gdm DISPLAYMANAGER_ROOT_LOGIN_REMOTE security_AllowRemoteRoot
|
||||||
|
|
||||||
|
export comment_servers_0="displaymanager:DISPLAYMANAGER_STARTS_XSERVER"
|
||||||
|
case "$DISPLAYMANAGER_STARTS_XSERVER" in
|
||||||
|
"yes" )
|
||||||
|
export servers_0=@SKIP@
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
export servers_0=inactive
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
sysconfig_yesno_to_gdm_reversed DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN security_DisallowTCP
|
||||||
|
|
||||||
|
sysconfig_yesno_to_gdm DISPLAYMANAGER_AD_INTEGRATION greeter_ShowDomain
|
||||||
|
|
||||||
|
export comment_daemon_AutomaticLoginEnable="displaymanager:DISPLAYMANAGER_AUTOLOGIN"
|
||||||
|
export comment_daemon_AutomaticLogin="displaymanager:DISPLAYMANAGER_AUTOLOGIN"
|
||||||
|
case "$DISPLAYMANAGER_AUTOLOGIN" in
|
||||||
|
"" )
|
||||||
|
export daemon_AutomaticLoginEnable=false
|
||||||
|
export daemon_AutomaticLogin=@SKIP@
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
export daemon_AutomaticLoginEnable=true
|
||||||
|
export daemon_AutomaticLogin="$DISPLAYMANAGER_AUTOLOGIN"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
export comment_greeter_AllowShutdown="displaymanager:DISPLAYMANAGER_SHUTDOWN"
|
||||||
|
export comment_greeter_SecureShutdown="displaymanager:DISPLAYMANAGER_SHUTDOWN"
|
||||||
|
case "$DISPLAYMANAGER_SHUTDOWN" in
|
||||||
|
root )
|
||||||
|
export greeter_AllowShutdown=true
|
||||||
|
export greeter_SecureShutdown=true
|
||||||
|
;;
|
||||||
|
# Remote users can never shutdown in GDM.
|
||||||
|
none )
|
||||||
|
export greeter_AllowShutdown=false
|
||||||
|
export greeter_SecureShutdown=true
|
||||||
|
;;
|
||||||
|
all )
|
||||||
|
export greeter_AllowShutdown=true
|
||||||
|
export greeter_SecureShutdown=false
|
||||||
|
;;
|
||||||
|
auto | * )
|
||||||
|
export comment_greeter_AllowShutdown="displaymanager:DISPLAYMANAGER_SHUTDOWN, security:PERMISSION_SECURITY"
|
||||||
|
export comment_greeter_SecureShutdown="displaymanager:DISPLAYMANAGER_SHUTDOWN, security:PERMISSION_SECURITY"
|
||||||
|
export comment_security_AllowRemoteRoot="displaymanager:DISPLAYMANAGER_ROOT_LOGIN_REMOTE,DISPLAYMANAGER_SHUTDOWN, security:PERMISSION_SECURITY"
|
||||||
|
case "$PERMISSION_SECURITY" in
|
||||||
|
paranoid )
|
||||||
|
export greeter_AllowShutdown=true
|
||||||
|
export greeter_SecureShutdown=true
|
||||||
|
export security_AllowRemoteRoot=false
|
||||||
|
;;
|
||||||
|
"easy local" )
|
||||||
|
export greeter_AllowShutdown=true
|
||||||
|
export greeter_SecureShutdown=false
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
export greeter_AllowShutdown=true
|
||||||
|
export greeter_SecureShutdown=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
|
||||||
|
unset unset ${!last_of_*} ${!custom_conf_*}
|
||||||
|
|
||||||
|
# Parse configuration file and record all items to environment values.
|
||||||
|
eval "$(
|
||||||
|
awk <$r/etc/gdm/custom.conf '
|
||||||
|
BEGIN {
|
||||||
|
section="BEGIN";
|
||||||
|
section_last_line=0;
|
||||||
|
after_empty_line=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Do not set last_of_ initial comments of a new section.
|
||||||
|
/^#/ {
|
||||||
|
if (after_empty_line == 0)
|
||||||
|
section_last_line=NR;
|
||||||
|
else
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/^\[.*\]/ {
|
||||||
|
print "export last_of_"section"="section_last_line;
|
||||||
|
section=$0;
|
||||||
|
gsub ("[][]", "", section);
|
||||||
|
section_last_line=NR;
|
||||||
|
after_empty_line=0;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/^[a-zA-Z0-9_]*=/ {
|
||||||
|
item=$0;
|
||||||
|
gsub ("=.*", "", item);
|
||||||
|
value=$0;
|
||||||
|
gsub ("^[a-zA-Z0-9_]*=", "", value);
|
||||||
|
gsub ("'\''", "'\''\\'\'''\''", value);
|
||||||
|
section_last_line=NR;
|
||||||
|
after_empty_line=0;
|
||||||
|
print "export custom_conf_"section"_"item"_seen=true";
|
||||||
|
# print "export custom_conf_"section"_"item"='\''"value"'\''";
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Do not set last_of_ for empty lines - we want to add missing stuff before the final empty line.
|
||||||
|
/^$/ {
|
||||||
|
after_empty_line=1;
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/.*/ {
|
||||||
|
section_last_line=NR;
|
||||||
|
after_empty_line=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
END {
|
||||||
|
print "export last_of_"section"="section_last_line;
|
||||||
|
}
|
||||||
|
'
|
||||||
|
)"
|
||||||
|
|
||||||
|
# And now set what is required.
|
||||||
|
awk <$r/etc/gdm/custom.conf >$r/etc/gdm/custom.conf.new '
|
||||||
|
# Prepare array from variable.
|
||||||
|
function gdm_prepare_var(var) {
|
||||||
|
gdm_conf_var[var]=ENVIRON[var];
|
||||||
|
}
|
||||||
|
|
||||||
|
# Update configuration from gdm_conf_var array.
|
||||||
|
function update_item(section, item) {
|
||||||
|
if (gdm_conf_var[section"_"item] != "@SKIP@") {
|
||||||
|
print "# SuSEconfig: "ENVIRON["comment_"section"_"item];
|
||||||
|
print item"="gdm_conf_var[section"_"item];
|
||||||
|
if (ENVIRON["GDM_IS_RUNNING"] == "true")
|
||||||
|
# FIXME: If gdm is running and no session is active, command is executed too early.
|
||||||
|
system("$r/usr/bin/gdmflexiserver --command=\"UPDATE_CONFIG "section"/"item"\"")
|
||||||
|
return "DONE";
|
||||||
|
} else
|
||||||
|
return "KEEP_ORIG";
|
||||||
|
}
|
||||||
|
|
||||||
|
function process_unseen() {
|
||||||
|
# Print all items not seen in the section.
|
||||||
|
if (ENVIRON["last_of_"section] == NR)
|
||||||
|
for (item in gdm_conf_var) {
|
||||||
|
item_section = item;
|
||||||
|
gsub ("_.*", "", item_section);
|
||||||
|
gsub ("[^_]*_", "", item);
|
||||||
|
if (item_section == section && ENVIRON["custom_conf_"section"_"item"_seen"] != "true")
|
||||||
|
update_item(section, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BEGIN {
|
||||||
|
section="BEGIN";
|
||||||
|
gdm_prepare_var("daemon_AutomaticLoginEnable");
|
||||||
|
gdm_prepare_var("daemon_AutomaticLogin");
|
||||||
|
gdm_prepare_var("security_AllowRemoteRoot");
|
||||||
|
gdm_prepare_var("security_DisallowTCP");
|
||||||
|
gdm_prepare_var("xdmcp_Enable");
|
||||||
|
gdm_prepare_var("greeter_AllowShutdown");
|
||||||
|
gdm_prepare_var("greeter_SecureShutdown");
|
||||||
|
gdm_prepare_var("greeter_ShowDomain");
|
||||||
|
gdm_prepare_var("servers_0");
|
||||||
|
}
|
||||||
|
|
||||||
|
# Remove invalid entry created by SuSEconfig.gdm in SuSE Linux 10.2.
|
||||||
|
/^enable=/ {
|
||||||
|
if (section == "xdmcp") {
|
||||||
|
# Remove old gdm_sysconfig.conf to force update of custom.conf.
|
||||||
|
system("rm -f $r/etc/gdm/gdm_sysconfig.conf");
|
||||||
|
process_unseen();
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/^# SuSEconfig:/ {
|
||||||
|
process_unseen();
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/^\[.*\]/ {
|
||||||
|
section=$0;
|
||||||
|
gsub ("[][]", "", section);
|
||||||
|
print;
|
||||||
|
process_unseen();
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/^[a-zA-Z0-9_]*=/ {
|
||||||
|
item=$0;
|
||||||
|
gsub ("=.*", "", item);
|
||||||
|
value=$0;
|
||||||
|
gsub ("^[a-zA-Z0-9_]*=", "", value);
|
||||||
|
# Update value of item.
|
||||||
|
if (section"_"item in gdm_conf_var) {
|
||||||
|
if (update_item(section, item) == "KEEP_ORIG")
|
||||||
|
# This is actually used only for daemon_AutomaticLogin and servers_0:
|
||||||
|
if (item == "servers_0") {
|
||||||
|
if (value != "inactive")
|
||||||
|
print;
|
||||||
|
} else {
|
||||||
|
if (value != ENVIRON["OLD_DISPLAYMANAGER_AUTOLOGIN"])
|
||||||
|
print;
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
print;
|
||||||
|
process_unseen();
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
|
||||||
|
/.*/ {
|
||||||
|
print;
|
||||||
|
process_unseen();
|
||||||
|
next;
|
||||||
|
}
|
||||||
|
'
|
||||||
# Password-less login is implemented by PAM. Do the required change.
|
# Password-less login is implemented by PAM. Do the required change.
|
||||||
if [ "$DISPLAYMANAGER_PASSWORD_LESS_LOGIN" = "yes" ] ; then
|
if [ "$DISPLAYMANAGER_PASSWORD_LESS_LOGIN" = "yes" ] ; then
|
||||||
sed 's/^\(auth[[:space:]][[:space:]]*\)include[[:space:]]\([[:space:]]*\)common-auth/\1required\2pam_permit.so/' <$r/etc/pam.d/gdm >$r/etc/pam.d/gdm.new
|
sed 's/^\(auth[[:space:]][[:space:]]*\)include[[:space:]]\([[:space:]]*\)common-auth/\1required\2pam_permit.so/' <$r/etc/pam.d/gdm >$r/etc/pam.d/gdm.new
|
||||||
@@ -27,3 +325,6 @@ if cmp -s $r/etc/pam.d/gdm $r/etc/pam.d/gdm.new ; then
|
|||||||
else
|
else
|
||||||
mv $r/etc/pam.d/gdm.new $r/etc/pam.d/gdm
|
mv $r/etc/pam.d/gdm.new $r/etc/pam.d/gdm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
mv $r/etc/gdm/custom.conf.new $r/etc/gdm/custom.conf
|
||||||
|
mv $r/etc/gdm/gdm_sysconfig.conf.new $r/etc/gdm/gdm_sysconfig.conf
|
||||||
|
3
gdm-2.29.4.tar.bz2
Normal file
3
gdm-2.29.4.tar.bz2
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:cb0b2a7d8c832afb275a3a4c95b91097f18e9e2c0acc6bdbaa63ec466507c320
|
||||||
|
size 2360981
|
@@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:7be227816e2a66fa6ee7f13cdbf7a5ad411632f56f5808c71b897798c4e990c3
|
|
||||||
size 2361557
|
|
@@ -1,14 +0,0 @@
|
|||||||
diff --git a/data/locale.alias b/data/locale.alias
|
|
||||||
new file mode 100644
|
|
||||||
index 0000000..7cabea6
|
|
||||||
--- a/dev/null
|
|
||||||
+++ b/data/locale.alias
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+# You could insert none UTF-8 locales likes C, ja_JP.eucJP
|
|
||||||
+# The format is language label, space and locale name but
|
|
||||||
+# the language label is no longer used.
|
|
||||||
+#
|
|
||||||
+# This file will be removed in the future once gdm setup tool is generated.
|
|
||||||
+#
|
|
||||||
+#Unspecified C,POSIX
|
|
||||||
|
|
@@ -1,17 +1,17 @@
|
|||||||
Index: gdm-2.29.5/daemon/gdm-session-direct.c
|
Index: gdm-2.27.90/daemon/gdm-session-direct.c
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdm-2.29.5.orig/daemon/gdm-session-direct.c
|
--- gdm-2.27.90.orig/daemon/gdm-session-direct.c
|
||||||
+++ gdm-2.29.5/daemon/gdm-session-direct.c
|
+++ gdm-2.27.90/daemon/gdm-session-direct.c
|
||||||
@@ -48,6 +48,8 @@
|
@@ -47,6 +47,8 @@
|
||||||
#include <dbus/dbus-glib.h>
|
|
||||||
#include <dbus/dbus-glib-lowlevel.h>
|
#include <libhal.h>
|
||||||
|
|
||||||
+#include "gdm-sysconfig.h"
|
+#include "gdm-sysconfig.h"
|
||||||
+
|
+
|
||||||
#include "gdm-session-direct.h"
|
#include "gdm-session-direct.h"
|
||||||
#include "gdm-session.h"
|
#include "gdm-session.h"
|
||||||
#include "gdm-session-private.h"
|
#include "gdm-session-private.h"
|
||||||
@@ -647,6 +649,15 @@ get_fallback_session_name (void)
|
@@ -670,6 +672,15 @@ get_fallback_session_name (void)
|
||||||
int i;
|
int i;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
Index: gdm-2.29.5/gui/simple-greeter/Makefile.am
|
diff --git a/gui/simple-greeter/Makefile.am b/gui/simple-greeter/Makefile.am
|
||||||
===================================================================
|
index bba7a4a..d652961 100644
|
||||||
--- gdm-2.29.5.orig/gui/simple-greeter/Makefile.am
|
--- a/gui/simple-greeter/Makefile.am
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/Makefile.am
|
+++ b/gui/simple-greeter/Makefile.am
|
||||||
@@ -134,6 +134,14 @@ test_greeter_panel_SOURCES = \
|
@@ -136,6 +136,14 @@ test_greeter_panel_SOURCES = \
|
||||||
gdm-sessions.c \
|
gdm-sessions.c \
|
||||||
gdm-session-option-widget.h \
|
gdm-session-option-widget.h \
|
||||||
gdm-session-option-widget.c \
|
gdm-session-option-widget.c \
|
||||||
@@ -17,7 +17,7 @@ Index: gdm-2.29.5/gui/simple-greeter/Makefile.am
|
|||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
test_greeter_panel_LDADD = \
|
test_greeter_panel_LDADD = \
|
||||||
@@ -312,12 +320,20 @@ gdm_simple_greeter_SOURCES = \
|
@@ -313,12 +321,20 @@ gdm_simple_greeter_SOURCES = \
|
||||||
gdm-language-chooser-dialog.c \
|
gdm-language-chooser-dialog.c \
|
||||||
gdm-language-option-widget.h \
|
gdm-language-option-widget.h \
|
||||||
gdm-language-option-widget.c \
|
gdm-language-option-widget.c \
|
||||||
@@ -38,12 +38,12 @@ Index: gdm-2.29.5/gui/simple-greeter/Makefile.am
|
|||||||
$(NULL)
|
$(NULL)
|
||||||
|
|
||||||
gdm_simple_greeter_LDADD = \
|
gdm_simple_greeter_LDADD = \
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-chooser-widget.c
|
diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c
|
||||||
===================================================================
|
index f0298c6..4894eee 100644
|
||||||
--- gdm-2.29.5.orig/gui/simple-greeter/gdm-chooser-widget.c
|
--- a/gui/simple-greeter/gdm-chooser-widget.c
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-chooser-widget.c
|
+++ b/gui/simple-greeter/gdm-chooser-widget.c
|
||||||
@@ -2121,6 +2121,21 @@ gdm_chooser_widget_remove_item (GdmChoos
|
@@ -2105,6 +2105,20 @@ gdm_chooser_widget_remove_item (GdmChooserWidget *widget,
|
||||||
update_chooser_visibility (widget);
|
move_cursor_to_top (widget);
|
||||||
}
|
}
|
||||||
|
|
||||||
+void
|
+void
|
||||||
@@ -58,17 +58,16 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-chooser-widget.c
|
|||||||
+
|
+
|
||||||
+ update_separator_visibility (widget);
|
+ update_separator_visibility (widget);
|
||||||
+ move_cursor_to_top (widget);
|
+ move_cursor_to_top (widget);
|
||||||
+ update_chooser_visibility (widget);
|
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
gboolean
|
gboolean
|
||||||
gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
|
gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
|
||||||
const char *id,
|
const char *id,
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-chooser-widget.h
|
diff --git a/gui/simple-greeter/gdm-chooser-widget.h b/gui/simple-greeter/gdm-chooser-widget.h
|
||||||
===================================================================
|
index b73d1bb..b70016c 100644
|
||||||
--- gdm-2.29.5.orig/gui/simple-greeter/gdm-chooser-widget.h
|
--- a/gui/simple-greeter/gdm-chooser-widget.h
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-chooser-widget.h
|
+++ b/gui/simple-greeter/gdm-chooser-widget.h
|
||||||
@@ -96,6 +96,8 @@ void gdm_chooser_widget_update_i
|
@@ -96,6 +96,8 @@ void gdm_chooser_widget_update_item (GdmChooserWidget *
|
||||||
void gdm_chooser_widget_remove_item (GdmChooserWidget *widget,
|
void gdm_chooser_widget_remove_item (GdmChooserWidget *widget,
|
||||||
const char *id);
|
const char *id);
|
||||||
|
|
||||||
@@ -77,10 +76,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-chooser-widget.h
|
|||||||
gboolean gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
|
gboolean gdm_chooser_widget_lookup_item (GdmChooserWidget *widget,
|
||||||
const char *id,
|
const char *id,
|
||||||
GdkPixbuf **image,
|
GdkPixbuf **image,
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-dialog.c
|
diff --git a/gui/simple-greeter/gdm-domain-chooser-dialog.c b/gui/simple-greeter/gdm-domain-chooser-dialog.c
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..f577b65
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-dialog.c
|
+++ b/gui/simple-greeter/gdm-domain-chooser-dialog.c
|
||||||
@@ -0,0 +1,207 @@
|
@@ -0,0 +1,207 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -289,10 +289,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-dialog.c
|
|||||||
+
|
+
|
||||||
+ return GTK_WIDGET (object);
|
+ return GTK_WIDGET (object);
|
||||||
+}
|
+}
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-dialog.h
|
diff --git a/gui/simple-greeter/gdm-domain-chooser-dialog.h b/gui/simple-greeter/gdm-domain-chooser-dialog.h
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..f11f183
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-dialog.h
|
+++ b/gui/simple-greeter/gdm-domain-chooser-dialog.h
|
||||||
@@ -0,0 +1,60 @@
|
@@ -0,0 +1,60 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -354,10 +355,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-dialog.h
|
|||||||
+G_END_DECLS
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
+#endif /* __GDM_DOMAIN_CHOOSER_DIALOG_H */
|
+#endif /* __GDM_DOMAIN_CHOOSER_DIALOG_H */
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-widget.c
|
diff --git a/gui/simple-greeter/gdm-domain-chooser-widget.c b/gui/simple-greeter/gdm-domain-chooser-widget.c
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..1d8b113
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-widget.c
|
+++ b/gui/simple-greeter/gdm-domain-chooser-widget.c
|
||||||
@@ -0,0 +1,237 @@
|
@@ -0,0 +1,237 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -596,10 +598,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-widget.c
|
|||||||
+
|
+
|
||||||
+ return GTK_WIDGET (object);
|
+ return GTK_WIDGET (object);
|
||||||
+}
|
+}
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-widget.h
|
diff --git a/gui/simple-greeter/gdm-domain-chooser-widget.h b/gui/simple-greeter/gdm-domain-chooser-widget.h
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..4ba9d18
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-widget.h
|
+++ b/gui/simple-greeter/gdm-domain-chooser-widget.h
|
||||||
@@ -0,0 +1,59 @@
|
@@ -0,0 +1,59 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -660,10 +663,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-chooser-widget.h
|
|||||||
+G_END_DECLS
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
+#endif /* __GDM_DOMAIN_CHOOSER_WIDGET_H */
|
+#endif /* __GDM_DOMAIN_CHOOSER_WIDGET_H */
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-option-widget.c
|
diff --git a/gui/simple-greeter/gdm-domain-option-widget.c b/gui/simple-greeter/gdm-domain-option-widget.c
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..31e76e2
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-domain-option-widget.c
|
+++ b/gui/simple-greeter/gdm-domain-option-widget.c
|
||||||
@@ -0,0 +1,379 @@
|
@@ -0,0 +1,379 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -1044,10 +1048,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-option-widget.c
|
|||||||
+
|
+
|
||||||
+ gdm_option_widget_set_active_item (GDM_OPTION_WIDGET (widget), domain_name);
|
+ gdm_option_widget_set_active_item (GDM_OPTION_WIDGET (widget), domain_name);
|
||||||
+}
|
+}
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-option-widget.h
|
diff --git a/gui/simple-greeter/gdm-domain-option-widget.h b/gui/simple-greeter/gdm-domain-option-widget.h
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..4913ede
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-domain-option-widget.h
|
+++ b/gui/simple-greeter/gdm-domain-option-widget.h
|
||||||
@@ -0,0 +1,59 @@
|
@@ -0,0 +1,59 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -1108,10 +1113,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-option-widget.h
|
|||||||
+ const char *domain_name);
|
+ const char *domain_name);
|
||||||
+
|
+
|
||||||
+#endif /* __GDM_DOMAIN_OPTION_WIDGET_H */
|
+#endif /* __GDM_DOMAIN_OPTION_WIDGET_H */
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-provider.c
|
diff --git a/gui/simple-greeter/gdm-domain-provider.c b/gui/simple-greeter/gdm-domain-provider.c
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..2924291
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-domain-provider.c
|
+++ b/gui/simple-greeter/gdm-domain-provider.c
|
||||||
@@ -0,0 +1,536 @@
|
@@ -0,0 +1,536 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -1649,10 +1655,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-provider.c
|
|||||||
+
|
+
|
||||||
+ return priv->domains;
|
+ return priv->domains;
|
||||||
+}
|
+}
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-provider.h
|
diff --git a/gui/simple-greeter/gdm-domain-provider.h b/gui/simple-greeter/gdm-domain-provider.h
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..6a318ff
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-domain-provider.h
|
+++ b/gui/simple-greeter/gdm-domain-provider.h
|
||||||
@@ -0,0 +1,61 @@
|
@@ -0,0 +1,61 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -1715,40 +1722,35 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-domain-provider.h
|
|||||||
+G_END_DECLS
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
+#endif /* __GDM_DOMAIN_PROVIDER_H */
|
+#endif /* __GDM_DOMAIN_PROVIDER_H */
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c
|
diff --git a/gui/simple-greeter/gdm-greeter-panel.c b/gui/simple-greeter/gdm-greeter-panel.c
|
||||||
===================================================================
|
index 50478c5..825f0c5 100644
|
||||||
--- gdm-2.29.5.orig/gui/simple-greeter/gdm-greeter-panel.c
|
--- a/gui/simple-greeter/gdm-greeter-panel.c
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c
|
+++ b/gui/simple-greeter/gdm-greeter-panel.c
|
||||||
@@ -52,7 +52,10 @@
|
@@ -40,6 +40,7 @@
|
||||||
#include "gdm-layout-option-widget.h"
|
#include "gdm-layout-option-widget.h"
|
||||||
#include "gdm-session-option-widget.h"
|
#include "gdm-session-option-widget.h"
|
||||||
#include "gdm-timer.h"
|
#include "gdm-timer.h"
|
||||||
+#include "gdm-domain-option-widget.h"
|
+#include "gdm-domain-option-widget.h"
|
||||||
#include "gdm-profile.h"
|
#include "gdm-profile.h"
|
||||||
+#include "gdm-settings-client.h"
|
|
||||||
+#include "gdm-settings-keys.h"
|
|
||||||
|
|
||||||
#include "na-tray.h"
|
#include "na-tray.h"
|
||||||
|
@@ -58,6 +59,7 @@ struct GdmGreeterPanelPrivate
|
||||||
@@ -83,6 +86,9 @@ struct GdmGreeterPanelPrivate
|
|
||||||
GtkWidget *language_option_widget;
|
GtkWidget *language_option_widget;
|
||||||
GtkWidget *layout_option_widget;
|
GtkWidget *layout_option_widget;
|
||||||
GtkWidget *session_option_widget;
|
GtkWidget *session_option_widget;
|
||||||
+ GtkWidget *domain_option_widget;
|
+ GtkWidget *domain_option_widget;
|
||||||
+
|
|
||||||
+ gboolean show_domain;
|
|
||||||
|
|
||||||
GdmTimer *animation_timer;
|
GdmTimer *animation_timer;
|
||||||
double progress;
|
double progress;
|
||||||
@@ -104,6 +110,7 @@ enum {
|
@@ -72,6 +74,7 @@ enum {
|
||||||
LANGUAGE_SELECTED,
|
LANGUAGE_SELECTED,
|
||||||
LAYOUT_SELECTED,
|
LAYOUT_SELECTED,
|
||||||
SESSION_SELECTED,
|
SESSION_SELECTED,
|
||||||
+ DOMAIN_SELECTED,
|
+ DOMAIN_SELECTED,
|
||||||
DIALOG_HIDDEN,
|
|
||||||
NUMBER_OF_SIGNALS
|
NUMBER_OF_SIGNALS
|
||||||
};
|
};
|
||||||
@@ -497,6 +504,17 @@ gdm_greeter_panel_class_init (GdmGreeter
|
|
||||||
|
@@ -451,6 +454,17 @@ gdm_greeter_panel_class_init (GdmGreeterPanelClass *klass)
|
||||||
G_TYPE_NONE,
|
G_TYPE_NONE,
|
||||||
1, G_TYPE_STRING);
|
1, G_TYPE_STRING);
|
||||||
|
|
||||||
@@ -1763,10 +1765,10 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c
|
|||||||
+ G_TYPE_NONE,
|
+ G_TYPE_NONE,
|
||||||
+ 1, G_TYPE_STRING);
|
+ 1, G_TYPE_STRING);
|
||||||
+
|
+
|
||||||
signals[DIALOG_HIDDEN] =
|
g_object_class_install_property (object_class,
|
||||||
g_signal_new ("dialog-hidden",
|
PROP_MONITOR,
|
||||||
G_TYPE_FROM_CLASS (object_class),
|
g_param_spec_int ("monitor",
|
||||||
@@ -832,6 +850,32 @@ on_shutdown_menu_deactivate (GdmGreeterP
|
@@ -521,6 +535,24 @@ on_session_activated (GdmSessionOptionWidget *widget,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -1787,31 +1789,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c
|
|||||||
+ g_free (domain);
|
+ g_free (domain);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static void
|
|
||||||
+on_domain_dialog_hidden (GdmLanguageOptionWidget *widget,
|
|
||||||
+ GdmGreeterPanel *panel)
|
|
||||||
+{
|
|
||||||
+
|
|
||||||
+ g_signal_emit (panel, signals[DIALOG_HIDDEN], 0);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static void
|
+static void
|
||||||
gdm_greeter_panel_init (GdmGreeterPanel *panel)
|
gdm_greeter_panel_init (GdmGreeterPanel *panel)
|
||||||
{
|
{
|
||||||
NaTray *tray;
|
NaTray *tray;
|
||||||
@@ -849,6 +893,11 @@ gdm_greeter_panel_init (GdmGreeterPanel
|
@@ -581,6 +613,12 @@ gdm_greeter_panel_init (GdmGreeterPanel *panel)
|
||||||
panel->priv->geometry.width = -1;
|
|
||||||
panel->priv->geometry.height = -1;
|
|
||||||
|
|
||||||
+ if (!gdm_settings_client_get_boolean (GDM_KEY_SHOW_DOMAIN,
|
|
||||||
+ &panel->priv->show_domain)) {
|
|
||||||
+ panel->priv->show_domain = FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
gtk_window_set_title (GTK_WINDOW (panel), _("Panel"));
|
|
||||||
gtk_window_set_decorated (GTK_WINDOW (panel), FALSE);
|
|
||||||
|
|
||||||
@@ -901,6 +950,15 @@ gdm_greeter_panel_init (GdmGreeterPanel
|
|
||||||
G_CALLBACK (on_session_activated), panel);
|
G_CALLBACK (on_session_activated), panel);
|
||||||
gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), panel->priv->session_option_widget, FALSE, FALSE, 6);
|
gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), panel->priv->session_option_widget, FALSE, FALSE, 6);
|
||||||
|
|
||||||
@@ -1819,35 +1801,24 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c
|
|||||||
+ g_signal_connect (G_OBJECT (panel->priv->domain_option_widget),
|
+ g_signal_connect (G_OBJECT (panel->priv->domain_option_widget),
|
||||||
+ "domain-activated",
|
+ "domain-activated",
|
||||||
+ G_CALLBACK (on_domain_activated), panel);
|
+ G_CALLBACK (on_domain_activated), panel);
|
||||||
+ g_signal_connect (G_OBJECT (panel->priv->domain_option_widget),
|
|
||||||
+ "dialog-hidden",
|
|
||||||
+ G_CALLBACK (on_domain_dialog_hidden), panel);
|
|
||||||
+ gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), panel->priv->domain_option_widget, FALSE, FALSE, 6);
|
+ gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), panel->priv->domain_option_widget, FALSE, FALSE, 6);
|
||||||
+
|
+
|
||||||
spacer = gtk_label_new ("");
|
spacer = gtk_label_new ("");
|
||||||
gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), spacer, TRUE, TRUE, 6);
|
gtk_box_pack_start (GTK_BOX (panel->priv->option_hbox), spacer, TRUE, TRUE, 6);
|
||||||
gtk_widget_show (spacer);
|
gtk_widget_show (spacer);
|
||||||
@@ -1025,6 +1083,11 @@ gdm_greeter_panel_show_user_options (Gdm
|
@@ -643,6 +681,7 @@ gdm_greeter_panel_show_user_options (GdmGreeterPanel *panel)
|
||||||
gtk_widget_show (panel->priv->session_option_widget);
|
gtk_widget_show (panel->priv->session_option_widget);
|
||||||
gtk_widget_show (panel->priv->language_option_widget);
|
gtk_widget_show (panel->priv->language_option_widget);
|
||||||
gtk_widget_show (panel->priv->layout_option_widget);
|
gtk_widget_show (panel->priv->layout_option_widget);
|
||||||
+ if (panel->priv->show_domain) {
|
|
||||||
+ gtk_widget_show (panel->priv->domain_option_widget);
|
+ gtk_widget_show (panel->priv->domain_option_widget);
|
||||||
+ } else {
|
|
||||||
+ gtk_widget_hide (panel->priv->domain_option_widget);
|
|
||||||
+ }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -1033,18 +1096,30 @@ gdm_greeter_panel_hide_user_options (Gdm
|
@@ -651,18 +690,26 @@ gdm_greeter_panel_hide_user_options (GdmGreeterPanel *panel)
|
||||||
gtk_widget_hide (panel->priv->session_option_widget);
|
gtk_widget_hide (panel->priv->session_option_widget);
|
||||||
gtk_widget_hide (panel->priv->language_option_widget);
|
gtk_widget_hide (panel->priv->language_option_widget);
|
||||||
gtk_widget_hide (panel->priv->layout_option_widget);
|
gtk_widget_hide (panel->priv->layout_option_widget);
|
||||||
+ if (panel->priv->show_domain) {
|
|
||||||
+ gtk_widget_show (panel->priv->domain_option_widget);
|
+ gtk_widget_show (panel->priv->domain_option_widget);
|
||||||
+ } else {
|
|
||||||
+ gtk_widget_hide (panel->priv->domain_option_widget);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
g_debug ("GdmGreeterPanel: activating default layout");
|
g_debug ("GdmGreeterPanel: activating default layout");
|
||||||
gdm_layout_activate (NULL);
|
gdm_layout_activate (NULL);
|
||||||
@@ -1870,7 +1841,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -1126,3 +1201,20 @@ gdm_greeter_panel_set_default_session_na
|
@@ -730,3 +777,20 @@ gdm_greeter_panel_set_default_session_name (GdmGreeterPanel *panel,
|
||||||
gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->session_option_widget),
|
gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->session_option_widget),
|
||||||
session_name);
|
session_name);
|
||||||
}
|
}
|
||||||
@@ -1891,21 +1862,21 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.c
|
|||||||
+ gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->domain_option_widget),
|
+ gdm_option_widget_set_default_item (GDM_OPTION_WIDGET (panel->priv->domain_option_widget),
|
||||||
+ domain_name);
|
+ domain_name);
|
||||||
+}
|
+}
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.h
|
diff --git a/gui/simple-greeter/gdm-greeter-panel.h b/gui/simple-greeter/gdm-greeter-panel.h
|
||||||
===================================================================
|
index 07cca3f..6079569 100644
|
||||||
--- gdm-2.29.5.orig/gui/simple-greeter/gdm-greeter-panel.h
|
--- a/gui/simple-greeter/gdm-greeter-panel.h
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.h
|
+++ b/gui/simple-greeter/gdm-greeter-panel.h
|
||||||
@@ -54,6 +54,9 @@ typedef struct
|
@@ -53,6 +53,9 @@ typedef struct
|
||||||
|
|
||||||
void (* session_selected) (GdmGreeterPanel *panel,
|
void (* session_selected) (GdmGreeterPanel *panel,
|
||||||
const char *text);
|
const char *text);
|
||||||
|
+
|
||||||
+ void (* domain_selected) (GdmGreeterPanel *panel,
|
+ void (* domain_selected) (GdmGreeterPanel *panel,
|
||||||
+ const char *text);
|
+ const char *text);
|
||||||
+
|
|
||||||
void (* dialog_hidden) (GdmGreeterPanel *panel);
|
|
||||||
} GdmGreeterPanelClass;
|
} GdmGreeterPanelClass;
|
||||||
|
|
||||||
@@ -67,12 +70,16 @@ void gdm_greeter_panel
|
GType gdm_greeter_panel_get_type (void);
|
||||||
|
@@ -64,12 +67,16 @@ void gdm_greeter_panel_show_user_options (GdmGree
|
||||||
void gdm_greeter_panel_hide_user_options (GdmGreeterPanel *panel);
|
void gdm_greeter_panel_hide_user_options (GdmGreeterPanel *panel);
|
||||||
void gdm_greeter_panel_reset (GdmGreeterPanel *panel);
|
void gdm_greeter_panel_reset (GdmGreeterPanel *panel);
|
||||||
|
|
||||||
@@ -1922,20 +1893,20 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-panel.h
|
|||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* __GDM_GREETER_PANEL_H */
|
#endif /* __GDM_GREETER_PANEL_H */
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
diff --git a/gui/simple-greeter/gdm-greeter-session.c b/gui/simple-greeter/gdm-greeter-session.c
|
||||||
===================================================================
|
index 83375b2..251e7c8 100644
|
||||||
--- gdm-2.29.5.orig/gui/simple-greeter/gdm-greeter-session.c
|
--- a/gui/simple-greeter/gdm-greeter-session.c
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
+++ b/gui/simple-greeter/gdm-greeter-session.c
|
||||||
@@ -39,6 +39,8 @@
|
@@ -38,6 +38,8 @@
|
||||||
|
#include "gdm-greeter-panel.h"
|
||||||
#include "gdm-greeter-login-window.h"
|
#include "gdm-greeter-login-window.h"
|
||||||
#include "gdm-user-chooser-widget.h"
|
|
||||||
|
|
||||||
+#include "gdm-domain-provider.h"
|
+#include "gdm-domain-provider.h"
|
||||||
+
|
+
|
||||||
#include "gdm-profile.h"
|
#include "gdm-profile.h"
|
||||||
|
|
||||||
#define GDM_GREETER_SESSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_GREETER_SESSION, GdmGreeterSessionPrivate))
|
#define GDM_GREETER_SESSION_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_GREETER_SESSION, GdmGreeterSessionPrivate))
|
||||||
@@ -49,6 +51,11 @@ struct GdmGreeterSessionPrivate
|
@@ -48,6 +50,11 @@ struct GdmGreeterSessionPrivate
|
||||||
|
|
||||||
GtkWidget *login_window;
|
GtkWidget *login_window;
|
||||||
GtkWidget *panel;
|
GtkWidget *panel;
|
||||||
@@ -1947,7 +1918,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@@ -63,6 +70,33 @@ G_DEFINE_TYPE (GdmGreeterSession, gdm_gr
|
@@ -62,6 +69,33 @@ G_DEFINE_TYPE (GdmGreeterSession, gdm_greeter_session, G_TYPE_OBJECT)
|
||||||
|
|
||||||
static gpointer session_object = NULL;
|
static gpointer session_object = NULL;
|
||||||
|
|
||||||
@@ -1981,7 +1952,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
static void
|
static void
|
||||||
on_info (GdmGreeterClient *client,
|
on_info (GdmGreeterClient *client,
|
||||||
const char *text,
|
const char *text,
|
||||||
@@ -100,6 +134,10 @@ on_reset (GdmGreeterClient *client,
|
@@ -99,6 +133,10 @@ on_reset (GdmGreeterClient *client,
|
||||||
|
|
||||||
gdm_greeter_panel_reset (GDM_GREETER_PANEL (session->priv->panel));
|
gdm_greeter_panel_reset (GDM_GREETER_PANEL (session->priv->panel));
|
||||||
gdm_greeter_login_window_reset (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window));
|
gdm_greeter_login_window_reset (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window));
|
||||||
@@ -1992,7 +1963,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -187,6 +225,9 @@ on_secret_info_query (GdmGreeterClient
|
@@ -174,6 +212,9 @@ on_secret_info_query (GdmGreeterClient *client,
|
||||||
{
|
{
|
||||||
g_debug ("GdmGreeterSession: Secret info query: %s", text);
|
g_debug ("GdmGreeterSession: Secret info query: %s", text);
|
||||||
|
|
||||||
@@ -2002,7 +1973,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
gdm_greeter_login_window_secret_info_query (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window), text);
|
gdm_greeter_login_window_secret_info_query (GDM_GREETER_LOGIN_WINDOW (session->priv->login_window), text);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -211,8 +252,14 @@ on_begin_verification_for_user (GdmGreet
|
@@ -198,8 +239,14 @@ on_begin_verification_for_user (GdmGreeterLoginWindow *login_window,
|
||||||
const char *username,
|
const char *username,
|
||||||
GdmGreeterSession *session)
|
GdmGreeterSession *session)
|
||||||
{
|
{
|
||||||
@@ -2018,7 +1989,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -220,8 +267,21 @@ on_query_answer (GdmGreeterLoginWindow *
|
@@ -207,8 +254,21 @@ on_query_answer (GdmGreeterLoginWindow *login_window,
|
||||||
const char *text,
|
const char *text,
|
||||||
GdmGreeterSession *session)
|
GdmGreeterSession *session)
|
||||||
{
|
{
|
||||||
@@ -2041,13 +2012,15 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -249,6 +309,17 @@ on_select_layout (GdmGreeterSession
|
@@ -236,13 +296,39 @@ on_select_layout (GdmGreeterSession *session,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
+on_select_domain (GdmGreeterSession *session,
|
+on_select_domain (GdmGreeterSession *session,
|
||||||
+ const char *text)
|
+ const char *text)
|
||||||
+{
|
+{
|
||||||
|
+ char *domain_and_user;
|
||||||
|
+
|
||||||
+ g_free (session->priv->domain);
|
+ g_free (session->priv->domain);
|
||||||
+ session->priv->domain = NULL;
|
+ session->priv->domain = NULL;
|
||||||
+
|
+
|
||||||
@@ -2056,15 +2029,13 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static void
|
+static void
|
||||||
on_dialog_hidden (GdmGreeterSession *session)
|
on_select_user (GdmGreeterLoginWindow *login_window,
|
||||||
{
|
|
||||||
gtk_window_present (GTK_WINDOW (session->priv->login_window));
|
|
||||||
@@ -259,9 +330,21 @@ on_select_user (GdmGreeterLoginWindow *l
|
|
||||||
const char *text,
|
const char *text,
|
||||||
GdmGreeterSession *session)
|
GdmGreeterSession *session)
|
||||||
{
|
{
|
||||||
- show_or_hide_user_options (session, text);
|
|
||||||
+ char *domain_and_user;
|
+ char *domain_and_user;
|
||||||
|
+
|
||||||
|
gdm_greeter_panel_show_user_options (GDM_GREETER_PANEL (session->priv->panel));
|
||||||
+
|
+
|
||||||
+ g_free (session->priv->user);
|
+ g_free (session->priv->user);
|
||||||
+ session->priv->user = NULL;
|
+ session->priv->user = NULL;
|
||||||
@@ -2074,7 +2045,6 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
+
|
+
|
||||||
+ domain_and_user = maybe_prepend_domain_to_user (session, text);
|
+ domain_and_user = maybe_prepend_domain_to_user (session, text);
|
||||||
+
|
+
|
||||||
+ show_or_hide_user_options (session, domain_and_user);
|
|
||||||
gdm_greeter_client_call_select_user (session->priv->client,
|
gdm_greeter_client_call_select_user (session->priv->client,
|
||||||
- text);
|
- text);
|
||||||
+ domain_and_user);
|
+ domain_and_user);
|
||||||
@@ -2083,7 +2053,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -270,6 +353,10 @@ on_cancelled (GdmGreeterLoginWindow *log
|
@@ -251,6 +337,10 @@ on_cancelled (GdmGreeterLoginWindow *login_window,
|
||||||
{
|
{
|
||||||
gdm_greeter_panel_hide_user_options (GDM_GREETER_PANEL (session->priv->panel));
|
gdm_greeter_panel_hide_user_options (GDM_GREETER_PANEL (session->priv->panel));
|
||||||
gdm_greeter_client_call_cancel (session->priv->client);
|
gdm_greeter_client_call_cancel (session->priv->client);
|
||||||
@@ -2094,19 +2064,19 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@@ -358,6 +445,11 @@ toggle_panel (GdmGreeterSession *session
|
@@ -300,6 +390,11 @@ toggle_panel (GdmGreeterSession *session,
|
||||||
|
G_CALLBACK (on_select_session),
|
||||||
session);
|
session);
|
||||||
|
|
||||||
g_signal_connect_swapped (session->priv->panel,
|
+ g_signal_connect_swapped (session->priv->panel,
|
||||||
+ "domain-selected",
|
+ "domain-selected",
|
||||||
+ G_CALLBACK (on_select_domain),
|
+ G_CALLBACK (on_select_domain),
|
||||||
+ session);
|
+ session);
|
||||||
+
|
+
|
||||||
+ g_signal_connect_swapped (session->priv->panel,
|
gtk_widget_show (session->priv->panel);
|
||||||
"dialog-hidden",
|
} else {
|
||||||
G_CALLBACK (on_dialog_hidden),
|
gtk_widget_destroy (session->priv->panel);
|
||||||
session);
|
@@ -542,6 +637,8 @@ gdm_greeter_session_init (GdmGreeterSession *session)
|
||||||
@@ -604,6 +696,8 @@ gdm_greeter_session_init (GdmGreeterSess
|
|
||||||
G_CALLBACK (on_user_authorized),
|
G_CALLBACK (on_user_authorized),
|
||||||
session);
|
session);
|
||||||
|
|
||||||
@@ -2115,7 +2085,7 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
/* We want to listen for panel mnemonics even if the
|
/* We want to listen for panel mnemonics even if the
|
||||||
* login window is focused, so we intercept them here.
|
* login window is focused, so we intercept them here.
|
||||||
*/
|
*/
|
||||||
@@ -625,6 +719,9 @@ gdm_greeter_session_finalize (GObject *o
|
@@ -563,6 +660,9 @@ gdm_greeter_session_finalize (GObject *object)
|
||||||
|
|
||||||
g_return_if_fail (greeter_session->priv != NULL);
|
g_return_if_fail (greeter_session->priv != NULL);
|
||||||
|
|
||||||
@@ -2125,11 +2095,11 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-greeter-session.c
|
|||||||
G_OBJECT_CLASS (gdm_greeter_session_parent_class)->finalize (object);
|
G_OBJECT_CLASS (gdm_greeter_session_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
Index: gdm-2.29.5/gui/simple-greeter/gdm-simple-greeter.schemas.in
|
diff --git a/gui/simple-greeter/gdm-simple-greeter.schemas.in b/gui/simple-greeter/gdm-simple-greeter.schemas.in
|
||||||
===================================================================
|
index 55b441f..450cb22 100644
|
||||||
--- gdm-2.29.5.orig/gui/simple-greeter/gdm-simple-greeter.schemas.in
|
--- a/gui/simple-greeter/gdm-simple-greeter.schemas.in
|
||||||
+++ gdm-2.29.5/gui/simple-greeter/gdm-simple-greeter.schemas.in
|
+++ b/gui/simple-greeter/gdm-simple-greeter.schemas.in
|
||||||
@@ -91,6 +91,18 @@
|
@@ -92,6 +92,18 @@
|
||||||
</locale>
|
</locale>
|
||||||
</schema>
|
</schema>
|
||||||
<schema>
|
<schema>
|
||||||
@@ -2148,11 +2118,9 @@ Index: gdm-2.29.5/gui/simple-greeter/gdm-simple-greeter.schemas.in
|
|||||||
<key>/schemas/apps/gdm/simple-greeter/wm_use_compiz</key>
|
<key>/schemas/apps/gdm/simple-greeter/wm_use_compiz</key>
|
||||||
<applyto>/apps/gdm/simple-greeter/wm_use_compiz</applyto>
|
<applyto>/apps/gdm/simple-greeter/wm_use_compiz</applyto>
|
||||||
<owner>gdm-simple-greeter</owner>
|
<owner>gdm-simple-greeter</owner>
|
||||||
Index: gdm-2.29.5/po/POTFILES.in
|
--- gdm-2.24.0/po/POTFILES.in
|
||||||
===================================================================
|
+++ gdm-2.24.0/po/POTFILES.in
|
||||||
--- gdm-2.29.5.orig/po/POTFILES.in
|
@@ -63,6 +63,9 @@
|
||||||
+++ gdm-2.29.5/po/POTFILES.in
|
|
||||||
@@ -64,6 +64,9 @@ gui/simple-chooser/gdm-host-chooser-widg
|
|
||||||
gui/simple-greeter/gdm-cell-renderer-timer.c
|
gui/simple-greeter/gdm-cell-renderer-timer.c
|
||||||
gui/simple-greeter/gdm-chooser-widget.c
|
gui/simple-greeter/gdm-chooser-widget.c
|
||||||
gui/simple-greeter/gdm-clock-widget.c
|
gui/simple-greeter/gdm-clock-widget.c
|
||||||
@@ -2161,112 +2129,4 @@ Index: gdm-2.29.5/po/POTFILES.in
|
|||||||
+gui/simple-greeter/gdm-domain-option-widget.c
|
+gui/simple-greeter/gdm-domain-option-widget.c
|
||||||
gui/simple-greeter/gdm-greeter-login-window.c
|
gui/simple-greeter/gdm-greeter-login-window.c
|
||||||
gui/simple-greeter/gdm-greeter-login-window.c
|
gui/simple-greeter/gdm-greeter-login-window.c
|
||||||
[type: gettext/glade]gui/simple-greeter/gdm-greeter-login-window.ui
|
gui/simple-greeter/gdm-greeter-login-window.glade
|
||||||
Index: gdm-2.29.5/common/gdm-settings-keys.h
|
|
||||||
===================================================================
|
|
||||||
--- gdm-2.29.5.orig/common/gdm-settings-keys.h
|
|
||||||
+++ gdm-2.29.5/common/gdm-settings-keys.h
|
|
||||||
@@ -35,6 +35,7 @@ G_BEGIN_DECLS
|
|
||||||
|
|
||||||
#define GDM_KEY_DEBUG "debug/Enable"
|
|
||||||
|
|
||||||
+#define GDM_KEY_SHOW_DOMAIN "greeter/ShowDomain"
|
|
||||||
#define GDM_KEY_INCLUDE "greeter/Include"
|
|
||||||
#define GDM_KEY_EXCLUDE "greeter/Exclude"
|
|
||||||
#define GDM_KEY_INCLUDE_ALL "greeter/IncludeAll"
|
|
||||||
Index: gdm-2.29.5/common/gdm-settings-system-backend.c
|
|
||||||
===================================================================
|
|
||||||
--- gdm-2.29.5.orig/common/gdm-settings-system-backend.c
|
|
||||||
+++ gdm-2.29.5/common/gdm-settings-system-backend.c
|
|
||||||
@@ -44,11 +44,11 @@
|
|
||||||
#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
|
|
||||||
#define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
|
|
||||||
#define SYSCONFIG_XDMCP_KEY "DISPLAYMANAGER_REMOTE_ACCESS"
|
|
||||||
+#define SYSCONFIG_AD_KEY "DISPLAYMANAGER_AD_INTEGRATION"
|
|
||||||
/* Keys from sysconfig that have no equivalent in GDM:
|
|
||||||
* - DISPLAYMANAGER_ROOT_LOGIN_REMOTE
|
|
||||||
* - DISPLAYMANAGER_STARTS_XSERVER (we always have a local display manager,
|
|
||||||
* see gdm_manager_constructor())
|
|
||||||
- * - DISPLAYMANAGER_AD_INTEGRATION
|
|
||||||
* - DISPLAYMANAGER_SHUTDOWN (handled by ConsoleKit)
|
|
||||||
*/
|
|
||||||
|
|
||||||
@@ -65,12 +65,14 @@ struct GdmSettingsSystemBackendPrivate
|
|
||||||
gboolean dirty_autologin_user;
|
|
||||||
gboolean dirty_tcp_open;
|
|
||||||
gboolean dirty_xdmcp;
|
|
||||||
+ gboolean dirty_show_domain;
|
|
||||||
|
|
||||||
gchar *set_autologin_user;
|
|
||||||
gboolean set_autologin_enabled;
|
|
||||||
|
|
||||||
gboolean set_tcp_open;
|
|
||||||
gboolean set_xdmcp;
|
|
||||||
+ gboolean set_show_domain;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass);
|
|
||||||
@@ -140,6 +142,16 @@ gdm_settings_system_backend_get_value (G
|
|
||||||
val = g_strdup (xdmcp ? "true" : "false");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ } else if (!strcasecmp (key, GDM_KEY_SHOW_DOMAIN)) {
|
|
||||||
+ if (priv->dirty_show_domain) {
|
|
||||||
+ val = g_strdup (priv->set_show_domain ? "true" : "false");
|
|
||||||
+ } else {
|
|
||||||
+ gboolean show_domain;
|
|
||||||
+
|
|
||||||
+ if (gdm_sysconfig_get_value_boolean ((const gchar **) priv->lines, SYSCONFIG_AD_KEY, &show_domain)) {
|
|
||||||
+ val = g_strdup (show_domain ? "true" : "false");
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
} else {
|
|
||||||
g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
|
|
||||||
goto out;
|
|
||||||
@@ -200,6 +212,12 @@ save_settings (GdmSettingsSystemBackend
|
|
||||||
backend->priv->set_xdmcp ? "yes" : "no");
|
|
||||||
}
|
|
||||||
|
|
||||||
+ if (backend->priv->dirty_show_domain) {
|
|
||||||
+ if (!gdm_sysconfig_set_value_boolean (backend->priv->lines, SYSCONFIG_AD_KEY, backend->priv->set_show_domain))
|
|
||||||
+ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_AD_KEY,
|
|
||||||
+ backend->priv->set_show_domain ? "yes" : "no");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines))
|
|
||||||
g_warning ("Unable to save settings to %s.", backend->priv->filename);
|
|
||||||
|
|
||||||
@@ -208,6 +226,7 @@ save_settings (GdmSettingsSystemBackend
|
|
||||||
backend->priv->dirty_autologin_user = FALSE;
|
|
||||||
backend->priv->dirty_tcp_open = FALSE;
|
|
||||||
backend->priv->dirty_xdmcp = FALSE;
|
|
||||||
+ backend->priv->dirty_show_domain = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
@@ -275,6 +294,9 @@ gdm_settings_system_backend_set_value (G
|
|
||||||
} else if (!strcasecmp (key, GDM_KEY_XDMCP_ENABLE)) {
|
|
||||||
priv->set_xdmcp = value_to_boolean (value);
|
|
||||||
GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_xdmcp = TRUE;
|
|
||||||
+ } else if (!strcasecmp (key, GDM_KEY_SHOW_DOMAIN)) {
|
|
||||||
+ priv->set_show_domain = value_to_boolean (value);
|
|
||||||
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_show_domain = TRUE;
|
|
||||||
} else {
|
|
||||||
g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
|
|
||||||
return FALSE;
|
|
||||||
Index: gdm-2.29.5/data/gdm.schemas.in.in
|
|
||||||
===================================================================
|
|
||||||
--- gdm-2.29.5.orig/data/gdm.schemas.in.in
|
|
||||||
+++ gdm-2.29.5/data/gdm.schemas.in.in
|
|
||||||
@@ -61,6 +61,11 @@
|
|
||||||
</schema>
|
|
||||||
|
|
||||||
<schema>
|
|
||||||
+ <key>greeter/ShowDomain</key>
|
|
||||||
+ <signature>b</signature>
|
|
||||||
+ <default>false</default>
|
|
||||||
+ </schema>
|
|
||||||
+ <schema>
|
|
||||||
<key>greeter/Include</key>
|
|
||||||
<signature>s</signature>
|
|
||||||
<default></default>
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
123
gdm-keyboard-from-hal.patch
Normal file
123
gdm-keyboard-from-hal.patch
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
Index: gdm-2.28.0/configure.ac
|
||||||
|
===================================================================
|
||||||
|
--- gdm-2.28.0.orig/configure.ac
|
||||||
|
+++ gdm-2.28.0/configure.ac
|
||||||
|
@@ -70,6 +70,7 @@ PKG_CHECK_MODULES(DAEMON,
|
||||||
|
dbus-glib-1 >= $DBUS_GLIB_REQUIRED_VERSION
|
||||||
|
gobject-2.0 >= $GLIB_REQUIRED_VERSION
|
||||||
|
gio-2.0 >= $GLIB_REQUIRED_VERSION
|
||||||
|
+ hal
|
||||||
|
)
|
||||||
|
AC_SUBST(DAEMON_CFLAGS)
|
||||||
|
AC_SUBST(DAEMON_LIBS)
|
||||||
|
Index: gdm-2.28.0/daemon/gdm-session-direct.c
|
||||||
|
===================================================================
|
||||||
|
--- gdm-2.28.0.orig/daemon/gdm-session-direct.c
|
||||||
|
+++ gdm-2.28.0/daemon/gdm-session-direct.c
|
||||||
|
@@ -45,6 +45,8 @@
|
||||||
|
#include <dbus/dbus-glib.h>
|
||||||
|
#include <dbus/dbus-glib-lowlevel.h>
|
||||||
|
|
||||||
|
+#include <libhal.h>
|
||||||
|
+
|
||||||
|
#include "gdm-session-direct.h"
|
||||||
|
#include "gdm-session.h"
|
||||||
|
#include "gdm-session-private.h"
|
||||||
|
@@ -600,14 +602,66 @@ get_default_language_name (GdmSessionDir
|
||||||
|
return setlocale (LC_MESSAGES, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
+static char *
|
||||||
|
+get_system_default_layout (GdmSessionDirect *session)
|
||||||
|
+{
|
||||||
|
+ DBusConnection *connection;
|
||||||
|
+ LibHalContext *ctx;
|
||||||
|
+ char **devices;
|
||||||
|
+ int n_devices;
|
||||||
|
+ char *layout;
|
||||||
|
+ char *result;
|
||||||
|
+
|
||||||
|
+ result = NULL;
|
||||||
|
+
|
||||||
|
+ connection = dbus_g_connection_get_connection (session->priv->connection);
|
||||||
|
+ ctx = libhal_ctx_new ();
|
||||||
|
+ libhal_ctx_set_dbus_connection (ctx, connection);
|
||||||
|
+
|
||||||
|
+ if (!libhal_ctx_init (ctx, NULL)) {
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ devices = libhal_find_device_by_capability (ctx,
|
||||||
|
+ "input.keyboard",
|
||||||
|
+ &n_devices,
|
||||||
|
+ NULL);
|
||||||
|
+ if (n_devices > 0) {
|
||||||
|
+ layout = libhal_device_get_property_string (ctx,
|
||||||
|
+ devices[0],
|
||||||
|
+ "input.x11_options.XkbLayout",
|
||||||
|
+ NULL);
|
||||||
|
+ if (!layout) {
|
||||||
|
+ layout = libhal_device_get_property_string (ctx,
|
||||||
|
+ devices[0],
|
||||||
|
+ "input.xkb.layout",
|
||||||
|
+ NULL);
|
||||||
|
+ }
|
||||||
|
+ result = g_strdup (layout);
|
||||||
|
+ libhal_free_string (layout);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ libhal_free_string_array (devices);
|
||||||
|
+
|
||||||
|
+ libhal_ctx_shutdown (ctx, NULL);
|
||||||
|
+ libhal_ctx_free (ctx);
|
||||||
|
+
|
||||||
|
+out:
|
||||||
|
+ if (!result) {
|
||||||
|
+ result = g_strdup ("us");
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return result;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static const char *
|
||||||
|
get_default_layout_name (GdmSessionDirect *session)
|
||||||
|
{
|
||||||
|
- if (session->priv->saved_layout != NULL) {
|
||||||
|
- return session->priv->saved_layout;
|
||||||
|
+ if (!session->priv->saved_layout) {
|
||||||
|
+ session->priv->saved_layout = get_system_default_layout (session);
|
||||||
|
}
|
||||||
|
|
||||||
|
- return "us";
|
||||||
|
+ return session->priv->saved_layout;
|
||||||
|
}
|
||||||
|
|
||||||
|
static char *
|
||||||
|
@@ -1970,9 +2024,10 @@ setup_session_environment (GdmSessionDir
|
||||||
|
|
||||||
|
if (strcmp (get_layout_name (session),
|
||||||
|
get_default_layout_name (session)) == 0) {
|
||||||
|
- gdm_session_direct_set_environment_variable (session,
|
||||||
|
- "GDM_KEYBOARD_LAYOUT",
|
||||||
|
- get_layout_name (session));
|
||||||
|
+ if (g_strcmp0 (get_layout_name (session), get_system_default_layout (session)) != 0)
|
||||||
|
+ gdm_session_direct_set_environment_variable (session,
|
||||||
|
+ "GDM_KEYBOARD_LAYOUT",
|
||||||
|
+ get_layout_name (session));
|
||||||
|
}
|
||||||
|
|
||||||
|
gdm_session_direct_set_environment_variable (session,
|
||||||
|
Index: gdm-2.28.0/daemon/gdm-session-settings.c
|
||||||
|
===================================================================
|
||||||
|
--- gdm-2.28.0.orig/daemon/gdm-session-settings.c
|
||||||
|
+++ gdm-2.28.0/daemon/gdm-session-settings.c
|
||||||
|
@@ -149,8 +149,7 @@ gdm_session_settings_set_layout_name (Gd
|
||||||
|
{
|
||||||
|
g_return_if_fail (GDM_IS_SESSION_SETTINGS (settings));
|
||||||
|
|
||||||
|
- if (settings->priv->layout_name == NULL ||
|
||||||
|
- strcmp (settings->priv->layout_name, layout_name) != 0) {
|
||||||
|
+ if (g_strcmp0 (settings->priv->layout_name, layout_name) != 0) {
|
||||||
|
settings->priv->layout_name = g_strdup (layout_name);
|
||||||
|
g_object_notify (G_OBJECT (settings), "layout-name");
|
||||||
|
}
|
@@ -1,7 +1,6 @@
|
|||||||
Index: gdm-2.29.5/data/Init.in
|
diff -urN gdm-2.27.4/data/Init.in gdm-2.27.4.patched//data/Init.in
|
||||||
===================================================================
|
--- gdm-2.27.4/data/Init.in 2009-05-19 17:18:12.000000000 +0200
|
||||||
--- gdm-2.29.5.orig/data/Init.in
|
+++ gdm-2.27.4.patched//data/Init.in 2009-07-20 17:06:44.000000000 +0200
|
||||||
+++ gdm-2.29.5/data/Init.in
|
|
||||||
@@ -1,4 +1,9 @@
|
@@ -1,4 +1,9 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
+
|
+
|
||||||
@@ -12,10 +11,9 @@ Index: gdm-2.29.5/data/Init.in
|
|||||||
# Stolen from the debian kdm setup, aren't I sneaky
|
# Stolen from the debian kdm setup, aren't I sneaky
|
||||||
# Plus a lot of fun stuff added
|
# Plus a lot of fun stuff added
|
||||||
# -George
|
# -George
|
||||||
Index: gdm-2.29.5/data/PostSession.in
|
diff -urN gdm-2.27.4/data/PostSession.in gdm-2.27.4.patched//data/PostSession.in
|
||||||
===================================================================
|
--- gdm-2.27.4/data/PostSession.in 2009-05-19 17:18:12.000000000 +0200
|
||||||
--- gdm-2.29.5.orig/data/PostSession.in
|
+++ gdm-2.27.4.patched//data/PostSession.in 2009-07-20 17:06:44.000000000 +0200
|
||||||
+++ gdm-2.29.5/data/PostSession.in
|
|
||||||
@@ -1,3 +1,7 @@
|
@@ -1,3 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
@@ -24,18 +22,246 @@ Index: gdm-2.29.5/data/PostSession.in
|
|||||||
+fi
|
+fi
|
||||||
+
|
+
|
||||||
exit 0
|
exit 0
|
||||||
Index: gdm-2.29.5/data/Xsession.in
|
diff -urN gdm-2.27.4/data/Xsession.in gdm-2.27.4.patched//data/Xsession.in
|
||||||
===================================================================
|
--- gdm-2.27.4/data/Xsession.in 2009-07-20 03:09:09.000000000 +0200
|
||||||
--- gdm-2.29.5.orig/data/Xsession.in
|
+++ gdm-2.27.4.patched//data/Xsession.in 2009-07-20 17:09:51.000000000 +0200
|
||||||
+++ gdm-2.29.5/data/Xsession.in
|
@@ -1,235 +1,6 @@
|
||||||
@@ -1,4 +1,10 @@
|
-#!@XSESSION_SHELL@
|
||||||
#!@XSESSION_SHELL@
|
-#
|
||||||
+
|
-# This is SORT OF LIKE an X session, but not quite. You get a command as the
|
||||||
|
-# first argument (it could be multiple words, so run it with "eval"). As a
|
||||||
|
-# special case, the command can be:
|
||||||
|
-# default - Run the appropriate Xclients startup (see the code below)
|
||||||
|
-# custom - Run ~/.xsession and if that's not available run 'default'
|
||||||
|
-#
|
||||||
|
-# (Note that other arguments could also follow, but only the command one is
|
||||||
|
-# right now relevant and supported)
|
||||||
|
-#
|
||||||
|
-# The output is ALREADY redirected to .xsession-errors in GDM. This way
|
||||||
|
-# .xsession-errors actually gets more output such as if the PreSession script
|
||||||
|
-# is failing. This also prevents DoS attacks if some app in the users session
|
||||||
|
-# can be prodded to dump lots of stuff on the stdout/stderr. We wish to be
|
||||||
|
-# robust don't we? In case you wish to use an existing script for other DM's,
|
||||||
|
-# you can just not redirect when GDMSESSION is set. GDMSESSION will always
|
||||||
|
-# be set from gdm.
|
||||||
|
-#
|
||||||
|
-# Also note that this is not run as a login shell, this is just executed.
|
||||||
|
-# This is why we source the profile files below.
|
||||||
|
-#
|
||||||
|
-# based on:
|
||||||
|
-# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
|
||||||
|
-
|
||||||
|
-command="$@"
|
||||||
|
-
|
||||||
|
-# this will go into the .xsession-errors along with all other echo's
|
||||||
|
-# good for debugging where things went wrong
|
||||||
|
-echo "$0: Beginning session setup..."
|
||||||
|
-
|
||||||
|
-# First read /etc/profile and .profile
|
||||||
|
-test -f /etc/profile && . /etc/profile
|
||||||
|
-test -f "$HOME/.profile" && . "$HOME/.profile"
|
||||||
|
-# Second read /etc/xprofile and .xprofile for X specific setup
|
||||||
|
-test -f /etc/xprofile && . /etc/xprofile
|
||||||
|
-test -f "$HOME/.xprofile" && . "$HOME/.xprofile"
|
||||||
|
-
|
||||||
|
-# Translation stuff
|
||||||
|
-if [ -x "@libexecdir@/gdmtranslate" ] ; then
|
||||||
|
- gdmtranslate="@libexecdir@/gdmtranslate"
|
||||||
|
-else
|
||||||
|
- gdmtranslate=
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-# Note that this should only go to zenity dialogs which always expect utf8
|
||||||
|
-gettextfunc () {
|
||||||
|
- if [ "x$gdmtranslate" != "x" ] ; then
|
||||||
|
- "$gdmtranslate" --utf8 "$1"
|
||||||
|
- else
|
||||||
|
- echo "$1"
|
||||||
|
- fi
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-OLD_IFS=$IFS
|
||||||
|
-
|
||||||
|
-gdmwhich () {
|
||||||
|
- COMMAND="$1"
|
||||||
|
- OUTPUT=
|
||||||
|
- IFS=:
|
||||||
|
- for dir in $PATH
|
||||||
|
- do
|
||||||
|
- if test -x "$dir/$COMMAND" ; then
|
||||||
|
- if test "x$OUTPUT" = "x" ; then
|
||||||
|
- OUTPUT="$dir/$COMMAND"
|
||||||
|
- fi
|
||||||
|
- fi
|
||||||
|
- done
|
||||||
|
- IFS=$OLD_IFS
|
||||||
|
- echo "$OUTPUT"
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-zenity=`gdmwhich zenity`
|
||||||
|
-
|
||||||
|
-# Note: ~/.xsession-errors is now done in the daemon so that it
|
||||||
|
-# works for ALL sessions (except ones named 'Failsafe')
|
||||||
|
-
|
||||||
|
-# clean up after xbanner
|
||||||
|
-freetemp=`gdmwhich freetemp`
|
||||||
|
-if [ -n "$freetemp" ] ; then
|
||||||
|
- "$freetemp"
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-userresources="$HOME/.Xresources"
|
||||||
|
-usermodmap="$HOME/.Xmodmap"
|
||||||
|
-userxkbmap="$HOME/.Xkbmap"
|
||||||
|
-
|
||||||
|
-sysresources=/etc/X11/Xresources
|
||||||
|
-sysmodmap=/etc/X11/Xmodmap
|
||||||
|
-sysxkbmap=/etc/X11/Xkbmap
|
||||||
|
-
|
||||||
|
-rh6sysresources=/etc/X11/xinit/Xresources
|
||||||
|
-rh6sysmodmap=/etc/X11/xinit/Xmodmap
|
||||||
|
-
|
||||||
|
-# merge in defaults
|
||||||
|
-if [ -f "$rh6sysresources" ]; then
|
||||||
|
- xrdb -nocpp -merge "$rh6sysresources"
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-if [ -f "$sysresources" ]; then
|
||||||
|
- xrdb -nocpp -merge "$sysresources"
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-if [ -f "$userresources" ]; then
|
||||||
|
- xrdb -nocpp -merge "$userresources"
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-# merge in keymaps
|
||||||
|
-if [ -f "$sysxkbmap" ]; then
|
||||||
|
- setxkbmap `cat "$sysxkbmap"`
|
||||||
|
- XKB_IN_USE=yes
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-if [ -f "$userxkbmap" ]; then
|
||||||
|
- setxkbmap `cat "$userxkbmap"`
|
||||||
|
- XKB_IN_USE=yes
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-#
|
||||||
|
-# Eeek, this seems like too much magic here
|
||||||
|
-#
|
||||||
|
-if [ -z "$XKB_IN_USE" -a ! -L /etc/X11/X ]; then
|
||||||
|
- if grep '^exec.*/Xsun' /etc/X11/X > /dev/null 2>&1 && [ -f /etc/X11/XF86Config ]; then
|
||||||
|
- xkbsymbols=`sed -n -e 's/^[ ]*XkbSymbols[ ]*"\(.*\)".*$/\1/p' /etc/X11/XF86Config`
|
||||||
|
- if [ -n "$xkbsymbols" ]; then
|
||||||
|
- setxkbmap -symbols "$xkbsymbols"
|
||||||
|
- XKB_IN_USE=yes
|
||||||
|
- fi
|
||||||
|
- fi
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-# xkb and xmodmap don't play nice together
|
||||||
|
-if [ -z "$XKB_IN_USE" ]; then
|
||||||
|
- if [ -f "$rh6sysmodmap" ]; then
|
||||||
|
- xmodmap "$rh6sysmodmap"
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- if [ -f "$sysmodmap" ]; then
|
||||||
|
- xmodmap "$sysmodmap"
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- if [ -f "$usermodmap" ]; then
|
||||||
|
- xmodmap "$usermodmap"
|
||||||
|
- fi
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-unset XKB_IN_USE
|
||||||
|
-
|
||||||
|
-# Normalize languages, some places/distros screw us up in /etc/profile,
|
||||||
|
-# so in case the user did select a language
|
||||||
|
-if [ -n "$GDM_LANG" ]; then
|
||||||
|
- LANG="$GDM_LANG"
|
||||||
|
- export LANG
|
||||||
|
-
|
||||||
|
- if [ -n "$LC_ALL" ]; then
|
||||||
|
- if [ "$LC_ALL" != "$LANG" ]; then
|
||||||
|
- LC_ALL="$LANG"
|
||||||
|
- fi
|
||||||
|
- else
|
||||||
|
- unset LC_ALL
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- if [ -n "$LANGUAGE" ]; then
|
||||||
|
- if [ "$LANGUAGE" != "$LANG" ]; then
|
||||||
|
- LANGUAGE="$LANG"
|
||||||
|
- fi
|
||||||
|
- else
|
||||||
|
- unset LANGUAGE
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- if [ -n "$LINGUAS" ]; then
|
||||||
|
- if [ "$LINGUAS" != "$LANG" ]; then
|
||||||
|
- LINGUAS="$LANG"
|
||||||
|
- fi
|
||||||
|
- else
|
||||||
|
- unset LINGUAS
|
||||||
|
- fi
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-# run all system xinitrc shell scripts.
|
||||||
|
-if [ -d /etc/X11/xinit/xinitrc.d ]; then
|
||||||
|
- for i in /etc/X11/xinit/xinitrc.d/* ; do
|
||||||
|
- if [ -x "$i" ]; then
|
||||||
|
- . "$i"
|
||||||
|
- fi
|
||||||
|
- done
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-if [ "x$command" = "xcustom" ] ; then
|
||||||
|
- if [ -x "$HOME/.xsession" ]; then
|
||||||
|
- command="$HOME/.xsession"
|
||||||
|
- else
|
||||||
|
- echo "$0: Cannot find ~/.xsession will try the default session"
|
||||||
|
- command="default"
|
||||||
|
- fi
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-if [ "x$command" = "xdefault" ] ; then
|
||||||
|
- if [ -x "$HOME/.Xclients" ]; then
|
||||||
|
- command="$HOME/.Xclients"
|
||||||
|
- elif [ -x /etc/X11/xinit/Xclients ]; then
|
||||||
|
- command="/etc/X11/xinit/Xclients"
|
||||||
|
- elif [ -x /etc/X11/Xclients ]; then
|
||||||
|
- command="/etc/X11/Xclients"
|
||||||
|
- else
|
||||||
|
- if [ -n "$zenity" ] ; then
|
||||||
|
- disptext=`gettextfunc "System has no Xclients file, so starting a failsafe xterm session. Windows will have focus only if the mouse pointer is above them. To get out of this mode type 'exit' in the window."`
|
||||||
|
- "$zenity" --info --text "$disptext"
|
||||||
|
- else
|
||||||
|
- echo "$0: Cannot find Xclients"
|
||||||
|
- fi
|
||||||
|
- exec xterm -geometry 80x24+0+0
|
||||||
|
- fi
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-# add ssh-agent if found
|
||||||
|
-sshagent="`gdmwhich ssh-agent`"
|
||||||
|
-if [ -n "$sshagent" ] && [ -x "$sshagent" ] && [ -z "$SSH_AUTH_SOCK" ]; then
|
||||||
|
- command="$sshagent -- $command"
|
||||||
|
-elif [ -z "$sshagent" ] ; then
|
||||||
|
- echo "$0: ssh-agent not found!"
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
-echo "$0: Setup done, will execute: $command"
|
||||||
|
-
|
||||||
|
-eval exec $command
|
||||||
|
-
|
||||||
|
-echo "$0: Executing $command failed, will run xterm"
|
||||||
|
-
|
||||||
|
-if [ -n "$zenity" ] ; then
|
||||||
|
- disptext=`gettextfunc "Failed to start the session, so starting a failsafe xterm session. Windows will have focus only if the mouse pointer is above them. To get out of this mode type 'exit' in the window."`
|
||||||
|
- "$zenity" --info --text "$disptext"
|
||||||
|
+#!/bin/sh
|
||||||
+if test -f /etc/X11/xdm/Xstartup -a -x /etc/X11/xdm/Xsession; then
|
+if test -f /etc/X11/xdm/Xstartup -a -x /etc/X11/xdm/Xsession; then
|
||||||
+ /bin/bash /etc/X11/xdm/Xstartup
|
+ /bin/bash /etc/X11/xdm/Xstartup
|
||||||
+ exec /etc/X11/xdm/Xsession $1 $GDM_LANG
|
+ exec /etc/X11/xdm/Xsession $1 $GDM_LANG
|
||||||
+fi
|
fi
|
||||||
+
|
|
||||||
#
|
-exec xterm -geometry 80x24+0+0
|
||||||
# This is SORT OF LIKE an X session, but not quite. You get a command as the
|
|
||||||
# first argument (it could be multiple words, so run it with "eval"). As a
|
|
||||||
|
@@ -1,8 +1,8 @@
|
|||||||
Index: gdm-2.29.4/common/Makefile.am
|
diff --git a/common/Makefile.am b/common/Makefile.am
|
||||||
===================================================================
|
index 101b3f4..5e9e9d1 100644
|
||||||
--- gdm-2.29.4.orig/common/Makefile.am
|
--- a/common/Makefile.am
|
||||||
+++ gdm-2.29.4/common/Makefile.am
|
+++ b/common/Makefile.am
|
||||||
@@ -84,6 +84,8 @@ libgdmcommon_la_SOURCES = \
|
@@ -83,6 +83,8 @@ libgdmcommon_la_SOURCES = \
|
||||||
gdm-settings-backend.h \
|
gdm-settings-backend.h \
|
||||||
gdm-settings-desktop-backend.c \
|
gdm-settings-desktop-backend.c \
|
||||||
gdm-settings-desktop-backend.h \
|
gdm-settings-desktop-backend.h \
|
||||||
@@ -11,7 +11,7 @@ Index: gdm-2.29.4/common/Makefile.am
|
|||||||
gdm-settings-keys.h \
|
gdm-settings-keys.h \
|
||||||
gdm-settings-utils.h \
|
gdm-settings-utils.h \
|
||||||
gdm-settings-utils.c \
|
gdm-settings-utils.c \
|
||||||
@@ -91,6 +93,8 @@ libgdmcommon_la_SOURCES = \
|
@@ -90,6 +92,8 @@ libgdmcommon_la_SOURCES = \
|
||||||
gdm-settings-direct.h \
|
gdm-settings-direct.h \
|
||||||
gdm-settings-client.h \
|
gdm-settings-client.h \
|
||||||
gdm-settings-client.c \
|
gdm-settings-client.c \
|
||||||
@@ -20,11 +20,12 @@ Index: gdm-2.29.4/common/Makefile.am
|
|||||||
gdm-log.h \
|
gdm-log.h \
|
||||||
gdm-log.c \
|
gdm-log.c \
|
||||||
gdm-md5.h \
|
gdm-md5.h \
|
||||||
Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
diff --git a/common/gdm-settings-system-backend.c b/common/gdm-settings-system-backend.c
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..4cf6a3a
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.4/common/gdm-settings-system-backend.c
|
+++ b/common/gdm-settings-system-backend.c
|
||||||
@@ -0,0 +1,348 @@
|
@@ -0,0 +1,281 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
+ * Copyright (C) 2008 Hans Petter Jansson <hpj@copyleft.no>
|
+ * Copyright (C) 2008 Hans Petter Jansson <hpj@copyleft.no>
|
||||||
@@ -69,15 +70,6 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+#include "gdm-log.h"
|
+#include "gdm-log.h"
|
||||||
+
|
+
|
||||||
+#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
|
+#define SYSCONFIG_AUTOLOGIN_KEY "DISPLAYMANAGER_AUTOLOGIN"
|
||||||
+#define SYSCONFIG_TCP_OPEN_KEY "DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN"
|
|
||||||
+#define SYSCONFIG_XDMCP_KEY "DISPLAYMANAGER_REMOTE_ACCESS"
|
|
||||||
+/* Keys from sysconfig that have no equivalent in GDM:
|
|
||||||
+ * - DISPLAYMANAGER_ROOT_LOGIN_REMOTE
|
|
||||||
+ * - DISPLAYMANAGER_STARTS_XSERVER (we always have a local display manager,
|
|
||||||
+ * see gdm_manager_constructor())
|
|
||||||
+ * - DISPLAYMANAGER_AD_INTEGRATION
|
|
||||||
+ * - DISPLAYMANAGER_SHUTDOWN (handled by ConsoleKit)
|
|
||||||
+ */
|
|
||||||
+
|
+
|
||||||
+#define GDM_SETTINGS_SYSTEM_BACKEND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS_SYSTEM_BACKEND, GdmSettingsSystemBackendPrivate))
|
+#define GDM_SETTINGS_SYSTEM_BACKEND_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_SETTINGS_SYSTEM_BACKEND, GdmSettingsSystemBackendPrivate))
|
||||||
+
|
+
|
||||||
@@ -85,19 +77,11 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+{
|
+{
|
||||||
+ char *filename;
|
+ char *filename;
|
||||||
+ gchar **lines;
|
+ gchar **lines;
|
||||||
+ guint save_id;
|
|
||||||
+
|
|
||||||
+ gboolean dirty;
|
+ gboolean dirty;
|
||||||
+ gboolean dirty_autologin;
|
+ guint save_id;
|
||||||
+ gboolean dirty_autologin_user;
|
|
||||||
+ gboolean dirty_tcp_open;
|
|
||||||
+ gboolean dirty_xdmcp;
|
|
||||||
+
|
+
|
||||||
+ gchar *set_autologin_user;
|
+ gchar *set_autologin_user;
|
||||||
+ gboolean set_autologin_enabled;
|
+ gboolean set_autologin_enabled;
|
||||||
+
|
|
||||||
+ gboolean set_tcp_open;
|
|
||||||
+ gboolean set_xdmcp;
|
|
||||||
+};
|
+};
|
||||||
+
|
+
|
||||||
+static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass);
|
+static void gdm_settings_system_backend_class_init (GdmSettingsSystemBackendClass *klass);
|
||||||
@@ -121,15 +105,20 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+ g_return_val_if_fail (key != NULL, FALSE);
|
+ g_return_val_if_fail (key != NULL, FALSE);
|
||||||
+
|
+
|
||||||
+ priv = system_backend->priv;
|
+ priv = system_backend->priv;
|
||||||
+ val = NULL;
|
|
||||||
+ ret = FALSE;
|
+ ret = FALSE;
|
||||||
+
|
+
|
||||||
+ if (value != NULL) {
|
+ if (value != NULL) {
|
||||||
+ *value = NULL;
|
+ *value = NULL;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ if (strcasecmp (key, GDM_KEY_AUTO_LOGIN_ENABLE) &&
|
||||||
|
+ strcasecmp (key, GDM_KEY_AUTO_LOGIN_USER)) {
|
||||||
|
+ g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
|
||||||
|
+ goto out;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ if (!strcasecmp (key, GDM_KEY_AUTO_LOGIN_ENABLE)) {
|
+ if (!strcasecmp (key, GDM_KEY_AUTO_LOGIN_ENABLE)) {
|
||||||
+ if (priv->dirty_autologin) {
|
+ if (priv->dirty) {
|
||||||
+ val = g_strdup (priv->set_autologin_enabled ? "true" : "false");
|
+ val = g_strdup (priv->set_autologin_enabled ? "true" : "false");
|
||||||
+ } else {
|
+ } else {
|
||||||
+ const gchar *new_val;
|
+ const gchar *new_val;
|
||||||
@@ -140,39 +129,13 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+ g_free (val);
|
+ g_free (val);
|
||||||
+ val = g_strdup (new_val);
|
+ val = g_strdup (new_val);
|
||||||
+ }
|
+ }
|
||||||
+ } else if (!strcasecmp (key, GDM_KEY_AUTO_LOGIN_USER)) {
|
+ } else {
|
||||||
+ if (priv->dirty_autologin_user) {
|
+ if (priv->dirty && priv->set_autologin_user) {
|
||||||
+ val = g_strdup (priv->set_autologin_user);
|
+ val = g_strdup (priv->set_autologin_user);
|
||||||
+ } else {
|
+ } else {
|
||||||
+ val = gdm_sysconfig_get_value ((const gchar **) priv->lines, SYSCONFIG_AUTOLOGIN_KEY);
|
+ val = gdm_sysconfig_get_value ((const gchar **) priv->lines, SYSCONFIG_AUTOLOGIN_KEY);
|
||||||
+ }
|
+ }
|
||||||
+ } else if (!strcasecmp (key, GDM_KEY_DISALLOW_TCP)) {
|
|
||||||
+ /* beware: that's the opposite of the sysconfig key */
|
|
||||||
+ if (priv->dirty_tcp_open) {
|
|
||||||
+ val = g_strdup (priv->set_tcp_open ? "false" : "true");
|
|
||||||
+ } else {
|
|
||||||
+ gboolean tcp_open;
|
|
||||||
+
|
|
||||||
+ if (gdm_sysconfig_get_value_boolean ((const gchar **) priv->lines, SYSCONFIG_TCP_OPEN_KEY, &tcp_open)) {
|
|
||||||
+ val = g_strdup (tcp_open ? "false" : "true");
|
|
||||||
+ }
|
+ }
|
||||||
+ }
|
|
||||||
+ } else if (!strcasecmp (key, GDM_KEY_XDMCP_ENABLE)) {
|
|
||||||
+ if (priv->dirty_xdmcp) {
|
|
||||||
+ val = g_strdup (priv->set_xdmcp ? "true" : "false");
|
|
||||||
+ } else {
|
|
||||||
+ gboolean xdmcp;
|
|
||||||
+
|
|
||||||
+ if (gdm_sysconfig_get_value_boolean ((const gchar **) priv->lines, SYSCONFIG_XDMCP_KEY, &xdmcp)) {
|
|
||||||
+ val = g_strdup (xdmcp ? "true" : "false");
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
|
|
||||||
+ goto out;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ret = (val != NULL);
|
|
||||||
+
|
+
|
||||||
+ if (value != NULL && val != NULL && *val != '\0') {
|
+ if (value != NULL && val != NULL && *val != '\0') {
|
||||||
+ *value = val;
|
+ *value = val;
|
||||||
@@ -180,6 +143,8 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+ g_free (val);
|
+ g_free (val);
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ ret = TRUE;
|
||||||
|
+
|
||||||
+ out:
|
+ out:
|
||||||
+ return ret;
|
+ return ret;
|
||||||
+}
|
+}
|
||||||
@@ -187,54 +152,29 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+static void
|
+static void
|
||||||
+save_settings (GdmSettingsSystemBackend *backend)
|
+save_settings (GdmSettingsSystemBackend *backend)
|
||||||
+{
|
+{
|
||||||
|
+ GError *local_error;
|
||||||
|
+ char *contents;
|
||||||
|
+ gsize length;
|
||||||
|
+
|
||||||
+ if (! backend->priv->dirty) {
|
+ if (! backend->priv->dirty) {
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ g_debug ("Saving settings to %s", backend->priv->filename);
|
+ g_debug ("Saving settings to %s", backend->priv->filename);
|
||||||
+
|
+
|
||||||
+ if (backend->priv->dirty_autologin || backend->priv->dirty_autologin_user) {
|
|
||||||
+ if (!backend->priv->dirty_autologin) {
|
|
||||||
+ gchar *val;
|
|
||||||
+
|
|
||||||
+ val = gdm_sysconfig_get_value ((const gchar **) backend->priv->lines, SYSCONFIG_AUTOLOGIN_KEY);
|
|
||||||
+ backend->priv->set_autologin_enabled = (val && *val);
|
|
||||||
+ g_free (val);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!backend->priv->set_autologin_enabled) {
|
+ if (!backend->priv->set_autologin_enabled) {
|
||||||
+ g_free (backend->priv->set_autologin_user);
|
+ g_free (backend->priv->set_autologin_user);
|
||||||
+ backend->priv->set_autologin_user = g_strdup ("");
|
+ backend->priv->set_autologin_user = g_strdup ("");
|
||||||
+ } else if (!backend->priv->dirty_autologin_user) {
|
|
||||||
+ g_free (backend->priv->set_autologin_user);
|
|
||||||
+ backend->priv->set_autologin_user = gdm_sysconfig_get_value ((const gchar **) backend->priv->lines, SYSCONFIG_AUTOLOGIN_KEY);
|
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (!gdm_sysconfig_set_value (backend->priv->lines, SYSCONFIG_AUTOLOGIN_KEY, backend->priv->set_autologin_user))
|
+ if (!gdm_sysconfig_set_value (backend->priv->lines, SYSCONFIG_AUTOLOGIN_KEY, backend->priv->set_autologin_user))
|
||||||
+ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_AUTOLOGIN_KEY,
|
+ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_AUTOLOGIN_KEY,
|
||||||
+ backend->priv->set_autologin_user);
|
+ backend->priv->set_autologin_user);
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (backend->priv->dirty_tcp_open) {
|
|
||||||
+ if (!gdm_sysconfig_set_value_boolean (backend->priv->lines, SYSCONFIG_TCP_OPEN_KEY, backend->priv->set_tcp_open))
|
|
||||||
+ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_TCP_OPEN_KEY,
|
|
||||||
+ backend->priv->set_tcp_open ? "yes" : "no");
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (backend->priv->dirty_xdmcp) {
|
|
||||||
+ if (!gdm_sysconfig_set_value_boolean (backend->priv->lines, SYSCONFIG_XDMCP_KEY, backend->priv->set_xdmcp))
|
|
||||||
+ g_warning ("Unable to set key %s to '%s'.", SYSCONFIG_XDMCP_KEY,
|
|
||||||
+ backend->priv->set_xdmcp ? "yes" : "no");
|
|
||||||
+ }
|
|
||||||
+
|
+
|
||||||
+ if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines))
|
+ if (!gdm_sysconfig_save_file (backend->priv->filename, backend->priv->lines))
|
||||||
+ g_warning ("Unable to save settings to %s.", backend->priv->filename);
|
+ g_warning ("Unable to save settings to %s.", backend->priv->filename);
|
||||||
+
|
+
|
||||||
+ backend->priv->dirty = FALSE;
|
+ backend->priv->dirty = FALSE;
|
||||||
+ backend->priv->dirty_autologin = FALSE;
|
|
||||||
+ backend->priv->dirty_autologin_user = FALSE;
|
|
||||||
+ backend->priv->dirty_tcp_open = FALSE;
|
|
||||||
+ backend->priv->dirty_xdmcp = FALSE;
|
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static gboolean
|
+static gboolean
|
||||||
@@ -261,17 +201,6 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+static gboolean
|
+static gboolean
|
||||||
+value_to_boolean (const char *value)
|
|
||||||
+{
|
|
||||||
+ gchar t = 0;
|
|
||||||
+
|
|
||||||
+ if (value)
|
|
||||||
+ t = g_ascii_tolower (*value);
|
|
||||||
+
|
|
||||||
+ return (t == 'y' || t == 't');
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static gboolean
|
|
||||||
+gdm_settings_system_backend_set_value (GdmSettingsBackend *backend,
|
+gdm_settings_system_backend_set_value (GdmSettingsBackend *backend,
|
||||||
+ const char *key,
|
+ const char *key,
|
||||||
+ const char *value,
|
+ const char *value,
|
||||||
@@ -286,27 +215,29 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+
|
+
|
||||||
+ priv = system_backend->priv;
|
+ priv = system_backend->priv;
|
||||||
+
|
+
|
||||||
+ gdm_settings_system_backend_get_value (backend, key, &old_val, NULL);
|
+ if (strcasecmp ("key", GDM_KEY_AUTO_LOGIN_ENABLE) &&
|
||||||
+
|
+ strcasecmp ("key", GDM_KEY_AUTO_LOGIN_USER)) {
|
||||||
+ if (!strcasecmp (key, GDM_KEY_AUTO_LOGIN_ENABLE)) {
|
|
||||||
+ priv->set_autologin_enabled = value_to_boolean (value);
|
|
||||||
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_autologin = TRUE;
|
|
||||||
+ } else if (!strcasecmp (key, GDM_KEY_AUTO_LOGIN_USER)) {
|
|
||||||
+ g_free (priv->set_autologin_user);
|
|
||||||
+ priv->set_autologin_user = g_strdup (value);
|
|
||||||
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_autologin_user = TRUE;
|
|
||||||
+ } else if (!strcasecmp (key, GDM_KEY_DISALLOW_TCP)) {
|
|
||||||
+ /* beware: that's the opposite of the sysconfig key */
|
|
||||||
+ priv->set_tcp_open = !value_to_boolean (value);
|
|
||||||
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_tcp_open = TRUE;
|
|
||||||
+ } else if (!strcasecmp (key, GDM_KEY_XDMCP_ENABLE)) {
|
|
||||||
+ priv->set_xdmcp = value_to_boolean (value);
|
|
||||||
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty_xdmcp = TRUE;
|
|
||||||
+ } else {
|
|
||||||
+ g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
|
+ g_set_error (error, GDM_SETTINGS_BACKEND_ERROR, GDM_SETTINGS_BACKEND_ERROR_KEY_NOT_FOUND, "Key not found");
|
||||||
+ return FALSE;
|
+ return FALSE;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
|
+ gdm_settings_system_backend_get_value (backend, key, &old_val, NULL);
|
||||||
|
+
|
||||||
|
+ if (!strcasecmp ("key", GDM_KEY_AUTO_LOGIN_ENABLE)) {
|
||||||
|
+ gchar t = 0;
|
||||||
|
+
|
||||||
|
+ if (value)
|
||||||
|
+ t = g_ascii_tolower (*value);
|
||||||
|
+
|
||||||
|
+ if (t == 'y' || t == 't')
|
||||||
|
+ priv->set_autologin_enabled = TRUE;
|
||||||
|
+ else
|
||||||
|
+ priv->set_autologin_enabled = FALSE;
|
||||||
|
+ } else {
|
||||||
|
+ g_free (priv->set_autologin_user);
|
||||||
|
+ priv->set_autologin_user = g_strdup (value);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty = TRUE;
|
+ GDM_SETTINGS_SYSTEM_BACKEND (backend)->priv->dirty = TRUE;
|
||||||
+ queue_save (GDM_SETTINGS_SYSTEM_BACKEND (backend));
|
+ queue_save (GDM_SETTINGS_SYSTEM_BACKEND (backend));
|
||||||
+
|
+
|
||||||
@@ -334,6 +265,9 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+static void
|
+static void
|
||||||
+gdm_settings_system_backend_init (GdmSettingsSystemBackend *backend)
|
+gdm_settings_system_backend_init (GdmSettingsSystemBackend *backend)
|
||||||
+{
|
+{
|
||||||
|
+ gboolean res;
|
||||||
|
+ GError *error;
|
||||||
|
+
|
||||||
+ backend->priv = GDM_SETTINGS_SYSTEM_BACKEND_GET_PRIVATE (backend);
|
+ backend->priv = GDM_SETTINGS_SYSTEM_BACKEND_GET_PRIVATE (backend);
|
||||||
+
|
+
|
||||||
+ backend->priv->filename = g_strdup ("/etc/sysconfig/displaymanager");
|
+ backend->priv->filename = g_strdup ("/etc/sysconfig/displaymanager");
|
||||||
@@ -373,10 +307,11 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.c
|
|||||||
+
|
+
|
||||||
+ return GDM_SETTINGS_BACKEND (object);
|
+ return GDM_SETTINGS_BACKEND (object);
|
||||||
+}
|
+}
|
||||||
Index: gdm-2.29.4/common/gdm-settings-system-backend.h
|
diff --git a/common/gdm-settings-system-backend.h b/common/gdm-settings-system-backend.h
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..3cd16b7
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.4/common/gdm-settings-system-backend.h
|
+++ b/common/gdm-settings-system-backend.h
|
||||||
@@ -0,0 +1,56 @@
|
@@ -0,0 +1,56 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
@@ -434,10 +369,10 @@ Index: gdm-2.29.4/common/gdm-settings-system-backend.h
|
|||||||
+G_END_DECLS
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
|
+#endif /* __GDM_SETTINGS_SYSTEM_BACKEND_H */
|
||||||
Index: gdm-2.29.4/common/gdm-settings.c
|
diff --git a/common/gdm-settings.c b/common/gdm-settings.c
|
||||||
===================================================================
|
index 00fe73e..4c31394 100644
|
||||||
--- gdm-2.29.4.orig/common/gdm-settings.c
|
--- a/common/gdm-settings.c
|
||||||
+++ gdm-2.29.4/common/gdm-settings.c
|
+++ b/common/gdm-settings.c
|
||||||
@@ -41,6 +41,7 @@
|
@@ -41,6 +41,7 @@
|
||||||
#include "gdm-settings-glue.h"
|
#include "gdm-settings-glue.h"
|
||||||
|
|
||||||
@@ -455,7 +390,7 @@ Index: gdm-2.29.4/common/gdm-settings.c
|
|||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@@ -94,15 +95,29 @@ gdm_settings_get_value (GdmSettings *set
|
@@ -94,15 +95,29 @@ gdm_settings_get_value (GdmSettings *settings,
|
||||||
{
|
{
|
||||||
GError *local_error;
|
GError *local_error;
|
||||||
gboolean res;
|
gboolean res;
|
||||||
@@ -489,7 +424,7 @@ Index: gdm-2.29.4/common/gdm-settings.c
|
|||||||
if (! res) {
|
if (! res) {
|
||||||
g_propagate_error (error, local_error);
|
g_propagate_error (error, local_error);
|
||||||
}
|
}
|
||||||
@@ -122,6 +137,7 @@ gdm_settings_set_value (GdmSettings *set
|
@@ -122,6 +137,7 @@ gdm_settings_set_value (GdmSettings *settings,
|
||||||
{
|
{
|
||||||
GError *local_error;
|
GError *local_error;
|
||||||
gboolean res;
|
gboolean res;
|
||||||
@@ -497,7 +432,7 @@ Index: gdm-2.29.4/common/gdm-settings.c
|
|||||||
|
|
||||||
g_return_val_if_fail (GDM_IS_SETTINGS (settings), FALSE);
|
g_return_val_if_fail (GDM_IS_SETTINGS (settings), FALSE);
|
||||||
g_return_val_if_fail (key != NULL, FALSE);
|
g_return_val_if_fail (key != NULL, FALSE);
|
||||||
@@ -129,10 +145,23 @@ gdm_settings_set_value (GdmSettings *set
|
@@ -129,10 +145,23 @@ gdm_settings_set_value (GdmSettings *settings,
|
||||||
g_debug ("Setting value %s", key);
|
g_debug ("Setting value %s", key);
|
||||||
|
|
||||||
local_error = NULL;
|
local_error = NULL;
|
||||||
@@ -525,7 +460,7 @@ Index: gdm-2.29.4/common/gdm-settings.c
|
|||||||
if (! res) {
|
if (! res) {
|
||||||
g_propagate_error (error, local_error);
|
g_propagate_error (error, local_error);
|
||||||
}
|
}
|
||||||
@@ -210,13 +239,21 @@ backend_value_changed (GdmSettingsBacken
|
@@ -210,13 +239,21 @@ backend_value_changed (GdmSettingsBackend *backend,
|
||||||
static void
|
static void
|
||||||
gdm_settings_init (GdmSettings *settings)
|
gdm_settings_init (GdmSettings *settings)
|
||||||
{
|
{
|
||||||
@@ -565,11 +500,12 @@ Index: gdm-2.29.4/common/gdm-settings.c
|
|||||||
|
|
||||||
G_OBJECT_CLASS (gdm_settings_parent_class)->finalize (object);
|
G_OBJECT_CLASS (gdm_settings_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
Index: gdm-2.29.4/common/gdm-sysconfig.c
|
diff --git a/common/gdm-sysconfig.c b/common/gdm-sysconfig.c
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..0e9e754
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.4/common/gdm-sysconfig.c
|
+++ b/common/gdm-sysconfig.c
|
||||||
@@ -0,0 +1,481 @@
|
@@ -0,0 +1,439 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
+ * Copyright (C) 2008 Hans Petter Jansson <hpj@novell.com>
|
+ * Copyright (C) 2008 Hans Petter Jansson <hpj@novell.com>
|
||||||
@@ -610,7 +546,6 @@ Index: gdm-2.29.4/common/gdm-sysconfig.c
|
|||||||
+
|
+
|
||||||
+#include <glib.h>
|
+#include <glib.h>
|
||||||
+#include <glib/gi18n.h>
|
+#include <glib/gi18n.h>
|
||||||
+#include <glib/gstdio.h>
|
|
||||||
+
|
+
|
||||||
+#include "gdm-sysconfig.h"
|
+#include "gdm-sysconfig.h"
|
||||||
+
|
+
|
||||||
@@ -647,7 +582,7 @@ Index: gdm-2.29.4/common/gdm-sysconfig.c
|
|||||||
+ g_debug ("%s", str);
|
+ g_debug ("%s", str);
|
||||||
+ } else {
|
+ } else {
|
||||||
+ g_ptr_array_add (lines, g_strdup (""));
|
+ g_ptr_array_add (lines, g_strdup (""));
|
||||||
+ g_debug ("%s", "");
|
+ g_debug ("", str);
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
@@ -970,47 +905,6 @@ Index: gdm-2.29.4/common/gdm-sysconfig.c
|
|||||||
+ return set_value (sysconfig, key, value);
|
+ return set_value (sysconfig, key, value);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
+gboolean
|
|
||||||
+gdm_sysconfig_get_value_boolean (const gchar **sysconfig, const gchar *key, gboolean *value)
|
|
||||||
+{
|
|
||||||
+ char *val;
|
|
||||||
+ gboolean val_bool;
|
|
||||||
+
|
|
||||||
+ g_return_val_if_fail (sysconfig != NULL, FALSE);
|
|
||||||
+ g_return_val_if_fail (key != NULL, FALSE);
|
|
||||||
+
|
|
||||||
+ val = get_value (sysconfig, key);
|
|
||||||
+ if (val == NULL) {
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!strcasecmp (val, "yes")) {
|
|
||||||
+ val_bool = TRUE;
|
|
||||||
+ } else if (!strcasecmp (val, "no")) {
|
|
||||||
+ val_bool = FALSE;
|
|
||||||
+ } else {
|
|
||||||
+ g_free (val);
|
|
||||||
+ return FALSE;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ g_free (val);
|
|
||||||
+
|
|
||||||
+ if (value != NULL) {
|
|
||||||
+ *value = val_bool;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return TRUE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+gboolean
|
|
||||||
+gdm_sysconfig_set_value_boolean (gchar **sysconfig, const gchar *key, gboolean value)
|
|
||||||
+{
|
|
||||||
+ g_return_val_if_fail (sysconfig != NULL, FALSE);
|
|
||||||
+ g_return_val_if_fail (key != NULL, FALSE);
|
|
||||||
+
|
|
||||||
+ return set_value (sysconfig, key, value ? "yes" : "no");
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+gchar *
|
+gchar *
|
||||||
+gdm_sysconfig_load_value (const gchar *file_name, const gchar *key)
|
+gdm_sysconfig_load_value (const gchar *file_name, const gchar *key)
|
||||||
+{
|
+{
|
||||||
@@ -1051,11 +945,12 @@ Index: gdm-2.29.4/common/gdm-sysconfig.c
|
|||||||
+ g_strfreev (lines);
|
+ g_strfreev (lines);
|
||||||
+ return result;
|
+ return result;
|
||||||
+}
|
+}
|
||||||
Index: gdm-2.29.4/common/gdm-sysconfig.h
|
diff --git a/common/gdm-sysconfig.h b/common/gdm-sysconfig.h
|
||||||
===================================================================
|
new file mode 100644
|
||||||
|
index 0000000..9bc21ec
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ gdm-2.29.4/common/gdm-sysconfig.h
|
+++ b/common/gdm-sysconfig.h
|
||||||
@@ -0,0 +1,43 @@
|
@@ -0,0 +1,40 @@
|
||||||
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
|
||||||
+ *
|
+ *
|
||||||
+ * Copyright (C) 2008 Hans Petter Jansson <hpj@novell.com>
|
+ * Copyright (C) 2008 Hans Petter Jansson <hpj@novell.com>
|
||||||
@@ -1090,24 +985,9 @@ Index: gdm-2.29.4/common/gdm-sysconfig.h
|
|||||||
+gchar *gdm_sysconfig_get_value (const gchar **sysconfig, const gchar *key);
|
+gchar *gdm_sysconfig_get_value (const gchar **sysconfig, const gchar *key);
|
||||||
+gboolean gdm_sysconfig_set_value (gchar **sysconfig, const gchar *key, const gchar *value);
|
+gboolean gdm_sysconfig_set_value (gchar **sysconfig, const gchar *key, const gchar *value);
|
||||||
+
|
+
|
||||||
+gboolean gdm_sysconfig_get_value_boolean (const gchar **sysconfig, const gchar *key, gboolean *value);
|
|
||||||
+gboolean gdm_sysconfig_set_value_boolean (gchar **sysconfig, const gchar *key, gboolean value);
|
|
||||||
+
|
|
||||||
+gchar *gdm_sysconfig_load_value (const gchar *file_name, const gchar *key);
|
+gchar *gdm_sysconfig_load_value (const gchar *file_name, const gchar *key);
|
||||||
+gboolean gdm_sysconfig_save_value (const gchar *file_name, const gchar *key, const gchar *value);
|
+gboolean gdm_sysconfig_save_value (const gchar *file_name, const gchar *key, const gchar *value);
|
||||||
+
|
+
|
||||||
+G_END_DECLS
|
+G_END_DECLS
|
||||||
+
|
+
|
||||||
+#endif /* __GDM_SYSCONFIG_H */
|
+#endif /* __GDM_SYSCONFIG_H */
|
||||||
Index: gdm-2.29.4/data/gdm.conf-custom.in
|
|
||||||
===================================================================
|
|
||||||
--- gdm-2.29.4.orig/data/gdm.conf-custom.in
|
|
||||||
+++ gdm-2.29.4/data/gdm.conf-custom.in
|
|
||||||
@@ -1,4 +1,7 @@
|
|
||||||
# GDM configuration storage
|
|
||||||
+#
|
|
||||||
+# Note: settings from /etc/sysconfig/displaymanager have a higher priority
|
|
||||||
+#
|
|
||||||
|
|
||||||
[daemon]
|
|
||||||
|
|
||||||
|
61
gdm.changes
61
gdm.changes
@@ -1,64 +1,3 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Sun Jan 17 22:52:01 CET 2010 - vuntz@opensuse.org
|
|
||||||
|
|
||||||
- Update gdm-sysconfig-settings.patch:
|
|
||||||
+ support DISPLAYMANAGER_XSERVER_TCP_PORT_6000_OPEN for
|
|
||||||
security/DisallowTCP in gdm.conf
|
|
||||||
+ support DISPLAYMANAGER_REMOTE_ACCESS for xdmcp/Enable in
|
|
||||||
gdm.conf
|
|
||||||
+ do not pretend we got a value from sysconfig if we didn't get a
|
|
||||||
result (we were returning TRUE too easily from
|
|
||||||
gdm_settings_system_backend_get_value()
|
|
||||||
+ make sure that, when saving the configuration, we put the right
|
|
||||||
value if it wasn't supposed to be changed (before, we used to
|
|
||||||
put whatever we had in memory, which was never initialized to
|
|
||||||
the right values, so random data)
|
|
||||||
+ add a note to gdm.conf about the fact that
|
|
||||||
/etc/sysconfig/displaymanager is used
|
|
||||||
- Remove the parts of SuSEconfig.gdm that were dealing with
|
|
||||||
updating gdm.conf, since gdm-sysconfig-settings.patch make gdm
|
|
||||||
poke directly in sysconfig. SuSEconfig.gdm is still needed for
|
|
||||||
the DISPLAYMANAGER_PASSWORD_LESS_LOGIN option, though.
|
|
||||||
- Rebase gdm-domain-logon.patch, and only show the domain chooser
|
|
||||||
if DISPLAYMANAGER_AD_INTEGRATION is set in sysconfig.
|
|
||||||
- Reenable gnome-patch-translation support, since
|
|
||||||
gdm-domain-logon.patch is applied again.
|
|
||||||
- This means we can remove /etc/gdm/gdm_sysconfig.conf from the
|
|
||||||
package.
|
|
||||||
- Remove sysconfig.displaymanager-gdm source: this has not been
|
|
||||||
used for a long time.
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Mon Jan 16 16:38:41 CET 2010 - vuntz@opensuse.org
|
|
||||||
|
|
||||||
- Remove libglade2-devel BuildRequires.
|
|
||||||
- Also remove hal-devel BuildRequires which was added for the
|
|
||||||
gdm-keyboard-from-hal.patch (removed now).
|
|
||||||
- Redo gdm-suse-xsession.patch in a way that won't require further
|
|
||||||
updates when upstream files change (which is something we can
|
|
||||||
ignore).
|
|
||||||
- Rebase gdm-greeter-greater-ui.patch.
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
Thu Jan 14 01:40:29 CET 2010 - captain.magnus@opensuse.org
|
|
||||||
|
|
||||||
- Update to version 2.29.5:
|
|
||||||
+ XDMCP fixes on Solaris
|
|
||||||
+ run PostLogin script as user instead of gdm
|
|
||||||
+ Fix ellipses usage on User Switch Applet
|
|
||||||
+ Add ability to customize system language list
|
|
||||||
+ Solaris NULL printf fixes
|
|
||||||
+ Convert from glade to gtkbuilder
|
|
||||||
+ Detect default keyboard layout better
|
|
||||||
+ Ignore executable subfolders of xinitrc.d
|
|
||||||
+ Don't reveal valid usernames when authenticating
|
|
||||||
- Respin gdm-suse-xsession.patch
|
|
||||||
- Remove gdm-keyboard-from-hal.patch: fixed upstream another way.
|
|
||||||
- Disable gdm-greeter-greater-ui.patch: it needs to be rebased.
|
|
||||||
- Update gdm-default-wm.patch to apply without fuzz.
|
|
||||||
- Add gdm-add-missing-locale.patch. Patch taken from upstream and
|
|
||||||
can be removed with the next version update
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Dec 24 17:57:48 CET 2009 - vuntz@opensuse.org
|
Thu Dec 24 17:57:48 CET 2009 - vuntz@opensuse.org
|
||||||
|
|
||||||
|
31
gdm.spec
31
gdm.spec
@@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
# spec file for package gdm (Version 2.29.5)
|
# spec file for package gdm (Version 2.29.4)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
@@ -26,9 +26,12 @@ BuildRequires: gconf2-devel
|
|||||||
BuildRequires: gnome-doc-utils-devel
|
BuildRequires: gnome-doc-utils-devel
|
||||||
BuildRequires: gnome-panel-devel
|
BuildRequires: gnome-panel-devel
|
||||||
BuildRequires: gnome-patch-translation
|
BuildRequires: gnome-patch-translation
|
||||||
|
# Needed for Patch32 - gdm-keyboard-from-hal.patch
|
||||||
|
BuildRequires: hal-devel
|
||||||
BuildRequires: intltool
|
BuildRequires: intltool
|
||||||
BuildRequires: iso-codes-devel
|
BuildRequires: iso-codes-devel
|
||||||
BuildRequires: libcanberra-devel
|
BuildRequires: libcanberra-devel
|
||||||
|
BuildRequires: libglade2-devel
|
||||||
BuildRequires: libselinux-devel
|
BuildRequires: libselinux-devel
|
||||||
BuildRequires: libxklavier-devel
|
BuildRequires: libxklavier-devel
|
||||||
BuildRequires: pam-devel
|
BuildRequires: pam-devel
|
||||||
@@ -41,7 +44,7 @@ BuildRequires: xorg-x11-server-extra
|
|||||||
BuildRequires: zenity
|
BuildRequires: zenity
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Group: System/GUI/GNOME
|
Group: System/GUI/GNOME
|
||||||
Version: 2.29.5
|
Version: 2.29.4
|
||||||
Release: 1
|
Release: 1
|
||||||
Summary: The GNOME 2.x Display Manager
|
Summary: The GNOME 2.x Display Manager
|
||||||
Source: %{name}-%{version}.tar.bz2
|
Source: %{name}-%{version}.tar.bz2
|
||||||
@@ -49,6 +52,7 @@ Source1: gdm.pamd
|
|||||||
Source2: gdm-autologin.pamd
|
Source2: gdm-autologin.pamd
|
||||||
# FIXME: See FIXME in the script.
|
# FIXME: See FIXME in the script.
|
||||||
Source3: SuSEconfig.gdm
|
Source3: SuSEconfig.gdm
|
||||||
|
Source5: sysconfig.displaymanager-gdm
|
||||||
# PATCH-FIX-UPSTREAM gdm-helper-directory.patch bgo582320 vuntz@novell.com -- Add --with-gnome-settings-daemon-directory, --with-consolekit-directory, --with-at-spi-registryd-directory
|
# PATCH-FIX-UPSTREAM gdm-helper-directory.patch bgo582320 vuntz@novell.com -- Add --with-gnome-settings-daemon-directory, --with-consolekit-directory, --with-at-spi-registryd-directory
|
||||||
Patch1: gdm-helper-directory.patch
|
Patch1: gdm-helper-directory.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-2.21.9-no-fatal-warnings.patch -- Do not accept fatal warnings in development version: gdm is too critical
|
# PATCH-FIX-OPENSUSE gdm-2.21.9-no-fatal-warnings.patch -- Do not accept fatal warnings in development version: gdm is too critical
|
||||||
@@ -59,10 +63,10 @@ Patch4: gdm-vt-allocation-hack.patch
|
|||||||
Patch6: gdm-desktop-session-env-pam.patch
|
Patch6: gdm-desktop-session-env-pam.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
|
# PATCH-FIX-OPENSUSE gdm-suse-xsession.patch vuntz@novell.com -- Use the /etc/X11/xdm/* scripts
|
||||||
Patch7: gdm-suse-xsession.patch
|
Patch7: gdm-suse-xsession.patch
|
||||||
|
# PATCH-NEEDS-REBASE gdm-domain-logon.patch hpj@novell.com -- Add UI to log in a specific domain (was: PATCH-FEATURE-SLED)
|
||||||
|
Patch8: gdm-domain-logon.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager
|
# PATCH-FIX-OPENSUSE gdm-sysconfig-settings.patch bnc432360 hpj@novell.com -- Read autologin options from /etc/sysconfig/displaymanager
|
||||||
Patch8: gdm-sysconfig-settings.patch
|
Patch13: gdm-sysconfig-settings.patch
|
||||||
# PATCH-FEATURE-SLED gdm-domain-logon.patch hpj@novell.com -- Add UI to log in a specific domain
|
|
||||||
Patch9: gdm-domain-logon.patch
|
|
||||||
# PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch)
|
# PATCH-FIX-UPSTREAM gdm-greeter-greater-ui.patch bnc436431 bgo560508 vuntz@novell.com -- Improve the layout of the greeter. Note: the patch contains a patched glade file *and* the result glade file (for reference only, in case we need to rebase the patch)
|
||||||
Patch15: gdm-greeter-greater-ui.patch
|
Patch15: gdm-greeter-greater-ui.patch
|
||||||
# PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations.
|
# PATCH-FIX-UPSTREAM gdm-always-reflect-keyboard-layout.patch bnc438159 bgo561771 hpj@novell.com -- Make keyboard selector not neglect to apply the selected keyboard in some situations.
|
||||||
@@ -73,6 +77,8 @@ Patch19: gdm-save-panel-space-on-low-resolutions.patch
|
|||||||
Patch20: gdm-selecting-desktop-environment.patch
|
Patch20: gdm-selecting-desktop-environment.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-gconf-path.patch vuntz@novell.com -- Fix gconf paths to be consistent with the ones used in openSUSE
|
# PATCH-FIX-OPENSUSE gdm-gconf-path.patch vuntz@novell.com -- Fix gconf paths to be consistent with the ones used in openSUSE
|
||||||
Patch31: gdm-gconf-path.patch
|
Patch31: gdm-gconf-path.patch
|
||||||
|
# PATCH-FIX-UPSTREAM gdm-keyboard-from-hal.patch bnc492284 bnc478083 vuntz@novell.com -- Read the keyboard layout from hal
|
||||||
|
Patch32: gdm-keyboard-from-hal.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-default-wm.patch vuntz@novell.com -- Use sysconfig to know to which desktop to use by default
|
# PATCH-FIX-OPENSUSE gdm-default-wm.patch vuntz@novell.com -- Use sysconfig to know to which desktop to use by default
|
||||||
Patch34: gdm-default-wm.patch
|
Patch34: gdm-default-wm.patch
|
||||||
# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bgo555464 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to localhost for local logins to avoid issues in the session in case the hostname changes
|
# PATCH-FIX-OPENSUSE gdm-xauthlocalhostname.patch bgo555464 vuntz@novell.com -- Set XAUTHLOCALHOSTNAME to localhost for local logins to avoid issues in the session in case the hostname changes
|
||||||
@@ -83,8 +89,6 @@ Patch37: gdm-autologin-once.patch
|
|||||||
Patch39: gdm-polkit-gnome-path.patch
|
Patch39: gdm-polkit-gnome-path.patch
|
||||||
# PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 vuntz@opensuse.org -- Look at the current runlevel before managing the display again, so we don't do this when shutting down or rebooting
|
# PATCH-FIX-UPSTREAM gdm-look-at-runlevel.patch bnc540482 bgo599180 vuntz@opensuse.org -- Look at the current runlevel before managing the display again, so we don't do this when shutting down or rebooting
|
||||||
Patch40: gdm-look-at-runlevel.patch
|
Patch40: gdm-look-at-runlevel.patch
|
||||||
# PATCH-FIX-UPSTREAM gdm-add-missing-locale.patch captain.magnus@opensuse.org -- Add missing locale.alias file. This patch can be removed with the next version update
|
|
||||||
Patch41: gdm-add-missing-locale.patch
|
|
||||||
# PATCH-FIX-OPENSUSE gdm-selinux.patch -- Small changes to make it compile fine with SELinux
|
# PATCH-FIX-OPENSUSE gdm-selinux.patch -- Small changes to make it compile fine with SELinux
|
||||||
Patch60: gdm-selinux.patch
|
Patch60: gdm-selinux.patch
|
||||||
Url: http://www.gnome.org/
|
Url: http://www.gnome.org/
|
||||||
@@ -140,21 +144,22 @@ gnome-patch-translation-prepare
|
|||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch6 -p1
|
%patch6 -p1
|
||||||
%patch7 -p1
|
%patch7 -p1
|
||||||
%patch8 -p1
|
# NEEDS-REBASE - also re-enable gnome-patch-translation-update after patch rebase
|
||||||
%patch9 -p1
|
# %%patch8 -p1
|
||||||
|
%patch13 -p1
|
||||||
%patch15 -p1
|
%patch15 -p1
|
||||||
%patch18 -p1
|
%patch18 -p1
|
||||||
%patch19 -p1
|
%patch19 -p1
|
||||||
%patch20 -p1
|
%patch20 -p1
|
||||||
%patch31 -p1
|
%patch31 -p1
|
||||||
|
%patch32 -p1
|
||||||
%patch34 -p1
|
%patch34 -p1
|
||||||
%patch35 -p1
|
%patch35 -p1
|
||||||
%patch37 -p1
|
%patch37 -p1
|
||||||
%patch39 -p1
|
%patch39 -p1
|
||||||
%patch40 -p1
|
%patch40 -p1
|
||||||
%patch41 -p1
|
|
||||||
%patch60
|
%patch60
|
||||||
gnome-patch-translation-update
|
# gnome-patch-translation-update
|
||||||
|
|
||||||
%build
|
%build
|
||||||
libtoolize -f -i
|
libtoolize -f -i
|
||||||
@@ -189,6 +194,7 @@ mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_
|
|||||||
mkdir -p $RPM_BUILD_ROOT/sbin/conf.d
|
mkdir -p $RPM_BUILD_ROOT/sbin/conf.d
|
||||||
cp %{S:3} $RPM_BUILD_ROOT/sbin/conf.d
|
cp %{S:3} $RPM_BUILD_ROOT/sbin/conf.d
|
||||||
chmod +x $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.gdm
|
chmod +x $RPM_BUILD_ROOT/sbin/conf.d/SuSEconfig.gdm
|
||||||
|
touch $RPM_BUILD_ROOT%{_sysconfdir}/gdm/gdm_sysconfig.conf
|
||||||
mkdir -p $RPM_BUILD_ROOT{_localstatedir}/log/gdm
|
mkdir -p $RPM_BUILD_ROOT{_localstatedir}/log/gdm
|
||||||
mkdir -p $RPM_BUILD_ROOT{_localstatedir}/run/gdm
|
mkdir -p $RPM_BUILD_ROOT{_localstatedir}/run/gdm
|
||||||
%find_lang %{name}
|
%find_lang %{name}
|
||||||
@@ -204,6 +210,8 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
/usr/sbin/useradd -r -o -g gdm -s /bin/false \
|
/usr/sbin/useradd -r -o -g gdm -s /bin/false \
|
||||||
-c "Gnome Display Manager daemon" -d /var/lib/gdm gdm 2> /dev/null || :
|
-c "Gnome Display Manager daemon" -d /var/lib/gdm gdm 2> /dev/null || :
|
||||||
/usr/sbin/usermod -g gdm -G gdm -s /bin/false gdm 2> /dev/null
|
/usr/sbin/usermod -g gdm -G gdm -s /bin/false gdm 2> /dev/null
|
||||||
|
# Remove old gdm_sysconfig.conf to update custom.conf from sysconfig settings.
|
||||||
|
rm -f etc/gdm/gdm_sysconfig.conf
|
||||||
# Fix incorrect interpretation of DISPLAYMANAGER_PASSWORD_LESS_LOGIN (#307566).
|
# Fix incorrect interpretation of DISPLAYMANAGER_PASSWORD_LESS_LOGIN (#307566).
|
||||||
# Last done in SLED10&10.1, first fixed in 10.3.
|
# Last done in SLED10&10.1, first fixed in 10.3.
|
||||||
# Can be removed after SLES12:
|
# Can be removed after SLES12:
|
||||||
@@ -230,6 +238,7 @@ fi
|
|||||||
%doc AUTHORS COPYING ChangeLog NEWS README
|
%doc AUTHORS COPYING ChangeLog NEWS README
|
||||||
%dir %config %{_sysconfdir}/gdm
|
%dir %config %{_sysconfdir}/gdm
|
||||||
%config %{_sysconfdir}/gdm/[IPXl]*
|
%config %{_sysconfdir}/gdm/[IPXl]*
|
||||||
|
%ghost %{_sysconfdir}/gdm/gdm_sysconfig.conf
|
||||||
%{_sbindir}/*
|
%{_sbindir}/*
|
||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
%{_datadir}/gdm
|
%{_datadir}/gdm
|
||||||
|
48
sysconfig.displaymanager-gdm
Normal file
48
sysconfig.displaymanager-gdm
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
## Path: Desktop/Display manager
|
||||||
|
## Description: settings to generate a proper displaymanager config
|
||||||
|
## Config: gdm
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: no
|
||||||
|
#
|
||||||
|
# Allow remote access of the user root to your display manager. Note
|
||||||
|
# that root can never login if DISPLAYMANAGER_SHUTDOWN is "auto" and
|
||||||
|
# System/Security/Permissions/PERMISSION_SECURITY is "paranoid"
|
||||||
|
#
|
||||||
|
DISPLAYMANAGER_ROOT_LOGIN_REMOTE="no"
|
||||||
|
|
||||||
|
## Type: string
|
||||||
|
## Default:
|
||||||
|
#
|
||||||
|
# Define the user whom should get logged in without request. If string
|
||||||
|
# is empty, display standard login dialog.
|
||||||
|
#
|
||||||
|
DISPLAYMANAGER_AUTOLOGIN=""
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: no
|
||||||
|
#
|
||||||
|
# Allow all users to login without password, but ask for the user, if
|
||||||
|
# DISPLAYMANAGER_AUTOLOGIN is empty.
|
||||||
|
#
|
||||||
|
DISPLAYMANAGER_PASSWORD_LESS_LOGIN="no"
|
||||||
|
|
||||||
|
## Type: yesno
|
||||||
|
## Default: no
|
||||||
|
#
|
||||||
|
# Display a combobox for Active Directory domains.
|
||||||
|
#
|
||||||
|
DISPLAYMANAGER_AD_INTEGRATION="no"
|
||||||
|
|
||||||
|
## Type: list(root,all,none,auto)
|
||||||
|
## Default: auto
|
||||||
|
#
|
||||||
|
# Determine who will be able to shutdown or reboot the system in kdm
|
||||||
|
# and gdm. Valid values are: "root" (only root can shutdown), "all"
|
||||||
|
# (everybody can shutdown), "none" (nobody can shutdown from
|
||||||
|
# displaymanager), "auto" (follow
|
||||||
|
# System/Security/Permissions/PERMISSION_SECURITY to decide: "easy
|
||||||
|
# local" is equal to "all", everything else is equal to "root") Note
|
||||||
|
# that remote user can never shutdown in GDM.
|
||||||
|
#
|
||||||
|
DISPLAYMANAGER_SHUTDOWN="auto"
|
Reference in New Issue
Block a user