<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.26.0">
</HEAD>
<BODY>
On Mon, 2010-04-12 at 17:10 -0700, Alan Coopersmith wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
Fixes:
X.Org bug #7342 - <A HREF="http://bugs.freedesktop.org/show_bug.cgi?id=7342">http://bugs.freedesktop.org/show_bug.cgi?id=7342</A>
X Consortium bug #4559 (reported 30 Sep 1991)
Text based on the X11R4 release notes description of xdmshell from:
        <A HREF="http://ftp.x.org/pub/X11R4/RELNOTES.txt">http://ftp.x.org/pub/X11R4/RELNOTES.txt</A>
Signed-off-by: Alan Coopersmith <<A HREF="mailto:alan.coopersmith@oracle.com">alan.coopersmith@oracle.com</A>>
---
COPYING | 3 +-
Makefile.am | 2 +-
xdm.man.cpp | 2 +-
xdmshell.man.cpp | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 112 insertions(+), 3 deletions(-)
create mode 100644 xdmshell.man.cpp
diff --git a/COPYING b/COPYING
index c241d05..013ea7b 100644
--- a/COPYING
+++ b/COPYING
@@ -1,4 +1,5 @@
-Copyright (c) 2002, 2006, 2009, Oracle and/or its affiliates. All rights reserved.
+Copyright (c) 2002, 2006, 2009, 2010, Oracle and/or its affiliates.
+All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
diff --git a/Makefile.am b/Makefile.am
index 193e8a6..b0ff1a2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -102,7 +102,7 @@ endif
appmandir = $(APP_MAN_DIR)
-appman_PRE = xdm.man.cpp
+appman_PRE = xdm.man.cpp xdmshell.man.cpp
appman_DATA = $(appman_PRE:man.cpp=@APP_MAN_SUFFIX@)
MAINTAINERCLEANFILES = ChangeLog INSTALL
diff --git a/xdm.man.cpp b/xdm.man.cpp
index 011d8d1..220580b 100644
--- a/xdm.man.cpp
+++ b/xdm.man.cpp
@@ -1443,7 +1443,7 @@ Kerberos credentials cache
.IR sessreg (__appmansuffix__),
.IR Xserver (__appmansuffix__),
.\" .IR chooser (__appmansuffix__), \" except that there isn't a manual for it yet
-.\" .IR xdmshell (__appmansuffix__), \" except that there isn't a manual for it yet
+.IR xdmshell (__appmansuffix__),
.IR fonts.conf (__filemansuffix__).
.br
.I "X Display Manager Control Protocol"
diff --git a/xdmshell.man.cpp b/xdmshell.man.cpp
new file mode 100644
index 0000000..8661c5d
--- /dev/null
+++ b/xdmshell.man.cpp
@@ -0,0 +1,108 @@
+.\" Copyright 1989 The Open Group
+.\"
+.\" Permission to use, copy, modify, distribute, and sell this software and its
+.\" documentation for any purpose is hereby granted without fee, provided that
+.\" the above copyright notice appear in all copies and that both that
+.\" copyright notice and this permission notice appear in supporting
+.\" documentation.
+.\"
+.\" The above copyright notice and this permission notice shall be included
+.\" in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+.\" OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name of The Open Group shall
+.\" not be used in advertising or otherwise to promote the sale, use or
+.\" other dealings in this Software without prior written authorization
+.\" from The Open Group.
+.\"
+.\" Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining a
+.\" copy of this software and associated documentation files (the "Software"),
+.\" to deal in the Software without restriction, including without limitation
+.\" the rights to use, copy, modify, merge, publish, distribute, sublicense,
+.\" and/or sell copies of the Software, and to permit persons to whom the
+.\" Software is furnished to do so, subject to the following conditions:
+.\"
+.\" The above copyright notice and this permission notice (including the next
+.\" paragraph) shall be included in all copies or substantial portions of the
+.\" Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+.\" IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+.\" FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+.\" THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+.\" LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+.\" FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+.\" DEALINGS IN THE SOFTWARE.
+.\"
+.\"
+.TH XDMSHELL __appmansuffix__ __xorgversion__
+.SH NAME
+xdmshell \- shell for starting xdm on login
+.SH SYNOPSIS
+.B SBINDIR/xdmshell
+.SH DESCRIPTION
+.I Xdmshell
+can be used on systems configured to start a console start in text mode by
+default, to allow users to start the X display manager by logging in as a
+special user with the shell set to the xdmshell program.
+.LP
+Many servers set the keyboard to do non-blocking I/O under the assumption that
+they are the only programs attempting to read from the keyboard.
+Unfortunately, some versions of \fIgetty\fP(__adminmansuffix__) will
+immediately see a continuous stream of zero-length reads which they interpret
+as end-of-file indicators. Eventually, \fIinit\fP(__adminmansuffix__) will
+disable logins on that line until somebody types the following as root:
+.RS
+\# kill -HUP 1
+.RE
+.LP
+On some platforms, one alternative is to disable logins on the console
+and always run \fIxdm\fP(__appmansuffix__) from \fI/etc/inittab\fP.
+.LP
+Another approach is to set up an account whose shell is the \fIxdmshell\fP
+program found in the xdm distribution. This program is not installed by
+default so that site administrators will examine it to see if it meets their
+needs. The \fIxdmshell\fP utility makes sure that it is being run from the
+appropriate type of terminal, starts \fIxdm\fP, waits for it to finish, and
+then resets the console if necessary. If the \fIxdm\fP resources file
+(specified by the \fIDisplayManager*resources\fP entry in the
+\fIxdm-config\fP file) contains a binding to the \fIabort-display\fP action
+similar to the following
+.RS
+xlogin*login.translations: #override Ctrl<Key>R: abort-display()
+.RE
+the console can then by restored by pressing the indicated key
+(Control-R in the above example) in the \fIxdm\fP login window.
+.LP
+.ne 10
+The \fIxdmshell\fP program is usually
+installed setuid to root but executable only by members of a special group,
+of which the only member is the account which has \fIxdmshell\fP as its shell:
+.RS
+.nf
+% grep xdm /etc/passwd
+x::101:51:Account for starting up X:/tmp:SBINDIR/xdmshell
+% grep 51 /etc/group
+xdmgrp:*:51:
+% ls -lg SBINDIR/xdmshell
+-rws--x--- 1 root xdmgrp 20338 Nov 1 01:32 SBINDIR/xdmshell
+.fi
+.RE
+.LP
+If the \fIxdm\fP resources have not been configured to have a key bound to
+the \fIabort-display()\fP action, there will be no way for general users to
+login to the console directly. Whether or not this is desirable depends on
+the particular site.
+.SH "SEE ALSO"
+.IR X (__miscmansuffix__),
+.IR xdm (__appmansuffix__),
+.IR xinit (__appmansuffix__)
</PRE>
</BLOCKQUOTE>
<BR>
<BR>
There are 2 problems which I think have a common cause:<BR>
<BR>
'make clean' fails to remove xdmshell.1 which should not have been created in the first place.<BR>
'make distcheck' fails as it encounters xdmshell.1<BR>
<BR>
I think the root cause is the .cpp suffix rule. However it cannot be removed as it used for other targets.<BR>
It might be simpler to copy the design from one of the driver and put the man page in a /man subdir<BR>
and renaming files to xdm*.man. It would be consistent with 90% of x.org modules. I just did one recently<BR>
for libXft.<BR>
<BR>
<BR>
<BR>
</BODY>
</HTML>