From owner-p4-projects@FreeBSD.ORG Sun May 25 20:58:53 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D752F10656AD; Sun, 25 May 2008 20:58:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 97F3A1065690 for ; Sun, 25 May 2008 20:58:52 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 7C5818FC16 for ; Sun, 25 May 2008 20:58:52 +0000 (UTC) (envelope-from jb@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m4PKwqUp046569 for ; Sun, 25 May 2008 20:58:52 GMT (envelope-from jb@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m4PKwqUg046567 for perforce@freebsd.org; Sun, 25 May 2008 20:58:52 GMT (envelope-from jb@freebsd.org) Date: Sun, 25 May 2008 20:58:52 GMT Message-Id: <200805252058.m4PKwqUg046567@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jb@freebsd.org using -f From: John Birrell To: Perforce Change Reviews Cc: Subject: PERFORCE change 142274 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 25 May 2008 20:58:53 -0000 http://perforce.freebsd.org/chv.cgi?CH=142274 Change 142274 by jb@freebsd3 on 2008/05/25 20:58:34 IF7 Affected files ... .. //depot/projects/dtrace7/src/Makefile#4 integrate .. //depot/projects/dtrace7/src/etc/rc.d/dhclient#4 integrate .. //depot/projects/dtrace7/src/etc/rc.d/hostid#2 integrate .. //depot/projects/dtrace7/src/etc/rc.d/ntpd#2 integrate .. //depot/projects/dtrace7/src/etc/rc.subr#2 integrate .. //depot/projects/dtrace7/src/gnu/usr.bin/man/TODO#2 integrate .. //depot/projects/dtrace7/src/gnu/usr.bin/man/lib/util.c#2 integrate .. //depot/projects/dtrace7/src/gnu/usr.bin/man/man/man.c#2 integrate .. //depot/projects/dtrace7/src/include/readpassphrase.h#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/Makefile#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive.h.in#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_entry.3#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_entry.c#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_entry.h#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_platform.h#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_read.3#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_read_support_format_ar.c#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_read_support_format_mtree.c#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_read_support_format_tar.c#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_util.3#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_util.c#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_write.3#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_write_disk.3#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_write_disk.c#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_write_private.h#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/archive_write_set_compression_compress.c#1 branch .. //depot/projects/dtrace7/src/lib/libarchive/archive_write_set_format_pax.c#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/config_freebsd.h#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/Makefile#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/main.c#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test.h#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_archive_api_feature.c#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_compat_gtar.c#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_compat_tar_hardlink.c#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_compat_zip.c#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_empty_write.c#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_entry.c#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_pax_filename_encoding.c#1 branch .. //depot/projects/dtrace7/src/lib/libarchive/test/test_pax_filename_encoding.tar.gz.uu#1 branch .. //depot/projects/dtrace7/src/lib/libarchive/test/test_read_format_ar.c#2 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_read_format_gtar_sparse.c#3 integrate .. //depot/projects/dtrace7/src/lib/libarchive/test/test_write_compress.c#1 branch .. //depot/projects/dtrace7/src/lib/libarchive/test/test_write_format_ar.c#2 integrate .. //depot/projects/dtrace7/src/lib/libc/gen/readdir.c#2 integrate .. //depot/projects/dtrace7/src/lib/libc/gen/telldir.c#2 integrate .. //depot/projects/dtrace7/src/lib/libc/gen/telldir.h#2 integrate .. //depot/projects/dtrace7/src/lib/libc/posix1e/mac.c#2 integrate .. //depot/projects/dtrace7/src/lib/libc/posix1e/mac_exec.c#2 integrate .. //depot/projects/dtrace7/src/lib/libc/posix1e/mac_get.c#2 integrate .. //depot/projects/dtrace7/src/lib/libc/posix1e/mac_set.c#2 integrate .. //depot/projects/dtrace7/src/lib/libutil/Makefile#2 integrate .. //depot/projects/dtrace7/src/lib/libutil/gr_util.c#1 branch .. //depot/projects/dtrace7/src/lib/libutil/libutil.h#2 integrate .. //depot/projects/dtrace7/src/libexec/rtld-elf/rtld.c#2 integrate .. //depot/projects/dtrace7/src/libexec/rtld-elf/rtld_lock.c#2 integrate .. //depot/projects/dtrace7/src/libexec/rtld-elf/rtld_lock.h#2 integrate .. //depot/projects/dtrace7/src/sbin/ddb/Makefile#2 integrate .. //depot/projects/dtrace7/src/sbin/ddb/ddb.8#2 integrate .. //depot/projects/dtrace7/src/sbin/ddb/ddb.c#2 integrate .. //depot/projects/dtrace7/src/sbin/ddb/ddb.h#2 integrate .. //depot/projects/dtrace7/src/sbin/ddb/ddb_capture.c#1 branch .. //depot/projects/dtrace7/src/sbin/ipfw/ipfw.8#6 integrate .. //depot/projects/dtrace7/src/sbin/ipfw/ipfw2.c#6 integrate .. //depot/projects/dtrace7/src/share/man/man4/termios.4#2 integrate .. //depot/projects/dtrace7/src/share/man/man9/bus_space.9#2 integrate .. //depot/projects/dtrace7/src/sys/conf/NOTES#6 integrate .. //depot/projects/dtrace7/src/sys/conf/files#11 integrate .. //depot/projects/dtrace7/src/sys/dev/ata/ata-all.c#3 integrate .. //depot/projects/dtrace7/src/sys/dev/bge/if_bge.c#5 integrate .. //depot/projects/dtrace7/src/sys/dev/bge/if_bgereg.h#3 integrate .. //depot/projects/dtrace7/src/sys/dev/ciss/ciss.c#3 integrate .. //depot/projects/dtrace7/src/sys/dev/coretemp/coretemp.c#3 integrate .. //depot/projects/dtrace7/src/sys/dev/em/if_em.c#4 integrate .. //depot/projects/dtrace7/src/sys/dev/ieee488/ibfoo.c#2 integrate .. //depot/projects/dtrace7/src/sys/dev/mfi/mfi.c#3 integrate .. //depot/projects/dtrace7/src/sys/dev/mpt/mpt_pci.c#2 integrate .. //depot/projects/dtrace7/src/sys/dev/sound/midi/mpu401.c#2 integrate .. //depot/projects/dtrace7/src/sys/dev/usb/if_aue.c#2 integrate .. //depot/projects/dtrace7/src/sys/dev/usb/if_zyd.c#3 integrate .. //depot/projects/dtrace7/src/sys/dev/usb/uipaq.c#2 integrate .. //depot/projects/dtrace7/src/sys/dev/usb/umass.c#3 integrate .. //depot/projects/dtrace7/src/sys/dev/usb/usbdevs#7 integrate .. //depot/projects/dtrace7/src/sys/fs/ntfs/ntfs_subr.c#4 integrate .. //depot/projects/dtrace7/src/sys/fs/unionfs/union_subr.c#4 integrate .. //depot/projects/dtrace7/src/sys/geom/vinum/geom_vinum_share.c#2 integrate .. //depot/projects/dtrace7/src/sys/kern/kern_descrip.c#5 integrate .. //depot/projects/dtrace7/src/sys/kern/kern_event.c#2 integrate .. //depot/projects/dtrace7/src/sys/kern/kern_jail.c#3 integrate .. //depot/projects/dtrace7/src/sys/kern/kern_lockf.c#3 integrate .. //depot/projects/dtrace7/src/sys/kern/kern_priv.c#2 integrate .. //depot/projects/dtrace7/src/sys/kern/kern_switch.c#2 integrate .. //depot/projects/dtrace7/src/sys/kern/subr_bus.c#3 integrate .. //depot/projects/dtrace7/src/sys/kern/uipc_sem.c#3 integrate .. //depot/projects/dtrace7/src/sys/kern/vfs_subr.c#5 integrate .. //depot/projects/dtrace7/src/sys/net/bpf.c#4 integrate .. //depot/projects/dtrace7/src/sys/net/ethernet.h#2 integrate .. //depot/projects/dtrace7/src/sys/netgraph/netflow/ng_netflow.c#3 integrate .. //depot/projects/dtrace7/src/sys/netgraph/ng_base.c#6 integrate .. //depot/projects/dtrace7/src/sys/netinet/ip_dummynet.c#3 integrate .. //depot/projects/dtrace7/src/sys/netinet/ip_fw.h#4 integrate .. //depot/projects/dtrace7/src/sys/netinet/ip_fw2.c#4 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_asconf.c#2 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_bsd_addr.c#4 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_bsd_addr.h#2 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_input.c#4 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_output.c#5 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_pcb.c#3 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_pcb.h#2 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_sysctl.c#2 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_usrreq.c#5 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctp_var.h#3 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctputil.c#5 integrate .. //depot/projects/dtrace7/src/sys/netinet/sctputil.h#2 integrate .. //depot/projects/dtrace7/src/sys/netinet/tcp_syncache.c#6 integrate .. //depot/projects/dtrace7/src/sys/netipsec/xform_tcp.c#2 integrate .. //depot/projects/dtrace7/src/sys/netncp/ncp_conn.c#2 integrate .. //depot/projects/dtrace7/src/sys/netsmb/smb_conn.c#2 integrate .. //depot/projects/dtrace7/src/sys/pci/intpm.c#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/include/bus.h#3 integrate .. //depot/projects/dtrace7/src/sys/sparc64/include/bus_common.h#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/include/intr_machdep.h#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/include/iommuvar.h#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/include/smp.h#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/pci/apb.c#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/pci/ofw_pci_if.m#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/pci/ofw_pcib.c#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/pci/ofw_pcib_subr.c#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/pci/ofw_pcib_subr.h#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/pci/ofw_pcibus.c#4 integrate .. //depot/projects/dtrace7/src/sys/sparc64/pci/psycho.c#4 integrate .. //depot/projects/dtrace7/src/sys/sparc64/pci/psychovar.h#3 integrate .. //depot/projects/dtrace7/src/sys/sparc64/sbus/sbus.c#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/sparc64/counter.c#2 integrate .. //depot/projects/dtrace7/src/sys/sparc64/sparc64/intr_machdep.c#3 integrate .. //depot/projects/dtrace7/src/sys/sparc64/sparc64/iommu.c#3 integrate .. //depot/projects/dtrace7/src/sys/sparc64/sparc64/mp_machdep.c#3 integrate .. //depot/projects/dtrace7/src/sys/sys/jail.h#2 integrate .. //depot/projects/dtrace7/src/sys/vm/vm_pageout.c#2 integrate .. //depot/projects/dtrace7/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.1#2 integrate .. //depot/projects/dtrace7/src/usr.bin/bluetooth/rfcomm_sppd/rfcomm_sppd.c#2 integrate .. //depot/projects/dtrace7/src/usr.bin/env/env.1#2 integrate .. //depot/projects/dtrace7/src/usr.bin/env/env.c#2 integrate .. //depot/projects/dtrace7/src/usr.bin/fstat/fstat.c#2 integrate .. //depot/projects/dtrace7/src/usr.bin/getopt/README#2 delete .. //depot/projects/dtrace7/src/usr.bin/getopt/getopt.c#2 integrate .. //depot/projects/dtrace7/src/usr.bin/tar/bsdtar.h#2 integrate .. //depot/projects/dtrace7/src/usr.bin/tar/read.c#2 integrate .. //depot/projects/dtrace7/src/usr.bin/tar/util.c#2 integrate .. //depot/projects/dtrace7/src/usr.bin/truss/Makefile#2 integrate .. //depot/projects/dtrace7/src/usr.bin/truss/amd64-fbsd32.c#1 branch .. //depot/projects/dtrace7/src/usr.bin/truss/amd64-linux32.c#1 branch .. //depot/projects/dtrace7/src/usr.bin/truss/amd64linux32.conf#1 branch .. //depot/projects/dtrace7/src/usr.bin/truss/extern.h#2 integrate .. //depot/projects/dtrace7/src/usr.bin/truss/fbsd32.conf#1 branch .. //depot/projects/dtrace7/src/usr.bin/truss/main.c#2 integrate .. //depot/projects/dtrace7/src/usr.sbin/moused/moused.8#2 integrate .. //depot/projects/dtrace7/src/usr.sbin/moused/moused.c#3 integrate .. //depot/projects/dtrace7/src/usr.sbin/sa/db.c#2 integrate .. //depot/projects/dtrace7/src/usr.sbin/sade/disks.c#2 integrate .. //depot/projects/dtrace7/src/usr.sbin/sade/label.c#2 integrate .. //depot/projects/dtrace7/src/usr.sbin/traceroute6/traceroute6.8#2 integrate .. //depot/projects/dtrace7/src/usr.sbin/traceroute6/traceroute6.c#2 integrate Differences ... ==== //depot/projects/dtrace7/src/Makefile#4 (text+ko) ==== @@ -1,5 +1,5 @@ # -# $FreeBSD: src/Makefile,v 1.341.2.2 2008/02/12 20:17:53 jhb Exp $ +# $FreeBSD: src/Makefile,v 1.341.2.3 2008/05/10 18:43:57 rwatson Exp $ # # The user-driven targets are: # @@ -57,7 +57,7 @@ # 6. `mergemaster -p' # 7. `make installworld' # 8. `make delete-old' -# 9. `mergemaster' +# 9. `mergemaster' (you may wish to use -U or -ai). # 10. `reboot' # 11. `make delete-old-libs' (in case no 3rd party program uses them anymore) # ==== //depot/projects/dtrace7/src/etc/rc.d/dhclient#4 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/dhclient,v 1.28.2.2 2008/03/12 17:35:38 brooks Exp $ +# $FreeBSD: src/etc/rc.d/dhclient,v 1.28.2.3 2008/05/15 01:53:09 brooks Exp $ # # PROVIDE: dhclient @@ -26,6 +26,10 @@ if [ -n "$pids" ]; then exit 0 fi + elif [ -e /var/run/dhclient.pid ]; then + if [ -n "`pgrep -F /var/run/dhclient.pid`" ]; then + exit 0 + fi fi fi ==== //depot/projects/dtrace7/src/etc/rc.d/hostid#2 (text+ko) ==== @@ -24,7 +24,7 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # -# $FreeBSD: src/etc/rc.d/hostid,v 1.7 2007/05/22 13:53:59 rse Exp $ +# $FreeBSD: src/etc/rc.d/hostid,v 1.7.2.1 2008/05/20 15:27:24 mtm Exp $ # # PROVIDE: hostid @@ -45,7 +45,7 @@ { uuid=$1 # Generate hostid based on hostuuid - take first four bytes from md5(uuid). - id=`echo -n $uuid | md5` + id=`echo -n $uuid | /sbin/md5` id="0x${id%????????????????????????}" # Set both kern.hostuuid and kern.hostid. echo "Setting hostuuid: ${uuid}." ==== //depot/projects/dtrace7/src/etc/rc.d/ntpd#2 (text+ko) ==== @@ -1,6 +1,6 @@ #!/bin/sh # -# $FreeBSD: src/etc/rc.d/ntpd,v 1.13 2006/04/18 15:02:24 flz Exp $ +# $FreeBSD: src/etc/rc.d/ntpd,v 1.13.2.1 2008/05/19 09:20:04 flz Exp $ # # PROVIDE: ntpd @@ -18,8 +18,6 @@ load_rc_config $name -required_files="${ntpd_config}" - ntpd_precmd() { rc_flags="-c ${ntpd_config} ${ntpd_flags}" ==== //depot/projects/dtrace7/src/etc/rc.subr#2 (text+ko) ==== @@ -1,5 +1,5 @@ # $NetBSD: rc.subr,v 1.67 2006/10/07 11:25:15 elad Exp $ -# $FreeBSD: src/etc/rc.subr,v 1.77 2007/10/09 07:20:44 dougb Exp $ +# $FreeBSD: src/etc/rc.subr,v 1.77.2.1 2008/05/12 07:29:03 mtm Exp $ # # Copyright (c) 1997-2004 The NetBSD Foundation, Inc. # All rights reserved. @@ -171,11 +171,15 @@ { local always - if [ -n "$1" ] && checkyesno $1; then + case $1 in + # "yes", "true", "on", or "1" + [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) always=true - else + ;; + *) always=false - fi + ;; + esac if [ "$autoboot" = yes -o "$always" = true ]; then echo "ERROR: ABORTING BOOT (sending SIGTERM to parent)!" kill -TERM ${RC_PID} ==== //depot/projects/dtrace7/src/gnu/usr.bin/man/TODO#2 (text+ko) ==== @@ -1,3 +1,5 @@ +$FreeBSD: src/gnu/usr.bin/man/TODO,v 1.1.1.1.58.1 2008/05/22 07:30:32 ru Exp $ + Things that would be nice but aren't really necessary: 0. Update the documentation. @@ -105,7 +107,7 @@ file names used by Motif. Maybe there's a better way to handle this? -15. Add ability to run man on a local file +XX Add ability to run man on a local file 16. Handle per-tree tmac macros ==== //depot/projects/dtrace7/src/gnu/usr.bin/man/lib/util.c#2 (text+ko) ==== @@ -14,6 +14,8 @@ * Austin, Texas 78712 */ +/* $FreeBSD: src/gnu/usr.bin/man/lib/util.c,v 1.8.44.1 2008/05/22 07:30:32 ru Exp $ */ + #include #include #include @@ -120,6 +122,24 @@ } /* + * Is path a regular file? + */ +int +is_file (path) + char *path; +{ + struct stat sb; + register int status; + + status = stat (path, &sb); + + if (status != 0) + return -1; + + return ((sb.st_mode & S_IFREG) == S_IFREG); +} + +/* * Attempt a system () call. Return 1 for success and 0 for failure * (handy for counting successes :-). */ ==== //depot/projects/dtrace7/src/gnu/usr.bin/man/man/man.c#2 (text+ko) ==== @@ -16,7 +16,7 @@ #ifndef lint static const char rcsid[] = - "$FreeBSD: src/gnu/usr.bin/man/man/man.c,v 1.65 2007/09/25 21:41:22 edwin Exp $"; + "$FreeBSD: src/gnu/usr.bin/man/man/man.c,v 1.65.2.1 2008/05/22 07:30:32 ru Exp $"; #endif /* not lint */ #define MAN_MAIN @@ -30,6 +30,7 @@ #ifdef __FreeBSD__ #include #include +#include #endif #include #include @@ -70,6 +71,7 @@ extern char **glob_filename (); extern int is_newer (); extern int is_directory (); +extern int is_file (); extern int do_system_command (); char *prognam; @@ -87,6 +89,7 @@ static int whatis; static int findall; static int print_where; +static char *ultimate_source (); #ifdef __FreeBSD__ static char *locale, *locale_opts, *locale_nroff, *locale_codeset; @@ -201,6 +204,11 @@ do_whatis (nextarg); status = (status ? 0 : 1); /* reverts status, see below */ } + else if (strchr (nextarg, '/') != NULL && is_file (nextarg) == 1) + { + format_and_display (NULL, ultimate_source(nextarg, dirname(nextarg)), + NULL); + } else { status = man (nextarg); @@ -825,7 +833,7 @@ return YCAT; #endif /* YCAT */ #ifdef ZCAT - if (*end == 'Z' || !strcmp(end, "gz")) + if (*end == 'Z' || !strcmp(end, "gz") || !strcmp(end, "bz2")) return ZCAT; #endif /* ZCAT */ return NULL; @@ -1409,13 +1417,15 @@ if (access (man_file, R_OK) != 0) return 0; - if (troff) + if (troff || path == NULL) { roff_command = make_roff_command (man_file); if (roff_command == NULL) return 0; + if (troff) + snprintf (command, sizeof(command), "(cd %s ; %s)", path, roff_command); else - snprintf (command, sizeof(command), "(cd %s ; %s)", path, roff_command); + snprintf (command, sizeof(command), "%s | %s", roff_command, pager); found = do_system_command (command); } ==== //depot/projects/dtrace7/src/include/readpassphrase.h#2 (text+ko) ==== @@ -1,5 +1,5 @@ /* $OpenBSD: /usr/local/www/cvsroot/OpenBSD/src/include/readpassphrase.h,v 1.2 2002/02/16 21:27:17 millert Exp $ */ -/* $FreeBSD: src/include/readpassphrase.h,v 1.2 2002/03/08 20:52:52 green Exp $ */ +/* $FreeBSD: src/include/readpassphrase.h,v 1.2.28.1 2008/05/16 01:06:01 scf Exp $ */ /* * Copyright (c) 2000 Todd C. Miller @@ -39,6 +39,12 @@ #define RPP_SEVENBIT 0x10 /* Strip the high bit from input. */ #include +#include + +#ifndef _SIZE_T_DECLARED +typedef __size_t size_t; +#define _SIZE_T_DECLARED +#endif __BEGIN_DECLS char * readpassphrase(const char *, char *, size_t, int); ==== //depot/projects/dtrace7/src/lib/libarchive/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libarchive/Makefile,v 1.77.2.1 2008/02/11 00:31:06 kientzle Exp $ +# $FreeBSD: src/lib/libarchive/Makefile,v 1.77.2.2 2008/05/21 04:14:10 kientzle Exp $ LIB= archive DPADD= ${LIBBZ2} ${LIBZ} @@ -81,6 +81,7 @@ archive_write_open_filename.c \ archive_write_open_memory.c \ archive_write_set_compression_bzip2.c \ + archive_write_set_compression_compress.c \ archive_write_set_compression_gzip.c \ archive_write_set_compression_none.c \ archive_write_set_compression_program.c \ @@ -120,6 +121,8 @@ MLINKS+= archive_entry.3 archive_entry_copy_gname.3 MLINKS+= archive_entry.3 archive_entry_copy_gname_w.3 MLINKS+= archive_entry.3 archive_entry_copy_hardlink_w.3 +MLINKS+= archive_entry.3 archive_entry_copy_link.3 +MLINKS+= archive_entry.3 archive_entry_copy_link_w.3 MLINKS+= archive_entry.3 archive_entry_copy_pathname_w.3 MLINKS+= archive_entry.3 archive_entry_copy_stat.3 MLINKS+= archive_entry.3 archive_entry_copy_symlink_w.3 @@ -211,6 +214,7 @@ MLINKS+= archive_util.3 archive_format.3 MLINKS+= archive_util.3 archive_format_name.3 MLINKS+= archive_util.3 archive_set_error.3 +MLINKS+= archive_write.3 archive_write_close.3 MLINKS+= archive_write.3 archive_write_data.3 MLINKS+= archive_write.3 archive_write_finish.3 MLINKS+= archive_write.3 archive_write_finish_entry.3 ==== //depot/projects/dtrace7/src/lib/libarchive/archive.h.in#3 (text+ko) ==== @@ -22,18 +22,12 @@ * (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.46.2.1 2008/02/11 00:31:06 kientzle Exp $ + * $FreeBSD: src/lib/libarchive/archive.h.in,v 1.46.2.2 2008/05/21 04:13:43 kientzle Exp $ */ #ifndef ARCHIVE_H_INCLUDED #define ARCHIVE_H_INCLUDED -/* - * This header file corresponds to: - * Library version @ARCHIVE_VERSION@ - * Shared library version @SHLIB_MAJOR@ - */ - #include /* Linux requires this for off_t */ @ARCHIVE_H_INCLUDE_INTTYPES_H@ #include /* For FILE * */ @@ -51,58 +45,59 @@ #endif /* - * Each of the version identifiers comes as a macro and a function. + * The version number is provided as both a macro and a function. * The macro identifies the installed header; the function identifies * the library version (which may not be the same if you're using a * dynamically-linked version of the library). */ /* - * Textual name/version of the library, useful for version displays. - */ -#define ARCHIVE_LIBRARY_VERSION "libarchive @LIBARCHIVE_VERSION_STRING@" -const char * archive_version(void); - -/* - * The "version stamp" is a single integer that makes it easy to check - * the exact version: for version a.b.c, the version stamp is - * printf("%d%03d%03d",a,b,c). For example, version 2.12.108 has - * version stamp 2012108. + * The version number is expressed as a single integer that makes it + * easy to compare versions at build time: for version a.b.c, the + * version number is printf("%d%03d%03d",a,b,c). For example, if you + * know your application requires version 2.12.108 or later, you can + * assert that ARCHIVE_VERSION >= 2012108. * - * This was introduced with libarchive 1.9.0 in the libarchive 1.x family - * and libarchive 2.2.4 in the libarchive 2.x family. The following - * may be useful if you really want to do feature detection for earlier - * libarchive versions (which defined API_VERSION and API_FEATURE): + * This single-number format was introduced with libarchive 1.9.0 in + * the libarchive 1.x family and libarchive 2.2.4 in the libarchive + * 2.x family. The following may be useful if you really want to do + * feature detection for earlier libarchive versions (which defined + * ARCHIVE_API_VERSION and ARCHIVE_API_FEATURE instead): * - * #ifndef ARCHIVE_VERSION_STAMP - * #define ARCHIVE_VERSION_STAMP \ + * #ifndef ARCHIVE_VERSION_NUMBER + * #define ARCHIVE_VERSION_NUMBER \ * (ARCHIVE_API_VERSION * 1000000 + ARCHIVE_API_FEATURE * 1000) * #endif */ -#define ARCHIVE_VERSION_STAMP @LIBARCHIVE_VERSION@ -int archive_version_stamp(void); +#define ARCHIVE_VERSION_NUMBER @LIBARCHIVE_VERSION@ +int archive_version_number(void); /* - * Major version number: If ARCHIVE_API_VERSION != - * archive_api_version(), then the library you were linked with is - * using an incompatible API to the one you were compiled with. This - * is almost certainly a fatal problem. - * This is deprecated and will be removed; use ARCHIVE_VERSION_STAMP - * instead. + * Textual name/version of the library, useful for version displays. */ -#define ARCHIVE_API_VERSION (ARCHIVE_VERSION_STAMP / 1000000) -int archive_api_version(void); +const char * archive_version_string(void); +#if ARCHIVE_VERSION_NUMBER < 3000000 /* - * Minor version number. This is deprecated and will be removed. - * Use ARCHIVE_VERSION_STAMP to adapt to libarchive API variations. + * Deprecated; these are older names that will be removed in favor of + * the simpler definitions above. */ -#define ARCHIVE_API_FEATURE ((ARCHIVE_VERSION_STAMP / 1000) % 1000) +#define ARCHIVE_VERSION_STAMP ARCHIVE_VERSION_NUMBER +int archive_version_stamp(void); +#define ARCHIVE_LIBRARY_VERSION "libarchive @LIBARCHIVE_VERSION_STRING@" +const char * archive_version(void); +#define ARCHIVE_API_VERSION (ARCHIVE_VERSION_NUMBER / 1000000) +int archive_api_version(void); +#define ARCHIVE_API_FEATURE ((ARCHIVE_VERSION_NUMBER / 1000) % 1000) int archive_api_feature(void); +#endif - +#if ARCHIVE_VERSION_NUMBER < 3000000 +/* This should never have been here in the first place. */ +/* Legacy of old tar assumptions, will be removed in libarchive 3.0. */ #define ARCHIVE_BYTES_PER_RECORD 512 #define ARCHIVE_DEFAULT_BYTES_PER_BLOCK 10240 +#endif /* Declare our basic types. */ struct archive; @@ -119,6 +114,7 @@ #define ARCHIVE_WARN (-20) /* Partial success. */ /* For example, if write_header "fails", then you can't push data. */ #define ARCHIVE_FAILED (-25) /* Current operation cannot complete. */ +/* But if write_header is "fatal," then this archive is dead and useless. */ #define ARCHIVE_FATAL (-30) /* No more operations are possible. */ /* @@ -146,7 +142,7 @@ typedef ssize_t archive_read_callback(struct archive *, void *_client_data, const void **_buffer); /* Skips at most request bytes from archive and returns the skipped amount */ -#if ARCHIVE_API_VERSION < 2 +#if ARCHIVE_VERSION_NUMBER < 2000000 typedef ssize_t archive_skip_callback(struct archive *, void *_client_data, size_t request); #else @@ -370,7 +366,7 @@ 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 +#if ARCHIVE_VERSION_NUMBER >= 2000000 int archive_read_finish(struct archive *); #else /* Temporarily allow library to compile with either 1.x or 2.0 API. */ @@ -407,6 +403,7 @@ int archive_write_set_skip_file(struct archive *, dev_t, ino_t); int archive_write_set_compression_bzip2(struct archive *); +int archive_write_set_compression_compress(struct archive *); int archive_write_set_compression_gzip(struct archive *); int archive_write_set_compression_none(struct archive *); int archive_write_set_compression_program(struct archive *, @@ -445,7 +442,7 @@ */ int archive_write_header(struct archive *, struct archive_entry *); -#if ARCHIVE_API_VERSION > 1 +#if ARCHIVE_VERSION_NUMBER >= 2000000 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. */ @@ -455,7 +452,7 @@ 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 +#if ARCHIVE_VERSION_NUMBER >= 2000000 int archive_write_finish(struct archive *); #else /* Temporarily allow library to compile with either 1.x or 2.0 API. */ ==== //depot/projects/dtrace7/src/lib/libarchive/archive_entry.3#2 (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.15 2007/07/15 19:10:34 kientzle Exp $ +.\" $FreeBSD: src/lib/libarchive/archive_entry.3,v 1.15.2.1 2008/05/21 04:12:57 kientzle Exp $ .\" .Dd December 15, 2003 .Dt archive_entry 3 @@ -45,6 +45,8 @@ .Nm archive_entry_copy_gname_w , .Nm archive_entry_copy_hardlink , .Nm archive_entry_copy_hardlink_w , +.Nm archive_entry_copy_link , +.Nm archive_entry_copy_link_w , .Nm archive_entry_copy_pathname_w , .Nm archive_entry_copy_stat , .Nm archive_entry_copy_symlink , @@ -101,17 +103,47 @@ .Sh SYNOPSIS .In archive_entry.h .Ft void -.Fn archive_entry_acl_add_entry "struct archive_entry *" "int type" "int permset" "int tag" "int qual" "const char *name" +.Fo archive_entry_acl_add_entry +.Fa "struct archive_entry *" +.Fa "int type" +.Fa "int permset" +.Fa "int tag" +.Fa "int qual" +.Fa "const char *name" +.Fc .Ft void -.Fn archive_entry_acl_add_entry_w "struct archive_entry *" "int type" "int permset" "int tag" "int qual" "const wchar_t *name" +.Fo archive_entry_acl_add_entry_w +.Fa "struct archive_entry *" +.Fa "int type" +.Fa "int permset" +.Fa "int tag" +.Fa "int qual" +.Fa "const wchar_t *name" +.Fc .Ft void .Fn archive_entry_acl_clear "struct archive_entry *" .Ft int .Fn archive_entry_acl_count "struct archive_entry *" "int type" .Ft int -.Fn archive_entry_acl_next "struct archive_entry *" "int want_type" "int *type" "int *permset" "int *tag" "int *qual" "const char **name" +.Fo archive_entry_acl_next +.Fa "struct archive_entry *" +.Fa "int want_type" +.Fa "int *type" +.Fa "int *permset" +.Fa "int *tag" +.Fa "int *qual" +.Fa "const char **name" +.Fc .Ft int -.Fn archive_entry_acl_next_w "struct archive_entry *" "int want_type" "int *type" "int *permset" "int *tag" "int *qual" "const wchar_t **name" +.Fo archive_entry_acl_next_w +.Fa "struct archive_entry *" +.Fa "int want_type" +.Fa "int *type" +.Fa "int *permset" +.Fa "int *tag" +.Fa "int *qual" +.Fa "const wchar_t **name" +.Fc .Ft int .Fn archive_entry_acl_reset "struct archive_entry *" "int want_type" .Ft const wchar_t * @@ -155,7 +187,11 @@ .Ft mode_t .Fn archive_entry_filetype "struct archive_entry *" .Ft void -.Fn archive_entry_fflags "struct archive_entry *" "unsigned long *set" "unsigned long *clear" +.Fo archive_entry_fflags +.Fa "struct archive_entry *" +.Fa "unsigned long *set" +.Fa "unsigned long *clear" +.Fc .Ft const char * .Fn archive_entry_fflags_text "struct archive_entry *" .Ft void @@ -195,7 +231,11 @@ .Ft void .Fn archive_entry_set_filetype "struct archive_entry *" "unsigned int" .Ft void -.Fn archive_entry_set_fflags "struct archive_entry *" "unsigned long set" "unsigned long clear" +.Fo archive_entry_set_fflags +.Fa "struct archive_entry *" +.Fa "unsigned long set" +.Fa "unsigned long clear" +.Fc .Ft void .Fn archive_entry_set_gid "struct archive_entry *" "gid_t" .Ft void ==== //depot/projects/dtrace7/src/lib/libarchive/archive_entry.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_entry.c,v 1.44.2.1 2008/02/11 00:31:06 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_entry.c,v 1.44.2.2 2008/05/21 04:12:29 kientzle Exp $"); #ifdef HAVE_SYS_STAT_H #include @@ -207,6 +207,8 @@ static const wchar_t * aes_get_wcs(struct aes *aes) { + int r; + if (aes->aes_wcs == NULL && aes->aes_mbs == NULL) return NULL; if (aes->aes_wcs == NULL && aes->aes_mbs != NULL) { @@ -221,8 +223,13 @@ aes->aes_wcs = aes->aes_wcs_alloc; if (aes->aes_wcs == NULL) __archive_errx(1, "No memory for aes_get_wcs()"); - mbstowcs(aes->aes_wcs_alloc, aes->aes_mbs, wcs_length); + r = mbstowcs(aes->aes_wcs_alloc, aes->aes_mbs, wcs_length); aes->aes_wcs_alloc[wcs_length] = 0; + if (r == -1) { + /* Conversion failed, don't lie to our clients. */ + free(aes->aes_wcs_alloc); + aes->aes_wcs = aes->aes_wcs_alloc = NULL; + } } return (aes->aes_wcs); } @@ -307,6 +314,8 @@ struct archive_entry * archive_entry_clear(struct archive_entry *entry) { + if (entry == NULL) + return (NULL); aes_clean(&entry->ae_fflags_text); aes_clean(&entry->ae_gname); aes_clean(&entry->ae_hardlink); @@ -752,6 +761,28 @@ aes_set_mbs(&entry->ae_hardlink, target); } +/* Set symlink if symlink is already set, else set hardlink. */ +void +archive_entry_copy_link(struct archive_entry *entry, const char *target) +{ + if (entry->ae_symlink.aes_mbs != NULL || + entry->ae_symlink.aes_wcs != NULL) + aes_copy_mbs(&entry->ae_symlink, target); + else + aes_copy_mbs(&entry->ae_hardlink, target); +} + +/* Set symlink if symlink is already set, else set hardlink. */ +void +archive_entry_copy_link_w(struct archive_entry *entry, const wchar_t *target) +{ + if (entry->ae_symlink.aes_mbs != NULL || + entry->ae_symlink.aes_wcs != NULL) + aes_copy_wcs(&entry->ae_symlink, target); + else + aes_copy_wcs(&entry->ae_hardlink, target); +} + void archive_entry_set_mode(struct archive_entry *entry, mode_t m) { @@ -1124,6 +1155,11 @@ entry->acl_p = entry->acl_p->next; if (entry->acl_p == NULL) { entry->acl_state = 0; + *type = 0; + *permset = 0; + *tag = 0; + *id = -1; + *name = NULL; return (ARCHIVE_EOF); /* End of ACL entries. */ } *type = entry->acl_p->type; @@ -1143,7 +1179,7 @@ archive_entry_acl_text_w(struct archive_entry *entry, int flags) { int count; - int length; + size_t length; const wchar_t *wname; const wchar_t *prefix; wchar_t separator; @@ -1505,7 +1541,7 @@ return (ARCHIVE_OK); } else { *name = NULL; - *name = NULL; + *value = NULL; *size = (size_t)0; return (ARCHIVE_WARN); } ==== //depot/projects/dtrace7/src/lib/libarchive/archive_entry.h#3 (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_entry.h,v 1.23.2.1 2008/02/11 00:31:06 kientzle Exp $ + * $FreeBSD: src/lib/libarchive/archive_entry.h,v 1.23.2.2 2008/05/21 04:12:29 kientzle Exp $ */ #ifndef ARCHIVE_ENTRY_H_INCLUDED @@ -57,7 +57,25 @@ struct archive_entry; /* - * File-type constants. These are returned from archive_entry_filetype(). + * File-type constants. These are returned from archive_entry_filetype() + * and passed to archive_entry_set_filetype(). + * + * These values match S_XXX defines on every platform I've checked, + * including Windows, AIX, Linux, Solaris, and BSD. They're + * (re)defined here because platforms generally don't define the ones + * they don't support. For example, Windows doesn't define S_IFLNK or + * S_IFBLK. Instead of having a mass of conditional logic and system + * checks to define any S_XXX values that aren't supported locally, + * I've just defined a new set of such constants so that + * libarchive-based applications can manipulate and identify archive + * entries properly even if the hosting platform can't store them on + * disk. + * + * These values are also used directly within some portable formats, + * such as cpio. If you find a platform that varies from these, the + * correct solution is to leave these alone and translate from these + * portable values to platform-native values when entries are read from + * or written to disk. */ #define AE_IFMT 0170000 #define AE_IFREG 0100000 @@ -91,7 +109,8 @@ dev_t archive_entry_devminor(struct archive_entry *); mode_t archive_entry_filetype(struct archive_entry *); void archive_entry_fflags(struct archive_entry *, - unsigned long *set, unsigned long *clear); + unsigned long * /* set */, + unsigned long * /* clear */); const char *archive_entry_fflags_text(struct archive_entry *); gid_t archive_entry_gid(struct archive_entry *); const char *archive_entry_gname(struct archive_entry *); @@ -130,7 +149,7 @@ void archive_entry_set_devminor(struct archive_entry *, dev_t); void archive_entry_set_filetype(struct archive_entry *, unsigned int); void archive_entry_set_fflags(struct archive_entry *, - unsigned long set, unsigned long clear); + unsigned long /* set */, unsigned long /* clear */); /* Returns pointer to start of first invalid token, or NULL if none. */ /* Note that all recognized tokens are processed, regardless. */ const wchar_t *archive_entry_copy_fflags_text_w(struct archive_entry *, @@ -144,6 +163,8 @@ void archive_entry_copy_hardlink_w(struct archive_entry *, const wchar_t *); void archive_entry_set_ino(struct archive_entry *, unsigned long); void archive_entry_set_link(struct archive_entry *, const char *); +void archive_entry_copy_link(struct archive_entry *, const char *); +void archive_entry_copy_link_w(struct archive_entry *, const wchar_t *); void archive_entry_set_mode(struct archive_entry *, mode_t); void archive_entry_set_mtime(struct archive_entry *, time_t, long); void archive_entry_set_nlink(struct archive_entry *, unsigned int); @@ -182,6 +203,13 @@ * = there are many different ACL text formats * = would like to be able to read/convert archives containing ACLs * on platforms that lack ACL libraries + * + * This last point, in particular, forces me to implement a reasonably + * complete set of ACL support routines. + * + * TODO: Extend this to support NFSv4/NTFS permissions. That should + * allow full ACL support on Mac OS, in particular, which uses + * POSIX.1e-style interfaces to manipulate NFSv4/NTFS permissions. */ /* @@ -216,21 +244,24 @@ */ void archive_entry_acl_clear(struct archive_entry *); void archive_entry_acl_add_entry(struct archive_entry *, - int type, int permset, int tag, int qual, const char *name); + int /* type */, int /* permset */, int /* tag */, + int /* qual */, const char * /* name */); void archive_entry_acl_add_entry_w(struct archive_entry *, - int type, int permset, int tag, int qual, const wchar_t *name); + int /* type */, int /* permset */, int /* tag */, + int /* qual */, const wchar_t * /* name */); /* * To retrieve the ACL, first "reset", then repeatedly ask for the * "next" entry. The want_type parameter allows you to request only * access entries or only default entries. */ -int archive_entry_acl_reset(struct archive_entry *, int want_type); -int archive_entry_acl_next(struct archive_entry *, int want_type, - int *type, int *permset, int *tag, int *qual, const char **name); -int archive_entry_acl_next_w(struct archive_entry *, int want_type, - int *type, int *permset, int *tag, int *qual, - const wchar_t **name); +int archive_entry_acl_reset(struct archive_entry *, int /* want_type */); +int archive_entry_acl_next(struct archive_entry *, int /* want_type */, + int * /* type */, int * /* permset */, int * /* tag */, + int * /* qual */, const char ** /* name */); +int archive_entry_acl_next_w(struct archive_entry *, int /* want_type */, + int * /* type */, int * /* permset */, int * /* tag */, + int * /* qual */, const wchar_t ** /* name */); /* * Construct a text-format ACL. The flags argument is a bitmask that @@ -245,10 +276,11 @@ */ #define ARCHIVE_ENTRY_ACL_STYLE_EXTRA_ID 1024 #define ARCHIVE_ENTRY_ACL_STYLE_MARK_DEFAULT 2048 -const wchar_t *archive_entry_acl_text_w(struct archive_entry *, int flags); +const wchar_t *archive_entry_acl_text_w(struct archive_entry *, + int /* flags */); /* Return a count of entries matching 'want_type' */ -int archive_entry_acl_count(struct archive_entry *, int want_type); +int archive_entry_acl_count(struct archive_entry *, int /* want_type */); /* * Private ACL parser. This is private because it handles some @@ -259,9 +291,12 @@ * this interface are likely to be surprised when it changes. * * You were warned! + * + * TODO: Move this declaration out of the public header and into + * a private header. Warnings above are silly. */ int __archive_entry_acl_parse_w(struct archive_entry *, - const wchar_t *, int type); + const wchar_t *, int /* type */); /* * extended attributes @@ -269,7 +304,8 @@ void archive_entry_xattr_clear(struct archive_entry *); void archive_entry_xattr_add_entry(struct archive_entry *, - const char *name, const void *value, size_t size); + const char * /* name */, const void * /* value */, + size_t /* size */); /* * To retrieve the xattr list, first "reset", then repeatedly ask for the @@ -279,7 +315,7 @@ int archive_entry_xattr_count(struct archive_entry *); int archive_entry_xattr_reset(struct archive_entry *); int archive_entry_xattr_next(struct archive_entry *, - const char **name, const void **value, size_t *); + const char ** /* name */, const void ** /* value */, size_t *); /* * Utility to detect hardlinks. ==== //depot/projects/dtrace7/src/lib/libarchive/archive_platform.h#3 (text+ko) ==== >>> TRUNCATED FOR MAIL (1000 lines) <<<