Merge lp:~ubuntu-multiseat/xorg-server/trusty-matchseat into lp:ubuntu/trusty/xorg-server

Proposed by Laércio de Sousa
Status: Merged
Merge reported by: Sebastien Bacher
Merged at revision: not available
Proposed branch: lp:~ubuntu-multiseat/xorg-server/trusty-matchseat
Merge into: lp:ubuntu/trusty/xorg-server
Diff against target: 449 lines (+422/-0)
5 files modified
debian/patches/series (+4/-0)
debian/patches/xfree86_add_matchseat_key_description_to_xorg_conf_man.patch (+68/-0)
debian/patches/xfree86_add_matchseat_key_to_xorg_conf.patch (+248/-0)
debian/patches/xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch (+52/-0)
debian/patches/xfree86_keep_non_seat0_from_touching_vts.patch (+50/-0)
To merge this branch: bzr merge lp:~ubuntu-multiseat/xorg-server/trusty-matchseat
Reviewer Review Type Date Requested Status
Sebastien Bacher Approve
Maarten Lankhorst (community) Approve
Review via email: mp+234316@code.launchpad.net

Description of the change

Please backport these patches from upstream release 1.16 to trusty "xorg-server" package. These ones are really needed to make logind-based multiseat setups work properly with non-KMS video drivers (line NVIDIA/AMD proprietary ones) and are a "must have" for a LTS release like 14.04.

Thanks in advance!

To post a comment you must log in.
Revision history for this message
Maarten Lankhorst (mlankhorst) wrote :

looks sane, but bug #1209008 needs to be updated with the stablereleaseupdates bug template.

review: Approve
Revision history for this message
Sebastien Bacher (seb128) wrote :

(https://wiki.ubuntu.com/StableReleaseUpdates has the informations on stable updates)

Revision history for this message
Laércio de Sousa (lbssousa) wrote :

I've updated bug #1209008 following SRU template. Please take a look.

Revision history for this message
Sebastien Bacher (seb128) wrote :

Looks like that was uploaded in https://launchpad.net/ubuntu/+source/xorg-server/2:1.15.1-0ubuntu2.2, setting as merged then, thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/patches/series'
2--- debian/patches/series 2013-08-14 10:52:17 +0000
3+++ debian/patches/series 2014-09-11 14:14:10 +0000
4@@ -56,3 +56,7 @@
5
6 aarch64.patch
7 xmir.patch
8+xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch
9+xfree86_keep_non_seat0_from_touching_vts.patch
10+xfree86_add_matchseat_key_to_xorg_conf.patch
11+xfree86_add_matchseat_key_description_to_xorg_conf_man.patch
12
13=== added file 'debian/patches/xfree86_add_matchseat_key_description_to_xorg_conf_man.patch'
14--- debian/patches/xfree86_add_matchseat_key_description_to_xorg_conf_man.patch 1970-01-01 00:00:00 +0000
15+++ debian/patches/xfree86_add_matchseat_key_description_to_xorg_conf_man.patch 2014-09-11 14:14:10 +0000
16@@ -0,0 +1,68 @@
17+From a6f5ffd5879e7fb052d343592951cc476b699bb4 Mon Sep 17 00:00:00 2001
18+From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= <lbsousajr@gmail.com>
19+Date: Thu, 3 Apr 2014 11:19:15 -0300
20+Subject: [PATCH] xfree86: add short description about MatchSeat key in
21+ xorg.conf man page
22+MIME-Version: 1.0
23+Content-Type: text/plain; charset=UTF-8
24+Content-Transfer-Encoding: 8bit
25+
26+Signed-off-by: Laércio de Sousa <lbsousajr@gmail.com>
27+Reviewed-by: Dave Airlie <airlied@redhat.com>
28+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
29+---
30+ hw/xfree86/man/xorg.conf.man | 24 ++++++++++++++++++++++++
31+ 1 file changed, 24 insertions(+)
32+
33+diff --git a/hw/xfree86/man/xorg.conf.man b/hw/xfree86/man/xorg.conf.man
34+index 6d2652e..cadd87b 100644
35+--- a/hw/xfree86/man/xorg.conf.man
36++++ b/hw/xfree86/man/xorg.conf.man
37+@@ -1378,6 +1378,14 @@ for the regular text mode.
38+ The frequency is specified in MHz.
39+ This is rarely used.
40+ .TP 7
41++.BI "MatchSeat " "seat\-id"
42++Only apply this
43++.B Device
44++section if X server was started with
45++.B -seat
46++.I seat\-id
47++option.
48++.TP 7
49+ .BI "Option \*qModeDebug\*q \*q" boolean \*q
50+ Enable printing of additional debugging information about modesetting to
51+ the server log.
52+@@ -1900,6 +1908,14 @@ The only case where there is even a choice in this value is for depth 24,
53+ where some hardware supports both a packed 24 bit framebuffer layout and a
54+ sparse 32 bit framebuffer layout.
55+ .TP 7
56++.BI "MatchSeat " "seat\-id"
57++Only apply this
58++.B Screen
59++section if X server was started with
60++.B -seat
61++.I seat\-id
62++option.
63++.TP 7
64+ .B Options
65+ Various
66+ .B Option
67+@@ -2295,6 +2311,14 @@ and the first two should normally be used to indicate the core pointer
68+ and core keyboard devices respectively.
69+ .RE
70+ .TP 7
71++.BI "MatchSeat " "seat\-id"
72++Only apply this
73++.B ServerLayout
74++section if X server was started with
75++.B -seat
76++.I seat\-id
77++option.
78++.TP 7
79+ .B Options
80+ In addition to the following, any option permitted in the
81+ .B ServerFlags
82+--
83+2.0.4
84+
85
86=== added file 'debian/patches/xfree86_add_matchseat_key_to_xorg_conf.patch'
87--- debian/patches/xfree86_add_matchseat_key_to_xorg_conf.patch 1970-01-01 00:00:00 +0000
88+++ debian/patches/xfree86_add_matchseat_key_to_xorg_conf.patch 2014-09-11 14:14:10 +0000
89@@ -0,0 +1,248 @@
90+From 7070ebeebaca1b51f8a2801989120784a1c374ae Mon Sep 17 00:00:00 2001
91+From: Oleg Samarin <osamarin68@gmail.com>
92+Date: Thu, 3 Apr 2014 11:19:14 -0300
93+Subject: [PATCH] xfree86: add new key MatchSeat to xorg.conf sections
94+ "Device", "Screen", and "ServerLayout"
95+MIME-Version: 1.0
96+Content-Type: text/plain; charset=UTF-8
97+Content-Transfer-Encoding: 8bit
98+
99+This patch introduces a new key MatchSeat in xorg.conf (also applies to
100+any .conf file in xorg.conf.d). It will allow targeting a given
101+"Device", "Screen", and/or "ServerLayout" section to a particular
102+seat only (specified by option "-seat" in X server command line),
103+so that other seats won't be affected.
104+
105+Without this patch, one needs to write a separate xorg.conf.custom
106+file and pass it to X server via "-config" option, if one wants that
107+these settings only apply for the right seat. However, in some cases,
108+this solution is undesirable or even impossible (e.g. when using GDM,
109+which doesn't allow X server command line customization).
110+
111+Example file (/etc/X11/xorg.conf.d/seat1.conf), which would be ignored
112+by X server unless it was started with "-seat seat1" option:
113+
114+Section "Device"
115+ Identifier "card0"
116+ Driver "nvidia"
117+ Option "NoLogo" "True"
118+ MatchSeat "seat1"
119+EndSection
120+
121+Signed-off-by: Oleg Samarin <osamarin68@gmail.com>
122+Signed-off-by: Laércio de Sousa <lbsousajr@gmail.com>
123+Reviewed-by: Dave Airlie <airlied@redhat.com>
124+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
125+---
126+ hw/xfree86/common/xf86Config.c | 34 +++++++++++++++++++++++++---------
127+ hw/xfree86/parser/Device.c | 6 ++++++
128+ hw/xfree86/parser/Layout.c | 6 ++++++
129+ hw/xfree86/parser/Screen.c | 6 ++++++
130+ hw/xfree86/parser/xf86Parser.h | 3 +++
131+ hw/xfree86/parser/xf86tokens.h | 1 +
132+ 6 files changed, 47 insertions(+), 9 deletions(-)
133+
134+Index: xorg-server-trusty-matchseat/hw/xfree86/common/xf86Config.c
135+===================================================================
136+--- xorg-server-trusty-matchseat.orig/hw/xfree86/common/xf86Config.c 2014-09-11 10:50:39.823851011 -0300
137++++ xorg-server-trusty-matchseat/hw/xfree86/common/xf86Config.c 2014-09-11 10:55:16.098992439 -0300
138+@@ -232,6 +232,18 @@
139+ return tmp_path;
140+ }
141+
142++#define FIND_SUITABLE(pointertype, listhead, ptr) \
143++ do { \
144++ pointertype _l, _p; \
145++ \
146++ for (_l = (listhead), _p = NULL; !_p && _l; _l = (pointertype)_l->list.next) { \
147++ if (!_l->match_seat || (SeatId && xf86nameCompare(_l->match_seat, SeatId) == 0)) \
148++ _p = _l; \
149++ } \
150++ \
151++ (ptr) = _p; \
152++ } while(0)
153++
154+ /*
155+ * use the datastructure that the parser provides and pick out the parts
156+ * that we need at this point
157+@@ -1600,8 +1612,11 @@
158+ * config file, or - if it is NULL - configScreen autogenerates one for
159+ * us */
160+ if (!count) {
161++ XF86ConfScreenPtr screen;
162++
163++ FIND_SUITABLE (XF86ConfScreenPtr, xf86configptr->conf_screen_lst, screen);
164+ slp[0].screen = xnfcalloc(1, sizeof(confScreenRec));
165+- if (!configScreen(slp[0].screen, xf86configptr->conf_screen_lst,
166++ if (!configScreen(slp[0].screen, screen,
167+ 0, X_CONFIG)) {
168+ free(slp[0].screen);
169+ free(slp);
170+@@ -1841,7 +1856,7 @@
171+ * set it to NULL so that the section can be autoconfigured later */
172+ screenp->device = xnfcalloc(1, sizeof(GDevRec));
173+ if ((!conf_screen->scrn_device) && (xf86configptr->conf_device_lst)) {
174+- conf_screen->scrn_device = xf86configptr->conf_device_lst;
175++ FIND_SUITABLE (XF86ConfDevicePtr, xf86configptr->conf_device_lst, conf_screen->scrn_device);
176+ xf86Msg(X_DEFAULT, "No device specified for screen \"%s\".\n"
177+ "\tUsing the first device section listed.\n", screenp->id);
178+ }
179+@@ -2374,6 +2389,7 @@
180+ char *scanptr;
181+ Bool singlecard = 0;
182+ Bool implicit_layout = FALSE;
183++ XF86ConfLayoutPtr layout;
184+
185+ if (!autoconfig) {
186+ char *filename, *dirname, *sysdirname;
187+@@ -2449,14 +2465,17 @@
188+ */
189+
190+ /* First check if a layout section is present, and if it is valid. */
191++ FIND_SUITABLE(XF86ConfLayoutPtr, xf86configptr->conf_layout_lst, layout);
192++ if (layout == NULL || xf86ScreenName != NULL) {
193++ XF86ConfScreenPtr screen;
194+
195+- if (xf86configptr->conf_layout_lst == NULL || xf86ScreenName != NULL) {
196+ if (xf86ScreenName == NULL) {
197+ xf86Msg(X_DEFAULT,
198+ "No Layout section. Using the first Screen section.\n");
199+ }
200++ FIND_SUITABLE (XF86ConfScreenPtr, xf86configptr->conf_screen_lst, screen);
201+ if (!configImpliedLayout(&xf86ConfigLayout,
202+- xf86configptr->conf_screen_lst,
203++ screen,
204+ xf86configptr)) {
205+ xf86Msg(X_ERROR, "Unable to determine the screen layout\n");
206+ return CONFIG_PARSE_ERROR;
207+@@ -2471,16 +2490,13 @@
208+ if (optlist && xf86FindOption(optlist, "defaultserverlayout"))
209+ dfltlayout =
210+ xf86SetStrOption(optlist, "defaultserverlayout", NULL);
211+- if (!configLayout
212+- (&xf86ConfigLayout, xf86configptr->conf_layout_lst,
213+- dfltlayout)) {
214++ if (!configLayout(&xf86ConfigLayout, layout, dfltlayout)) {
215+ xf86Msg(X_ERROR, "Unable to determine the screen layout\n");
216+ return CONFIG_PARSE_ERROR;
217+ }
218+ }
219+ else {
220+- if (!configLayout(&xf86ConfigLayout, xf86configptr->conf_layout_lst,
221+- NULL)) {
222++ if (!configLayout(&xf86ConfigLayout, layout, NULL)) {
223+ xf86Msg(X_ERROR, "Unable to determine the screen layout\n");
224+ return CONFIG_PARSE_ERROR;
225+ }
226+Index: xorg-server-trusty-matchseat/hw/xfree86/parser/Device.c
227+===================================================================
228+--- xorg-server-trusty-matchseat.orig/hw/xfree86/parser/Device.c 2014-09-11 10:48:54.272129993 -0300
229++++ xorg-server-trusty-matchseat/hw/xfree86/parser/Device.c 2014-09-11 10:55:16.094992284 -0300
230+@@ -72,6 +72,7 @@
231+ {RAMDAC, "ramdac"},
232+ {DACSPEED, "dacspeed"},
233+ {CLOCKS, "clocks"},
234++ {MATCHSEAT, "matchseat"},
235+ {OPTION, "option"},
236+ {VIDEORAM, "videoram"},
237+ {BIOSBASE, "biosbase"},
238+@@ -217,6 +218,11 @@
239+ Error(NUMBER_MSG, "TextClockFreq");
240+ ptr->dev_textclockfreq = (int) (val.realnum * 1000.0 + 0.5);
241+ break;
242++ case MATCHSEAT:
243++ if (xf86getSubToken(&(ptr->dev_comment)) != STRING)
244++ Error(QUOTE_MSG, "MatchSeat");
245++ ptr->match_seat = val.str;
246++ break;
247+ case OPTION:
248+ ptr->dev_option_lst = xf86parseOption(ptr->dev_option_lst);
249+ break;
250+Index: xorg-server-trusty-matchseat/hw/xfree86/parser/Layout.c
251+===================================================================
252+--- xorg-server-trusty-matchseat.orig/hw/xfree86/parser/Layout.c 2014-09-11 10:48:54.272129993 -0300
253++++ xorg-server-trusty-matchseat/hw/xfree86/parser/Layout.c 2014-09-11 10:55:16.094992284 -0300
254+@@ -71,6 +71,7 @@
255+ {ENDSECTION, "endsection"},
256+ {SCREEN, "screen"},
257+ {IDENTIFIER, "identifier"},
258++ {MATCHSEAT, "matchseat"},
259+ {INACTIVE, "inactive"},
260+ {INPUTDEVICE, "inputdevice"},
261+ {OPTION, "option"},
262+@@ -110,6 +111,11 @@
263+ ptr->lay_identifier = val.str;
264+ has_ident = TRUE;
265+ break;
266++ case MATCHSEAT:
267++ if (xf86getSubToken(&(ptr->lay_comment)) != STRING)
268++ Error(QUOTE_MSG, "MatchSeat");
269++ ptr->match_seat = val.str;
270++ break;
271+ case INACTIVE:
272+ {
273+ XF86ConfInactivePtr iptr;
274+Index: xorg-server-trusty-matchseat/hw/xfree86/parser/Screen.c
275+===================================================================
276+--- xorg-server-trusty-matchseat.orig/hw/xfree86/parser/Screen.c 2014-09-11 10:48:54.272129993 -0300
277++++ xorg-server-trusty-matchseat/hw/xfree86/parser/Screen.c 2014-09-11 10:55:16.094992284 -0300
278+@@ -199,6 +199,7 @@
279+ static xf86ConfigSymTabRec ScreenTab[] = {
280+ {ENDSECTION, "endsection"},
281+ {IDENTIFIER, "identifier"},
282++ {MATCHSEAT, "matchseat"},
283+ {OBSDRIVER, "driver"},
284+ {MDEVICE, "device"},
285+ {MONITOR, "monitor"},
286+@@ -237,6 +238,11 @@
287+ Error(ONLY_ONE_MSG, "Identifier or Driver");
288+ has_ident = TRUE;
289+ break;
290++ case MATCHSEAT:
291++ if (xf86getSubToken(&(ptr->scrn_comment)) != STRING)
292++ Error(QUOTE_MSG, "MatchSeat");
293++ ptr->match_seat = val.str;
294++ break;
295+ case OBSDRIVER:
296+ if (xf86getSubToken(&(ptr->scrn_comment)) != STRING)
297+ Error(QUOTE_MSG, "Driver");
298+Index: xorg-server-trusty-matchseat/hw/xfree86/parser/xf86Parser.h
299+===================================================================
300+--- xorg-server-trusty-matchseat.orig/hw/xfree86/parser/xf86Parser.h 2014-09-11 10:48:54.272129993 -0300
301++++ xorg-server-trusty-matchseat/hw/xfree86/parser/xf86Parser.h 2014-09-11 10:55:16.094992284 -0300
302+@@ -224,6 +224,7 @@
303+ int dev_screen;
304+ XF86OptionPtr dev_option_lst;
305+ char *dev_comment;
306++ char *match_seat;
307+ } XF86ConfDeviceRec, *XF86ConfDevicePtr;
308+
309+ typedef struct {
310+@@ -275,6 +276,7 @@
311+ XF86OptionPtr scrn_option_lst;
312+ char *scrn_comment;
313+ int scrn_virtualX, scrn_virtualY;
314++ char *match_seat;
315+ } XF86ConfScreenRec, *XF86ConfScreenPtr;
316+
317+ typedef struct {
318+@@ -366,6 +368,7 @@
319+ XF86ConfInactivePtr lay_inactive_lst;
320+ XF86ConfInputrefPtr lay_input_lst;
321+ XF86OptionPtr lay_option_lst;
322++ char *match_seat;
323+ char *lay_comment;
324+ } XF86ConfLayoutRec, *XF86ConfLayoutPtr;
325+
326+Index: xorg-server-trusty-matchseat/hw/xfree86/parser/xf86tokens.h
327+===================================================================
328+--- xorg-server-trusty-matchseat.orig/hw/xfree86/parser/xf86tokens.h 2014-09-11 10:48:54.272129993 -0300
329++++ xorg-server-trusty-matchseat/hw/xfree86/parser/xf86tokens.h 2014-09-11 10:55:16.094992284 -0300
330+@@ -87,6 +87,7 @@
331+ VENDOR,
332+ DASH,
333+ COMMA,
334++ MATCHSEAT,
335+ OPTION,
336+ COMMENT,
337+
338
339=== added file 'debian/patches/xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch'
340--- debian/patches/xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch 1970-01-01 00:00:00 +0000
341+++ debian/patches/xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch 2014-09-11 14:14:10 +0000
342@@ -0,0 +1,52 @@
343+From 29b1484bb9555e45067669cbfe68a3c40596f4ff Mon Sep 17 00:00:00 2001
344+From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= <lbsousajr@gmail.com>
345+Date: Thu, 3 Apr 2014 11:19:13 -0300
346+Subject: [PATCH] xfree86: allow fallback to PCI bus probe for graphics devices
347+ on non-seat0 X servers (#66851)
348+MIME-Version: 1.0
349+Content-Type: text/plain; charset=UTF-8
350+Content-Transfer-Encoding: 8bit
351+
352+Currently non-seat0 X servers only probe platform bus for graphics devices,
353+which is OK for most KMS-compliant drivers. However, for non-KMS drivers
354+(like NVIDIA proprietary ones), graphics devices can't be reached
355+by platform bus probe, resulting in a "No devices detected" error.
356+
357+This patch allows a fallback to PCI bus probe for non-seat0 X servers
358+in case no platform bus graphics device is found.
359+
360+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=66851
361+
362+Signed-off-by: Laércio de Sousa <lbsousajr@gmail.com>
363+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
364+Reviewed-by: Dave Airlie <airlied@redhat.com>
365+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
366+---
367+ hw/xfree86/common/xf86Bus.c | 4 ++--
368+ 1 file changed, 2 insertions(+), 2 deletions(-)
369+
370+diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
371+index 507c57d..b3b3f8c 100644
372+--- a/hw/xfree86/common/xf86Bus.c
373++++ b/hw/xfree86/common/xf86Bus.c
374+@@ -81,7 +81,7 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only)
375+ if (drv->platformProbe != NULL) {
376+ foundScreen = xf86platformProbeDev(drv);
377+ }
378+- if (ServerIsNotSeat0())
379++ if (ServerIsNotSeat0() && foundScreen)
380+ return foundScreen;
381+ #endif
382+
383+@@ -201,7 +201,7 @@ xf86BusProbe(void)
384+ {
385+ #ifdef XSERVER_PLATFORM_BUS
386+ xf86platformProbe();
387+- if (ServerIsNotSeat0())
388++ if (ServerIsNotSeat0() && xf86_num_platform_devices > 0)
389+ return;
390+ #endif
391+ #ifdef XSERVER_LIBPCIACCESS
392+--
393+2.0.4
394+
395
396=== added file 'debian/patches/xfree86_keep_non_seat0_from_touching_vts.patch'
397--- debian/patches/xfree86_keep_non_seat0_from_touching_vts.patch 1970-01-01 00:00:00 +0000
398+++ debian/patches/xfree86_keep_non_seat0_from_touching_vts.patch 2014-09-11 14:14:10 +0000
399@@ -0,0 +1,50 @@
400+From 46cf2a60934076bf568062eb83121ce90b6ff596 Mon Sep 17 00:00:00 2001
401+From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= <lbsousajr@gmail.com>
402+Date: Thu, 12 Dec 2013 14:22:48 -0200
403+Subject: [PATCH] xfree86: Keep a non-seat0 X server from touching VTs (#71258)
404+
405+Updated patch following Hans de Goede's advice.
406+
407+If -seat option is passed with a value different from seat0,
408+X server won't call xf86OpenConsole().
409+
410+This is needed to avoid any race condition between seat0 and
411+non-seat0 X servers. If a non-seat0 X server opens a given VT
412+before a seat0 one which expects to open the same VT, one can
413+get an inactive systemd-logind graphical session for seat0.
414+
415+This patch was first tested in a multiseat setup with multiple
416+video cards and works quite well.
417+
418+I suppose it can also make things like DontVTSwitch and -sharevts
419+meaningless for non-seat0 seats, so it may fix bug #69477, too.
420+
421+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71258
422+ https://bugs.freedesktop.org/show_bug.cgi?id=69477 (maybe)
423+
424+See also: http://lists.x.org/archives/xorg-devel/2013-October/038391.html
425+ https://bugzilla.redhat.com/show_bug.cgi?id=1018196
426+
427+Signed-off-by: Hans de Goede <hdegoede@redhat.com>
428+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
429+---
430+ hw/xfree86/common/xf86Init.c | 3 ++-
431+ 1 file changed, 2 insertions(+), 1 deletion(-)
432+
433+diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
434+index 9c8a86a..952bf37 100644
435+--- a/hw/xfree86/common/xf86Init.c
436++++ b/hw/xfree86/common/xf86Init.c
437+@@ -544,7 +544,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
438+ if (NEED_IO_ENABLED(flags))
439+ want_hw_access = TRUE;
440+
441+- if (!(flags & HW_SKIP_CONSOLE))
442++ /* Non-seat0 X servers should not open console */
443++ if (!(flags & HW_SKIP_CONSOLE) && !ServerIsNotSeat0())
444+ xorgHWOpenConsole = TRUE;
445+ }
446+
447+--
448+2.0.4
449+

Subscribers

People subscribed via source and target branches