xdm: Changes to 'debian-unstable'
debian/changelog | 1
debian/patches/20_xdm_log_timestamp.diff | 147 +++++++------------------------
debian/patches/21_xdm_log_append.diff | 63 +++++--------
debian/patches/series | 6 -
4 files changed, 63 insertions(+), 154 deletions(-)
New commits:
commit 29c99d381187aa8ee0eaf02914335ad12b198808
Author: Julien Cristau <jcristau@debian.org>
Date: Wed Dec 23 17:05:17 2009 +0100
Update patches 20_xdm_log_timestamp.diff and 21_xdm_log_append.diff.
diff --git a/debian/changelog b/debian/changelog
index 0685131..15150ca 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -5,6 +5,7 @@ xdm (1:1.1.9-1) UNRELEASED; urgency=low
* xdm.postrm: remove /etc/X11/default-display-manager on purge if it exists
and points to xdm. Fixes piuparts failure.
* xdm.prerm uses ps, add Depends on procps.
+ * Update patches 20_xdm_log_timestamp.diff and 21_xdm_log_append.diff.
[ Brice Goglin ]
* New upstream release.
diff --git a/debian/patches/20_xdm_log_timestamp.diff b/debian/patches/20_xdm_log_timestamp.diff
index 9cd1047..f109c5a 100644
--- a/debian/patches/20_xdm_log_timestamp.diff
+++ b/debian/patches/20_xdm_log_timestamp.diff
@@ -1,127 +1,48 @@
-From: Branden Robinson <branden@debian.org>
-Subject: Add timestamping to logging functions, except for LogOutOfMem()
+From 8eb75e620cca2d9c64682942e171a07b00a60749 Mon Sep 17 00:00:00 2001
+From: Julien Cristau <jcristau@debian.org>
+Date: Wed, 23 Dec 2009 16:51:22 +0100
+Subject: [PATCH] Add timestamping to logging functions
+
+Based on patch by Branden Robinson <branden@debian.org>
+---
+ error.c | 20 +++++++++++++++++---
+ 1 files changed, 17 insertions(+), 3 deletions(-)
Index: xdm/error.c
===================================================================
--- xdm.orig/error.c
+++ xdm/error.c
-@@ -34,23 +34,41 @@
- *
- * error.c
- *
-- * Log display manager errors to a file as
-- * we generally do not have a terminal to talk to
-+ * Log display manager errors to a file as we generally do not have a
-+ * terminal to talk to.
-+ *
-+ * Because we have child processes, and chatty things like X servers, we do
-+ * not use syslog().
- */
-
--# include <stdio.h>
--# include <stdarg.h>
-+#include <errno.h>
-+#include <stdio.h>
-+#include <stdarg.h>
-+#include <time.h>
-
--# include "dm.h"
--# include "dm_error.h"
-+#include "dm.h"
-+#include "dm_error.h"
-
- #define WRITES(fd, buf) write(fd, buf, strlen(buf))
-
--void LogInfo(char * fmt, ...)
-+void
-+LogInfo(char * fmt, ...)
- {
- char buf[1024];
-
-- snprintf(buf, sizeof buf, "xdm info (pid %ld): ", (long)getpid());
-+ time_t seconds;
-+ struct tm *timestamp = NULL;
-+ char timebuf[256];
-+
-+ if (time(&seconds) > (time_t) -1)
-+ timestamp = localtime(&seconds);
-+
-+ strcpy(timebuf, "(time unavailable)");
-+
-+ if (timestamp != NULL)
-+ strftime(timebuf, 255, "%c", timestamp);
-+
-+ snprintf(buf, sizeof buf, "%s xdm info (pid %ld): ", timebuf, (long)getpid());
- WRITES(STDERR_FILENO, buf);
- {
- va_list args;
-@@ -61,11 +79,24 @@
- WRITES(STDERR_FILENO, buf);
+@@ -64,9 +64,6 @@
+ va_end(args); \
+ } while(0)
+
+-#define LogHeader(type) \
+- LogAppend("xdm %s (pid %ld): ", type, (long)getpid())
+-
+ /* Append more text to the log without a new header, right after
+ having called LogInfo or LogError */
+ void
+@@ -75,6 +72,23 @@
+ LogVarArgsWrite(fmt);
}
--void LogError (char * fmt, ...)
-+void
-+LogError (char * fmt, ...)
- {
- char buf[1024];
-
-- snprintf (buf, sizeof buf, "xdm error (pid %ld): ", (long)getpid());
++static void
++LogHeader(const char *type) {
+ time_t seconds;
++ size_t rc = 0;
+ struct tm *timestamp = NULL;
+ char timebuf[256];
++ if (time(&seconds) != (time_t) -1)
++ timestamp = localtime(&seconds);
+
-+ if (time(&seconds) > (time_t) -1)
-+ timestamp = localtime(&seconds);
-+
-+ strcpy(timebuf, "(time unavailable)");
-+
-+ if (timestamp != NULL)
-+ strftime(timebuf, 255, "%c", timestamp);
-+
-+ snprintf (buf, sizeof buf, "%s xdm error (pid %ld): ", timebuf, (long)getpid());
- WRITES(STDERR_FILENO, buf);
- {
- va_list args;
-@@ -76,11 +107,24 @@
- WRITES(STDERR_FILENO, buf);
- }
-
--void LogPanic (char * fmt, ...)
-+void
-+LogPanic (char * fmt, ...)
- {
- char buf[1024];
-
-- snprintf (buf, sizeof buf, "xdm panic (pid %ld): ", (long)getpid());
-+ time_t seconds;
-+ struct tm *timestamp = NULL;
-+ char timebuf[256];
-+
-+ if (time(&seconds) > (time_t) -1)
-+ timestamp = localtime(&seconds);
-+
-+ strcpy(timebuf, "(time unavailable)");
++ if (timestamp)
++ rc = strftime(timebuf, 255, "%c", timestamp);
++ if (!rc)
++ strcpy(timebuf, "(time unavailable)");
+
-+ if (timestamp != NULL)
-+ strftime(timebuf, 255, "%c", timestamp);
++ LogAppend("%s xdm %s (pid %ld): ", timebuf, type, (long)getpid());
++}
+
-+ snprintf (buf, sizeof buf, "%s xdm panic (pid %ld): ", timebuf, (long)getpid());
- WRITES(STDERR_FILENO, buf);
- {
- va_list args;
-@@ -92,8 +136,14 @@
- _exit (1);
- }
-
--void LogOutOfMem (char * fmt, ...)
-+void
-+LogOutOfMem (char * fmt, ...)
+ void
+ LogInfo(const char * fmt, ...)
{
-+ /*
-+ * No point messing with allocation of timeval structs and static
-+ * buffers for the timestamp string if we're already out of memory...
-+ */
-+
- fprintf (stderr, "xdm: out of memory in routine ");
- {
- va_list args;
diff --git a/debian/patches/21_xdm_log_append.diff b/debian/patches/21_xdm_log_append.diff
index 5ea022b..78f21fe 100644
--- a/debian/patches/21_xdm_log_append.diff
+++ b/debian/patches/21_xdm_log_append.diff
@@ -1,46 +1,33 @@
-From: Branden Robinson <branden@debian.org>
-Subject: Append to the log file if it already exists
+From: Julien Cristau <jcristau@debian.org>
+Subject: Append to the log file instead of truncating it
+
+Based on patch by Branden Robinson <branden@debian.org>
Index: xdm/error.c
===================================================================
--- xdm.orig/error.c
+++ xdm/error.c
-@@ -168,17 +168,26 @@
- }
- }
+@@ -38,6 +38,7 @@
--void InitErrorLog (void)
-+void
-+InitErrorLog (void)
+ #include <stdio.h>
+ #include <stdarg.h>
++#include <errno.h>
+
+ #include "dm.h"
+ #include "dm_error.h"
+@@ -140,13 +141,13 @@
{
-- int i;
-- if (errorLogFile[0]) {
-- i = creat (errorLogFile, 0666);
-- if (i != -1) {
-- if (i != 2) {
-- dup2 (i, 2);
-- close (i);
-- }
-- } else
-- LogError ("Cannot open errorLogFile %s\n", errorLogFile);
-- }
-+ int fd;
-+
-+ if (errorLogFile[0]) {
-+ /* create the log file if it doesn't already exist */
-+ fd = open (errorLogFile, O_WRONLY|O_CREAT|O_EXCL, 0666);
-+ if (fd == -1)
-+ if (errno == EEXIST)
-+ /* log file already exists; append to it */
-+ fd = open (errorLogFile, O_WRONLY|O_APPEND);
-+ if (fd != -1) {
-+ /* redirect stderr to the log file */
-+ if (fd != 2) {
-+ dup2 (fd, 2);
-+ close (fd);
-+ }
-+ } else
-+ fprintf (stderr, "cannot open log file %s: %s\n", errorLogFile,
-+ _SysErrorMsg (errno));
-+ }
+ int i;
+ if (errorLogFile[0]) {
+- i = creat (errorLogFile, 0666);
++ i = open (errorLogFile, O_WRONLY|O_CREAT|O_APPEND, 0666);
+ if (i != -1) {
+ if (i != STDERR_FILENO) {
+ dup2 (i, STDERR_FILENO);
+ close (i);
+ }
+ } else
+- LogError ("Cannot open errorLogFile %s\n", errorLogFile);
++ LogError ("Cannot open errorLogFile %s: %s\n", errorLogFile, _SysErrorMsg (errno));
+ }
}
diff --git a/debian/patches/series b/debian/patches/series
index 9d7f63e..1927a27 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -8,9 +8,9 @@
# not sure this one is still relevant now we use mkstemp
15_xdm_openfiles.diff
-# painful merge
-#XXX 20_xdm_log_timestamp.diff
-#XXX 21_xdm_log_append.diff
+# should get forwarded upstream
+20_xdm_log_timestamp.diff
+21_xdm_log_append.diff
90_xdm_write_dummy_auth.diff
# depends on patch 90
Reply to: