--- a/components/libpcap/Makefile Fri Jan 17 12:16:54 2014 -0800
+++ b/components/libpcap/Makefile Fri Jan 17 12:16:54 2014 -0800
@@ -18,17 +18,17 @@
#
# CDDL HEADER END
#
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
#
include ../../make-rules/shared-macros.mk
COMPONENT_NAME= libpcap
-COMPONENT_VERSION= 1.1.1
+COMPONENT_VERSION= 1.5.1
COMPONENT_PROJECT_URL= http://www.tcpdump.org/
COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH= \
- sha256:508cca15547e55d1318498b838456a21770c450beb2dc7d7d4a96d90816e5a85
+ sha256:259db4fe1e9f0b6b9c43a057ec5916dec7d0a821b00d6d6c4dff7db2445fa7e4
COMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)release/$(COMPONENT_ARCHIVE)
COMPONENT_BUGDB= library/libpcap
@@ -42,6 +42,9 @@
#
CC += $(CC_BITS)
CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS) -DHAVE_CONFIG_H"
+CONFIGURE_OPTIONS += --disable-dbus
+
+ASLR_MODE = $(ASLR_NOT_APPLICABLE)
# common targets
build: $(BUILD_32_and_64)
--- a/components/libpcap/libpcap.p5m Fri Jan 17 12:16:54 2014 -0800
+++ b/components/libpcap/libpcap.p5m Fri Jan 17 12:16:54 2014 -0800
@@ -18,7 +18,7 @@
#
# CDDL HEADER END
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
#
<transform file path=usr.*/man/.+ -> default mangler.man.stability uncommitted>
# The libpcap man pages should go in section 3pcap instead of
@@ -27,28 +27,19 @@
set name=pkg.fmri \
value=pkg:/system/library/libpcap@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
set name=pkg.summary value="Packet capture library"
+set name=pkg.description \
+ value="The library provides a portable framework for low-level network monitoring and user-level packet capture. Applications include network statistics collection, security monitoring, network debugging, etc."
set name=com.oracle.info.description value="the libpcap package capture library"
+set name=com.oracle.info.tpno value=15968
set name=info.classification \
value=org.opensolaris.category.2008:System/Libraries
set name=info.source-url value=$(COMPONENT_ARCHIVE_URL)
set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
-set name=org.opensolaris.arc-caseid \
- value=PSARC/2008/288
+set name=org.opensolaris.arc-caseid value=PSARC/2008/288
set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
#
-dir path=usr
-dir path=usr/include
-dir path=usr/lib
-dir path=usr/lib/$(MACH64)
-dir path=usr/share
-dir path=usr/share/man
-dir path=usr/share/man/man1
-dir path=usr/share/man/man3pcap
-dir path=usr/share/man/man4
-dir path=usr/share/man/man5
-#
+file path=usr/bin/$(MACH64)/pcap-config
file path=usr/bin/pcap-config
-file path=usr/bin/$(MACH64)/pcap-config
file path=usr/include/pcap-bpf.h
file path=usr/include/pcap-namedb.h
file path=usr/include/pcap.h
@@ -60,8 +51,12 @@
file path=usr/include/pcap/sll.h
file path=usr/include/pcap/usb.h
file path=usr/include/pcap/vlan.h
-file path=usr/lib/$(MACH64)/libpcap.so.1.1.1
-file path=usr/lib/libpcap.so.1.1.1
+link path=usr/lib/$(MACH64)/libpcap.so target=libpcap.so.1
+link path=usr/lib/$(MACH64)/libpcap.so.1 target=libpcap.so.1.5.1
+file path=usr/lib/$(MACH64)/libpcap.so.1.5.1
+link path=usr/lib/libpcap.so target=libpcap.so.1
+link path=usr/lib/libpcap.so.1 target=libpcap.so.1.5.1
+file path=usr/lib/libpcap.so.1.5.1
file path=usr/share/man/man1/pcap-config.1
file path=usr/share/man/man3pcap/pcap.3pcap
file path=usr/share/man/man3pcap/pcap_activate.3pcap
@@ -72,40 +67,70 @@
file path=usr/share/man/man3pcap/pcap_create.3pcap
file path=usr/share/man/man3pcap/pcap_datalink.3pcap
file path=usr/share/man/man3pcap/pcap_datalink_name_to_val.3pcap
+link path=usr/share/man/man3pcap/pcap_datalink_val_to_description.3pcap \
+ target=pcap_datalink_val_to_name.3pcap
file path=usr/share/man/man3pcap/pcap_datalink_val_to_name.3pcap
+link path=usr/share/man/man3pcap/pcap_dispatch.3pcap target=pcap_loop.3pcap
file path=usr/share/man/man3pcap/pcap_dump.3pcap
file path=usr/share/man/man3pcap/pcap_dump_close.3pcap
file path=usr/share/man/man3pcap/pcap_dump_file.3pcap
file path=usr/share/man/man3pcap/pcap_dump_flush.3pcap
+link path=usr/share/man/man3pcap/pcap_dump_fopen.3pcap \
+ target=pcap_dump_open.3pcap
file path=usr/share/man/man3pcap/pcap_dump_ftell.3pcap
file path=usr/share/man/man3pcap/pcap_dump_open.3pcap
file path=usr/share/man/man3pcap/pcap_file.3pcap
file path=usr/share/man/man3pcap/pcap_fileno.3pcap
file path=usr/share/man/man3pcap/pcap_findalldevs.3pcap
-file path=usr/share/man/man3pcap/pcap_fopen_offline.3pcap
-file path=usr/share/man/man3pcap/pcap_free_datalinks.3pcap
-file path=usr/share/man/man3pcap/pcap_freealldevs.3pcap
+link path=usr/share/man/man3pcap/pcap_fopen_offline.3pcap \
+ target=pcap_open_offline.3pcap
+link \
+ path=usr/share/man/man3pcap/pcap_fopen_offline_with_tstamp_precision.3pcap \
+ target=pcap_open_offline.3pcap
+link path=usr/share/man/man3pcap/pcap_free_datalinks.3pcap \
+ target=pcap_list_datalinks.3pcap
+link path=usr/share/man/man3pcap/pcap_free_tstamp_types.3pcap \
+ target=pcap_list_tstamp_types.3pcap
+link path=usr/share/man/man3pcap/pcap_freealldevs.3pcap \
+ target=pcap_findalldevs.3pcap
file path=usr/share/man/man3pcap/pcap_freecode.3pcap
file path=usr/share/man/man3pcap/pcap_get_selectable_fd.3pcap
+file path=usr/share/man/man3pcap/pcap_get_tstamp_precision.3pcap
+file path=usr/share/man/man3pcap/pcap_geterr.3pcap
+link path=usr/share/man/man3pcap/pcap_getnonblock.3pcap \
+ target=pcap_setnonblock.3pcap
file path=usr/share/man/man3pcap/pcap_inject.3pcap
file path=usr/share/man/man3pcap/pcap_is_swapped.3pcap
file path=usr/share/man/man3pcap/pcap_lib_version.3pcap
file path=usr/share/man/man3pcap/pcap_list_datalinks.3pcap
+file path=usr/share/man/man3pcap/pcap_list_tstamp_types.3pcap
file path=usr/share/man/man3pcap/pcap_lookupdev.3pcap
file path=usr/share/man/man3pcap/pcap_lookupnet.3pcap
file path=usr/share/man/man3pcap/pcap_loop.3pcap
file path=usr/share/man/man3pcap/pcap_major_version.3pcap
-file path=usr/share/man/man3pcap/pcap_next.3pcap
+link path=usr/share/man/man3pcap/pcap_minor_version.3pcap \
+ target=pcap_major_version.3pcap
+link path=usr/share/man/man3pcap/pcap_next.3pcap target=pcap_next_ex.3pcap
+file path=usr/share/man/man3pcap/pcap_next_ex.3pcap
file path=usr/share/man/man3pcap/pcap_offline_filter.3pcap
file path=usr/share/man/man3pcap/pcap_open_dead.3pcap
+link path=usr/share/man/man3pcap/pcap_open_dead_with_tstamp_precision.3pcap \
+ target=pcap_open_dead.3pcap
file path=usr/share/man/man3pcap/pcap_open_live.3pcap
-file path=usr/share/man/man3pcap/pcap_perror.3pcap
+file path=usr/share/man/man3pcap/pcap_open_offline.3pcap
+link path=usr/share/man/man3pcap/pcap_open_offline_with_tstamp_precision.3pcap \
+ target=pcap_open_offline.3pcap
+link path=usr/share/man/man3pcap/pcap_perror.3pcap target=pcap_geterr.3pcap
+link path=usr/share/man/man3pcap/pcap_sendpacket.3pcap target=pcap_inject.3pcap
file path=usr/share/man/man3pcap/pcap_set_buffer_size.3pcap
file path=usr/share/man/man3pcap/pcap_set_datalink.3pcap
+file path=usr/share/man/man3pcap/pcap_set_immediate_mode.3pcap
file path=usr/share/man/man3pcap/pcap_set_promisc.3pcap
file path=usr/share/man/man3pcap/pcap_set_rfmon.3pcap
file path=usr/share/man/man3pcap/pcap_set_snaplen.3pcap
file path=usr/share/man/man3pcap/pcap_set_timeout.3pcap
+file path=usr/share/man/man3pcap/pcap_set_tstamp_precision.3pcap
+file path=usr/share/man/man3pcap/pcap_set_tstamp_type.3pcap
file path=usr/share/man/man3pcap/pcap_setdirection.3pcap
file path=usr/share/man/man3pcap/pcap_setfilter.3pcap
file path=usr/share/man/man3pcap/pcap_setnonblock.3pcap
@@ -113,29 +138,11 @@
file path=usr/share/man/man3pcap/pcap_stats.3pcap
file path=usr/share/man/man3pcap/pcap_statustostr.3pcap
file path=usr/share/man/man3pcap/pcap_strerror.3pcap
+file path=usr/share/man/man3pcap/pcap_tstamp_type_name_to_val.3pcap
+file path=usr/share/man/man3pcap/pcap_tstamp_type_val_to_name.3pcap
file path=usr/share/man/man4/pcap-savefile.4
file path=usr/share/man/man5/pcap-filter.5
file path=usr/share/man/man5/pcap-linktype.5
+file path=usr/share/man/man5/pcap-tstamp.5
+#
license license.pcap license=BSD
-link path=usr/lib/$(MACH64)/libpcap.so target=./libpcap.so.1.1.1
-link path=usr/lib/$(MACH64)/libpcap.so.1 target=./libpcap.so.1.1.1
-link path=usr/lib/libpcap.so target=./libpcap.so.1.1.1
-link path=usr/lib/libpcap.so.1 target=./libpcap.so.1.1.1
-link path=usr/share/man/man3pcap/pcap_datalink_val_to_description.3pcap \
- target=./pcap_datalink_val_to_name.3pcap
-link path=usr/share/man/man3pcap/pcap_dispatch.3pcap \
- target=./pcap_loop.3pcap
-link path=usr/share/man/man3pcap/pcap_dump_fopen.3pcap \
- target=./pcap_dump_open.3pcap
-link path=usr/share/man/man3pcap/pcap_geterr.3pcap \
- target=./pcap_perror.3pcap
-link path=usr/share/man/man3pcap/pcap_getnonblock.3pcap \
- target=./pcap_setnonblock.3pcap
-link path=usr/share/man/man3pcap/pcap_minor_version.3pcap \
- target=./pcap_major_version.3pcap
-link path=usr/share/man/man3pcap/pcap_next_ex.3pcap \
- target=./pcap_next.3pcap
-link path=usr/share/man/man3pcap/pcap_open_offline.3pcap \
- target=./pcap_fopen_offline.3pcap
-link path=usr/share/man/man3pcap/pcap_sendpacket.3pcap \
- target=./pcap_inject.3pcap
--- a/components/libpcap/patches/10-biocsetlif.patch Fri Jan 17 12:16:54 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
---- libpcap-1.1.1/pcap-bpf.c Thu Mar 11 17:56:54 2010
-+++ patched-libpcap-1.1.1/pcap-bpf.c Tue Jul 12 14:49:10 2011
-@@ -1392,7 +1392,15 @@
- {
- int status = 0;
- int fd;
-+#ifdef LIFNAMSIZ
-+ struct lifreq ifr;
-+ char *ifrname = ifr.lifr_name;
-+ const size_t ifnamsiz = sizeof(ifr.lifr_name);
-+#else
- struct ifreq ifr;
-+ char *ifrname = ifr.ifr_name;
-+ const size_t ifnamsiz = sizeof(ifr.ifr_name);
-+#endif
- struct bpf_version bv;
- #ifdef __APPLE__
- int sockfd;
-@@ -1484,9 +1492,7 @@
- */
- sockfd = socket(AF_INET, SOCK_DGRAM, 0);
- if (sockfd != -1) {
-- strlcpy(ifr.ifr_name,
-- p->opt.source,
-- sizeof(ifr.ifr_name));
-+ strlcpy(ifrname, p->opt.source, ifnamsiz);
- if (ioctl(sockfd, SIOCGIFFLAGS,
- (char *)&ifr) < 0) {
- /*
-@@ -1608,7 +1614,7 @@
- pcap_strerror(errno));
- goto bad;
- }
-- (void)strncpy(ifr.ifr_name, p->opt.source, sizeof(ifr.ifr_name));
-+ (void)strncpy(ifrname, p->opt.source, ifrnamsiz);
- if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0) {
- snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "BIOCSETIF: %s: %s",
- p->opt.source, pcap_strerror(errno));
-@@ -1638,9 +1644,14 @@
- /*
- * Now bind to the device.
- */
-- (void)strncpy(ifr.ifr_name, p->opt.source,
-- sizeof(ifr.ifr_name));
-- if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0) {
-+ (void)strncpy(ifrname, p->opt.source, ifnamsiz);
-+#ifdef BIOCSETLIF
-+ if (ioctl(fd, BIOCSETLIF, (caddr_t)&ifr) < 0)
-+#else
-+
-+ if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) < 0)
-+#endif
-+ {
- status = check_setif_failure(p, errno);
- goto bad;
- }
-@@ -1667,9 +1678,12 @@
- */
- (void) ioctl(fd, BIOCSBLEN, (caddr_t)&v);
-
-- (void)strncpy(ifr.ifr_name, p->opt.source,
-- sizeof(ifr.ifr_name));
-+ (void)strncpy(ifrname, p->opt.source, ifnamsiz);
-+#ifdef BIOCSETLIF
-+ if (ioctl(fd, BIOCSETLIF, (caddr_t)&ifr) >= 0)
-+#else
- if (ioctl(fd, BIOCSETIF, (caddr_t)&ifr) >= 0)
-+#endif
- break; /* that size worked; we're done */
-
- if (errno != ENOBUFS) {
--- a/components/libpcap/patches/20-zonenameprefix.patch Fri Jan 17 12:16:54 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
---- libpcap-1.1.1/pcap-bpf-patch1.c Mon Jul 18 16:40:47 2011
-+++ patched-libpcap-1.1.1/pcap-bpf.c Mon Jul 18 16:38:14 2011
-@@ -155,6 +155,10 @@
-
- #endif /* BIOCGDLTLIST */
-
-+#if defined(sun) && defined(LIFNAMSIZ) && defined(lifr_zoneid)
-+#include <zone.h>
-+#endif
-+
- /*
- * We include the OS's <net/bpf.h>, not our "pcap/bpf.h", so we probably
- * don't get DLT_DOCSIS defined.
-@@ -1393,6 +1397,7 @@
- int status = 0;
- int fd;
- #ifdef LIFNAMSIZ
-+ char *zonesep;
- struct lifreq ifr;
- char *ifrname = ifr.lifr_name;
- const size_t ifnamsiz = sizeof(ifr.lifr_name);
-@@ -1447,6 +1452,29 @@
- goto bad;
- }
-
-+#if defined(LIFNAMSIZ) && defined(ZONENAME_MAX) && defined(lifr_zoneid)
-+ /*
-+ * Check if the given source network device has a '/' separated
-+ * zonename prefix string. The zonename prefixed source device
-+ * can be used by libpcap consumers to capture network traffic
-+ * in non-global zones from the global zone on Solaris 11 and
-+ * above. If the zonename prefix is present then we strip the
-+ * prefix and pass the zone ID as part of lifr_zoneid.
-+ */
-+ if ((zonesep = strchr(p->opt.source, '/')) != NULL) {
-+ char zonename[ZONENAME_MAX];
-+ int znamelen;
-+ char *lnamep;
-+
-+ znamelen = zonesep - p->opt.source;
-+ (void) strlcpy(zonename, p->opt.source, znamelen + 1);
-+ lnamep = strdup(zonesep + 1);
-+ ifr.lifr_zoneid = getzoneidbyname(zonename);
-+ free(p->opt.source);
-+ p->opt.source = lnamep;
-+ }
-+#endif
-+
- p->md.device = strdup(p->opt.source);
- if (p->md.device == NULL) {
- snprintf(p->errbuf, PCAP_ERRBUF_SIZE, "strdup: %s",
--- a/components/libpcap/patches/30-getifaddrs.patch Fri Jan 17 12:16:54 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
---- libpcap-1.1.1/fad-getad.c Mon Apr 5 10:54:05 2010
-+++ patched-libpcap-1.1.1/fad-getad.c Wed Jul 20 14:50:56 2011
-@@ -64,7 +64,7 @@
- # ifdef __Lynx__
- /* LynxOS */
- # include <netpacket/if_packet.h>
--# else
-+# elif defined(linux)
- /* Linux */
- # include <linux/types.h>
- # include <linux/if_packet.h>
--- a/components/libpcap/patches/40-ipoib.patch Fri Jan 17 12:16:54 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-diff -u libpcap-1.1.1/gencode.c libpcap-1.1.1.new/gencode.c
---- libpcap-1.1.1/gencode.c Thu Mar 11 17:56:54 2010
-+++ libpcap-1.1.1.new/gencode.c Thu Jul 14 08:29:39 2011
-@@ -1588,6 +1588,13 @@
- off_nl = 0;
- off_nl_nosnap = -1;
- return;
-+
-+ case DLT_IPOIB:
-+ off_linktype = 40;
-+ off_macpl = 44; /* IPoIB mac_ib prefix length */
-+ off_nl = 0;
-+ off_nl_nosnap = -1;
-+ return;
- }
- bpf_error("unknown data link type %d", linktype);
- /* NOTREACHED */
-@@ -2048,6 +2055,16 @@
- return gen_false();
- }
-
-+static struct block *
-+gen_ipoib_linktype(proto)
-+ register int proto;
-+{
-+ /*
-+ * This is an Ethernet type, so compare the length field with it.
-+ */
-+ return gen_cmp(OR_LINK, off_linktype, BPF_H, (bpf_int32)proto);
-+}
-+
- /*
- * Generate code to match a particular packet type.
- *
-@@ -3474,6 +3491,9 @@
- case DLT_IPNET:
- return gen_ipnet_linktype(proto);
-
-+ case DLT_IPOIB:
-+ return gen_ipoib_linktype(proto);
-+
- case DLT_LINUX_IRDA:
- bpf_error("IrDA link-layer type filtering not implemented");
-
-diff -u libpcap-1.1.1/pcap-common.c libpcap-1.1.1.new/pcap-common.c
---- libpcap-1.1.1/pcap-common.c Thu Mar 11 17:56:54 2010
-+++ libpcap-1.1.1.new/pcap-common.c Thu Jul 14 08:25:56 2011
-@@ -278,6 +278,11 @@
- #define LINKTYPE_USER15 162
-
- /*
-+ * IPoIB for Solaris.
-+ */
-+#define LINKTYPE_IPOIB DLT_IPOIB
-+
-+/*
- * For future use with 802.11 captures - defined by AbsoluteValue
- * Systems to store a number of bits of link-layer information
- * including radio information:
-@@ -1067,6 +1072,9 @@
- /* Solaris IPNET */
- { DLT_IPNET, LINKTYPE_IPNET },
-
-+ /* Solaris IPoIB */
-+ { DLT_IPOIB, LINKTYPE_IPOIB },
-+
- /* CAN frames with SocketCAN headers */
- { DLT_CAN_SOCKETCAN, LINKTYPE_CAN_SOCKETCAN },
-
-diff -u libpcap-1.1.1/pcap.c libpcap-1.1.1.new/pcap.c
---- libpcap-1.1.1/pcap.c Thu Mar 11 17:56:54 2010
-+++ libpcap-1.1.1.new/pcap.c Thu Jul 14 08:29:55 2011
-@@ -670,6 +670,7 @@
- DLT_CHOICE(DLT_FC_2, "Fibre Channel FC-2"),
- DLT_CHOICE(DLT_FC_2_WITH_FRAME_DELIMS, "Fibre Channel FC-2 with frame delimiters"),
- DLT_CHOICE(DLT_IPNET, "Solaris ipnet"),
-+ DLT_CHOICE(DLT_IPOIB, "Solaris IPoIB"),
- DLT_CHOICE(DLT_CAN_SOCKETCAN, "CAN-bus with SocketCAN headers"),
- DLT_CHOICE(DLT_IPV4, "Raw IPv4"),
- DLT_CHOICE(DLT_IPV6, "Raw IPv6"),
---- libpcap-1.1.1/pcap/bpf.h.dist 2010-03-11 17:56:54.000000000 -0800
-+++ libpcap-1.1.1/pcap/bpf.h 2011-07-27 03:06:09.410830949 -0700
-@@ -502,6 +502,8 @@
- #define DLT_USER14 161
- #define DLT_USER15 162
-
-+#define DLT_IPOIB DLT_USER15
-+
- /*
- * For future use with 802.11 captures - defined by AbsoluteValue
- * Systems to store a number of bits of link-layer information