Hello community, here is the log from the commit of package xorg-x11-server for openSUSE:Factory checked in at 2014-06-02 07:04:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/xorg-x11-server (Old) and /work/SRC/openSUSE:Factory/.xorg-x11-server.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "xorg-x11-server" Changes: -------- --- /work/SRC/openSUSE:Factory/xorg-x11-server/xorg-x11-server.changes 2014-05-16 07:29:57.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.xorg-x11-server.new/xorg-x11-server.changes 2014-06-02 07:04:29.000000000 +0200 @@ -1,0 +2,35 @@ +Wed May 28 11:00:49 UTC 2014 - [email protected] + +- %post: + * move SaX2 generated xorg.conf file to xorg.conf.sle11 + Only in very rare cases a static X configuration is still + required on sle12. And, in some cases the migration from a + static sle11 X configuration to a static sle12 X configuration + is not possible at all, e.g. some video and input drivers + are no longer available on sle12. In short, trying to migrate + will result in more harm than benefit. (bnc#877315) + * remove dangling link /etc/X11/XF86Config (bnc#879360, comment#15) + * prevent %postun of NVIDIA/fglrx driver packages from + restoring xorg.conf backup or running sax2 as fallback + to create a new xorg.conf (bcn#877315) + +------------------------------------------------------------------- +Sat May 24 09:16:08 UTC 2014 - [email protected] + +- Fix crash in abnormal condition (bnc#879666, bnc#879489): + * u_connection-avoid-crash-when-CloseWellKnownConnections-gets-called-twice.patch + Fix a crash when CloseWellKnownConnections() gets called twice. + This can happen if FatalError() is called in the shutdown procedure. + * u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch + Don't call FatalError() on errors in console ioctls when in shutdown. + +------------------------------------------------------------------- +Mon May 19 10:52:32 UTC 2014 - [email protected] + +- Added n_xserver-optimus-autoconfig-hack.patch for FATE#316410. This + is a little hack to make the X server autoconfigure the output sinks + for Optimus laptops. This lets them automatically use outputs that + are only wired to a certain GPU. To be removed once our desktop + tools can configure this easily. + +------------------------------------------------------------------- New: ---- n_xserver-optimus-autoconfig-hack.patch u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch u_connection-avoid-crash-when-CloseWellKnownConnections-gets-called-twice.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-server.spec ++++++ --- /var/tmp/diff_new_pack.azV3ZV/_old 2014-06-02 07:04:30.000000000 +0200 +++ /var/tmp/diff_new_pack.azV3ZV/_new 2014-06-02 07:04:30.000000000 +0200 @@ -150,10 +150,13 @@ Patch106: u_exa-only-draw-valid-trapezoids.patch # PATCH-FIX-UPSTREAM u_arch-Fix-image-and-bitmap-byte-order-for-ppc64le.patch -- sent to ML 2014-02-24 Patch107: u_arch-Fix-image-and-bitmap-byte-order-for-ppc64le.patch +Patch110: u_connection-avoid-crash-when-CloseWellKnownConnections-gets-called-twice.patch +Patch111: u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch Patch162: b_cache-xkbcomp-output-for-fast-start-up.patch Patch211: b_0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch Patch222: b_sync-fix.patch +Patch223: n_xserver-optimus-autoconfig-hack.patch %description This package contains the X.Org Server. @@ -224,6 +227,8 @@ %patch105 -p1 %patch106 -p1 %patch107 -p1 +%patch110 -p1 +%patch111 -p1 ### disabled for now #%patch162 -p1 @@ -232,6 +237,8 @@ ### patch222 might not be applicable anymore #%patch222 -p1 +%patch223 -p1 + %build autoreconf -fi %configure CFLAGS="%{optflags} -fno-strict-aliasing" \ @@ -333,22 +340,26 @@ %post %ifnarch s390 s390x %{fillup_only -an displaymanager} -if [ -f etc/X11/xorg.conf ]; then - # Document how to restore previous input driver behaviour in xorg.conf files created - # on openSUSE <= 11.1 - if ! grep -q "will be disabled unless 'Option \"AutoAddDevices\" \"off\"'" etc/X11/xorg.conf; then - if ! grep -q "\"AutoAddDevices\" \"off\"" etc/X11/xorg.conf; then - sed -i ' -/Section "ServerFlags"/{ -h -g -a\ - # Uncomment the following option to reenable kbd/mouse driver input sections. \ - # Otherwise evdev driver is used. \ - #Option "AutoAddDevices" "off" -} -' etc/X11/xorg.conf - fi +# Move SaX2 generated xorg.conf file to xorg.conf.sle11 +# +# Only in very rare cases a static X configuration is still +# required on sle12. And, in some cases the migration from a +# static sle11 X configuration to a static sle12 X configuration +# is not possible at all, e.g. some video and input drivers +# are no longer available on sle12. In short, trying to migrate +# will result in more harm than benefit. +if [ -f etc/X11/xorg.conf -a ! -f etc/X11/xorg.conf.sle11 ]; then + echo "xorg.conf exists and xorg.conf.sle11 does not" + if grep -q "SaX generated X11 config file" etc/X11/xorg.conf; then + echo "move SaX generated xorg.conf to xorg.conf.sle11" + mv etc/X11/xorg.conf{,.sle11} + # remove dangling link (bnc#879360, comment#15) + rm -f etc/X11/XF86Config + # prevent %postun of NVIDIA/fglrx driver packages from restoring xorg.conf + # backup or running sax2 as fallback to create a new xorg.conf (bcn#877315) + rm -f etc/X11/xorg.conf.nvidia-post \ + etc/X11/xorg.conf.fglrx-post + chmod -x usr/sbin/sax2 fi fi %endif ++++++ n_xserver-optimus-autoconfig-hack.patch ++++++ >From 3216e0c618cc330f053ed36a749c8d8cfeb87a2f Mon Sep 17 00:00:00 2001 From: Dave Airlie <[email protected]> Date: Fri, 17 Aug 2012 09:49:24 +1000 Subject: [PATCH] autobind GPUs to the screen, (v3) this is racy and really not what we want for hotplug going forward, but until DE support is in GNOME its probably for the best. v2: fix if config or slave config is NULL v3: fix multi useful slaves DO NOT UPSTREAM. Signed-off-by: Dave Airlie <[email protected]> --- hw/xfree86/common/xf86Init.c | 12 ++++++++++++ hw/xfree86/common/xf86platformBus.c | 3 +++ hw/xfree86/modes/xf86Crtc.c | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 47 insertions(+) diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 1e95061..c58fd2b 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -361,6 +361,16 @@ xf86CreateRootWindow(WindowPtr pWin) return ret; } +extern void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master); +static void +xf86AutoConfigOutputDevices(void) +{ + int i; + + for (i = 0; i < xf86NumGPUScreens; i++) + xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]); +} + static void InstallSignalHandlers(void) { @@ -931,6 +941,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) for (i = 0; i < xf86NumGPUScreens; i++) AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); + xf86AutoConfigOutputDevices(); + xf86VGAarbiterWrapFunctions(); if (sigio_blocked) OsReleaseSIGIO(); diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c index 33b2b7d..be3bdd9 100644 --- a/hw/xfree86/common/xf86platformBus.c +++ b/hw/xfree86/common/xf86platformBus.c @@ -393,6 +393,8 @@ xf86platformProbeDev(DriverPtr drvp) return foundScreen; } +extern void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master); + int xf86platformAddDevice(int index) { @@ -465,6 +467,7 @@ xf86platformAddDevice(int index) } /* attach unbound to 0 protocol screen */ AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); + xf86AutoConfigOutputDevice(xf86GPUScreens[i], xf86Screens[0]); RRResourcesChanged(xf86Screens[0]->pScreen); RRTellChanged(xf86Screens[0]->pScreen); diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index a441fd1..c1a56a5 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -3383,3 +3383,35 @@ xf86DetachAllCrtc(ScrnInfoPtr scrn) crtc->x = crtc->y = 0; } } + + +void xf86AutoConfigOutputDevice(ScrnInfoPtr pScrn, ScrnInfoPtr master) +{ + RRProviderPtr master_provider; + xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(master); + xf86CrtcConfigPtr slave_config = XF86_CRTC_CONFIG_PTR(pScrn); + Bool unbound = FALSE; + + if (!config || !slave_config) + return; + + master_provider = config->randr_provider; + + if ((master->capabilities & RR_Capability_SinkOffload) && + pScrn->capabilities & RR_Capability_SourceOffload) { + /* source offload */ + + DetachUnboundGPU(pScrn->pScreen); + unbound = TRUE; + AttachOffloadGPU(master->pScreen, pScrn->pScreen); + slave_config->randr_provider->offload_sink = master_provider; + } + if ((master->capabilities & RR_Capability_SourceOutput) && + pScrn->capabilities & RR_Capability_SinkOutput) { + /* sink offload */ + if (!unbound) + DetachUnboundGPU(pScrn->pScreen); + AttachOutputGPU(master->pScreen, pScrn->pScreen); + slave_config->randr_provider->output_source = master_provider; + } +} -- 1.8.4.5 ++++++ u_CloseConsole-Don-t-report-FatalError-when-shutting-down.patch ++++++ From: Egbert Eich <[email protected]> Date: Sat May 24 02:02:32 2014 +0200 Subject: [PATCH]CloseConsole: Don't report FatalError() when shutting down Patch-mainline: to be upstreamed Git-commit: 4edf1fd15b9d2746f1f83165ab45efbe35af8de8 Git-repo: References: bnc#879666, bnc#879489 Signed-off-by: Egbert Eich <[email protected]> When encountering a problem while closing the console, don't report this as a FatalError(). FatalError() will terminate the Xserver - no use calling it when terminating anyway. Since FatalError() will call CloseConsole() we would only come here again. Signed-off-by: Egbert Eich <[email protected]> --- hw/xfree86/os-support/linux/lnx_init.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c index bcb039f..c46bca9 100644 --- a/hw/xfree86/os-support/linux/lnx_init.c +++ b/hw/xfree86/os-support/linux/lnx_init.c @@ -63,17 +63,24 @@ drain_console(int fd, void *closure) } static void -switch_to(int vt, const char *from) +switch_to(int vt, const char *from, Bool fatal) { int ret; SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt)); - if (ret < 0) - FatalError("%s: VT_ACTIVATE failed: %s\n", from, strerror(errno)); - + if (ret < 0) { + if (fatal) + FatalError("%s: VT_ACTIVATE failed: %s\n", from, strerror(errno)); + else + xf86Msg(X_WARNING, "%s: VT_ACTIVATE failed: %s\n", from, strerror(errno)); + } SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt)); - if (ret < 0) - FatalError("%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno)); + if (ret < 0) { + if (fatal) + FatalError("%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno)); + else + xf86Msg(X_WARNING, "%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno)); + } } void @@ -194,7 +201,7 @@ xf86OpenConsole(void) /* * now get the VT. This _must_ succeed, or else fail completely. */ - switch_to(xf86Info.vtno, "xf86OpenConsole"); + switch_to(xf86Info.vtno, "xf86OpenConsole", TRUE); SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT)); if (ret < 0) @@ -255,7 +262,7 @@ xf86OpenConsole(void) else { /* serverGeneration != 1 */ if (!xf86Info.ShareVTs && xf86Info.autoVTSwitch) { /* now get the VT */ - switch_to(xf86Info.vtno, "xf86OpenConsole"); + switch_to(xf86Info.vtno, "xf86OpenConsole", TRUE); } } } @@ -305,7 +312,7 @@ xf86CloseConsole(void) * Perform a switch back to the active VT when we were started */ if (activeVT >= 0) { - switch_to(activeVT, "xf86CloseConsole"); + switch_to(activeVT, "xf86CloseConsole", FALSE); activeVT = -1; } } ++++++ u_connection-avoid-crash-when-CloseWellKnownConnections-gets-called-twice.patch ++++++ From: Egbert Eich <[email protected]> Date: Fri May 23 20:08:29 2014 +0200 Subject: [PATCH]connection: avoid crash when CloseWellKnownConnections() gets called twice Patch-mainline: to be upstreamed Git-commit: 74472c4e8e4c873014554f321ec2086066126297 Git-repo: References: bnc#879666, bnc#879489 Signed-off-by: Egbert Eich <[email protected]> CloseWellKnownConnections() closes all connections and deallocates their data. Thus all entries in ListenTransConns are invalid. To avoid access to those entries set ListenTransCount to 0. This avoids crashes when CloseWellKnownConnections() is called twice for instance when FatalError() is called on Xserver shutdown. Signed-off-by: Egbert Eich <[email protected]> --- os/connection.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/os/connection.c b/os/connection.c index 162e1d9..3c0b62a 100644 --- a/os/connection.c +++ b/os/connection.c @@ -513,6 +513,8 @@ CloseWellKnownConnections(void) for (i = 0; i < ListenTransCount; i++) _XSERVTransClose(ListenTransConns[i]); + + ListenTransCount = 0; } static void -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
