diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2011-11-15 20:53:46 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2011-11-15 20:53:46 +0000 |
commit | e2b9e6a531074d39884bbfb9fceea5452477e6e1 (patch) | |
tree | 93d4e50881a61fc7863419ba72c5fb77a21c7f43 /app/xdm/man | |
parent | 94d97c4f735232b43d7c8cb8fb1b1262e25850a0 (diff) |
Update to xdm 1.1.11 plus a few patches from git master.
patched to restore static greeter.
Tested by shadchin@, jasper@
Diffstat (limited to 'app/xdm/man')
-rw-r--r-- | app/xdm/man/Makefile.am | 55 | ||||
-rw-r--r-- | app/xdm/man/Makefile.in | 526 | ||||
-rw-r--r-- | app/xdm/man/xdm.man | 1466 | ||||
-rw-r--r-- | app/xdm/man/xdmshell.man | 108 |
4 files changed, 2155 insertions, 0 deletions
diff --git a/app/xdm/man/Makefile.am b/app/xdm/man/Makefile.am new file mode 100644 index 000000000..b71409c49 --- /dev/null +++ b/app/xdm/man/Makefile.am @@ -0,0 +1,55 @@ +# +# 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. +# + +appmandir = $(APP_MAN_DIR) +appman_PRE = xdm.man +appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX)) + +xdmlmandir = $(APP_MAN_DIR) +xdmlman_PRE = xdmshell.man + +if INSTALL_XDMSHELL +xdmlman_DATA = $(xdmlman_PRE:man=$(APP_MAN_SUFFIX)) +else +noinst_DATA = $(xdmlman_PRE:man=$(APP_MAN_SUFFIX)) +endif + +EXTRA_DIST = $(appman_PRE) $(xdmlman_PRE) +CLEANFILES = $(appman_DATA) $(xdmlman_DATA) $(noinst_DATA) +SUFFIXES = .$(APP_MAN_SUFFIX) .man + +# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure +MAN_SUBSTS += -e 's|CHOOSERPATH|$(XDMLIBDIR)/chooser|g' \ + -e 's|XDMLOGDIR|$(XDMLOGDIR)|g' \ + -e 's|XDMDIR|$(XDMCONFIGDIR)|g' \ + -e 's|BINDIR|$(bindir)|g' \ + -e 's|XDMPIDDIR|$(XDMPIDDIR)|g' \ + -e 's|XDMXAUTHDIR|$(XDMXAUTHDIR)|g' \ + -e 's|DEF_USER_PATH|$(DEF_USER_PATH)|g' \ + -e 's|DEF_SYSTEM_PATH|$(DEF_SYSTEM_PATH)|g' \ + -e 's|DEF_GREETER_LIB|$(DEF_GREETER_LIB)|g' \ + -e 's|DEV_RANDOM|$(DEV_RANDOM)|g' \ + -e 's|ARC4_RANDOM|$(HAVE_ARC4RANDOM)|g' + +.man.$(APP_MAN_SUFFIX): + $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ diff --git a/app/xdm/man/Makefile.in b/app/xdm/man/Makefile.in new file mode 100644 index 000000000..e055201c2 --- /dev/null +++ b/app/xdm/man/Makefile.in @@ -0,0 +1,526 @@ +# Makefile.in generated by automake 1.9.6 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005 Free Software Foundation, Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# 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. +# + +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +top_builddir = .. +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = @INSTALL@ +install_sh_DATA = ${SHELL} $(install_sh) -c -m 644 +install_sh_PROGRAM = ${SHELL} $(install_sh) -c +install_sh_SCRIPT = ${SHELL} $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = man +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_define_dir.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(SHELL) $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +SOURCES = +DIST_SOURCES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = `echo $$p | sed -e 's|^.*/||'`; +am__installdirs = "$(DESTDIR)$(appmandir)" "$(DESTDIR)$(xdmlmandir)" +appmanDATA_INSTALL = $(INSTALL_DATA) +xdmlmanDATA_INSTALL = $(INSTALL_DATA) +DATA = $(appman_DATA) $(noinst_DATA) $(xdmlman_DATA) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ADMIN_MAN_DIR = @ADMIN_MAN_DIR@ +ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@ +AMDEP_FALSE = @AMDEP_FALSE@ +AMDEP_TRUE = @AMDEP_TRUE@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APPDEFS_CFLAGS = @APPDEFS_CFLAGS@ +APPDEFS_LIBS = @APPDEFS_LIBS@ +APP_MAN_DIR = @APP_MAN_DIR@ +APP_MAN_SUFFIX = @APP_MAN_SUFFIX@ +AR = @AR@ +AUTH_CFLAGS = @AUTH_CFLAGS@ +AUTH_LIBS = @AUTH_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CHANGELOG_CMD = @CHANGELOG_CMD@ +CHOOSER_CFLAGS = @CHOOSER_CFLAGS@ +CHOOSER_LIBS = @CHOOSER_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CWARNFLAGS = @CWARNFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFAULTVT = @DEFAULTVT@ +DEFS = @DEFS@ +DEF_AUTH_DIR = @DEF_AUTH_DIR@ +DEF_CHOOSER = @DEF_CHOOSER@ +DEF_FAILSAFE_CLIENT = @DEF_FAILSAFE_CLIENT@ +DEF_GREETER_LIB = @DEF_GREETER_LIB@ +DEF_SERVER_LINE = @DEF_SERVER_LINE@ +DEF_SESSION = @DEF_SESSION@ +DEF_SYSTEM_PATH = @DEF_SYSTEM_PATH@ +DEF_SYSTEM_SHELL = @DEF_SYSTEM_SHELL@ +DEF_USER_PATH = @DEF_USER_PATH@ +DEF_XDM_CONFIG = @DEF_XDM_CONFIG@ +DEPDIR = @DEPDIR@ +DEV_RANDOM = @DEV_RANDOM@ +DLLTOOL = @DLLTOOL@ +DMCP_CFLAGS = @DMCP_CFLAGS@ +DMCP_LIBS = @DMCP_LIBS@ +DRIVER_MAN_DIR = @DRIVER_MAN_DIR@ +DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +DYNAMIC_GREETER_FALSE = @DYNAMIC_GREETER_FALSE@ +DYNAMIC_GREETER_TRUE = @DYNAMIC_GREETER_TRUE@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +FILE_MAN_DIR = @FILE_MAN_DIR@ +FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@ +GREP = @GREP@ +HAS_KERBEROS_FIVE_FALSE = @HAS_KERBEROS_FIVE_FALSE@ +HAS_KERBEROS_FIVE_TRUE = @HAS_KERBEROS_FIVE_TRUE@ +HAS_SECURE_RPC_FALSE = @HAS_SECURE_RPC_FALSE@ +HAS_SECURE_RPC_TRUE = @HAS_SECURE_RPC_TRUE@ +HAS_XDM_AUTH_FALSE = @HAS_XDM_AUTH_FALSE@ +HAS_XDM_AUTH_TRUE = @HAS_XDM_AUTH_TRUE@ +HAVE_ARC4RANDOM = @HAVE_ARC4RANDOM@ +HAVE_ARC4RANDOM_FALSE = @HAVE_ARC4RANDOM_FALSE@ +HAVE_ARC4RANDOM_TRUE = @HAVE_ARC4RANDOM_TRUE@ +HAVE_MKTEMP_COMMAND_FALSE = @HAVE_MKTEMP_COMMAND_FALSE@ +HAVE_MKTEMP_COMMAND_TRUE = @HAVE_MKTEMP_COMMAND_TRUE@ +HAVE_SYSTEMD_FALSE = @HAVE_SYSTEMD_FALSE@ +HAVE_SYSTEMD_TRUE = @HAVE_SYSTEMD_TRUE@ +INSTALL_CMD = @INSTALL_CMD@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INSTALL_XDMSHELL_FALSE = @INSTALL_XDMSHELL_FALSE@ +INSTALL_XDMSHELL_TRUE = @INSTALL_XDMSHELL_TRUE@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIB_MAN_DIR = @LIB_MAN_DIR@ +LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@ +LINT = @LINT@ +LINT_FALSE = @LINT_FALSE@ +LINT_FLAGS = @LINT_FLAGS@ +LINT_TRUE = @LINT_TRUE@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@ +MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ + +# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure +MAN_SUBSTS = @MAN_SUBSTS@ -e 's|CHOOSERPATH|$(XDMLIBDIR)/chooser|g' -e \ + 's|XDMLOGDIR|$(XDMLOGDIR)|g' -e 's|XDMDIR|$(XDMCONFIGDIR)|g' \ + -e 's|BINDIR|$(bindir)|g' -e 's|XDMPIDDIR|$(XDMPIDDIR)|g' -e \ + 's|XDMXAUTHDIR|$(XDMXAUTHDIR)|g' -e \ + 's|DEF_USER_PATH|$(DEF_USER_PATH)|g' -e \ + 's|DEF_SYSTEM_PATH|$(DEF_SYSTEM_PATH)|g' -e \ + 's|DEF_GREETER_LIB|$(DEF_GREETER_LIB)|g' -e \ + 's|DEV_RANDOM|$(DEV_RANDOM)|g' -e \ + 's|ARC4_RANDOM|$(HAVE_ARC4RANDOM)|g' +MISC_MAN_DIR = @MISC_MAN_DIR@ +MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@ +MKTEMP_COMMAND = @MKTEMP_COMMAND@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +RANLIB = @RANLIB@ +RAWCPP = @RAWCPP@ +RAWCPPFLAGS = @RAWCPPFLAGS@ +SED = @SED@ +SERVERSTYPE = @SERVERSTYPE@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SHELL_CMD = @SHELL_CMD@ +STRICT_CFLAGS = @STRICT_CFLAGS@ +STRIP = @STRIP@ +SU = @SU@ +SYSTEMD_DAEMON_CFLAGS = @SYSTEMD_DAEMON_CFLAGS@ +SYSTEMD_DAEMON_LIBS = @SYSTEMD_DAEMON_LIBS@ +USE_SYSTEMD_DAEMON_FALSE = @USE_SYSTEMD_DAEMON_FALSE@ +USE_SYSTEMD_DAEMON_TRUE = @USE_SYSTEMD_DAEMON_TRUE@ +USE_XPM_FALSE = @USE_XPM_FALSE@ +USE_XPM_TRUE = @USE_XPM_TRUE@ +UTMP_FILE = @UTMP_FILE@ +VERSION = @VERSION@ +WTMP_FILE = @WTMP_FILE@ +XDMCONFIGDIR = @XDMCONFIGDIR@ +XDMGREET_CFLAGS = @XDMGREET_CFLAGS@ +XDMGREET_LIBS = @XDMGREET_LIBS@ +XDMLIBDIR = @XDMLIBDIR@ +XDMLOGDIR = @XDMLOGDIR@ +XDMPIDDIR = @XDMPIDDIR@ +XDMSCRIPTDIR = @XDMSCRIPTDIR@ +XDMSHELL_CFLAGS = @XDMSHELL_CFLAGS@ +XDMSHELL_LIBS = @XDMSHELL_LIBS@ +XDMXAUTHDIR = @XDMXAUTHDIR@ +XDM_BWPIXMAP = @XDM_BWPIXMAP@ +XDM_CFLAGS = @XDM_CFLAGS@ +XDM_LIBS = @XDM_LIBS@ +XDM_PIXMAP = @XDM_PIXMAP@ +XDM_PIXMAPDIR = @XDM_PIXMAPDIR@ +XDM_TOOLKIT_CFLAGS = @XDM_TOOLKIT_CFLAGS@ +XDM_TOOLKIT_LIBS = @XDM_TOOLKIT_LIBS@ +XFT_CFLAGS = @XFT_CFLAGS@ +XFT_LIBS = @XFT_LIBS@ +XINERAMA_CFLAGS = @XINERAMA_CFLAGS@ +XINERAMA_LIBS = @XINERAMA_LIBS@ +XLIB_CFLAGS = @XLIB_CFLAGS@ +XLIB_LIBS = @XLIB_LIBS@ +XORG_MAN_PAGE = @XORG_MAN_PAGE@ +XPM_CFLAGS = @XPM_CFLAGS@ +XPM_LIBS = @XPM_LIBS@ +XRDB_PROGRAM = @XRDB_PROGRAM@ +XT_CFLAGS = @XT_CFLAGS@ +XT_LIBS = @XT_LIBS@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ +am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +appdefaultdir = @appdefaultdir@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +sysconfdir = @sysconfdir@ +systemdsystemunitdir = @systemdsystemunitdir@ +target_alias = @target_alias@ +appmandir = $(APP_MAN_DIR) +appman_PRE = xdm.man +appman_DATA = $(appman_PRE:man=$(APP_MAN_SUFFIX)) +xdmlmandir = $(APP_MAN_DIR) +xdmlman_PRE = xdmshell.man +@INSTALL_XDMSHELL_TRUE@xdmlman_DATA = $(xdmlman_PRE:man=$(APP_MAN_SUFFIX)) +@INSTALL_XDMSHELL_FALSE@noinst_DATA = $(xdmlman_PRE:man=$(APP_MAN_SUFFIX)) +EXTRA_DIST = $(appman_PRE) $(xdmlman_PRE) +CLEANFILES = $(appman_DATA) $(xdmlman_DATA) $(noinst_DATA) +SUFFIXES = .$(APP_MAN_SUFFIX) .man +all: all-am + +.SUFFIXES: +.SUFFIXES: .$(APP_MAN_SUFFIX) .man +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign man/Makefile'; \ + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign man/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: +install-appmanDATA: $(appman_DATA) + @$(NORMAL_INSTALL) + test -z "$(appmandir)" || $(mkdir_p) "$(DESTDIR)$(appmandir)" + @list='$(appman_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(appmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(appmandir)/$$f'"; \ + $(appmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(appmandir)/$$f"; \ + done + +uninstall-appmanDATA: + @$(NORMAL_UNINSTALL) + @list='$(appman_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(appmandir)/$$f'"; \ + rm -f "$(DESTDIR)$(appmandir)/$$f"; \ + done +install-xdmlmanDATA: $(xdmlman_DATA) + @$(NORMAL_INSTALL) + test -z "$(xdmlmandir)" || $(mkdir_p) "$(DESTDIR)$(xdmlmandir)" + @list='$(xdmlman_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f=$(am__strip_dir) \ + echo " $(xdmlmanDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xdmlmandir)/$$f'"; \ + $(xdmlmanDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xdmlmandir)/$$f"; \ + done + +uninstall-xdmlmanDATA: + @$(NORMAL_UNINSTALL) + @list='$(xdmlman_DATA)'; for p in $$list; do \ + f=$(am__strip_dir) \ + echo " rm -f '$(DESTDIR)$(xdmlmandir)/$$f'"; \ + rm -f "$(DESTDIR)$(xdmlmandir)/$$f"; \ + done +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ + list='$(DISTFILES)'; for file in $$list; do \ + case $$file in \ + $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ + $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ + esac; \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkdir_p) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(DATA) +installdirs: + for dir in "$(DESTDIR)$(appmandir)" "$(DESTDIR)$(xdmlmandir)"; do \ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool + +dvi: dvi-am + +dvi-am: + +html: html-am + +info: info-am + +info-am: + +install-data-am: install-appmanDATA install-xdmlmanDATA + +install-exec-am: + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-appmanDATA uninstall-info-am \ + uninstall-xdmlmanDATA + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-appmanDATA install-data install-data-am install-exec \ + install-exec-am install-info install-info-am install-man \ + install-strip install-xdmlmanDATA installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am uninstall uninstall-am uninstall-appmanDATA \ + uninstall-info-am uninstall-xdmlmanDATA + + +.man.$(APP_MAN_SUFFIX): + $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@ +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/app/xdm/man/xdm.man b/app/xdm/man/xdm.man new file mode 100644 index 000000000..9590c1a32 --- /dev/null +++ b/app/xdm/man/xdm.man @@ -0,0 +1,1466 @@ +.\" Copyright 1988, 1994, 1998 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. +.\" +.\" +.TH XDM 1 __xorgversion__ +.SH NAME +xdm \- X Display Manager with support for XDMCP, host chooser +.SH SYNOPSIS +.B xdm +[ +.B \-config +.I configuration_file +] [ +.B \-nodaemon +] [ +.B \-debug +.I debug_level +] [ +.B \-error +.I error_log_file +] [ +.B \-resources +.I resource_file +] [ +.B \-server +.I server_entry +] [ +.B \-session +.I session_program +] +.SH DESCRIPTION +.I Xdm +manages a collection of X displays, which may be on the local host +or remote servers. The design of +.I xdm +was guided by the needs of X terminals as well as The Open Group standard +XDMCP, the \fIX Display Manager Control Protocol\fP. +.I Xdm +provides services similar to those provided by \fIinit\fP, \fIgetty\fP +and \fIlogin\fP on character terminals: prompting for login name and password, +authenticating the user, and running a ``session.'' +.PP +A ``session'' is defined by the lifetime of a particular process; in the +traditional character-based terminal world, it is the user's login shell. +In the +.I xdm +context, it is an arbitrary session manager. This is because in a windowing +environment, a user's login shell process does not necessarily have any +terminal-like interface with which to connect. +When a real session manager is not available, a window manager or terminal +emulator is typically used as the ``session manager,'' meaning that +termination of this process terminates the user's session. +.PP +When the session is terminated, \fIxdm\fP +resets the X server and (optionally) restarts the whole process. +.PP +When \fIxdm\fP receives an Indirect query via XDMCP, it can run a +\fIchooser\fP process to +perform an XDMCP BroadcastQuery (or an XDMCP Query to specified hosts) +on behalf of the display and +offer a menu of possible hosts that offer XDMCP display management. +This feature is useful with X terminals that do not offer a host +menu themselves. +.PP +.I Xdm +can be configured to ignore BroadcastQuery messages from selected hosts. +This is useful when you don't want the host to appear in menus produced +by +.I chooser +or X terminals themselves. +.PP +Because +.I xdm +provides the first interface that users will see, it is designed to be +simple to use and easy to customize to the needs of a particular site. +.I Xdm +has many options, most of which have reasonable defaults. Browse through the +various sections of this manual, +picking and choosing the things you want to change. +Pay particular attention to the +.B "Session Program" +section, which will describe how to +set up the style of session desired. +.SH "OVERVIEW" +\fIxdm\fP is highly configurable, and most of its behavior can be +controlled by resource files and shell scripts. The names of these +files themselves are resources read from the file \fIxdm-config\fP or +the file named by the \fB\-config\fP option. +.PP +\fIxdm\fP offers display management two different ways. It can manage +X servers running on the local machine and specified in +\fIXservers\fP, and it can manage remote X servers (typically X +terminals) using XDMCP (the XDM Control Protocol) +as specified in the \fIXaccess\fP file. +.PP +The resources of the X clients run by \fIxdm\fP outside the user's +session, including \fIxdm\fP's own login window, can be +affected by setting resources in the \fIXresources\fP file. +.PP +For X terminals that do not offer a menu of hosts to get display +management from, \fIxdm\fP can collect willing hosts and run the +\fIchooser\fP program to offer the user a menu. +For X displays attached to a host, this step is typically not used, as +the local host does the display management. +.PP +After resetting the X server, \fIxdm\fP runs the \fIXsetup\fP script +to assist in setting up the screen the user sees along with the +\fIxlogin\fP widget. +.PP +The \fIxlogin\fP widget, which \fIxdm\fP presents, +offers the familiar login and password prompts. +.PP +After the user logs in, \fIxdm\fP runs the \fIXstartup\fP script as +root. +.PP +Then \fIxdm\fP runs the \fIXsession\fP script as the user. This +system session file may do some additional startup and typically runs +the \fI.xsession\fP script in the user's home directory. +When the \fIXsession\fP script exits, the session is over. +.PP +At the end of the session, the \fIXreset\fP script is run to clean up, +the X server is reset, and the cycle starts over. +.PP +The file \fI XDMLOGDIR/xdm.log\fP will contain error +messages from +.I xdm +and anything output to stderr by \fIXsetup, Xstartup, Xsession\fP +or \fIXreset\fP. +When you have trouble getting +.I xdm +working, check this file to see if +.I xdm +has any clues to the trouble. +.SH OPTIONS +.PP +All of these options, except \fB\-config\fP itself, +specify values that can also be specified in the configuration file +as resources. +.IP "\fB\-config\fP \fIconfiguration_file\fP" +Names the configuration file, which specifies resources to control +the behavior of +.I xdm. +.I XDMDIR/xdm-config +is the default. +See the section \fBConfiguration File\fP. +.IP "\fB\-nodaemon\fP" +Specifies ``false'' as the value for the \fBDisplayManager.daemonMode\fP +resource. +This suppresses the normal daemon behavior, which is for +.I xdm +to close all file descriptors, disassociate itself from +the controlling terminal, and put +itself in the background when it first starts up. +.IP "\fB\-debug\fP \fIdebug_level\fP" +Specifies the numeric value for the \fBDisplayManager.debugLevel\fP +resource. A non-zero value causes +.I xdm +to print lots of debugging statements to the terminal; it also disables the +\fBDisplayManager.daemonMode\fP resource, forcing +.I xdm +to run synchronously. To interpret these debugging messages, a copy +of the source code for +.I xdm +is almost a necessity. No attempt has been +made to rationalize or standardize the output. +.IP "\fB\-error\fP \fIerror_log_file\fP" +Specifies the value for the \fBDisplayManager.errorLogFile\fP resource. +This file contains errors from +.I xdm +as well as anything written to stderr by the various scripts and programs +run during the progress of the session. +.IP "\fB\-resources\fP \fIresource_file\fP" +Specifies the value for the \fBDisplayManager*resources\fP resource. This file +is loaded using +.IR xrdb (__appmansuffix__) +to specify configuration parameters for the +authentication widget. +.IP "\fB\-server\fP \fIserver_entry\fP" +Specifies the value for the \fBDisplayManager.servers\fP resource. +See the section +.B "Local Server Specification" +for a description of this resource. +.IP "\fB\-udpPort\fP \fIport_number\fP" +Specifies the value for the \fBDisplayManager.requestPort\fP resource. This +sets the port-number which +.I xdm +will monitor for XDMCP requests. If set to 0, xdm will not listen +for XDMCP or Chooser requests. As XDMCP uses the registered well-known +UDP port 177, this resource should not be changed to a value other than 0, +except for debugging. +.IP "\fB\-session\fP \fIsession_program\fP" +Specifies the value for the \fBDisplayManager*session\fP resource. This +indicates the program to run as the session after the user has logged in. +.IP "\fB\-xrm\fP \fIresource_specification\fP" +Allows an arbitrary resource to be specified, as in most +X Toolkit applications. +.SH RESOURCES +At many stages the actions of +.I xdm +can be controlled through the use of its configuration file, which is in the +X resource format. +Some resources modify the behavior of +.I xdm +on all displays, +while others modify its behavior on a single display. Where actions relate +to a specific display, +the display name is inserted into the resource name between +``DisplayManager'' and the final resource name segment. +.PP +For local displays, the resource name and class are as read from the +\fIXservers\fP file. +.PP +For remote displays, the resource name is what the network address of +the display resolves to. See the \fBremoveDomain\fP resource. The +name must match exactly; \fIxdm\fP is not aware of +all the network aliases that might reach a given display. +If the name resolve fails, the address is +used. The resource class is as sent by the display in the XDMCP +Manage request. +.PP +Because the resource +manager uses colons to separate the name of the resource from its value and +dots to separate resource name parts, +.I xdm +substitutes underscores for both dots and colons when generating the resource +name. +For example, \fBDisplayManager.expo_x_org_0.startup\fP is the name of the +resource which defines the startup shell file for the ``expo.x.org:0'' display. +.\" +.IP "\fBDisplayManager.servers\fP" +This resource either specifies a file name full of server entries, one per +line (if the value starts with a slash), or a single server entry. +See the section \fBLocal Server Specification\fP for the details. +.IP "\fBDisplayManager.requestPort\fP" +This indicates the UDP port number which +.I xdm +uses to listen for incoming XDMCP requests. Unless you need to debug the +system, leave this with its default value of 177. +.IP "\fBDisplayManager.errorLogFile\fP" +Error output is normally directed at the system console. To redirect it, +set this resource to a file name. A method to send these messages to +.I syslog +should be developed for systems which support it; however, the +wide variety of interfaces precludes any system-independent +implementation. This file also contains any output directed to stderr +by the \fIXsetup, Xstartup, Xsession\fP and \fIXreset\fP files, +so it will contain descriptions +of problems in those scripts as well. +.IP "\fBDisplayManager.debugLevel\fP" +If the integer value of this resource is greater than zero, +reams of +debugging information will be printed. It also disables daemon mode, which +would redirect the information into the bit-bucket, and +allows non-root users to run +.I xdm, +which would normally not be useful. +.IP "\fBDisplayManager.daemonMode\fP" +Normally, +.I xdm +attempts to make itself into a daemon process unassociated with any terminal. +This is +accomplished by forking and leaving the parent process to exit, then closing +file descriptors and releasing the controlling terminal. In some +environments this is not desired (in particular, when debugging). Setting +this resource to ``false'' will disable this feature. +.IP "\fBDisplayManager.pidFile\fP" +The filename specified will be created to contain an ASCII +representation of the process-id of the main +.I xdm +process. +.I Xdm +also uses file locking on this file +to attempt to eliminate multiple daemons running on +the same machine, which would cause quite a bit of havoc. +.IP "\fBDisplayManager.lockPidFile\fP" +This is the resource which controls whether +.I xdm +uses file locking to keep multiple display managers from running amok. +On System V, this +uses the \fIlockf\fP library call, while on BSD it uses \fIflock.\fP +.IP "\fBDisplayManager.authDir\fP" +This names a directory under which +.I xdm +stores authorization files while initializing the session. The +default value is \fI XDMXAUTHDIR.\fP +Can be overridden for specific displays by +DisplayManager.\fIDISPLAY\fP.authFile. +.IP \fBDisplayManager.autoRescan\fP +This boolean controls whether +.I xdm +rescans the configuration, servers, access control and authentication keys +files after a session terminates and the files have changed. By default it +is ``true.'' You can force +.I xdm +to reread these files by sending a SIGHUP to the main process. +.IP "\fBDisplayManager.removeDomainname\fP" +When computing the display name for XDMCP clients, the name resolver will +typically create a fully qualified host name for the terminal. As this is +sometimes confusing, +.I xdm +will remove the domain name portion of the host name if it is the same as the +domain name of the local host when this variable is set. By default the +value is ``true.'' +.IP "\fBDisplayManager.keyFile\fP" +XDM-AUTHENTICATION-1 style XDMCP authentication requires that a private key +be shared between +.I xdm +and the terminal. This resource specifies the file containing those +values. Each entry in the file consists of a display name and the shared +key. By default, +.I xdm +does not include support for XDM-AUTHENTICATION-1, as it requires DES which +is not generally distributable because of United States export restrictions. +.IP \fBDisplayManager.accessFile\fP +To prevent unauthorized XDMCP service and to allow forwarding of XDMCP +IndirectQuery requests, this file contains a database of hostnames which are +either allowed direct access to this machine, or have a list of hosts to +which queries should be forwarded to. The format of this file is described +in the section +.B "XDMCP Access Control." +.IP \fBDisplayManager.exportList\fP +A list of additional environment variables, separated by white space, +to pass on to the \fIXsetup\fP, +\fIXstartup\fP, \fIXsession\fP, and \fIXreset\fP programs. +.\" The command "if 'x.A'x' .ig" causes everything up to .. to be ignored +.\" if A is replaced by an empty string in the sed processing, otherwise +.\" it will be output as normal. +.if !'x.ARC4_RANDOM'x.' .ig +.IP \fBDisplayManager.randomFile\fP +A file to checksum to generate the seed of authorization keys. +This should be a file that changes frequently. +The default is \fI/dev/mem\fP. +.. +.if 'x.DEV_RANDOM'x.' .ig +.IP \fBDisplayManager.randomDevice\fP +A file to read 8 bytes from to generate the seed of authorization keys. +The default is \fI DEV_RANDOM \fP. If this file cannot be read, or if a +read blocks for more than 5 seconds, xdm falls back to using a checksum +of \fBDisplayManager.randomFile\fP to generate the seed. +.. +.if !'x.ARC4_RANDOM'x.' .ig +.IP \fBDisplayManager.prngdSocket\fP +.IP \fBDisplayManager.prngPort\fP +A UNIX domain socket name or a TCP socket port number on local host on +which a Pseudo-Random Number Generator Daemon, like EGD +(http://egd.sourceforge.net) is listening, in order to generate the +autorization keys. Either a non null port or a valid socket name must +be specified. The default is to use the Unix-domain socket +\fI/tmp/entropy\fP. +.PP +On systems that don't have such a daemon, a fall-back entropy +gathering system, based on various log file contents hashed by the MD5 +algorithm is used instead. +.. +.IP \fBDisplayManager.greeterLib\fP +On systems that support a dynamically-loadable greeter library, the +name of the library. The default is +\fI DEF_GREETER_LIB\fP. +.IP \fBDisplayManager.choiceTimeout\fP +Number of seconds to wait for display to respond after user has +selected a host from the chooser. If the display sends an XDMCP +IndirectQuery within this time, the request is forwarded to the chosen +host. Otherwise, it is assumed to be from a new session and the +chooser is offered again. +Default is 15. +.IP \fBDisplayManager.sourceAddress\fP +Use the numeric IP address of the incoming connection on multihomed hosts +instead of the host name. This is to avoid trying to connect on the wrong +interface which might be down at this time. +.IP \fBDisplayManager.willing\fP +This specifies a program which is run (as) root when an an XDMCP +BroadcastQuery is received and this host is configured to offer XDMCP +display management. The output of this program may be displayed on a chooser +window. If no program is specified, the string \fIWilling to manage\fP is +sent. +.PP +.\" +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resources\fP" +This resource specifies the name of the file to be loaded by \fIxrdb\fP +as the resource database onto the root window of screen 0 of the display. +The \fIXsetup\fP program, the Login widget, and \fIchooser\fP will use +the resources set in this file. +This resource data base is loaded just before the authentication procedure +is started, so it can control the appearance of the login window. See the +section +.B "Authentication Widget," +which describes the various +resources that are appropriate to place in this file. +There is no default value for this resource, but +\fI XDMDIR/Xresources\fP +is the conventional name. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.chooser\fP" +Specifies the program run to offer a host menu for Indirect queries +redirected to the special host name CHOOSER. +\fI CHOOSERPATH \fP is the default. +See the sections \fBXDMCP Access Control\fP and \fBChooser\fP. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.xrdb\fP" +Specifies the program used to load the resources. By default, +.I xdm +uses \fI BINDIR/xrdb\fP. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.cpp\fP" +This specifies the name of the C preprocessor which is used by \fIxrdb\fP. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.setup\fP" +This specifies a program which is run (as root) before offering the +Login window. This may be used to change the appearance of the screen +around the Login window or to put up other windows (e.g., you may want +to run \fIxconsole\fP here). +By default, no program is run. The conventional name for a +file used here is \fIXsetup\fP. +See the section \fBSetup Program.\fP +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.startup\fP" +This specifies a program which is run (as root) after the authentication +process succeeds. By default, no program is run. The conventional name for a +file used here is \fIXstartup\fP. +See the section \fBStartup Program.\fP +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.session\fP" +This specifies the session to be executed (not running as root). +By default, \fI BINDIR/xterm\fP is +run. The conventional name is \fIXsession\fP. +See the section +.B "Session Program." +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.reset\fP" +This specifies a program which is run (as root) after the session terminates. +By default, no program is run. +The conventional name is \fIXreset\fP. +See the section +.B "Reset Program." +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.openDelay\fP" +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.openRepeat\fP" +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.openTimeout\fP" +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.startAttempts\fP" +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.reservAttempts\fP" +These numeric resources control the behavior of +.I xdm +when attempting to open intransigent servers. \fBopenDelay\fP is +the length of the +pause in seconds between successive attempts, \fBopenRepeat\fP is the +number of attempts to make, \fBopenTimeout\fP is the amount of time +to wait while actually +attempting the open (i.e., the maximum time spent in the +.IR connect (2) +system call) and \fBstartAttempts\fP is the number of times this +entire process is done before giving up on the server. +After \fBopenRepeat\fP attempts have been made, or +if \fBopenTimeout\fP seconds elapse in any particular attempt, +.I xdm +terminates and restarts the server, attempting to connect again. +This process is repeated \fBstartAttempts\fP times, at which point +the display is declared dead and disabled. Although +this behavior may seem arbitrary, it has been empirically developed and +works quite well on most systems. The bound \fBreservAttempts\fP +is the number of times a successful connect is allowed to be followed +by a fatal error. When reached, the display is disabled. +The default values are +\fBopenDelay\fP: 15, \fBopenRepeat\fP: 5, \fBopenTimeout\fP: 120, +\fBstartAttempts\fP: 4 and \fBreservAttempts\fP: 2. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.pingInterval\fP" +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.pingTimeout\fP" +To discover when remote displays disappear, +.I xdm +occasionally pings them, using an X connection and \fIXSync\fP +calls. \fBpingInterval\fP specifies the time (in minutes) between each +ping attempt, \fBpingTimeout\fP specifies the maximum amount of time (in +minutes) to wait for the terminal to respond to the request. If the +terminal does not respond, the session is declared dead and terminated. By +default, both are set to 5 minutes. If you frequently use X terminals which +can become isolated from the managing host, you may wish to increase this +value. The only worry is that sessions will continue to exist after the +terminal has been accidentally disabled. +.I xdm +will not ping local displays. Although it would seem harmless, it is +unpleasant when the workstation session is terminated as a result of the +server hanging for NFS service and not responding to the ping. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.terminateServer\fP" +This boolean resource specifies whether the X server should be terminated +when a session terminates (instead of resetting it). This option can be +used when the server tends to grow without bound over time, in order to limit +the amount of time the server is run. The default value is ``false.'' +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.userPath\fP" +.I Xdm +sets the PATH environment variable for the session to this value. It should +be a colon separated list of directories; see +.IR sh (__appmansuffix__) +for a full description. +The default value is ``DEF_USER_PATH''. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemPath\fP" +.I Xdm +sets the PATH environment variable for the startup and reset scripts to the +value of this resource. The default for this resource is ``DEF_SYSTEM_PATH''. +Note the absence of ``.'' from this entry. This is a good practice to +follow for root; it avoids many common Trojan Horse system penetration +schemes. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemShell\fP" +.I Xdm +sets the SHELL environment variable for the startup and reset scripts to the +value of this resource. It is \fI/bin/sh\fP by default. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.failsafeClient\fP" +If the default session fails to execute, +.I xdm +will fall back to this program. This program is executed with no +arguments, but executes using the same environment variables as +the session would have had (see the section \fBSession Program\fP). +By default, \fI BINDIR/xterm\fP is used. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.grabServer\fP" +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.grabTimeout\fP" +To improve security, +.I xdm +grabs the server and keyboard while reading the login name and password. +The +\fBgrabServer\fP resource specifies if the server should be held for the +duration of the name/password reading. When ``false,'' the server is ungrabbed +after the keyboard grab succeeds, otherwise the server is grabbed until just +before the session begins. The default is ``false.'' +The \fBgrabTimeout\fP resource specifies the maximum time +.I xdm +will wait for the grab to succeed. The grab may fail if some other +client has the server grabbed, or possibly if the network latencies +are very high. This resource has a default value of 3 seconds; you +should be cautious when raising it, as a user can be spoofed by a +look-alike window on the display. If the grab fails, +.I xdm +kills and restarts the server (if possible) and the session. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.authorize\fP" +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.authName\fP" +\fBauthorize\fP is a boolean resource which controls whether +.I xdm +generates and uses authorization for the local server connections. If +authorization is used, \fBauthName\fP is a list +of authorization mechanisms to use, separated by white space. +XDMCP connections dynamically specify which +authorization mechanisms are supported, so +\fBauthName\fP is ignored in this case. When \fBauthorize\fP is set for a +display and authorization is not available, the user is informed by having a +different message displayed in the login widget. By default, \fBauthorize\fP +is ``true,'' \fBauthName\fP is ``MIT-MAGIC-COOKIE-1,'' or, if +XDM-AUTHORIZATION-1 is available, ``XDM-AUTHORIZATION-1\0MIT-MAGIC-COOKIE-1.'' +.IP \fBDisplayManager.\fP\fIDISPLAY\fP\fB.authFile\fP +This file is used to communicate the authorization data from +.I xdm +to the server, using the \fB\-auth\fP server command line option. +It should be +kept in a directory which is not world-writable as it could easily be +removed, disabling the authorization mechanism in the server. +If not specified, a name is generated from DisplayManager.authDir and +the name of the display. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.authComplain\fP" +If set to ``false,'' disables the use of the \fBunsecureGreeting\fP +in the login window. +See the section \fBAuthentication Widget.\fP +The default is ``true.'' +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resetSignal\fP" +The number of the signal \fIxdm\fP sends to reset the server. +See the section \fBControlling the Server.\fP +The default is 1 (SIGHUP). +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.termSignal\fP" +The number of the signal \fIxdm\fP sends to terminate the server. +See the section \fBControlling the Server.\fP +The default is 15 (SIGTERM). +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resetForAuth\fP" +The original implementation of authorization in the sample server reread the +authorization file at server reset time, instead of when checking the +initial connection. As +.I xdm +generates the authorization information just before connecting to the +display, an old server would not get up-to-date authorization information. +This resource causes +.I xdm +to send SIGHUP to the server after setting up the file, causing an +additional server reset to occur, during which time the new authorization +information will be read. +The default is ``false,'' which will work for all MIT servers. +.IP "\fBDisplayManager.\fP\fIDISPLAY\fP\fB.userAuthDir\fP" +When +.I xdm +is unable to write to the usual user authorization file ($HOME/.Xauthority), +it creates a unique file name in this directory and points the environment +variable XAUTHORITY at the created file. It uses \fI/tmp\fP by default. +.SH "CONFIGURATION FILE" +First, the +.I xdm +configuration file should be set up. +Make a directory (usually \fI XDMDIR\fP) to contain all +of the relevant files. +.LP +Here is a reasonable configuration file, which could be +named \fIxdm-config\fP: +.nf + +.ta .5i 4i + + DisplayManager.servers: XDMDIR/Xservers + DisplayManager.errorLogFile: XDMLOGDIR/xdm.log + DisplayManager*resources: XDMDIR/Xresources + DisplayManager*startup: XDMDIR/Xstartup + DisplayManager*session: XDMDIR/Xsession + DisplayManager.pidFile: XDMPIDDIR/xdm-pid + DisplayManager._0.authorize: true + DisplayManager*authorize: false + +.fi +.PP +Note that this file mostly contains references to other files. Note also +that some of the resources are specified with ``*'' separating the +components. These resources can be made unique for each different display, +by replacing the ``*'' with the display-name, but normally this is not very +useful. See the \fBResources\fP section for a complete discussion. +.SH "XDMCP ACCESS CONTROL" +.PP +The database file specified by the \fBDisplayManager.accessFile\fP provides +information which +.I xdm +uses to control access from displays requesting XDMCP service. This file +contains three types of entries: entries which control the response to +Direct and Broadcast queries, entries which control the response to +Indirect queries, and macro definitions. +.PP +The format of the Direct entries is simple, either a host name or a +pattern, which is distinguished from a host name by the inclusion of +one or more meta characters (`*' matches any sequence of 0 or more +characters, and `?' matches any single character) which are compared against +the host name of the display device. +If the entry is a host name, all comparisons are done using +network addresses, so any name which converts to the correct network address +may be used. +For patterns, only canonical host names are used +in the comparison, so ensure that you do not attempt to match +aliases. +Preceding either a host name or a pattern with a `!' character +causes hosts which +match that entry to be excluded. +.PP +To only respond to Direct queries for a host or pattern, +it can be followed by the optional ``NOBROADCAST'' keyword. +This can be used to prevent an xdm server from appearing on +menus based on Broadcast queries. +.PP +An Indirect entry also contains a host name or pattern, +but follows it with a list of +host names or macros to which indirect queries should be sent. +.PP +A macro definition contains a macro name and a list of host names and +other macros that +the macro expands to. To distinguish macros from hostnames, macro +names start with a `%' character. Macros may be nested. +.PP +Indirect entries +may also specify to have \fIxdm\fP run \fIchooser\fP to offer a menu +of hosts to connect to. See the section \fBChooser\fP. +.PP +When checking access for a particular display host, each entry is scanned in +turn and the first matching entry determines the response. Direct and +Broadcast +entries are ignored when scanning for an Indirect entry and vice-versa. +.PP +Blank lines are ignored, `#' is treated as a comment +delimiter causing the rest of that line to be ignored, +and `\e\fInewline\fP' +causes the newline to be ignored, allowing indirect host lists to span +multiple lines. +.PP +Here is an example Xaccess file: +.LP +.ta 2i 4i +.nf +# +# Xaccess \- XDMCP access control file +# + +# +# Direct/Broadcast query entries +# + +!xtra.lcs.mit.edu # disallow direct/broadcast service for xtra +bambi.ogi.edu # allow access from this particular display +*.lcs.mit.edu # allow access from any display in LCS + +*.deshaw.com NOBROADCAST # allow only direct access +*.gw.com # allow direct and broadcast + +# +# Indirect query entries +# + +%HOSTS expo.lcs.mit.edu xenon.lcs.mit.edu \\ + excess.lcs.mit.edu kanga.lcs.mit.edu + +extract.lcs.mit.edu xenon.lcs.mit.edu #force extract to contact xenon +!xtra.lcs.mit.edu dummy #disallow indirect access +*.lcs.mit.edu %HOSTS #all others get to choose +.fi +.PP +If compiled with IPv6 support, multicast address groups may also be included +in the list of addresses indirect queries are set to. Multicast addresses +may be followed by an optional / character and hop count. If no hop count is +specified, the multicast hop count defaults to 1, keeping the packet on the +local network. For IPv4 multicasting, the hop count is used as the TTL. +.PP +Examples: +.LP +.ta 2.1i 4.5i +.nf +rincewind.sample.net ff02::1 #IPv6 Multicast to ff02::1 +\& #with a hop count of 1 +ponder.sample.net CHOOSER 239.192.1.1/16 #Offer a menu of hosts +\& #who respond to IPv4 Multicast +\& # to 239.192.1.1 with a TTL of 16 +.fi +.SH CHOOSER +.PP +For X terminals that do not offer a host menu for use with Broadcast +or Indirect queries, the \fIchooser\fP program can do this for them. +In the \fIXaccess\fP file, specify ``CHOOSER'' as the first entry in +the Indirect host list. \fIChooser\fP will send a Query request to +each of the remaining host names in the list and offer a menu of all +the hosts that respond. +.PP +The list may consist of the word ``BROADCAST,'' in which case +\fIchooser\fP will send a Broadcast instead, again offering a menu of +all hosts that respond. Note that on some operating systems, UDP +packets cannot be broadcast, so this feature will not work. +.PP +Example \fIXaccess\fP file using \fIchooser\fP: + +.nf +extract.lcs.mit.edu CHOOSER %HOSTS #offer a menu of these hosts +xtra.lcs.mit.edu CHOOSER BROADCAST #offer a menu of all hosts +.fi +.PP +The program to use for \fIchooser\fP is specified by the +\fBDisplayManager.\fP\fIDISPLAY\fP\fB.chooser\fP resource. For more +flexibility at this step, the chooser could be a shell script. +\fIChooser\fP is the session manager here; it is run instead of a +child \fIxdm\fP to manage the display. +.PP +Resources for this program +can be put into the file named by +\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resources\fP. +.PP +When the user selects a host, \fIchooser\fP prints the host chosen, +which is read by the parent \fIxdm\fP, and exits. +\fIxdm\fP closes its connection to the X server, and the server resets +and sends another \fBIndirect\fP XDMCP request. +\fIxdm\fP remembers the user's choice (for +\fBDisplayManager.choiceTimeout\fP seconds) and forwards the request +to the chosen host, which starts a session on that display. +.\" +.SH LISTEN +The following configuration directive is also defined for the Xaccess +configuration file: +.IP "\fBLISTEN\fP \fIinterface\fP \fI[list of multicast group addresses]\fP" +\fIinterface\fP may be a hostname or IP address representing a +network interface on this machine, or the wildcard * to represent all +available network interfaces. +.PP +If one or more LISTEN lines are specified, xdm only listens for XDMCP +connections on the specified interfaces. If multicast group addresses +are listed on a listen line, xdm joins the multicast groups on the +given interface. +.PP +If no LISTEN lines are given, the original behavior of listening on +all interfaces is preserved for backwards compatibility. +Additionally, if no LISTEN is specified, xdm joins the default XDMCP +IPv6 multicast group, when compiled with IPv6 support. +.PP +To disable listening for XDMCP connections altogther, a line of LISTEN +with no addresses may be specified, or the previously supported method +of setting DisplayManager.requestPort to 0 may be used. +.PP +Examples: +.ta 2i 4i +.nf +LISTEN * ff02::1 # Listen on all interfaces and to the +\& # ff02::1 IPv6 multicast group. +LISTEN 10.11.12.13 # Listen only on this interface, as long +\& # as no other listen directives appear in +\& # file. +.fi +.SH "IPv6 MULTICAST ADDRESS SPECIFICATION" +.PP +The Internet Assigned Numbers Authority has has assigned +ff0\fIX\fP:0:0:0:0:0:0:12b as the permanently assigned range of +multicast addresses for XDMCP. The \fIX\fP in the prefix may be replaced +by any valid scope identifier, such as 1 for Interface-Local, 2 for Link-Local, +5 for Site-Local, and so on. (See IETF RFC 4291 or its replacement for +further details and scope definitions.) xdm defaults to listening on the +Link-Local scope address ff02:0:0:0:0:0:0:12b to most closely match the +old IPv4 subnet broadcast behavior. +.SH "LOCAL SERVER SPECIFICATION" +.PP +The resource \fBDisplayManager.servers\fP gives a server specification +or, if the values starts with a slash (/), the name of a file +containing server specifications, one per line. +.PP +Each specification +indicates a display which should constantly be managed and which is +not using XDMCP. +This method is used typically for local servers only. If the resource +or the file named by the resource is empty, \fIxdm\fP will offer XDMCP +service only. +.PP +Each specification consists of at least three parts: a display +name, a display class, a display type, and (for local servers) a command +line to start the server. A typical entry for local display number 0 would +be: +.nf + + :0 Digital-QV local BINDIR/X :0 + +.fi +The display types are: +.ta 1i +.nf + +local local display: \fIxdm\fP must run the server +foreign remote display: \fIxdm\fP opens an X connection to a running server + +.fi +.PP +The display name must be something that can be passed in the \fB\-display\fP +option to an X program. This string is used to generate the display-specific +resource names, so be careful to match the +names (e.g., use ``:0 Sun-CG3 local BINDIR/X :0'' instead of +``localhost:0 Sun-CG3 local BINDIR/X :0'' +if your other resources are specified as +``DisplayManager._0.session''). The display class portion is also used in the +display-specific resources, as the class of the resource. This is +useful if you have a large collection of similar displays (such as a corral of +X terminals) and would like to set resources for groups of them. When using +XDMCP, the display is required to specify the display class, so the manual +for your particular X terminal should document the display class +string for your device. If it doesn't, you can run +.I xdm +in debug mode and +look at the resource strings which it generates for that device, which will +include the class string. +.PP +When \fIxdm\fP starts a session, it sets up authorization data for the +server. For local servers, \fIxdm\fP passes +``\fB\-auth\fP \fIfilename\fP'' on the server's command line to point +it at its authorization data. +For XDMCP servers, \fIxdm\fP passes the +authorization data to the server via the \fBAccept\fP XDMCP request. +.SH RESOURCES FILE +The \fIXresources\fP file is +loaded onto the display as a resource database using +.I xrdb. +As the authentication +widget reads this database before starting up, it usually contains +parameters for that widget: +.nf +.ta .5i 1i + + xlogin*login.translations: #override\\ + Ctrl<Key>R: abort-display()\\n\\ + <Key>F1: set-session-argument(failsafe) finish-field()\\n\\ + <Key>Return: set-session-argument() finish-field() + xlogin*borderWidth: 3 + xlogin*greeting: CLIENTHOST +\& #ifdef COLOR + xlogin*greetColor: CadetBlue + xlogin*failColor: red +\& #endif + +.fi +.PP +Please note the translations entry; it specifies +a few new translations for the widget which allow users to escape from the +default session (and avoid troubles that may occur in it). Note that if +\&#override is not specified, the default translations are removed and replaced +by the new value, not a very useful result as some of the default translations +are quite useful (such as ``<Key>: insert-char ()'' which responds to normal +typing). +.PP +This file may also contain resources for the setup program and \fIchooser\fP. +.SH "SETUP PROGRAM" +The \fIXsetup\fP file is run after +the server is reset, but before the Login window is offered. +The file is typically a shell script. +It is run as root, so should be careful about security. +This is the place to change the root background or bring up other +windows that should appear on the screen along with the Login widget. +.PP +In addition to any specified by \fBDisplayManager.exportList\fP, +the following environment variables are passed: +.nf +.ta .5i 2i + + DISPLAY the associated display name + PATH the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemPath\fP + SHELL the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemShell\fP + XAUTHORITY may be set to an authority file +.fi +.PP +Note that since \fIxdm\fP grabs the keyboard, any other windows will not be +able to receive keyboard input. They will be able to interact with +the mouse, however; beware of potential security holes here. +If \fBDisplayManager.\fP\fIDISPLAY\fP\fB.grabServer\fP is set, +\fIXsetup\fP will not be able to connect +to the display at all. +Resources for this program +can be put into the file named by +\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resources\fP. +.PP +Here is a sample \fIXsetup\fP script: +.nf + +\& #!/bin/sh +\& # Xsetup_0 \- setup script for one workstation + xcmsdb < XDMDIR/monitors/alex.0 + xconsole\0\-geometry\0480x130\-0\-0\0\-notify\0\-verbose\0\-exitOnFail & + +.fi +.SH "AUTHENTICATION WIDGET" +The authentication widget prompts the user for the username, password, and/or +other required authentication data from the keyboard. Nearly every imaginable +parameter can be controlled with a resource. Resources for this widget +should be put into the file named by +\fBDisplayManager.\fP\fIDISPLAY\fP\fB.resources\fP. All of these have reasonable +default values, so it is not necessary to specify any of them. +.PP +The resource file is loaded with +.IR xrdb (__appmansuffix__) +so it may use the substitutions defined by that program such as CLIENTHOST +for the client hostname in the login message, or C pre-processor #ifdef +statements to produce different displays depending on color depth or other +variables. +.PP +.I Xdm +can be compiled with support for the +.IR Xft (__libmansuffix__) +library for font rendering. If this support is present, font faces are +specified using the resources with names ending in ``face'' in the +fontconfig face format described in the +.I Font Names +section of +.IR fonts.conf (__filemansuffix__). +If not, then fonts are specified using the resources with names ending +in ``font'' in the traditional +.I X Logical Font Description +format described in the +.I Font Names +section of +.IR X (__miscmansuffix__). +.IP "\fBxlogin.Login.width, xlogin.Login.height, xlogin.Login.x, xlogin.Login.y\fP" +The geometry of the Login widget is normally computed automatically. If you +wish to position it elsewhere, specify each of these resources. +.IP "\fBxlogin.Login.foreground\fP" +The color used to display the input typed by the user. +.IP "\fBxlogin.Login.face\fP" +The face used to display the input typed by the user when built with Xft +support. The default is ``Serif-18''. +.IP "\fBxlogin.Login.font\fP" +The font used to display the input typed by the user when not built with Xft +support. +.IP "\fBxlogin.Login.greeting\fP" +A string which identifies this window. +The default is ``X Window System.'' +.IP "\fBxlogin.Login.unsecureGreeting\fP" +When X authorization is requested in the configuration file for this +display and none is in use, this greeting replaces the standard +greeting. The default is ``This is an unsecure session'' +.IP "\fBxlogin.Login.greetFace\fP" +The face used to display the greeting when built with Xft support. +The default is ``Serif-24:italic''. +.IP "\fBxlogin.Login.greetFont\fP" +The font used to display the greeting when not built with Xft support. +.IP "\fBxlogin.Login.greetColor\fP" +The color used to display the greeting. +.IP "\fBxlogin.Login.namePrompt\fP" +The string displayed to prompt for a user name. +.I Xrdb +strips trailing white space from resource values, so to add spaces at +the end of the prompt (usually a nice thing), add spaces escaped with +backslashes. The default is ``Login: '' +.IP "\fBxlogin.Login.passwdPrompt\fP" +The string displayed to prompt for a password, when not using an authentication +system such as PAM that provides its own prompts. +The default is ``Password: '' +.IP "\fBxlogin.Login.promptFace\fP" +The face used to display prompts when built with Xft support. +The default is ``Serif-18:bold''. +.IP "\fBxlogin.Login.promptFont\fP" +The font used to display prompts when not built with Xft support. +.IP "\fBxlogin.Login.promptColor\fP" +The color used to display prompts. +.IP "\fBxlogin.Login.changePasswdMessage\fP" +A message which is displayed when the users password has expired. +The default is ``Password Change Required'' +.IP "\fBxlogin.Login.fail\fP" +A message which is displayed when the authentication fails, when not using an +authentication system such as PAM that provides its own prompts. +The default is ``Login incorrect'' +.IP "\fBxlogin.Login.failFace\fP" +The face used to display the failure message when built with Xft support. +The default is ``Serif-18:bold''. +.IP "\fBxlogin.Login.failFont\fP" +The font used to display the failure message when not built with Xft support. +.IP "\fBxlogin.Login.failColor\fP" +The color used to display the failure message. +.IP "\fBxlogin.Login.failTimeout\fP" +The number of seconds that the failure message is displayed. +The default is 10. +.IP "\fBxlogin.Login.logoFileName\fP" +Name of an XPM format pixmap to display in the greeter window, if built with +XPM support. The default is no pixmap. +.IP "\fBxlogin.Login.logoPadding\fP" +Number of pixels of space between the logo pixmap and other elements of the +greeter window, if the pixmap is displayed. +The default is 5. +.IP "\fBxlogin.Login.useShape\fP" +If set to ``true'', when built with XPM support, attempt to use the +X Non-Rectangular Window Shape Extension to set the window shape. +The default is ``true''. +.IP "\fBxlogin.Login.hiColor\fP, \fBxlogin.Login.shdColor\fP" +Raised appearance bezels may be drawn around +the greeter frame and text input boxes by setting these resources. hiColor +is the highlight color, used on the top and left sides of the frame, and the +bottom and right sides of text input areas. shdColor is the shadow color, +used on the bottom and right sides of the frame, and the top and left sides +of text input areas. +The default for both is the foreground color, providing a flat appearance. +.IP "\fBxlogin.Login.frameWidth\fP" +frameWidth is the width in pixels of the area +around the greeter frame drawn in hiColor and shdColor. +.IP "\fBxlogin.Login.innerFramesWidth\fP" +innerFramesWidth is the width in pixels of the +area around text input areas drawn in hiColor and shdColor. +.IP "\fBxlogin.Login.sepWidth\fP" +sepWidth is the width in pixels of the +bezeled line between the greeting and input areas +drawn in hiColor and shdColor. +.IP "\fBxlogin.Login.allowRootLogin\fP" +If set to ``false'', don't allow root (and any other user with uid = 0) to +log in directly. +The default is ``true''. +This setting is only checked by some of the authentication backends at this +time. +.IP "\fBxlogin.Login.allowNullPasswd\fP" +If set to ``true'', allow an otherwise failing password match to succeed +if the account does not require a password at all. +The default is ``false'', so only users that have passwords assigned can +log in. +.IP "\fBxlogin.Login.echoPasswd\fP" +If set to ``true'', a placeholder character (echoPasswdChar) will be shown +for fields normally set to not echo, such as password input. +The default is ``false''. +.IP "\fBxlogin.Login.echoPasswdChar\fP" +Character to display if echoPasswd is true. The default is ``*''. +If set to an empty value, the cursor will advance for each character input, +but no text will be drawn. +.IP "\fBxlogin.Login.translations\fP" +This specifies the translations used for the login widget. Refer to the X +Toolkit documentation for a complete discussion on translations. The default +translation table is: +.nf +.ta .5i 2i + + Ctrl<Key>H: delete-previous-character() \\n\\ + Ctrl<Key>D: delete-character() \\n\\ + Ctrl<Key>B: move-backward-character() \\n\\ + Ctrl<Key>F: move-forward-character() \\n\\ + Ctrl<Key>A: move-to-begining() \\n\\ + Ctrl<Key>E: move-to-end() \\n\\ + Ctrl<Key>K: erase-to-end-of-line() \\n\\ + Ctrl<Key>U: erase-line() \\n\\ + Ctrl<Key>X: erase-line() \\n\\ + Ctrl<Key>C: restart-session() \\n\\ + Ctrl<Key>\\\\: abort-session() \\n\\ + <Key>BackSpace: delete-previous-character() \\n\\ + <Key>Delete: delete-previous-character() \\n\\ + <Key>Return: finish-field() \\n\\ + <Key>: insert-char() \\ + +.fi +.PP +The actions which are supported by the widget are: +.IP "delete-previous-character" +Erases the character before the cursor. +.IP "delete-character" +Erases the character after the cursor. +.IP "move-backward-character" +Moves the cursor backward. +.IP "move-forward-character" +Moves the cursor forward. +.IP "move-to-begining" +(Apologies about the spelling error.) +Moves the cursor to the beginning of the editable text. +.IP "move-to-end" +Moves the cursor to the end of the editable text. +.IP "erase-to-end-of-line" +Erases all text after the cursor. +.IP "erase-line" +Erases the entire text. +.IP "finish-field" +If the cursor is in the name field, proceeds to the password field; if the +cursor is in the password field, checks the current name/password pair. If +the name/password pair is valid, \fIxdm\fP +starts the session. Otherwise the failure message is displayed and +the user is prompted again. +.IP "abort-session" +Terminates and restarts the server. +.IP "abort-display" +Terminates the server, disabling it. This action +is not accessible in the default configuration. +There are various reasons to stop \fIxdm\fP on a system console, such as +when shutting the system down, when using \fIxdmshell\fP, +to start another type of server, or to generally access the console. +Sending \fIxdm\fP a SIGHUP will restart the display. See the section +\fBControlling XDM\fP. +.IP "restart-session" +Resets the X server and starts a new session. This can be used when +the resources have been changed and you want to test them or when +the screen has been overwritten with system messages. +.IP "insert-char" +Inserts the character typed. +.IP "set-session-argument" +Specifies a single word argument which is passed to the session at startup. +See the section \fBSession Program\fP. +.IP "allow-all-access" +Disables access control in the server. This can be used when +the .Xauthority file cannot be created by +.I xdm. +Be very careful using this; +it might be better to disconnect the machine from the network +before doing this. +.PP +On some systems (OpenBSD) the user's shell must be listed in +.I /etc/shells +to allow login through xdm. The normal password and account expiration +dates are enforced too. +.SH "STARTUP PROGRAM" +.PP +The \fIXstartup\fP program is run as +root when the user logs in. +It is typically a shell script. +Since it is run as root, \fIXstartup\fP should be +very careful about security. This is the place to put commands which add +entries to \fIutmp\fP or \fIwtmp\fP files, +(the \fIsessreg\fP program may be useful here), +mount users' home directories from file servers, +or abort the session if logins are not +allowed. +.PP +In addition to any specified by \fBDisplayManager.exportList\fP, +the following environment variables are passed: +.nf +.ta .5i 2i + + DISPLAY the associated display name + HOME the initial working directory of the user + LOGNAME the user name + USER the user name + PATH the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemPath\fP + SHELL the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.systemShell\fP + XAUTHORITY may be set to an authority file + WINDOWPATH may be set to the "window path" leading to the X server + +.fi +.PP +No arguments are passed to the script. +.I Xdm +waits until this script exits before starting the user session. If the +exit value of this script is non-zero, +.I xdm +discontinues the session and starts another authentication +cycle. +.PP +The sample \fIXstartup\fP file shown here prevents login while the +file \fI/etc/nologin\fP +exists. +Thus this is not a complete example, but +simply a demonstration of the available functionality. +.PP +Here is a sample \fIXstartup\fP script: +.nf +.ta .5i 1i + +\& #!/bin/sh +\& # +\& # Xstartup +\& # +\& # This program is run as root after the user is verified +\& # + if [ \-f /etc/nologin ]; then + xmessage\0\-file /etc/nologin\0\-timeout 30\0\-center + exit 1 + fi + sessreg\0\-a\0\-l $DISPLAY\0\-x XDMDIR/Xservers $LOGNAME + XDMDIR/GiveConsole + exit 0 +.fi +.SH "SESSION PROGRAM" +.PP +The \fIXsession\fP program is the command which is run as the user's session. +It is run with +the permissions of the authorized user. +.PP +In addition to any specified by \fBDisplayManager.exportList\fP, +the following environment variables are passed: +.nf +.ta .5i 2i + + DISPLAY the associated display name + HOME the initial working directory of the user + LOGNAME the user name + USER the user name + PATH the value of \fBDisplayManager.\fP\fIDISPLAY\fP\fB.userPath\fP + SHELL the user's default shell (from \fIgetpwnam\fP) + XAUTHORITY may be set to a non-standard authority file + KRB5CCNAME may be set to a Kerberos credentials cache name + WINDOWPATH may be set to the "window path" leading to the X server + +.fi +.PP +At most installations, \fIXsession\fP should look in $HOME for +a file \fI\.xsession,\fP +which contains commands that each user would like to use as a session. +\fIXsession\fP should also +implement a system default session if no user-specified session exists. +.PP +An argument may be passed to this program from the authentication widget +using the `set-session-argument' action. This can be used to select +different styles of session. One good use of this feature is to allow +the user to escape from the ordinary session when it fails. This +allows users to repair their own \fI.xsession\fP if it fails, +without requiring administrative intervention. +The example following +demonstrates this feature. +.PP +This example recognizes +the special +``failsafe'' mode, specified in the translations +in the \fIXresources\fP file, to provide an escape +from the ordinary session. It also requires that the .xsession file +be executable so we don't have to guess what shell it wants to use. +.nf +.ta .5i 1i 1.5i + +\& #!/bin/sh +\& # +\& # Xsession +\& # +\& # This is the program that is run as the client +\& # for the display manager. + + case $# in + 1) + case $1 in + failsafe) + exec xterm \-geometry 80x24\-0\-0 + ;; + esac + esac + + startup=$HOME/.xsession + resources=$HOME/.Xresources + + if [ \-f "$startup" ]; then + exec "$startup" + else + if [ \-f "$resources" ]; then + xrdb \-load "$resources" + fi + twm & + xman \-geometry +10\-10 & + exec xterm \-geometry 80x24+10+10 \-ls + fi + +.fi +.PP +The user's \fI.xsession\fP file might look something like this +example. Don't forget that the file must have execute permission. +.nf +\& #! /bin/csh +\& # no \-f in the previous line so .cshrc gets run to set $PATH + twm & + xrdb \-merge "$HOME/.Xresources" + emacs \-geometry +0+50 & + xbiff \-geometry \-430+5 & + xterm \-geometry \-0+50 -ls +.fi +.SH "RESET PROGRAM" +.PP +Symmetrical with \fIXstartup\fP, +the \fIXreset\fP script is run after the user session has +terminated. Run as root, it should contain commands that undo +the effects of commands in \fIXstartup,\fP updating entries +in \fIutmp\fP or \fIwtmp\fP files, +or unmounting directories from file servers. The environment +variables that were passed to \fIXstartup\fP are also +passed to \fIXreset\fP. +.PP +A sample \fIXreset\fP script: +.nf +.ta .5i 1i +\& #!/bin/sh +\& # +\& # Xreset +\& # +\& # This program is run as root after the session ends +\& # + sessreg\0\-d\0\-l $DISPLAY\0\-x XDMDIR/Xservers $LOGNAME + XDMDIR/TakeConsole + exit 0 +.fi +.SH "CONTROLLING THE SERVER" +.I Xdm +controls local servers using POSIX signals. SIGHUP is expected to reset the +server, closing all client connections and performing other cleanup +duties. SIGTERM is expected to terminate the server. +If these signals do not perform the expected actions, +the resources \fBDisplayManager.\fP\fIDISPLAY\fP\fB.resetSignal\fP and +\fBDisplayManager.\fP\fIDISPLAY\fP\fB.termSignal\fP can specify alternate signals. +.PP +To control remote terminals not using XDMCP, +.I xdm +searches the window hierarchy on the display and uses the protocol request +KillClient in an attempt to clean up the terminal for the next session. This +may not actually kill all of the clients, as only those which have created +windows will be noticed. XDMCP provides a more sure mechanism; when +.I xdm +closes its initial connection, the session is over and the terminal is +required to close all other connections. +.SH "CONTROLLING XDM" +.PP +.I Xdm +responds to two signals: SIGHUP and SIGTERM. When sent a SIGHUP, +.I xdm +rereads the configuration file, the access control file, and the servers +file. For the servers file, it notices if entries have been added or +removed. If a new entry has been added, +.I xdm +starts a session on the associated display. Entries which have been removed +are disabled immediately, meaning that any session in progress will be +terminated without notice and no new session will be started. +.PP +When sent a SIGTERM, +.I xdm +terminates all sessions in progress and exits. This can be used when +shutting down the system. +.PP +.I Xdm +attempts to mark its various sub-processes for +.IR ps (__appmansuffix__) +by editing the +command line argument list in place. Because +.I xdm +can't allocate additional +space for this task, it is useful to start +.I xdm +with a reasonably long +command line (using the full path name should be enough). +Each process which is +servicing a display is marked \fB\-\fP\fIdisplay.\fP +.SH "ADDITIONAL LOCAL DISPLAYS" +.PP +To add an additional local display, add a line for it to the +\fIXservers\fP file. +(See the section \fBLocal Server Specification\fP.) +.PP +Examine the display-specific resources in \fIxdm-config\fP +(e.g., \fBDisplayManager._0.authorize\fP) +and consider which of them should be copied for the new display. +The default \fIxdm-config\fP has all the appropriate lines for +displays \fB:0\fP and \fB:1\fP. +.SH "OTHER POSSIBILITIES" +.PP +You can use \fIxdm\fP +to run a single session at a time, using the 4.3 \fIinit\fP +options or other suitable daemon by specifying the server on the command +line: +.nf +.ta .5i + + xdm \-server \(lq:0 SUN-3/60CG4 local BINDIR/X :0\(rq + +.fi +.PP +Or, you might have a file server and a collection of X terminals. The +configuration for this is identical to the sample above, +except the \fIXservers\fP file would look like +.nf +.ta .5i + + extol:0 VISUAL-19 foreign + exalt:0 NCD-19 foreign + explode:0 NCR-TOWERVIEW3000 foreign + +.fi +.PP +This directs +.I xdm +to manage sessions on all three of these terminals. See the section +\fBControlling Xdm\fP for a description of using signals to enable +and disable these terminals in a manner reminiscent of +.IR init (__adminmansuffix__). +.SH LIMITATIONS +One thing that +.I xdm +isn't very good at doing is coexisting with other window systems. To use +multiple window systems on the same hardware, you'll probably be more +interested in +.I xinit. +.SH FILES +.TP 20 +.I XDMDIR/xdm-config +the default configuration file +.TP 20 +.I $HOME/.Xauthority +user authorization file where \fIxdm\fP stores keys for clients to read +.TP 20 +.I CHOOSERPATH +the default chooser +.TP 20 +.I BINDIR/xrdb +the default resource database loader +.TP 20 +.I BINDIR/X +the default server +.TP 20 +.I BINDIR/xterm +the default session program and failsafe client +.TP 20 +.I XDMXAUTHDIR/A<display>\-<suffix> +the default place for authorization files +.TP 20 +.I /tmp/K5C<display> +Kerberos credentials cache +.SH "SEE ALSO" +.IR X (__miscmansuffix__), +.IR xinit (__appmansuffix__), +.IR xauth (__appmansuffix__), +.IR xrdb (__appmansuffix__), +.IR Xsecurity (__miscmansuffix__), +.IR sessreg (__appmansuffix__), +.IR Xserver (__appmansuffix__), +.\" .IR chooser (__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" +.br +.RI "IETF RFC 4291: " "IP Version 6 Addressing Architecture" . +.SH AUTHOR +Keith Packard, MIT X Consortium diff --git a/app/xdm/man/xdmshell.man b/app/xdm/man/xdmshell.man new file mode 100644 index 000000000..8f27193cb --- /dev/null +++ b/app/xdm/man/xdmshell.man @@ -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 BINDIR/xdmshell +.SH DESCRIPTION +.I Xdmshell +can be used on systems that are configured to start a console 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:BINDIR/xdmshell +% grep 51 /etc/group +xdmgrp:*:51: +% ls -lg BINDIR/xdmshell +-rws--x--- 1 root xdmgrp 20338 Nov 1 01:32 BINDIR/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__) |