debian/patches/debian.diff | 80 ++------------------------- debian/patches/series | 5 + debian/patches/storepid_rewrite.diff | 31 +++++----- debian/patches/support_logfile_rotation.diff | 43 +++++--------- debian/rules | 2 5 files changed, 42 insertions(+), 119 deletions(-)
New commits: commit 9063478dcdd0fd8e0a589748fa7c208124f05654 Author: Julien Cristau <[email protected]> Date: Sun Dec 6 22:38:30 2009 +0100 Some progress towards updating the patch stack - debian.diff: upstream applied Red Hat's patch to make authdir configurable, use the new configure option and drop the part of this patch that dealt with that - storepid_rewrite.diff: update - support_logfile_rotation.diff: update - disable 20_xdm_log_timestamp.diff and 21_xdm_log_append.diff for now, they need lots of changes diff --git a/debian/patches/debian.diff b/debian/patches/debian.diff index e01dd40..d2e6649 100644 --- a/debian/patches/debian.diff +++ b/debian/patches/debian.diff @@ -5,8 +5,6 @@ Ported parts of 905_debian_xdm.diff. Some changes are now done through configure flags -* Use different paths for the auth directory. This is just an effort to move - in the direction of the FHS. * config/Xservers.ws.cpp: - add comments to help local admins - run local server with TCP listening turned off for security @@ -22,7 +20,7 @@ Index: xdm/config/Makefile.am =================================================================== --- xdm.orig/config/Makefile.am +++ xdm/config/Makefile.am -@@ -55,7 +55,7 @@ +@@ -56,7 +56,7 @@ -DXDMPIDDIR="$(XDMPIDDIR)" -DXDMCONFIGDIR="$(XDMCONFIGDIR)" \ -DXDMSCRIPTDIR="$(XDMSCRIPTDIR)" -DSU="$(SU)" \ -DCHOOSERPATH="$(XDMLIBDIR)/chooser" $(XPMDEFINES) \ @@ -30,12 +28,12 @@ Index: xdm/config/Makefile.am + -DSHELL_CMD="$(SHELL_CMD)" $(MKTEMP_DEFINES) -DXDMAUTHDIR="$(XDMAUTHDIR)" Xservers.ws: $(srcdir)/Xservers.ws.cpp - $(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $(srcdir)/Xservers.ws.cpp | $(CPP_SED_MAGIC) > $@ + $(cpp_verbose)$(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $(srcdir)/Xservers.ws.cpp | $(CPP_SED_MAGIC) > $@ Index: xdm/config/Xservers.ws.cpp =================================================================== --- xdm.orig/config/Xservers.ws.cpp +++ xdm/config/Xservers.ws.cpp -@@ -10,4 +10,26 @@ +@@ -9,4 +9,26 @@ XCOMM look like: XCOMM XTerminalName:0 foreign XCOMM @@ -67,9 +65,9 @@ Index: xdm/config/Xsession.cpp =================================================================== --- xdm.orig/config/Xsession.cpp +++ xdm/config/Xsession.cpp -@@ -4,84 +4,5 @@ - XCOMM $Xorg: Xsession,v 1.4 2000/08/17 19:54:17 cpqbld Exp $ - XCOMM $XFree86: xc/programs/xdm/config/Xsession,v 1.2 1998/01/11 03:48:32 dawes Exp $ +@@ -1,84 +1,5 @@ + XCOMM!SHELL_CMD + XCOMM -XCOMM redirect errors to a file in user's home directory if we can - @@ -158,11 +156,7 @@ Index: xdm/config/xdm-config.cpp =================================================================== --- xdm.orig/config/xdm-config.cpp +++ xdm/config/xdm-config.cpp -@@ -17,22 +17,22 @@ - DisplayManager.keyFile: XDMCONFIGDIR/xdm-keys - DisplayManager.servers: XDMCONFIGDIR/Xservers - DisplayManager.accessFile: XDMCONFIGDIR/Xaccess -+DisplayManager.authDir: XDMAUTHDIR +@@ -18,19 +18,18 @@ DisplayManager*resources: XDMCONFIGDIR/Xresources DisplayManager.willing: SU nobody -c XDMSCRIPTDIR/Xwilling ! All displays should use authorization, but we cannot be sure @@ -187,63 +181,3 @@ Index: xdm/config/xdm-config.cpp #ifdef XPM DisplayManager*loginmoveInterval: 10 #endif /* XPM */ -Index: xdm/configure.ac -=================================================================== ---- xdm.orig/configure.ac -+++ xdm/configure.ac -@@ -221,6 +221,12 @@ - [XDMSCRIPTDIR="$withval"], [XDMSCRIPTDIR="${XDMLIBDIR}"]) - AC_SUBST(XDMSCRIPTDIR) - -+AC_ARG_WITH(xdmauthdir, -+ AC_HELP_STRING([--with-xdmauthdir=<pathname>], -+ [specify a directory where authentication cookie files should be stored (default is same as xdmconfigdir)]), -+ [XDMAUTHDIR="$withval"], [XDMAUTHDIR="${XDMCONFIGDIR}"]) -+AC_SUBST(XDMAUTHDIR) -+ - AC_ARG_WITH(logdir, - AC_HELP_STRING([--with-logdir=<pathname>], - [specify directory for xdm log files (default=/var/log)]), -@@ -526,7 +532,7 @@ - - # -DDEF_AUTH_DIR="$(XDMDIR)" - --AC_DEFINE_DIR(DEF_AUTH_DIR, XDMCONFIGDIR, -+AC_DEFINE_DIR(DEF_AUTH_DIR, XDMAUTHDIR, - [Define to pathname where authentication cookie files should be stored]) - - # -DDEF_GREETER_LIB="$(XDMDIR)/libXdmGreet.so" -Index: xdm/xdm.man.cpp -=================================================================== ---- xdm.orig/xdm.man.cpp -+++ xdm/xdm.man.cpp -@@ -306,7 +306,7 @@ - This names a directory under which - .I xdm - stores authorization files while initializing the session. The --default value is \fI XDMDIR.\fP -+default value is \fI XDMAUTHDIR.\fP - Can be overridden for specific displays by - DisplayManager.\fIDISPLAY\fP.authFile. - .IP \fBDisplayManager.autoRescan\fP -@@ -1464,7 +1464,7 @@ - .I BINDIR/xterm - the default session program and failsafe client - .TP 20 --.I XDMDIR/A<display>\-<suffix> -+.I XDMAUTHDIR/authdir/authfiles/A<display>\-<suffix> - the default place for authorization files - .TP 20 - .I /tmp/K5C<display> -Index: xdm/Makefile.am -=================================================================== ---- xdm.orig/Makefile.am -+++ xdm/Makefile.am -@@ -116,6 +116,7 @@ - -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \ - -DCHOOSERPATH=$(xdmlibdir)/chooser -DXDMLOGDIR=$(XDMLOGDIR) \ - -DXDMDIR=$(XDMCONFIGDIR) -DBINDIR=$(bindir) -DXDMPIDDIR=$(XDMPIDDIR) \ -+ -DXDMAUTHDIR=$(XDMAUTHDIR) \ - -D__appmansuffix__=$(APP_MAN_SUFFIX) \ - -D__filemansuffix__=$(FILE_MAN_SUFFIX) \ - -D__libmansuffix__=$(LIB_MAN_SUFFIX) \ diff --git a/debian/patches/series b/debian/patches/series index 59a6555..9d7f63e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -8,8 +8,9 @@ # not sure this one is still relevant now we use mkstemp 15_xdm_openfiles.diff -20_xdm_log_timestamp.diff -21_xdm_log_append.diff +# painful merge +#XXX 20_xdm_log_timestamp.diff +#XXX 21_xdm_log_append.diff 90_xdm_write_dummy_auth.diff # depends on patch 90 diff --git a/debian/patches/storepid_rewrite.diff b/debian/patches/storepid_rewrite.diff index 4e52508..d216756 100644 --- a/debian/patches/storepid_rewrite.diff +++ b/debian/patches/storepid_rewrite.diff @@ -18,7 +18,7 @@ Index: xdm/dm.c =================================================================== --- xdm.orig/dm.c +++ xdm/dm.c -@@ -109,7 +109,7 @@ +@@ -106,7 +106,7 @@ static SIGVAL ChildNotify (int n); #endif @@ -27,7 +27,7 @@ Index: xdm/dm.c static void RemovePid (void); static pid_t parent_pid = -1; /* PID of parent xdm process */ -@@ -910,64 +910,64 @@ +@@ -902,65 +902,64 @@ static int pidFd; static FILE *pidFilePtr; @@ -48,7 +48,12 @@ Index: xdm/dm.c - 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; @@ -57,16 +62,11 @@ Index: xdm/dm.c - oldpid = -1; - fseek (pidFilePtr, 0l, 0); - if (lockPidFile) -+ 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) - { +- { -#ifdef F_SETLK --#ifndef SEEK_SET --#define SEEK_SET 0 --#endif +-# ifndef SEEK_SET +-# define SEEK_SET 0 +-# endif - struct flock lock_data; - lock_data.l_type = F_WRLCK; - lock_data.l_whence = SEEK_SET; @@ -95,7 +95,7 @@ Index: xdm/dm.c + return oldpid; } -#else --#ifdef LOCK_EX +-# ifdef LOCK_EX - if (flock (pidFd, LOCK_EX|LOCK_NB) == -1) - { - if (errno == EWOULDBLOCK) @@ -103,7 +103,7 @@ Index: xdm/dm.c else - return -1; - } --#else +-# else - if (lockf (pidFd, F_TLOCK, 0) == -1) { - if (errno == EACCES) @@ -114,9 +114,10 @@ Index: xdm/dm.c + "%s\n", pidFile, _SysErrorMsg (errno)); + return -1; } --#endif +-# endif -#endif } +- ftruncate(pidFd, 0); - fprintf (pidFilePtr, "%5ld\n", (long)getpid ()); + if ((pidFilePtr = fdopen (pidFd, "w")) == NULL) + { diff --git a/debian/patches/support_logfile_rotation.diff b/debian/patches/support_logfile_rotation.diff index ea54e98..160f290 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 -@@ -83,8 +83,10 @@ +@@ -80,8 +80,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); -@@ -93,6 +95,7 @@ +@@ -90,6 +92,7 @@ static void TerminateProcess (pid_t pid, int signal); volatile int Rescan; @@ -33,15 +33,15 @@ Index: xdm/dm.c static long ServersModTime, ConfigModTime, AccessFileModTime; int nofork_session = 0; -@@ -202,6 +205,7 @@ +@@ -199,6 +202,7 @@ AddOtherEntropy(); #endif (void) Signal (SIGHUP, RescanNotify); -+ (void) Signal (SIGUSR2, ReopenLogFileNotify); ++ (void) Signal (SIGUSR2, ReopenLogFileNotify); #ifndef UNRELIABLE_SIGNALS (void) Signal (SIGCHLD, ChildNotify); #endif -@@ -212,6 +216,11 @@ +@@ -209,6 +213,11 @@ #endif AnyDisplaysLeft ()) { @@ -53,15 +53,15 @@ Index: xdm/dm.c if (Rescan) { RescanServers (); -@@ -236,6 +245,7 @@ +@@ -233,6 +242,7 @@ int olderrno = errno; Debug ("Caught SIGHUP\n"); -+ Reopen = 1; ++ Reopen = 1; Rescan = 1; #ifdef SIGNALS_RESET_WHEN_CAUGHT (void) Signal (SIGHUP, RescanNotify); -@@ -243,6 +253,26 @@ +@@ -240,6 +250,26 @@ errno = olderrno; } @@ -88,7 +88,7 @@ Index: xdm/dm.c static void ScanServers (void) { -@@ -310,6 +340,14 @@ +@@ -307,6 +337,14 @@ } static void @@ -107,33 +107,20 @@ Index: xdm/dm_error.h =================================================================== --- xdm.orig/dm_error.h +++ xdm/dm_error.h -@@ -44,6 +44,8 @@ - # define GCC_PRINTFLIKE(fmt,var) /*nothing*/ - #endif +@@ -40,6 +40,8 @@ + # define GCC_PRINTFLIKE(fmt,var) /*nothing*/ + # endif +#define WRITES(fd, buf) write(fd, buf, strlen(buf)) + - extern void Debug (char * fmt, ...) GCC_PRINTFLIKE(1,2); + extern void Debug (const char * fmt, ...) GCC_PRINTFLIKE(1,2); extern void InitErrorLog (void); - extern void LogError (char * fmt, ...) GCC_PRINTFLIKE(1,2); -Index: xdm/error.c -=================================================================== ---- xdm.orig/error.c -+++ xdm/error.c -@@ -49,8 +49,6 @@ - #include "dm.h" - #include "dm_error.h" - --#define WRITES(fd, buf) write(fd, buf, strlen(buf)) -- - void - LogInfo(char * fmt, ...) - { + extern void LogAppend (const char * fmt, ...) GCC_PRINTFLIKE(1,2); Index: xdm/xdm.man.cpp =================================================================== --- xdm.orig/xdm.man.cpp +++ xdm/xdm.man.cpp -@@ -1411,6 +1411,37 @@ +@@ -1403,6 +1403,37 @@ multiple window systems on the same hardware, you'll probably be more interested in .I xinit. diff --git a/debian/rules b/debian/rules index 0b2c13e..d145721 100755 --- a/debian/rules +++ b/debian/rules @@ -16,7 +16,7 @@ include debian/xsfbs/xsfbs.mk confflags += --with-pam \ --with-xdmconfigdir=/etc/X11/xdm \ --with-xdmscriptdir=\$${xdmconfigdir} \ - --with-xdmauthdir=/var/lib/xdm \ + --with-authdir=/var/lib/xdm \ --with-default-vt=vt7 \ --with-pixmapdir=/usr/share/X11/xdm/pixmaps \ --with-color-pixmap=debian.xpm \ -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

