PERFORCE change 115322 for review
Matt Jacob
mjacob at FreeBSD.org
Mon Mar 5 07:43:49 UTC 2007
http://perforce.freebsd.org/chv.cgi?CH=115322
Change 115322 by mjacob at 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) <<<
More information about the p4-projects
mailing list