From owner-p4-projects@FreeBSD.ORG Wed May 7 23:30:38 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 89D7037B404; Wed, 7 May 2003 23:30:37 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2525F37B401 for ; Wed, 7 May 2003 23:30:37 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5F1FA43FA3 for ; Wed, 7 May 2003 23:30:36 -0700 (PDT) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h486Ua0U008172 for ; Wed, 7 May 2003 23:30:36 -0700 (PDT) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h486UZnN008169 for perforce@freebsd.org; Wed, 7 May 2003 23:30:35 -0700 (PDT) Date: Wed, 7 May 2003 23:30:35 -0700 (PDT) Message-Id: <200305080630.h486UZnN008169@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm To: Perforce Change Reviews Subject: PERFORCE change 30750 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 May 2003 06:30:39 -0000 http://perforce.freebsd.org/chv.cgi?CH=30750 Change 30750 by peter@peter_daintree on 2003/05/07 23:30:21 IFC @30749 Affected files ... .. //depot/projects/hammer/lib/libc/amd64/gen/modf.S#6 integrate .. //depot/projects/hammer/lib/libc/amd64/gen/setjmp.S#5 integrate .. //depot/projects/hammer/lib/libc/amd64/gen/sigsetjmp.S#5 integrate .. //depot/projects/hammer/libexec/rtld-elf/rtld.c#7 integrate .. //depot/projects/hammer/release/Makefile#17 integrate .. //depot/projects/hammer/sbin/vinum/commands.c#7 integrate .. //depot/projects/hammer/share/man/man5/disktab.5#3 integrate .. //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#7 integrate .. //depot/projects/hammer/usr.sbin/pw/pw.8#3 integrate Differences ... ==== //depot/projects/hammer/lib/libc/amd64/gen/modf.S#6 (text+ko) ==== @@ -40,7 +40,7 @@ #if defined(LIBC_SCCS) RCSID("$NetBSD: modf.S,v 1.5 1997/07/16 14:37:18 christos Exp $") #endif -__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/modf.S,v 1.1 2003/04/30 16:21:03 obrien Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/modf.S,v 1.2 2003/05/08 03:19:37 peter Exp $"); /* * modf(value, iptr): return fractional part of value, and stores the ==== //depot/projects/hammer/lib/libc/amd64/gen/setjmp.S#5 (text+ko) ==== @@ -38,7 +38,7 @@ .asciz "@(#)setjmp.s 5.1 (Berkeley) 4/23/90" #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/setjmp.S,v 1.23 2003/04/30 18:09:33 peter Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/setjmp.S,v 1.24 2003/05/08 06:25:03 peter Exp $"); /* * C library -- _setjmp, _longjmp @@ -55,9 +55,9 @@ ENTRY(setjmp) pushq %rdi movq %rdi,%rcx - leaq 72(%rcx),%rdi /* (sigset_t*)oset */ + movq $1,%rdi /* SIG_BLOCK */ movq $0,%rsi /* (sigset_t*)set */ - movq $1,%rdx /* SIG_BLOCK */ + leaq 72(%rcx),%rdx /* (sigset_t*)oset */ call PIC_PLT(CNAME(_sigprocmask)) popq %rdi movq %rdi,%rcx @@ -80,9 +80,9 @@ pushq %rdi pushq %rsi movq %rdi,%rdx - movq $0,%rdi /* (sigset_t*)oset */ + movq $1,%rdi /* SIG_SETMASK */ leaq 72(%rdx),%rsi /* (sigset_t*)set */ - movq $3,%rdx /* SIG_SETMASK */ + movq $0,%rdx /* (sigset_t*)oset */ call PIC_PLT(CNAME(_sigprocmask)) popq %rsi popq %rdi /* jmpbuf */ ==== //depot/projects/hammer/lib/libc/amd64/gen/sigsetjmp.S#5 (text+ko) ==== @@ -41,7 +41,7 @@ .asciz "$Id: sigsetjmp.S,v 1.1 1993/12/05 13:01:05 ats Exp $" #endif /* LIBC_SCCS and not lint */ #include -__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/sigsetjmp.S,v 1.25 2003/04/30 18:09:33 peter Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/amd64/gen/sigsetjmp.S,v 1.26 2003/05/08 06:25:03 peter Exp $"); #include "SYS.h" @@ -58,18 +58,17 @@ */ ENTRY(sigsetjmp) - pushq %rdi - movq %rdi,%rcx - movl %esi,88(%rcx) + movl %esi,88(%rdi) testl %esi,%esi jz 2f - leaq 72(%rcx),%rdi /* (sigset_t*)oset */ + pushq %rdi + movq $1,%rdi /* SIG_BLOCK */ movq $0,%rsi /* (sigset_t*)set */ - movq $1,%rdx /* SIG_BLOCK */ + leaq 72(%rcx),%rdx /* (sigset_t*)oset */ call PIC_PLT(CNAME(_sigprocmask)) popq %rdi - movq %rdi,%rcx -2: movq 0(%rsp),%rdx /* retval */ +2: movq %rdi,%rcx + movq 0(%rsp),%rdx /* retval */ movq %rdx, 0(%rcx) /* retval */ movq %rbx, 8(%rcx) movq %rsp,16(%rcx) @@ -90,9 +89,9 @@ movq %rdi,%rdx pushq %rdi pushq %rsi - movq $0,%rdi /* (sigset_t*)oset */ + movq $3,%rdi /* SIG_SETMASK */ leaq 72(%rdx),%rsi /* (sigset_t*)set */ - movq $3,%rdx /* SIG_SETMASK */ + movq $0,%rdx /* (sigset_t*)oset */ call PIC_PLT(CNAME(_sigprocmask)) popq %rsi popq %rdi /* jmpbuf */ ==== //depot/projects/hammer/libexec/rtld-elf/rtld.c#7 (text+ko) ==== @@ -23,7 +23,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.78 2003/05/04 00:56:00 obrien Exp $ + * $FreeBSD: src/libexec/rtld-elf/rtld.c,v 1.79 2003/05/08 01:31:36 kan Exp $ */ /* @@ -126,6 +126,7 @@ static void unlink_object(Obj_Entry *); static void unload_object(Obj_Entry *); static void unref_dag(Obj_Entry *); +static void ref_dag(Obj_Entry *); void r_debug_state(struct r_debug*, struct link_map*); @@ -361,7 +362,6 @@ *obj_tail = obj_main; obj_tail = &obj_main->next; obj_count++; - obj_main->refcount++; /* Make sure we don't call the main program's init and fini functions. */ obj_main->init = obj_main->fini = NULL; @@ -383,8 +383,10 @@ die(); /* Make a list of all objects loaded at startup. */ - for (obj = obj_list; obj != NULL; obj = obj->next) + for (obj = obj_list; obj != NULL; obj = obj->next) { objlist_push_tail(&list_main, obj); + obj->refcount++; + } if (ld_tracing) { /* We're done */ trace_loaded_objects(obj_main); @@ -970,6 +972,8 @@ if (donelist_check(dlp, obj)) return; + + obj->refcount++; objlist_push_tail(&obj->dldags, root); objlist_push_tail(&root->dagmembers, obj); for (needed = obj->needed; needed != NULL; needed = needed->next) @@ -1223,7 +1227,6 @@ } else free(path); - obj->refcount++; return obj; } @@ -1579,6 +1582,7 @@ /* Unreference the object and its dependencies. */ root->dl_refcount--; + unref_dag(root); if (root->refcount == 0) { @@ -1682,8 +1686,14 @@ /* Make list of init functions to call. */ initlist_add_objects(obj, &obj->next, &initlist); } - } else if (ld_tracing) - goto trace; + } else { + + /* Bump the reference counts for objects on this DAG. */ + ref_dag(obj); + + if (ld_tracing) + goto trace; + } } GDB_STATE(RT_CONSISTENT,obj ? &obj->linkmap : NULL); @@ -2405,7 +2415,6 @@ static void unlink_object(Obj_Entry *root) { - const Needed_Entry *needed; Objlist_Entry *elm; if (root->refcount == 0) { @@ -2413,25 +2422,28 @@ objlist_remove(&list_global, root); /* Remove the object from all objects' DAG lists. */ - STAILQ_FOREACH(elm, &root->dagmembers , link) + STAILQ_FOREACH(elm, &root->dagmembers , link) { objlist_remove(&elm->obj->dldags, root); + if (elm->obj != root) + unlink_object(elm->obj); + } } +} - for (needed = root->needed; needed != NULL; needed = needed->next) - if (needed->obj != NULL) - unlink_object(needed->obj); +static void +ref_dag(Obj_Entry *root) +{ + Objlist_Entry *elm; + + STAILQ_FOREACH(elm, &root->dagmembers , link) + elm->obj->refcount++; } static void unref_dag(Obj_Entry *root) { - const Needed_Entry *needed; + Objlist_Entry *elm; - if (root->refcount == 0) - return; - root->refcount--; - if (root->refcount == 0) - for (needed = root->needed; needed != NULL; needed = needed->next) - if (needed->obj != NULL) - unref_dag(needed->obj); + STAILQ_FOREACH(elm, &root->dagmembers , link) + elm->obj->refcount--; } ==== //depot/projects/hammer/release/Makefile#17 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/release/Makefile,v 1.774 2003/05/05 07:58:42 markm Exp $ +# $FreeBSD: src/release/Makefile,v 1.775 2003/05/08 03:25:17 obrien Exp $ # # make release [BUILDNAME=somename] CHROOTDIR=/some/dir CVSROOT=/cvs/dir \ # [RELEASETAG=tag] @@ -756,6 +756,117 @@ .endif touch release.9 +release.9.alpha: +.if ${TARGET_ARCH} != "ia64" || ${TARGET_ARCH} == ${MACHINE_ARCH} + cp ${RD}/trees/base/etc/disktab /etc + rm -rf ${RD}/mfsfd + mkdir ${RD}/mfsfd + cd ${RD}/mfsfd && \ + mkdir -p etc/defaults dev mnt stand/etc/defaults stand/help + @cd ${.CURDIR} && $(MAKE) installCRUNCH CRUNCH=boot \ + DIR=${RD}/mfsfd/stand ZIP=false + ( cd ${RD}/mfsfd && \ + for dir in bin sbin ; do \ + ln -sf /stand $$dir; \ + done ) + cp ${RD}/trees/base/sbin/dhclient-script ${RD}/mfsfd/stand +.if ${TARGET} == "pc98" + cp ${.CURDIR}/../etc/defaults/pccard.conf ${RD}/mfsfd/etc/defaults/pccard.conf +.endif + cp ${.CURDIR}/../etc/usbd.conf ${RD}/mfsfd/etc/usbd.conf + ( for F in defaults/rc.conf netconfig protocols ; do \ + sed -e '/^#.*$$/d' -e 's/[:space:]*#.*$$//g' \ + ${RD}/trees/base/etc/$$F > ${RD}/mfsfd/stand/etc/$$F ; \ + done ) + grep -E '^(ftp|nameserver|domain|sunrpc|cmd|nfsd)[^-\w]' \ + ${RD}/trees/base/etc/services | \ + sed -e '/^#.*$$/d' -e 's/[:space:]*#.*$$//g' \ + > ${RD}/mfsfd/stand/etc/services + ln ${RD}/mfsfd/stand/etc/services ${RD}/mfsfd/etc/services + ln ${RD}/mfsfd/stand/etc/netconfig ${RD}/mfsfd/etc/netconfig + cp ${RD}/trees/base/COPYRIGHT ${RD}/mfsfd/stand/help/COPYRIGHT.hlp +.if !defined(NODOC) + @for i in ${DIST_DOCS_ARCH_INDEP}; do \ + cp ${RND}/${RELNOTES_LANG}/$$i/article.txt ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ + done + @for i in ${DIST_DOCS_ARCH_DEP}; do \ + cp ${RND}/${RELNOTES_LANG}/$$i/${TARGET}/article.txt ${RD}/mfsfd/stand/help/`echo $${i} | tr 'a-z' 'A-Z'`.TXT; \ + done + @mv ${RD}/mfsfd/stand/help/INSTALLATION.TXT ${RD}/mfsfd/stand/help/INSTALL.TXT + @mv ${RD}/mfsfd/stand/help/EARLY-ADOPTER.TXT ${RD}/mfsfd/stand/help/EARLY.TXT +.endif + -test -f ${.CURDIR}/install.cfg && cp ${.CURDIR}/install.cfg ${RD}/mfsfd + @mkdir -p ${RD}/mfsfd/boot +.if ${TARGET_ARCH} != "ia64" + @cp ${RD}/trees/base/boot/boot* ${RD}/mfsfd/boot +.endif +.if ${TARGET} == "i386" + @cp ${RD}/trees/base/boot/mbr ${RD}/mfsfd/boot +.endif + @echo "Making the regular boot floppy." + @tar --exclude CVS -cf - -C ${.CURDIR}/../usr.sbin/sysinstall help | \ + tar xf - -C ${RD}/mfsfd/stand +.if ${TARGET_ARCH} == "alpha" && !defined(NO_FLOPPIES) + rm -rf ${RD}/mfsfd/stand/help/* +.endif +.if defined(SMALLBOOTSIZE) +.if exists(${.CURDIR}/${TARGET}/drivers-small.conf) + @rm -rf ${RD}/mfsfd/modules + @mkdir -p ${RD}/mfsfd/modules + @awk -f ${.CURDIR}/scripts/driver-copy2.awk 2 \ + ${.CURDIR}/${TARGET}/drivers-small.conf \ + ${RD}/trees/base/boot/kernel ${RD}/mfsfd/modules +.endif + sh -e ${DOFS_SH} mfsroot ${RD} ${MNT} \ + ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL} + @gzip -9vc mfsroot > mfsroot.gz + @sh -e ${DOFS_SH} ${RD}/floppies/mfsroot-small.flp \ + ${RD} ${MNT} ${SMALLBOOTSIZE} mfsroot.gz \ + ${BOOTINODE} ${SMALLBOOTLABEL} +.endif +.if exists(${.CURDIR}/${TARGET}/drivers.conf) + @rm -rf ${RD}/mfsfd/modules + @mkdir -p ${RD}/mfsfd/modules + @awk -f ${.CURDIR}/scripts/driver-copy2.awk 2 \ + ${.CURDIR}/${TARGET}/drivers.conf \ + ${RD}/trees/base/boot/kernel ${RD}/mfsfd/modules + @rm -rf ${RD}/driversfd + @mkdir ${RD}/driversfd + @awk -f ${.CURDIR}/scripts/driver-copy2.awk 3 \ + ${.CURDIR}/${TARGET}/drivers.conf \ + ${RD}/trees/base/boot/kernel ${RD}/driversfd + -@rmdir ${RD}/driversfd + if [ -d ${RD}/driversfd ]; then \ + sh -e ${DOFS_SH} \ + ${RD}/floppies/drivers.flp ${RD} ${MNT} ${DRIVERSIZE} \ + ${RD}/driversfd ${DRIVERINODE} ${DRIVERLABEL}; \ + cd ${RD}/driversfd && awk -f ${.CURDIR}/scripts/driver-desc.awk \ + *.dsc >> ${RD}/floppies/DRIVERS.TXT; \ + fi +.endif + sh -e ${DOFS_SH} mfsroot ${RD} ${MNT} \ + ${MFSSIZE} ${RD}/mfsfd ${MFSINODE} ${MFSLABEL} + @gzip -9vc mfsroot > mfsroot.gz + @mkdir -p ${RD}/mfsroot + @cp mfsroot.gz ${RD}/mfsroot +.if !defined(NO_FLOPPIES) +.if defined(BOOTSIZE) + @sh -e ${DOFS_SH} ${RD}/floppies/mfsroot.flp \ + ${RD} ${MNT} ${BOOTSIZE} mfsroot.gz ${BOOTINODE} ${BOOTLABEL} + @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern +.endif +.if defined(SMALLBOOTSIZE) + @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=kern-small FDSIZE=SMALL +.endif +.if defined(BIGBOOTSIZE) + @cd ${.CURDIR} && ${MAKE} doMFSKERN FSIMAGE=boot FDSIZE=BIG +.endif +.endif + @rm mfsroot mfsroot.gz + @echo "Regular and MFS boot floppies made." +.endif + touch release.9.alpha + # # --==## Create a fixit floppy ##==-- # @@ -972,8 +1083,14 @@ md5 * > CHECKSUM.MD5) \ ) +.if ${TARGET_ARCH} == "alpha" +RELEASE9=release.9.${TARGET_ARCH} +.else +RELEASE9=release.9 +.endif + doRELEASE: release.1 release.2 release.3 ${DOCREL} release.4 release.5 \ - release.6 release.7 release.8 release.9 ${FIXIT_TARGET} + release.6 release.7 release.8 ${RELEASE9} ${FIXIT_TARGET} @cd ${.CURDIR} && ${MAKE} ${EXTRAS} @echo "Release done" ==== //depot/projects/hammer/sbin/vinum/commands.c#7 (text+ko) ==== @@ -36,8 +36,8 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: commands.c,v 1.23 2003/05/04 05:23:59 grog Exp grog $ - * $FreeBSD: src/sbin/vinum/commands.c,v 1.51 2003/05/05 22:49:23 obrien Exp $ + * $Id: commands.c,v 1.24 2003/05/07 03:17:43 grog Exp grog $ + * $FreeBSD: src/sbin/vinum/commands.c,v 1.52 2003/05/08 00:33:57 grog Exp $ */ #include "vext.h" @@ -160,18 +160,12 @@ strcat(buffer, " "); } } - if (ioctl(superdev, VINUM_STARTCONFIG, &force)) { /* can't get config? */ - fprintf(stderr, "Can't configure: %s (%d)\n", strerror(errno), errno); - return; - } ioctl(superdev, VINUM_READCONFIG, &buffer); if (reply->error != 0) { /* error in config */ fprintf(stdout, "** %s: %s\n", reply->msg, strerror(reply->error)); - error = ioctl(superdev, VINUM_RELEASECONFIG, NULL); /* save the config to disk */ if (error != 0) perror("Can't save Vinum config"); } else { - error = ioctl(superdev, VINUM_RELEASECONFIG, NULL); /* save the config to disk */ if (error != 0) perror("Can't save Vinum config"); if (no_devfs) ==== //depot/projects/hammer/share/man/man5/disktab.5#3 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)disktab.5 8.1 (Berkeley) 6/5/93 -.\" $FreeBSD: src/share/man/man5/disktab.5,v 1.11 2002/12/12 17:25:57 ru Exp $ +.\" $FreeBSD: src/share/man/man5/disktab.5,v 1.12 2003/05/08 00:14:48 trhodes Exp $ .\" .Dd June 5, 1993 .Dt DISKTAB 5 @@ -54,16 +54,15 @@ .Xr termcap 5 terminal data base. Entries in .Nm -consist of a number of `:' separated fields. The -first entry for each disk gives the names which are -known for the disk, separated by `|' characters. The +consist of a number of `:'-separated fields. The +first field for each entry gives the names by which a +disk's entry may be selected, separated by `|' characters. The last name given should be a long name fully identifying the disk. .Pp -The following list indicates the normal values -stored for each disk entry. +The optional fields for each entry are: .Bl -column "indent" "boolx" -.It Sy "Name Type Description" +.It Sy "ID Type Description" .It "\&ty str Type of disk (e.g. removable, winchester)" .It "\&dt str Type of controller (e.g." .Tn SMD , ESDI , @@ -86,6 +85,8 @@ .It "\&d[0-4] num Drive-type-dependent parameters" .It "\&bs num Boot block size, default" .Dv BBSIZE +.It "\&b[0-1] num Boot block filenames; see" +.Xr bsdlabel 8 .It "\&sb num Superblock size, default" .Dv SBSIZE .It "\&ba num Block size for partition `a' (bytes)" ==== //depot/projects/hammer/sys/dev/vinum/vinumioctl.c#7 (text+ko) ==== @@ -41,8 +41,8 @@ * otherwise) arising in any way out of the use of this software, even if * advised of the possibility of such damage. * - * $Id: vinumioctl.c,v 1.21 2003/05/04 05:23:09 grog Exp grog $ - * $FreeBSD: src/sys/dev/vinum/vinumioctl.c,v 1.45 2003/05/05 08:41:53 grog Exp $ + * $Id: vinumioctl.c,v 1.22 2003/05/07 03:31:45 grog Exp grog $ + * $FreeBSD: src/sys/dev/vinum/vinumioctl.c,v 1.46 2003/05/08 00:36:20 grog Exp $ */ #include @@ -303,9 +303,6 @@ return error; case VINUM_READCONFIG: - error = lock_config(); /* get the config for us alone */ - if (error) /* can't do it, */ - return error; /* give up */ if (((char *) data)[0] == '\0') ioctl_reply->error = vinum_scandisk(NULL); /* built your own list */ else @@ -317,7 +314,6 @@ strcpy(ioctl_reply->msg, "no drives found"); } else if (ioctl_reply->error) strcpy(ioctl_reply->msg, "can't read configuration information, see log file"); - unlock_config(); return 0; /* must be 0 to return the real error info */ case VINUM_INIT: ==== //depot/projects/hammer/usr.sbin/pw/pw.8#3 (text+ko) ==== @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/usr.sbin/pw/pw.8,v 1.32 2002/12/12 17:26:03 ru Exp $ +.\" $FreeBSD: src/usr.sbin/pw/pw.8,v 1.33 2003/05/08 00:28:36 trhodes Exp $ .\" .Dd December 9, 1996 .Dt PW 8 @@ -912,6 +912,14 @@ .Xr fingerd 8 , and a small number of TCP/IP clients, such as IRC, where full names specified in the passwd file may be used by default. +.Pp +The +.Nm +utility writes a log to the +.Pa /var/log/userlog +file when actions such as user or group additions or deletions occur. +The location of this logfile can be changed in +.Xr pw.conf 5 . .Sh FILES .Bl -tag -width /etc/master.passwd.new -compact .It Pa /etc/master.passwd @@ -930,6 +938,8 @@ Temporary copy of the group file .It Pa /etc/pw.conf Pw default options file +.It Pa /var/log/userlog +User/group modification logfile .El .Sh SEE ALSO .Xr chpass 1 ,