xdm: Changes to 'debian-unstable'
.gitignore | 85 +++-
COPYING | 53 +-
ChangeLog | 460 ++++++++++++++++++++++
Makefile.am | 15
access.c | 23 +
acinclude.m4 | 45 --
app-defaults/.gitignore | 2
auth.c | 157 +++++--
config/.gitignore | 7
config/Xstartup.cpp | 2
configure.ac | 35 +
debian/changelog | 18
debian/patches/02_xdm_zombie_no_error.diff | 36 -
debian/patches/06_hurd_utsname.diff | 6
debian/patches/15_xdm_openfiles.diff | 43 --
debian/patches/90_xdm_write_dummy_auth.diff | 68 ---
debian/patches/91_xdm_saveserverauth_logging.diff | 84 ----
debian/patches/doc_mention_xdm.options.diff | 8
debian/patches/log_sourcing_better.diff | 74 ---
debian/patches/selinux_support.diff | 131 ------
debian/patches/series | 19
debian/patches/storepid_rewrite.diff | 141 ------
debian/patches/support_logfile_rotation.diff | 16
dm.c | 142 ++++--
greeter/.gitignore | 7
greeter/Login.c | 117 +++--
greeter/Login.h | 41 -
greeter/LoginP.h | 41 -
greeter/greet.c | 62 +-
m4/ac_define_dir.m4 | 45 ++
session.c | 89 +++-
socket.c | 33 +
xdm.man.cpp | 6
xdmcp.c | 23 -
34 files changed, 1191 insertions(+), 943 deletions(-)
New commits:
commit 19c7684bc0452a2154b785f8a333cc09a3554544
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Apr 10 04:15:01 2010 +0200
Mention bugs fixed upstream in the changelog
diff --git a/debian/changelog b/debian/changelog
index 8d0ea0f..5d86555 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,10 @@
xdm (1:1.1.10-1) UNRELEASED; urgency=low
* New upstream release.
+ - don't delete the pid file from child xdm processes, closes: #372114
+ - clear the "Login incorrect" message properly on next login,
+ closes: #525596. Thanks, Martin Dickopp!
+ - fix xdmcp with net.ipv6.bindv6only=1
* Patches merged upstream:
- 02_xdm_zombie_no_error.diff
- 15_xdm_openfiles.diff
commit 615a1ff422652e299a9cb542ded764ebcaa25b0d
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Apr 10 03:56:45 2010 +0200
Refresh remaining patches
diff --git a/debian/patches/06_hurd_utsname.diff b/debian/patches/06_hurd_utsname.diff
index eadb737..375d2b2 100644
--- a/debian/patches/06_hurd_utsname.diff
+++ b/debian/patches/06_hurd_utsname.diff
@@ -4,9 +4,9 @@
Index: xdm/auth.c
===================================================================
---- xdm.orig/auth.c 2009-12-06 21:44:07.000000000 +0100
-+++ xdm/auth.c 2009-12-06 21:48:19.000000000 +0100
-@@ -57,9 +57,7 @@
+--- xdm.orig/auth.c
++++ xdm/auth.c
+@@ -56,9 +56,7 @@
# include <netdnet/dnetdb.h>
#endif
diff --git a/debian/patches/doc_mention_xdm.options.diff b/debian/patches/doc_mention_xdm.options.diff
index 4c41284..8d4e59f 100644
--- a/debian/patches/doc_mention_xdm.options.diff
+++ b/debian/patches/doc_mention_xdm.options.diff
@@ -1,6 +1,8 @@
---- a/xdm.man.cpp
-+++ b/xdm.man.cpp
-@@ -1469,7 +1469,8 @@ Kerberos credentials cache
+Index: xdm/xdm.man.cpp
+===================================================================
+--- xdm.orig/xdm.man.cpp
++++ xdm/xdm.man.cpp
+@@ -1473,7 +1473,8 @@
.IR Xserver (__appmansuffix__),
.\" .IR chooser (__appmansuffix__), \" except that there isn't a manual for it yet
.\" .IR xdmshell (__appmansuffix__), \" except that there isn't a manual for it yet
diff --git a/debian/patches/support_logfile_rotation.diff b/debian/patches/support_logfile_rotation.diff
index 160f290..51cf119 100644
--- a/debian/patches/support_logfile_rotation.diff
+++ b/debian/patches/support_logfile_rotation.diff
@@ -13,7 +13,7 @@ Index: xdm/dm.c
===================================================================
--- xdm.orig/dm.c
+++ xdm/dm.c
-@@ -80,8 +80,10 @@
+@@ -90,8 +90,10 @@
extern FILE *fdopen();
#endif
@@ -25,7 +25,7 @@ Index: xdm/dm.c
static void RestartDisplay (struct display *d, int forceReserver);
static void ScanServers (void);
static void SetAccessFileTime (void);
-@@ -90,6 +92,7 @@
+@@ -100,6 +102,7 @@
static void TerminateProcess (pid_t pid, int signal);
volatile int Rescan;
@@ -33,7 +33,7 @@ Index: xdm/dm.c
static long ServersModTime, ConfigModTime, AccessFileModTime;
int nofork_session = 0;
-@@ -199,6 +202,7 @@
+@@ -209,6 +212,7 @@
AddOtherEntropy();
#endif
(void) Signal (SIGHUP, RescanNotify);
@@ -41,7 +41,7 @@ Index: xdm/dm.c
#ifndef UNRELIABLE_SIGNALS
(void) Signal (SIGCHLD, ChildNotify);
#endif
-@@ -209,6 +213,11 @@
+@@ -219,6 +223,11 @@
#endif
AnyDisplaysLeft ())
{
@@ -53,7 +53,7 @@ Index: xdm/dm.c
if (Rescan)
{
RescanServers ();
-@@ -233,6 +242,7 @@
+@@ -243,6 +252,7 @@
int olderrno = errno;
Debug ("Caught SIGHUP\n");
@@ -61,7 +61,7 @@ Index: xdm/dm.c
Rescan = 1;
#ifdef SIGNALS_RESET_WHEN_CAUGHT
(void) Signal (SIGHUP, RescanNotify);
-@@ -240,6 +250,26 @@
+@@ -250,6 +260,26 @@
errno = olderrno;
}
@@ -88,7 +88,7 @@ Index: xdm/dm.c
static void
ScanServers (void)
{
-@@ -307,6 +337,14 @@
+@@ -317,6 +347,14 @@
}
static void
@@ -120,7 +120,7 @@ Index: xdm/xdm.man.cpp
===================================================================
--- xdm.orig/xdm.man.cpp
+++ xdm/xdm.man.cpp
-@@ -1403,6 +1403,37 @@
+@@ -1407,6 +1407,37 @@
multiple window systems on the same hardware, you'll probably be more
interested in
.I xinit.
commit 861e934c3d8a9d700ebf1b23bff6112e5dfa57a4
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Apr 10 03:53:20 2010 +0200
Delete patches applied upstream
diff --git a/debian/changelog b/debian/changelog
index 17e049d..8d0ea0f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,14 @@
xdm (1:1.1.10-1) UNRELEASED; urgency=low
* New upstream release.
+ * Patches merged upstream:
+ - 02_xdm_zombie_no_error.diff
+ - 15_xdm_openfiles.diff
+ - 90_xdm_write_dummy_auth.diff
+ - 91_xdm_saveserverauth_logging.diff
+ - log_sourcing_better.diff
+ - selinux_support.diff
+ - storepid_rewrite.diff
-- Julien Cristau <jcristau@debian.org> Sat, 10 Apr 2010 03:49:17 +0200
diff --git a/debian/patches/02_xdm_zombie_no_error.diff b/debian/patches/02_xdm_zombie_no_error.diff
deleted file mode 100644
index 767b0b0..0000000
--- a/debian/patches/02_xdm_zombie_no_error.diff
+++ /dev/null
@@ -1,36 +0,0 @@
-From: Branden Robinson <branden@debian.org>
-Subject: downgrade an error to info message
-
-During normal xdm shutdown, killed local X servers
-can be zombies; this is not an error.
-
-Forward-ported by David Nusinow, Eugene Konev and Julien Cristau
-
----
- dm.c | 13 +++++++++++--
- 1 file changed, 11 insertions(+), 2 deletions(-)
-
-Index: xdm/dm.c
-===================================================================
---- xdm.orig/dm.c 2009-12-06 21:37:54.000000000 +0100
-+++ xdm/dm.c 2009-12-06 21:45:00.000000000 +0100
-@@ -543,8 +543,17 @@
- d->startTries, d->startAttempts);
- if (d->displayType.origin == FromXDMCP ||
- d->status == zombie ||
-- ++d->startTries >= d->startAttempts) {
-- LogError ("Display %s is being disabled\n", d->name);
-+ ++d->startTries >= d->startAttempts)
-+ {
-+ /*
-+ * During normal xdm shutdown, killed local X servers
-+ * can be zombies; this is not an error.
-+ */
-+ if (d->status == zombie &&
-+ (d->startTries < d->startAttempts))
-+ LogInfo ("display %s is being disabled\n", d->name);
-+ else
-+ LogError ("display %s is being disabled\n", d->name);
- StopDisplay(d);
- } else
- RestartDisplay (d, TRUE);
diff --git a/debian/patches/15_xdm_openfiles.diff b/debian/patches/15_xdm_openfiles.diff
deleted file mode 100644
index 4bb57f6..0000000
--- a/debian/patches/15_xdm_openfiles.diff
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Branden Robinson <branden@debian.org>
-Subject: [PATCH] Change openFiles() to avoid race-based symlink attacks.
-
-Forward-ported by Julien Cristau <jcristau@debian.org>.
-
-Index: xdm/auth.c
-===================================================================
---- xdm.orig/auth.c
-+++ xdm/auth.c
-@@ -494,12 +494,32 @@
- openFiles (char *name, char *new_name, FILE **oldp, FILE **newp)
- {
- mode_t mask;
-+ int newfd;
-
- strcpy (new_name, name);
- strcat (new_name, "-n");
-+ /*
-+ * Set safe umask for file creation operations.
-+ */
- mask = umask (0077);
-+ /*
-+ * Unlink the authorization file we intend to create, and then open
-+ * it with O_CREAT | O_EXCL to avoid race-based symlink attacks.
-+ */
- (void) unlink (new_name);
-- *newp = fopen (new_name, "w");
-+ newfd = open (new_name, O_WRONLY | O_CREAT | O_EXCL, 0600);
-+ if (newfd >= 0)
-+ *newp = fdopen (newfd, "w");
-+ else
-+ {
-+ LogError ("Cannot create file %s: %s\n", new_name,
-+ _SysErrorMsg (errno));
-+ *newp = NULL;
-+ }
-+ /*
-+ * There are no more attempts to create files after this point;
-+ * restore the original umask.
-+ */
- (void) umask (mask);
- if (!*newp) {
- Debug ("can't open new file %s\n", new_name);
diff --git a/debian/patches/90_xdm_write_dummy_auth.diff b/debian/patches/90_xdm_write_dummy_auth.diff
deleted file mode 100644
index 6189514..0000000
--- a/debian/patches/90_xdm_write_dummy_auth.diff
+++ /dev/null
@@ -1,68 +0,0 @@
-From: Branden Robinson <branden@debian.org>
-Subject: Always attempt to write data to the auth file
-
-Actually attempt to write data to the auth file in SaveServerAuthorizations();
-that way we detect problems like ENOSPC (full filesystem, user over quota)
-early enough to do something about it. (See Debian #217505, #253480)
-
-Forward-ported by Julien Cristau <jcristau@debian.org>.
-
-Index: xdm/auth.c
-===================================================================
---- xdm.orig/auth.c
-+++ xdm/auth.c
-@@ -374,6 +374,8 @@
- mode_t mask;
- int ret;
- int i;
-+ char dummy_auth[] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
-+ "XXXXXXXXXXXXXXXXX"; /* 64 "X"s */
-
- mask = umask (0077);
- ret = MakeServerAuthFile(d, &auth_file);
-@@ -391,6 +393,31 @@
- {
- Debug ("File: %s auth: %p\n", d->authFile, auths);
- ret = TRUE;
-+ if (count == 0)
-+ {
-+ /*
-+ * This is a crude hack to determine whether we really can
-+ * write to the auth file even if we don't have real data
-+ * to write right now.
-+ */
-+
-+ /*
-+ * Write garbage data to file to provoke ENOSPC and other
-+ * errors.
-+ */
-+ (void) fprintf (auth_file, "%s", dummy_auth);
-+ (void) fflush (auth_file);
-+ if (ferror (auth_file))
-+ {
-+ LogError ("Cannot write server authorization file %s\n",
-+ d->authFile);
-+ ret = FALSE;
-+ }
-+ /*
-+ * Rewind so that the garbage data is overwritten later.
-+ */
-+ rewind(auth_file);
-+ }
- for (i = 0; i < count; i++)
- {
- /*
-@@ -409,6 +436,13 @@
- d->authFile = NULL;
- }
- }
-+ /*
-+ * XXX: This is not elegant, but stdio has no truncation function.
-+ */
-+ if (ftruncate(fileno(auth_file), ftell(auth_file)))
-+ {
-+ Debug ("ftruncate() failed\n");
-+ }
- fclose (auth_file);
- }
- return ret;
diff --git a/debian/patches/91_xdm_saveserverauth_logging.diff b/debian/patches/91_xdm_saveserverauth_logging.diff
deleted file mode 100644
index cf8e560..0000000
--- a/debian/patches/91_xdm_saveserverauth_logging.diff
+++ /dev/null
@@ -1,84 +0,0 @@
-From: Branden Robinson <branden@debian.org>
-Subject: improve error logging
-
-Make several LogError() and Debug() messages more informative.
-Change LogError() invocations to use _SysErrorMsg() where errno might be set
-(and not clobbered by intermediate calls). Also make LogError() the first
-thing we do after an error condition in those cases.
-
-Forward-ported by Julien Cristau <jcristau@debian.org>.
-
-Index: xdm/auth.c
-===================================================================
---- xdm.orig/auth.c
-+++ xdm/auth.c
-@@ -376,6 +376,7 @@
- int i;
- char dummy_auth[] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
- "XXXXXXXXXXXXXXXXX"; /* 64 "X"s */
-+ int err = 0;
-
- mask = umask (0077);
- ret = MakeServerAuthFile(d, &auth_file);
-@@ -383,10 +384,8 @@
- if (!ret)
- return FALSE;
- if (!auth_file) {
-- Debug ("Can't creat auth file %s\n", d->authFile);
-- LogError ("Cannot open server authorization file %s\n", d->authFile);
-- free (d->authFile);
-- d->authFile = NULL;
-+ LogError ("cannot open server authorization file %s: %s\n",
-+ d->authFile, _SysErrorMsg (errno));
- ret = FALSE;
- }
- else
-@@ -409,8 +408,7 @@
- (void) fflush (auth_file);
- if (ferror (auth_file))
- {
-- LogError ("Cannot write server authorization file %s\n",
-- d->authFile);
-+ err = errno;
- ret = FALSE;
- }
- /*
-@@ -426,14 +424,15 @@
- * to the auth file so xrdb and setup programs don't fail.
- */
- if (auths[i]->data_length > 0)
-- if (!XauWriteAuth (auth_file, auths[i]) ||
-- fflush (auth_file) == EOF)
-+ if (!XauWriteAuth (auth_file, auths[i]))
-+ {
-+ Debug ("XauWriteAuth() failed\n");
-+ }
-+ (void) fflush (auth_file);
-+ if (ferror (auth_file))
- {
-- LogError ("Cannot write server authorization file %s\n",
-- d->authFile);
-+ err = errno;
- ret = FALSE;
-- free (d->authFile);
-- d->authFile = NULL;
- }
- }
- /*
-@@ -444,6 +443,16 @@
- Debug ("ftruncate() failed\n");
- }
- fclose (auth_file);
-+
-+ }
-+ if (ret == FALSE)
-+ {
-+ LogError ("Cannot write to server authorization file %s%s%s\n",
-+ d->authFile,
-+ err ? ": " : "",
-+ err ? _SysErrorMsg (errno) : "");
-+ free (d->authFile);
-+ d->authFile = NULL;
- }
- return ret;
- }
diff --git a/debian/patches/log_sourcing_better.diff b/debian/patches/log_sourcing_better.diff
deleted file mode 100644
index 29668b6..0000000
--- a/debian/patches/log_sourcing_better.diff
+++ /dev/null
@@ -1,74 +0,0 @@
-From: Branden Robinson <branden@debian.org>
-Subject: Improve logging of xdm's script handling
-
-* Make execution of the session program an informational log message (with
- LogInfo()), not a Debug() message.
-* Ensure that source()d scripts (Xreset, Xsetup, Xstartup) can be
- fopen()ed before invoking runAndWait() on them. If they can, LogInfo()
- the fact. If they cannot, LogInfo() that, too, and use _SysErrorMsg() to
- report why fopen() failed.
-* Make source() complain using Debug() when it is given a null pointer in
- its file argument.
-* For clarity, make source() return from only one location.
-
-Also see Debian bug #219311.
-
-Forward ported by Eugene Konev.
----
- session.c | 33 ++++++++++++++++++++-------------
- 1 file changed, 20 insertions(+), 13 deletions(-)
-
-Index: xdm/session.c
-===================================================================
---- xdm.orig/session.c 2009-12-06 21:37:54.000000000 +0100
-+++ xdm/session.c 2009-12-06 21:59:11.000000000 +0100
-@@ -791,7 +791,7 @@
- verify->userEnviron = setEnv(verify->userEnviron, "HOME", "/");
- }
- if (verify->argv) {
-- Debug ("executing session %s\n", verify->argv[0]);
-+ LogInfo ("executing session %s\n", verify->argv[0]);
- execute (verify->argv, verify->userEnviron);
- LogError ("Session \"%s\" execution failed (err %d)\n", verify->argv[0], errno);
- } else {
-@@ -821,21 +821,28 @@
- source (char **environ, char *file)
- {
- char **args, *args_safe[2];
-- int ret;
-+ int ret = 0;
-+ FILE *f;
-
- if (file && file[0]) {
-- Debug ("source %s\n", file);
-- args = parseArgs ((char **) 0, file);
-- if (!args) {
-- args = args_safe;
-- args[0] = file;
-- args[1] = NULL;
-+ f = fopen (file, "r");
-+ if (!f)
-+ LogInfo ("not sourcing %s (%s)\n", file, _SysErrorMsg (errno));
-+ else {
-+ fclose (f);
-+ LogInfo ("sourcing %s\n", file);
-+ args = parseArgs ((char **) 0, file);
-+ if (!args) {
-+ args = args_safe;
-+ args[0] = file;
-+ args[1] = NULL;
-+ }
-+ ret = runAndWait (args, environ);
-+ freeArgs (args);
- }
-- ret = runAndWait (args, environ);
-- freeArgs (args);
-- return ret;
-- }
-- return 0;
-+ } else
-+ Debug ("source() given null pointer in file argument\n");
-+ return ret;
- }
-
- static int
diff --git a/debian/patches/selinux_support.diff b/debian/patches/selinux_support.diff
deleted file mode 100644
index 2f8af27..0000000
--- a/debian/patches/selinux_support.diff
+++ /dev/null
@@ -1,131 +0,0 @@
-From: Manoj Srivastava <srivasta@golden-gryphon.com>
-Subject: xdm: add SELinux support
-
-History:
-Initial patch submitted in Debian bug#233551
-Forward-ported to modular X by Eugene Konev (changes: remove Imakefile hunks,
-add --with-selinux flag to configure.ac).
-Updated to latest SE Linux code by Russell Coker 3rd Aug 2008, with bugfix from
-Julien Cristau (Debian bug#493524).
-
----
- configure.ac | 17 +++++++++++++++++
- session.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 73 insertions(+)
-
-Index: xdm/configure.ac
-===================================================================
---- xdm.orig/configure.ac 2009-12-06 21:37:54.000000000 +0100
-+++ xdm/configure.ac 2009-12-06 21:59:17.000000000 +0100
-@@ -129,6 +129,23 @@
- fi])
- fi
-
-+use_selinux_default=no
-+# Check for selinux support
-+AC_ARG_WITH(selinux, AC_HELP_STRING([--with-selinux],[Add support for selinux]),
-+ [USE_SELINUX=$withval], [USE_SELINUX=$use_selinux_default])
-+if test "x$USE_SELINUX" != "xno" ; then
-+ old_LIBS="$LIBS"
-+ LIBS=""
-+ AC_SEARCH_LIBS(is_selinux_enabled,[selinux])
-+ AC_CHECK_FUNC(is_selinux_enabled,
-+ [AC_DEFINE(HAVE_SELINUX,1,[Add support for selinux])],
-+ [if test "x$USE_SELINUX" != "xtry" ; then
-+ AC_MSG_ERROR(["selinux support requested, but is_selinux_enabled not found."])
-+ fi])
-+ XDM_LIBS="$XDM_LIBS $LIBS"
-+ LIBS="$old_LIBS"
-+fi
-+
- # FIXME: Find better test for which OS'es use su -m - for now, just try to
- # mirror the Imakefile setting of:
- # if defined(OpenBSDArchitecture) || defined(NetBSDArchitecture) || defined(FreeBSDArchitecture) || defined(DarwinArchitecture)
-Index: xdm/session.c
-===================================================================
---- xdm.orig/session.c 2009-12-06 21:59:11.000000000 +0100
-+++ xdm/session.c 2009-12-06 21:59:17.000000000 +0100
-@@ -33,6 +33,10 @@
- * session.c
- */
-
-+#ifdef HAVE_CONFIG_H
-+# include "config.h"
-+#endif
-+
- #include "dm.h"
- #include "dm_auth.h"
- #include "dm_error.h"
-@@ -67,6 +71,11 @@
- # include <prot.h>
- #endif
-
-+#ifdef HAVE_SELINUX
-+#include <selinux/selinux.h>
-+#include <selinux/get_context_list.h>
-+#endif /* HAVE_SELINUX */
-+
- #ifndef GREET_USER_STATIC
- # include <dlfcn.h>
- # ifndef RTLD_NOW
-@@ -74,6 +83,42 @@
- # endif
- #endif
-
-+#ifdef HAVE_SELINUX
-+/* This should be run just before we exec the user session. */
-+static int
-+xdm_selinux_setup (const char *login)
-+ {
-+ security_context_t scontext;
-+ int ret = -1;
-+ char *seuser=NULL;
-+ char *level=NULL;
-+
-+ /* If SELinux is not enabled, then we don't do anything. */
-+ if ( is_selinux_enabled () <= 0)
-+ return TRUE;
-+
-+ if (getseuserbyname(login, &seuser, &level) == 0) {
-+ ret=get_default_context_with_level(seuser, level, 0, &scontext);
-+ free(seuser);
-+ free(level);
-+ }
-+ if (ret < 0 || scontext == NULL) {
-+ LogError ("SELinux: unable to obtain default security context for %s\n", login);
-+ return FALSE;
-+ }
-+
-+ if (setexeccon (scontext) != 0) {
-+ freecon (scontext);
-+ LogError ("SELinux: unable to set executable context %s\n",
-+ (char *)scontext);
-+ return FALSE;
-+ }
-+
-+ freecon (scontext);
-+ return TRUE;
-+}
-+#endif /* HAVE_SELINUX */
-+
- static int runAndWait (char **args, char **environ);
-
- #ifdef HAVE_GRP_H
-@@ -782,6 +827,17 @@
- bzero(passwd, strlen(passwd));
-
- SetUserAuthorization (d, verify);
-+#ifdef HAVE_SELINUX
-+ /*
-+ * For Security Enhanced Linux:
-+ * set the default security context for this user.
-+ */
-+ if ( ! xdm_selinux_setup (name)) {
-+ LogError ("failed to set security context\n");
-+ exit (UNMANAGE_DISPLAY);
-+ return (0);
-+ }
-+#endif /* HAVE_SELINUX */
- home = getEnv (verify->userEnviron, "HOME");
- if (home)
- if (chdir (home) == -1) {
diff --git a/debian/patches/series b/debian/patches/series
index e799ec9..15eddf7 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,30 +1,11 @@
-# upstream cd6b6d5f78e92725d6466d138f5441d791e58212
-02_xdm_zombie_no_error.diff
-
# this one might need some ifdefs
06_hurd_utsname.diff
-# upstream 11d6aa0b392daef2900681b70960d8be4ada89a9
-15_xdm_openfiles.diff
-
# patch 20 has signal safety issues
20_xdm_log_timestamp.diff
21_xdm_log_append.diff
-# upstream 17105faffcb4533da71f0d3d17fd40a64b6faf50
-90_xdm_write_dummy_auth.diff
-# upstream 5222d28e8d8e5b4cc705f1a637aace405ad32bd5
-91_xdm_saveserverauth_logging.diff
-
-# upstream 90c2cc57cdf911cec2eec185f357868209212c79
-log_sourcing_better.diff
-# upstream 6d393844dca10823f85d1ac797879fc6e00eae59
-selinux_support.diff
-
support_logfile_rotation.diff
-# upstream c925709069d7515bb94f43e4b88155a95e41c8fe
-storepid_rewrite.diff
-
debian.diff
doc_mention_xdm.options.diff
diff --git a/debian/patches/storepid_rewrite.diff b/debian/patches/storepid_rewrite.diff
deleted file mode 100644
index ddd4a5e..0000000
--- a/debian/patches/storepid_rewrite.diff
+++ /dev/null
@@ -1,141 +0,0 @@
-From: Branden Robinson <branden@debian.org>
-Date: Mon, 18 Nov 2002 04:24:48 -0500
-Subject: rewrite StorePid()
-
-Update StorePid() function to use Matthieu Herrb's changes that refuse
-to open an existing pid file, and take more care with the size of the
-Pid_t type.
-
-Matthieu Herrb rewrote the StorePid() function based on my changes; he
-made it more careful with the size of Pid_t, and treats an existing pid
-file as a failure. I then made some more changes: use _SysErrorMsg()
-instead of strerror(), and don't assume that the process id we write to
-the pidFile is 5 digits.
-
-Forward-ported by David Nusinow, Eugene Konev and Julien Cristau.
-
-Index: xdm/dm.c
-===================================================================
---- xdm.orig/dm.c
-+++ xdm/dm.c
-@@ -106,7 +106,7 @@
- static SIGVAL ChildNotify (int n);
- #endif
-
--static int StorePid (void);
-+static long StorePid (void);
- static void RemovePid (void);
-
- static pid_t parent_pid = -1; /* PID of parent xdm process */
-@@ -902,65 +902,64 @@
- static int pidFd;
- static FILE *pidFilePtr;
-
--static int
-+/*
-+ * Create and populate file storing xdm's process ID.
-+ */
-+static long
- StorePid (void)
- {
-- int oldpid;
-+ long oldpid;
-+ char pidstr[11]; /* enough space for a 32-bit pid plus \0 */
-+ size_t pidstrlen;
-
-- if (pidFile[0] != '\0') {
-- pidFd = open (pidFile, O_RDWR);
-- if (pidFd == -1 && errno == ENOENT)
-- pidFd = open (pidFile, O_RDWR|O_CREAT, 0666);
-- if (pidFd == -1 || !(pidFilePtr = fdopen (pidFd, "r+")))
-+ if (pidFile[0] != '\0')
-+ {
-+ Debug ("storing process ID in %s\n", pidFile);
-+ pidFd = open (pidFile, O_WRONLY|O_CREAT|O_EXCL, 0666);
-+ if (pidFd == -1)
- {
-- LogError ("process-id file %s cannot be opened\n",
-- pidFile);
-- return -1;
-- }
-- if (fscanf (pidFilePtr, "%d\n", &oldpid) != 1)
-- oldpid = -1;
-- fseek (pidFilePtr, 0l, 0);
-- if (lockPidFile)
-- {
--#ifdef F_SETLK
--# ifndef SEEK_SET
--# define SEEK_SET 0
--# endif
-- struct flock lock_data;
-- lock_data.l_type = F_WRLCK;
-- lock_data.l_whence = SEEK_SET;
-- lock_data.l_start = lock_data.l_len = 0;
-- if (fcntl(pidFd, F_SETLK, &lock_data) == -1)
-+ if (errno == EEXIST)
- {
-- if (errno == EAGAIN)
-- return oldpid;
-- else
-+ /* pidFile already exists; see if we can open it */
-+ pidFilePtr = fopen (pidFile, "r");
-+ if (pidFilePtr == NULL)
-+ {
-+ LogError ("cannot open process ID file %s for reading: "
-+ "%s\n", pidFile, _SysErrorMsg (errno));
- return -1;
-+ }
-+ if (fscanf (pidFilePtr, "%ld\n", &oldpid) != 1)
-+ {
-+ LogError ("existing process ID file %s empty or contains "
-+ "garbage\n", pidFile);
-+ oldpid = -1;
-+ }
-+ fclose (pidFilePtr);
-+ return oldpid;
- }
--#else
--# ifdef LOCK_EX
-- if (flock (pidFd, LOCK_EX|LOCK_NB) == -1)
-- {
-- if (errno == EWOULDBLOCK)
-- return oldpid;
- else
-- return -1;
-- }
--# else
-- if (lockf (pidFd, F_TLOCK, 0) == -1)
- {
-- if (errno == EACCES)
-- return oldpid;
-- else
-- return -1;
-+ LogError ("cannot fdopen process ID file %s for writing: "
-+ "%s\n", pidFile, _SysErrorMsg (errno));
-+ return -1;
- }
--# endif
--#endif
- }
-- ftruncate(pidFd, 0);
-- fprintf (pidFilePtr, "%5ld\n", (long)getpid ());
-+ if ((pidFilePtr = fdopen (pidFd, "w")) == NULL)
-+ {
-+ LogError ("cannot open process ID file %s for writing: %s\n",
-+ pidFile, _SysErrorMsg (errno));
-+ return -1;
-+ }
-+ (void) snprintf (pidstr, 11, "%ld", (long) getpid ());
-+ pidstrlen = strlen (pidstr);
-+ if (fprintf (pidFilePtr, "%s\n", pidstr) != ( pidstrlen + 1))
-+ {
-+ LogError ("cannot write to process ID file %s: %s\n", pidFile,
-+ _SysErrorMsg (errno));
-+ return -1;
-+ }
- (void) fflush (pidFilePtr);
-- RegisterCloseOnFork (pidFd);
-+ (void) fclose (pidFilePtr);
- }
- return 0;
- }
commit 48e9fc36651eee8a7a517039e7c2befcc7efc467
Author: Julien Cristau <jcristau@debian.org>
Date: Sat Apr 10 03:49:45 2010 +0200
Update changelogs
diff --git a/ChangeLog b/ChangeLog
index 91ae211..9af5a86 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,463 @@
+commit 7006d5c582e382660437a64b749822116823ecee
+Author: Julien Cristau <jcristau@debian.org>
+Date: Sat Apr 10 03:48:05 2010 +0200
+
+ Bump to 1.1.10
+
+commit 7c4c0592aca80cc8affe4e94d2742caa754d5be3
+Author: Julien Cristau <jcristau@debian.org>
+Date: Sun Apr 4 19:20:39 2010 +0200
+
+ Add missing brace in previous commit
+
+ Thanks to cjb and tinderbox.
+
+ Signed-off-by: Julien Cristau <jcristau@debian.org>
+
+commit 8eb897bb980dd6ce3f8ade517a8a39023a477743
+Author: Julien Cristau <jcristau@debian.org>
+Date: Tue Mar 23 19:40:49 2010 +0100
+
+ xdmcp: disable IPV6_V6ONLY for ipv6 listening sockets
+
+ This allows ipv4 connections mapped to ipv6, in case the system default
+ is backwards.
+
+ Signed-off-by: Julien Cristau <jcristau@debian.org>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 3a4f890fa9466ed27d49ce97adbcad30b840d3d4
+Author: Julien Cristau <jcristau@debian.org>
+Date: Tue Mar 23 19:40:48 2010 +0100
+
+ Don't remove the pid file from xdm child processes
+
+ The parent xdm process registers RemovePid with atexit(), which means
+ that any child exit would trigger the (wrong) removal of the pidfile.
+ So in RemovePid, don't do anything if we're not the parent xdm process.
+
+ Signed-off-by: Julien Cristau <jcristau@debian.org>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 931c98390274a9e0c62c41c5e9ceed6681e7a9b7
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Sat Mar 13 15:19:37 2010 -0500
+
+ lint: option -rdynamic is not valid for the lint program
+
+ Use xdm_LIBS instead. Tested on Solaris.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 34b9c0e02bc2d36da2c8c5ee468b2a2d63914610
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Tue Mar 16 16:33:48 2010 -0700
+
+ Reject PAM conversation calls after login dialog is closed
+
+ Based on patch suggested by Bjoern A. Zeeb <bzeeb+patch@zabbadoz.net>
+ to fix http://bugs.freedesktop.org/show_bug.cgi?id=10522
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit afc752d1c483e77de9aa3cb9532a67d95fd27dd9
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Tue Mar 16 11:23:30 2010 -0700
+
+ Make sure username is not NULL when calling syslog from FailedLogin()
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit 0f18bdfa7fcfe100e487f4c9f91ae37a125ef0f0
+Author: Johannes Dewender <xorg@JonnyJD.net>
+Date: Fri Nov 13 21:28:23 2009 +0100
+
+ Bug #25066: exec sessreg
+
+ Sessreg saves the pid of the calling process in utmp.
+ If this process is terminated the session is implicitly deleted.
+ Xstartup is called and the process id is gone right when
+ the script is done so the session is closed right away.
+ Using "exec" will save the pid of the master process of this login.
+
+ Signed-off-by: Johannes Dewender <xorg@JonnyJD.net>
+ Tested-by: Johannes Dewender <xorg@JonnyJD.net>
+ Acked-by: Julien Cristau <jcristau@debian.org>
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit c9cdd56df50f280e90ba95cfa933222f94ad2677
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Mar 15 23:34:04 2010 -0700
+
+ Move m4 macros to m4 subdir as automake/libtool recommend
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit b9226288b96f0c5988d2c2f52718674d39803a5e
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Mar 15 23:21:30 2010 -0700
+
+ Replace hardcoded NAMELEN of 14 for ancient SysV with MAXNAMELEN
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit af916ebc97a3bd6208f1376e52a4310099b48622
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Mar 15 18:12:05 2010 -0700
+
+ echo_passwd should key off PAM no-echo state, not prompt position
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit dd9dc06055e16cd72ff34c2caea22a6627803fa5
+Author: Georgy A. Shepelev <gerik@super-komputer6-44.ultra>
+Date: Wed Dec 9 09:34:02 2009 +0300
+
+ xdm: add documentation of the "EchoPasswd" option to the man page
+
+ Signed-off-by: Georgy A. Shepelev <shepelev.georgy@googlemail.com>
+
+commit 7437298deab265b7669043d4a470a684201f5f3c
+Author: Georgy A. Shepelev <gerik@k24a.ulsu.ru>
+Date: Wed Dec 9 12:18:50 2009 +0300
+
+ Adding an option to show stars instead of the password itself.
+
+ The behaviour can be controlled via 'xlogin*echoPasswd' option
+ in Xresource file. The default option value is 'false'.
+
+ Signed-off-by: Georgy A. Shepelev <shepelev.georgy@googlemail.com>
+ Tested-by: Georgy A. Shepelev <shepelev.georgy@googlemail.com>
+
+ [Reformatted to match existing code style by Alan Coopersmith]
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Reply to: