svn commit: r188430 - in projects/tcp_cc_7.x: . bin bin/chio bin/cp bin/dd bin/ln bin/sh contrib contrib/bind9 contrib/gcc contrib/gdb contrib/gdtoa contrib/ntp contrib/opie contrib/sendmail contri...

Lawrence Stewart lstewart at FreeBSD.org
Mon Feb 9 20:56:09 PST 2009


Author: lstewart
Date: Tue Feb 10 04:56:08 2009
New Revision: 188430
URL: http://svn.freebsd.org/changeset/base/188430

Log:
  Merge r188055:188429 from stable/7

Added:
  projects/tcp_cc_7.x/lib/libarchive/test/test_write_disk_sparse.c
     - copied unchanged from r188429, stable/7/lib/libarchive/test/test_write_disk_sparse.c
  projects/tcp_cc_7.x/share/man/man5/portindex.5
     - copied unchanged from r188429, stable/7/share/man/man5/portindex.5
  projects/tcp_cc_7.x/share/man/man7/adding_user.7
     - copied unchanged from r188429, stable/7/share/man/man7/adding_user.7
Deleted:
  projects/tcp_cc_7.x/share/man/man8/adding_user.8
Modified:
  projects/tcp_cc_7.x/   (props changed)
  projects/tcp_cc_7.x/COPYRIGHT   (props changed)
  projects/tcp_cc_7.x/Makefile   (contents, props changed)
  projects/tcp_cc_7.x/Makefile.inc1   (props changed)
  projects/tcp_cc_7.x/ObsoleteFiles.inc
  projects/tcp_cc_7.x/UPDATING   (contents, props changed)
  projects/tcp_cc_7.x/bin/   (props changed)
  projects/tcp_cc_7.x/bin/chio/   (props changed)
  projects/tcp_cc_7.x/bin/cp/   (props changed)
  projects/tcp_cc_7.x/bin/cp/utils.c
  projects/tcp_cc_7.x/bin/dd/   (props changed)
  projects/tcp_cc_7.x/bin/ln/   (props changed)
  projects/tcp_cc_7.x/bin/sh/   (props changed)
  projects/tcp_cc_7.x/contrib/   (props changed)
  projects/tcp_cc_7.x/contrib/bind9/   (props changed)
  projects/tcp_cc_7.x/contrib/gcc/   (props changed)
  projects/tcp_cc_7.x/contrib/gdb/   (props changed)
  projects/tcp_cc_7.x/contrib/gdtoa/   (props changed)
  projects/tcp_cc_7.x/contrib/ntp/   (props changed)
  projects/tcp_cc_7.x/contrib/opie/opiekey.1
  projects/tcp_cc_7.x/contrib/sendmail/   (props changed)
  projects/tcp_cc_7.x/contrib/smbfs/   (props changed)
  projects/tcp_cc_7.x/contrib/tcsh/   (props changed)
  projects/tcp_cc_7.x/contrib/telnet/   (props changed)
  projects/tcp_cc_7.x/contrib/top/   (props changed)
  projects/tcp_cc_7.x/contrib/traceroute/   (props changed)
  projects/tcp_cc_7.x/crypto/openssh/   (props changed)
  projects/tcp_cc_7.x/etc/   (props changed)
  projects/tcp_cc_7.x/etc/defaults/rc.conf
  projects/tcp_cc_7.x/etc/periodic/weekly/   (props changed)
  projects/tcp_cc_7.x/etc/rc.d/jail
  projects/tcp_cc_7.x/games/fortune/   (props changed)
  projects/tcp_cc_7.x/games/fortune/fortune/   (props changed)
  projects/tcp_cc_7.x/gnu/   (props changed)
  projects/tcp_cc_7.x/gnu/usr.bin/cc/   (props changed)
  projects/tcp_cc_7.x/gnu/usr.bin/cvs/   (props changed)
  projects/tcp_cc_7.x/gnu/usr.bin/gdb/kgdb/   (props changed)
  projects/tcp_cc_7.x/gnu/usr.bin/groff/tmac/mdoc.local   (props changed)
  projects/tcp_cc_7.x/gnu/usr.bin/sort/   (props changed)
  projects/tcp_cc_7.x/include/   (props changed)
  projects/tcp_cc_7.x/kerberos5/   (props changed)
  projects/tcp_cc_7.x/lib/   (props changed)
  projects/tcp_cc_7.x/lib/bind/   (props changed)
  projects/tcp_cc_7.x/lib/csu/   (props changed)
  projects/tcp_cc_7.x/lib/libarchive/   (props changed)
  projects/tcp_cc_7.x/lib/libarchive/archive_write_disk.c
  projects/tcp_cc_7.x/lib/libarchive/test/Makefile
  projects/tcp_cc_7.x/lib/libbluetooth/   (props changed)
  projects/tcp_cc_7.x/lib/libc/   (props changed)
  projects/tcp_cc_7.x/lib/libc/string/ffsll.c   (props changed)
  projects/tcp_cc_7.x/lib/libc/string/flsll.c   (props changed)
  projects/tcp_cc_7.x/lib/libc/sys/cpuset_getaffinity.2
  projects/tcp_cc_7.x/lib/libc/sys/jail.2
  projects/tcp_cc_7.x/lib/libc_r/   (props changed)
  projects/tcp_cc_7.x/lib/libcam/   (props changed)
  projects/tcp_cc_7.x/lib/libdisk/   (props changed)
  projects/tcp_cc_7.x/lib/libfetch/   (props changed)
  projects/tcp_cc_7.x/lib/libftpio/   (props changed)
  projects/tcp_cc_7.x/lib/libgeom/   (props changed)
  projects/tcp_cc_7.x/lib/libgssapi/   (props changed)
  projects/tcp_cc_7.x/lib/libkse/   (props changed)
  projects/tcp_cc_7.x/lib/libkvm/   (props changed)
  projects/tcp_cc_7.x/lib/libkvm/kvm_proc.c
  projects/tcp_cc_7.x/lib/libmagic/   (props changed)
  projects/tcp_cc_7.x/lib/libstand/   (props changed)
  projects/tcp_cc_7.x/lib/libthr/   (props changed)
  projects/tcp_cc_7.x/lib/libutil/   (props changed)
  projects/tcp_cc_7.x/lib/msun/   (props changed)
  projects/tcp_cc_7.x/libexec/   (props changed)
  projects/tcp_cc_7.x/libexec/ftpd/ftpd.8
  projects/tcp_cc_7.x/libexec/rpc.rstatd/   (props changed)
  projects/tcp_cc_7.x/libexec/rtld-elf/   (props changed)
  projects/tcp_cc_7.x/release/   (props changed)
  projects/tcp_cc_7.x/release/scripts/src-install.sh   (props changed)
  projects/tcp_cc_7.x/rescue/   (props changed)
  projects/tcp_cc_7.x/sbin/   (props changed)
  projects/tcp_cc_7.x/sbin/atacontrol/   (props changed)
  projects/tcp_cc_7.x/sbin/ddb/   (props changed)
  projects/tcp_cc_7.x/sbin/devfs/   (props changed)
  projects/tcp_cc_7.x/sbin/dhclient/   (props changed)
  projects/tcp_cc_7.x/sbin/dumpfs/   (props changed)
  projects/tcp_cc_7.x/sbin/dumpfs/dumpfs.8
  projects/tcp_cc_7.x/sbin/dumpfs/dumpfs.c
  projects/tcp_cc_7.x/sbin/fdisk/   (props changed)
  projects/tcp_cc_7.x/sbin/fsck_ffs/   (props changed)
  projects/tcp_cc_7.x/sbin/geom/   (props changed)
  projects/tcp_cc_7.x/sbin/geom/class/part/   (props changed)
  projects/tcp_cc_7.x/sbin/geom/core/geom.c
  projects/tcp_cc_7.x/sbin/geom/misc/   (props changed)
  projects/tcp_cc_7.x/sbin/ifconfig/   (props changed)
  projects/tcp_cc_7.x/sbin/init/   (props changed)
  projects/tcp_cc_7.x/sbin/ipfw/   (props changed)
  projects/tcp_cc_7.x/sbin/md5/   (props changed)
  projects/tcp_cc_7.x/sbin/mdconfig/   (props changed)
  projects/tcp_cc_7.x/sbin/mksnap_ffs/   (props changed)
  projects/tcp_cc_7.x/sbin/mount/   (props changed)
  projects/tcp_cc_7.x/sbin/natd/   (props changed)
  projects/tcp_cc_7.x/sbin/ping6/   (props changed)
  projects/tcp_cc_7.x/sbin/sconfig/   (props changed)
  projects/tcp_cc_7.x/secure/lib/libssh/   (props changed)
  projects/tcp_cc_7.x/secure/libexec/sftp-server/   (props changed)
  projects/tcp_cc_7.x/secure/usr.bin/ssh/   (props changed)
  projects/tcp_cc_7.x/secure/usr.sbin/sshd/   (props changed)
  projects/tcp_cc_7.x/share/   (props changed)
  projects/tcp_cc_7.x/share/colldef/   (props changed)
  projects/tcp_cc_7.x/share/doc/bind9/   (props changed)
  projects/tcp_cc_7.x/share/examples/   (props changed)
  projects/tcp_cc_7.x/share/man/man3/   (props changed)
  projects/tcp_cc_7.x/share/man/man4/   (props changed)
  projects/tcp_cc_7.x/share/man/man4/ddb.4
  projects/tcp_cc_7.x/share/man/man4/igb.4   (props changed)
  projects/tcp_cc_7.x/share/man/man5/   (props changed)
  projects/tcp_cc_7.x/share/man/man5/Makefile
  projects/tcp_cc_7.x/share/man/man5/rc.conf.5
  projects/tcp_cc_7.x/share/man/man7/   (props changed)
  projects/tcp_cc_7.x/share/man/man7/Makefile
  projects/tcp_cc_7.x/share/man/man8/Makefile
  projects/tcp_cc_7.x/share/man/man9/   (props changed)
  projects/tcp_cc_7.x/share/mk/   (props changed)
  projects/tcp_cc_7.x/share/mk/bsd.own.mk
  projects/tcp_cc_7.x/share/sendmail/   (props changed)
  projects/tcp_cc_7.x/share/syscons/   (props changed)
  projects/tcp_cc_7.x/share/syscons/keymaps/   (props changed)
  projects/tcp_cc_7.x/share/timedef/   (props changed)
  projects/tcp_cc_7.x/share/zoneinfo/   (props changed)
  projects/tcp_cc_7.x/sys/   (props changed)
  projects/tcp_cc_7.x/sys/arm/arm/busdma_machdep.c
  projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32.h
  projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_misc.c
  projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_proto.h
  projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_syscall.h
  projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_syscalls.c
  projects/tcp_cc_7.x/sys/compat/freebsd32/freebsd32_sysent.c
  projects/tcp_cc_7.x/sys/compat/freebsd32/syscalls.master
  projects/tcp_cc_7.x/sys/conf/kern.post.mk
  projects/tcp_cc_7.x/sys/conf/kern.pre.mk
  projects/tcp_cc_7.x/sys/contrib/pf/   (props changed)
  projects/tcp_cc_7.x/sys/dev/acpi_support/acpi_asus.c
  projects/tcp_cc_7.x/sys/dev/ath/ath_hal/   (props changed)
  projects/tcp_cc_7.x/sys/dev/cxgb/   (props changed)
  projects/tcp_cc_7.x/sys/dev/fxp/if_fxp.c
  projects/tcp_cc_7.x/sys/dev/fxp/if_fxpreg.h
  projects/tcp_cc_7.x/sys/dev/fxp/if_fxpvar.h
  projects/tcp_cc_7.x/sys/dev/kbdmux/kbdmux.c
  projects/tcp_cc_7.x/sys/dev/msk/if_msk.c
  projects/tcp_cc_7.x/sys/dev/msk/if_mskreg.h
  projects/tcp_cc_7.x/sys/dev/re/if_re.c
  projects/tcp_cc_7.x/sys/dev/sound/pci/hda/hdac.c
  projects/tcp_cc_7.x/sys/dev/usb/if_axe.c
  projects/tcp_cc_7.x/sys/dev/usb/if_axereg.h
  projects/tcp_cc_7.x/sys/dev/usb/usbdevs
  projects/tcp_cc_7.x/sys/fs/fifofs/fifo_vnops.c
  projects/tcp_cc_7.x/sys/kern/kern_cpuset.c
  projects/tcp_cc_7.x/sys/kern/kern_exit.c
  projects/tcp_cc_7.x/sys/kern/kern_fork.c
  projects/tcp_cc_7.x/sys/kern/kern_jail.c
  projects/tcp_cc_7.x/sys/kern/tty.c
  projects/tcp_cc_7.x/sys/kern/uipc_socket.c
  projects/tcp_cc_7.x/sys/kern/uipc_usrreq.c
  projects/tcp_cc_7.x/sys/kern/vfs_subr.c
  projects/tcp_cc_7.x/sys/net/if.c
  projects/tcp_cc_7.x/sys/net/rtsock.c
  projects/tcp_cc_7.x/sys/netgraph/bluetooth/hci/ng_hci_main.c
  projects/tcp_cc_7.x/sys/netgraph/bluetooth/l2cap/ng_l2cap_llpi.c
  projects/tcp_cc_7.x/sys/netinet/in.c
  projects/tcp_cc_7.x/sys/netinet/in_pcb.c
  projects/tcp_cc_7.x/sys/netinet/raw_ip.c
  projects/tcp_cc_7.x/sys/netinet/sctp_pcb.c
  projects/tcp_cc_7.x/sys/netinet/sctp_usrreq.c
  projects/tcp_cc_7.x/sys/netinet/tcp_usrreq.c
  projects/tcp_cc_7.x/sys/netinet/udp_usrreq.c
  projects/tcp_cc_7.x/sys/netinet6/in6.c
  projects/tcp_cc_7.x/sys/netinet6/in6_pcb.c
  projects/tcp_cc_7.x/sys/netinet6/in6_src.c
  projects/tcp_cc_7.x/sys/netinet6/raw_ip6.c
  projects/tcp_cc_7.x/sys/netinet6/udp6_usrreq.c
  projects/tcp_cc_7.x/sys/netipx/ipx_usrreq.c
  projects/tcp_cc_7.x/sys/pci/if_rlreg.h
  projects/tcp_cc_7.x/sys/security/audit/audit.c
  projects/tcp_cc_7.x/sys/security/audit/audit_arg.c
  projects/tcp_cc_7.x/sys/security/audit/audit_bsm.c
  projects/tcp_cc_7.x/sys/security/audit/audit_bsm_klib.c
  projects/tcp_cc_7.x/sys/security/audit/audit_pipe.c
  projects/tcp_cc_7.x/sys/security/audit/audit_private.h
  projects/tcp_cc_7.x/sys/security/audit/audit_syscalls.c
  projects/tcp_cc_7.x/sys/security/mac/mac_audit.c
  projects/tcp_cc_7.x/sys/security/mac/mac_priv.c
  projects/tcp_cc_7.x/sys/security/mac_bsdextended/mac_bsdextended.c
  projects/tcp_cc_7.x/sys/sys/cpuset.h
  projects/tcp_cc_7.x/sys/sys/jail.h
  projects/tcp_cc_7.x/sys/sys/param.h
  projects/tcp_cc_7.x/sys/ufs/ffs/ffs_alloc.c
  projects/tcp_cc_7.x/sys/ufs/ffs/ffs_balloc.c
  projects/tcp_cc_7.x/sys/ufs/ffs/ffs_extern.h
  projects/tcp_cc_7.x/sys/ufs/ffs/ffs_inode.c
  projects/tcp_cc_7.x/sys/ufs/ffs/ffs_vnops.c
  projects/tcp_cc_7.x/tools/build/   (props changed)
  projects/tcp_cc_7.x/tools/regression/atm/   (props changed)
  projects/tcp_cc_7.x/tools/regression/file/flock/   (props changed)
  projects/tcp_cc_7.x/tools/regression/usr.bin/   (props changed)
  projects/tcp_cc_7.x/tools/regression/usr.bin/tr/   (props changed)
  projects/tcp_cc_7.x/tools/sched/   (props changed)
  projects/tcp_cc_7.x/tools/tools/crypto/   (props changed)
  projects/tcp_cc_7.x/tools/tools/editing/   (props changed)
  projects/tcp_cc_7.x/tools/tools/nanobsd/   (props changed)
  projects/tcp_cc_7.x/usr.bin/   (props changed)
  projects/tcp_cc_7.x/usr.bin/basename/   (props changed)
  projects/tcp_cc_7.x/usr.bin/basename/basename.1
  projects/tcp_cc_7.x/usr.bin/calendar/   (props changed)
  projects/tcp_cc_7.x/usr.bin/cksum/   (props changed)
  projects/tcp_cc_7.x/usr.bin/comm/   (props changed)
  projects/tcp_cc_7.x/usr.bin/cpuset/   (props changed)
  projects/tcp_cc_7.x/usr.bin/cpuset/cpuset.1
  projects/tcp_cc_7.x/usr.bin/cpuset/cpuset.c
  projects/tcp_cc_7.x/usr.bin/dirname/   (props changed)
  projects/tcp_cc_7.x/usr.bin/dirname/dirname.c
  projects/tcp_cc_7.x/usr.bin/du/   (props changed)
  projects/tcp_cc_7.x/usr.bin/fetch/   (props changed)
  projects/tcp_cc_7.x/usr.bin/file/   (props changed)
  projects/tcp_cc_7.x/usr.bin/gzip/   (props changed)
  projects/tcp_cc_7.x/usr.bin/ipcrm/   (props changed)
  projects/tcp_cc_7.x/usr.bin/ipcs/   (props changed)
  projects/tcp_cc_7.x/usr.bin/kdump/   (props changed)
  projects/tcp_cc_7.x/usr.bin/ktrace/   (props changed)
  projects/tcp_cc_7.x/usr.bin/ldd/   (props changed)
  projects/tcp_cc_7.x/usr.bin/lockf/   (props changed)
  projects/tcp_cc_7.x/usr.bin/logger/   (props changed)
  projects/tcp_cc_7.x/usr.bin/make/   (props changed)
  projects/tcp_cc_7.x/usr.bin/netstat/   (props changed)
  projects/tcp_cc_7.x/usr.bin/nsupdate/   (props changed)
  projects/tcp_cc_7.x/usr.bin/procstat/   (props changed)
  projects/tcp_cc_7.x/usr.bin/sed/   (props changed)
  projects/tcp_cc_7.x/usr.bin/sed/compile.c
  projects/tcp_cc_7.x/usr.bin/shar/   (props changed)
  projects/tcp_cc_7.x/usr.bin/su/   (props changed)
  projects/tcp_cc_7.x/usr.bin/tar/   (props changed)
  projects/tcp_cc_7.x/usr.bin/top/   (props changed)
  projects/tcp_cc_7.x/usr.bin/truncate/   (props changed)
  projects/tcp_cc_7.x/usr.bin/truss/   (props changed)
  projects/tcp_cc_7.x/usr.bin/units/   (props changed)
  projects/tcp_cc_7.x/usr.bin/vmstat/   (props changed)
  projects/tcp_cc_7.x/usr.bin/wc/   (props changed)
  projects/tcp_cc_7.x/usr.bin/whereis/   (props changed)
  projects/tcp_cc_7.x/usr.bin/window/   (props changed)
  projects/tcp_cc_7.x/usr.bin/xargs/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/adduser/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/bsnmpd/modules/snmp_pf/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/cdcontrol/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/config/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/cpucontrol/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/cron/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/cron/cron/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/extattr/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/freebsd-update/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/fwcontrol/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/iostat/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/jail/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/jail/Makefile
  projects/tcp_cc_7.x/usr.sbin/jail/jail.8
  projects/tcp_cc_7.x/usr.sbin/jail/jail.c
  projects/tcp_cc_7.x/usr.sbin/jexec/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/jexec/Makefile
  projects/tcp_cc_7.x/usr.sbin/jexec/jexec.8
  projects/tcp_cc_7.x/usr.sbin/jexec/jexec.c
  projects/tcp_cc_7.x/usr.sbin/jls/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/jls/Makefile
  projects/tcp_cc_7.x/usr.sbin/jls/jls.8
  projects/tcp_cc_7.x/usr.sbin/jls/jls.c
  projects/tcp_cc_7.x/usr.sbin/mergemaster/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/mountd/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/mtree/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/ndiscvt/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/newsyslog/newsyslog.conf.5   (props changed)
  projects/tcp_cc_7.x/usr.sbin/nscd/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/ntp/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/pciconf/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/pkg_install/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/pmcstat/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/portsnap/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/powerd/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/pw/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/rpc.lockd/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/rpc.statd/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/rpc.yppasswdd/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/setfib/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/sysinstall/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/syslogd/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/traceroute/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/tzsetup/   (props changed)
  projects/tcp_cc_7.x/usr.sbin/wpa/wpa_supplicant/   (props changed)

Modified: projects/tcp_cc_7.x/Makefile
==============================================================================
--- projects/tcp_cc_7.x/Makefile	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/Makefile	Tue Feb 10 04:56:08 2009	(r188430)
@@ -279,7 +279,7 @@ universe_prologue:
 	@echo "--------------------------------------------------------------"
 .for target in ${TARGETS}
 KERNCONFS!=	cd ${.CURDIR}/sys/${target}/conf && \
-		find [A-Z]*[A-Z] -type f -maxdepth 0 \
+		find [A-Z0-9]*[A-Z0-9] -type f -maxdepth 0 \
 		! -name DEFAULTS ! -name LINT
 KERNCONFS:=	${KERNCONFS:S/^NOTES$/LINT/}
 universe: universe_${target}

Modified: projects/tcp_cc_7.x/ObsoleteFiles.inc
==============================================================================
--- projects/tcp_cc_7.x/ObsoleteFiles.inc	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/ObsoleteFiles.inc	Tue Feb 10 04:56:08 2009	(r188430)
@@ -14,6 +14,8 @@
 # The file is partitioned: OLD_FILES first, then OLD_LIBS and OLD_DIRS last.
 #
 
+# 20090203: adding_user.8 moved to adding_user.7
+OLD_FILES+=usr/share/man/man8/adding_user.8.gz
 # 20080407: pkg_sign has been removed
 OLD_FILES+=usr/sbin/pkg_check
 OLD_FILES+=usr/sbin/pkg_sign

Modified: projects/tcp_cc_7.x/UPDATING
==============================================================================
--- projects/tcp_cc_7.x/UPDATING	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/UPDATING	Tue Feb 10 04:56:08 2009	(r188430)
@@ -8,6 +8,19 @@ Items affecting the ports and packages s
 /usr/ports/UPDATING.  Please read that file before running
 portupgrade.
 
+20090207:
+	ZFS users on amd64 machines with 4GB or more of RAM should
+	reevaluate their need for setting vm.kmem_size_max and
+	vm.kmem_size manually.  In fact, after recent changes to the
+	kernel, the default value of vm.kmem_size is larger than the
+	suggested manual setting in most ZFS/FreeBSD tuning guides.
+
+20090207:
+	Multi-IPv4/v6/no-IP jail support was merged to STABLE.
+	You need to rebuild jls(8) and to use the new features
+	jail(8), jexec(8) and cpuset(1) with a new kernel.
+	__FreeBSD_version was bumped to 701103.
+
 20090119:
 	NTFS has been removed from GENERIC kernel on amd64 to match
 	GENERIC on i386. Should not cause any issues since mount_ntfs(8)

Modified: projects/tcp_cc_7.x/bin/cp/utils.c
==============================================================================
--- projects/tcp_cc_7.x/bin/cp/utils.c	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/bin/cp/utils.c	Tue Feb 10 04:56:08 2009	(r188430)
@@ -137,41 +137,39 @@ copy_file(const FTSENT *entp, int dne)
 		 * Mmap and write if less than 8M (the limit is so we don't totally
 		 * trash memory on big files.  This is really a minor hack, but it
 		 * wins some CPU back.
+		 * Some filesystems, such as smbnetfs, don't support mmap,
+		 * so this is a best-effort attempt.
 		 */
 #ifdef VM_AND_BUFFER_CACHE_SYNCHRONIZED
 		if (S_ISREG(fs->st_mode) && fs->st_size > 0 &&
-	    	fs->st_size <= 8 * 1048576) {
-			if ((p = mmap(NULL, (size_t)fs->st_size, PROT_READ,
-		    	MAP_SHARED, from_fd, (off_t)0)) == MAP_FAILED) {
+	    	    fs->st_size <= 8 * 1024 * 1024 &&
+		    (p = mmap(NULL, (size_t)fs->st_size, PROT_READ,
+		    MAP_SHARED, from_fd, (off_t)0)) != MAP_FAILED) {
+			wtotal = 0;
+			for (bufp = p, wresid = fs->st_size; ;
+			bufp += wcount, wresid -= (size_t)wcount) {
+				wcount = write(to_fd, bufp, wresid);
+				if (wcount <= 0)
+					break;
+				wtotal += wcount;
+				if (info) {
+					info = 0;
+					(void)fprintf(stderr,
+					    "%s -> %s %3d%%\n",
+					    entp->fts_path, to.p_path,
+					    cp_pct(wtotal, fs->st_size));
+				}
+				if (wcount >= (ssize_t)wresid)
+					break;
+			}
+			if (wcount != (ssize_t)wresid) {
+				warn("%s", to.p_path);
+				rval = 1;
+			}
+			/* Some systems don't unmap on close(2). */
+			if (munmap(p, fs->st_size) < 0) {
 				warn("%s", entp->fts_path);
 				rval = 1;
-			} else {
-				wtotal = 0;
-				for (bufp = p, wresid = fs->st_size; ;
-			    	bufp += wcount, wresid -= (size_t)wcount) {
-					wcount = write(to_fd, bufp, wresid);
-					if (wcount <= 0)
-						break;
-					wtotal += wcount;
-					if (info) {
-						info = 0;
-						(void)fprintf(stderr,
-						    "%s -> %s %3d%%\n",
-						    entp->fts_path, to.p_path,
-						    cp_pct(wtotal, fs->st_size));
-					}
-					if (wcount >= (ssize_t)wresid)
-						break;
-				}
-				if (wcount != (ssize_t)wresid) {
-					warn("%s", to.p_path);
-					rval = 1;
-				}
-				/* Some systems don't unmap on close(2). */
-				if (munmap(p, fs->st_size) < 0) {
-					warn("%s", entp->fts_path);
-					rval = 1;
-				}
 			}
 		} else
 #endif

Modified: projects/tcp_cc_7.x/contrib/opie/opiekey.1
==============================================================================
--- projects/tcp_cc_7.x/contrib/opie/opiekey.1	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/contrib/opie/opiekey.1	Tue Feb 10 04:56:08 2009	(r188430)
@@ -157,8 +157,7 @@ this mistake. Better checks are needed.
 .BR opieinfo (1),
 .BR opiekeys (5),
 .BR opieaccess (5),
-.BR opiegen (1)
-.BR su (1),
+.BR su (1)
 
 .SH AUTHOR
 Bellcore's S/Key was written by Phil Karn, Neil M. Haller, and John S. Walden

Modified: projects/tcp_cc_7.x/etc/defaults/rc.conf
==============================================================================
--- projects/tcp_cc_7.x/etc/defaults/rc.conf	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/etc/defaults/rc.conf	Tue Feb 10 04:56:08 2009	(r188430)
@@ -615,24 +615,27 @@ jail_sysvipc_allow="NO"	# Allow SystemV 
 # each jail, specified in jail_list, with the following variables.
 # NOTES:
 # - replace 'example' with the jail's name.
-# - except rootdir, hostname and ip, all of the following variables may be made
-#   global jail variables if you don't specify a jail name (ie. jail_interface).
+# - except rootdir, hostname, ip and the _multi<n> addresses,
+#   all of the following variables may be made global jail variables
+#   if you don't specify a jail name (ie. jail_interface, jail_devfs_ruleset).
 #
 #jail_example_rootdir="/usr/jail/default"	# Jail's root directory
 #jail_example_hostname="default.domain.com"	# Jail's hostname
-#jail_example_ip="192.168.0.10"			# Jail's IP number
-#jail_example_interface=""			# Interface to create the IP alias on
-#jail_example_fib="0"				# routing table for setfib(1) 
+#jail_example_interface=""			# Jail's interface variable to create IP aliases on
+#jail_example_fib="0"				# Routing table for setfib(1) 
+#jail_example_ip="192.0.2.10,2001:db8::17"	# Jail's primary IPv4 and IPv6 address
+#jail_example_ip_multi0="2001:db8::10"		#  and another IPv6 address
 #jail_example_exec_start="/bin/sh /etc/rc"		# command to execute in jail for starting
 #jail_example_exec_afterstart0="/bin/sh command"	# command to execute after the one for 
 							# starting the jail. More than one can be
 							# specified using a trailing number
 #jail_example_exec_stop="/bin/sh /etc/rc.shutdown"	# command to execute in jail for stopping
 #jail_example_devfs_enable="NO"			# mount devfs in the jail
+#jail_example_devfs_ruleset="ruleset_name"	# devfs ruleset to apply to jail -
+						# usually you want "devfsrules_jail".
 #jail_example_fdescfs_enable="NO"		# mount fdescfs in the jail
 #jail_example_procfs_enable="NO"		# mount procfs in jail
 #jail_example_mount_enable="NO"			# mount/umount jail's fs
-#jail_example_devfs_ruleset="ruleset_name"	# devfs ruleset to apply to jail
 #jail_example_fstab=""				# fstab(5) for mount/umount
 #jail_example_flags="-l -U root"		# flags for jail(8)
 

Modified: projects/tcp_cc_7.x/etc/rc.d/jail
==============================================================================
--- projects/tcp_cc_7.x/etc/rc.d/jail	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/etc/rc.d/jail	Tue Feb 10 04:56:08 2009	(r188430)
@@ -93,6 +93,7 @@ init_variables()
 	debug "$_j mount enable: $_mount"
 	debug "$_j hostname: $_hostname"
 	debug "$_j ip: $_ip"
+	jail_show_addresses ${_j}
 	debug "$_j interface: $_interface"
 	debug "$_j fib: $_fib"
 	debug "$_j root: $_rootdir"
@@ -126,10 +127,6 @@ init_variables()
 	if [ -z "${_rootdir}" ]; then
 		err 3 "$name: No root directory has been defined for ${_j}"
 	fi
-	if [ -z "${_ip}" ]; then
-		err 3 "$name: No IP address has been defined for ${_j}"
-	fi
-
 }
 
 # set_sysctl rc_knob mib msg
@@ -275,6 +272,208 @@ jail_mount_fstab()
 	mount -a -F "${_fstab}"
 }
 
+# jail_show_addresses jail
+#	Debug print the input for the given _multi aliases
+#	for a jail for init_variables().
+#
+jail_show_addresses()
+{
+	local _j _type alias
+	_j="$1"
+	alias=0
+
+	if [ -z "${_j}" ]; then
+		warn "jail_show_addresses: you must specify a jail"
+		return
+	fi
+
+	while : ; do
+		eval _addr=\"\$jail_${_j}_ip_multi${alias}\"
+		if [ -n "${_addr}" ]; then
+			debug "${_j} ip_multi${alias}: $_addr"
+			alias=$((${alias} + 1))
+		else
+			break
+		fi
+	done
+}
+
+# jail_extract_address argument
+#	The second argument is the string from one of the _ip
+#	or the _multi variables. In case of a comma separated list
+#	only one argument must be passed in at a time.
+#	The function alters the _type, _iface, _addr and _mask variables.
+#
+jail_extract_address()
+{
+	local _i
+	_i=$1
+
+	if [ -z "${_i}" ]; then
+		warn "jail_extract_address: called without input"
+		return
+	fi
+
+	# Check if we have an interface prefix given and split into
+	# iFace and rest.
+	case "${_i}" in
+	*\|*)	# ifN|.. prefix there
+		_iface=${_i%%|*}
+		_r=${_i##*|}
+		;;
+	*)	_iface=""
+		_r=${_i}
+		;;
+	esac
+
+	# In case the IP has no interface given, check if we have a global one.
+	_iface=${_iface:-${_interface}}
+
+	# Set address, cut off any prefix/netmask/prefixlen.
+	_addr=${_r}
+	_addr=${_addr%%[/ ]*}
+
+	# Theoretically we can return here if interface is not set,
+	# as we only care about the _mask if we call ifconfig.
+	# This is not done because we may want to santize IP addresses
+	# based on _type later, and optionally change the type as well.
+
+	# Extract the prefix/netmask/prefixlen part by cutting off the address.
+	_mask=${_r}
+	_mask=`expr "${_mask}" : "${_addr}\(.*\)"`
+
+	# Identify type {inet,inet6}.
+	case "${_addr}" in
+	*\.*\.*\.*)	_type="inet" ;;
+	*:*)		_type="inet6" ;;
+	*)		warn "jail_extract_address: type not identified"
+			;;
+	esac
+
+	# Handle the special /netmask instead of /prefix or
+	# "netmask xxx" case for legacy IP.
+	# We do NOT support shortend class-full netmasks.
+	if [ "${_type}" = "inet" ]; then
+		case "${_mask}" in
+		/*\.*\.*\.*)	_mask=" netmask ${_mask#/}" ;;
+		*)		;;
+		esac
+
+		# In case _mask is still not set use /32.
+		_mask=${_mask:-/32}
+
+	elif [ "${_type}" = "inet6" ]; then
+		# In case _maske is not set for IPv6, use /128.
+		_mask=${_mask:-/128}
+	fi
+}
+
+# jail_handle_ips_option {add,del} input
+#	Handle a single argument imput which can be a comma separated
+#	list of addresses (theoretically with an option interface and
+#	prefix/netmask/prefixlen).
+#
+jail_handle_ips_option()
+{
+	local _x _action _type _i
+	_action=$1
+	_x=$2
+
+	if [ -z "${_x}" ]; then
+		# No IP given. This can happen for the primary address
+		# of each address family.
+		return
+	fi
+
+	# Loop, in case we find a comma separated list, we need to handle
+	# each argument on its own.
+	while [ ${#_x} -gt 0 ]; do
+		case "${_x}" in
+		*,*)	# Extract the first argument and strip it off the list.
+			_i=`expr "${_x}" : '^\([^,]*\)'`
+			_x=`expr "${_x}" : "^[^,]*,\(.*\)"`
+			;;
+		*)	_i=${_x}
+			_x=""
+			;;
+		esac
+
+		_type=""
+		_iface=""
+		_addr=""
+		_mask=""
+		jail_extract_address "${_i}"
+
+		# make sure we got an address.
+		case "${_addr}" in
+		"")	continue ;;
+		*)	;;
+		esac
+
+		# Append address to list of addresses for the jail command.
+		case "${_addrl}" in
+		"")	_addrl="${_addr}" ;;
+		*)	_addrl="${_addrl},${_addr}" ;;
+		esac
+
+		# Configure interface alias if requested by a given interface
+		# and if we could correctly parse everything.
+		case "${_iface}" in
+		"")	continue ;;
+		esac
+		case "${_type}" in
+		inet)	;;
+		inet6)	;;
+		*)	warn "Could not determine address family.  Not going" \
+			    "to ${_action} address '${_addr}' for ${_jail}."
+			continue
+			;;
+		esac
+		case "${_action}" in
+		add)	ifconfig ${_iface} ${_type} ${_addr}${_mask} alias
+			;;
+		del)	# When removing the IP, ignore the _mask.
+			ifconfig ${_iface} ${_type} ${_addr} -alias
+			;;
+		esac
+	done
+}
+
+# jail_ips {add,del}
+#	Extract the comma separated list of addresses and return them
+#	for the jail command.
+#	Handle more than one address via the _multi option as well.
+#	If an interface is given also add/remove an alias for the
+#	address with an optional netmask.
+#
+jail_ips()
+{
+	local _action
+	_action=$1
+
+	case "${_action}" in
+	add)	;;
+	del)	;;
+	*)	warn "jail_ips: invalid action '${_action}'"
+		return
+		;;
+	esac
+
+	# Handle addresses.
+	jail_handle_ips_option ${_action} "${_ip}"
+	# Handle jail_xxx_ip_multi<N>
+	alias=0
+	while : ; do
+		eval _x=\"\$jail_${_jail}_ip_multi${alias}\"
+		case "${_x}" in
+		"")	break ;;
+		*)	jail_handle_ips_option ${_action} "${_x}"
+			alias=$((${alias} + 1))
+			;;
+		esac
+	done
+}
+
 jail_start()
 {
 	echo -n 'Configuring jails:'
@@ -296,9 +495,8 @@ jail_start()
 			echo -n " [${_hostname} already running (/var/run/jail_${_jail}.id exists)]"
 			continue;
 		fi
-		if [ -n "${_interface}" ]; then
-			ifconfig ${_interface} alias ${_ip} netmask 255.255.255.255
-		fi
+		_addrl=""
+		jail_ips "add"
 		if [ -n "${_fib}" ]; then
 			_setfib="setfib -F '${_fib}'"
 		else
@@ -358,7 +556,7 @@ jail_start()
 		fi
 		_tmp_jail=${_tmp_dir}/jail.$$
 		eval ${_setfib} jail ${_flags} -i ${_rootdir} ${_hostname} \
-			${_ip} ${_exec_start} > ${_tmp_jail} 2>&1
+			\"${_addrl}\" ${_exec_start} > ${_tmp_jail} 2>&1
 
 		if [ "$?" -eq 0 ] ; then
 			_jail_id=$(head -1 ${_tmp_jail})
@@ -379,9 +577,7 @@ jail_start()
 			echo ${_jail_id} > /var/run/jail_${_jail}.id
 		else
 			jail_umount_fs
-			if [ -n "${_interface}" ]; then
-				ifconfig ${_interface} -alias ${_ip}
-			fi
+			jail_ips "del"
 			echo " cannot start jail \"${_jail}\": "
 			tail +2 ${_tmp_jail}
 		fi
@@ -410,9 +606,7 @@ jail_stop()
 				jail_umount_fs
 				echo -n " $_hostname"
 			fi
-			if [ -n "${_interface}" ]; then
-				ifconfig ${_interface} -alias ${_ip}
-			fi
+			jail_ips "del"
 			rm /var/run/jail_${_jail}.id
 		else
 			echo " cannot stop jail ${_jail}. No jail id in /var/run"

Modified: projects/tcp_cc_7.x/lib/libarchive/archive_write_disk.c
==============================================================================
--- projects/tcp_cc_7.x/lib/libarchive/archive_write_disk.c	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/lib/libarchive/archive_write_disk.c	Tue Feb 10 04:56:08 2009	(r188430)
@@ -176,6 +176,8 @@ struct archive_write_disk {
 	int			 fd;
 	/* Current offset for writing data to the file. */
 	off_t			 offset;
+	/* Last offset actually written to disk. */
+	off_t			 fd_offset;
 	/* Maximum size of file, -1 if unknown. */
 	off_t			 filesize;
 	/* Dir we were in before this restore; only for deep paths. */
@@ -185,8 +187,6 @@ struct archive_write_disk {
 	/* UID/GID to use in restoring this entry. */
 	uid_t			 uid;
 	gid_t			 gid;
-	/* Last offset written to disk. */
-	off_t			 last_offset;
 };
 
 /*
@@ -232,7 +232,7 @@ static struct fixup_entry *sort_dir_list
 static gid_t	trivial_lookup_gid(void *, const char *, gid_t);
 static uid_t	trivial_lookup_uid(void *, const char *, uid_t);
 static ssize_t	write_data_block(struct archive_write_disk *,
-		    const char *, size_t, off_t);
+		    const char *, size_t);
 
 static struct archive_vtable *archive_write_disk_vtable(void);
 
@@ -334,7 +334,7 @@ _archive_write_header(struct archive *_a
 	}
 	a->entry = archive_entry_clone(entry);
 	a->fd = -1;
-	a->last_offset = 0;
+	a->fd_offset = 0;
 	a->offset = 0;
 	a->uid = a->user_uid;
 	a->mode = archive_entry_mode(a->entry);
@@ -500,9 +500,9 @@ archive_write_disk_set_skip_file(struct 
 }
 
 static ssize_t
-write_data_block(struct archive_write_disk *a,
-    const char *buff, size_t size, off_t offset)
+write_data_block(struct archive_write_disk *a, const char *buff, size_t size)
 {
+	uint64_t start_size = size;
 	ssize_t bytes_written = 0;
 	ssize_t block_size = 0, bytes_to_write;
 	int r;
@@ -519,8 +519,9 @@ write_data_block(struct archive_write_di
 		block_size = a->pst->st_blksize;
 	}
 
-	if (a->filesize >= 0 && (off_t)(offset + size) > a->filesize)
-		size = (size_t)(a->filesize - offset);
+	/* If this write would run beyond the file size, truncate it. */
+	if (a->filesize >= 0 && (off_t)(a->offset + size) > a->filesize)
+		start_size = size = (size_t)(a->filesize - a->offset);
 
 	/* Write the data. */
 	while (size > 0) {
@@ -536,7 +537,7 @@ write_data_block(struct archive_write_di
 				if (*p != '\0')
 					break;
 			}
-			offset += p - buff;
+			a->offset += p - buff;
 			size -= p - buff;
 			buff = p;
 			if (size == 0)
@@ -544,22 +545,25 @@ write_data_block(struct archive_write_di
 
 			/* Calculate next block boundary after offset. */
 			block_end
-			    = (offset / block_size) * block_size + block_size;
+			    = (a->offset / block_size + 1) * block_size;
 
 			/* If the adjusted write would cross block boundary,
 			 * truncate it to the block boundary. */
 			bytes_to_write = size;
-			if (offset + bytes_to_write > block_end)
-				bytes_to_write = block_end - offset;
+			if (a->offset + bytes_to_write > block_end)
+				bytes_to_write = block_end - a->offset;
 		}
 
 		/* Seek if necessary to the specified offset. */
-		if (offset != a->last_offset) {
-			if (lseek(a->fd, offset, SEEK_SET) < 0) {
+		if (a->offset != a->fd_offset) {
+			if (lseek(a->fd, a->offset, SEEK_SET) < 0) {
 				archive_set_error(&a->archive, errno,
 				    "Seek failed");
 				return (ARCHIVE_FATAL);
 			}
+			a->fd_offset = a->offset;
+			a->archive.file_position = a->offset;
+			a->archive.raw_position = a->offset;
  		}
 		bytes_written = write(a->fd, buff, bytes_to_write);
 		if (bytes_written < 0) {
@@ -568,12 +572,12 @@ write_data_block(struct archive_write_di
 		}
 		buff += bytes_written;
 		size -= bytes_written;
-		offset += bytes_written;
+		a->offset += bytes_written;
 		a->archive.file_position += bytes_written;
 		a->archive.raw_position += bytes_written;
-		a->last_offset = a->offset = offset;
+		a->fd_offset = a->offset;
 	}
-	return (bytes_written);
+	return (start_size - size);
 }
 
 static ssize_t
@@ -586,9 +590,9 @@ _archive_write_data_block(struct archive
 	__archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
 	    ARCHIVE_STATE_DATA, "archive_write_disk_block");
 
-	r = write_data_block(a, buff, size, offset);
-
-	if (r < 0)
+	a->offset = offset;
+	r = write_data_block(a, buff, size);
+	if (r < ARCHIVE_OK)
 		return (r);
 	if ((size_t)r < size) {
 		archive_set_error(&a->archive, 0,
@@ -606,7 +610,7 @@ _archive_write_data(struct archive *_a, 
 	__archive_check_magic(&a->archive, ARCHIVE_WRITE_DISK_MAGIC,
 	    ARCHIVE_STATE_DATA, "archive_write_data");
 
-	return (write_data_block(a, buff, size, a->offset));
+	return (write_data_block(a, buff, size));
 }
 
 static int
@@ -627,7 +631,7 @@ _archive_write_finish_entry(struct archi
 		/* There's no file. */
 	} else if (a->filesize < 0) {
 		/* File size is unknown, so we can't set the size. */
-	} else if (a->last_offset == a->filesize) {
+	} else if (a->fd_offset == a->filesize) {
 		/* Last write ended at exactly the filesize; we're done. */
 		/* Hopefully, this is the common case. */
 	} else {

Modified: projects/tcp_cc_7.x/lib/libarchive/test/Makefile
==============================================================================
--- projects/tcp_cc_7.x/lib/libarchive/test/Makefile	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/lib/libarchive/test/Makefile	Tue Feb 10 04:56:08 2009	(r188430)
@@ -58,6 +58,7 @@ TESTS= \
 	test_write_disk_hardlink.c		\
 	test_write_disk_perms.c			\
 	test_write_disk_secure.c		\
+	test_write_disk_sparse.c		\
 	test_write_format_ar.c			\
 	test_write_format_cpio.c		\
 	test_write_format_cpio_empty.c		\

Copied: projects/tcp_cc_7.x/lib/libarchive/test/test_write_disk_sparse.c (from r188429, stable/7/lib/libarchive/test/test_write_disk_sparse.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/tcp_cc_7.x/lib/libarchive/test/test_write_disk_sparse.c	Tue Feb 10 04:56:08 2009	(r188430, copy of r188429, stable/7/lib/libarchive/test/test_write_disk_sparse.c)
@@ -0,0 +1,278 @@
+/*-
+ * Copyright (c) 2003-2007 Tim Kientzle
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#include "test.h"
+__FBSDID("$FreeBSD$");
+
+/*
+ * Write a file using archive_write_data call, read the file
+ * back and verify the contents.  The data written includes large
+ * blocks of nulls, so it should exercise the sparsification logic
+ * if ARCHIVE_EXTRACT_SPARSE is enabled.
+ */
+static void
+verify_write_data(struct archive *a, int sparse)
+{
+	static const char data[]="abcdefghijklmnopqrstuvwxyz";
+	struct stat st;
+	struct archive_entry *ae;
+	size_t buff_size = 64 * 1024;
+	char *buff, *p;
+	const char *msg = sparse ? "sparse" : "non-sparse";
+	int fd;
+
+	buff = malloc(buff_size);
+	assert(buff != NULL);
+
+	ae = archive_entry_new();
+	assert(ae != NULL);
+	archive_entry_set_size(ae, 8 * buff_size);
+	archive_entry_set_pathname(ae, "test_write_data");
+	archive_entry_set_mode(ae, AE_IFREG | 0755);
+	assertEqualIntA(a, 0, archive_write_header(a, ae));
+
+	/* Use archive_write_data() to write three relatively sparse blocks. */
+
+	/* First has non-null data at beginning. */
+	memset(buff, 0, buff_size);
+	memcpy(buff, data, sizeof(data));
+	failure("%s", msg);
+	assertEqualInt(buff_size, archive_write_data(a, buff, buff_size));
+
+	/* Second has non-null data in the middle. */
+	memset(buff, 0, buff_size);
+	memcpy(buff + buff_size / 2 - 3, data, sizeof(data));
+	failure("%s", msg);
+	assertEqualInt(buff_size, archive_write_data(a, buff, buff_size));
+
+	/* Third has non-null data at the end. */
+	memset(buff, 0, buff_size);
+	memcpy(buff + buff_size - sizeof(data), data, sizeof(data));
+	failure("%s", msg);
+	assertEqualInt(buff_size, archive_write_data(a, buff, buff_size));
+
+	failure("%s", msg);
+	assertEqualIntA(a, 0, archive_write_finish_entry(a));
+
+	/* Test the entry on disk. */
+	assert(0 == stat(archive_entry_pathname(ae), &st));
+        assertEqualInt(st.st_size, 8 * buff_size);
+	fd = open(archive_entry_pathname(ae), O_RDONLY);
+	if (!assert(fd >= 0))
+		return;
+
+	/* Check first block. */
+	assertEqualInt(buff_size, read(fd, buff, buff_size));
+	failure("%s", msg);
+	assertEqualMem(buff, data, sizeof(data));
+	for (p = buff + sizeof(data); p < buff + buff_size; ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (!assertEqualInt(0, *p))
+			break;
+	}
+
+	/* Check second block. */
+	assertEqualInt(buff_size, read(fd, buff, buff_size));
+	for (p = buff; p < buff + buff_size; ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (p == buff + buff_size / 2 - 3) {
+			assertEqualMem(p, data, sizeof(data));
+			p += sizeof(data);
+		} else if (!assertEqualInt(0, *p))
+			break;
+	}
+
+	/* Check third block. */
+	assertEqualInt(buff_size, read(fd, buff, buff_size));
+	for (p = buff; p < buff + buff_size - sizeof(data); ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (!assertEqualInt(0, *p))
+			break;
+	}
+	failure("%s", msg);
+	assertEqualMem(buff + buff_size - sizeof(data), data, sizeof(data));
+
+	/* XXX more XXX */
+
+	assertEqualInt(0, close(fd));
+	free(buff);
+}
+
+/*
+ * As above, but using the archive_write_data_block() call.
+ */
+static void
+verify_write_data_block(struct archive *a, int sparse)
+{
+	static const char data[]="abcdefghijklmnopqrstuvwxyz";
+	struct stat st;
+	struct archive_entry *ae;
+	size_t buff_size = 64 * 1024;
+	char *buff, *p;
+	const char *msg = sparse ? "sparse" : "non-sparse";
+	int fd;
+
+	buff = malloc(buff_size);
+	assert(buff != NULL);
+
+	ae = archive_entry_new();
+	assert(ae != NULL);
+	archive_entry_set_size(ae, 8 * buff_size);
+	archive_entry_set_pathname(ae, "test_write_data_block");
+	archive_entry_set_mode(ae, AE_IFREG | 0755);
+	assertEqualIntA(a, 0, archive_write_header(a, ae));
+
+	/* Use archive_write_data_block() to write three
+	   relatively sparse blocks. */
+
+	/* First has non-null data at beginning. */
+	memset(buff, 0, buff_size);
+	memcpy(buff, data, sizeof(data));
+	failure("%s", msg);
+	assertEqualInt(ARCHIVE_OK,
+	    archive_write_data_block(a, buff, buff_size, 100));
+
+	/* Second has non-null data in the middle. */
+	memset(buff, 0, buff_size);
+	memcpy(buff + buff_size / 2 - 3, data, sizeof(data));
+	failure("%s", msg);
+	assertEqualInt(ARCHIVE_OK,
+	    archive_write_data_block(a, buff, buff_size, buff_size + 200));
+
+	/* Third has non-null data at the end. */
+	memset(buff, 0, buff_size);
+	memcpy(buff + buff_size - sizeof(data), data, sizeof(data));
+	failure("%s", msg);
+	assertEqualInt(ARCHIVE_OK,
+	    archive_write_data_block(a, buff, buff_size, buff_size * 2 + 300));
+
+	failure("%s", msg);
+	assertEqualIntA(a, 0, archive_write_finish_entry(a));
+
+	/* Test the entry on disk. */
+	assert(0 == stat(archive_entry_pathname(ae), &st));
+        assertEqualInt(st.st_size, 8 * buff_size);
+	fd = open(archive_entry_pathname(ae), O_RDONLY);
+	if (!assert(fd >= 0))
+		return;
+
+	/* Check 100-byte gap at beginning */
+	assertEqualInt(100, read(fd, buff, 100));
+	failure("%s", msg);
+	for (p = buff; p < buff + 100; ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (!assertEqualInt(0, *p))
+			break;
+	}
+
+	/* Check first block. */
+	assertEqualInt(buff_size, read(fd, buff, buff_size));
+	failure("%s", msg);
+	assertEqualMem(buff, data, sizeof(data));
+	for (p = buff + sizeof(data); p < buff + buff_size; ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (!assertEqualInt(0, *p))
+			break;
+	}
+
+	/* Check 100-byte gap */
+	assertEqualInt(100, read(fd, buff, 100));
+	failure("%s", msg);
+	for (p = buff; p < buff + 100; ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (!assertEqualInt(0, *p))
+			break;
+	}
+
+	/* Check second block. */
+	assertEqualInt(buff_size, read(fd, buff, buff_size));
+	for (p = buff; p < buff + buff_size; ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (p == buff + buff_size / 2 - 3) {
+			assertEqualMem(p, data, sizeof(data));
+			p += sizeof(data);
+		} else if (!assertEqualInt(0, *p))
+			break;
+	}
+
+	/* Check 100-byte gap */
+	assertEqualInt(100, read(fd, buff, 100));
+	failure("%s", msg);
+	for (p = buff; p < buff + 100; ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (!assertEqualInt(0, *p))
+			break;
+	}
+
+	/* Check third block. */
+	assertEqualInt(buff_size, read(fd, buff, buff_size));
+	for (p = buff; p < buff + buff_size - sizeof(data); ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (!assertEqualInt(0, *p))
+			break;
+	}
+	failure("%s", msg);
+	assertEqualMem(buff + buff_size - sizeof(data), data, sizeof(data));
+
+	/* Check another block size beyond last we wrote. */
+	assertEqualInt(buff_size, read(fd, buff, buff_size));
+	failure("%s", msg);
+	for (p = buff; p < buff + buff_size; ++p) {
+		failure("offset: %d, %s", (int)(p - buff), msg);
+		if (!assertEqualInt(0, *p))
+			break;
+	}
+
+
+	/* XXX more XXX */
+
+	assertEqualInt(0, close(fd));
+	free(buff);
+}
+
+DEFINE_TEST(test_write_disk_sparse)
+{
+	struct archive *ad;
+
+
+	/*
+	 * The return values, etc, of the write data functions
+	 * shouldn't change regardless of whether we've requested
+	 * sparsification.  (The performance and pattern of actual
+	 * write calls to the disk should vary, of course, but the
+	 * client program shouldn't see any difference.)
+	 */
+	assert((ad = archive_write_disk_new()) != NULL);
+        archive_write_disk_set_options(ad, 0);
+	verify_write_data(ad, 0);
+	verify_write_data_block(ad, 0);
+	assertEqualInt(0, archive_write_finish(ad));
+
+	assert((ad = archive_write_disk_new()) != NULL);
+        archive_write_disk_set_options(ad, ARCHIVE_EXTRACT_SPARSE);
+	verify_write_data(ad, 1);
+	verify_write_data_block(ad, 1);
+	assertEqualInt(0, archive_write_finish(ad));
+
+}

Modified: projects/tcp_cc_7.x/lib/libc/sys/cpuset_getaffinity.2
==============================================================================
--- projects/tcp_cc_7.x/lib/libc/sys/cpuset_getaffinity.2	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/lib/libc/sys/cpuset_getaffinity.2	Tue Feb 10 04:56:08 2009	(r188430)
@@ -25,7 +25,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd March 29, 2008
+.Dd November 29, 2008
 .Dt CPUSET 2
 .Os
 .Sh NAME
@@ -46,7 +46,7 @@
 and
 .Fn cpuset_setaffinity
 allow the manipulation of sets of CPUs available to processes, threads, 
-interrupts and other resources.
+interrupts, jails and other resources.
 These functions may manipulate sets of CPUs that contain many processes
 or per-object anonymous masks that effect only a single object.
 .Pp

Modified: projects/tcp_cc_7.x/lib/libc/sys/jail.2
==============================================================================
--- projects/tcp_cc_7.x/lib/libc/sys/jail.2	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/lib/libc/sys/jail.2	Tue Feb 10 04:56:08 2009	(r188430)
@@ -8,7 +8,7 @@
 .\"
 .\" $FreeBSD$
 .\"
-.Dd April 8, 2003
+.Dd January 6, 2009
 .Dt JAIL 2
 .Os
 .Sh NAME
@@ -32,15 +32,20 @@ The argument is a pointer to a structure
 .Bd -literal -offset indent
 struct jail {
 	u_int32_t	version;
-        char 		*path;
-        char 		*hostname;
-        u_int32_t	ip_number;
+	char		*path;
+	char		*hostname;
+	char		*jailname;
+	unsigned int	ip4s;
+	unsigned int	ip6s;
+	struct in_addr	*ip4;
+	struct in6_addr	*ip6;
 };
 .Ed
 .Pp
 .Dq Li version
 defines the version of the API in use.
-It should be set to zero at this time.
+.Dv JAIL_API_VERSION
+is defined for the current version.
 .Pp
 The
 .Dq Li path
@@ -54,8 +59,24 @@ This can be changed
 from the inside of the prison.
 .Pp
 The
-.Dq Li ip_number
-can be set to the IP number assigned to the prison.
+.Dq Li jailname
+pointer is an optional name that can be assigned to the jail
+for example for managment purposes.
+.Pp
+The
+.Dq Li ip4s
+and
+.Dq Li ip6s
+give the numbers of IPv4 and IPv6 addresses that will be passed
+via their respective pointers.
+.Pp
+The
+.Dq Li ip4
+and
+.Dq Li ip6
+pointers can be set to an arrays of IPv4 and IPv6 addresses to be assigned to
+the prison, or NULL if none.
+IPv4 addresses must be in network byte order.
 .Pp
 The
 .Fn jail_attach
@@ -97,6 +118,12 @@ or, if present, the per-jail
 .Pp
 All IP activity will be forced to happen to/from the IP number specified,
 which should be an alias on one of the network interfaces.
+All connections to/from the loopback address
+.Pf ( Li 127.0.0.1
+for IPv4,
+.Li ::1
+for IPv6) will be changed to be to/from the primary address
+of the jail for the given address family.
 .Pp
 It is possible to identify a process as jailed by examining
 .Dq Li /proc/<pid>/status :

Modified: projects/tcp_cc_7.x/lib/libkvm/kvm_proc.c
==============================================================================
--- projects/tcp_cc_7.x/lib/libkvm/kvm_proc.c	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/lib/libkvm/kvm_proc.c	Tue Feb 10 04:56:08 2009	(r188430)
@@ -54,10 +54,11 @@ __FBSDID("$FreeBSD$");
 #include <sys/_lock.h>
 #include <sys/_mutex.h>
 #include <sys/_task.h>
-#define	_WANT_PRISON	/* make jail.h give us 'struct prison' */
-#include <sys/jail.h>
+#include <sys/cpuset.h>
 #include <sys/user.h>
 #include <sys/proc.h>
+#define	_WANT_PRISON	/* make jail.h give us 'struct prison' */
+#include <sys/jail.h>
 #include <sys/exec.h>
 #include <sys/stat.h>
 #include <sys/sysent.h>

Modified: projects/tcp_cc_7.x/libexec/ftpd/ftpd.8
==============================================================================
--- projects/tcp_cc_7.x/libexec/ftpd/ftpd.8	Tue Feb 10 02:43:07 2009	(r188429)
+++ projects/tcp_cc_7.x/libexec/ftpd/ftpd.8	Tue Feb 10 04:56:08 2009	(r188430)
@@ -205,7 +205,7 @@ for more information.
 Note that option is a virtual no-op in
 .Fx 5.0
 and above; both port
-ranges are indentical by default.
+ranges are identical by default.
 .It Fl u
 The default file creation mode mask is set to
 .Ar umask ,

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list