aboutsummaryrefslogtreecommitdiff
path: root/x11/wdm
diff options
context:
space:
mode:
authorAlexey Dokuchaev <danfe@FreeBSD.org>2020-07-15 07:26:57 +0000
committerAlexey Dokuchaev <danfe@FreeBSD.org>2020-07-15 07:26:57 +0000
commitb305dd32f2f9cb3b444bac1b78b17b7d55f33683 (patch)
treed14d3bf058800137524789c3ed8309c482c94ec1 /x11/wdm
parentbe0fcec5bba11b2311e5ce8f25a9477dc63c491c (diff)
downloadports-b305dd32f2f9cb3b444bac1b78b17b7d55f33683.tar.gz
ports-b305dd32f2f9cb3b444bac1b78b17b7d55f33683.zip
Notes
Diffstat (limited to 'x11/wdm')
-rw-r--r--x11/wdm/Makefile81
-rw-r--r--x11/wdm/distinfo6
-rw-r--r--x11/wdm/files/patch-change_wm452
-rw-r--r--x11/wdm/files/patch-configs__wdm-config.in25
-rw-r--r--x11/wdm/files/patch-src__wdm__session.c50
-rw-r--r--x11/wdm/files/wdm.pam25
-rw-r--r--x11/wdm/pkg-descr8
-rw-r--r--x11/wdm/pkg-plist40
8 files changed, 687 insertions, 0 deletions
diff --git a/x11/wdm/Makefile b/x11/wdm/Makefile
new file mode 100644
index 000000000000..24e155166e21
--- /dev/null
+++ b/x11/wdm/Makefile
@@ -0,0 +1,81 @@
+# Created by: Thomas Gellekum <tg@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= wdm
+PORTVERSION= 1.28
+PORTREVISION= 16
+CATEGORIES= x11 windowmaker
+MASTER_SITES= http://freebsd.nsu.ru/distfiles/wdm/:wdm GENTOO:wdm \
+ http://wolfram.schneider.org/bsd/gif/bsd/:pic_large \
+ LOCAL/tg:pic_small
+DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:wdm \
+ beastie.xpm:pic_small \
+ daemon1-HQ-1280x960.jpg:pic_large
+DIST_SUBDIR= wdm
+EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
+
+MAINTAINER= xride@FreeBSD.org
+COMMENT= WINGs Display Manager; an xdm replacement
+
+LICENSE= GPLv2+
+
+LIB_DEPENDS= libWINGs.so:x11-wm/windowmaker
+
+OPTIONS_DEFINE= PAM
+OPTIONS_DEFAULT= PAM
+OPTIONS_SUB= yes
+
+USES= gettext localbase tar:bzip2 xorg
+USE_XORG= ice sm x11 xau xdmcp xext xinerama xmu
+GNU_CONFIGURE= yes
+CONFIGURE_ENV= DEF_SERVER="${DEF_SERVER}" XRDB_PATH="${XRDB_PATH}"
+CONFIGURE_ARGS= --with-logdir=/var/log \
+ --with-runlockdir=/var/run \
+ --with-wdmdir=${WDMDIR} \
+ --with-gfxdir=${WDMDIR}/pixmaps \
+ --with-nlsdir=${PREFIX}/share/locale \
+ --with-Logo=beastie.xpm \
+ --with-gfx-incs=${LOCALBASE}/include \
+ --with-gfx-libs=${LOCALBASE}/lib \
+ --with-defuserpath=/bin:/usr/bin:/sbin:/usr/sbin:${LOCALBASE}/bin \
+ --with-defsystempath=/bin:/usr/bin:/sbin:/usr/sbin:${LOCALBASE}/bin \
+ --with-wmlist=wmaker:afterstep:blackbox:ctwm:enlightenment:fvwm:fvwm2:fvwm95:olvwm:qvwm:tvtwm
+
+CPPFLAGS+= -DCSRG_BASED -DHAS_SETUSERCONTEXT
+LIBS+= -lintl
+
+DEF_SERVER?= ${LOCALBASE}/bin/X
+XRDB_PATH?= ${LOCALBASE}/bin/xrdb
+
+WDMDIR= ${PREFIX}/lib/X11/wdm
+
+PAM_CONFIGURE_OFF= --disable-pam
+PAM_CONFIGURE_ON= --with-pamdir=${LOCALBASE}/etc/pam.d/
+
+post-patch:
+ @${REINPLACE_CMD} -e \
+ 's|/usr/X11R6|${PREFIX}|g' ${WRKSRC}/configs/KillConsole
+ @${REINPLACE_CMD} -e \
+ 's|/usr/X11R6|${PREFIX}|g' ${WRKSRC}/configs/Xclients.in
+ @${REINPLACE_CMD} -e \
+ 's|/usr/X11R6|${PREFIX}|g' ${WRKSRC}/configs/Xsession.in
+ @${REINPLACE_CMD} -e \
+ 's|$$(DESTDIR)$$(PAMDIR)/wdm||g' ${WRKSRC}/Makefile.in
+ @${REINPLACE_CMD} -e 's|-ldl||g ; \
+ s|/authdir||g' ${WRKSRC}/configure
+ @${REINPLACE_CMD} -e \
+ 's|@FAILSAFE@|@FAILSAFE_PATH@|g' ${WRKSRC}/configs/Xsession.in
+ @${REINPLACE_CMD} -e \
+ 's|#configdir#|${WDMDIR}|g' ${WRKSRC}/doc/wdm.man.in
+ @${REINPLACE_CMD} -e \
+ 's|/etc/X11/wdm|${WDMDIR}|g' ${WRKSRC}/doc/wdmLogin.man
+
+post-install:
+ @${MV} ${STAGEDIR}${WDMDIR}/wdm-config ${STAGEDIR}${WDMDIR}/wdm-config.sample
+ @${MV} ${STAGEDIR}${WDMDIR}/Xsetup_0 ${STAGEDIR}${WDMDIR}/Xsetup_0.sample
+.for file in beastie.xpm daemon1-HQ-1280x960.jpg
+ ${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/${file} ${STAGEDIR}${WDMDIR}/pixmaps
+.endfor
+ ${INSTALL_DATA} ${FILESDIR}/wdm.pam ${STAGEDIR}${LOCALBASE}/etc/pam.d/wdm
+
+.include <bsd.port.mk>
diff --git a/x11/wdm/distinfo b/x11/wdm/distinfo
new file mode 100644
index 000000000000..87454785c04d
--- /dev/null
+++ b/x11/wdm/distinfo
@@ -0,0 +1,6 @@
+SHA256 (wdm/wdm-1.28.tar.bz2) = 8a5cde0a4988d557d48bb7470f14f416d0b8ff6e20d7061643e6143f7b2be2c4
+SIZE (wdm/wdm-1.28.tar.bz2) = 381522
+SHA256 (wdm/beastie.xpm) = 85624219604fb32f000b3bc825268e67bb553fff0a8e6d2971296557448c9e9c
+SIZE (wdm/beastie.xpm) = 66929
+SHA256 (wdm/daemon1-HQ-1280x960.jpg) = a4af9d1910de87188ab3fd0e0d5e6895122ff4f77b0629e9d096978429ce1ea2
+SIZE (wdm/daemon1-HQ-1280x960.jpg) = 136770
diff --git a/x11/wdm/files/patch-change_wm b/x11/wdm/files/patch-change_wm
new file mode 100644
index 000000000000..5ce911e800dc
--- /dev/null
+++ b/x11/wdm/files/patch-change_wm
@@ -0,0 +1,452 @@
+
+--- configs/Xsession.in.orig Sat Mar 26 14:57:04 2005
++++ configs/Xsession.in Tue Oct 10 11:51:31 2006
+@@ -1,6 +1,8 @@
+-#!@SHELL_LOGIN@
++#!/bin/sh
+ # @configure_input@
+ # $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
++#
++# /usr/X11R6/lib/X11/wdm/Xsession : FreeBSD : mato [24-sep-2006]
+
+ # This is the basic login script for a user. Much of the logic/code
+ # for selecting and invoking the window manager is in the related file
+@@ -9,17 +11,16 @@
+ # ~/.Xclients.
+
+ # cleanup wdm resources
+- @XRDB_PATH@ -load /dev/null
+-
++@XRDB_PATH@ -load /dev/null
+
+ case $# in
+ 1)
+- case $1 in
+- failsafe)
+- exec @FAILSAFE@ -geometry 80x24-0-0
+- ;;
++ case "$1" in
++ failsafe)
++ exec @FAILSAFE@ -geometry 80x24+0+0
++ ;;
+ esac
+- echo $1 >$HOME/.wm_style
++ echo "$1" >| "$HOME/.wm_style"
+ esac
+
+ # redirect errors to a file in user's home directory if we can
+@@ -66,19 +67,23 @@
+ # fi
+ # exec @DMDIR@/Xclients
+
+-startup=$HOME/.xsession
+-resources=$HOME/.Xresources
++sysresources="/usr/X11R6/lib/X11/xinit/.Xresources"
++userresources="$HOME/.Xresources"
++
++if [ -f "$sysresources" ]; then
++ @XRDB_PATH@ -merge "$sysresources"
++fi
+
+-if [ -f $resources ]; then
+- @XRDB_PATH@ -load $resources
++if [ -f "$userresources" ]; then
++ @XRDB_PATH@ -merge "$userresources"
+ fi
+
+-if [ -x $startup ]; then
+- exec $startup
++if [ -x "$HOME/.xsession" ]; then
++ exec "$HOME/.xsession"
+ fi
+
+-if [ -x $HOME/.Xclients ]; then
+- exec $HOME/.Xclients
++if [ -x "$HOME/.Xclients" ]; then
++ exec "$HOME/.Xclients"
+ fi
+
+ if [ -x @DMDIR@/Xclients ]; then
+--- configs/Xclients.in.orig Sat Mar 26 14:57:04 2005
++++ configs/Xclients.in Tue Oct 10 12:31:47 2006
+@@ -1,5 +1,7 @@
+ #!@SHELL_LOGIN@
+ # @configure_input@
++#
++# ~/.Xclients * WDM/FreeBSD * modified by martinko [23-sep-2006]
+
+ ########################################################################
+ # -*- sh -*- #
+@@ -32,133 +34,279 @@
+ done
+ }
+
++# output startup message
++Starting()
++{
++ echo "Starting $1 on `date`" >| "$xwm_msgs"
++}
++
++
++wm_style="$HOME/.wm_style"
++xwm_msgs="$HOME/.xwm.msgs"
++xrootenv="$HOME/Xrootenv.0"
+
+
+ # these files are left sitting around by TheNextLevel.
+-rm -f $HOME/Xrootenv.0
++rm -f "$xrootenv"
+ rm -f /tmp/fvwmrc* 2>/dev/null
+
+-# check for and set x-resources
+-if [ -f $HOME/.Xresources ] ; then
+- @XRDB_PATH@ -merge $HOME/.Xresources
++# check for and set X-resources
++
++sysresources="/usr/X11R6/lib/X11/xinit/.Xresources"
++sysmodmap="/usr/X11R6/lib/X11/xinit/.Xmodmap"
++userresources="$HOME/.Xresources"
++usermodmap="$HOME/.Xmodmap"
++
++# merge in defaults and keymaps
++
++if [ -f "$sysresources" ]; then
++ xrdb -merge "$sysresources"
+ fi
+
+-if [ -f $HOME/.Xdefaults ] ; then
+- @XRDB_PATH@ -merge $HOME/.Xdefaults
++if [ -f "$sysmodmap" ]; then
++ xmodmap "$sysmodmap"
+ fi
+
+-WINMGR_NAME=@WINMGR_NAME@
+-if test -z "$WINMGR_NAME"; then
+- WINMGR_NAME="UserDefined"
++if [ -f "$userresources" ]; then
++ xrdb -merge "$userresources"
++fi
++
++if [ -f "$usermodmap" ]; then
++ xmodmap "$usermodmap"
+ fi
+
+-# First thing - check the user preferences
+-if [ -f $HOME/.wm_style ] ; then
+- WMSTYLE=`cat $HOME/.wm_style`
+- case "$WMSTYLE" in
+-#
+-# first, a general purpose entry:
+- $WINMGR_NAME*)
+- # startup a window manager
+- WINMGR_PATH=@WINMGR_PATH@
+- if test -x "$WINMGR_PATH" ; then
+- echo Starting $WINMGR_NAME >$HOME/.xwm.msgs
+- exec $WINMGR_PATH >>$HOME/.xwm.msgs 2>&1
+- fi
+- ;;
+
+- wmaker*|WindowMaker*)
+- # startup WindowMaker
+- WMAKER_PATH=@WMAKER_PATH@
++# First thing - check the user preferences
++if [ -f "$wm_style" ]
++then
++ WMSTYLE="`cat "$wm_style"`"
++ case "$WMSTYLE" in
++
++ wmaker*|WMaker*|WindowMaker*)
++ # startup Window Maker
++ WMAKER_PATH=wmaker
+ if ! test -x $WMAKER_PATH ; then
+ FindInPath $WMAKER_PATH
+ if test -n "$result" -a -x "$result"; then
+- WMAKER_PATH="$result";
++ WMAKER_PATH="$result"
+ fi
+ fi
+-
+ if test -x $WMAKER_PATH ; then
+- echo Starting WindowMaker >$HOME/.xwm.msgs
+- env > "$HOME"/Xrootenv.0
+- exec $WMAKER_PATH >>$HOME/.xwm.msgs 2>&1
++ Starting "Window Maker"
++ #env >| "$xrootenv"
++ exec $WMAKER_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ afterstep*|Afterstep*|AfterStep*)
+- # we have to start up afterstep
+- AFTERSTEP_PATH=@AFTERSTEP_PATH@
++ # we have to start up AfterStep
++ AFTERSTEP_PATH=afterstep
+ if ! test -x $AFTERSTEP_PATH ; then
+ FindInPath $AFTERSTEP_PATH
+ if test -n "$result" -a -x "$result"; then
+- AFTERSTEP_PATH="$result";
++ AFTERSTEP_PATH="$result"
+ fi
+ fi
+ if [ -x $AFTERSTEP_PATH -a -f /usr/share/afterstep/wmconfig.conf ] ; then
+ mkdir -p $HOME/GNUstep/Library/AfterStep
+ wmconfig --output=afterstep --directories /usr/share/afterstep/wmconfig.conf 2>/dev/null
+- env > "$HOME"/Xrootenv.0
++ #env >| "$xrootenv"
+ # if this works, we stop here
+- eval "exec $AFTERSTEP_PATH" > "$HOME"/.AfterStep-errors 2>&1
++ eval "exec $AFTERSTEP_PATH" >| "$HOME"/.AfterStep-errors 2>&1
+ fi
+ ;;
+
+- blackbox*|BlackBox)
+- # startup blackbox
+- BLACKBOX_PATH=@BLACKBOX_PATH@
++ blackbox*|Blackbox*|BlackBox*)
++ # startup Blackbox
++ BLACKBOX_PATH=blackbox
+ if ! test -x $BLACKBOX_PATH ; then
+ FindInPath $BLACKBOX_PATH
+ if test -n "$result" -a -x "$result"; then
+- BLACKBOX_PATH="$result";
++ BLACKBOX_PATH="$result"
+ fi
+ fi
+ if [ -x $BLACKBOX_PATH ] ; then
+- echo Starting BlackBox >$HOME/.xwm.msgs
+- exec $BLACKBOX_PATH >>$HOME/.xwm.msgs 2>&1
++ Starting "Blackbox"
++ #env >| "$xrootenv"
++ exec $BLACKBOX_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+- icewm*|IceWm)
+- # startup icewm
+- ICEWM_PATH=@ICEWM_PATH@
++ fluxbox*|Fluxbox*|FluxBox*)
++ # startup Fluxbox
++ FLUXBOX_PATH=startfluxbox
++ if ! test -x $FLUXBOX_PATH ; then
++ FindInPath $FLUXBOX_PATH
++ if test -n "$result" -a -x "$result"; then
++ FLUXBOX_PATH="$result"
++ fi
++ fi
++ if [ -x $FLUXBOX_PATH ] ; then
++ Starting "Fluxbox"
++ #env >| "$xrootenv"
++ exec $FLUXBOX_PATH >> "$xwm_msgs" 2>&1
++ fi
++ ;;
++
++ fvwm*|FVWM*)
++ # startup FVWM
++ FVWM_PATH=fvwm
++ if ! test -x $FVWM_PATH ; then
++ FindInPath $FVWM_PATH
++ if test -n "$result" -a -x "$result"; then
++ FVWM_PATH="$result"
++ fi
++ fi
++ if test -x $FVWM_PATH ; then
++ Starting "FVWM"
++ #env >| "$xrootenv"
++ exec $FVWM_PATH >> "$xwm_msgs" 2>&1
++ fi
++ ;;
++
++ fvwm2*|FVWM2*)
++ # startup FVWM2
++ FVWM2_PATH=fvwm2
++ if ! test -x $FVWM2_PATH ; then
++ FindInPath $FVWM2_PATH
++ if test -n "$result" -a -x "$result"; then
++ FVWM2_PATH="$result"
++ fi
++ fi
++ if test -x $FVWM2_PATH ; then
++ Starting "FVWM2"
++ #env >| "$xrootenv"
++ exec $FVWM2_PATH >> "$xwm_msgs" 2>&1
++ fi
++ ;;
++
++ fvwm95*|FVWM95*)
++ # startup FVWM95
++ FVWM95_PATH=fvwm95
++ if ! test -x $FVWM95_PATH ; then
++ FindInPath $FVWM95_PATH
++ if test -n "$result" -a -x "$result"; then
++ FVWM95_PATH="$result"
++ fi
++ fi
++ if test -x $FVWM95_PATH ; then
++ Starting "FVWM95"
++ #env >| "$xrootenv"
++ exec $FVWM95_PATH >> "$xwm_msgs" 2>&1
++ fi
++ ;;
++
++ icewm*|IceWm*|IceWM*)
++ # startup IceWM
++ ICEWM_PATH=icewm
+ if ! test -x $ICEWM_PATH ; then
+ FindInPath $ICEWM_PATH
+ if test -n "$result" -a -x "$result"; then
+- ICEWM_PATH="$result";
++ ICEWM_PATH="$result"
+ fi
+ fi
+ if [ -x $ICEWM_PATH ] ; then
+- echo Starting icewm >$HOME/.xwm.msgs
+- exec $ICEWM_PATH >>$HOME/.xwm.msgs 2>&1
++ Starting "IceWM"
++ #env >| "$xrootenv"
++ exec $ICEWM_PATH >> "$xwm_msgs" 2>&1
++ fi
++ ;;
++
++ twm*|TWM*)
++ # startup TWM
++ TWM_PATH=twm
++ if ! test -x $TWM_PATH ; then
++ FindInPath $TWM_PATH
++ if test -n "$result" -a -x "$result"; then
++ TWM_PATH="$result"
++ fi
++ fi
++ if test -x $TWM_PATH ; then
++ Starting "TWM"
++ #env >| "$xrootenv"
++ exec $TWM_PATH >> "$xwm_msgs" 2>&1
++ fi
++ ;;
++
++ xfce*|Xfce*|XFce*|XFCE*)
++ # startup Xfce
++ XFCE_PATH=startxfce4
++ if ! test -x $XFCE_PATH ; then
++ FindInPath $XFCE_PATH
++ if test -n "$result" -a -x "$result"; then
++ XFCE_PATH="$result"
++ fi
++ fi
++ if test -x $XFCE_PATH ; then
++ Starting "Xfce"
++ #env >| "$xrootenv"
++ exec $XFCE_PATH >> "$xwm_msgs" 2>&1
++ fi
++ ;;
++
++ gnome*|Gnome*)
++ # startup Gnome
++ GNOME_PATH=gnome-session
++ if ! test -x $GNOME_PATH ; then
++ FindInPath $GNOME_PATH
++ if test -n "$result" -a -x "$result"; then
++ GNOME_PATH="$result"
++ fi
++ fi
++ if test -x $GNOME_PATH ; then
++ Starting "Gnome"
++ #env >| "$xrootenv"
++ exec $GNOME_PATH >> "$xwm_msgs" 2>&1
++ fi
++ ;;
++
++ startkde*|kde*|KDE*)
++ # startup KDE
++ STARTKDE_PATH=startkde
++ if ! test -x $STARTKDE_PATH ; then
++ FindInPath $STARTKDE_PATH
++ if test -n "$result" -a -x "$result"; then
++ STARTKDE_PATH="$result"
++ fi
++ fi
++ if [ -x $STARTKDE_PATH ] ; then
++ Starting "KDE"
++ #env >| "$xrootenv"
++ exec $STARTKDE_PATH -console >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ xsession*|Xsession*)
+ # startup xsession
+- XSESSION_PATH=@XSESSION_PATH@
++ XSESSION_PATH=xsession
+ if ! test -x $XSESSION_PATH ; then
+ FindInPath $XSESSION_PATH
+ if test -n "$result" -a -x "$result"; then
+- XSESSION_PATH="$result";
++ XSESSION_PATH="$result"
+ fi
+ fi
+ if [ -x $XSESSION_PATH ] ; then
+- echo Starting xsession >$HOME/.xwm.msgs
+- exec $XSESSION_PATH -console >>$HOME/.xwm.msgs 2>&1
++ Starting "xsession"
++ #env >| "$xrootenv"
++ exec $XSESSION_PATH -console >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+- startkde*|kde*|KDE*)
+- # startup kde
+- STARTKDE_PATH=@STARTKDE_PATH@
+- if ! test -x $STARTKDE_PATH ; then
+- FindInPath $STARTKDE_PATH
++ # last, a general purpose entry:
++ *)
++ # try and startup a window manager
++ WINMGR_NAME="$WMSTYLE"
++ WINMGR_PATH="$WMSTYLE"
++ if ! test -x $WINMGR_PATH ; then
++ FindInPath $WINMGR_PATH
+ if test -n "$result" -a -x "$result"; then
+- STARTKDE_PATH="$result";
++ WINMGR_PATH="$result"
+ fi
+ fi
+- if [ -x $STARTKDE_PATH ] ; then
+- echo Starting kde >$HOME/.xwm.msgs
+- exec $STARTKDE_PATH -console >>$HOME/.xwm.msgs 2>&1
++ if test -x "$WINMGR_PATH" ; then
++ Starting "$WINMGR_NAME"
++ #env >| "$xrootenv"
++ exec $WINMGR_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+ esac
+@@ -186,16 +334,16 @@
+ # with both fvwm95 and fvwm2
+ # (try fvwm95 first, then fvwm2).
+ for FVWMVER in 95 95-2 2; do
+- if [ -n "$(type -path fvwm${FVWMVER})" ]; then
+- env > "$HOME"/Xrootenv.0
++ if [ -n "`type -path fvwm${FVWMVER}`" ]; then
++ #env >| "$xrootenv"
+ # if this works, we stop here
+- eval "exec fvwm${FVWMVER} ${FVWMOPTIONS}" > "$HOME"/.FVWM${FVWMVER}-errors 2>&1
++ eval "exec fvwm${FVWMVER} ${FVWMOPTIONS}" >| "$HOME"/.FVWM${FVWMVER}-errors 2>&1
+ fi
+ done
+
+ # gosh, neither fvwm95 nor fvwm2 is available;
+ # let's try regular fvwm (AnotherLevel doesn't work with fvwm1).
+-if [ -n "$(type -path fvwm)" ]; then
++if [ -n "`type -path fvwm`" ]; then
+ # if this works, we stop here
+ exec fvwm
+ fi
+--- configs/KillConsole.orig Tue Oct 10 13:04:27 2006
++++ configs/KillConsole Tue Oct 10 13:01:47 2006
+@@ -0,0 +1,7 @@
++#!/bin/sh
++#
++# /usr/X11R6/lib/X11/wdm/KillConsole * mato [10-oct-2006]
++#
++# Kill xconsole process started before the Login window.
++#
++pkill xconsole || true
+
diff --git a/x11/wdm/files/patch-configs__wdm-config.in b/x11/wdm/files/patch-configs__wdm-config.in
new file mode 100644
index 000000000000..b42e5a5bddde
--- /dev/null
+++ b/x11/wdm/files/patch-configs__wdm-config.in
@@ -0,0 +1,25 @@
+--- configs/wdm-config.in.orig Sun Jun 1 17:00:09 2003
++++ configs/wdm-config.in Sun Jun 1 22:45:23 2003
+@@ -3,7 +3,7 @@
+ ! wdm configuration file input (sed in Makefile)
+ !
+ DisplayManager.errorLogFile: @LOGDIR@/xdm-errors.log
+-DisplayManager.pidFile: @RUNDIR@/xdm-pid
++DisplayManager.pidFile: @RUNDIR@/xdm.pid
+ DisplayManager.keyFile: @DMDIR@/xdm-keys
+ DisplayManager.servers: @DMDIR@/Xservers
+ DisplayManager.accessFile: @DMDIR@/Xaccess
+@@ -25,11 +25,11 @@
+ ! display screen background--if not set or set to none, then the
+ ! background is not set by wdm.
+ ! DisplayManager*wdmBg: none
+-DisplayManager*wdmBg: solid:RoyalBlue
++! DisplayManager*wdmBg: solid:RoyalBlue
+ ! DisplayManager*wdmBg: dgradient:RoyalBlue,FireBrick,Black
+ ! DisplayManager*wdmBg: hgradient:RoyalBlue,FireBrick,Black
+ ! DisplayManager*wdmBg: vgradient:RoyalBlue,FireBrick,Black
+-! DisplayManager*wdmBg: pixmap:@GFXDIR@/Stars.jpg
++DisplayManager*wdmBg: pixmap:@GFXDIR@/daemon1-HQ-1280x960.jpg
+ !
+ ! optional pixmap for logo
+ @PIXMAPCOMMENT@DisplayManager*wdmLogo: @GFXDIR@/@PIXMAPFILE@
diff --git a/x11/wdm/files/patch-src__wdm__session.c b/x11/wdm/files/patch-src__wdm__session.c
new file mode 100644
index 000000000000..035205602185
--- /dev/null
+++ b/x11/wdm/files/patch-src__wdm__session.c
@@ -0,0 +1,50 @@
+--- src/wdm/session.c.orig Sat Mar 26 22:57:04 2005
++++ src/wdm/session.c Sun Mar 27 09:22:42 2005
+@@ -533,6 +533,7 @@
+ int pid;
+ #ifdef HAS_SETUSERCONTEXT
+ struct passwd* pwd;
++ extern char **environ;
+ #endif
+ #ifdef USE_PAM
+ pam_handle_t *pamh = thepamh();
+@@ -562,6 +563,7 @@
+ /* Do system-dependent login setup here */
+
+ #ifndef AIXV3
++#ifndef HAS_SETUSERCONTEXT
+ if (setgid(verify->gid) < 0)
+ {
+ WDMError("setgid %d (user \"%s\") failed, errno=%d\n",
+@@ -609,6 +611,31 @@
+ verify->uid, name, errno);
+ return (0);
+ }
++#else /* HAS_SETUSERCONTEXT */
++ /*
++ * Set the user's credentials: uid, gid, groups,
++ * environment variables, resource limits, and umask.
++ */
++ /* destroy user environment before calling setusercontext */
++ environ = verify->userEnviron;
++ pwd = getpwnam(name);
++ if (pwd)
++ {
++ if (setusercontext(NULL, pwd, pwd->pw_uid, LOGIN_SETALL) < 0)
++ {
++ WDMError("setusercontext for \"%s\" failed, errno=%d\n", name,
++ errno);
++ return (0);
++ }
++ verify->userEnviron = environ;
++ endpwent();
++ }
++ else
++ {
++ WDMError("getpwnam for \"%s\" failed, errno=%d\n", name, errno);
++ return (0);
++ }
++#endif /* HAS_SETUSERCONTEXT */
+ #else /* AIXV3 */
+ /*
+ * Set the user's credentials: uid, gid, groups,
diff --git a/x11/wdm/files/wdm.pam b/x11/wdm/files/wdm.pam
new file mode 100644
index 000000000000..2b66d5479842
--- /dev/null
+++ b/x11/wdm/files/wdm.pam
@@ -0,0 +1,25 @@
+#
+# PAM configuration for the "wdm" service
+#
+
+# auth
+#auth required pam_nologin.so no_warn
+#auth sufficient pam_kerberosIV.so no_warn try_first_pass
+#auth sufficient pam_krb5.so no_warn try_first_pass
+#auth sufficient pam_ssh.so no_warn try_first_pass
+auth required pam_unix.so no_warn try_first_pass
+
+# account
+account required pam_nologin.so
+#account required pam_kerberosIV.so
+#account required pam_krb5.so
+account required pam_unix.so
+
+# session
+#session required pam_kerberosIV.so
+#session required pam_krb5.so
+#session required pam_ssh.so
+session required pam_permit.so
+
+# password
+password required pam_deny.so
diff --git a/x11/wdm/pkg-descr b/x11/wdm/pkg-descr
new file mode 100644
index 000000000000..fa321304f16b
--- /dev/null
+++ b/x11/wdm/pkg-descr
@@ -0,0 +1,8 @@
+wdm -- WINGs Display Manager (was initially called DisplayMaker).
+
+This is a modification of XFree86's xdm package for graphically
+handling authentication and system login. Most of xdm has been
+preserved (XFree86 3.3.2.3) with the Login interface based on a WINGs
+implementation using Tom Rothamel's "external greet" interface.
+
+WWW: https://github.com/voins/wdm
diff --git a/x11/wdm/pkg-plist b/x11/wdm/pkg-plist
new file mode 100644
index 000000000000..4649bce85f24
--- /dev/null
+++ b/x11/wdm/pkg-plist
@@ -0,0 +1,40 @@
+bin/wdm
+bin/wdmLogin
+lib/X11/wdm/GiveConsole
+lib/X11/wdm/TakeConsole
+lib/X11/wdm/Xaccess
+lib/X11/wdm/Xclients
+lib/X11/wdm/Xclients.in
+lib/X11/wdm/Xresources
+lib/X11/wdm/Xservers
+lib/X11/wdm/Xservers.fs
+lib/X11/wdm/Xservers.ws
+lib/X11/wdm/Xsession
+lib/X11/wdm/Xsession.XFree86
+lib/X11/wdm/Xsession.orig
+@sample lib/X11/wdm/Xsetup_0.sample
+lib/X11/wdm/pixmaps/Eagle.xpm
+lib/X11/wdm/pixmaps/Earth.jpg
+lib/X11/wdm/pixmaps/Earth200x130.xpm
+lib/X11/wdm/pixmaps/GnuLinux-logo.jpg
+lib/X11/wdm/pixmaps/Stars.jpg
+lib/X11/wdm/pixmaps/StarsLogo.jpg
+lib/X11/wdm/pixmaps/beastie.xpm
+lib/X11/wdm/pixmaps/daemon1-HQ-1280x960.jpg
+lib/X11/wdm/pixmaps/gnuLogo.xpm
+@sample lib/X11/wdm/wdm-config.sample
+lib/X11/wdm/wdm-config.in
+lib/X11/wdm/wdmReconfig
+man/man1/wdm.1.gz
+man/man1/wdmLogin.1.gz
+share/locale/cs/LC_MESSAGES/wdm.mo
+share/locale/cy/LC_MESSAGES/wdm.mo
+share/locale/de/LC_MESSAGES/wdm.mo
+share/locale/en/LC_MESSAGES/wdm.mo
+share/locale/es/LC_MESSAGES/wdm.mo
+share/locale/fr_FR/LC_MESSAGES/wdm.mo
+share/locale/ja/LC_MESSAGES/wdm.mo
+share/locale/ru/LC_MESSAGES/wdm.mo
+%%PAM%%%%LOCALBASE%%/etc/pam.d/wdm
+@dir(,,700) lib/X11/wdm/authdir
+@dir /var/run/wdm