summaryrefslogtreecommitdiff
path: root/x11/wdm
diff options
context:
space:
mode:
authorMunechika SUMIKAWA <sumikawa@FreeBSD.org>1999-11-09 12:46:00 +0000
committerMunechika SUMIKAWA <sumikawa@FreeBSD.org>1999-11-09 12:46:00 +0000
commit59e10935c990ed7633a98b207b4b432dbf3221e8 (patch)
tree069536e96f484192bdf3a50fdb76ff2da8d87e5a /x11/wdm
parentMake some various cleanups. Note that I did not add RESTRICTED since this is (diff)
upgrade to 1.19.
PR: 14740 Submitted by: tkato@prontomail.ne.jp
Notes
Notes: svn path=/head/; revision=22989
Diffstat (limited to 'x11/wdm')
-rw-r--r--x11/wdm/Makefile28
-rw-r--r--x11/wdm/distinfo2
-rw-r--r--x11/wdm/files/patch-ab24
-rw-r--r--x11/wdm/files/patch-ad2
-rw-r--r--x11/wdm/files/patch-ag20
-rw-r--r--x11/wdm/files/patch-ah207
-rw-r--r--x11/wdm/files/patch-ai20
-rw-r--r--x11/wdm/pkg-descr4
8 files changed, 279 insertions, 28 deletions
diff --git a/x11/wdm/Makefile b/x11/wdm/Makefile
index fdf336126d5b..e42a0e4c3848 100644
--- a/x11/wdm/Makefile
+++ b/x11/wdm/Makefile
@@ -1,15 +1,14 @@
# New ports collection makefile for: wdm
-# Version required: 1.0
+# Version required: 1.19
# Date created: August 31, 1998
# Whom: Thomas Gellekum <tg@FreeBSD.org>
#
# $FreeBSD$
-DISTNAME= wdm-1.0
+DISTNAME= wdm-1.19
CATEGORIES= x11 windowmaker
-MASTER_SITES= ${MASTER_SITE_WINDOWMAKER} \
+MASTER_SITES= http://cortex.unice.fr/~jerome/WindowMaker/wdm/ \
http://www.de.freebsd.org/de/gif/bsd/
-MASTER_SITE_SUBDIR= contrib/srcs/utils
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${DAEMONPIC}
MAINTAINER= ports@FreeBSD.org
@@ -21,29 +20,32 @@ LIB_DEPENDS= Xpm.4:${PORTSDIR}/graphics/xpm \
tiff.4:${PORTSDIR}/graphics/tiff \
wraster.3:${PORTSDIR}/x11-wm/windowmaker \
PropList.2:${PORTSDIR}/devel/libPropList
+BUILD_DEPENDS= automake:${PORTSDIR}/devel/automake
EXTRACT_ONLY= ${DISTNAME}${EXTRACT_SUFX}
DIST_SUBDIR= wdm
USE_X_PREFIX= yes
-GNU_CONFIGURE= yes
-CONFIGURE_ENV= CFLAGS="${CFLAGS} -DHAS_SETUSERCONTEXT"
-CONFIGURE_ARGS= --with-gfx-libs="-L${LOCALBASE}/lib -lgif -lpng -ltiff -lXpm" \
- --with-gfx-incs="-I${LOCALBASE}/include" \
- --with-tiff-libs="-ljpeg" \
- --with-logdir=/var/log \
+USE_AUTOCONF= yes
+CONFIGURE_ENV= CPPFLAGS='-I${LOCALBASE}/include \
+ -DCSRG_BASED -DHAS_SETUSERCONTEXT' \
+ LIBS='-L${LOCALBASE}/lib'
+CONFIGURE_ARGS= --with-logdir=/var/log \
--with-runlockdir=/var/run \
--with-wdmdir=${PREFIX}/lib/X11/wdm \
--with-Logo=Earth200x130.xpm \
--with-defuserpath=/bin:/usr/bin:/sbin:/usr/sbin:${X11BASE}/bin:${LOCALBASE}/bin \
--with-defsystempath=/bin:/usr/bin:/sbin:/usr/sbin:${X11BASE}/bin \
- --with-wmlist=wmaker:afterstep:ctwm:enlightenment:fvwm:fvwm2:fvwm95:olvwm:qvwm:tvtwm
+ --with-wmlist=wmaker:afterstep:blackbox:ctwm:enlightenment:fvwm:fvwm2:fvwm95:olvwm:qvwm:tvtwm
MAN1= wdm.1 wdmLogin.1
DAEMONPIC= daemon1-HQ-1280x960.jpg
-post-extract:
- @(cd ${WRKSRC}; ${TAR} xzf xdm-332.tar.gz)
+post-patch:
+ @${PERL} -pi -e 's|%%X11BASE%%|${X11BASE}|g' ${WRKSRC}/doc/*.man
+
+pre-configure:
+ @(cd ${WRKSRC}; automake -a --include-deps)
post-install:
${INSTALL_DATA} ${_DISTDIR}/${DAEMONPIC} ${PREFIX}/lib/X11/wdm/pixmaps
diff --git a/x11/wdm/distinfo b/x11/wdm/distinfo
index c6e717a29316..2da2d6816c91 100644
--- a/x11/wdm/distinfo
+++ b/x11/wdm/distinfo
@@ -1,2 +1,2 @@
-MD5 (wdm/wdm-1.0.tar.gz) = 0c128c2e0035fe4a2dd991ce97594237
+MD5 (wdm/wdm-1.19.tar.gz) = eacbfec965f2ccf1840ad457cb04a67e
MD5 (wdm/daemon1-HQ-1280x960.jpg) = b38f175cf6b7167484afac423837ed1a
diff --git a/x11/wdm/files/patch-ab b/x11/wdm/files/patch-ab
index 86ac2c0e5a70..7783b5cf128d 100644
--- a/x11/wdm/files/patch-ab
+++ b/x11/wdm/files/patch-ab
@@ -1,16 +1,16 @@
---- src/config/wdm-config.in.orig Sun Aug 30 17:15:53 1998
-+++ src/config/wdm-config.in Fri Sep 11 09:22:53 1998
-@@ -25,11 +25,12 @@
+--- src/config/wdm-config.in.orig Thu Sep 16 16:27:58 1999
++++ src/config/wdm-config.in Sat Oct 30 12:41:26 1999
+@@ -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:#configdir#/pixmaps/Stars.jpg
-+DisplayManager*wdmBg: pixmap:#configdir#/pixmaps/daemon1-HQ-1280x960.jpg
+ ! 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:#configdir#/pixmaps/Stars.jpg
++DisplayManager*wdmBg: pixmap:#configdir#/pixmaps/daemon1-HQ-1280x960.jpg
!
! optional pixmap for logo
- #pixmapcomment#DisplayManager*wdmLogo: #configdir#/pixmaps/#pixmapfile#
+ #pixmapcomment#DisplayManager*wdmLogo: #configdir#/pixmaps/#pixmapfile#
diff --git a/x11/wdm/files/patch-ad b/x11/wdm/files/patch-ad
index c7b526177a6a..8e04ce356741 100644
--- a/x11/wdm/files/patch-ad
+++ b/x11/wdm/files/patch-ad
@@ -5,7 +5,7 @@
scaled to use the full screen.
.SH FILES
-\fBwdmLogin\fP can be customized by modifying \fI/etc/X11/wdm/wdm-config\fP.
-+\fBwdmLogin\fP can be customized by modifying \fI/usr/X11R6/lib/X11/wdm/wdm-config\fP.
++\fBwdmLogin\fP can be customized by modifying \fI%%X11BASE%%/lib/X11/wdm/wdm-config\fP.
.SH SEE ALSO
.BR wdm (1x)
.SH AUTHOR
diff --git a/x11/wdm/files/patch-ag b/x11/wdm/files/patch-ag
new file mode 100644
index 000000000000..4727ee5f7e1f
--- /dev/null
+++ b/x11/wdm/files/patch-ag
@@ -0,0 +1,20 @@
+--- configure.in.orig Tue Sep 21 23:16:21 1999
++++ configure.in Mon Nov 1 05:26:32 1999
+@@ -183,7 +183,7 @@
+
+ XLFLAGS="$X_LIBS"
+
+-XLIBS="$X_EXTRA_LIBS -lXext -lXt -lX11 -lm"
++XLIBS="$X_PRE_LIBS $X_EXTRA_LIBS -lXext -lXt -lX11 -lm"
+
+ XDM_EXTRA_LIBS="-lXmu -lXau -lXdmcp"
+
+@@ -504,7 +504,7 @@
+ AC_DEFINE_UNQUOTED(WDMDIR,"$DMDIR")
+ AC_DEFINE_UNQUOTED(DEF_XDM_CONFIG,"$DMDIR/wdm-config")
+ AC_DEFINE_UNQUOTED(DEF_CHOOSER,"$DMDIR/chooser")
+-AC_DEFINE_UNQUOTED(DEF_AUTH_DIR,"$DMDIR/authdir")
++AC_DEFINE_UNQUOTED(DEF_AUTH_DIR,"$DMDIR")
+
+ AC_SUBST(DMDIR)
+
diff --git a/x11/wdm/files/patch-ah b/x11/wdm/files/patch-ah
new file mode 100644
index 000000000000..5bd62cb12017
--- /dev/null
+++ b/x11/wdm/files/patch-ah
@@ -0,0 +1,207 @@
+--- patches/xdm-3.3.2-session.patch.orig Wed Sep 8 23:20:47 1999
++++ patches/xdm-3.3.2-session.patch Wed Nov 3 10:16:13 1999
+@@ -1,6 +1,158 @@
+---- xdm/session.c Mon Mar 2 12:56:36 1998
+-+++ src/session.c Sun Sep 5 10:06:22 1999
+-@@ -500,6 +500,8 @@
++--- xdm/session.c Mon Mar 2 20:56:36 1998
+++++ src/session.c Wed Nov 3 10:13:16 1999
++@@ -487,6 +487,151 @@
++ exit (status);
++ }
++
+++#ifdef HAS_SETUSERCONTEXT
+++#if defined (__FreeBSD__)
+++/*
+++ * copied from FreeBSD CVS Tree:
+++ * src/lib/libutil/login_class.c,v 1.10.2.2 1999/08/29 14:57:53
+++ */
+++
+++#undef UNKNOWN
+++#define UNKNOWN "su"
+++
+++static struct login_vars {
+++ const char *tag;
+++ const char *var;
+++ const char *def;
+++} pathvars[] = {
+++ { "path", "PATH", NULL },
+++ { "cdpath", "CDPATH", NULL },
+++ { "manpath", "MANPATH", NULL },
+++ { NULL, NULL, NULL }
+++}, envars[] = {
+++ { "lang", "LANG", NULL },
+++ { "charset", "MM_CHARSET", NULL },
+++ { "timezone", "TZ", NULL },
+++ { "term", "TERM", UNKNOWN },
+++ { NULL, NULL, NULL }
+++};
+++
+++static char *
+++substvar(char * var, const struct passwd * pwd, int hlen, int pch, int nlen)
+++{
+++ char *np = NULL;
+++
+++ if (var != NULL) {
+++
+++ int tildes = 0;
+++ int dollas = 0;
+++ char *p;
+++
+++ if (pwd != NULL) {
+++ /* Count the number of ~'s in var to substitute */
+++ p = var;
+++ for (p = var; (p = strchr(p, '~')) != NULL; p++)
+++ ++tildes;
+++ /* Count the number of $'s in var to substitute */
+++ p = var;
+++ for (p = var; (p = strchr(p, '$')) != NULL; p++)
+++ ++dollas;
+++ }
+++
+++ np = malloc(strlen(var) + (dollas * nlen)
+++ - dollas + (tildes * (pch+hlen))
+++ - tildes + 1);
+++
+++ if (np != NULL) {
+++ p = strcpy(np, var);
+++
+++ if (pwd != NULL) {
+++ /*
+++ * This loop does user username and homedir substitutions
+++ * for unescaped $ (username) and ~ (homedir)
+++ */
+++ while (*(p += strcspn(p, "~$")) != '\0') {
+++ int l = strlen(p);
+++
+++ if (p > np && *(p-1) == '\\') /* Escaped: */
+++ memmove(p - 1, p, l + 1); /* Slide-out the backslash */
+++ else if (*p == '~') {
+++ int v = pch && *(p+1) != '/'; /* Avoid double // */
+++ memmove(p + hlen + v, p + 1, l); /* Subst homedir */
+++ memmove(p, pwd->pw_dir, hlen);
+++ if (v)
+++ p[hlen] = '/';
+++ p += hlen + v;
+++ }
+++ else /* if (*p == '$') */ {
+++ memmove(p + nlen, p + 1, l); /* Subst username */
+++ memmove(p, pwd->pw_name, nlen);
+++ p += nlen;
+++ }
+++ }
+++ }
+++ }
+++ }
+++
+++ return np;
+++
+++}
+++
+++
+++void
+++setclassEnvironment(login_cap_t *lc, const struct passwd * pwd, int paths,
+++ struct verify_info *verify)
+++{
+++ char *getEnv ();
+++ struct login_vars *vars = paths ? pathvars : envars;
+++ int hlen = pwd ? strlen(pwd->pw_dir) : 0;
+++ int nlen = pwd ? strlen(pwd->pw_name) : 0;
+++ char pch = 0;
+++
+++ if (hlen && pwd->pw_dir[hlen-1] != '/')
+++ ++pch;
+++
+++ while (vars->tag != NULL) {
+++ char * var = paths ? login_getpath(lc, vars->tag, NULL)
+++ : login_getcapstr(lc, vars->tag, NULL, NULL);
+++
+++ char * np = substvar(var, pwd, hlen, pch, nlen);
+++
+++ if (np != NULL) {
+++ setenv(vars->var, np, 1);
+++ free(np);
+++ } else if (vars->def != NULL) {
+++ setenv(vars->var, vars->def, 0);
+++ }
+++ ++vars;
+++ }
+++
+++ /*
+++ * If we're not processing paths, then see if there is a setenv list by
+++ * which the admin and/or user may set an arbitrary set of env vars.
+++ */
+++ if (!paths) {
+++ char **set_env = login_getcaplist(lc, "setenv", ",");
+++
+++ if (set_env != NULL) {
+++ while (*set_env != NULL) {
+++ char *p = strchr(*set_env, '=');
+++
+++ if (p != NULL) { /* Discard invalid entries */
+++ char *np;
+++
+++ *p++ = '\0';
+++ if ((np = substvar(p, pwd, hlen, pch, nlen)) != NULL) {
+++ setenv(*set_env, np, 1);
+++ free(np);
+++ }
+++ }
+++ ++set_env;
+++ }
+++ }
+++ }
+++}
+++#endif
+++#endif
+++
++ static Bool
++ StartClient (verify, d, pidp, name, passwd)
++ struct verify_info *verify;
++@@ -500,6 +645,8 @@
+ int pid;
+ #ifdef HAS_SETUSERCONTEXT
+ struct passwd* pwd;
+@@ -9,7 +161,7 @@
+ #endif
+
+ if (verify->argv) {
+-@@ -556,6 +558,8 @@
++@@ -556,15 +703,39 @@
+ * Set the user's credentials: uid, gid, groups,
+ * environment variables, resource limits, and umask.
+ */
+@@ -18,9 +170,32 @@
+ pwd = getpwnam(name);
+ if (pwd)
+ {
+-@@ -565,6 +569,7 @@
+++#if defined (__FreeBSD__)
+++ login_cap_t *lc;
+++
+++ lc = login_getpwclass(pwd);
+++ if (setusercontext(lc, pwd, pwd->pw_uid,
+++ LOGIN_SETALL & ~(LOGIN_SETPATH | LOGIN_SETENV)) < 0) {
+++ LogError("setusercontext for \"%s\" failed, errno=%d\n",
+++ name, errno);
+++ login_close(lc);
+++ return(0);
+++ }
+++ setclassEnvironment(lc, pwd, 1, verify);
+++ setclassEnvironment(lc, pwd, 0, verify);
+++ login_close(lc);
+++
+++ if ((lc = login_getuserclass(pwd)) != NULL) {
+++ setclassEnvironment(lc, pwd, 1, verify);
+++ setclassEnvironment(lc, pwd, 0, verify);
+++ login_close(lc);
+++#else
++ if (setusercontext(NULL, pwd, pwd->pw_uid, LOGIN_SETALL) < 0)
++ {
++ LogError("setusercontext for \"%s\" failed, errno=%d\n", name,
+ errno);
+ return(0);
+++#endif
+ }
+ + verify->userEnviron = environ;
+ endpwent();
diff --git a/x11/wdm/files/patch-ai b/x11/wdm/files/patch-ai
new file mode 100644
index 000000000000..a3531143f85d
--- /dev/null
+++ b/x11/wdm/files/patch-ai
@@ -0,0 +1,20 @@
+--- src/Greet.c.orig Tue Sep 21 23:16:21 1999
++++ src/Greet.c Wed Nov 3 08:03:00 1999
+@@ -260,7 +260,7 @@
+ }
+
+ execle(wdmLogin, tmp, DisplayName,
+- Wm, Logo, HelpFile, DefaultUser, Bg, Animate,
++ Wm, Logo, Bg, Animate, HelpFile, DefaultUser,
+ NULL, env);
+
+ LogError ("Greet cannot exec %s\n", wdmLogin);
+@@ -405,7 +405,7 @@
+ "%s exit(%s) by %s\n",
+ PACKAGE, exitArg, name);
+ #endif
+-#if 0
++#if 1
+ SessionExit (d, UNMANAGE_DISPLAY, FALSE);
+ #else
+ Debug ("Killing parent process %d\n", getppid());
diff --git a/x11/wdm/pkg-descr b/x11/wdm/pkg-descr
index a16e6ff7bd34..c528691bf408 100644
--- a/x11/wdm/pkg-descr
+++ b/x11/wdm/pkg-descr
@@ -4,5 +4,7 @@ wdm 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) with the Login interface based on a WINGs
+preserved (XFree86 3.3.2.3) with the Login interface based on a WINGs
implementation using Tom Rothamel's "external greet" interface.
+
+WWW: http://www.tuffguy.net/~wdm/