xorg-server: Changes to 'ubuntu'
debian/changelog | 11 ++
debian/patches/100_rethrow_signals.patch | 119 ++++++++++++++++---------------
debian/patches/series | 2
3 files changed, 77 insertions(+), 55 deletions(-)
New commits:
commit 7d65b7d399f5902cb3a3153b43dd8f3e627b7d08
Author: Bryce Harrington <bryce@bryceharrington.org>
Date: Wed Feb 3 17:46:05 2010 -0800
Fix from martin to get signal handling code to stop crashing during
signal handling. exit(1) does need to be called after the signal is
re-raised.
diff --git a/debian/changelog b/debian/changelog
index 7ed940e..ba13427 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,14 @@
+xorg-server (2:1.7.3.902-1ubuntu10) lucid; urgency=low
+
+ * 100_rethrow_signals.patch: Fix SigAbortServer to cleanly exit(1) on a
+ non-signal crash, as the original upstream code does. Not exiting leads to
+ continuing back into the code which threw the error, which eventually
+ leads to writing into the already closed log file and other operations
+ which cause segfaults.
+ * Re-enable 100_rethrow_signals.patch. Hello apport.
+
+ -- Martin Pitt <martin.pitt@ubuntu.com> Wed, 03 Feb 2010 17:29:53 -0800
+
xorg-server (2:1.7.3.902-1ubuntu9) lucid; urgency=low
* Fully disable 100_rethrow_signals.patch as it seems to still cause
diff --git a/debian/patches/100_rethrow_signals.patch b/debian/patches/100_rethrow_signals.patch
index 97545e5..809d459 100644
--- a/debian/patches/100_rethrow_signals.patch
+++ b/debian/patches/100_rethrow_signals.patch
@@ -1,7 +1,8 @@
-diff -Nurp xorg-server-ubuntu-git-patched/hw/dmx/dmxinit.c xorg-server-ubuntu-git-working/hw/dmx/dmxinit.c
---- xorg-server-ubuntu-git-patched/hw/dmx/dmxinit.c 2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/dmx/dmxinit.c 2009-12-15 17:25:56.000000000 -0800
-@@ -834,7 +834,7 @@ static void dmxSetDefaultFontPath(char *
+Index: xorg-server-1.7.3.902/hw/dmx/dmxinit.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/dmx/dmxinit.c 2009-12-25 15:28:41.000000000 -0800
++++ xorg-server-1.7.3.902/hw/dmx/dmxinit.c 2010-02-03 17:29:02.000000000 -0800
+@@ -834,7 +834,7 @@
/** This function is called in Xserver/os/utils.c from \a AbortServer().
* We must ensure that backend and console state is restored in the
* event the server shutdown wasn't clean. */
@@ -10,7 +11,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/dmx/dmxinit.c xorg-server-ubuntu-gi
{
int i;
-@@ -846,6 +846,11 @@ void AbortDDX(void)
+@@ -846,6 +846,11 @@
}
}
@@ -22,10 +23,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/dmx/dmxinit.c xorg-server-ubuntu-gi
/** This function is called in Xserver/dix/main.c from \a main() when
* dispatchException & DE_TERMINATE (which is the only way to exit the
* main loop without an interruption. */
-diff -Nurp xorg-server-ubuntu-git-patched/hw/kdrive/src/kdrive.c xorg-server-ubuntu-git-working/hw/kdrive/src/kdrive.c
---- xorg-server-ubuntu-git-patched/hw/kdrive/src/kdrive.c 2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/kdrive/src/kdrive.c 2009-12-15 17:30:49.000000000 -0800
-@@ -322,7 +322,7 @@ KdProcessSwitch (void)
+Index: xorg-server-1.7.3.902/hw/kdrive/src/kdrive.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/kdrive/src/kdrive.c 2009-10-27 23:56:21.000000000 -0700
++++ xorg-server-1.7.3.902/hw/kdrive/src/kdrive.c 2010-02-03 17:29:02.000000000 -0800
+@@ -322,7 +322,7 @@
}
void
@@ -34,7 +36,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/kdrive/src/kdrive.c xorg-server-ubu
{
KdDisableScreens ();
if (kdOsFuncs)
-@@ -339,6 +339,12 @@ AbortDDX(void)
+@@ -339,6 +339,12 @@
}
void
@@ -47,10 +49,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/kdrive/src/kdrive.c xorg-server-ubu
ddxGiveUp (void)
{
AbortDDX ();
-diff -Nurp xorg-server-ubuntu-git-patched/hw/vfb/InitOutput.c xorg-server-ubuntu-git-working/hw/vfb/InitOutput.c
---- xorg-server-ubuntu-git-patched/hw/vfb/InitOutput.c 2009-12-15 11:52:53.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/vfb/InitOutput.c 2009-12-15 16:25:37.000000000 -0800
-@@ -214,11 +214,17 @@ ddxGiveUp(void)
+Index: xorg-server-1.7.3.902/hw/vfb/InitOutput.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/vfb/InitOutput.c 2009-10-27 23:56:21.000000000 -0700
++++ xorg-server-1.7.3.902/hw/vfb/InitOutput.c 2010-02-03 17:29:02.000000000 -0800
+@@ -214,11 +214,17 @@
}
void
@@ -69,10 +72,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/vfb/InitOutput.c xorg-server-ubuntu
#ifdef __APPLE__
void
DarwinHandleGUI(int argc, char *argv[])
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Events.c xorg-server-ubuntu-git-working/hw/xfree86/common/xf86Events.c
---- xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Events.c 2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xfree86/common/xf86Events.c 2009-12-15 14:25:32.000000000 -0800
-@@ -355,6 +355,8 @@ xf86InterceptSigIll(void (*sigillhandler
+Index: xorg-server-1.7.3.902/hw/xfree86/common/xf86Events.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xfree86/common/xf86Events.c 2009-11-29 21:42:31.000000000 -0800
++++ xorg-server-1.7.3.902/hw/xfree86/common/xf86Events.c 2010-02-03 17:29:02.000000000 -0800
+@@ -355,6 +355,8 @@
int
xf86SigWrapper(int signo)
{
@@ -81,10 +85,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Events.c xorg-se
if ((signo == SIGILL) && xf86SigIllHandler) {
(*xf86SigIllHandler)();
return 0; /* continue */
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c xorg-server-ubuntu-git-working/hw/xfree86/common/xf86Init.c
---- xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c 2009-12-15 11:53:14.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xfree86/common/xf86Init.c 2009-12-15 11:54:07.000000000 -0800
-@@ -1188,14 +1188,17 @@ OsVendorInit(void)
+Index: xorg-server-1.7.3.902/hw/xfree86/common/xf86Init.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xfree86/common/xf86Init.c 2009-12-25 15:28:41.000000000 -0800
++++ xorg-server-1.7.3.902/hw/xfree86/common/xf86Init.c 2010-02-03 17:29:02.000000000 -0800
+@@ -1174,14 +1174,17 @@
}
/*
@@ -104,7 +109,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c xorg-serv
{
int i;
-@@ -1221,24 +1224,45 @@ ddxGiveUp(void)
+@@ -1207,24 +1210,45 @@
xf86CloseConsole();
@@ -154,7 +159,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c xorg-serv
{
int i;
-@@ -1269,7 +1295,20 @@ AbortDDX(void)
+@@ -1255,7 +1279,20 @@
* This is needed for an abnormal server exit, since the normal exit stuff
* MUST also be performed (i.e. the vt must be left in a defined state)
*/
@@ -176,10 +181,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xfree86/common/xf86Init.c xorg-serv
}
void
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xnest/Init.c xorg-server-ubuntu-git-working/hw/xnest/Init.c
---- xorg-server-ubuntu-git-patched/hw/xnest/Init.c 2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xnest/Init.c 2009-12-15 17:20:01.000000000 -0800
-@@ -112,12 +112,17 @@ InitInput(int argc, char *argv[])
+Index: xorg-server-1.7.3.902/hw/xnest/Init.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xnest/Init.c 2009-10-27 23:56:22.000000000 -0700
++++ xorg-server-1.7.3.902/hw/xnest/Init.c 2010-02-03 17:29:02.000000000 -0800
+@@ -112,12 +112,17 @@
/*
* DDX - specific abort routine. Called by AbortServer().
*/
@@ -198,10 +204,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xnest/Init.c xorg-server-ubuntu-git
/* Called by GiveUp(). */
void ddxGiveUp(void)
{
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xquartz/darwin.c xorg-server-ubuntu-git-working/hw/xquartz/darwin.c
---- xorg-server-ubuntu-git-patched/hw/xquartz/darwin.c 2009-12-15 11:52:53.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xquartz/darwin.c 2009-12-15 17:31:50.000000000 -0800
-@@ -798,12 +798,12 @@ void ddxGiveUp( void )
+Index: xorg-server-1.7.3.902/hw/xquartz/darwin.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xquartz/darwin.c 2009-10-27 23:56:22.000000000 -0700
++++ xorg-server-1.7.3.902/hw/xquartz/darwin.c 2010-02-03 17:29:02.000000000 -0800
+@@ -798,12 +798,12 @@
/*
@@ -216,7 +223,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xquartz/darwin.c xorg-server-ubuntu
{
ErrorF( " AbortDDX\n" );
/*
-@@ -813,6 +813,11 @@ void AbortDDX( void )
+@@ -813,6 +813,11 @@
ddxGiveUp();
}
@@ -228,10 +235,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xquartz/darwin.c xorg-server-ubuntu
#include "mivalidate.h" // for union _Validate used by windowstr.h
#include "windowstr.h" // for struct _Window
#include "scrnintstr.h" // for struct _Screen
-diff -Nurp xorg-server-ubuntu-git-patched/hw/xwin/InitOutput.c xorg-server-ubuntu-git-working/hw/xwin/InitOutput.c
---- xorg-server-ubuntu-git-patched/hw/xwin/InitOutput.c 2009-12-15 11:52:54.000000000 -0800
-+++ xorg-server-ubuntu-git-working/hw/xwin/InitOutput.c 2009-12-15 17:32:36.000000000 -0800
-@@ -283,7 +283,7 @@ ddxGiveUp (void)
+Index: xorg-server-1.7.3.902/hw/xwin/InitOutput.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/hw/xwin/InitOutput.c 2009-12-25 15:28:42.000000000 -0800
++++ xorg-server-1.7.3.902/hw/xwin/InitOutput.c 2010-02-03 17:29:02.000000000 -0800
+@@ -283,7 +283,7 @@
/* See Porting Layer Definition - p. 57 */
void
@@ -240,7 +248,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xwin/InitOutput.c xorg-server-ubunt
{
#if CYGDEBUG
winDebug ("AbortDDX\n");
-@@ -291,6 +291,12 @@ AbortDDX (void)
+@@ -291,6 +291,12 @@
ddxGiveUp ();
}
@@ -253,10 +261,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/hw/xwin/InitOutput.c xorg-server-ubunt
#ifdef __CYGWIN__
/* hasmntopt is currently not implemented for cygwin */
static const char *winCheckMntOpt(const struct mntent *mnt, const char *opt)
-diff -Nurp xorg-server-ubuntu-git-patched/include/os.h xorg-server-ubuntu-git-working/include/os.h
---- xorg-server-ubuntu-git-patched/include/os.h 2009-12-15 11:52:53.000000000 -0800
-+++ xorg-server-ubuntu-git-working/include/os.h 2009-12-15 11:54:07.000000000 -0800
-@@ -434,7 +434,9 @@ typedef struct {
+Index: xorg-server-1.7.3.902/include/os.h
+===================================================================
+--- xorg-server-1.7.3.902.orig/include/os.h 2009-12-25 15:28:42.000000000 -0800
++++ xorg-server-1.7.3.902/include/os.h 2010-02-03 17:29:02.000000000 -0800
+@@ -434,7 +434,9 @@
/* stuff for FlushCallback */
extern _X_EXPORT CallbackListPtr FlushCallback;
@@ -266,10 +275,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/include/os.h xorg-server-ubuntu-git-wo
extern _X_EXPORT void ddxGiveUp(void);
extern _X_EXPORT int TimeSinceLastInputEvent(void);
-diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-working/os/log.c
---- xorg-server-ubuntu-git-patched/os/log.c 2009-12-15 11:53:14.000000000 -0800
-+++ xorg-server-ubuntu-git-working/os/log.c 2009-12-15 14:21:41.000000000 -0800
-@@ -413,11 +413,12 @@ LogMessage(MessageType type, const char
+Index: xorg-server-1.7.3.902/os/log.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/os/log.c 2009-12-25 15:28:42.000000000 -0800
++++ xorg-server-1.7.3.902/os/log.c 2010-02-03 17:29:30.000000000 -0800
+@@ -389,11 +389,12 @@
}
#ifdef __GNUC__
@@ -283,7 +293,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-workin
{
#ifdef XF86BIGFONT
XF86BigfontCleanup();
-@@ -425,11 +426,21 @@ AbortServer(void)
+@@ -401,11 +402,21 @@
CloseWellKnownConnections();
OsCleanup(TRUE);
CloseDownDevices();
@@ -298,8 +308,8 @@ diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-workin
+ raise(signo);
+ else
+ abort();
-+ }
-+ /* exit (1); */
++ } else
++ exit (1);
+}
+
+void
@@ -309,7 +319,7 @@ diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-workin
}
#define AUDIT_PREFIX "AUDIT: %s: %ld: "
-@@ -532,6 +543,27 @@ VAuditF(const char *f, va_list args)
+@@ -508,6 +519,27 @@
}
void
@@ -337,10 +347,11 @@ diff -Nurp xorg-server-ubuntu-git-patched/os/log.c xorg-server-ubuntu-git-workin
FatalError(const char *f, ...)
{
va_list args;
-diff -Nurp xorg-server-ubuntu-git-patched/os/osinit.c xorg-server-ubuntu-git-working/os/osinit.c
---- xorg-server-ubuntu-git-patched/os/osinit.c 2009-12-15 11:52:56.000000000 -0800
-+++ xorg-server-ubuntu-git-working/os/osinit.c 2009-12-15 14:28:37.000000000 -0800
-@@ -148,13 +148,13 @@ OsSigHandler(int signo)
+Index: xorg-server-1.7.3.902/os/osinit.c
+===================================================================
+--- xorg-server-1.7.3.902.orig/os/osinit.c 2009-10-27 23:56:24.000000000 -0700
++++ xorg-server-1.7.3.902/os/osinit.c 2010-02-03 17:29:02.000000000 -0800
+@@ -148,13 +148,13 @@
case SIGBUS:
case SIGILL:
case SIGFPE:
diff --git a/debian/patches/series b/debian/patches/series
index dbb7ec9..625d6ac 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -11,7 +11,7 @@
13-configure-config-udev-defaults-to-off-for-now.diff
14-config-add-example-udev-rules.diff
15-config-udev-look-for-xkb-rules-model-layout-variant-.diff
-#100_rethrow_signals.patch
+100_rethrow_signals.patch
101_nv-crash-fix.diff
#104_nvidia_autodetect.patch
#105_fglrx_autodetect.patch
Reply to: