Hello community,

here is the log from the commit of package xorg-x11-server for openSUSE:Factory 
checked in at 2014-05-05 21:11:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-04-26 19:35:03.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.xorg-x11-server.new/xorg-x11-server.changes     
2014-05-05 21:11:20.000000000 +0200
@@ -1,0 +2,21 @@
+Thu Apr 30 16:43:00 UTC 2014 - [email protected]
+
+- Add new patches to make non-seat0 X servers work properly with
+  non-KMS video drivers:
+  + u_xfree86-allow-fallback-to-PCI-bus-probe-for-non-seat0-seats.patch
+  + u_xfree86-add-new-key-MatchSeat-to-xorg-conf.patch
+  + 
u_xfree86-add-short-description-about-MatchSeat-key-in-xorg-conf-man-page.patch
+
+-------------------------------------------------------------------
+Mon Apr 28 09:02:06 UTC 2014 - [email protected]
+
+- added missing pkgconfig(xf86dgaproto) BuildRequires 
+
+-------------------------------------------------------------------
+Sun Apr 27 23:55:29 UTC 2014 - [email protected]
+
+- N_fix_XWAYLAND_SCANNER_undefined.diff
+  * handle undefined XWAYLAND_SCANNER_RULES in configure; fix
+    compilation for openSUSE 12.3
+
+-------------------------------------------------------------------

New:
----
  N_fix_XWAYLAND_SCANNER_undefined.diff
  u_xfree86-add-new-key-MatchSeat-to-xorg-conf.patch
  
u_xfree86-add-short-description-about-MatchSeat-key-in-xorg-conf-man-page.patch
  u_xfree86-allow-fallback-to-PCI-bus-probe-for-non-seat0-seats.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xorg-x11-server.spec ++++++
--- /var/tmp/diff_new_pack.oTcNZp/_old  2014-05-05 21:11:22.000000000 +0200
+++ /var/tmp/diff_new_pack.oTcNZp/_new  2014-05-05 21:11:22.000000000 +0200
@@ -78,6 +78,7 @@
 BuildRequires:  pkgconfig(xdmcp)
 BuildRequires:  pkgconfig(xext) >= 1.0.99.4
 BuildRequires:  pkgconfig(xextproto) >= 7.1.99
+BuildRequires:  pkgconfig(xf86dgaproto)
 BuildRequires:  pkgconfig(xf86driproto)
 BuildRequires:  pkgconfig(xfixes)
 BuildRequires:  pkgconfig(xfont) >= 1.4.2
@@ -137,6 +138,7 @@
 Patch3:         N_driver-autoconfig.diff
 Patch4:         N_fix_fglrx_screendepth_issue.patch
 Patch6:         N_fix-dpi-values.diff
+Patch7:         N_fix_XWAYLAND_SCANNER_undefined.diff
 
 Patch100:       u_fbdevhw.diff
 Patch101:       u_confine_to_shape.diff
@@ -149,6 +151,9 @@
 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
+Patch108:       
u_xfree86-allow-fallback-to-PCI-bus-probe-for-non-seat0-seats.patch
+Patch109:       u_xfree86-add-new-key-MatchSeat-to-xorg-conf.patch
+Patch110:       
u_xfree86-add-short-description-about-MatchSeat-key-in-xorg-conf-man-page.patch
 
 Patch162:       b_cache-xkbcomp-output-for-fast-start-up.patch
 Patch211:       
b_0001-Prevent-XSync-Alarms-from-senslessly-calling-CheckTr.patch
@@ -214,6 +219,7 @@
 %patch3 -p0
 %patch4 -p0
 %patch6 -p0
+%patch7 -p0
 #
 %patch100
 %patch101
@@ -223,6 +229,9 @@
 %patch105 -p1
 %patch106 -p1
 %patch107 -p1
+%patch108 -p1
+%patch109 -p1
+%patch110 -p1
 
 ### disabled for now
 #%patch162 -p1

++++++ N_fix_XWAYLAND_SCANNER_undefined.diff ++++++
--- configure.ac_orig   2014-04-28 01:51:17.419311470 +0200
+++ configure.ac        2014-04-28 01:52:25.842088562 +0200
@@ -2458,7 +2458,8 @@
        XWAYLAND_SYS_LIBS="$XWAYLANDMODULES_LIBS $GLX_SYS_LIBS"
        AC_SUBST([XWAYLAND_LIBS])
        AC_SUBST([XWAYLAND_SYS_LIBS])
-       WAYLAND_SCANNER_RULES(['$(top_srcdir)/hw/xwayland'])
+       m4_ifdef([WAYLAND_SCANNER_RULES],
+               [WAYLAND_SCANNER_RULES(['$(top_srcdir)/hw/xwayland'])])
 fi
 
 
++++++ u_xfree86-add-new-key-MatchSeat-to-xorg-conf.patch ++++++
>From c29952e77111d6da1ab12957f0207d59ae14c809 Mon Sep 17 00:00:00 2001
From: Oleg Samarin <[email protected]>
Date: Thu, 3 Apr 2014 09:16:52 -0300
Subject: [PATCH v2 2/3] xfree86: add new key MatchSeat to xorg.conf sections
 "Device", "Screen", and "ServerLayout"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This patch introduces a new key MatchSeat in xorg.conf (also applies to
any .conf file in xorg.conf.d). It will allow targeting a given
"Device", "Screen", and/or "ServerLayout" section to a particular
seat only (specified by option "-seat" in X server command line),
so that other seats won't be affected.

Without this patch, one needs to write a separate xorg.conf.custom
file and pass it to X server via "-config" option, if one wants that
these settings only apply for the right seat. However, in some cases,
this solution is undesirable or even impossible (e.g. when using GDM,
which doesn't allow X server command line customization).

Example file (/etc/X11/xorg.conf.d/seat1.conf), which would be ignored
by X server unless it was started with "-seat seat1" option:

Section "Device"
    Identifier "card0"
    Driver "nvidia"
    Option "NoLogo" "True"
    MatchSeat "seat1"
EndSection

Signed-off-by: Oleg Samarin <[email protected]>
Signed-off-by: Laércio de Sousa <[email protected]>
---
 hw/xfree86/common/xf86Config.c | 34 +++++++++++++++++++++++++---------
 hw/xfree86/parser/Device.c     |  6 ++++++
 hw/xfree86/parser/Layout.c     |  6 ++++++
 hw/xfree86/parser/Screen.c     |  6 ++++++
 hw/xfree86/parser/xf86Parser.h |  3 +++
 hw/xfree86/parser/xf86tokens.h |  1 +
 6 files changed, 47 insertions(+), 9 deletions(-)

diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index 542d5ab..5d17567 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -232,6 +232,17 @@ xf86ValidateFontPath(char *path)
     return tmp_path;
 }
 
+#define FIND_SUITABLE(pointertype, listhead, ptr)                              
 \
+    {                                                                          
 \
+        pointertype l, p;                                                      
 \
+                                                                               
 \
+        for (l = listhead, p = NULL; !p && l; l = (pointertype) l->list.next) 
{ \
+            if (! l->match_seat || SeatId && xf86nameCompare(l->match_seat, 
SeatId) == 0) \
+                p = l;                                                         
 \
+        }                                                                      
 \
+        ptr = p;                                                               
 \
+    }
+
 /*
  * use the datastructure that the parser provides and pick out the parts
  * that we need at this point
@@ -1580,8 +1591,11 @@ configLayout(serverLayoutPtr servlayoutp, 
XF86ConfLayoutPtr conf_layout,
      * config file, or - if it is NULL - configScreen autogenerates one for
      * us */
     if (!count) {
+        XF86ConfScreenPtr screen;
+
+        FIND_SUITABLE (XF86ConfScreenPtr, xf86configptr->conf_screen_lst, 
screen);
         slp[0].screen = xnfcalloc(1, sizeof(confScreenRec));
-        if (!configScreen(slp[0].screen, xf86configptr->conf_screen_lst,
+        if (!configScreen(slp[0].screen, screen,
                           0, X_CONFIG)) {
             free(slp[0].screen);
             free(slp);
@@ -1821,7 +1835,7 @@ configScreen(confScreenPtr screenp, XF86ConfScreenPtr 
conf_screen, int scrnum,
      * set it to NULL so that the section can be autoconfigured later */
     screenp->device = xnfcalloc(1, sizeof(GDevRec));
     if ((!conf_screen->scrn_device) && (xf86configptr->conf_device_lst)) {
-        conf_screen->scrn_device = xf86configptr->conf_device_lst;
+        FIND_SUITABLE (XF86ConfDevicePtr, xf86configptr->conf_device_lst, 
conf_screen->scrn_device);
         xf86Msg(X_DEFAULT, "No device specified for screen \"%s\".\n"
                 "\tUsing the first device section listed.\n", screenp->id);
     }
@@ -2429,14 +2443,19 @@ xf86HandleConfigFile(Bool autoconfig)
      */
 
     /* First check if a layout section is present, and if it is valid. */
+    XF86ConfLayoutPtr layout;
+
+    FIND_SUITABLE(XF86ConfLayoutPtr, xf86configptr->conf_layout_lst, layout);
+    if (layout == NULL || xf86ScreenName != NULL) {
+        XF86ConfScreenPtr screen;
 
-    if (xf86configptr->conf_layout_lst == NULL || xf86ScreenName != NULL) {
         if (xf86ScreenName == NULL) {
             xf86Msg(X_DEFAULT,
                     "No Layout section.  Using the first Screen section.\n");
         }
+        FIND_SUITABLE (XF86ConfScreenPtr, xf86configptr->conf_screen_lst, 
screen);
         if (!configImpliedLayout(&xf86ConfigLayout,
-                                 xf86configptr->conf_screen_lst,
+                                 screen,
                                  xf86configptr)) {
             xf86Msg(X_ERROR, "Unable to determine the screen layout\n");
             return CONFIG_PARSE_ERROR;
@@ -2451,16 +2470,13 @@ xf86HandleConfigFile(Bool autoconfig)
             if (optlist && xf86FindOption(optlist, "defaultserverlayout"))
                 dfltlayout =
                     xf86SetStrOption(optlist, "defaultserverlayout", NULL);
-            if (!configLayout
-                (&xf86ConfigLayout, xf86configptr->conf_layout_lst,
-                 dfltlayout)) {
+            if (!configLayout(&xf86ConfigLayout, layout, dfltlayout)) {
                 xf86Msg(X_ERROR, "Unable to determine the screen layout\n");
                 return CONFIG_PARSE_ERROR;
             }
         }
         else {
-            if (!configLayout(&xf86ConfigLayout, 
xf86configptr->conf_layout_lst,
-                              NULL)) {
+            if (!configLayout(&xf86ConfigLayout, layout, NULL)) {
                 xf86Msg(X_ERROR, "Unable to determine the screen layout\n");
                 return CONFIG_PARSE_ERROR;
             }
diff --git a/hw/xfree86/parser/Device.c b/hw/xfree86/parser/Device.c
index 073171f..d3ac293 100644
--- a/hw/xfree86/parser/Device.c
+++ b/hw/xfree86/parser/Device.c
@@ -71,6 +71,7 @@ xf86ConfigSymTabRec DeviceTab[] = {
     {RAMDAC, "ramdac"},
     {DACSPEED, "dacspeed"},
     {CLOCKS, "clocks"},
+    {MATCHSEAT, "matchseat"},
     {OPTION, "option"},
     {VIDEORAM, "videoram"},
     {BIOSBASE, "biosbase"},
@@ -216,6 +217,11 @@ xf86parseDeviceSection(void)
                 Error(NUMBER_MSG, "TextClockFreq");
             ptr->dev_textclockfreq = (int) (xf86_lex_val.realnum * 1000.0 + 
0.5);
             break;
+        case MATCHSEAT:
+            if (xf86getSubToken(&(ptr->dev_comment)) != STRING)
+                Error(QUOTE_MSG, "MatchSeat");
+            ptr->match_seat = xf86_lex_val.str;
+            break;
         case OPTION:
             ptr->dev_option_lst = xf86parseOption(ptr->dev_option_lst);
             break;
diff --git a/hw/xfree86/parser/Layout.c b/hw/xfree86/parser/Layout.c
index 7be746f..994b31a 100644
--- a/hw/xfree86/parser/Layout.c
+++ b/hw/xfree86/parser/Layout.c
@@ -70,6 +70,7 @@ static xf86ConfigSymTabRec LayoutTab[] = {
     {ENDSECTION, "endsection"},
     {SCREEN, "screen"},
     {IDENTIFIER, "identifier"},
+    {MATCHSEAT, "matchseat"},
     {INACTIVE, "inactive"},
     {INPUTDEVICE, "inputdevice"},
     {OPTION, "option"},
@@ -109,6 +110,11 @@ xf86parseLayoutSection(void)
             ptr->lay_identifier = xf86_lex_val.str;
             has_ident = TRUE;
             break;
+        case MATCHSEAT:
+            if (xf86getSubToken(&(ptr->lay_comment)) != STRING)
+                Error(QUOTE_MSG, "MatchSeat");
+            ptr->match_seat = xf86_lex_val.str;
+            break;
         case INACTIVE:
         {
             XF86ConfInactivePtr iptr;
diff --git a/hw/xfree86/parser/Screen.c b/hw/xfree86/parser/Screen.c
index fecd57c..0e9746a 100644
--- a/hw/xfree86/parser/Screen.c
+++ b/hw/xfree86/parser/Screen.c
@@ -198,6 +198,7 @@ xf86parseDisplaySubSection(void)
 static xf86ConfigSymTabRec ScreenTab[] = {
     {ENDSECTION, "endsection"},
     {IDENTIFIER, "identifier"},
+    {MATCHSEAT, "matchseat"},
     {OBSDRIVER, "driver"},
     {MDEVICE, "device"},
     {MONITOR, "monitor"},
@@ -236,6 +237,11 @@ xf86parseScreenSection(void)
                 Error(ONLY_ONE_MSG, "Identifier or Driver");
             has_ident = TRUE;
             break;
+        case MATCHSEAT:
+            if (xf86getSubToken(&(ptr->scrn_comment)) != STRING)
+                Error(QUOTE_MSG, "MatchSeat");
+            ptr->match_seat = xf86_lex_val.str;
+            break;
         case OBSDRIVER:
             if (xf86getSubToken(&(ptr->scrn_comment)) != STRING)
                 Error(QUOTE_MSG, "Driver");
diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
index 8f855ac..c95423a 100644
--- a/hw/xfree86/parser/xf86Parser.h
+++ b/hw/xfree86/parser/xf86Parser.h
@@ -224,6 +224,7 @@ typedef struct {
     int dev_screen;
     XF86OptionPtr dev_option_lst;
     char *dev_comment;
+    char *match_seat;
 } XF86ConfDeviceRec, *XF86ConfDevicePtr;
 
 typedef struct {
@@ -275,6 +276,7 @@ typedef struct {
     XF86OptionPtr scrn_option_lst;
     char *scrn_comment;
     int scrn_virtualX, scrn_virtualY;
+    char *match_seat;
 } XF86ConfScreenRec, *XF86ConfScreenPtr;
 
 typedef struct {
@@ -366,6 +368,7 @@ typedef struct {
     XF86ConfInactivePtr lay_inactive_lst;
     XF86ConfInputrefPtr lay_input_lst;
     XF86OptionPtr lay_option_lst;
+    char *match_seat;
     char *lay_comment;
 } XF86ConfLayoutRec, *XF86ConfLayoutPtr;
 
diff --git a/hw/xfree86/parser/xf86tokens.h b/hw/xfree86/parser/xf86tokens.h
index f751b7b..5c01ce7 100644
--- a/hw/xfree86/parser/xf86tokens.h
+++ b/hw/xfree86/parser/xf86tokens.h
@@ -87,6 +87,7 @@ typedef enum {
     VENDOR,
     DASH,
     COMMA,
+    MATCHSEAT,
     OPTION,
     COMMENT,
 
-- 
1.8.4.5

++++++ 
u_xfree86-add-short-description-about-MatchSeat-key-in-xorg-conf-man-page.patch 
++++++
>From 1387d26159b24119903a67ffb226b869729201b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= <[email protected]>
Date: Thu, 3 Apr 2014 10:20:51 -0300
Subject: [PATCH v2 3/3] xfree86: add short description about MatchSeat key in
 xorg.conf man page
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Laércio de Sousa <[email protected]>
---
 hw/xfree86/man/xorg.conf.man | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man
index 85f9f2e..c11372f 100644
--- a/hw/xfree86/man/xorg.conf.man
+++ b/hw/xfree86/man/xorg.conf.man
@@ -1374,6 +1374,14 @@ for the regular text mode.
 The frequency is specified in MHz.
 This is rarely used.
 .TP 7
+.BI "MatchSeat  " "seat\-id"
+Only apply this
+.B Device
+section if X server was started with
+.B -seat 
+.I seat\-id
+option.
+.TP 7
 .BI "Option \*qModeDebug\*q \*q" boolean \*q
 Enable printing of additional debugging information about modesetting to
 the server log.
@@ -1896,6 +1904,14 @@ The only case where there is even a choice in this value 
is for depth 24,
 where some hardware supports both a packed 24 bit framebuffer layout and a
 sparse 32 bit framebuffer layout.
 .TP 7
+.BI "MatchSeat  " "seat\-id"
+Only apply this
+.B Screen
+section if X server was started with
+.B -seat 
+.I seat\-id
+option.
+.TP 7
 .B Options
 Various
 .B Option
@@ -2291,6 +2307,14 @@ and the first two should normally be used to indicate 
the core pointer
 and core keyboard devices respectively.
 .RE
 .TP 7
+.BI "MatchSeat  " "seat\-id"
+Only apply this
+.B ServerLayout
+section if X server was started with
+.B -seat 
+.I seat\-id
+option.
+.TP 7
 .B Options
 In addition to the following, any option permitted in the
 .B ServerFlags
-- 
1.8.4.5

++++++ u_xfree86-allow-fallback-to-PCI-bus-probe-for-non-seat0-seats.patch 
++++++
>From 04ad4d4010a562a663ee3224b55d2b9c8468bd0e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= <[email protected]>
Date: Thu, 3 Apr 2014 09:14:36 -0300
Subject: [PATCH v2 1/3] xfree86: allow fallback to PCI bus probe for graphics
 devices on non-seat0 X servers (#66851)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Currently non-seat0 X servers only probe platform bus for graphics devices,
which is OK for most KMS-compliant drivers. However, for non-KMS drivers
(like NVIDIA proprietary ones), graphics devices can't be reached
by platform bus probe, resulting in a "No devices detected" error.

This patch allows a fallback to PCI bus probe for non-seat0 X servers
in case no platform bus graphics device is found.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=66851

Signed-off-by: Laércio de Sousa <[email protected]>
---
 hw/xfree86/common/xf86Bus.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
index 507c57d..b3b3f8c 100644
--- a/hw/xfree86/common/xf86Bus.c
+++ b/hw/xfree86/common/xf86Bus.c
@@ -81,7 +81,7 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only)
     if (drv->platformProbe != NULL) {
         foundScreen = xf86platformProbeDev(drv);
     }
-    if (ServerIsNotSeat0())
+    if (ServerIsNotSeat0() && foundScreen)
         return foundScreen;
 #endif
 
@@ -201,7 +201,7 @@ xf86BusProbe(void)
 {
 #ifdef XSERVER_PLATFORM_BUS
     xf86platformProbe();
-    if (ServerIsNotSeat0())
+    if (ServerIsNotSeat0() && xf86_num_platform_devices > 0)
         return;
 #endif
 #ifdef XSERVER_LIBPCIACCESS
-- 
1.8.4.5

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to