Accepting request 113498 from home:vuntz:branches:X11:XOrg
Split xdm out of xorg-x11; no change to the content OBS-URL: https://build.opensuse.org/request/show/113498 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xdm?expand=0&rev=1
This commit is contained in:
commit
4cfe93afca
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
36
HOWTO.xdm
Normal file
36
HOWTO.xdm
Normal file
@ -0,0 +1,36 @@
|
||||
Display Manager Scriptlets HOWTO
|
||||
================================
|
||||
|
||||
To keep display manager specific code out of the generic
|
||||
start script (/etc/init.d/xdm) as much as possible display
|
||||
managers should provide a script file that provides anything
|
||||
specific to this dm.
|
||||
|
||||
At minimum the script file needs to provide:
|
||||
here <DM> denotes the name of the file. This should
|
||||
be the same as the pid file generated by the display
|
||||
manager - without the .pid extent.
|
||||
|
||||
# this function matches the command line argument. If it
|
||||
finds a match it initializes any dm specific variables
|
||||
and returns 0 (success) otherwise it returns 1 (fail).
|
||||
At minimum it needs to set the full path the the display
|
||||
manager binary.
|
||||
It may set STARTPROC to a function that gets run prior to
|
||||
starting a dm, RELOADPROC to a function that's run to reload
|
||||
the DM configuration, PROBEPROC to a function that's run
|
||||
when the DM status is probed.
|
||||
Any those functions should return 0 on success or any other
|
||||
value on failure.
|
||||
Additionally it may initialize any other variables needed
|
||||
by the DM.
|
||||
|
||||
<DM>_vars() {
|
||||
case $1 in
|
||||
<thisdm>)
|
||||
DISPLAYMANAGER=/usr/bin/<thisdm>
|
||||
STARTPROC=<DM>_start # optional
|
||||
RELOADPROC=<DM>_reload # optional
|
||||
PROBEPROC=<DM>_probe # optional
|
||||
....
|
||||
}
|
32
U_xdm_Fix-missing-linking-dependency-on-ldl.patch
Normal file
32
U_xdm_Fix-missing-linking-dependency-on-ldl.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From c4031966dcbc47b2cc85b83ad78efcc64455cf72 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Fernando=20Tarl=C3=A1=20Cardoso=20Lemos?= <fernandotcl@gmail.com>
|
||||
Date: Sat, 19 Feb 2011 17:53:08 -0200
|
||||
Subject: [PATCH] Fix missing linking dependency on -ldl.
|
||||
|
||||
Recent versions of GCC ship with a linker that doesn't add the deps
|
||||
of the DSOs to the linking process. This behavior is also found in
|
||||
GNU gold. This change fixes building with those linkers.
|
||||
|
||||
Some references:
|
||||
|
||||
http://wiki.debian.org/ToolChain/DSOLinking
|
||||
https://fedoraproject.org/wiki/UnderstandingDSOLinkChange
|
||||
|
||||
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
|
||||
Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
|
||||
---
|
||||
configure.ac | 3 +++
|
||||
1 files changed, 3 insertions(+), 0 deletions(-)
|
||||
|
||||
--- xdm-1.1.10/configure.ac.orig 2011-08-25 13:56:01.551431000 +0200
|
||||
+++ xdm-1.1.10/configure.ac 2011-08-25 13:57:09.137351000 +0200
|
||||
@@ -462,6 +462,9 @@ AM_CONDITIONAL(HAS_XDM_AUTH, test x$xdma
|
||||
|
||||
AC_SEARCH_LIBS(crypt, crypt)
|
||||
|
||||
+# Function dl() comes from the C library or -ldl
|
||||
+AC_SEARCH_LIBS([dlopen], [dl])
|
||||
+
|
||||
AC_SUBST(XDM_CFLAGS)
|
||||
AC_SUBST(XDM_LIBS)
|
||||
|
@ -0,0 +1,33 @@
|
||||
From 50c96170ad42321310c346cf412f9ae7e80ec2a7 Mon Sep 17 00:00:00 2001
|
||||
From: Gaetan Nadon <memsize@videotron.ca>
|
||||
Date: Sun, 29 Aug 2010 19:56:59 -0400
|
||||
Subject: [PATCH] config: AC_LIBTOOL_DLOPEN is required for dynamic linking
|
||||
|
||||
It adds the following tests in the configuration :
|
||||
checking for shl_load... no
|
||||
checking for shl_load in -ldld... no
|
||||
checking for dlopen... no
|
||||
checking for dlopen in -ldl... yes
|
||||
checking whether a program can dlopen itself... yes
|
||||
checking whether a statically linked program can dlopen itself... no
|
||||
|
||||
This has not resulted in any compiler/linker flags change on
|
||||
a GNU/Linux platform.
|
||||
|
||||
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
||||
---
|
||||
configure.ac | 3 ++-
|
||||
1 files changed, 2 insertions(+), 1 deletions(-)
|
||||
|
||||
--- xdm-1.1.10/configure.ac.orig 2011-08-25 12:46:19.795331000 +0200
|
||||
+++ xdm-1.1.10/configure.ac 2011-08-25 12:46:52.562458000 +0200
|
||||
@@ -40,7 +40,8 @@ AC_PROG_CC
|
||||
AM_PROG_CC_C_O
|
||||
AC_C_INLINE
|
||||
AC_LIBTOOL_WIN32_DLL
|
||||
-AM_PROG_LIBTOOL
|
||||
+AC_LIBTOOL_DLOPEN
|
||||
+AC_PROG_LIBTOOL
|
||||
AC_PROG_INSTALL
|
||||
|
||||
XORG_PROG_RAWCPP
|
@ -0,0 +1,61 @@
|
||||
From 8b7999f8e0f797a593ac2f4697ba3be983b421ae Mon Sep 17 00:00:00 2001
|
||||
From: Gaetan Nadon <memsize@videotron.ca>
|
||||
Date: Mon, 30 Aug 2010 07:39:56 -0400
|
||||
Subject: [PATCH] config: use libtool -export-dynamic option for reverse dependencies
|
||||
|
||||
This replaces -rdynamic which is a GNU/Linux only solution.
|
||||
|
||||
"If symbols from your executable are needed to satisfy unresolved
|
||||
references in a library you want to dlopen you will have to use
|
||||
the flag -export-dynamic. You should use -export-dynamic while
|
||||
linking the executable that calls dlopen."
|
||||
|
||||
It is used by the xserver, in Xdmx for example.
|
||||
|
||||
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
|
||||
---
|
||||
Makefile.am | 5 ++++-
|
||||
configure.ac | 9 ---------
|
||||
2 files changed, 4 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/Makefile.am b/Makefile.am
|
||||
index fa1b0c4..15abb8c 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -45,7 +45,10 @@ AM_CFLAGS = $(CWARNFLAGS)
|
||||
#
|
||||
|
||||
xdm_CFLAGS = $(XDM_CFLAGS)
|
||||
-xdm_LDADD = $(XDM_LIBS) $(XDM_LDFLAGS)
|
||||
+# The xdm binary needs to export symbols so that they can be used from
|
||||
+# libXdmGreet.so loaded through a dlopen call from session.c
|
||||
+xdm_LDFLAGS = -export-dynamic
|
||||
+xdm_LDADD = $(XDM_LIBS)
|
||||
|
||||
xdm_SOURCES = \
|
||||
auth.c \
|
||||
--- xdm-1.1.10/configure.ac.orig 2011-08-25 12:23:38.000000000 +0200
|
||||
+++ xdm-1.1.10/configure.ac 2011-08-25 13:51:34.000000000 +0200
|
||||
@@ -408,14 +408,6 @@ if test "x$DYNAMIC_GREETER" = "xyes" ; t
|
||||
|
||||
GREETER_CFLAGS="$GREETER_CFLAGS -DGREET_LIB"
|
||||
|
||||
- # The xdm binary needs to export symbols so that they can be used from
|
||||
- # libXdmGreet.so. Some platforms require extra flags to do this.
|
||||
- # gcc should set these flags when -rdynamic is passed to it, other
|
||||
- # compilers/linkers may need to be added
|
||||
- if test "x$GCC" = "xyes"; then
|
||||
- XDM_LDFLAGS="$XDM_LDFLAGS -rdynamic"
|
||||
- fi
|
||||
-
|
||||
PKG_CHECK_MODULES(XDMGREET, xt x11 xext)
|
||||
|
||||
GREETERLIB="${XDMLIBDIR}/libXdmGreet.so"
|
||||
@@ -471,7 +463,6 @@ AC_SEARCH_LIBS(crypt, crypt)
|
||||
|
||||
AC_SUBST(XDM_CFLAGS)
|
||||
AC_SUBST(XDM_LIBS)
|
||||
-AC_SUBST(XDM_LDFLAGS)
|
||||
|
||||
#
|
||||
# xdmshell
|
3
xdm-1.1.10.tar.bz2
Normal file
3
xdm-1.1.10.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1487f7168e65fb7ea8cf21e99cdec412e643680c5dac9688aad5f87beba4f97f
|
||||
size 423578
|
243
xdm-consolekit.diff
Normal file
243
xdm-consolekit.diff
Normal file
@ -0,0 +1,243 @@
|
||||
---
|
||||
configure.ac | 14 ++++++++
|
||||
dm.h | 3 +
|
||||
resource.c | 13 +++++++
|
||||
session.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
xdm.man.cpp | 6 +++
|
||||
5 files changed, 135 insertions(+), 1 deletion(-)
|
||||
|
||||
Index: xdm-1.1.10/configure.ac
|
||||
===================================================================
|
||||
--- xdm-1.1.10.orig/configure.ac
|
||||
+++ xdm-1.1.10/configure.ac
|
||||
@@ -434,6 +434,20 @@ fi
|
||||
|
||||
AM_CONDITIONAL(DYNAMIC_GREETER, test x$DYNAMIC_GREETER = xyes)
|
||||
|
||||
+# ConsoleKit support
|
||||
+AC_ARG_WITH(consolekit, AC_HELP_STRING([--with-consolekit], [Use ConsoleKit]),
|
||||
+ [USE_CONSOLEKIT=$withval], [USE_CONSOLEKIT=yes])
|
||||
+if test x"$USE_CONSOLEKIT" != xno; then
|
||||
+ PKG_CHECK_MODULES(CK_CONNECTOR, ck-connector,
|
||||
+ [USE_CONSOLEKIT=yes], [USE_CONSOLEKIT=no])
|
||||
+ if test x"$USE_CONSOLEKIT" = xyes; then
|
||||
+ AC_DEFINE([USE_CONSOLEKIT], 1, [Define to 1 to use ConsoleKit])
|
||||
+ XDM_CFLAGS="$XDM_CFLAGS $CK_CONNECTOR_CFLAGS"
|
||||
+ XDM_LIBS="$XDM_LIBS $CK_CONNECTOR_LIBS"
|
||||
+ fi
|
||||
+fi
|
||||
+dnl AM_CONDITIONAL(USE_CONSOLEKIT, test$USE_CONSOLEKIT = xyes)
|
||||
+
|
||||
#
|
||||
# XDM
|
||||
#
|
||||
Index: xdm-1.1.10/session.c
|
||||
===================================================================
|
||||
--- xdm-1.1.10.orig/session.c
|
||||
+++ xdm-1.1.10/session.c
|
||||
@@ -67,6 +67,11 @@ extern int key_setnet(struct key_netstar
|
||||
# endif
|
||||
#endif /* USE_PAM */
|
||||
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+#include <ck-connector.h>
|
||||
+#include <dbus/dbus.h>
|
||||
+#endif
|
||||
+
|
||||
#ifdef __SCO__
|
||||
# include <prot.h>
|
||||
#endif
|
||||
@@ -514,6 +519,97 @@ UnsecureDisplay (struct display *d, Disp
|
||||
}
|
||||
}
|
||||
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+
|
||||
+static CkConnector *connector;
|
||||
+
|
||||
+static int openCKSession(struct verify_info *verify, struct display *d)
|
||||
+{
|
||||
+ int ret;
|
||||
+ DBusError error;
|
||||
+ char *remote_host_name = "";
|
||||
+ dbus_bool_t is_local;
|
||||
+ char *display_name = "";
|
||||
+ char *display_device = "";
|
||||
+ char devtmp[16];
|
||||
+
|
||||
+ if (!use_consolekit)
|
||||
+ return 1;
|
||||
+
|
||||
+ is_local = d->displayType.location == Local;
|
||||
+ if (d->peerlen > 0 && d->peer)
|
||||
+ remote_host_name = d->peer;
|
||||
+ if (d->name)
|
||||
+ display_name = d->name;
|
||||
+ /* how can we get the corresponding tty at best...? */
|
||||
+ if (d->windowPath) {
|
||||
+ display_device = strchr(d->windowPath, ':');
|
||||
+ if (display_device && display_device[1])
|
||||
+ display_device++;
|
||||
+ else
|
||||
+ display_device = d->windowPath;
|
||||
+ snprintf(devtmp, sizeof(devtmp), "/dev/tty%s", display_device);
|
||||
+ display_device = devtmp;
|
||||
+ }
|
||||
+
|
||||
+ connector = ck_connector_new();
|
||||
+ if (!connector) {
|
||||
+ LogOutOfMem("ck_connector");
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ dbus_error_init(&error);
|
||||
+ ret = ck_connector_open_session_with_parameters(
|
||||
+ connector, &error,
|
||||
+ "unix-user", &verify->uid,
|
||||
+ "x11-display", &display_name,
|
||||
+ "x11-display-device", &display_device,
|
||||
+ "remote-host-name", &remote_host_name,
|
||||
+ "is-local", &is_local,
|
||||
+ NULL);
|
||||
+ if (!ret) {
|
||||
+ if (dbus_error_is_set(&error)) {
|
||||
+ LogError("Dbus error: %s\n", error.message);
|
||||
+ dbus_error_free(&error);
|
||||
+ } else {
|
||||
+ LogError("ConsoleKit error\n");
|
||||
+ }
|
||||
+ LogError("console-kit-daemon not running?\n");
|
||||
+ ck_connector_unref(connector);
|
||||
+ connector = NULL;
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ verify->userEnviron = setEnv(verify->userEnviron,
|
||||
+ "XDG_SESSION_COOKIE", ck_connector_get_cookie(connector));
|
||||
+ return 1;
|
||||
+}
|
||||
+
|
||||
+static void closeCKSession(void)
|
||||
+{
|
||||
+ DBusError error;
|
||||
+
|
||||
+ if (!connector)
|
||||
+ return;
|
||||
+
|
||||
+ dbus_error_init(&error);
|
||||
+ if (!ck_connector_close_session(connector, &error)) {
|
||||
+ if (dbus_error_is_set(&error)) {
|
||||
+ LogError("Dbus error: %s\n", error.message);
|
||||
+ dbus_error_free(&error);
|
||||
+ } else {
|
||||
+ LogError("ConsoleKit close error\n");
|
||||
+ }
|
||||
+ LogError("console-kit-daemon not running?\n");
|
||||
+ }
|
||||
+ ck_connector_unref(connector);
|
||||
+ connector = NULL;
|
||||
+}
|
||||
+#else
|
||||
+#define openCKSession(v,d) 1
|
||||
+#define closeCKSession()
|
||||
+#endif
|
||||
+
|
||||
void
|
||||
SessionExit (struct display *d, int status, int removeAuth)
|
||||
{
|
||||
@@ -528,6 +624,8 @@ SessionExit (struct display *d, int stat
|
||||
}
|
||||
#endif
|
||||
|
||||
+ closeCKSession();
|
||||
+
|
||||
/* make sure the server gets reset after the session is over */
|
||||
if (d->serverPid >= 2 && d->resetSignal)
|
||||
kill (d->serverPid, d->resetSignal);
|
||||
@@ -610,6 +708,10 @@ StartClient (
|
||||
#ifdef USE_PAM
|
||||
if (pamh) pam_open_session(pamh, 0);
|
||||
#endif
|
||||
+
|
||||
+ if (!openCKSession(verify, d))
|
||||
+ return 0;
|
||||
+
|
||||
switch (pid = fork ()) {
|
||||
case 0:
|
||||
CleanUpChild ();
|
||||
Index: xdm-1.1.10/dm.h
|
||||
===================================================================
|
||||
--- xdm-1.1.10.orig/dm.h
|
||||
+++ xdm-1.1.10/dm.h
|
||||
@@ -323,6 +323,9 @@ extern char *randomFile;
|
||||
extern char *prngdSocket;
|
||||
extern int prngdPort;
|
||||
# endif
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+extern int use_consolekit;
|
||||
+#endif
|
||||
|
||||
extern char *greeterLib;
|
||||
extern char *willing;
|
||||
Index: xdm-1.1.10/resource.c
|
||||
===================================================================
|
||||
--- xdm-1.1.10.orig/resource.c
|
||||
+++ xdm-1.1.10/resource.c
|
||||
@@ -65,6 +65,9 @@ char *randomDevice;
|
||||
char *prngdSocket;
|
||||
int prngdPort;
|
||||
#endif
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+int use_consolekit;
|
||||
+#endif
|
||||
|
||||
char *greeterLib;
|
||||
char *willing;
|
||||
@@ -196,6 +199,10 @@ struct dmResources {
|
||||
"false"} ,
|
||||
{ "willing", "Willing", DM_STRING, &willing,
|
||||
""} ,
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+{ "consoleKit", "ConsoleKit", DM_BOOL, (char **) &use_consolekit,
|
||||
+ "true"} ,
|
||||
+#endif
|
||||
};
|
||||
|
||||
#define NUM_DM_RESOURCES (sizeof DmResources / sizeof DmResources[0])
|
||||
@@ -378,7 +385,11 @@ XrmOptionDescRec optionTable [] = {
|
||||
{"-debug", "*debugLevel", XrmoptionSepArg, (caddr_t) NULL },
|
||||
{"-xrm", NULL, XrmoptionResArg, (caddr_t) NULL },
|
||||
{"-daemon", ".daemonMode", XrmoptionNoArg, "true" },
|
||||
-{"-nodaemon", ".daemonMode", XrmoptionNoArg, "false" }
|
||||
+{"-nodaemon", ".daemonMode", XrmoptionNoArg, "false" },
|
||||
+#ifdef USE_CONSOLEKIT
|
||||
+{"-consolekit", ".consoleKit", XrmoptionNoArg, "true" },
|
||||
+{"-noconsolekit", ".consoleKit", XrmoptionNoArg, "false" }
|
||||
+#endif
|
||||
};
|
||||
|
||||
static int originalArgc;
|
||||
Index: xdm-1.1.10/xdm.man.cpp
|
||||
===================================================================
|
||||
--- xdm-1.1.10.orig/xdm.man.cpp
|
||||
+++ xdm-1.1.10/xdm.man.cpp
|
||||
@@ -48,6 +48,8 @@ xdm \- X Display Manager with support fo
|
||||
] [
|
||||
.B \-session
|
||||
.I session_program
|
||||
+] [
|
||||
+.B \-noconsolekit
|
||||
]
|
||||
.SH DESCRIPTION
|
||||
.I Xdm
|
||||
@@ -215,6 +217,10 @@ indicates the program to run as the sess
|
||||
.IP "\fB\-xrm\fP \fIresource_specification\fP"
|
||||
Allows an arbitrary resource to be specified, as in most
|
||||
X Toolkit applications.
|
||||
+.IP "\fB\-noconsolekit\fP"
|
||||
+Specifies ``false'' as the value for the \fBDisplayManager.consoleKit\fP
|
||||
+resource.
|
||||
+This suppresses the session management using ConsoleKit.
|
||||
.SH RESOURCES
|
||||
At many stages the actions of
|
||||
.I xdm
|
117
xdm-tolerant-hostname-changes.diff
Normal file
117
xdm-tolerant-hostname-changes.diff
Normal file
@ -0,0 +1,117 @@
|
||||
Index: xdm-1.1.10/auth.c
|
||||
===================================================================
|
||||
--- xdm-1.1.10.orig/auth.c
|
||||
+++ xdm-1.1.10/auth.c
|
||||
@@ -769,7 +769,7 @@ writeAddr (
|
||||
}
|
||||
|
||||
static void
|
||||
-DefineLocal (FILE *file, Xauth *auth)
|
||||
+DefineLocal (FILE *file, Xauth *auth, char **pLocalAddress)
|
||||
{
|
||||
char displayname[100];
|
||||
int len = _XGetHostname (displayname, sizeof(displayname));
|
||||
@@ -805,6 +805,9 @@ DefineLocal (FILE *file, Xauth *auth)
|
||||
#endif
|
||||
|
||||
writeAddr (FamilyLocal, len, displayname, file, auth);
|
||||
+
|
||||
+ if (pLocalAddress && displayname)
|
||||
+ *pLocalAddress = strdup(displayname);
|
||||
}
|
||||
|
||||
#ifdef HAS_GETIFADDRS
|
||||
@@ -1238,7 +1241,7 @@ setAuthNumber (Xauth *auth, char *name)
|
||||
}
|
||||
|
||||
static void
|
||||
-writeLocalAuth (FILE *file, Xauth *auth, char *name)
|
||||
+writeLocalAuth (FILE *file, Xauth *auth, char *name, char **pLocalAddress)
|
||||
{
|
||||
int fd;
|
||||
|
||||
@@ -1265,13 +1268,13 @@ writeLocalAuth (FILE *file, Xauth *auth,
|
||||
DefineSelf (fd, file, auth);
|
||||
close (fd);
|
||||
#endif
|
||||
- DefineLocal (file, auth);
|
||||
+ DefineLocal (file, auth, pLocalAddress);
|
||||
}
|
||||
|
||||
#ifdef XDMCP
|
||||
|
||||
static void
|
||||
-writeRemoteAuth (FILE *file, Xauth *auth, XdmcpNetaddr peer, int peerlen, char *name)
|
||||
+writeRemoteAuth (FILE *file, Xauth *auth, XdmcpNetaddr peer, int peerlen, char *name, char **pLocalAddress)
|
||||
{
|
||||
int family = FamilyLocal;
|
||||
char *addr;
|
||||
@@ -1290,7 +1293,7 @@ writeRemoteAuth (FILE *file, Xauth *auth
|
||||
}
|
||||
else
|
||||
{
|
||||
- writeLocalAuth (file, auth, name);
|
||||
+ writeLocalAuth (file, auth, name, pLocalAddress);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1314,6 +1317,7 @@ SetUserAuthorization (struct display *d,
|
||||
#ifdef HAS_MKSTEMP
|
||||
int fd;
|
||||
#endif
|
||||
+ char *localAddress = NULL;
|
||||
|
||||
Debug ("SetUserAuthorization\n");
|
||||
auths = d->authorizations;
|
||||
@@ -1406,10 +1410,10 @@ SetUserAuthorization (struct display *d,
|
||||
{
|
||||
magicCookie = i;
|
||||
if (d->displayType.location == Local)
|
||||
- writeLocalAuth (new, auths[i], d->name);
|
||||
+ writeLocalAuth (new, auths[i], d->name,&localAddress);
|
||||
#ifdef XDMCP
|
||||
else
|
||||
- writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name);
|
||||
+ writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name, &localAddress);
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
@@ -1427,10 +1431,10 @@ SetUserAuthorization (struct display *d,
|
||||
!strncmp (auths[i]->name, "MIT-KERBEROS-5", 14))
|
||||
auths[i]->data_length = 0;
|
||||
if (d->displayType.location == Local)
|
||||
- writeLocalAuth (new, auths[i], d->name);
|
||||
+ writeLocalAuth (new, auths[i], d->name, &localAddress);
|
||||
#ifdef XDMCP
|
||||
else
|
||||
- writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name);
|
||||
+ writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name, &localAddress);
|
||||
#endif
|
||||
auths[i]->data_length = data_len;
|
||||
}
|
||||
@@ -1475,6 +1479,12 @@ SetUserAuthorization (struct display *d,
|
||||
verify->systemEnviron = setEnv (verify->systemEnviron,
|
||||
"XAUTHORITY", envname);
|
||||
}
|
||||
+ if (localAddress) {
|
||||
+ verify->userEnviron = setEnv (verify->userEnviron,
|
||||
+ "XAUTHLOCALHOSTNAME",localAddress);
|
||||
+ free(localAddress);
|
||||
+ }
|
||||
+
|
||||
XauUnlockAuth (name);
|
||||
if (envname)
|
||||
chown (envname, verify->uid, verify->gid);
|
||||
@@ -1513,10 +1523,10 @@ RemoveUserAuthorization (struct display
|
||||
for (i = 0; i < d->authNum; i++)
|
||||
{
|
||||
if (d->displayType.location == Local)
|
||||
- writeLocalAuth (new, auths[i], d->name);
|
||||
+ writeLocalAuth (new, auths[i], d->name, NULL);
|
||||
#ifdef XDMCP
|
||||
else
|
||||
- writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name);
|
||||
+ writeRemoteAuth (new, auths[i], d->peer, d->peerlen, d->name,NULL);
|
||||
#endif
|
||||
}
|
||||
doWrite = 1;
|
5
xdm.changes
Normal file
5
xdm.changes
Normal file
@ -0,0 +1,5 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 13 08:46:08 UTC 2012 - vuntz@opensuse.org
|
||||
|
||||
- Split xdm from xorg-x11. Initial version: 1.1.10.
|
||||
|
164
xdm.spec
Normal file
164
xdm.spec
Normal file
@ -0,0 +1,164 @@
|
||||
#
|
||||
# spec file for package xdm
|
||||
#
|
||||
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
%define _dminitdir %{_libexecdir}/X11/displaymanagers
|
||||
|
||||
Name: xdm
|
||||
Version: 1.1.10
|
||||
Release: 0
|
||||
License: MIT
|
||||
Summary: X Display Manager
|
||||
Url: http://xorg.freedesktop.org/
|
||||
Group: System/X11/Utilities
|
||||
Source0: http://xorg.freedesktop.org/releases/individual/app/%{name}-%{version}.tar.bz2
|
||||
Source1: xdm.tar.bz2
|
||||
Source2: HOWTO.xdm
|
||||
Patch0: xdm-consolekit.diff
|
||||
Patch1: xdm-tolerant-hostname-changes.diff
|
||||
Patch2: U_xdm_config-AC_LIBTOOL_DLOPEN-is-required-for-dynamic-lin.patch
|
||||
Patch3: U_xdm_config-use-libtool-export-dynamic-option-for-reverse.patch
|
||||
Patch4: U_xdm_Fix-missing-linking-dependency-on-ldl.patch
|
||||
BuildRequires: ConsoleKit-devel
|
||||
%if 0%{?suse_version} >= 01140
|
||||
# Needed to create the man page symlink to init.d
|
||||
BuildRequires: aaa_base-extras
|
||||
%endif
|
||||
# needed for patch0, patch2, patch3, patch4
|
||||
BuildRequires: libtool
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: pkg-config
|
||||
BuildRequires: pkgconfig(x11)
|
||||
BuildRequires: pkgconfig(xau)
|
||||
BuildRequires: pkgconfig(xaw7)
|
||||
BuildRequires: pkgconfig(xdmcp)
|
||||
BuildRequires: pkgconfig(xext)
|
||||
BuildRequires: pkgconfig(xft)
|
||||
BuildRequires: pkgconfig(xinerama)
|
||||
BuildRequires: pkgconfig(xmu)
|
||||
BuildRequires: pkgconfig(xorg-macros) >= 1.4
|
||||
BuildRequires: pkgconfig(xpm)
|
||||
BuildRequires: pkgconfig(xt)
|
||||
Requires: ConsoleKit
|
||||
Requires: logrotate
|
||||
Requires: sessreg
|
||||
Requires: xrdb
|
||||
Requires: xterm
|
||||
Recommends: dbus-1-x11
|
||||
# This was part of the xorg-x11 package up to version 7.6
|
||||
Conflicts: xorg-x11 <= 7.6
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
|
||||
%description
|
||||
Xdm manages a collection of X displays, which may be on the local host
|
||||
or remote servers.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
cp %{SOURCE2} .
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
# needed for patch0, patch2, patch3, patch4
|
||||
autoreconf -fi
|
||||
|
||||
%build
|
||||
%configure \
|
||||
--disable-static \
|
||||
--with-pam \
|
||||
--with-xdmconfigdir=%{_sysconfdir}/X11/xdm \
|
||||
--with-xdmscriptdir=%{_sysconfdir}/X11/xdm
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
%make_install
|
||||
# Not used anymore by SuSE
|
||||
rm %{buildroot}%{_sysconfdir}/X11/xdm/{GiveConsole,TakeConsole,Xsetup_0}
|
||||
|
||||
pushd %{buildroot}
|
||||
# SuSE default XDM configuration
|
||||
tar xf %{SOURCE1}
|
||||
%ifarch s390 s390x
|
||||
sed -i -e "s+DISPLAYMANAGER_REMOTE_ACCESS=.*+DISPLAYMANAGER_REMOTE_ACCESS=\"yes\"+g" \
|
||||
-e "s+DISPLAYMANAGER_REMOTE_ACCESS=.*+DISPLAYMANAGER_REMOTE_ACCESS=\"no\"+g" \
|
||||
var/adm/fillup-templates/sysconfig.displaymanager
|
||||
%endif
|
||||
popd
|
||||
|
||||
# Correct location (FHS-2.1)
|
||||
ln -s %{_localstatedir}/lib/xdm/authdir %{buildroot}%{_sysconfdir}/X11/xdm/authdir
|
||||
# bnc#223734
|
||||
rm %{buildroot}%{_libdir}/X11/xdm/libXdmGreet.la
|
||||
# for FHS compliance (bnc#21857)
|
||||
mv %{buildroot}%{_libdir}/X11/xdm/chooser %{buildroot}%{_bindir}
|
||||
# fdo#35868 (closed INVALID, but because of above fix, we want it)
|
||||
ln -s xdm.1%{?ext_man} %{buildroot}%{_mandir}/man1/chooser.1%{?ext_man}
|
||||
# missing manual page
|
||||
mkdir -p %{buildroot}%{_mandir}/man8
|
||||
ln -s ../man7/init.d.7%{?ext_man} %{buildroot}%{_mandir}/man8/rcxdm.8%{?ext_man}
|
||||
|
||||
# Note:
|
||||
# no %%stop_on_removal in %%preun
|
||||
# no %%restart_on_update in %%postun
|
||||
# => we don't want to end an existing session
|
||||
|
||||
%post
|
||||
%{fillup_and_insserv -Y xdm}
|
||||
%{fillup_only -n displaymanager}
|
||||
|
||||
%postun
|
||||
%{insserv_cleanup}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
%doc AUTHORS ChangeLog COPYING README
|
||||
%doc HOWTO.xdm
|
||||
%dir %{_dminitdir}
|
||||
%{_dminitdir}/xdm
|
||||
%{_dminitdir}/entrance.fallback
|
||||
%{_dminitdir}/gdm.fallback
|
||||
%{_dminitdir}/kdm.fallback
|
||||
%{_dminitdir}/lxdm.fallback
|
||||
%{_dminitdir}/slim.fallback
|
||||
%{_dminitdir}/wdm.fallback
|
||||
%config %{_sysconfdir}/X11/xdm/
|
||||
%config(noreplace) %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/xdmcp
|
||||
%{_sysconfdir}/init.d/xdm
|
||||
%config %{_sysconfdir}/logrotate.d/xdm
|
||||
%config %{_sysconfdir}/pam.d/xdm
|
||||
%config %{_sysconfdir}/pam.d/xdm-np
|
||||
%dir %{_localstatedir}/lib/xdm/
|
||||
%{_localstatedir}/adm/fillup-templates/sysconfig.displaymanager
|
||||
%{_localstatedir}/lib/xdm/authdir/
|
||||
%ghost %{_localstatedir}/log/xdm.errors
|
||||
%ghost %{_localstatedir}/run/xdm.pid
|
||||
%{_bindir}/chooser
|
||||
%{_bindir}/xdm
|
||||
%{_bindir}/xdmshell
|
||||
%{_sbindir}/rcxdm
|
||||
%{_libdir}/X11/xdm/
|
||||
%dir %{_datadir}/X11/app-defaults
|
||||
%{_datadir}/X11/app-defaults/Chooser
|
||||
%{_mandir}/man1/chooser.1%{?ext_man}
|
||||
%{_mandir}/man1/xdm.1%{?ext_man}
|
||||
%{_mandir}/man8/rcxdm.8%{?ext_man}
|
||||
%ifnarch %ix86
|
||||
%dir %{_libdir}/X11
|
||||
%endif
|
||||
|
||||
%changelog
|
3
xdm.tar.bz2
Normal file
3
xdm.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:01ec22892e40adb7aa06fffc595e6c33acbc889b69537525ed4aa0e47e405e48
|
||||
size 18953
|
Loading…
Reference in New Issue
Block a user