Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 5 Mar 2007 07:43:47 GMT
From:      Matt Jacob <mjacob@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 115322 for review
Message-ID:  <200703050743.l257hldV055462@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=115322

Change 115322 by mjacob@mjexp on 2007/03/05 07:43:11

	IFC

Affected files ...

.. //depot/projects/mjexp/UPDATING#10 integrate
.. //depot/projects/mjexp/bin/expr/expr.1#2 integrate
.. //depot/projects/mjexp/bin/kill/kill.1#2 integrate
.. //depot/projects/mjexp/etc/defaults/rc.conf#6 integrate
.. //depot/projects/mjexp/etc/mtree/BSD.usr.dist#5 integrate
.. //depot/projects/mjexp/etc/rc.d/dhclient#4 integrate
.. //depot/projects/mjexp/etc/rc.d/random#2 integrate
.. //depot/projects/mjexp/lib/libarchive/Makefile#4 integrate
.. //depot/projects/mjexp/lib/libarchive/README#2 integrate
.. //depot/projects/mjexp/lib/libarchive/archive.h.in#7 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_entry.3#3 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_private.h#6 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read.3#6 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read.c#8 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_data_into_fd.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_extract.c#5 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_private.h#1 branch
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_compression_bzip2.c#5 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_compression_compress.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_compression_gzip.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_compression_none.c#7 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_format_cpio.c#5 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_format_empty.c#2 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_format_iso9660.c#6 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_format_tar.c#5 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_read_support_format_zip.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_util.3#3 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_util.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_virtual.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/archive_write.3#5 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_write.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_write_disk.3#1 branch
.. //depot/projects/mjexp/lib/libarchive/archive_write_disk.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/archive_write_disk_private.h#1 branch
.. //depot/projects/mjexp/lib/libarchive/archive_write_disk_set_standard_lookup.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/archive_write_private.h#1 branch
.. //depot/projects/mjexp/lib/libarchive/archive_write_set_compression_bzip2.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_write_set_compression_gzip.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_write_set_compression_none.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_write_set_format_cpio.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_write_set_format_pax.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_write_set_format_shar.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/archive_write_set_format_ustar.c#4 integrate
.. //depot/projects/mjexp/lib/libarchive/test/Makefile#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/README#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/main.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test.h#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_archive_api_feature.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_bad_fd.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_data_large.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_extract.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_cpio_bin.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_cpio_bin_Z.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_cpio_bin_bz2.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_cpio_bin_gz.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_cpio_odc.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_cpio_svr4_gzip.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_cpio_svr4c_Z.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_empty.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_gtar_gz.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_iso_gz.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_isorr_bz2.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_pax_bz2.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_tar.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_tbz.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_tgz.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_tz.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_format_zip.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_large.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_position.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_read_truncated.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_write_disk.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_write_disk_perms.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_write_disk_secure.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_write_format_cpio_empty.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_write_format_shar_empty.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_write_format_tar.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_write_format_tar_empty.c#1 branch
.. //depot/projects/mjexp/lib/libarchive/test/test_write_open_memory.c#1 branch
.. //depot/projects/mjexp/lib/libc/Makefile#2 integrate
.. //depot/projects/mjexp/lib/libc/regex/engine.c#3 integrate
.. //depot/projects/mjexp/lib/libc/rpc/clnt_dg.c#2 integrate
.. //depot/projects/mjexp/lib/libc/yp/yplib.c#2 integrate
.. //depot/projects/mjexp/lib/libelf/gelf_getehdr.3#3 integrate
.. //depot/projects/mjexp/sbin/newfs/newfs.c#3 integrate
.. //depot/projects/mjexp/share/doc/Makefile#2 integrate
.. //depot/projects/mjexp/share/doc/legal/Makefile#1 branch
.. //depot/projects/mjexp/share/doc/legal/intel_ipw/Makefile#1 branch
.. //depot/projects/mjexp/share/doc/legal/intel_iwi/Makefile#1 branch
.. //depot/projects/mjexp/share/man/man4/ng_source.4#3 integrate
.. //depot/projects/mjexp/share/man/man7/hier.7#3 integrate
.. //depot/projects/mjexp/share/man/man9/Makefile#11 integrate
.. //depot/projects/mjexp/share/man/man9/sleep.9#4 integrate
.. //depot/projects/mjexp/share/man/man9/vfs_getopt.9#1 branch
.. //depot/projects/mjexp/sys/arm/xscale/ixp425/ixp425_npe.c#4 integrate
.. //depot/projects/mjexp/sys/boot/pc98/cdboot/cdboot.s#2 integrate
.. //depot/projects/mjexp/sys/conf/kmod.mk#5 integrate
.. //depot/projects/mjexp/sys/contrib/dev/ipw/LICENSE#1 branch
.. //depot/projects/mjexp/sys/contrib/dev/ipw/ipw2100-1.3-i.fw.uu#1 branch
.. //depot/projects/mjexp/sys/contrib/dev/ipw/ipw2100-1.3-p.fw.uu#1 branch
.. //depot/projects/mjexp/sys/contrib/dev/ipw/ipw2100-1.3.fw.uu#1 branch
.. //depot/projects/mjexp/sys/contrib/dev/iwi/LICENSE#1 branch
.. //depot/projects/mjexp/sys/contrib/dev/iwi/ipw2200-bss.fw.uu#1 branch
.. //depot/projects/mjexp/sys/contrib/dev/iwi/ipw2200-ibss.fw.uu#1 branch
.. //depot/projects/mjexp/sys/contrib/dev/iwi/ipw2200-sniffer.fw.uu#1 branch
.. //depot/projects/mjexp/sys/dev/bce/if_bce.c#11 integrate
.. //depot/projects/mjexp/sys/dev/ixgb/if_ixgb.c#3 integrate
.. //depot/projects/mjexp/sys/dev/msk/if_msk.c#5 integrate
.. //depot/projects/mjexp/sys/dev/nfe/if_nfe.c#6 integrate
.. //depot/projects/mjexp/sys/dev/nge/if_nge.c#3 integrate
.. //depot/projects/mjexp/sys/dev/pccbb/pccbb.c#6 integrate
.. //depot/projects/mjexp/sys/dev/re/if_re.c#9 integrate
.. //depot/projects/mjexp/sys/dev/stge/if_stge.c#4 integrate
.. //depot/projects/mjexp/sys/dev/ti/if_ti.c#4 integrate
.. //depot/projects/mjexp/sys/dev/txp/if_txp.c#3 integrate
.. //depot/projects/mjexp/sys/dev/vge/if_vge.c#5 integrate
.. //depot/projects/mjexp/sys/geom/eli/g_eli.c#4 integrate
.. //depot/projects/mjexp/sys/i386/isa/clock.c#6 integrate
.. //depot/projects/mjexp/sys/kern/kern_acct.c#5 integrate
.. //depot/projects/mjexp/sys/kern/kern_acl.c#4 integrate
.. //depot/projects/mjexp/sys/kern/kern_alq.c#3 integrate
.. //depot/projects/mjexp/sys/kern/kern_context.c#2 integrate
.. //depot/projects/mjexp/sys/kern/kern_descrip.c#6 integrate
.. //depot/projects/mjexp/sys/kern/kern_event.c#3 integrate
.. //depot/projects/mjexp/sys/kern/kern_exec.c#4 integrate
.. //depot/projects/mjexp/sys/kern/kern_exit.c#3 integrate
.. //depot/projects/mjexp/sys/kern/kern_fork.c#8 integrate
.. //depot/projects/mjexp/sys/kern/kern_intr.c#9 integrate
.. //depot/projects/mjexp/sys/kern/kern_jail.c#6 integrate
.. //depot/projects/mjexp/sys/kern/kern_ktrace.c#7 integrate
.. //depot/projects/mjexp/sys/kern/kern_linker.c#6 integrate
.. //depot/projects/mjexp/sys/kern/kern_module.c#2 integrate
.. //depot/projects/mjexp/sys/kern/kern_ntptime.c#4 integrate
.. //depot/projects/mjexp/sys/kern/kern_prot.c#5 integrate
.. //depot/projects/mjexp/sys/kern/kern_resource.c#8 integrate
.. //depot/projects/mjexp/sys/kern/kern_shutdown.c#4 integrate
.. //depot/projects/mjexp/sys/kern/kern_sig.c#9 integrate
.. //depot/projects/mjexp/sys/kern/kern_sysctl.c#4 integrate
.. //depot/projects/mjexp/sys/kern/kern_time.c#5 integrate
.. //depot/projects/mjexp/sys/kern/kern_xxx.c#3 integrate
.. //depot/projects/mjexp/sys/kern/p1003_1b.c#2 integrate
.. //depot/projects/mjexp/sys/kern/subr_prof.c#2 integrate
.. //depot/projects/mjexp/sys/kern/subr_trap.c#6 integrate
.. //depot/projects/mjexp/sys/kern/sys_generic.c#4 integrate
.. //depot/projects/mjexp/sys/kern/sys_process.c#5 integrate
.. //depot/projects/mjexp/sys/kern/sys_socket.c#3 integrate
.. //depot/projects/mjexp/sys/kern/sysv_msg.c#6 integrate
.. //depot/projects/mjexp/sys/kern/sysv_sem.c#3 integrate
.. //depot/projects/mjexp/sys/kern/sysv_shm.c#4 integrate
.. //depot/projects/mjexp/sys/kern/uipc_syscalls.c#5 integrate
.. //depot/projects/mjexp/sys/kern/vfs_cluster.c#3 integrate
.. //depot/projects/mjexp/sys/modules/Makefile#6 integrate
.. //depot/projects/mjexp/sys/modules/ipwfw/Makefile#1 branch
.. //depot/projects/mjexp/sys/modules/ipwfw/ipw_bss/Makefile#1 branch
.. //depot/projects/mjexp/sys/modules/ipwfw/ipw_ibss/Makefile#1 branch
.. //depot/projects/mjexp/sys/modules/ipwfw/ipw_monitor/Makefile#1 branch
.. //depot/projects/mjexp/sys/modules/iwifw/Makefile#1 branch
.. //depot/projects/mjexp/sys/modules/iwifw/iwi_bss/Makefile#1 branch
.. //depot/projects/mjexp/sys/modules/iwifw/iwi_ibss/Makefile#1 branch
.. //depot/projects/mjexp/sys/modules/iwifw/iwi_monitor/Makefile#1 branch
.. //depot/projects/mjexp/sys/netgraph/ng_source.c#3 integrate
.. //depot/projects/mjexp/sys/netinet/ip_mroute.c#8 integrate
.. //depot/projects/mjexp/sys/nfsserver/nfs_syscalls.c#5 integrate
.. //depot/projects/mjexp/sys/pc98/cbus/clock.c#6 integrate
.. //depot/projects/mjexp/sys/powerpc/powermac/pswitch.c#3 integrate
.. //depot/projects/mjexp/sys/security/audit/audit.c#5 integrate
.. //depot/projects/mjexp/sys/security/audit/audit_syscalls.c#5 integrate
.. //depot/projects/mjexp/sys/security/mac/mac_syscalls.c#2 integrate
.. //depot/projects/mjexp/sys/sys/param.h#10 integrate
.. //depot/projects/mjexp/sys/tools/fw_stub.awk#4 integrate
.. //depot/projects/mjexp/tools/tools/README#2 integrate
.. //depot/projects/mjexp/tools/tools/pciroms/Makefile#1 branch
.. //depot/projects/mjexp/tools/tools/pciroms/pciroms.c#1 branch
.. //depot/projects/mjexp/usr.bin/mkstr/mkstr.1#2 integrate
.. //depot/projects/mjexp/usr.bin/netstat/mcast.c#4 integrate
.. //depot/projects/mjexp/usr.bin/tar/tree.c#4 integrate
.. //depot/projects/mjexp/usr.sbin/freebsd-update/freebsd-update.sh#4 integrate
.. //depot/projects/mjexp/usr.sbin/pkg_install/info/pkg_info.1#2 integrate

Differences ...

==== //depot/projects/mjexp/UPDATING#10 (text+ko) ====

@@ -21,6 +21,12 @@
 	developers choose to disable these features on build machines
 	to maximize performance.
 
+20070302:
+	Firmwares for ipw(4) and iwi(4) are now included in the base tree.
+	In order to use them one must agree to the respective LICENSE in
+	share/doc/legal and define legal.<name>.license_ack=1 via
+	loader.conf(5) or kenv(1).
+
 20070228:
 	The name resolution/mapping functions addr2ascii(3) and ascii2addr(3)
 	were removed from FreeBSD's libc. These originally came from INRIA
@@ -751,4 +757,4 @@
 Contact Warner Losh if you have any questions about your use of
 this document.
 
-$FreeBSD: src/UPDATING,v 1.481 2007/03/01 15:42:23 ru Exp $
+$FreeBSD: src/UPDATING,v 1.482 2007/03/02 14:56:15 flz Exp $

==== //depot/projects/mjexp/bin/expr/expr.1#2 (text+ko) ====

@@ -28,7 +28,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/bin/expr/expr.1,v 1.28 2005/01/16 16:41:57 ru Exp $
+.\" $FreeBSD: src/bin/expr/expr.1,v 1.29 2007/03/04 19:52:07 ru Exp $
 .\"
 .Dd July 12, 2004
 .Dt EXPR 1
@@ -72,7 +72,10 @@
 .Pp
 Operators are listed below in order of increasing precedence; all
 are left-associative.
-Operators with equal precedence are grouped within { } symbols.
+Operators with equal precedence are grouped within symbols
+.Ql {
+and
+.Ql } .
 .Bl -tag -width indent
 .It Ar expr1 Li | Ar expr2
 Return the evaluation of
@@ -97,7 +100,7 @@
 Return the results of multiplication, integer division, or remainder of integer-valued arguments.
 .It Ar expr1 Li : Ar expr2
 The
-.Dq \&:
+.Dq Li \&:
 operator matches
 .Ar expr1
 against
@@ -105,13 +108,13 @@
 which must be a basic regular expression.
 The regular expression is anchored
 to the beginning of the string with an implicit
-.Dq ^ .
+.Dq Li ^ .
 .Pp
 If the match succeeds and the pattern contains at least one regular
 expression subexpression
-.Dq "\e(...\e)" ,
+.Dq Li "\e(...\e)" ,
 the string corresponding to
-.Dq "\e1"
+.Dq Li \e1
 is returned;
 otherwise the matching operator returns the number of characters matched.
 If the match fails and the pattern contains a regular expression subexpression

==== //depot/projects/mjexp/bin/kill/kill.1#2 (text+ko) ====

@@ -30,7 +30,7 @@
 .\" SUCH DAMAGE.
 .\"
 .\"	@(#)kill.1	8.2 (Berkeley) 4/28/95
-.\" $FreeBSD: src/bin/kill/kill.1,v 1.20 2005/01/16 16:41:57 ru Exp $
+.\" $FreeBSD: src/bin/kill/kill.1,v 1.21 2007/03/04 09:15:12 ru Exp $
 .\"
 .Dd April 28, 1995
 .Dt KILL 1
@@ -41,31 +41,27 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl s Ar signal_name
-.Ar pid
-\&...
+.Ar pid ...
 .Nm
 .Fl l
 .Op Ar exit_status
 .Nm
 .Fl Ar signal_name
-.Ar pid
-\&...
+.Ar pid ...
 .Nm
 .Fl Ar signal_number
-.Ar pid
-\&...
+.Ar pid ...
 .Sh DESCRIPTION
 The
 .Nm
 utility sends a signal to the processes specified by the
 .Ar pid
-operand(s).
+operands.
 .Pp
 Only the super-user may send signals to other users' processes.
 .Pp
 The options are as follows:
-.Pp
-.Bl -tag -width Ds
+.Bl -tag -width indent
 .It Fl s Ar signal_name
 A symbolic signal name specifying the signal to be sent instead of the
 default
@@ -84,15 +80,16 @@
 .Dv TERM .
 .El
 .Pp
-The following pids have special meanings:
-.Bl -tag -width Ds -compact
+The following PIDs have special meanings:
+.Bl -tag -width indent
 .It -1
 If superuser, broadcast the signal to all processes; otherwise broadcast
 to all processes belonging to the user.
 .El
 .Pp
 Some of the more commonly used signals:
-.Bl -tag -width Ds -compact
+.Pp
+.Bl -tag -width indent -compact
 .It 1
 HUP (hang up)
 .It 2
@@ -119,17 +116,17 @@
 .Ex -std
 .Sh EXAMPLES
 Terminate
-the processes with pids 142 and 157:
+the processes with PIDs 142 and 157:
 .Pp
 .Dl "kill 142 157"
 .Pp
 Send the hangup signal
 .Pq Dv SIGHUP
-to the process with pid 507:
+to the process with PID 507:
 .Pp
 .Dl "kill -s HUP 507"
 .Pp
-Terminate the process group with pgid 117:
+Terminate the process group with PGID 117:
 .Pp
 .Dl "kill -- -117"
 .Sh SEE ALSO
@@ -142,7 +139,7 @@
 .Sh STANDARDS
 The
 .Nm
-function is expected to be
+utility is expected to be
 .St -p1003.2
 compatible.
 .Sh HISTORY

==== //depot/projects/mjexp/etc/defaults/rc.conf#6 (text+ko) ====

@@ -15,7 +15,7 @@
 # For a more detailed explanation of all the rc.conf variables, please
 # refer to the rc.conf(5) manual page.
 #
-# $FreeBSD: src/etc/defaults/rc.conf,v 1.304 2007/02/09 12:11:27 flz Exp $
+# $FreeBSD: src/etc/defaults/rc.conf,v 1.305 2007/03/03 06:36:32 ume Exp $
 
 ##############################################################
 ###  Important initial Boot-time options  ####################
@@ -425,7 +425,7 @@
 ipv6_ipfilter_rules="/etc/ipf6.rules"	# rules definition file for ipfilter,
 					# see /usr/src/contrib/ipfilter/rules
 					# for examples
-ip6addrctl_enable="NO"	# Set to YES to enable default address selection
+ip6addrctl_enable="YES"	# Set to YES to enable default address selection
 ip6addrctl_verbose="NO"	# Set to YES to enable verbose configuration messages
 
 ##############################################################

==== //depot/projects/mjexp/etc/mtree/BSD.usr.dist#5 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.324 2006/12/05 16:57:10 ru Exp $
+# $FreeBSD: src/etc/mtree/BSD.usr.dist,v 1.326 2007/03/02 14:56:14 flz Exp $
 #
 # Please see the file src/etc/mtree/README before making changes to this file.
 #
@@ -75,6 +75,12 @@
                 misc
                 ..
             ..
+            legal
+                intel_ipw
+                ..
+                intel_iwi
+                ..
+            ..
             ncurses
             ..
             ntp

==== //depot/projects/mjexp/etc/rc.d/dhclient#4 (text+ko) ====

@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 # $NetBSD: dhclient,v 1.8 2002/03/22 04:33:58 thorpej Exp $
-# $FreeBSD: src/etc/rc.d/dhclient,v 1.26 2007/02/15 06:51:31 yar Exp $
+# $FreeBSD: src/etc/rc.d/dhclient,v 1.27 2007/03/02 20:48:35 brooks Exp $
 #
 
 # PROVIDE: dhclient
@@ -28,17 +28,13 @@
 	fi
 
 	# Override for $ifn specific flags (see rc.subr for $flags setting)
-	eval specific=\$dhclient_flags_$ifn
+	specific=`get_if_var $ifn dhclient_flags_IF`
 	if [ -z "$flags" -a -n "$specific" ]; then
 		rc_flags=$specific
 	fi
 
-	eval specific=\$background_dhclient_$ifn
-	if [ -n "$specific" ]; then
-		if checkyesno background_dhclient_$ifn; then
-			rc_flags="${rc_flags} -b"
-		fi
-	elif checkyesno background_dhclient; then
+	background_dhclient=`get_if_var $ifn background_dhclient_IF $background_dhclient`
+	if checkyesno background_dhclient_$ifn; then
 		rc_flags="${rc_flags} -b"
 	fi
 

==== //depot/projects/mjexp/etc/rc.d/random#2 (text+ko) ====

@@ -1,6 +1,6 @@
 #!/bin/sh
 #
-# $FreeBSD: src/etc/rc.d/random,v 1.8 2005/04/11 02:45:05 dougb Exp $
+# $FreeBSD: src/etc/rc.d/random,v 1.9 2007/03/03 06:39:06 njl Exp $
 #
 
 # PROVIDE: random
@@ -45,6 +45,7 @@
 	*)
 		if [ -w /dev/random ]; then
 			feed_dev_random "${entropy_file}"
+			feed_dev_random /var/db/entropy-file
 		fi
 		;;
 	esac
@@ -60,22 +61,22 @@
 		;;
 	*)
 		echo -n 'Writing entropy file:'
-		rm -f ${entropy_file}
+		rm -f ${entropy_file} 2> /dev/null
 		oumask=`umask`
 		umask 077
-		if touch ${entropy_file}; then
+		if touch ${entropy_file} 2> /dev/null; then
 			entropy_file_confirmed="${entropy_file}"
 		else
 			# Try this as a reasonable alternative for read-only
 			# roots, diskless workstations, etc.
-			rm -f /var/db/entropy-file
-			if touch /var/db/entropy-file; then
+			rm -f /var/db/entropy-file 2> /dev/null
+			if touch /var/db/entropy-file 2> /dev/null; then
 				entropy_file_confirmed=/var/db/entropy-file
 			fi
 		fi
 		case ${entropy_file_confirmed} in
 		'')
-			err 1 'entropy file write failed.'
+			warn 'write failed (read-only fs?)'
 			;;
 		*)
 			dd if=/dev/random of=${entropy_file_confirmed} \

==== //depot/projects/mjexp/lib/libarchive/Makefile#4 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/lib/libarchive/Makefile,v 1.58 2007/02/01 06:18:16 kientzle Exp $
+# $FreeBSD: src/lib/libarchive/Makefile,v 1.59 2007/03/03 07:37:35 kientzle Exp $
 
 LIB=	archive
 DPADD=	${LIBBZ2} ${LIBZ}
@@ -9,14 +9,14 @@
 #  Major: Bumped ONLY when API/ABI breakage happens (see SHLIB_MAJOR)
 #  Minor: Bumped when significant new features are added
 #  Revision: Bumped on any notable change
-VERSION= 1.3.1
+VERSION= 2.0.20
 
 ARCHIVE_API_MAJOR!=	echo ${VERSION} | sed -e 's/[^0-9]/./g' -e 's/\..*//'
 ARCHIVE_API_MINOR!=	echo ${VERSION} | sed -e 's/[^0-9]/./g' -e 's/[0-9]*\.//' -e 's/\..*//'
 
 # FreeBSD SHLIB_MAJOR value is managed as part of the FreeBSD system.
 # It has no real relation to the version number above.
-SHLIB_MAJOR= 3
+SHLIB_MAJOR= 4
 
 CFLAGS+=	-DPACKAGE_NAME=\"lib${LIB}\"
 CFLAGS+=	-DPACKAGE_VERSION=\"${VERSION}\"
@@ -67,7 +67,10 @@
 	archive_string.c				\
 	archive_string_sprintf.c			\
 	archive_util.c					\
+	archive_virtual.c				\
 	archive_write.c					\
+	archive_write_disk.c				\
+	archive_write_disk_set_standard_lookup.c	\
 	archive_write_open_fd.c				\
 	archive_write_open_file.c			\
 	archive_write_open_filename.c			\
@@ -87,6 +90,7 @@
 	archive_read.3					\
 	archive_util.3					\
 	archive_write.3					\
+	archive_write_disk.3				\
 	libarchive.3					\
 	libarchive-formats.5				\
 	tar.5
@@ -173,6 +177,7 @@
 MLINKS+=	archive_read.3 archive_read_support_format_iso9660.3
 MLINKS+=	archive_read.3 archive_read_support_format_tar.3
 MLINKS+=	archive_read.3 archive_read_support_format_zip.3
+MLINKS+=	archive_util.3 archive_clear_error.3
 MLINKS+=	archive_util.3 archive_compression.3
 MLINKS+=	archive_util.3 archive_compression_name.3
 MLINKS+=	archive_util.3 archive_errno.3
@@ -201,6 +206,15 @@
 MLINKS+=	archive_write.3 archive_write_set_format_pax.3
 MLINKS+=	archive_write.3 archive_write_set_format_shar.3
 MLINKS+=	archive_write.3 archive_write_set_format_ustar.3
+MLINKS+=	archive_write_disk.3 archive_write_disk_new.3
+MLINKS+=	archive_write_disk.3 archive_write_disk_set_group_lookup.3
+MLINKS+=	archive_write_disk.3 archive_write_disk_set_options.3
+MLINKS+=	archive_write_disk.3 archive_write_disk_set_skip_file.3
+MLINKS+=	archive_write_disk.3 archive_write_disk_set_standard_lookup.3
+MLINKS+=	archive_write_disk.3 archive_write_disk_set_user_lookup.3
 MLINKS+=	libarchive.3 archive.3
 
+test:
+	cd ${.CURDIR}/test && make test
+
 .include <bsd.lib.mk>

==== //depot/projects/mjexp/lib/libarchive/README#2 (text+ko) ====

@@ -1,4 +1,4 @@
-$FreeBSD: src/lib/libarchive/README,v 1.4 2005/02/12 23:09:44 kientzle Exp $
+$FreeBSD: src/lib/libarchive/README,v 1.5 2007/03/03 07:37:35 kientzle Exp $
 
 libarchive: a library for reading and writing streaming archives
 
@@ -6,16 +6,16 @@
 
 Documentation:
  * libarchive.3 gives an overview of the library as a whole
- * archive_read.3 and archive_write.3 provide detailed calling
-   sequences for the read and write APIs
+ * archive_read.3, archive_write.3, and archive_write_disk.3 provide
+   detailed calling sequences for the read and write APIs
  * archive_entry.3 details the "struct archive_entry" utility class
  * libarchive-formats.5 documents the file formats supported by the library
  * tar.5 provides some detailed information about a variety of different
    "tar" formats.
 
 You should also read the copious comments in "archive.h" and the source
-code for the sample "bsdtar" program for more details.  Please let me know
-about any errors or omissions you find.
+code for the sample "bsdtar" and "minitar" programs for more details.
+Please let me know about any errors or omissions you find.
 
 Currently, the library automatically detects and reads the following:
   * gzip compression
@@ -84,8 +84,10 @@
    a block of data in memory and add it to a tar archive without
    first writing a temporary file.  You can also read an entry from
    an archive and write the data directly to a socket.  If you want
-   to read/write entries to disk, there are convenience functions to
-   make this especially easy.
+   to read/write entries to disk, the archive_write_disk interface
+   treats a directory as if it were an archive so you can copy
+   from archive->disk using the same code you use for archive->archive
+   transfers.
 
  * Note: "pax interchange format" is really an extended tar format,
    despite what the name says.

==== //depot/projects/mjexp/lib/libarchive/archive.h.in#7 (text+ko) ====

@@ -22,7 +22,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/lib/libarchive/archive.h.in,v 1.38 2007/02/01 06:18:16 kientzle Exp $
+ * $FreeBSD: src/lib/libarchive/archive.h.in,v 1.39 2007/03/03 07:37:35 kientzle Exp $
  */
 
 #ifndef ARCHIVE_H_INCLUDED
@@ -37,7 +37,14 @@
 #include <sys/types.h>  /* Linux requires this for off_t */
 @ARCHIVE_H_INCLUDE_INTTYPES_H@
 #include <stdio.h> /* For FILE * */
+#ifndef _WIN32
 #include <unistd.h>  /* For ssize_t and size_t */
+#else
+typedef long ssize_t;
+typedef unsigned int uid_t;
+typedef unsigned int gid_t;
+typedef unsigned short mode_t;
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -59,6 +66,7 @@
  *    1 - Version tests are available.
  *    2 - archive_{read,write}_close available separately from _finish.
  *    3 - open_memory, open_memory2, open_FILE, open_fd available
+ *    5 - archive_write_disk interface available
  */
 #define	ARCHIVE_API_VERSION	@ARCHIVE_API_MAJOR@
 int		archive_api_version(void);
@@ -138,8 +146,17 @@
  * Top 16 bits identifies the format family (e.g., "tar"); lower
  * 16 bits indicate the variant.  This is updated by read_next_header.
  * Note that the lower 16 bits will often vary from entry to entry.
+ * In some cases, this variation occurs as libarchive learns more about
+ * the archive (for example, later entries might utilize extensions that
+ * weren't necessary earlier in the archive; in this case, libarchive
+ * will change the format code to indicate the extended format that
+ * was used).  In other cases, it's because different tools have
+ * modified the archive and so different parts of the archive
+ * actually have slightly different formts.  (Both tar and cpio store
+ * format codes in each entry, so it is quite possible for each
+ * entry to be in a different format.)
  */
-#define	ARCHIVE_FORMAT_BASE_MASK		0xff0000U
+#define	ARCHIVE_FORMAT_BASE_MASK		0xff0000
 #define	ARCHIVE_FORMAT_CPIO			0x10000
 #define	ARCHIVE_FORMAT_CPIO_POSIX		(ARCHIVE_FORMAT_CPIO | 1)
 #define	ARCHIVE_FORMAT_CPIO_BIN_LE		(ARCHIVE_FORMAT_CPIO | 2)
@@ -274,15 +291,28 @@
  */
 
 /* The "flags" argument selects optional behavior, 'OR' the flags you want. */
-/* TODO: The 'Default' comments here are not quite correct; clean this up. */
-#define	ARCHIVE_EXTRACT_OWNER	(1) /* Default: owner/group not restored */
-#define	ARCHIVE_EXTRACT_PERM	(2) /* Default: restore perm only for reg file*/
-#define	ARCHIVE_EXTRACT_TIME	(4) /* Default: mod time not restored */
-#define	ARCHIVE_EXTRACT_NO_OVERWRITE (8) /* Default: Replace files on disk */
-#define	ARCHIVE_EXTRACT_UNLINK	(16) /* Default: don't unlink existing files */
-#define	ARCHIVE_EXTRACT_ACL	(32) /* Default: don't restore ACLs */
-#define	ARCHIVE_EXTRACT_FFLAGS	(64) /* Default: don't restore fflags */
-#define	ARCHIVE_EXTRACT_XATTR   (128) /* Default: don't restore xattrs */
+
+/* Default: Do not try to set owner/group. */
+#define	ARCHIVE_EXTRACT_OWNER	(1)
+/* Default: Do obey umask, do not restore SUID/SGID/SVTX bits. */
+#define	ARCHIVE_EXTRACT_PERM	(2)
+/* Default: Do not restore mtime/atime. */
+#define	ARCHIVE_EXTRACT_TIME	(4)
+/* Default: Replace existing files. */
+#define	ARCHIVE_EXTRACT_NO_OVERWRITE (8)
+/* Default: Try create first, unlink only if create fails with EEXIST. */
+#define	ARCHIVE_EXTRACT_UNLINK	(16)
+/* Default: Do not restore ACLs. */
+#define	ARCHIVE_EXTRACT_ACL	(32)
+/* Default: Do not restore fflags. */
+#define	ARCHIVE_EXTRACT_FFLAGS	(64)
+/* Default: Do not restore xattrs. */
+#define	ARCHIVE_EXTRACT_XATTR   (128)
+/* Default: Do not try to guard against extracts redirected by symlinks. */
+/* Note: With ARCHIVE_EXTRACT_UNLINK, will remove any intermediate symlink. */
+#define	ARCHIVE_EXTRACT_SECURE_SYMLINKS (256)
+/* Default: Do not reject entries with '..' as path elements. */
+#define	ARCHIVE_EXTRACT_SECURE_NODOTDOT (512)
 
 int		 archive_read_extract(struct archive *, struct archive_entry *,
 		     int flags);
@@ -298,7 +328,13 @@
 int		 archive_read_close(struct archive *);
 /* Release all resources and destroy the object. */
 /* Note that archive_read_finish will call archive_read_close for you. */
+#if ARCHIVE_API_VERSION > 1
+int		 archive_read_finish(struct archive *);
+#else
+/* Temporarily allow library to compile with either 1.x or 2.0 API. */
+/* Erroneously declared to return void in libarchive 1.x */
 void		 archive_read_finish(struct archive *);
+#endif
 
 /*-
  * To create an archive:
@@ -362,13 +398,78 @@
  */
 int		 archive_write_header(struct archive *,
 		     struct archive_entry *);
-/* TODO: should be ssize_t, but that might require .so version bump? */
+#if ARCHIVE_API_VERSION > 1
+ssize_t		 archive_write_data(struct archive *, const void *, size_t);
+#else
+/* Temporarily allow library to compile with either 1.x or 2.0 API. */
+/* This was erroneously declared to return "int" in libarchive 1.x. */
 int		 archive_write_data(struct archive *, const void *, size_t);
+#endif
+ssize_t		 archive_write_data_block(struct archive *, const void *, size_t, off_t);
 int		 archive_write_finish_entry(struct archive *);
 int		 archive_write_close(struct archive *);
+#if ARCHIVE_API_VERSION > 1
+int		 archive_write_finish(struct archive *);
+#else
+/* Temporarily allow library to compile with either 1.x or 2.0 API. */
+/* Return value was incorrect in libarchive 1.x. */
 void		 archive_write_finish(struct archive *);
+#endif
 
+/*-
+ * To create objects on disk:
+ *   1) Ask archive_write_disk_new for a new archive_write_disk object.
+ *   2) Set any global properties.  In particular, you should set
+ *      the compression and format to use.
+ *   3) For each entry:
+ *      - construct an appropriate struct archive_entry structure
+ *      - archive_write_header to create the file/dir/etc on disk
+ *      - archive_write_data to write the entry data
+ *   4) archive_write_finish to cleanup the writer and release resources
+ *
+ * In particular, you can use this in conjunction with archive_read()
+ * to pull entries out of an archive and create them on disk.
+ */
+struct archive	*archive_write_disk_new(void);
+/* This file will not be overwritten. */
+int		 archive_write_disk_set_skip_file(struct archive *,
+		     dev_t, ino_t);
+/* Set flags to control how the next item gets created. */
+int		 archive_write_disk_set_options(struct archive *,
+		     int flags);
 /*
+ * The lookup functions are given uname/uid (or gname/gid) pairs and
+ * return a uid (gid) suitable for this system.  These are used for
+ * restoring ownership and for setting ACLs.  The default functions
+ * are naive, they just return the uid/gid.  These are small, so reasonable
+ * for applications that don't need to preserve ownership; they
+ * are probably also appropriate for applications that are doing
+ * same-system backup and restore.
+ */
+/*
+ * The "standard" lookup functions use common system calls to lookup
+ * the uname/gname, falling back to the uid/gid if the names can't be
+ * found.  They cache lookups and are reasonably fast, but can be very
+ * large, so they are not used unless you ask for them.  In
+ * particular, these match the specifications of POSIX "pax" and old
+ * POSIX "tar".
+ */
+int		 archive_write_disk_set_standard_lookup(struct archive *);
+/*
+ * If neither the default (naive) nor the standard (big) functions suit
+ * your needs, you can write your own and register them.  Be sure to
+ * include a cleanup function if you have allocated private data.
+ */
+int		 archive_write_disk_set_group_lookup(struct archive *,
+		     void *private_data,
+		     gid_t (*loookup)(void *, const char *gname, gid_t gid),
+		     void (*cleanup)(void *));
+int		 archive_write_disk_set_user_lookup(struct archive *,
+		     void *private_data,
+		     uid_t (*)(void *, const char *uname, uid_t uid),
+		     void (*cleanup)(void *));
+
+/*
  * Accessor functions to read/set various information in
  * the struct archive object:
  */
@@ -383,6 +484,7 @@
 const char	*archive_error_string(struct archive *);
 const char	*archive_format_name(struct archive *);
 int		 archive_format(struct archive *);
+void		 archive_clear_error(struct archive *);
 void		 archive_set_error(struct archive *, int _err, const char *fmt, ...);
 
 #ifdef __cplusplus

==== //depot/projects/mjexp/lib/libarchive/archive_entry.3#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/lib/libarchive/archive_entry.3,v 1.12 2007/01/09 08:05:54 kientzle Exp $
+.\" $FreeBSD: src/lib/libarchive/archive_entry.3,v 1.13 2007/03/03 07:37:36 kientzle Exp $
 .\"
 .Dd December 15, 2003
 .Dt archive_entry 3
@@ -46,6 +46,7 @@
 .Nm archive_entry_copy_hardlink_w ,
 .Nm archive_entry_copy_pathname_w ,
 .Nm archive_entry_copy_stat ,
+.Nm archive_entry_copy_symlink ,
 .Nm archive_entry_copy_symlink_w ,
 .Nm archive_entry_copy_uname_w ,
 .Nm archive_entry_dev ,
@@ -124,6 +125,8 @@
 .Ft void
 .Fn archive_entry_copy_stat "struct archive_entry *" "const struct stat *"
 .Ft void
+.Fn archive_entry_copy_symlink "struct archive_entry *" "const char *"
+.Ft void
 .Fn archive_entry_copy_symlink_w "struct archive_entry *" "const wchar_t *"
 .Ft void
 .Fn archive_entry_copy_uname_w "struct archive_entry *" "const wchar_t *"

==== //depot/projects/mjexp/lib/libarchive/archive_private.h#6 (text+ko) ====

@@ -22,7 +22,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/lib/libarchive/archive_private.h,v 1.27 2007/01/09 08:05:54 kientzle Exp $
+ * $FreeBSD: src/lib/libarchive/archive_private.h,v 1.28 2007/03/03 07:37:36 kientzle Exp $
  */
 
 #ifndef ARCHIVE_PRIVATE_H_INCLUDED
@@ -33,6 +33,28 @@
 
 #define	ARCHIVE_WRITE_MAGIC	(0xb0c5c0deU)
 #define	ARCHIVE_READ_MAGIC	(0xdeb0c5U)
+#define ARCHIVE_WRITE_DISK_MAGIC (0xc001b0c5U)
+
+#define	ARCHIVE_STATE_ANY	0xFFFFU
+#define	ARCHIVE_STATE_NEW	1U
+#define	ARCHIVE_STATE_HEADER	2U
+#define	ARCHIVE_STATE_DATA	4U
+#define ARCHIVE_STATE_DATA_END	8U
+#define	ARCHIVE_STATE_EOF	0x10U
+#define	ARCHIVE_STATE_CLOSED	0x20U
+#define	ARCHIVE_STATE_FATAL	0x8000U
+
+struct archive_vtable {
+	int	(*archive_write_close)(struct archive *);
+	int	(*archive_write_finish)(struct archive *);
+	int	(*archive_write_header)(struct archive *,
+	    struct archive_entry *);
+	int	(*archive_write_finish_entry)(struct archive *);
+	ssize_t	(*archive_write_data)(struct archive *,
+	    const void *, size_t);
+	ssize_t	(*archive_write_data_block)(struct archive *,
+	    const void *, size_t, off_t);
+};
 
 struct archive {
 	/*
@@ -44,202 +66,34 @@
 	unsigned	  magic;
 	unsigned	  state;
 
-	struct archive_entry	*entry;
-	uid_t		  user_uid;	/* UID of current user. */
-
-	/* Dev/ino of the archive being read/written. */
-	dev_t		  skip_file_dev;
-	ino_t		  skip_file_ino;
-
-	/* Utility:  Pointer to a block of nulls. */
-	const unsigned char	*nulls;
-	size_t			 null_length;
-
 	/*
-	 * Used by archive_read_data() to track blocks and copy
-	 * data to client buffers, filling gaps with zero bytes.
+	 * Some public API functions depend on the "real" type of the
+	 * archive object.
 	 */
-	const char	 *read_data_block;
-	off_t		  read_data_offset;
-	off_t		  read_data_output_offset;
-	size_t		  read_data_remaining;
+	struct archive_vtable *vtable;
 
-	/* Callbacks to open/read/write/close archive stream. */
-	archive_open_callback	*client_opener;
-	archive_read_callback	*client_reader;
-	archive_skip_callback	*client_skipper;
-	archive_write_callback	*client_writer;
-	archive_close_callback	*client_closer;
-	void			*client_data;
+	int		  archive_format;
+	const char	 *archive_format_name;
 
-	/*
-	 * Blocking information.  Note that bytes_in_last_block is
-	 * misleadingly named; I should find a better name.  These
-	 * control the final output from all compressors, including
-	 * compression_none.
-	 */
-	int		  bytes_per_block;
-	int		  bytes_in_last_block;
-
-	/*
-	 * These control whether data within a gzip/bzip2 compressed
-	 * stream gets padded or not.  If pad_uncompressed is set,
-	 * the data will be padded to a full block before being
-	 * compressed.  The pad_uncompressed_byte determines the value
-	 * that will be used for padding.  Note that these have no
-	 * effect on compression "none."
-	 */
-	int		  pad_uncompressed;
-	int		  pad_uncompressed_byte; /* TODO: Support this. */
+	int	  compression_code;	/* Currently active compression. */
+	const char *compression_name;
 
 	/* Position in UNCOMPRESSED data stream. */
 	off_t		  file_position;
 	/* Position in COMPRESSED data stream. */
 	off_t		  raw_position;
-	/* File offset of beginning of most recently-read header. */
-	off_t		  header_position;
-
-	/*
-	 * Detection functions for decompression: bid functions are
-	 * given a block of data from the beginning of the stream and
-	 * can bid on whether or not they support the data stream.
-	 * General guideline: bid the number of bits that you actually
-	 * test, e.g., 16 if you test a 2-byte magic value.  The
-	 * highest bidder will have their init function invoked, which
-	 * can set up pointers to specific handlers.
-	 *
-	 * On write, the client just invokes an archive_write_set function
-	 * which sets up the data here directly.
-	 */
-	int	  compression_code;	/* Currently active compression. */
-	const char *compression_name;
-	struct {
-		int	(*bid)(const void *buff, size_t);
-		int	(*init)(struct archive *, const void *buff, size_t);
-	}	decompressors[4];
-	/* Read/write data stream (with compression). */
-	void	 *compression_data;		/* Data for (de)compressor. */
-	int	(*compression_init)(struct archive *);	/* Initialize. */
-	int	(*compression_finish)(struct archive *);
-	int	(*compression_write)(struct archive *, const void *, size_t);
-	/*
-	 * Read uses a peek/consume I/O model: the decompression code
-	 * returns a pointer to the requested block and advances the
-	 * file position only when requested by a consume call.  This
-	 * reduces copying and also simplifies look-ahead for format
-	 * detection.
-	 */
-	ssize_t	(*compression_read_ahead)(struct archive *,
-		    const void **, size_t request);
-	ssize_t	(*compression_read_consume)(struct archive *, size_t);
-	off_t (*compression_skip)(struct archive *, off_t);
-
-	/*
-	 * Format detection is mostly the same as compression
-	 * detection, with two significant differences: The bidders
-	 * use the read_ahead calls above to examine the stream rather
-	 * than having the supervisor hand them a block of data to
-	 * examine, and the auction is repeated for every header.
-	 * Winning bidders should set the archive_format and
-	 * archive_format_name appropriately.  Bid routines should
-	 * check archive_format and decline to bid if the format of
-	 * the last header was incompatible.
-	 *
-	 * Again, write support is considerably simpler because there's
-	 * no need for an auction.
-	 */
-	int		  archive_format;
-	const char	 *archive_format_name;
-
-	struct archive_format_descriptor {
-		int	(*bid)(struct archive *);
-		int	(*read_header)(struct archive *, struct archive_entry *);
-		int	(*read_data)(struct archive *, const void **, size_t *, off_t *);
-		int	(*read_data_skip)(struct archive *);
-		int	(*cleanup)(struct archive *);
-		void	 *format_data;	/* Format-specific data for readers. */
-	}	formats[8];
-	struct archive_format_descriptor	*format; /* Active format. */
-
-	/*
-	 * Storage for format-specific data.  Note that there can be
-	 * multiple format readers active at one time, so we need to
-	 * allow for multiple format readers to have their data
-	 * available.  The pformat_data slot here is the solution: on
-	 * read, it is guaranteed to always point to a void* variable
-	 * that the format can use.
-	 */
-	void	**pformat_data;		/* Pointer to current format_data. */
-	void	 *format_data;		/* Used by writers. */
 
-	/*
-	 * Pointers to format-specific functions for writing.  They're
-	 * initialized by archive_write_set_format_XXX() calls.
-	 */
-	int	(*format_init)(struct archive *); /* Only used on write. */

>>> TRUNCATED FOR MAIL (1000 lines) <<<



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703050743.l257hldV055462>