[Xquartz-changes] xserver: Branch 'master' - 4 commits
Jeremy Huddleston
jeremyhu at freedesktop.org
Fri May 21 23:43:28 PDT 2010
dix/devices.c | 4 -
doc/Xserver.man.pre | 26 ++-----
hw/xfree86/os-support/solaris/sun_init.c | 102 ++++++++++++++++++++++++-------
hw/xfree86/vbe/vbe.h | 2
4 files changed, 90 insertions(+), 44 deletions(-)
New commits:
commit 989db930d739483759087b13b8d9a043299feafb
Author: Aaron Zang <Aaron.Zang at Sun.COM>
Date: Thu May 20 17:56:28 2010 -0700
Solaris: Use VT_SET_CONSUSER ioctl to set Console User rights profile
When Xorg is started on display :0, this ioctl is called to grant the
user the rights traditionally associated with /dev/console (before VT
support was added), such as access to local peripheral devices.
Also adds a Solaris-specific -C flag to force starting on /dev/console
instead of /dev/vt*, allowing programs like xterm -C to access the
console device.
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Reviewed-by: Adam Jackson <ajax at redhat.com>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/hw/xfree86/os-support/solaris/sun_init.c b/hw/xfree86/os-support/solaris/sun_init.c
index 5846866..edcc60b 100644
--- a/hw/xfree86/os-support/solaris/sun_init.c
+++ b/hw/xfree86/os-support/solaris/sun_init.c
@@ -33,8 +33,21 @@
# include <sys/kd.h>
#endif
+/*
+ * Applications see VT number as consecutive integers starting from 1.
+ * VT number VT device
+ * -------------------------------------------------------
+ * 1 : /dev/vt/0 (Alt + Ctrl + F1)
+ * 2 : /dev/vt/2 (Alt + Ctrl + F2)
+ * 3 : /dev/vt/3 (Alt + Ctrl + F3)
+ * ... ...
+ */
+#define CONSOLE_VTNO 1
+#define SOL_CONSOLE_DEV "/dev/console"
+
static Bool KeepTty = FALSE;
static Bool Protect0 = FALSE;
+static Bool UseConsole = FALSE;
#ifdef HAS_USL_VTS
static int VTnum = -1;
static int xf86StartVT = -1;
@@ -112,8 +125,30 @@ xf86OpenConsole(void)
vtEnabled = 0;
}
}
+#endif /* HAS_USL_VTS */
+ if (UseConsole)
+ {
+ strlcpy(consoleDev, SOL_CONSOLE_DEV, sizeof(consoleDev));
+
+#ifdef HAS_USL_VTS
+ xf86Info.vtno = CONSOLE_VTNO;
+ if (vtEnabled == 0)
+ {
+ xf86StartVT = 0;
+ }
+ else
+ {
+ if (ioctl(fd, VT_GETSTATE, &vtinfo) < 0)
+ FatalError("xf86OpenConsole: Cannot determine current VT\n");
+ xf86StartVT = vtinfo.v_active;
+ }
+#endif /* HAS_USL_VTS */
+ goto OPENCONSOLE;
+ }
+
+#ifdef HAS_USL_VTS
if (vtEnabled == 0)
{
/* VT not enabled - kernel too old or Sparc platforms
@@ -123,32 +158,31 @@ xf86OpenConsole(void)
xf86StartVT = 0;
xf86Info.vtno = 0;
strlcpy(consoleDev, xf86SolarisFbDev, sizeof(consoleDev));
+ goto OPENCONSOLE;
}
- else
- {
- if (ioctl(fd, VT_GETSTATE, &vtinfo) < 0)
- FatalError("xf86OpenConsole: Cannot determine current VT\n");
- xf86StartVT = vtinfo.v_active;
+ if (ioctl(fd, VT_GETSTATE, &vtinfo) < 0)
+ FatalError("xf86OpenConsole: Cannot determine current VT\n");
- if (VTnum != -1)
- {
- xf86Info.vtno = VTnum;
- from = X_CMDLINE;
- }
- else
+ xf86StartVT = vtinfo.v_active;
+
+ if (VTnum != -1)
+ {
+ xf86Info.vtno = VTnum;
+ from = X_CMDLINE;
+ }
+ else
+ {
+ if ((ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
+ (xf86Info.vtno == -1))
{
- if ((ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
- (xf86Info.vtno == -1))
- {
- FatalError("xf86OpenConsole: Cannot find a free VT\n");
- }
+ FatalError("xf86OpenConsole: Cannot find a free VT\n");
}
-
- xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
- snprintf(consoleDev, PATH_MAX, "/dev/vt/%d", xf86Info.vtno);
}
+ xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
+ snprintf(consoleDev, PATH_MAX, "/dev/vt/%d", xf86Info.vtno);
+
if (fd != -1)
{
close(fd);
@@ -156,6 +190,7 @@ xf86OpenConsole(void)
#endif /* HAS_USL_VTS */
+OPENCONSOLE:
if (!KeepTty)
setpgrp();
@@ -163,11 +198,10 @@ xf86OpenConsole(void)
FatalError("xf86OpenConsole: Cannot open %s (%s)\n",
consoleDev, strerror(errno));
-#ifdef HAS_USL_VTS
-
- /* Change ownership of the vt */
+ /* Change ownership of the vt or console */
chown(consoleDev, getuid(), getgid());
+#ifdef HAS_USL_VTS
if (vtEnabled)
{
/*
@@ -179,6 +213,13 @@ xf86OpenConsole(void)
if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) != 0)
xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed\n");
+#ifdef VT_SET_CONSUSER /* added in snv_139 */
+ if (strcmp(display, "0") == 0)
+ if (ioctl(xf86Info.consoleFd, VT_SET_CONSUSER) != 0)
+ xf86Msg(X_WARNING,
+ "xf86OpenConsole: VT_SET_CONSUSER failed\n");
+#endif
+
if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0)
FatalError("xf86OpenConsole: VT_GETMODE failed\n");
@@ -220,6 +261,13 @@ xf86OpenConsole(void)
if (ioctl(xf86Info.consoleFd, VT_WAITACTIVE, xf86Info.vtno) != 0)
xf86Msg(X_WARNING, "xf86OpenConsole: VT_WAITACTIVE failed\n");
+#ifdef VT_SET_CONSUSER /* added in snv_139 */
+ if (strcmp(display, "0") == 0)
+ if (ioctl(xf86Info.consoleFd, VT_SET_CONSUSER) != 0)
+ xf86Msg(X_WARNING,
+ "xf86OpenConsole: VT_SET_CONSUSER failed\n");
+#endif
+
/*
* If the server doesn't have the VT when the reset occurs,
* this is to make sure we don't continue until the activate
@@ -330,6 +378,15 @@ xf86ProcessArgument(int argc, char **argv, int i)
return 1;
}
+ /*
+ * Use /dev/console as the console device.
+ */
+ if (!strcmp(argv[i], "-C"))
+ {
+ UseConsole = TRUE;
+ return 1;
+ }
+
#ifdef HAS_USL_VTS
if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
@@ -364,4 +421,5 @@ void xf86UseMsg()
ErrorF("-dev <fb> Framebuffer device\n");
ErrorF("-keeptty Don't detach controlling tty\n");
ErrorF(" (for debugging only)\n");
+ ErrorF("-C Use /dev/console as the console device\n");
}
commit 98553e52a14b97a03aef8dc4fc0300b3f4c2c4b5
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date: Thu May 20 17:56:27 2010 -0700
vbe.h: Use __attribute__((packed)) on Sun cc 5.9 & later as well as gcc
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Reviewed-by: Adam Jackson <ajax at redhat.com>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/hw/xfree86/vbe/vbe.h b/hw/xfree86/vbe/vbe.h
index 3ebd440..072621f 100644
--- a/hw/xfree86/vbe/vbe.h
+++ b/hw/xfree86/vbe/vbe.h
@@ -65,7 +65,7 @@ typedef struct vbeControllerInfoBlock {
#pragma pack(0)
#endif
-#ifndef __GNUC__
+#if !( defined(__GNUC__) || (defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)) )
#define __attribute__(a)
#endif
commit 7b09335a46f9428141811230c69eef7968531359
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date: Thu May 20 17:56:26 2010 -0700
Xserver(1) man page updates
- Note that -br is now default.
- Move -bs after -br for alphabetical ordering.
- Remove -config option that's been hidden in "ignore" section,
since ajax removed the -config code a couple years back.
- Add -nocursor option.
- Add xinput & xrandr to list of runtime server control programs
- Replace XDarwin with Xquartz in list of Xservers
Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Reviewed-by: Adam Jackson <ajax at redhat.com>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/doc/Xserver.man.pre b/doc/Xserver.man.pre
index 8144c8a..ce3b3a1 100644
--- a/doc/Xserver.man.pre
+++ b/doc/Xserver.man.pre
@@ -100,12 +100,12 @@ specifies a file which contains a collection of authorization records used
to authenticate access. See also the \fIxdm\fP(1) and
\fIXsecurity\fP(__miscmansuffix__) manual pages.
.TP 8
-.B \-bs
-disables backing store support on all screens.
-.TP 8
.B \-br
sets the default root window to solid black instead of the standard root weave
-pattern.
+pattern. This is the default unless -retro or -wr is specified.
+.TP 8
+.B \-bs
+disables backing store support on all screens.
.TP 8
.B \-c
turns off key-click.
@@ -117,17 +117,6 @@ sets key-click volume (allowable range: 0-100).
sets the visual class for the root window of color screens.
The class numbers are as specified in the X protocol.
Not obeyed by all servers.
-.ig
-.TP 8
-.B \-config \fIfilename\fP
-reads more options from the given file. Options in the file may be separated
-by newlines if desired. If a '#' character appears on a line, all characters
-between it and the next newline are ignored, providing a simple commenting
-facility. The \fB\-config\fP option itself may appear in the file.
-.BR NOTE :
-This option is disabled when the Xserver is run with an effective uid
-different from the user's real uid.
-..
.TP 8
.B \-core
causes the server to generate a core dump on fatal errors.
@@ -184,6 +173,9 @@ sets the maximum big request to
.I size
MB.
.TP 8
+.B \-nocursor
+disable the display of the pointer cursor.
+.TP 8
.B \-nolisten \fItrans-type\fP
disables a transport type. For example, TCP/IP connections can be disabled
with
@@ -584,11 +576,11 @@ Security: \fIXsecurity\fP(__miscmansuffix__), \fIxauth\fP(1), \fIXau\fP(1),
Starting the server: \fIstartx\fP(1), \fIxdm\fP(1), \fIxinit\fP(1)
.PP
Controlling the server once started: \fIxset\fP(1), \fIxsetroot\fP(1),
-\fIxhost\fP(1)
+\fIxhost\fP(1), \fIxinput\fP(1), \fIxrandr\fP(1)
.PP
Server-specific man pages:
\fIXorg\fP(1), \fIXdmx\fP(1), \fIXephyr\fP(1), \fIXnest\fP(1),
-\fIXvfb\fP(1), \fIXDarwin\fP(1), \fIXWin\fP(1).
+\fIXvfb\fP(1), \fIXquartz\fP(1), \fIXWin\fP(1).
.PP
Server internal documentation:
.I "Definition of the Porting Layer for the X v11 Sample Server"
commit cf4f3d051858aadedd6e333bb317a1daa3987ad7
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date: Fri May 21 13:30:25 2010 +1000
dix: remove obsolete comment.from EnableDevice.
The code this comment was referring to was removed in
8b5086250aa5dae8de8b763408ff480d7beac819 "Eliminate bogus event resizing."
Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
Reviewed-by: Daniel Stone <daniel at fooishbar.org>
Signed-off-by: Keith Packard <keithp at keithp.com>
diff --git a/dix/devices.c b/dix/devices.c
index de72c88..ab8c3f9 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -311,10 +311,6 @@ EnableDevice(DeviceIntPtr dev, BOOL sendevent)
}
}
- /* Before actually enabling the device, we need to make sure the event
- * list's events have enough memory for a ClassesChangedEvent from the
- * device
- */
if ((*prev != dev) || !dev->inited ||
((ret = (*dev->deviceProc)(dev, DEVICE_ON)) != Success)) {
ErrorF("[dix] couldn't enable device %d\n", dev->id);
More information about the Xquartz-changes
mailing list