<!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 &lt;<A HREF="mailto:alan.coopersmith@oracle.com">alan.coopersmith@oracle.com</A>&gt;
---
 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 &quot;Software&quot;),
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__),
 .\&quot; .IR chooser (__appmansuffix__), \&quot; except that there isn't a manual for it yet
-.\&quot; .IR xdmshell (__appmansuffix__), \&quot; except that there isn't a manual for it yet
+.IR xdmshell (__appmansuffix__),
 .IR fonts.conf (__filemansuffix__).
 .br
 .I &quot;X Display Manager Control Protocol&quot;
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 @@
+.\&quot; Copyright 1989  The Open Group
+.\&quot;
+.\&quot; Permission to use, copy, modify, distribute, and sell this software and its
+.\&quot; documentation for any purpose is hereby granted without fee, provided that
+.\&quot; the above copyright notice appear in all copies and that both that
+.\&quot; copyright notice and this permission notice appear in supporting
+.\&quot; documentation.
+.\&quot;
+.\&quot; The above copyright notice and this permission notice shall be included
+.\&quot; in all copies or substantial portions of the Software.
+.\&quot;
+.\&quot; THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\&quot; OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\&quot; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\&quot; IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+.\&quot; OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+.\&quot; ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+.\&quot; OTHER DEALINGS IN THE SOFTWARE.
+.\&quot;
+.\&quot; Except as contained in this notice, the name of The Open Group shall
+.\&quot; not be used in advertising or otherwise to promote the sale, use or
+.\&quot; other dealings in this Software without prior written authorization
+.\&quot; from The Open Group.
+.\&quot;
+.\&quot; Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+.\&quot;
+.\&quot; Permission is hereby granted, free of charge, to any person obtaining a
+.\&quot; copy of this software and associated documentation files (the &quot;Software&quot;),
+.\&quot; to deal in the Software without restriction, including without limitation
+.\&quot; the rights to use, copy, modify, merge, publish, distribute, sublicense,
+.\&quot; and/or sell copies of the Software, and to permit persons to whom the
+.\&quot; Software is furnished to do so, subject to the following conditions:
+.\&quot;
+.\&quot; The above copyright notice and this permission notice (including the next
+.\&quot; paragraph) shall be included in all copies or substantial portions of the
+.\&quot; Software.
+.\&quot;
+.\&quot; THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+.\&quot; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+.\&quot; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+.\&quot; THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+.\&quot; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+.\&quot; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+.\&quot; DEALINGS IN THE SOFTWARE.
+.\&quot;
+.\&quot;
+.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&lt;Key&gt;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 &quot;SEE ALSO&quot;
+.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>