[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: