SHA256
1
0
forked from pool/gdm

Accepting request 81172 from home:vuntz:branches:GNOME:Factory

Integrate Egbert's /etc/init.d/xdm changes + cleanup + update to 3.1.90

OBS-URL: https://build.opensuse.org/request/show/81172
OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=173
This commit is contained in:
Vincent Untz 2011-09-07 03:49:36 +00:00 committed by Git OBS Bridge
parent 132d82e404
commit 8b376d62d8
11 changed files with 327 additions and 154 deletions

24
X11-displaymanager-gdm Normal file
View File

@ -0,0 +1,24 @@
gdm_start_proc () {
if test "$DISPLAYMANAGER_REMOTE_ACCESS" = "yes" -a \
"$DISPLAYMANAGER_STARTS_XSERVER" = "no"; then
XDMOPTIONS="--no-console"
fi
splashcopy 0 6
return 0
}
gdm_vars() {
case "${DISPLAYMANAGER##*/}" in
gdm|GDM|Gnome|GNOME)
RELOADSIGNAL="-USR1"
DISPLAYMANAGER=/usr/sbin/gdm
STARTPROC=gdm_start_proc
return 0 ;;
;;
*) return 1 ;;
esac
return 1
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c591d2e9cf8cde0c5d92b82adcd0d0a176a6141b8c337c09126ac8572bfa87f1
size 2351352

3
gdm-3.1.90.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d6d06207343a9fd80b120ac177bd12bdfdaf198328faaf2d1438b176d8fd5a3b
size 2371439

View File

@ -1,16 +1,12 @@
Index: gdm-2.91.6/daemon/gdm-session-worker.c
Index: gdm-3.1.90/daemon/gdm-session-worker.c
===================================================================
--- gdm-2.91.6.orig/daemon/gdm-session-worker.c
+++ gdm-2.91.6/daemon/gdm-session-worker.c
@@ -2163,11 +2163,28 @@ static void
--- gdm-3.1.90.orig/daemon/gdm-session-worker.c
+++ gdm-3.1.90/daemon/gdm-session-worker.c
@@ -2011,11 +2011,20 @@ static void
gdm_session_worker_set_session_name (GdmSessionWorker *worker,
const char *session_name)
{
+ char *env;
+
+ env = g_strdup_printf ("DESKTOP_SESSION=%s", session_name);
+ pam_putenv (worker->priv->pam_handle, env);
+ g_free (env);
+ gdm_session_worker_set_environment_variable (worker, "DESKTOP_SESSION", session_name);
+
gdm_session_settings_set_session_name (worker->priv->user_settings,
session_name);
@ -20,18 +16,14 @@ Index: gdm-2.91.6/daemon/gdm-session-worker.c
+gdm_session_worker_set_default_session_name (GdmSessionWorker *worker,
+ const char *session_name)
+{
+ char *env;
+
+ env = g_strdup_printf ("DESKTOP_SESSION=%s", session_name);
+ pam_putenv (worker->priv->pam_handle, env);
+ g_free (env);
+ gdm_session_worker_set_environment_variable (worker, "DESKTOP_SESSION", session_name);
+}
+
+static void
on_set_session_name (GdmSessionWorker *worker,
DBusMessage *message)
{
@@ -2190,6 +2207,28 @@ on_set_session_name (GdmSessionWorker *w
@@ -2068,6 +2077,28 @@ on_set_session_type (GdmSessionWorker *w
}
static void
@ -60,20 +52,20 @@ Index: gdm-2.91.6/daemon/gdm-session-worker.c
gdm_session_worker_set_language_name (GdmSessionWorker *worker,
const char *language_name)
{
@@ -2761,6 +2800,8 @@ worker_dbus_handle_message (DBusConnecti
on_set_language_name (worker, message);
} else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetSessionName")) {
@@ -2774,6 +2805,8 @@ worker_dbus_handle_message (DBusConnecti
on_set_session_name (worker, message);
} else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetSessionType")) {
on_set_session_type (worker, message);
+ } else if (dbus_message_is_signal (message, GDM_SESSION_DBUS_INTERFACE, "SetDefaultSessionName")) {
+ on_set_default_session_name (worker, message);
} else {
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
Index: gdm-2.91.6/daemon/gdm-session-direct.c
Index: gdm-3.1.90/daemon/gdm-session-direct.c
===================================================================
--- gdm-2.91.6.orig/daemon/gdm-session-direct.c
+++ gdm-2.91.6/daemon/gdm-session-direct.c
@@ -120,6 +120,8 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirec
--- gdm-3.1.90.orig/daemon/gdm-session-direct.c
+++ gdm-3.1.90/daemon/gdm-session-direct.c
@@ -131,6 +131,8 @@ G_DEFINE_TYPE_WITH_CODE (GdmSessionDirec
G_IMPLEMENT_INTERFACE (GDM_TYPE_SESSION,
gdm_session_iface_init))
@ -82,26 +74,42 @@ Index: gdm-2.91.6/daemon/gdm-session-direct.c
static gboolean
send_dbus_message (GdmSessionConversation *conversation,
DBusMessage *message)
@@ -707,10 +709,14 @@ get_default_session_name (GdmSessionDire
@@ -770,10 +772,27 @@ get_default_session_name (GdmSessionDire
static void
gdm_session_direct_defaults_changed (GdmSessionDirect *session)
{
+ GdmSessionDirect *impl = GDM_SESSION_DIRECT (session);
+ GHashTableIter iter;
+ gpointer key, value;
+ const char *text;
+
_gdm_session_default_language_name_changed (GDM_SESSION (session),
get_default_language_name (session));
_gdm_session_default_session_name_changed (GDM_SESSION (session),
get_default_session_name (session));
+ send_dbus_string_signal (impl, "SetDefaultSessionName",
+ get_session_name (impl));
+
+ text = get_session_name (impl);
+
+ g_hash_table_iter_init (&iter, impl->priv->conversations);
+ while (g_hash_table_iter_next (&iter, &key, &value)) {
+ GdmSessionConversation *conversation;
+
+ conversation = (GdmSessionConversation *) value;
+
+ send_dbus_string_signal (conversation, "SetDefaultSessionName",
+ text);
+ }
}
static void
@@ -1164,11 +1170,16 @@ gdm_session_direct_handle_saved_session_
@@ -1226,11 +1245,28 @@ gdm_session_direct_handle_saved_session_
if (strcmp (session_name,
get_default_session_name (session)) != 0) {
+ GdmSessionDirect *impl = GDM_SESSION_DIRECT (session);
+ GHashTableIter iter;
+ gpointer key, value;
+ const char *text;
+
g_free (session->priv->saved_session);
session->priv->saved_session = g_strdup (session_name);
@ -109,14 +117,23 @@ Index: gdm-2.91.6/daemon/gdm-session-direct.c
_gdm_session_default_session_name_changed (GDM_SESSION (session),
session_name);
+
+ send_dbus_string_signal (impl, "SetDefaultSessionName",
+ get_session_name (impl));
+ text = get_session_name (impl);
+
+ g_hash_table_iter_init (&iter, impl->priv->conversations);
+ while (g_hash_table_iter_next (&iter, &key, &value)) {
+ GdmSessionConversation *conversation;
+
+ conversation = (GdmSessionConversation *) value;
+
+ send_dbus_string_signal (conversation, "SetDefaultSessionName",
+ text);
+ }
}
out:
return DBUS_HANDLER_RESULT_HANDLED;
@@ -1349,6 +1360,9 @@ do_introspect (DBusConnection *connectio
" <signal name=\"SetSessionName\">\n"
" <arg name=\"session_name\" type=\"s\"/>\n"
@@ -1425,6 +1461,9 @@ do_introspect (DBusConnection *connectio
" <signal name=\"SetSessionType\">\n"
" <arg name=\"session_type\" type=\"s\"/>\n"
" </signal>\n"
+ " <signal name=\"SetDefaultSessionName\">\n"
+ " <arg name=\"session_name\" type=\"s\"/>\n"

View File

@ -1,19 +1,11 @@
Index: gdm-2.91.6/configure.ac
Index: gdm-3.1.90/configure.ac
===================================================================
--- gdm-2.91.6.orig/configure.ac
+++ gdm-2.91.6/configure.ac
@@ -1006,6 +1006,30 @@ fi
--- gdm-3.1.90.orig/configure.ac
+++ gdm-3.1.90/configure.ac
@@ -1045,6 +1045,14 @@ fi
AC_SUBST(GDM_CUSTOM_CONF)
AC_SUBST(GDM_OLD_CONF, '${gdmconfdir}/gdm.conf')
+AC_ARG_WITH(gnome-settings-daemon-directory,
+ [AC_HELP_STRING([--with-gnome-settings-daemon-directory],
+ [Specify the directory of gnome-settings-daemon @<:@default=libexecdir@:>@])],,
+ [with_gnome_settings_daemon_directory="\${libexecdir}"])
+
+GNOME_SETTINGS_DAEMON_DIR=$with_gnome_settings_daemon_directory
+AC_SUBST(GNOME_SETTINGS_DAEMON_DIR)
+
+AC_ARG_WITH(consolekit-directory,
+ [AC_HELP_STRING([--with-consolekit-directory],
+ [Specify the directory of ck-get-x11-display-device @<:@default=libexecdir@:>@])],,
@ -21,32 +13,22 @@ Index: gdm-2.91.6/configure.ac
+
+CONSOLEKIT_DIR=$with_consolekit_directory
+AC_SUBST(CONSOLEKIT_DIR)
+
+AC_ARG_WITH(polkit-gnome-directory,
+ [AC_HELP_STRING([--with-polkit-gnome-directory],
+ [Specify the directory of polkit-gnome-authentication-agent-1 @<:@default=libexecdir@:>@])],,
+ [with_polkit_gnome_directory="\${libexecdir}"])
+
+POLKIT_GNOME_DIR=$with_polkit_gnome_directory
+AC_SUBST(POLKIT_GNOME_DIR)
+
dnl ---------------------------------------------------------------------------
dnl - Check for XEvIE extension support
dnl ---------------------------------------------------------------------------
@@ -1449,6 +1473,9 @@ echo "
@@ -1497,6 +1505,7 @@ echo "
dmconfdir: ${dmconfdir}
localstatedir: ${localstatedir}
datadir: ${datadir}
+ g-s-d location: ${with_gnome_settings_daemon_directory}
+ consolekit location: ${with_consolekit_directory}
+ polkit-gnome location: ${with_polkit_gnome_directory}
source code location: ${srcdir}
compiler: ${CC}
cflags: ${CFLAGS}
Index: gdm-2.91.6/daemon/Makefile.am
Index: gdm-3.1.90/daemon/Makefile.am
===================================================================
--- gdm-2.91.6.orig/daemon/Makefile.am
+++ gdm-2.91.6/daemon/Makefile.am
--- gdm-3.1.90.orig/daemon/Makefile.am
+++ gdm-3.1.90/daemon/Makefile.am
@@ -20,6 +20,7 @@ AM_CPPFLAGS = \
-DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
-DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
@ -55,10 +37,10 @@ Index: gdm-2.91.6/daemon/Makefile.am
$(DISABLE_DEPRECATED_CFLAGS) \
$(DAEMON_CFLAGS) \
$(XLIB_CFLAGS) \
Index: gdm-2.91.6/daemon/gdm-server.c
Index: gdm-3.1.90/daemon/gdm-server.c
===================================================================
--- gdm-2.91.6.orig/daemon/gdm-server.c
+++ gdm-2.91.6/daemon/gdm-server.c
--- gdm-3.1.90.orig/daemon/gdm-server.c
+++ gdm-3.1.90/daemon/gdm-server.c
@@ -134,7 +134,7 @@ _gdm_server_query_ck_for_display_device
g_return_val_if_fail (GDM_IS_SERVER (server), NULL);
@ -68,44 +50,3 @@ Index: gdm-2.91.6/daemon/gdm-server.c
server->priv->display_name);
g_debug ("GdmServer: Running helper %s", command);
Index: gdm-2.91.6/data/greeter-autostart/Makefile.am
===================================================================
--- gdm-2.91.6.orig/data/greeter-autostart/Makefile.am
+++ gdm-2.91.6/data/greeter-autostart/Makefile.am
@@ -5,7 +5,9 @@ edit = sed \
-e 's|@SYSCONFDIR[@]|$(sysconfdir)|g' \
-e 's|@LIBDIR[@]|$(libdir)|g' \
-e 's|@LIBEXECDIR[@]|$(libexecdir)|g' \
- -e 's|@LOCALSTATEDIR[@]|$(localstatedir)|g'
+ -e 's|@LOCALSTATEDIR[@]|$(localstatedir)|g' \
+ -e 's|@GNOME_SETTINGS_DAEMON_DIR[@]|$(GNOME_SETTINGS_DAEMON_DIR)|g' \
+ -e 's|@POLKIT_GNOME_DIR[@]|$(POLKIT_GNOME_DIR)|g'
%.desktop.in: %.desktop.in.in Makefile
$(edit) $< >$@
Index: gdm-2.91.6/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
===================================================================
--- gdm-2.91.6.orig/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
+++ gdm-2.91.6/data/greeter-autostart/gnome-settings-daemon.desktop.in.in
@@ -1,8 +1,8 @@
[Desktop Entry]
Type=Application
_Name=GNOME Settings Daemon
-TryExec=@LIBEXECDIR@/gnome-settings-daemon
-Exec=@LIBEXECDIR@/gnome-settings-daemon
+TryExec=@GNOME_SETTINGS_DAEMON_DIR@/gnome-settings-daemon
+Exec=@GNOME_SETTINGS_DAEMON_DIR@/gnome-settings-daemon
OnlyShowIn=GNOME;
X-GNOME-Autostart-Phase=Initialization
X-GNOME-Autostart-Notify=true
Index: gdm-2.91.6/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
===================================================================
--- gdm-2.91.6.orig/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
+++ gdm-2.91.6/data/greeter-autostart/polkit-gnome-authentication-agent-1.desktop.in.in
@@ -1,5 +1,5 @@
[Desktop Entry]
Type=Application
_Name=PolicyKit Authentication Agent
-Exec=@LIBEXECDIR@/polkit-gnome-authentication-agent-1
+Exec=@POLKIT_GNOME_DIR@/polkit-gnome-authentication-agent-1
OnlyShowIn=GNOME;

6
gdm-welcome.pamd Normal file
View File

@ -0,0 +1,6 @@
#%PAM-1.0
auth required pam_permit.so
account include common-account
password include common-password
session required pam_loginuid.so
session include common-session

View File

@ -26,7 +26,7 @@ Index: daemon/gdm-session-direct.c
}
+ if (session->priv->display_is_local) {
+ if (session_direct->priv->display_is_local) {
+ gdm_session_direct_set_environment_variable (session,
+ "XAUTHLOCALHOSTNAME",
+ "localhost");

View File

@ -1,10 +1,97 @@
-------------------------------------------------------------------
Wed Sep 7 01:32:23 UTC 2011 - vuntz@opensuse.org
- Update to version 3.1.90:
+ Register greeter session with PAM
+ Add framework for gnome-shell based greeter
+ Plug xdmcp chooser leak
+ Fix problem with --disable-split-authentication
+ Switch to --enable-split-authentication by default
+ Misc other fixes and cleanups
+ Updated translations.
- Rebase gdm-helper-directory.patch: we don't need as many specific
libexecdirs as before, as several autostart files got removed.
- Update gdm-desktop-session-env-pam.patch: rebase/port for pam
multistack support, and use some new function that appeared in
the meantime to simplify.
- Rebase gdm-xauthlocalhostname.patch.
- Add explicit dbus-1-glib-devel BuildRequires: it used to be
brought in by something else before.
- Add gobject-introspection-devel BuildRequires: new dependency for
introspection data.
- Remove fdupes BuildRequires and %fdupes call as it's not useful
for this package.
- Add gnome-shell Recommends for the new gnome-session-based
non-fallback greeter session used by gdm. It's only a Recommends
and not a Requires so people can install gdm without pulling all
of GNOME (as gdm will fallback to the old greeter if gnome-shell
is missing).
- Add orca Recommends: this makes it possible to have a screen
reader in the greeter session. This is not mandatory for the
greeter session to work, therefore it's not a Requires.
- Create a libgdmgreeter1 subpackage for the new libgdmgreeter
library.
- Rename libgdmsimplegreeter-devel to gdm-devel, with appropriate
Provides/Obsoletes. This is needed as it also covers the
libgdmgreeter library now.
- Stop passing --with-gnome-settings-daemon-directory and
--with-polkit-gnome-directory to configure as we removed those
options from gdm-helper-directory.patch.
- Add a enable_split_authentication define, to easily enable the
split authentication feature (see bnc#699999):
+ Pass --enable-split-authentication or
--disable-split-authentication to configure, depending on the
value of the macro.
+ Create simple-greeter-extensions subpackage, that contains
non-essential (but useful) extensions for the greeter
(fingerprint and smartcard support) when
%enable_split_authentication is set.
+ Stop manually creating %{_libdir}/gdm/simple-greeter/extensions
in %install if %enable_split_authentication is set since it'll
be there already.
- Fix a typo: %{_localstatedir} instead of {_localstatedir}.
- Make sure to not package simple-greeter extensions data files
twice, thanks to an %exclude in the main subpackage.
- Add gdm-welcome.pamd as source file: this is the pam
configuration file that is being used to register the gdm greeter
session. It is actually using the same configuration as
gdm-autologin.pamd.
-------------------------------------------------------------------
Wed Sep 7 01:15:11 UTC 2011 - vuntz@opensuse.org
- Slightly improve gdmflexiserver-wrapper: report an error if no
gdmflexiserver implementation is found.
- Add a gdm Suggests to the gdmflexiserver subpackage, to give a
hint about the default implementation, if people only install the
gdmflexiserver package.
- Reformat X11-displaymanager-gdm shell code.
-------------------------------------------------------------------
Mon Sep 5 21:35:19 UTC 2011 - eich@suse.com
- Add /etc/init.d/xdm integration (bnc#714003):
+ Add X11-displaymanager-gdm as source file, that gets installed
to %{_libdir}/X11/displaymanagers/gdm.
+ This enables /etc/init.d/xdm to not know anything about gdm:
the new file is sourced by the init script, and provides
information about how gdm should be started.
-------------------------------------------------------------------
Wed Aug 31 15:15:06 UTC 2011 - gber@opensuse.org
- moved gdmflxiserver to libexecdir and created a wrapper script in
/usr/bin which is delivered in a subpackage and allows for
alternative gdmflexiserver implementations of other display
managers
- Add a wrapper script for gdmflexiserver to enable alternative
gdmflexiserver implementations from other display managers (like
LightDM):
+ Add gdmflexiserver-wrapper as source file: the wrapper simply
checks for the GDMFLEXISERVER environment variable, and falls
back to gdm's implementation.
+ Move gdm's implementation to %{_libexecdir}/gdm/gdmflexiserver.
+ Install the wrapper as %{_bindir}/gdmflexiserver.
+ Create a gdmflexiserver subpackage, that contains the wrapper,
so that other display managers can depend on it without pulling
all of gdm.
+ Add gdmflexiserver Requires to gdm.
-------------------------------------------------------------------
Mon Jul 25 23:04:14 CEST 2011 - vuntz@opensuse.org

177
gdm.spec
View File

@ -15,25 +15,29 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
# FIXME: need to check what should be done to enable this (at least adapt the pam files). See bnc#699999
%define enable_split_authentication 0
Name: gdm
License: GPLv2+
Group: System/GUI/GNOME
Version: 3.1.2
Release: 4
Version: 3.1.90
Release: 1
Summary: The GNOME Display Manager
Url: http://projects.gnome.org/gdm/
Source: %{name}-%{version}.tar.bz2
Source: http://download.gnome.org/sources/gdm/3.1/%{name}-%{version}.tar.bz2
Source1: gdm.pamd
Source2: gdm-autologin.pamd
Source3: gdmflexiserver.sh
Source3: gdm-welcome.pamd
# gdmflexiserver wrapper, to enable other display managers to abuse the gdmflexiserver namespace (like lightdm)
Source4: gdmflexiserver-wrapper
# /etc/xinit.d/xdm integration script
Source5: X11-displaymanager-gdm
# PATCH-FEATURE-UPSTREAM gdm-plymouth.patch vuntz@opensuse.org -- Get a nice transition from plymouth; taken from Fedora
Patch0: gdm-plymouth.patch
# PATCH-FIX-UPSTREAM gdm-plymouth-X-nr.patch vuntz@opensuse.org -- Patch on top of the previous patch (we keep it separate so it's easy to sync with Fedora) to use -nr when starting X
Patch1: gdm-plymouth-X-nr.patch
# 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-consolekit-directory
Patch2: gdm-helper-directory.patch
# PATCH-FIX-OPENSUSE gdm-is-not-unstable-unless.patch vuntz@opensuse.org -- Make gdm think it's never running a development version unless SUSE_ENABLE_UNSTABLE_CHECK is set. This disables fatal warnings as well as abusive log
Patch3: gdm-is-not-unstable-unless.patch
@ -65,14 +69,15 @@ Patch40: gdm-look-at-runlevel.patch
# PATCH-FIX-OPENSUSE gdm-selinux.patch -- Small changes to make it compile fine with SELinux
Patch60: gdm-selinux.patch
BuildRequires: check-devel
BuildRequires: dbus-1-glib-devel
# needed for directory ownership
BuildRequires: dconf
BuildRequires: fdupes
BuildRequires: gconf2-devel
BuildRequires: gnome-doc-utils-devel
BuildRequires: gnome-patch-translation
# needed for directory ownership
BuildRequires: gnome-session-core
BuildRequires: gobject-introspection-devel >= 0.9.12
BuildRequires: intltool
BuildRequires: iso-codes-devel
BuildRequires: libattr-devel
@ -91,14 +96,23 @@ BuildRequires: pkgconfig(accountsservice)
BuildRequires: pkgconfig(nss)
Requires: %{name}-branding = %{version}
Requires: ConsoleKit-x11
Requires: gdmflexiserver
Requires: gnome-session-core
Requires: klogd
Requires: xorg-x11-server-extra
Requires: gdmflexiserver
# Packages for the gdm session (see /usr/share/gnome-session/sessions/gdm.session)
Requires: gnome-settings-daemon
### Packages for the gdm session (see /usr/share/gnome-session/sessions/{gdm,gdm-fallback}.session and /usr/share/gdm/greeter/applications)
## Fallback
Requires: metacity
Requires: polkit-gnome
## Non-fallback
# Use Recommends, since we do not want to force people to install gnome-shell, and if it's not there, the fallback session will be used
Recommends: gnome-shell
## All sessions
Requires: gnome-settings-daemon
# Those accessibility features rely on deprecated modules that we don't ship :/ See bgo#658429.
#Recommends: gnome-mag
#Recommends: gok
Recommends: orca
# For groupadd, useradd, usermod
PreReq: pwdutils
PreReq: %insserv_prereq
@ -116,9 +130,19 @@ DocDir: %{_defaultdocdir}
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.
%package -n libgdmgreeter1
License: GPLv2+
Summary: Client Library for Communicating with GDM Greeter Server
Group: System/Libraries
Recommends: gdm
%description -n libgdmgreeter1
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.
%package -n libgdmsimplegreeter1
License: GPLv2+
Summary: Library for GDM Simple Greeter Plugins
Summary: Library for GDM Simple Greeter Extensions
Group: System/Libraries
Recommends: gdm
@ -126,13 +150,29 @@ Recommends: gdm
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.
%package -n libgdmsimplegreeter-devel
%if %{enable_split_authentication}
%package simple-greeter-extensions
License: GPLv2+
Summary: Library for GDM Simple Greeter Plugins -- Development Files
Group: Development/Libraries/GNOME
Requires: libgdmsimplegreeter1 = %{version}
Summary: GDM Simple Greeter Extensions -- Fingerprint and Smartcard Support
Group: System/Libraries
Supplements: gdm
%glib2_gsettings_schema_requires
%description -n libgdmsimplegreeter-devel
%description simple-greeter-extensions
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.
%endif
%package devel
License: GPLv2+
Summary: Libraries for GDM -- Development Files
Group: Development/Libraries/GNOME
Requires: libgdmgreeter1 = %{version}
Requires: libgdmsimplegreeter1 = %{version}
Provides: libgdmsimplegreeter-devel = %{version}
Obsoletes: libgdmsimplegreeter-devel < %{version}
%description devel
The GNOME Display Manager is a system service that is responsible for
providing graphical log-ins and managing local and remote displays.
@ -157,15 +197,16 @@ This package provides the upstream default configuration for gdm.
%package -n gdmflexiserver
License: GPLv2+
Summary: gdmflexiserver Compatibility Wrapper
Summary: Gdmflexiserver Compatibility Wrapper for Display Managers
Group: System/GUI/GNOME
Suggests: gdm
BuildArch: noarch
%description -n gdmflexiserver
This package provides a gdmflexiserver compatiblity wrapper which selects and
executes the correct gdmflexiserver executable based on the running display
manager.
The gdmflexiserver tool interacts with the display manager to
enable fast user switching. This package contains a wrapper that
selects the correct gdmflexiserver implementatoin, based on the
running display manager.
%lang_package
%prep
@ -182,9 +223,9 @@ translation-update-upstream
%patch7 -p1
%patch8 -p1
%patch9 -p1
#%patch10 -p1
#%%patch10 -p1
# needs rebase (bnc#689552)
##%patch15 -p1
#%%patch15 -p1
%patch18 -p1
%patch31 -p1
%patch34 -p1
@ -201,11 +242,14 @@ autoreconf -f -i
--libexecdir=%{_prefix}/lib/gdm \
--localstatedir=%{_localstatedir} \
--with-at-spi-registryd-directory=%{_libexecdir}/at-spi \
--with-gnome-settings-daemon-directory=%{_libexecdir}/gnome-settings-daemon-3.0 \
--with-consolekit-directory=%{_libexecdir}/ConsoleKit \
--with-polkit-gnome-directory=%{_libexecdir}/polkit-gnome \
--with-selinux \
--enable-ipv6 \
%if %{enable_split_authentication}
--enable-split-authentication \
%else
--disable-split-authentication \
%endif
--disable-scrollkeeper
%__make %{?jobs:-j%jobs} V=1
@ -216,26 +260,31 @@ autoreconf -f -i
%endif
find %{buildroot}%{_libdir} -name '*.la' -type f -delete -print
%find_gconf_schemas
%if ! %{enable_split_authentication}
# Create extensions directory if it's not there yet, so we can package it
test ! -d %{buildroot}%{_libdir}/gdm/simple-greeter/extensions
mkdir -p %{buildroot}%{_libdir}/gdm/simple-greeter/extensions
%endif
# Remove wrapper, it is not needed.
mv $RPM_BUILD_ROOT%{_sbindir}/gdm-binary $RPM_BUILD_ROOT%{_sbindir}/gdm
# Install PAM files.
mkdir -p $RPM_BUILD_ROOT/etc/pam.d
cp %{S:1} $RPM_BUILD_ROOT/etc/pam.d/gdm
cp %{S:2} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin
cp %{SOURCE1} $RPM_BUILD_ROOT/etc/pam.d/gdm
cp %{SOURCE2} $RPM_BUILD_ROOT/etc/pam.d/gdm-autologin
cp %{SOURCE3} $RPM_BUILD_ROOT/etc/pam.d/gdm-welcome
# Install PostLogin script.
mv $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default.sample $RPM_BUILD_ROOT%{_sysconfdir}/gdm/PostLogin/Default
# Move gdmflexiserver to libexecdir and replace it with the compatibility wrapper.
# Move gdmflexiserver to libexecdir and replace it with the compatibility wrapper
mv $RPM_BUILD_ROOT%{_bindir}/gdmflexiserver $RPM_BUILD_ROOT%{_libexecdir}/gdm/gdmflexiserver
install -m 755 %{S:3} $RPM_BUILD_ROOT%{_bindir}/gdmflexiserver
mkdir -p $RPM_BUILD_ROOT{_localstatedir}/log/gdm
mkdir -p $RPM_BUILD_ROOT{_localstatedir}/run/gdm
%find_lang %{name} %{?no_lang_C}
install -m 755 %{SOURCE4} $RPM_BUILD_ROOT%{_bindir}/gdmflexiserver
# Install /etc/xinit.d/xdm integration script
install -D -m 644 %{SOURCE5} %{buildroot}%{_libdir}/X11/displaymanagers/gdm
# Install other files
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/log/gdm
mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/run/gdm
mkdir -p $RPM_BUILD_ROOT%{_bindir}
ln -s ../sbin/gdm $RPM_BUILD_ROOT%{_bindir}/gdm
%fdupes $RPM_BUILD_ROOT
%find_lang %{name} %{?no_lang_C}
%clean
rm -rf $RPM_BUILD_ROOT
@ -279,10 +328,22 @@ fi
%insserv_cleanup
%icon_theme_cache_postun
%post -n libgdmgreeter1 -p /sbin/ldconfig
%postun -n libgdmgreeter1 -p /sbin/ldconfig
%post -n libgdmsimplegreeter1 -p /sbin/ldconfig
%postun -n libgdmsimplegreeter1 -p /sbin/ldconfig
%if %{enable_split_authentication}
%post simple-greeter-extensions
%glib2_gsettings_schema_post
%postun simple-greeter-extensions
%glib2_gsettings_schema_postun
%endif
%files -f %{name}.schemas_list
%defattr(-,root,root)
%doc AUTHORS COPYING ChangeLog NEWS README
@ -299,7 +360,8 @@ fi
%{_bindir}/gdm
%{_bindir}/gdm-screenshot
%{_datadir}/gdm/
%{_datadir}/gnome-session/sessions/gdm.session
%{_datadir}/gnome-session/sessions/gdm-fallback.session
%{_datadir}/gnome-session/sessions/gdm-shell.session
%{_datadir}/icons/*/*/*/*.*
%{_datadir}/pixmaps/*.png
%dir %{_libexecdir}/gdm
@ -311,16 +373,23 @@ fi
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm/.gconf.mandatory
%attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.mandatory/%gconf-tree.xml
%attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.gconf.path
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm/.local
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm/.local/share
%attr(750,gdm,gdm) %dir %{_localstatedir}/lib/gdm/.local/share/applications
%attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.local/share/applications/mime-dummy-handler.desktop
%attr(640,gdm,gdm) %{_localstatedir}/lib/gdm/.local/share/applications/mimeapps.list
%dir %{_localstatedir}/cache/gdm
%config /etc/pam.d/*
%config /etc/pam.d/gdm
%config /etc/pam.d/gdm-autologin
%config /etc/pam.d/gdm-welcome
%config %{_sysconfdir}/dbus-1/system.d/gdm.conf
%{_sysconfdir}/dconf/db/gdm
%{_sysconfdir}/dconf/profile/gdm
# /etc/xinit.d/xdm integration
%dir %{_libdir}/X11/displaymanagers
%{_libdir}/X11/displaymanagers/gdm
# Exclude simple-greeter extensions
%exclude %{_datadir}/gdm/simple-greeter/extensions
%files -n libgdmgreeter1
%defattr(-,root,root)
%{_libdir}/libgdmgreeter.so.*
%{_libdir}/girepository-1.0/GdmGreeter-1.0.typelib
%files -n libgdmsimplegreeter1
%defattr(-,root,root)
@ -332,12 +401,36 @@ fi
%dir %{_libdir}/gdm
%dir %{_libdir}/gdm/simple-greeter
%dir %{_libdir}/gdm/simple-greeter/extensions
%if %{enable_split_authentication}
%config /etc/pam.d/gdm-password
%{_datadir}/gdm/simple-greeter/extensions/password/
%{_libdir}/gdm/simple-greeter/extensions/libpassword.so
%{_datadir}/gdm/simple-greeter/extensions/unified/
%endif
%files -n libgdmsimplegreeter-devel
%if %{enable_split_authentication}
%files simple-greeter-extensions
%defattr(-,root,root)
# fingerprint
%config /etc/pam.d/gdm-fingerprint
%{_datadir}/gdm/simple-greeter/extensions/fingerprint/
%{_libdir}/gdm/simple-greeter/extensions/libfingerprint.so
%{_datadir}/glib-2.0/schemas/org.gnome.display-manager.extensions.fingerprint.gschema.xml
# smartcard
%config /etc/pam.d/gdm-smartcart
%{_datadir}/gdm/simple-greeter/extensions/smartcard/
%{_libdir}/gdm/simple-greeter/extensions/libsmartcard.so
%{_datadir}/glib-2.0/schemas/org.gnome.display-manager.extensions.smartcard.gschema.xml
%endif
%files devel
%defattr(-,root,root)
%{_includedir}/gdm/
%{_libdir}/libgdmgreeter.so
%{_libdir}/libgdmsimplegreeter.so
%{_libdir}/pkgconfig/gdmgreeter.pc
%{_libdir}/pkgconfig/gdmsimplegreeter.pc
%{_datadir}/gir-1.0/GdmGreeter-1.0.gir
%files branding-upstream
%defattr(-,root,root)

8
gdmflexiserver-wrapper Normal file
View File

@ -0,0 +1,8 @@
#!/bin/sh
if test ! -x "${GDMFLEXISERVER:-/usr/lib/gdm/gdmflexiserver}"; then
echo "No gdmflexiserver implementation found. Maybe install gdm?" >&2
exit 1
else
exec "${GDMFLEXISERVER:-/usr/lib/gdm/gdmflexiserver}"
fi

View File

@ -1,3 +0,0 @@
#!/bin/sh
exec "${GDMFLEXISERVER:-/usr/lib/gdm/gdmflexiserver}"