Date: Sat, 6 Nov 1999 01:35:12 -0800 (PST) From: tkato@prontomail.ne.jp To: freebsd-gnats-submit@freebsd.org Subject: ports/14740: Update port: x11/wdm to 1.19 Message-ID: <19991106093512.79D9C14CAE@hub.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 14740 >Category: ports >Synopsis: Update port: x11/wdm to 1.19 >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Nov 6 01:40:01 PST 1999 >Closed-Date: >Last-Modified: >Originator: KATO Tsuguru >Release: 3.3-RELEASE i386 >Organization: >Environment: >Description: * Updated version 1.0 to 1.19 * Fixed MASTER_SITES * Added WWW: line into pkg/DESCR New file: patches/patch-aa patches/patch-ac patches/patch-ae Remoce file: patches/patch-af patches/patch-ag patches/patches-ah patches/patch-ai NOTE: ports/14366 should be closed, since CSRG_BASED is defined at CPPFLAGS line of Makefile. >How-To-Repeat: >Fix: diff -urN /usr/ports/x11/wdm/Makefile x11/wdm/Makefile --- /usr/ports/x11/wdm/Makefile Thu Oct 7 21:08:38 1999 +++ x11/wdm/Makefile Sat Nov 6 14:33:35 1999 @@ -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: ports/x11/wdm/Makefile,v 1.29 1999/10/07 03:58:28 cpiazza Exp $ -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 @@ 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 -urN /usr/ports/x11/wdm/files/md5 x11/wdm/files/md5 --- /usr/ports/x11/wdm/files/md5 Wed Sep 23 10:34:00 1998 +++ x11/wdm/files/md5 Sat Nov 6 14:20:03 1999 @@ -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 -urN /usr/ports/x11/wdm/patches/patch-aa x11/wdm/patches/patch-aa --- /usr/ports/x11/wdm/patches/patch-aa Wed Nov 25 11:18:00 1998 +++ x11/wdm/patches/patch-aa Thu Jan 1 09:00:00 1970 @@ -1,20 +0,0 @@ ---- configure.orig Sun Sep 13 17:41:26 1998 -+++ configure Sat Sep 26 02:41:44 1998 -@@ -2784,7 +2784,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" - -@@ -3587,7 +3587,7 @@ - EOF - - cat >> confdefs.h <<EOF --#define DEF_AUTH_DIR "$DMDIR/authdir" -+#define DEF_AUTH_DIR "$DMDIR" - EOF - - diff -urN /usr/ports/x11/wdm/patches/patch-ab x11/wdm/patches/patch-ab --- /usr/ports/x11/wdm/patches/patch-ab Fri Sep 11 10:25:00 1998 +++ x11/wdm/patches/patch-ab Sat Nov 6 14:20:04 1999 @@ -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 -urN /usr/ports/x11/wdm/patches/patch-ac x11/wdm/patches/patch-ac --- /usr/ports/x11/wdm/patches/patch-ac Fri Jun 4 21:11:35 1999 +++ x11/wdm/patches/patch-ac Thu Jan 1 09:00:00 1970 @@ -1,29 +0,0 @@ ---- src/Login.c.orig Sun Sep 6 22:50:31 1998 -+++ src/Login.c Fri Jun 4 09:42:45 1999 -@@ -985,7 +985,7 @@ - static void setBG() - { - Window root_window; -- int cpc=4, render_mode = RM_MATCH, default_depth=8; -+ int cpc=4, render_mode = RBestMatchRendering, default_depth=8; - RContextAttributes rattr; - RContext *rcontext; - RImage *image; -@@ -1002,7 +1002,7 @@ - root_window = RootWindow(dpy, screen_number); - default_depth = DefaultDepth(dpy, screen_number); - if (default_depth<=8) -- render_mode = RM_DITHER; -+ render_mode = RDitheredRendering; - rattr.flags = RC_RenderMode | RC_ColorsPerChannel; - rattr.render_mode = render_mode; - rattr.colors_per_channel = cpc; -@@ -1010,7 +1010,7 @@ - if (rcontext==NULL) { - fprintf(stderr, - "%s could not initialize graphics library context: %s\n", -- ProgName, RErrorString); -+ ProgName, RMessageForError(RErrorCode)); - return; - } - diff -urN /usr/ports/x11/wdm/patches/patch-ad x11/wdm/patches/patch-ad --- /usr/ports/x11/wdm/patches/patch-ad Sat May 22 12:54:35 1999 +++ x11/wdm/patches/patch-ad Sat Nov 6 14:20:04 1999 @@ -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 -urN /usr/ports/x11/wdm/patches/patch-ae x11/wdm/patches/patch-ae --- /usr/ports/x11/wdm/patches/patch-ae Tue Oct 5 19:20:30 1999 +++ x11/wdm/patches/patch-ae Thu Jan 1 09:00:00 1970 @@ -1,184 +0,0 @@ ---- xdm/session.c.orig Mon Mar 2 20:56:36 1998 -+++ xdm/session.c Sun Oct 3 05:18:56 1999 -@@ -487,6 +487,149 @@ - exit (status); - } - -+#ifdef HAS_SETUSERCONTEXT -+/* -+ * copied from -+ * $FreeBSD: ports/x11/wdm/patches/patch-ae,v 1.1 1999/10/05 10:20:30 tg Exp $ -+ */ -+ -+#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) { -+ verify->userEnviron = setEnv(verify->userEnviron, vars->var, np); -+ free(np); -+ } else if (vars->def != NULL) { -+ if (getEnv(verify->userEnviron, vars->var) == NULL) -+ setEnv(verify->userEnviron, vars->var, vars->def); -+ } -+ ++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) { -+ verify->userEnviron = setEnv(verify->userEnviron, -+ *set_env, np); -+ free(np); -+ } -+ } -+ ++set_env; -+ } -+ } -+ } -+} -+#endif -+ - static Bool - StartClient (verify, d, pidp, name, passwd) - struct verify_info *verify; -@@ -559,12 +702,26 @@ - pwd = getpwnam(name); - if (pwd) - { -- if (setusercontext(NULL, pwd, pwd->pw_uid, LOGIN_SETALL) < 0) -- { -- LogError("setusercontext for \"%s\" failed, errno=%d\n", name, -- errno); -- return(0); -+ 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); - } -+ - endpwent(); - } - else diff -urN /usr/ports/x11/wdm/patches/patch-af x11/wdm/patches/patch-af --- /usr/ports/x11/wdm/patches/patch-af Thu Jan 1 09:00:00 1970 +++ x11/wdm/patches/patch-af Sat Nov 6 14:20:04 1999 @@ -0,0 +1,11 @@ +--- aclocal.m4.orig Thu Sep 16 16:56:32 1999 ++++ aclocal.m4 Sun Oct 31 23:41:54 1999 +@@ -20,7 +20,7 @@ + dnl AM_INIT_AUTOMAKE(package,version, [no-define]) + + AC_DEFUN(AM_INIT_AUTOMAKE, +-[AC_REQUIRE([AM_PROG_INSTALL]) ++[AC_REQUIRE([AC_PROG_INSTALL]) + PACKAGE=[$1] + AC_SUBST(PACKAGE) + VERSION=[$2] diff -urN /usr/ports/x11/wdm/patches/patch-ag x11/wdm/patches/patch-ag --- /usr/ports/x11/wdm/patches/patch-ag Thu Jan 1 09:00:00 1970 +++ x11/wdm/patches/patch-ag Sat Nov 6 14:20:04 1999 @@ -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 -urN /usr/ports/x11/wdm/patches/patch-ah x11/wdm/patches/patch-ah --- /usr/ports/x11/wdm/patches/patch-ah Thu Jan 1 09:00:00 1970 +++ x11/wdm/patches/patch-ah Sat Nov 6 14:20:04 1999 @@ -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 -urN /usr/ports/x11/wdm/patches/patch-ai x11/wdm/patches/patch-ai --- /usr/ports/x11/wdm/patches/patch-ai Thu Jan 1 09:00:00 1970 +++ x11/wdm/patches/patch-ai Sat Nov 6 14:20:04 1999 @@ -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 -urN /usr/ports/x11/wdm/pkg/DESCR x11/wdm/pkg/DESCR --- /usr/ports/x11/wdm/pkg/DESCR Fri Sep 4 07:17:00 1998 +++ x11/wdm/pkg/DESCR Sat Nov 6 14:20:05 1999 @@ -4,5 +4,7 @@ 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/ >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19991106093512.79D9C14CAE>