summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorHye-Shik Chang <perky@FreeBSD.org>2007-10-29 00:14:50 +0000
committerHye-Shik Chang <perky@FreeBSD.org>2007-10-29 00:14:50 +0000
commit6e02f1db939e206766b572d490a63c5358ebdec1 (patch)
treec9a12599b36f43dd4d6635268f97f9a70d2ccecf /lang
parentDoes not work with Java 1.6. the JVMPI interface used by this port has (diff)
Add support for FreeBSD 8.
Obtained from: Python SVN (r58697, r58698)
Notes
Notes: svn path=/head/; revision=202249
Diffstat (limited to 'lang')
-rw-r--r--lang/python23/Makefile14
-rw-r--r--lang/python23/files/patch-Lib::plat-freebsd8::IN.py538
-rw-r--r--lang/python23/files/patch-Lib::posixfile.py2
-rw-r--r--lang/python23/files/patch-setup.py2
-rw-r--r--lang/python23/pkg-plist5
-rw-r--r--lang/python24/Makefile12
-rw-r--r--lang/python24/files/patch-freebsd7595
-rw-r--r--lang/python24/pkg-plist3
-rw-r--r--lang/python25/Makefile12
-rw-r--r--lang/python25/files/patch-freebsd8938
-rw-r--r--lang/python25/pkg-plist3
-rw-r--r--lang/python26/Makefile12
-rw-r--r--lang/python26/files/patch-freebsd8938
-rw-r--r--lang/python26/pkg-plist3
-rw-r--r--lang/python27/Makefile12
-rw-r--r--lang/python27/files/patch-freebsd8938
-rw-r--r--lang/python27/pkg-plist3
-rw-r--r--lang/python30/Makefile12
-rw-r--r--lang/python30/files/patch-freebsd8938
-rw-r--r--lang/python30/pkg-plist3
-rw-r--r--lang/python31/Makefile12
-rw-r--r--lang/python31/files/patch-freebsd8938
-rw-r--r--lang/python31/pkg-plist3
-rw-r--r--lang/python32/Makefile12
-rw-r--r--lang/python32/files/patch-freebsd8938
-rw-r--r--lang/python32/pkg-plist3
26 files changed, 6815 insertions, 74 deletions
diff --git a/lang/python23/Makefile b/lang/python23/Makefile
index 0e1b85ad46d9..fb8e16970208 100644
--- a/lang/python23/Makefile
+++ b/lang/python23/Makefile
@@ -7,7 +7,7 @@
PORTNAME= python23
PORTVERSION= 2.3.5
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -32,6 +32,8 @@ PYTHON_VERSION= python2.3
PYTHON_NO_DEPENDS= yes
LATEST_LINK?= ${PYTHON_VERSION:S/.//}
+PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 plat-freebsd7 \
+ plat-freebsd8
SHARED_WRKSRC= ${WRKSRC}/build.shared
PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//}
DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION}
@@ -99,14 +101,6 @@ CONFIGURE_ARGS+= --enable-ipv6
CONFIGURE_ARGS+= --disable-ipv6
.endif
-.if ${OSVERSION} >= 700000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd6
-.elif ${OSVERSION} >= 600000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd7
-.else
-PLATFORMS=plat-freebsd4 plat-freebsd6 plat-freebsd7
-.endif
-
post-extract:
${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
${WRKSRC}/Tools/scripts/pydoc > ${WRKDIR}/pydoc2.3
@@ -120,7 +114,7 @@ pre-patch:
${REINPLACE_CMD} -e \
's|^\(prefixes = .*\)\]$$|\1, "${X11BASE}"]|g' \
${WRKSRC}/Lib/site.py
-.for ver in 6 7
+.for ver in 6 7 8
${MKDIR} ${WRKSRC}/Lib/plat-freebsd${ver}
${CP} ${WRKSRC}/Lib/plat-freebsd5/regen ${WRKSRC}/Lib/plat-freebsd${ver}/
.endfor
diff --git a/lang/python23/files/patch-Lib::plat-freebsd8::IN.py b/lang/python23/files/patch-Lib::plat-freebsd8::IN.py
new file mode 100644
index 000000000000..6e103e243eb8
--- /dev/null
+++ b/lang/python23/files/patch-Lib::plat-freebsd8::IN.py
@@ -0,0 +1,538 @@
+--- Lib/plat-freebsd8/IN.py Thu Jan 1 09:00:00 1970
++++ Lib/plat-freebsd8/IN.py Thu Jul 28 15:29:26 2005
+@@ -0,0 +1,535 @@
++# Generated by h2py from /usr/include/netinet/in.h
++
++# Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
++def __P(protos): return protos
++
++def __STRING(x): return #x
++
++def __XSTRING(x): return __STRING(x)
++
++def __P(protos): return ()
++
++def __STRING(x): return "x"
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __nonnull(x): return __attribute__((__nonnull__(x)))
++
++def __predict_true(exp): return __builtin_expect((exp), 1)
++
++def __predict_false(exp): return __builtin_expect((exp), 0)
++
++def __predict_true(exp): return (exp)
++
++def __predict_false(exp): return (exp)
++
++def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID_SOURCE(s): return __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
++
++def __SCCSID(s): return __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
++
++def __COPYRIGHT(s): return __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
++
++_POSIX_C_SOURCE = 199009
++_POSIX_C_SOURCE = 199209
++__XSI_VISIBLE = 600
++_POSIX_C_SOURCE = 200112
++__XSI_VISIBLE = 500
++_POSIX_C_SOURCE = 199506
++_POSIX_C_SOURCE = 198808
++__POSIX_VISIBLE = 200112
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 199506
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199309
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199209
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199009
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 198808
++__ISO_C_VISIBLE = 0
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 200112
++__XSI_VISIBLE = 600
++__BSD_VISIBLE = 1
++__ISO_C_VISIBLE = 1999
++
++# Included from sys/_types.h
++
++# Included from machine/_types.h
++
++# Included from machine/endian.h
++_QUAD_HIGHWORD = 1
++_QUAD_LOWWORD = 0
++_LITTLE_ENDIAN = 1234
++_BIG_ENDIAN = 4321
++_PDP_ENDIAN = 3412
++_BYTE_ORDER = _LITTLE_ENDIAN
++LITTLE_ENDIAN = _LITTLE_ENDIAN
++BIG_ENDIAN = _BIG_ENDIAN
++PDP_ENDIAN = _PDP_ENDIAN
++BYTE_ORDER = _BYTE_ORDER
++def __word_swap_int_var(x): return \
++
++def __word_swap_int_const(x): return \
++
++def __word_swap_int(x): return __word_swap_int_var(x)
++
++def __byte_swap_int_var(x): return \
++
++def __byte_swap_int_const(x): return \
++
++def __byte_swap_int(x): return __byte_swap_int_var(x)
++
++def __byte_swap_word_var(x): return \
++
++def __byte_swap_word_const(x): return \
++
++def __byte_swap_word(x): return __byte_swap_word_var(x)
++
++def __htonl(x): return __bswap32(x)
++
++def __htons(x): return __bswap16(x)
++
++def __ntohl(x): return __bswap32(x)
++
++def __ntohs(x): return __bswap16(x)
++
++IPPROTO_IP = 0
++IPPROTO_ICMP = 1
++IPPROTO_TCP = 6
++IPPROTO_UDP = 17
++def htonl(x): return __htonl(x)
++
++def htons(x): return __htons(x)
++
++def ntohl(x): return __ntohl(x)
++
++def ntohs(x): return __ntohs(x)
++
++IPPROTO_RAW = 255
++INET_ADDRSTRLEN = 16
++IPPROTO_HOPOPTS = 0
++IPPROTO_IGMP = 2
++IPPROTO_GGP = 3
++IPPROTO_IPV4 = 4
++IPPROTO_IPIP = IPPROTO_IPV4
++IPPROTO_ST = 7
++IPPROTO_EGP = 8
++IPPROTO_PIGP = 9
++IPPROTO_RCCMON = 10
++IPPROTO_NVPII = 11
++IPPROTO_PUP = 12
++IPPROTO_ARGUS = 13
++IPPROTO_EMCON = 14
++IPPROTO_XNET = 15
++IPPROTO_CHAOS = 16
++IPPROTO_MUX = 18
++IPPROTO_MEAS = 19
++IPPROTO_HMP = 20
++IPPROTO_PRM = 21
++IPPROTO_IDP = 22
++IPPROTO_TRUNK1 = 23
++IPPROTO_TRUNK2 = 24
++IPPROTO_LEAF1 = 25
++IPPROTO_LEAF2 = 26
++IPPROTO_RDP = 27
++IPPROTO_IRTP = 28
++IPPROTO_TP = 29
++IPPROTO_BLT = 30
++IPPROTO_NSP = 31
++IPPROTO_INP = 32
++IPPROTO_SEP = 33
++IPPROTO_3PC = 34
++IPPROTO_IDPR = 35
++IPPROTO_XTP = 36
++IPPROTO_DDP = 37
++IPPROTO_CMTP = 38
++IPPROTO_TPXX = 39
++IPPROTO_IL = 40
++IPPROTO_IPV6 = 41
++IPPROTO_SDRP = 42
++IPPROTO_ROUTING = 43
++IPPROTO_FRAGMENT = 44
++IPPROTO_IDRP = 45
++IPPROTO_RSVP = 46
++IPPROTO_GRE = 47
++IPPROTO_MHRP = 48
++IPPROTO_BHA = 49
++IPPROTO_ESP = 50
++IPPROTO_AH = 51
++IPPROTO_INLSP = 52
++IPPROTO_SWIPE = 53
++IPPROTO_NHRP = 54
++IPPROTO_MOBILE = 55
++IPPROTO_TLSP = 56
++IPPROTO_SKIP = 57
++IPPROTO_ICMPV6 = 58
++IPPROTO_NONE = 59
++IPPROTO_DSTOPTS = 60
++IPPROTO_AHIP = 61
++IPPROTO_CFTP = 62
++IPPROTO_HELLO = 63
++IPPROTO_SATEXPAK = 64
++IPPROTO_KRYPTOLAN = 65
++IPPROTO_RVD = 66
++IPPROTO_IPPC = 67
++IPPROTO_ADFS = 68
++IPPROTO_SATMON = 69
++IPPROTO_VISA = 70
++IPPROTO_IPCV = 71
++IPPROTO_CPNX = 72
++IPPROTO_CPHB = 73
++IPPROTO_WSN = 74
++IPPROTO_PVP = 75
++IPPROTO_BRSATMON = 76
++IPPROTO_ND = 77
++IPPROTO_WBMON = 78
++IPPROTO_WBEXPAK = 79
++IPPROTO_EON = 80
++IPPROTO_VMTP = 81
++IPPROTO_SVMTP = 82
++IPPROTO_VINES = 83
++IPPROTO_TTP = 84
++IPPROTO_IGP = 85
++IPPROTO_DGP = 86
++IPPROTO_TCF = 87
++IPPROTO_IGRP = 88
++IPPROTO_OSPFIGP = 89
++IPPROTO_SRPC = 90
++IPPROTO_LARP = 91
++IPPROTO_MTP = 92
++IPPROTO_AX25 = 93
++IPPROTO_IPEIP = 94
++IPPROTO_MICP = 95
++IPPROTO_SCCSP = 96
++IPPROTO_ETHERIP = 97
++IPPROTO_ENCAP = 98
++IPPROTO_APES = 99
++IPPROTO_GMTP = 100
++IPPROTO_IPCOMP = 108
++IPPROTO_PIM = 103
++IPPROTO_CARP = 112
++IPPROTO_PGM = 113
++IPPROTO_PFSYNC = 240
++IPPROTO_OLD_DIVERT = 254
++IPPROTO_MAX = 256
++IPPROTO_DONE = 257
++IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
++IPPORT_RESERVED = 1024
++IPPORT_HIFIRSTAUTO = 49152
++IPPORT_HILASTAUTO = 65535
++IPPORT_RESERVEDSTART = 600
++IPPORT_MAX = 65535
++def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++
++IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NSHIFT = 24
++IN_CLASSA_HOST = 0x00ffffff
++IN_CLASSA_MAX = 128
++def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++
++IN_CLASSB_NET = (-65536)
++IN_CLASSB_NSHIFT = 16
++IN_CLASSB_HOST = 0x0000ffff
++IN_CLASSB_MAX = 65536
++def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++
++IN_CLASSC_NET = (-256)
++IN_CLASSC_NSHIFT = 8
++IN_CLASSC_HOST = 0x000000ff
++def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++
++IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NSHIFT = 28
++IN_CLASSD_HOST = 0x0fffffff
++def IN_MULTICAST(i): return IN_CLASSD(i)
++
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++INADDR_NONE = (-1)
++IN_LOOPBACKNET = 127
++IP_OPTIONS = 1
++IP_HDRINCL = 2
++IP_TOS = 3
++IP_TTL = 4
++IP_RECVOPTS = 5
++IP_RECVRETOPTS = 6
++IP_RECVDSTADDR = 7
++IP_SENDSRCADDR = IP_RECVDSTADDR
++IP_RETOPTS = 8
++IP_MULTICAST_IF = 9
++IP_MULTICAST_TTL = 10
++IP_MULTICAST_LOOP = 11
++IP_ADD_MEMBERSHIP = 12
++IP_DROP_MEMBERSHIP = 13
++IP_MULTICAST_VIF = 14
++IP_RSVP_ON = 15
++IP_RSVP_OFF = 16
++IP_RSVP_VIF_ON = 17
++IP_RSVP_VIF_OFF = 18
++IP_PORTRANGE = 19
++IP_RECVIF = 20
++IP_IPSEC_POLICY = 21
++IP_FAITH = 22
++IP_ONESBCAST = 23
++IP_FW_TABLE_ADD = 40
++IP_FW_TABLE_DEL = 41
++IP_FW_TABLE_FLUSH = 42
++IP_FW_TABLE_GETSIZE = 43
++IP_FW_TABLE_LIST = 44
++IP_FW_ADD = 50
++IP_FW_DEL = 51
++IP_FW_FLUSH = 52
++IP_FW_ZERO = 53
++IP_FW_GET = 54
++IP_FW_RESETLOG = 55
++IP_DUMMYNET_CONFIGURE = 60
++IP_DUMMYNET_DEL = 61
++IP_DUMMYNET_FLUSH = 62
++IP_DUMMYNET_GET = 64
++IP_RECVTTL = 65
++IP_DEFAULT_MULTICAST_TTL = 1
++IP_DEFAULT_MULTICAST_LOOP = 1
++IP_MAX_MEMBERSHIPS = 20
++IP_PORTRANGE_DEFAULT = 0
++IP_PORTRANGE_HIGH = 1
++IP_PORTRANGE_LOW = 2
++IPPROTO_MAXID = (IPPROTO_AH + 1)
++IPCTL_FORWARDING = 1
++IPCTL_SENDREDIRECTS = 2
++IPCTL_DEFTTL = 3
++IPCTL_DEFMTU = 4
++IPCTL_RTEXPIRE = 5
++IPCTL_RTMINEXPIRE = 6
++IPCTL_RTMAXCACHE = 7
++IPCTL_SOURCEROUTE = 8
++IPCTL_DIRECTEDBROADCAST = 9
++IPCTL_INTRQMAXLEN = 10
++IPCTL_INTRQDROPS = 11
++IPCTL_STATS = 12
++IPCTL_ACCEPTSOURCEROUTE = 13
++IPCTL_FASTFORWARDING = 14
++IPCTL_KEEPFAITH = 15
++IPCTL_GIF_TTL = 16
++IPCTL_MAXID = 17
++def in_nullhost(x): return ((x).s_addr == INADDR_ANY)
++
++
++# Included from netinet6/in6.h
++__KAME_VERSION = "20010528/FreeBSD"
++IPV6PORT_RESERVED = 1024
++IPV6PORT_ANONMIN = 49152
++IPV6PORT_ANONMAX = 65535
++IPV6PORT_RESERVEDMIN = 600
++IPV6PORT_RESERVEDMAX = (IPV6PORT_RESERVED-1)
++INET6_ADDRSTRLEN = 46
++IPV6_ADDR_INT32_ONE = 1
++IPV6_ADDR_INT32_TWO = 2
++IPV6_ADDR_INT32_MNL = (-16711680)
++IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_SMP = 0x0000ffff
++IPV6_ADDR_INT16_ULL = 0xfe80
++IPV6_ADDR_INT16_USL = 0xfec0
++IPV6_ADDR_INT16_MLL = 0xff02
++IPV6_ADDR_INT32_ONE = 0x01000000
++IPV6_ADDR_INT32_TWO = 0x02000000
++IPV6_ADDR_INT32_MNL = 0x000001ff
++IPV6_ADDR_INT32_MLL = 0x000002ff
++IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT16_ULL = 0x80fe
++IPV6_ADDR_INT16_USL = 0xc0fe
++IPV6_ADDR_INT16_MLL = 0x02ff
++def IN6_IS_ADDR_UNSPECIFIED(a): return \
++
++def IN6_IS_ADDR_LOOPBACK(a): return \
++
++def IN6_IS_ADDR_V4COMPAT(a): return \
++
++def IN6_IS_ADDR_V4MAPPED(a): return \
++
++IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++__IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++__IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++__IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++__IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++__IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++__IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++def IN6_IS_ADDR_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_INTFACELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_SCOPE_LINKLOCAL(a): return \
++
++def IFA6_IS_DEPRECATED(a): return \
++
++def IFA6_IS_INVALID(a): return \
++
++IPV6_OPTIONS = 1
++IPV6_RECVOPTS = 5
++IPV6_RECVRETOPTS = 6
++IPV6_RECVDSTADDR = 7
++IPV6_RETOPTS = 8
++IPV6_SOCKOPT_RESERVED1 = 3
++IPV6_UNICAST_HOPS = 4
++IPV6_MULTICAST_IF = 9
++IPV6_MULTICAST_HOPS = 10
++IPV6_MULTICAST_LOOP = 11
++IPV6_JOIN_GROUP = 12
++IPV6_LEAVE_GROUP = 13
++IPV6_PORTRANGE = 14
++ICMP6_FILTER = 18
++IPV6_2292PKTINFO = 19
++IPV6_2292HOPLIMIT = 20
++IPV6_2292NEXTHOP = 21
++IPV6_2292HOPOPTS = 22
++IPV6_2292DSTOPTS = 23
++IPV6_2292RTHDR = 24
++IPV6_2292PKTOPTIONS = 25
++IPV6_CHECKSUM = 26
++IPV6_V6ONLY = 27
++IPV6_BINDV6ONLY = IPV6_V6ONLY
++IPV6_IPSEC_POLICY = 28
++IPV6_FAITH = 29
++IPV6_FW_ADD = 30
++IPV6_FW_DEL = 31
++IPV6_FW_FLUSH = 32
++IPV6_FW_ZERO = 33
++IPV6_FW_GET = 34
++IPV6_RTHDRDSTOPTS = 35
++IPV6_RECVPKTINFO = 36
++IPV6_RECVHOPLIMIT = 37
++IPV6_RECVRTHDR = 38
++IPV6_RECVHOPOPTS = 39
++IPV6_RECVDSTOPTS = 40
++IPV6_RECVRTHDRDSTOPTS = 41
++IPV6_USE_MIN_MTU = 42
++IPV6_RECVPATHMTU = 43
++IPV6_PATHMTU = 44
++IPV6_REACHCONF = 45
++IPV6_PKTINFO = 46
++IPV6_HOPLIMIT = 47
++IPV6_NEXTHOP = 48
++IPV6_HOPOPTS = 49
++IPV6_DSTOPTS = 50
++IPV6_RTHDR = 51
++IPV6_PKTOPTIONS = 52
++IPV6_RECVTCLASS = 57
++IPV6_AUTOFLOWLABEL = 59
++IPV6_TCLASS = 61
++IPV6_DONTFRAG = 62
++IPV6_PREFER_TEMPADDR = 63
++IPV6_RTHDR_LOOSE = 0
++IPV6_RTHDR_STRICT = 1
++IPV6_RTHDR_TYPE_0 = 0
++IPV6_DEFAULT_MULTICAST_HOPS = 1
++IPV6_DEFAULT_MULTICAST_LOOP = 1
++IPV6_PORTRANGE_DEFAULT = 0
++IPV6_PORTRANGE_HIGH = 1
++IPV6_PORTRANGE_LOW = 2
++IPV6PROTO_MAXID = (IPPROTO_PIM + 1)
++IPV6CTL_FORWARDING = 1
++IPV6CTL_SENDREDIRECTS = 2
++IPV6CTL_DEFHLIM = 3
++IPV6CTL_DEFMTU = 4
++IPV6CTL_FORWSRCRT = 5
++IPV6CTL_STATS = 6
++IPV6CTL_MRTSTATS = 7
++IPV6CTL_MRTPROTO = 8
++IPV6CTL_MAXFRAGPACKETS = 9
++IPV6CTL_SOURCECHECK = 10
++IPV6CTL_SOURCECHECK_LOGINT = 11
++IPV6CTL_ACCEPT_RTADV = 12
++IPV6CTL_KEEPFAITH = 13
++IPV6CTL_LOG_INTERVAL = 14
++IPV6CTL_HDRNESTLIMIT = 15
++IPV6CTL_DAD_COUNT = 16
++IPV6CTL_AUTO_FLOWLABEL = 17
++IPV6CTL_DEFMCASTHLIM = 18
++IPV6CTL_GIF_HLIM = 19
++IPV6CTL_KAME_VERSION = 20
++IPV6CTL_USE_DEPRECATED = 21
++IPV6CTL_RR_PRUNE = 22
++IPV6CTL_MAPPED_ADDR = 23
++IPV6CTL_V6ONLY = 24
++IPV6CTL_RTEXPIRE = 25
++IPV6CTL_RTMINEXPIRE = 26
++IPV6CTL_RTMAXCACHE = 27
++IPV6CTL_USETEMPADDR = 32
++IPV6CTL_TEMPPLTIME = 33
++IPV6CTL_TEMPVLTIME = 34
++IPV6CTL_AUTO_LINKLOCAL = 35
++IPV6CTL_RIP6STATS = 36
++IPV6CTL_PREFER_TEMPADDR = 37
++IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_MAXFRAGS = 41
++IPV6CTL_MAXID = 42
diff --git a/lang/python23/files/patch-Lib::posixfile.py b/lang/python23/files/patch-Lib::posixfile.py
index 4cde86d3d732..b32bca0f4d65 100644
--- a/lang/python23/files/patch-Lib::posixfile.py
+++ b/lang/python23/files/patch-Lib::posixfile.py
@@ -10,7 +10,7 @@ diff -u -r1.25 -r1.26
'openbsd2',
'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
- 'bsdos2', 'bsdos3', 'bsdos4'):
-+ 'freebsd6', 'freebsd7', 'bsdos2', 'bsdos3', 'bsdos4'):
++ 'freebsd6', 'freebsd7', 'freebsd8', 'bsdos2', 'bsdos3', 'bsdos4'):
flock = struct.pack('lxxxxlxxxxlhh', \
l_start, l_len, os.getpid(), l_type, l_whence)
elif sys.platform in ['aix3', 'aix4']:
diff --git a/lang/python23/files/patch-setup.py b/lang/python23/files/patch-setup.py
index b0592b909021..0c06d32bb102 100644
--- a/lang/python23/files/patch-setup.py
+++ b/lang/python23/files/patch-setup.py
@@ -14,7 +14,7 @@
exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) )
- if platform in ('linux2', 'freebsd4'):
-+ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', 'freebsd7'):
++ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', 'freebsd7', 'freebsd8'):
exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
if platform == 'sunos5':
diff --git a/lang/python23/pkg-plist b/lang/python23/pkg-plist
index 53fa3b4e59f3..1c0a9898658a 100644
--- a/lang/python23/pkg-plist
+++ b/lang/python23/pkg-plist
@@ -1396,6 +1396,10 @@ lib/%%PYTHON_VERSION%%/plat-freebsd7/IN.py
lib/%%PYTHON_VERSION%%/plat-freebsd7/IN.pyc
lib/%%PYTHON_VERSION%%/plat-freebsd7/IN.pyo
lib/%%PYTHON_VERSION%%/plat-freebsd7/regen
+lib/%%PYTHON_VERSION%%/plat-freebsd8/IN.py
+lib/%%PYTHON_VERSION%%/plat-freebsd8/IN.pyc
+lib/%%PYTHON_VERSION%%/plat-freebsd8/IN.pyo
+lib/%%PYTHON_VERSION%%/plat-freebsd8/regen
lib/%%PYTHON_VERSION%%/platform.py
lib/%%PYTHON_VERSION%%/platform.pyc
lib/%%PYTHON_VERSION%%/platform.pyo
@@ -3068,6 +3072,7 @@ lib/%%PYTHON_VERSION%%/zipfile.pyo
@dirrm lib/%%PYTHON_VERSION%%/test/output
@dirrm lib/%%PYTHON_VERSION%%/test
@dirrm lib/%%PYTHON_VERSION%%/site-packages
+@dirrm lib/%%PYTHON_VERSION%%/plat-freebsd8
@dirrm lib/%%PYTHON_VERSION%%/plat-freebsd7
@dirrm lib/%%PYTHON_VERSION%%/plat-freebsd6
@dirrm lib/%%PYTHON_VERSION%%/plat-freebsd5
diff --git a/lang/python24/Makefile b/lang/python24/Makefile
index 9ed19daf1b8d..ad880fd83963 100644
--- a/lang/python24/Makefile
+++ b/lang/python24/Makefile
@@ -7,7 +7,7 @@
PORTNAME= python24
PORTVERSION= 2.4.4
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -30,6 +30,8 @@ USE_PYTHON= yes
PYTHON_VERSION= python2.4
PYTHON_NO_DEPENDS= yes
+PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 plat-freebsd7 \
+ plat-freebsd8
SHARED_WRKSRC= ${WRKSRC}/build.shared
PLIST= ${WRKDIR}/pkg-plist
PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//}
@@ -113,14 +115,6 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-.if ${OSVERSION} >= 700000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd6
-.elif ${OSVERSION} >= 600000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd7
-.else
-PLATFORMS=plat-freebsd4 plat-freebsd6 plat-freebsd7
-.endif
-
post-extract:
${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
${WRKSRC}/Tools/scripts/pydoc > ${WRKDIR}/pydoc2.4
diff --git a/lang/python24/files/patch-freebsd7 b/lang/python24/files/patch-freebsd7
index 836c7982bef2..0de6c979a00e 100644
--- a/lang/python24/files/patch-freebsd7
+++ b/lang/python24/files/patch-freebsd7
@@ -11,7 +11,7 @@ diff -u -r1.218 setup.py
- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6'):
+ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
-+ 'freebsd7'):
++ 'freebsd7', 'freebsd8'):
exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
if platform == 'sunos5':
@@ -27,7 +27,7 @@ diff -u -r1.28 posixfile.py
'openbsd2',
'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
- 'freebsd6', 'bsdos2', 'bsdos3', 'bsdos4'):
-+ 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4'):
flock = struct.pack('lxxxxlxxxxlhh', \
l_start, l_len, os.getpid(), l_type, l_whence)
@@ -584,6 +584,590 @@ diff -N Lib/plat-freebsd7/regen
+#! /bin/sh
+set -v
+python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+Index: Lib/plat-freebsd8/regen
+===================================================================
+--- Lib/plat-freebsd8/regen (revision 0)
++++ Lib/plat-freebsd8/regen (revision 58697)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++set -v
++python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+Index: Lib/plat-freebsd8/IN.py
+===================================================================
+--- Lib/plat-freebsd8/IN.py (revision 0)
++++ Lib/plat-freebsd8/IN.py (revision 58697)
+@@ -0,0 +1,571 @@
++# Generated by h2py from /usr/include/netinet/in.h
++
++# Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
++def __P(protos): return protos
++
++def __STRING(x): return #x
++
++def __XSTRING(x): return __STRING(x)
++
++def __P(protos): return ()
++
++def __STRING(x): return "x"
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __nonnull(x): return __attribute__((__nonnull__(x)))
++
++def __predict_true(exp): return __builtin_expect((exp), 1)
++
++def __predict_false(exp): return __builtin_expect((exp), 0)
++
++def __predict_true(exp): return (exp)
++
++def __predict_false(exp): return (exp)
++
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
++def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID_SOURCE(s): return __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
++
++def __SCCSID(s): return __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
++
++def __COPYRIGHT(s): return __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
++
++_POSIX_C_SOURCE = 199009
++_POSIX_C_SOURCE = 199209
++__XSI_VISIBLE = 600
++_POSIX_C_SOURCE = 200112
++__XSI_VISIBLE = 500
++_POSIX_C_SOURCE = 199506
++_POSIX_C_SOURCE = 198808
++__POSIX_VISIBLE = 200112
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 199506
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199309
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199209
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199009
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 198808
++__ISO_C_VISIBLE = 0
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 200112
++__XSI_VISIBLE = 600
++__BSD_VISIBLE = 1
++__ISO_C_VISIBLE = 1999
++
++# Included from sys/_types.h
++
++# Included from machine/_types.h
++
++# Included from machine/endian.h
++_QUAD_HIGHWORD = 1
++_QUAD_LOWWORD = 0
++_LITTLE_ENDIAN = 1234
++_BIG_ENDIAN = 4321
++_PDP_ENDIAN = 3412
++_BYTE_ORDER = _LITTLE_ENDIAN
++LITTLE_ENDIAN = _LITTLE_ENDIAN
++BIG_ENDIAN = _BIG_ENDIAN
++PDP_ENDIAN = _PDP_ENDIAN
++BYTE_ORDER = _BYTE_ORDER
++def __word_swap_int_var(x): return \
++
++def __word_swap_int_const(x): return \
++
++def __word_swap_int(x): return __word_swap_int_var(x)
++
++def __byte_swap_int_var(x): return \
++
++def __byte_swap_int_const(x): return \
++
++def __byte_swap_int(x): return __byte_swap_int_var(x)
++
++def __byte_swap_word_var(x): return \
++
++def __byte_swap_word_const(x): return \
++
++def __byte_swap_word(x): return __byte_swap_word_var(x)
++
++def __htonl(x): return __bswap32(x)
++
++def __htons(x): return __bswap16(x)
++
++def __ntohl(x): return __bswap32(x)
++
++def __ntohs(x): return __bswap16(x)
++
++IPPROTO_IP = 0
++IPPROTO_ICMP = 1
++IPPROTO_TCP = 6
++IPPROTO_UDP = 17
++def htonl(x): return __htonl(x)
++
++def htons(x): return __htons(x)
++
++def ntohl(x): return __ntohl(x)
++
++def ntohs(x): return __ntohs(x)
++
++IPPROTO_RAW = 255
++INET_ADDRSTRLEN = 16
++IPPROTO_HOPOPTS = 0
++IPPROTO_IGMP = 2
++IPPROTO_GGP = 3
++IPPROTO_IPV4 = 4
++IPPROTO_IPIP = IPPROTO_IPV4
++IPPROTO_ST = 7
++IPPROTO_EGP = 8
++IPPROTO_PIGP = 9
++IPPROTO_RCCMON = 10
++IPPROTO_NVPII = 11
++IPPROTO_PUP = 12
++IPPROTO_ARGUS = 13
++IPPROTO_EMCON = 14
++IPPROTO_XNET = 15
++IPPROTO_CHAOS = 16
++IPPROTO_MUX = 18
++IPPROTO_MEAS = 19
++IPPROTO_HMP = 20
++IPPROTO_PRM = 21
++IPPROTO_IDP = 22
++IPPROTO_TRUNK1 = 23
++IPPROTO_TRUNK2 = 24
++IPPROTO_LEAF1 = 25
++IPPROTO_LEAF2 = 26
++IPPROTO_RDP = 27
++IPPROTO_IRTP = 28
++IPPROTO_TP = 29
++IPPROTO_BLT = 30
++IPPROTO_NSP = 31
++IPPROTO_INP = 32
++IPPROTO_SEP = 33
++IPPROTO_3PC = 34
++IPPROTO_IDPR = 35
++IPPROTO_XTP = 36
++IPPROTO_DDP = 37
++IPPROTO_CMTP = 38
++IPPROTO_TPXX = 39
++IPPROTO_IL = 40
++IPPROTO_IPV6 = 41
++IPPROTO_SDRP = 42
++IPPROTO_ROUTING = 43
++IPPROTO_FRAGMENT = 44
++IPPROTO_IDRP = 45
++IPPROTO_RSVP = 46
++IPPROTO_GRE = 47
++IPPROTO_MHRP = 48
++IPPROTO_BHA = 49
++IPPROTO_ESP = 50
++IPPROTO_AH = 51
++IPPROTO_INLSP = 52
++IPPROTO_SWIPE = 53
++IPPROTO_NHRP = 54
++IPPROTO_MOBILE = 55
++IPPROTO_TLSP = 56
++IPPROTO_SKIP = 57
++IPPROTO_ICMPV6 = 58
++IPPROTO_NONE = 59
++IPPROTO_DSTOPTS = 60
++IPPROTO_AHIP = 61
++IPPROTO_CFTP = 62
++IPPROTO_HELLO = 63
++IPPROTO_SATEXPAK = 64
++IPPROTO_KRYPTOLAN = 65
++IPPROTO_RVD = 66
++IPPROTO_IPPC = 67
++IPPROTO_ADFS = 68
++IPPROTO_SATMON = 69
++IPPROTO_VISA = 70
++IPPROTO_IPCV = 71
++IPPROTO_CPNX = 72
++IPPROTO_CPHB = 73
++IPPROTO_WSN = 74
++IPPROTO_PVP = 75
++IPPROTO_BRSATMON = 76
++IPPROTO_ND = 77
++IPPROTO_WBMON = 78
++IPPROTO_WBEXPAK = 79
++IPPROTO_EON = 80
++IPPROTO_VMTP = 81
++IPPROTO_SVMTP = 82
++IPPROTO_VINES = 83
++IPPROTO_TTP = 84
++IPPROTO_IGP = 85
++IPPROTO_DGP = 86
++IPPROTO_TCF = 87
++IPPROTO_IGRP = 88
++IPPROTO_OSPFIGP = 89
++IPPROTO_SRPC = 90
++IPPROTO_LARP = 91
++IPPROTO_MTP = 92
++IPPROTO_AX25 = 93
++IPPROTO_IPEIP = 94
++IPPROTO_MICP = 95
++IPPROTO_SCCSP = 96
++IPPROTO_ETHERIP = 97
++IPPROTO_ENCAP = 98
++IPPROTO_APES = 99
++IPPROTO_GMTP = 100
++IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
++IPPROTO_PIM = 103
++IPPROTO_CARP = 112
++IPPROTO_PGM = 113
++IPPROTO_PFSYNC = 240
++IPPROTO_OLD_DIVERT = 254
++IPPROTO_MAX = 256
++IPPROTO_DONE = 257
++IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
++IPPORT_RESERVED = 1024
++IPPORT_HIFIRSTAUTO = 49152
++IPPORT_HILASTAUTO = 65535
++IPPORT_RESERVEDSTART = 600
++IPPORT_MAX = 65535
++def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++
++IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NSHIFT = 24
++IN_CLASSA_HOST = 0x00ffffff
++IN_CLASSA_MAX = 128
++def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++
++IN_CLASSB_NET = (-65536)
++IN_CLASSB_NSHIFT = 16
++IN_CLASSB_HOST = 0x0000ffff
++IN_CLASSB_MAX = 65536
++def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++
++IN_CLASSC_NET = (-256)
++IN_CLASSC_NSHIFT = 8
++IN_CLASSC_HOST = 0x000000ff
++def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++
++IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NSHIFT = 28
++IN_CLASSD_HOST = 0x0fffffff
++def IN_MULTICAST(i): return IN_CLASSD(i)
++
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
++INADDR_NONE = (-1)
++IN_LOOPBACKNET = 127
++IP_OPTIONS = 1
++IP_HDRINCL = 2
++IP_TOS = 3
++IP_TTL = 4
++IP_RECVOPTS = 5
++IP_RECVRETOPTS = 6
++IP_RECVDSTADDR = 7
++IP_SENDSRCADDR = IP_RECVDSTADDR
++IP_RETOPTS = 8
++IP_MULTICAST_IF = 9
++IP_MULTICAST_TTL = 10
++IP_MULTICAST_LOOP = 11
++IP_ADD_MEMBERSHIP = 12
++IP_DROP_MEMBERSHIP = 13
++IP_MULTICAST_VIF = 14
++IP_RSVP_ON = 15
++IP_RSVP_OFF = 16
++IP_RSVP_VIF_ON = 17
++IP_RSVP_VIF_OFF = 18
++IP_PORTRANGE = 19
++IP_RECVIF = 20
++IP_IPSEC_POLICY = 21
++IP_FAITH = 22
++IP_ONESBCAST = 23
++IP_FW_TABLE_ADD = 40
++IP_FW_TABLE_DEL = 41
++IP_FW_TABLE_FLUSH = 42
++IP_FW_TABLE_GETSIZE = 43
++IP_FW_TABLE_LIST = 44
++IP_FW_ADD = 50
++IP_FW_DEL = 51
++IP_FW_FLUSH = 52
++IP_FW_ZERO = 53
++IP_FW_GET = 54
++IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
++IP_DUMMYNET_CONFIGURE = 60
++IP_DUMMYNET_DEL = 61
++IP_DUMMYNET_FLUSH = 62
++IP_DUMMYNET_GET = 64
++IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
++IP_DEFAULT_MULTICAST_TTL = 1
++IP_DEFAULT_MULTICAST_LOOP = 1
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
++IP_PORTRANGE_DEFAULT = 0
++IP_PORTRANGE_HIGH = 1
++IP_PORTRANGE_LOW = 2
++IPPROTO_MAXID = (IPPROTO_AH + 1)
++IPCTL_FORWARDING = 1
++IPCTL_SENDREDIRECTS = 2
++IPCTL_DEFTTL = 3
++IPCTL_DEFMTU = 4
++IPCTL_RTEXPIRE = 5
++IPCTL_RTMINEXPIRE = 6
++IPCTL_RTMAXCACHE = 7
++IPCTL_SOURCEROUTE = 8
++IPCTL_DIRECTEDBROADCAST = 9
++IPCTL_INTRQMAXLEN = 10
++IPCTL_INTRQDROPS = 11
++IPCTL_STATS = 12
++IPCTL_ACCEPTSOURCEROUTE = 13
++IPCTL_FASTFORWARDING = 14
++IPCTL_KEEPFAITH = 15
++IPCTL_GIF_TTL = 16
++IPCTL_MAXID = 17
++def in_nullhost(x): return ((x).s_addr == INADDR_ANY)
++
++
++# Included from netinet6/in6.h
++__KAME_VERSION = "FreeBSD"
++IPV6PORT_RESERVED = 1024
++IPV6PORT_ANONMIN = 49152
++IPV6PORT_ANONMAX = 65535
++IPV6PORT_RESERVEDMIN = 600
++IPV6PORT_RESERVEDMAX = (IPV6PORT_RESERVED-1)
++INET6_ADDRSTRLEN = 46
++IPV6_ADDR_INT32_ONE = 1
++IPV6_ADDR_INT32_TWO = 2
++IPV6_ADDR_INT32_MNL = (-16711680)
++IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_SMP = 0x0000ffff
++IPV6_ADDR_INT16_ULL = 0xfe80
++IPV6_ADDR_INT16_USL = 0xfec0
++IPV6_ADDR_INT16_MLL = 0xff02
++IPV6_ADDR_INT32_ONE = 0x01000000
++IPV6_ADDR_INT32_TWO = 0x02000000
++IPV6_ADDR_INT32_MNL = 0x000001ff
++IPV6_ADDR_INT32_MLL = 0x000002ff
++IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT16_ULL = 0x80fe
++IPV6_ADDR_INT16_USL = 0xc0fe
++IPV6_ADDR_INT16_MLL = 0x02ff
++def IN6_IS_ADDR_UNSPECIFIED(a): return \
++
++def IN6_IS_ADDR_LOOPBACK(a): return \
++
++def IN6_IS_ADDR_V4COMPAT(a): return \
++
++def IN6_IS_ADDR_V4MAPPED(a): return \
++
++IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++__IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++__IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++__IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++__IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++__IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++__IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++def IN6_IS_ADDR_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_INTFACELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_SCOPE_LINKLOCAL(a): return \
++
++def IN6_IS_SCOPE_EMBED(a): return \
++
++def IFA6_IS_DEPRECATED(a): return \
++
++def IFA6_IS_INVALID(a): return \
++
++IPV6_OPTIONS = 1
++IPV6_RECVOPTS = 5
++IPV6_RECVRETOPTS = 6
++IPV6_RECVDSTADDR = 7
++IPV6_RETOPTS = 8
++IPV6_SOCKOPT_RESERVED1 = 3
++IPV6_UNICAST_HOPS = 4
++IPV6_MULTICAST_IF = 9
++IPV6_MULTICAST_HOPS = 10
++IPV6_MULTICAST_LOOP = 11
++IPV6_JOIN_GROUP = 12
++IPV6_LEAVE_GROUP = 13
++IPV6_PORTRANGE = 14
++ICMP6_FILTER = 18
++IPV6_2292PKTINFO = 19
++IPV6_2292HOPLIMIT = 20
++IPV6_2292NEXTHOP = 21
++IPV6_2292HOPOPTS = 22
++IPV6_2292DSTOPTS = 23
++IPV6_2292RTHDR = 24
++IPV6_2292PKTOPTIONS = 25
++IPV6_CHECKSUM = 26
++IPV6_V6ONLY = 27
++IPV6_BINDV6ONLY = IPV6_V6ONLY
++IPV6_IPSEC_POLICY = 28
++IPV6_FAITH = 29
++IPV6_FW_ADD = 30
++IPV6_FW_DEL = 31
++IPV6_FW_FLUSH = 32
++IPV6_FW_ZERO = 33
++IPV6_FW_GET = 34
++IPV6_RTHDRDSTOPTS = 35
++IPV6_RECVPKTINFO = 36
++IPV6_RECVHOPLIMIT = 37
++IPV6_RECVRTHDR = 38
++IPV6_RECVHOPOPTS = 39
++IPV6_RECVDSTOPTS = 40
++IPV6_RECVRTHDRDSTOPTS = 41
++IPV6_USE_MIN_MTU = 42
++IPV6_RECVPATHMTU = 43
++IPV6_PATHMTU = 44
++IPV6_REACHCONF = 45
++IPV6_PKTINFO = 46
++IPV6_HOPLIMIT = 47
++IPV6_NEXTHOP = 48
++IPV6_HOPOPTS = 49
++IPV6_DSTOPTS = 50
++IPV6_RTHDR = 51
++IPV6_PKTOPTIONS = 52
++IPV6_RECVTCLASS = 57
++IPV6_AUTOFLOWLABEL = 59
++IPV6_TCLASS = 61
++IPV6_DONTFRAG = 62
++IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
++IPV6_RTHDR_LOOSE = 0
++IPV6_RTHDR_STRICT = 1
++IPV6_RTHDR_TYPE_0 = 0
++IPV6_DEFAULT_MULTICAST_HOPS = 1
++IPV6_DEFAULT_MULTICAST_LOOP = 1
++IPV6_PORTRANGE_DEFAULT = 0
++IPV6_PORTRANGE_HIGH = 1
++IPV6_PORTRANGE_LOW = 2
++IPV6PROTO_MAXID = (IPPROTO_PIM + 1)
++IPV6CTL_FORWARDING = 1
++IPV6CTL_SENDREDIRECTS = 2
++IPV6CTL_DEFHLIM = 3
++IPV6CTL_DEFMTU = 4
++IPV6CTL_FORWSRCRT = 5
++IPV6CTL_STATS = 6
++IPV6CTL_MRTSTATS = 7
++IPV6CTL_MRTPROTO = 8
++IPV6CTL_MAXFRAGPACKETS = 9
++IPV6CTL_SOURCECHECK = 10
++IPV6CTL_SOURCECHECK_LOGINT = 11
++IPV6CTL_ACCEPT_RTADV = 12
++IPV6CTL_KEEPFAITH = 13
++IPV6CTL_LOG_INTERVAL = 14
++IPV6CTL_HDRNESTLIMIT = 15
++IPV6CTL_DAD_COUNT = 16
++IPV6CTL_AUTO_FLOWLABEL = 17
++IPV6CTL_DEFMCASTHLIM = 18
++IPV6CTL_GIF_HLIM = 19
++IPV6CTL_KAME_VERSION = 20
++IPV6CTL_USE_DEPRECATED = 21
++IPV6CTL_RR_PRUNE = 22
++IPV6CTL_MAPPED_ADDR = 23
++IPV6CTL_V6ONLY = 24
++IPV6CTL_RTEXPIRE = 25
++IPV6CTL_RTMINEXPIRE = 26
++IPV6CTL_RTMAXCACHE = 27
++IPV6CTL_USETEMPADDR = 32
++IPV6CTL_TEMPPLTIME = 33
++IPV6CTL_TEMPVLTIME = 34
++IPV6CTL_AUTO_LINKLOCAL = 35
++IPV6CTL_RIP6STATS = 36
++IPV6CTL_PREFER_TEMPADDR = 37
++IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
++IPV6CTL_MAXFRAGS = 41
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
Index: Lib/test/regrtest.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/regrtest.py,v
@@ -591,11 +1175,12 @@ retrieving revision 1.169
diff -u -r1.169 regrtest.py
--- Lib/test/regrtest.py 14 Jun 2005 09:31:28 -0000 1.169
+++ Lib/test/regrtest.py 17 Jul 2005 02:35:22 -0000
-@@ -1073,6 +1073,7 @@
+@@ -1073,6 +1073,8 @@
}
_expectations['freebsd5'] = _expectations['freebsd4']
_expectations['freebsd6'] = _expectations['freebsd4']
+_expectations['freebsd7'] = _expectations['freebsd4']
++_expectations['freebsd8'] = _expectations['freebsd4']
class _ExpectedSkips:
def __init__(self):
@@ -610,7 +1195,7 @@ diff -u -r1.27 test_fcntl.py
if sys.platform in ('netbsd1', 'Darwin1.2', 'darwin',
'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5', 'freebsd6',
-+ 'freebsd7',
++ 'freebsd7', 'freebsd8',
'bsdos2', 'bsdos3', 'bsdos4',
'openbsd', 'openbsd2', 'openbsd3'):
if struct.calcsize('l') == 8:
@@ -626,7 +1211,7 @@ diff -u -r1.78 test_socket.py
# protocol, at least for modern Linuxes.
if sys.platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
- 'darwin'):
-+ 'freebsd7', 'darwin'):
++ 'freebsd7', 'freebsd8', 'darwin'):
# avoid the 'echo' service on this platform, as there is an
# assumption breaking non-standard port/protocol entry
services = ('daytime', 'qotd', 'domain')
diff --git a/lang/python24/pkg-plist b/lang/python24/pkg-plist
index 9c946a43e15f..608b45ba4009 100644
--- a/lang/python24/pkg-plist
+++ b/lang/python24/pkg-plist
@@ -670,6 +670,8 @@ lib/lib%%PYTHON_VERSION%%.so.1
%%PYTHON_LIBDIR%%/plat-freebsd6/regen
%%PYTHON_LIBDIR%%/plat-freebsd7/IN.py
%%PYTHON_LIBDIR%%/plat-freebsd7/regen
+%%PYTHON_LIBDIR%%/plat-freebsd8/IN.py
+%%PYTHON_LIBDIR%%/plat-freebsd8/regen
%%PYTHON_LIBDIR%%/platform.py
%%PYTHON_LIBDIR%%/popen2.py
%%PYTHON_LIBDIR%%/poplib.py
@@ -1685,6 +1687,7 @@ lib/lib%%PYTHON_VERSION%%.so.1
@dirrm %%PYTHON_LIBDIR%%/test/decimaltestdata
@dirrm %%PYTHON_LIBDIR%%/test
@dirrm %%PYTHON_LIBDIR%%/site-packages
+@dirrm %%PYTHON_LIBDIR%%/plat-freebsd8
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd7
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd6
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd5
diff --git a/lang/python25/Makefile b/lang/python25/Makefile
index 970afaecc195..05c2793052f5 100644
--- a/lang/python25/Makefile
+++ b/lang/python25/Makefile
@@ -6,6 +6,7 @@
PORTNAME= python25
PORTVERSION= 2.5.1
+PORTREVISION= 1
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -38,6 +39,9 @@ PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//} \
DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION}
TOOLSDIR= ${PREFIX}/share/${PYTHON_VERSION}
+PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 \
+ plat-freebsd7 plat-freebsd8
+
BIN_SCRIPTS= idle pydoc python python-shared smtpd.py python-config \
python-shared-config
BINLINKS_SUB= -e 's,smtpd,smtpd${PYTHON_VER},' \
@@ -116,14 +120,6 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-.if ${OSVERSION} >= 700000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd6
-.elif ${OSVERSION} >= 600000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd7
-.else
-PLATFORMS=plat-freebsd4 plat-freebsd6 plat-freebsd7
-.endif
-
pre-patch:
${MKDIR} ${WRKSRC} ${SHARED_WRKSRC}/Modules
${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
diff --git a/lang/python25/files/patch-freebsd8 b/lang/python25/files/patch-freebsd8
new file mode 100644
index 000000000000..51c5c39f7026
--- /dev/null
+++ b/lang/python25/files/patch-freebsd8
@@ -0,0 +1,938 @@
+Index: Lib/plat-freebsd6/IN.py
+===================================================================
+--- Lib/plat-freebsd6/IN.py (revision 58696)
++++ Lib/plat-freebsd6/IN.py (revision 58697)
+@@ -1,6 +1,28 @@
+ # Generated by h2py from /usr/include/netinet/in.h
+
+ # Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
+ def __P(protos): return protos
+
+ def __STRING(x): return #x
+@@ -29,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -86,8 +110,6 @@
+ BIG_ENDIAN = _BIG_ENDIAN
+ PDP_ENDIAN = _PDP_ENDIAN
+ BYTE_ORDER = _BYTE_ORDER
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+ def __word_swap_int_var(x): return \
+
+ def __word_swap_int_const(x): return \
+@@ -96,12 +118,16 @@
+
+ def __byte_swap_int_var(x): return \
+
+-def __byte_swap_int_var(x): return \
+-
+ def __byte_swap_int_const(x): return \
+
+ def __byte_swap_int(x): return __byte_swap_int_var(x)
+
++def __byte_swap_long_var(x): return \
++
++def __byte_swap_long_const(x): return \
++
++def __byte_swap_long(x): return __byte_swap_long_var(x)
++
+ def __byte_swap_word_var(x): return \
+
+ def __byte_swap_word_const(x): return \
+@@ -229,47 +255,50 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
++IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+ IPPROTO_PFSYNC = 240
+ IPPROTO_OLD_DIVERT = 254
+ IPPROTO_MAX = 256
+ IPPROTO_DONE = 257
+ IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
+ IPPORT_RESERVED = 1024
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_MAX = 65535
+-def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++def IN_CLASSA(i): return (((u_int32_t)(i) & 0x80000000) == 0)
+
+-IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+-def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++def IN_CLASSB(i): return (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
+
+-IN_CLASSB_NET = (-65536)
++IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+-def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++def IN_CLASSC(i): return (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
+
+-IN_CLASSC_NET = (-256)
++IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSC_HOST = 0x000000ff
+-def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++def IN_CLASSD(i): return (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
+
+-IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_CLASSD_HOST = 0x0fffffff
+ def IN_MULTICAST(i): return IN_CLASSD(i)
+
+-def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_BADCLASS(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-INADDR_NONE = (-1)
++INADDR_NONE = 0xffffffff
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+ IP_HDRINCL = 2
+@@ -311,6 +340,8 @@
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_MAX_MEMBERSHIPS = 20
+@@ -339,7 +370,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -348,8 +379,8 @@
+ INET6_ADDRSTRLEN = 46
+ IPV6_ADDR_INT32_ONE = 1
+ IPV6_ADDR_INT32_TWO = 2
+-IPV6_ADDR_INT32_MNL = (-16711680)
+-IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_MNL = 0xff010000
++IPV6_ADDR_INT32_MLL = 0xff020000
+ IPV6_ADDR_INT32_SMP = 0x0000ffff
+ IPV6_ADDR_INT16_ULL = 0xfe80
+ IPV6_ADDR_INT16_USL = 0xfec0
+@@ -358,7 +389,7 @@
+ IPV6_ADDR_INT32_TWO = 0x02000000
+ IPV6_ADDR_INT32_MNL = 0x000001ff
+ IPV6_ADDR_INT32_MLL = 0x000002ff
+-IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT32_SMP = 0xffff0000
+ IPV6_ADDR_INT16_ULL = 0x80fe
+ IPV6_ADDR_INT16_USL = 0xc0fe
+ IPV6_ADDR_INT16_MLL = 0x02ff
+@@ -511,5 +542,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd7/IN.py
+===================================================================
+--- Lib/plat-freebsd7/IN.py (revision 58696)
++++ Lib/plat-freebsd7/IN.py (revision 58697)
+@@ -10,9 +10,9 @@
+ __GNUCLIKE_CTOR_SECTION_HANDLING = 1
+ __GNUCLIKE_BUILTIN_CONSTANT_P = 1
+ __GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_VAALIST = 1
+ __GNUC_VA_LIST_COMPATIBILITY = 1
+-__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_NEXT_ARG = 1
+ __GNUCLIKE_BUILTIN_MEMCPY = 1
+ __CC_SUPPORTS_INLINE = 1
+@@ -51,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -247,6 +249,7 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
+ IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+@@ -289,6 +292,10 @@
+
+ def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
+
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
+ INADDR_NONE = (-1)
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+@@ -326,14 +333,35 @@
+ IP_FW_ZERO = 53
+ IP_FW_GET = 54
+ IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+-IP_MAX_MEMBERSHIPS = 20
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+@@ -359,7 +387,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -430,6 +458,8 @@
+
+ def IN6_IS_SCOPE_LINKLOCAL(a): return \
+
++def IN6_IS_SCOPE_EMBED(a): return \
++
+ def IFA6_IS_DEPRECATED(a): return \
+
+ def IFA6_IS_INVALID(a): return \
+@@ -488,6 +518,7 @@
+ IPV6_TCLASS = 61
+ IPV6_DONTFRAG = 62
+ IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+@@ -531,5 +562,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd8/regen
+===================================================================
+--- Lib/plat-freebsd8/regen (revision 0)
++++ Lib/plat-freebsd8/regen (revision 58697)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++set -v
++python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+Index: Lib/plat-freebsd8/IN.py
+===================================================================
+--- Lib/plat-freebsd8/IN.py (revision 0)
++++ Lib/plat-freebsd8/IN.py (revision 58697)
+@@ -0,0 +1,571 @@
++# Generated by h2py from /usr/include/netinet/in.h
++
++# Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
++def __P(protos): return protos
++
++def __STRING(x): return #x
++
++def __XSTRING(x): return __STRING(x)
++
++def __P(protos): return ()
++
++def __STRING(x): return "x"
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __nonnull(x): return __attribute__((__nonnull__(x)))
++
++def __predict_true(exp): return __builtin_expect((exp), 1)
++
++def __predict_false(exp): return __builtin_expect((exp), 0)
++
++def __predict_true(exp): return (exp)
++
++def __predict_false(exp): return (exp)
++
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
++def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID_SOURCE(s): return __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
++
++def __SCCSID(s): return __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
++
++def __COPYRIGHT(s): return __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
++
++_POSIX_C_SOURCE = 199009
++_POSIX_C_SOURCE = 199209
++__XSI_VISIBLE = 600
++_POSIX_C_SOURCE = 200112
++__XSI_VISIBLE = 500
++_POSIX_C_SOURCE = 199506
++_POSIX_C_SOURCE = 198808
++__POSIX_VISIBLE = 200112
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 199506
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199309
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199209
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199009
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 198808
++__ISO_C_VISIBLE = 0
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 200112
++__XSI_VISIBLE = 600
++__BSD_VISIBLE = 1
++__ISO_C_VISIBLE = 1999
++
++# Included from sys/_types.h
++
++# Included from machine/_types.h
++
++# Included from machine/endian.h
++_QUAD_HIGHWORD = 1
++_QUAD_LOWWORD = 0
++_LITTLE_ENDIAN = 1234
++_BIG_ENDIAN = 4321
++_PDP_ENDIAN = 3412
++_BYTE_ORDER = _LITTLE_ENDIAN
++LITTLE_ENDIAN = _LITTLE_ENDIAN
++BIG_ENDIAN = _BIG_ENDIAN
++PDP_ENDIAN = _PDP_ENDIAN
++BYTE_ORDER = _BYTE_ORDER
++def __word_swap_int_var(x): return \
++
++def __word_swap_int_const(x): return \
++
++def __word_swap_int(x): return __word_swap_int_var(x)
++
++def __byte_swap_int_var(x): return \
++
++def __byte_swap_int_const(x): return \
++
++def __byte_swap_int(x): return __byte_swap_int_var(x)
++
++def __byte_swap_word_var(x): return \
++
++def __byte_swap_word_const(x): return \
++
++def __byte_swap_word(x): return __byte_swap_word_var(x)
++
++def __htonl(x): return __bswap32(x)
++
++def __htons(x): return __bswap16(x)
++
++def __ntohl(x): return __bswap32(x)
++
++def __ntohs(x): return __bswap16(x)
++
++IPPROTO_IP = 0
++IPPROTO_ICMP = 1
++IPPROTO_TCP = 6
++IPPROTO_UDP = 17
++def htonl(x): return __htonl(x)
++
++def htons(x): return __htons(x)
++
++def ntohl(x): return __ntohl(x)
++
++def ntohs(x): return __ntohs(x)
++
++IPPROTO_RAW = 255
++INET_ADDRSTRLEN = 16
++IPPROTO_HOPOPTS = 0
++IPPROTO_IGMP = 2
++IPPROTO_GGP = 3
++IPPROTO_IPV4 = 4
++IPPROTO_IPIP = IPPROTO_IPV4
++IPPROTO_ST = 7
++IPPROTO_EGP = 8
++IPPROTO_PIGP = 9
++IPPROTO_RCCMON = 10
++IPPROTO_NVPII = 11
++IPPROTO_PUP = 12
++IPPROTO_ARGUS = 13
++IPPROTO_EMCON = 14
++IPPROTO_XNET = 15
++IPPROTO_CHAOS = 16
++IPPROTO_MUX = 18
++IPPROTO_MEAS = 19
++IPPROTO_HMP = 20
++IPPROTO_PRM = 21
++IPPROTO_IDP = 22
++IPPROTO_TRUNK1 = 23
++IPPROTO_TRUNK2 = 24
++IPPROTO_LEAF1 = 25
++IPPROTO_LEAF2 = 26
++IPPROTO_RDP = 27
++IPPROTO_IRTP = 28
++IPPROTO_TP = 29
++IPPROTO_BLT = 30
++IPPROTO_NSP = 31
++IPPROTO_INP = 32
++IPPROTO_SEP = 33
++IPPROTO_3PC = 34
++IPPROTO_IDPR = 35
++IPPROTO_XTP = 36
++IPPROTO_DDP = 37
++IPPROTO_CMTP = 38
++IPPROTO_TPXX = 39
++IPPROTO_IL = 40
++IPPROTO_IPV6 = 41
++IPPROTO_SDRP = 42
++IPPROTO_ROUTING = 43
++IPPROTO_FRAGMENT = 44
++IPPROTO_IDRP = 45
++IPPROTO_RSVP = 46
++IPPROTO_GRE = 47
++IPPROTO_MHRP = 48
++IPPROTO_BHA = 49
++IPPROTO_ESP = 50
++IPPROTO_AH = 51
++IPPROTO_INLSP = 52
++IPPROTO_SWIPE = 53
++IPPROTO_NHRP = 54
++IPPROTO_MOBILE = 55
++IPPROTO_TLSP = 56
++IPPROTO_SKIP = 57
++IPPROTO_ICMPV6 = 58
++IPPROTO_NONE = 59
++IPPROTO_DSTOPTS = 60
++IPPROTO_AHIP = 61
++IPPROTO_CFTP = 62
++IPPROTO_HELLO = 63
++IPPROTO_SATEXPAK = 64
++IPPROTO_KRYPTOLAN = 65
++IPPROTO_RVD = 66
++IPPROTO_IPPC = 67
++IPPROTO_ADFS = 68
++IPPROTO_SATMON = 69
++IPPROTO_VISA = 70
++IPPROTO_IPCV = 71
++IPPROTO_CPNX = 72
++IPPROTO_CPHB = 73
++IPPROTO_WSN = 74
++IPPROTO_PVP = 75
++IPPROTO_BRSATMON = 76
++IPPROTO_ND = 77
++IPPROTO_WBMON = 78
++IPPROTO_WBEXPAK = 79
++IPPROTO_EON = 80
++IPPROTO_VMTP = 81
++IPPROTO_SVMTP = 82
++IPPROTO_VINES = 83
++IPPROTO_TTP = 84
++IPPROTO_IGP = 85
++IPPROTO_DGP = 86
++IPPROTO_TCF = 87
++IPPROTO_IGRP = 88
++IPPROTO_OSPFIGP = 89
++IPPROTO_SRPC = 90
++IPPROTO_LARP = 91
++IPPROTO_MTP = 92
++IPPROTO_AX25 = 93
++IPPROTO_IPEIP = 94
++IPPROTO_MICP = 95
++IPPROTO_SCCSP = 96
++IPPROTO_ETHERIP = 97
++IPPROTO_ENCAP = 98
++IPPROTO_APES = 99
++IPPROTO_GMTP = 100
++IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
++IPPROTO_PIM = 103
++IPPROTO_CARP = 112
++IPPROTO_PGM = 113
++IPPROTO_PFSYNC = 240
++IPPROTO_OLD_DIVERT = 254
++IPPROTO_MAX = 256
++IPPROTO_DONE = 257
++IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
++IPPORT_RESERVED = 1024
++IPPORT_HIFIRSTAUTO = 49152
++IPPORT_HILASTAUTO = 65535
++IPPORT_RESERVEDSTART = 600
++IPPORT_MAX = 65535
++def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++
++IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NSHIFT = 24
++IN_CLASSA_HOST = 0x00ffffff
++IN_CLASSA_MAX = 128
++def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++
++IN_CLASSB_NET = (-65536)
++IN_CLASSB_NSHIFT = 16
++IN_CLASSB_HOST = 0x0000ffff
++IN_CLASSB_MAX = 65536
++def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++
++IN_CLASSC_NET = (-256)
++IN_CLASSC_NSHIFT = 8
++IN_CLASSC_HOST = 0x000000ff
++def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++
++IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NSHIFT = 28
++IN_CLASSD_HOST = 0x0fffffff
++def IN_MULTICAST(i): return IN_CLASSD(i)
++
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
++INADDR_NONE = (-1)
++IN_LOOPBACKNET = 127
++IP_OPTIONS = 1
++IP_HDRINCL = 2
++IP_TOS = 3
++IP_TTL = 4
++IP_RECVOPTS = 5
++IP_RECVRETOPTS = 6
++IP_RECVDSTADDR = 7
++IP_SENDSRCADDR = IP_RECVDSTADDR
++IP_RETOPTS = 8
++IP_MULTICAST_IF = 9
++IP_MULTICAST_TTL = 10
++IP_MULTICAST_LOOP = 11
++IP_ADD_MEMBERSHIP = 12
++IP_DROP_MEMBERSHIP = 13
++IP_MULTICAST_VIF = 14
++IP_RSVP_ON = 15
++IP_RSVP_OFF = 16
++IP_RSVP_VIF_ON = 17
++IP_RSVP_VIF_OFF = 18
++IP_PORTRANGE = 19
++IP_RECVIF = 20
++IP_IPSEC_POLICY = 21
++IP_FAITH = 22
++IP_ONESBCAST = 23
++IP_FW_TABLE_ADD = 40
++IP_FW_TABLE_DEL = 41
++IP_FW_TABLE_FLUSH = 42
++IP_FW_TABLE_GETSIZE = 43
++IP_FW_TABLE_LIST = 44
++IP_FW_ADD = 50
++IP_FW_DEL = 51
++IP_FW_FLUSH = 52
++IP_FW_ZERO = 53
++IP_FW_GET = 54
++IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
++IP_DUMMYNET_CONFIGURE = 60
++IP_DUMMYNET_DEL = 61
++IP_DUMMYNET_FLUSH = 62
++IP_DUMMYNET_GET = 64
++IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
++IP_DEFAULT_MULTICAST_TTL = 1
++IP_DEFAULT_MULTICAST_LOOP = 1
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
++IP_PORTRANGE_DEFAULT = 0
++IP_PORTRANGE_HIGH = 1
++IP_PORTRANGE_LOW = 2
++IPPROTO_MAXID = (IPPROTO_AH + 1)
++IPCTL_FORWARDING = 1
++IPCTL_SENDREDIRECTS = 2
++IPCTL_DEFTTL = 3
++IPCTL_DEFMTU = 4
++IPCTL_RTEXPIRE = 5
++IPCTL_RTMINEXPIRE = 6
++IPCTL_RTMAXCACHE = 7
++IPCTL_SOURCEROUTE = 8
++IPCTL_DIRECTEDBROADCAST = 9
++IPCTL_INTRQMAXLEN = 10
++IPCTL_INTRQDROPS = 11
++IPCTL_STATS = 12
++IPCTL_ACCEPTSOURCEROUTE = 13
++IPCTL_FASTFORWARDING = 14
++IPCTL_KEEPFAITH = 15
++IPCTL_GIF_TTL = 16
++IPCTL_MAXID = 17
++def in_nullhost(x): return ((x).s_addr == INADDR_ANY)
++
++
++# Included from netinet6/in6.h
++__KAME_VERSION = "FreeBSD"
++IPV6PORT_RESERVED = 1024
++IPV6PORT_ANONMIN = 49152
++IPV6PORT_ANONMAX = 65535
++IPV6PORT_RESERVEDMIN = 600
++IPV6PORT_RESERVEDMAX = (IPV6PORT_RESERVED-1)
++INET6_ADDRSTRLEN = 46
++IPV6_ADDR_INT32_ONE = 1
++IPV6_ADDR_INT32_TWO = 2
++IPV6_ADDR_INT32_MNL = (-16711680)
++IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_SMP = 0x0000ffff
++IPV6_ADDR_INT16_ULL = 0xfe80
++IPV6_ADDR_INT16_USL = 0xfec0
++IPV6_ADDR_INT16_MLL = 0xff02
++IPV6_ADDR_INT32_ONE = 0x01000000
++IPV6_ADDR_INT32_TWO = 0x02000000
++IPV6_ADDR_INT32_MNL = 0x000001ff
++IPV6_ADDR_INT32_MLL = 0x000002ff
++IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT16_ULL = 0x80fe
++IPV6_ADDR_INT16_USL = 0xc0fe
++IPV6_ADDR_INT16_MLL = 0x02ff
++def IN6_IS_ADDR_UNSPECIFIED(a): return \
++
++def IN6_IS_ADDR_LOOPBACK(a): return \
++
++def IN6_IS_ADDR_V4COMPAT(a): return \
++
++def IN6_IS_ADDR_V4MAPPED(a): return \
++
++IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++__IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++__IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++__IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++__IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++__IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++__IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++def IN6_IS_ADDR_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_INTFACELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_SCOPE_LINKLOCAL(a): return \
++
++def IN6_IS_SCOPE_EMBED(a): return \
++
++def IFA6_IS_DEPRECATED(a): return \
++
++def IFA6_IS_INVALID(a): return \
++
++IPV6_OPTIONS = 1
++IPV6_RECVOPTS = 5
++IPV6_RECVRETOPTS = 6
++IPV6_RECVDSTADDR = 7
++IPV6_RETOPTS = 8
++IPV6_SOCKOPT_RESERVED1 = 3
++IPV6_UNICAST_HOPS = 4
++IPV6_MULTICAST_IF = 9
++IPV6_MULTICAST_HOPS = 10
++IPV6_MULTICAST_LOOP = 11
++IPV6_JOIN_GROUP = 12
++IPV6_LEAVE_GROUP = 13
++IPV6_PORTRANGE = 14
++ICMP6_FILTER = 18
++IPV6_2292PKTINFO = 19
++IPV6_2292HOPLIMIT = 20
++IPV6_2292NEXTHOP = 21
++IPV6_2292HOPOPTS = 22
++IPV6_2292DSTOPTS = 23
++IPV6_2292RTHDR = 24
++IPV6_2292PKTOPTIONS = 25
++IPV6_CHECKSUM = 26
++IPV6_V6ONLY = 27
++IPV6_BINDV6ONLY = IPV6_V6ONLY
++IPV6_IPSEC_POLICY = 28
++IPV6_FAITH = 29
++IPV6_FW_ADD = 30
++IPV6_FW_DEL = 31
++IPV6_FW_FLUSH = 32
++IPV6_FW_ZERO = 33
++IPV6_FW_GET = 34
++IPV6_RTHDRDSTOPTS = 35
++IPV6_RECVPKTINFO = 36
++IPV6_RECVHOPLIMIT = 37
++IPV6_RECVRTHDR = 38
++IPV6_RECVHOPOPTS = 39
++IPV6_RECVDSTOPTS = 40
++IPV6_RECVRTHDRDSTOPTS = 41
++IPV6_USE_MIN_MTU = 42
++IPV6_RECVPATHMTU = 43
++IPV6_PATHMTU = 44
++IPV6_REACHCONF = 45
++IPV6_PKTINFO = 46
++IPV6_HOPLIMIT = 47
++IPV6_NEXTHOP = 48
++IPV6_HOPOPTS = 49
++IPV6_DSTOPTS = 50
++IPV6_RTHDR = 51
++IPV6_PKTOPTIONS = 52
++IPV6_RECVTCLASS = 57
++IPV6_AUTOFLOWLABEL = 59
++IPV6_TCLASS = 61
++IPV6_DONTFRAG = 62
++IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
++IPV6_RTHDR_LOOSE = 0
++IPV6_RTHDR_STRICT = 1
++IPV6_RTHDR_TYPE_0 = 0
++IPV6_DEFAULT_MULTICAST_HOPS = 1
++IPV6_DEFAULT_MULTICAST_LOOP = 1
++IPV6_PORTRANGE_DEFAULT = 0
++IPV6_PORTRANGE_HIGH = 1
++IPV6_PORTRANGE_LOW = 2
++IPV6PROTO_MAXID = (IPPROTO_PIM + 1)
++IPV6CTL_FORWARDING = 1
++IPV6CTL_SENDREDIRECTS = 2
++IPV6CTL_DEFHLIM = 3
++IPV6CTL_DEFMTU = 4
++IPV6CTL_FORWSRCRT = 5
++IPV6CTL_STATS = 6
++IPV6CTL_MRTSTATS = 7
++IPV6CTL_MRTPROTO = 8
++IPV6CTL_MAXFRAGPACKETS = 9
++IPV6CTL_SOURCECHECK = 10
++IPV6CTL_SOURCECHECK_LOGINT = 11
++IPV6CTL_ACCEPT_RTADV = 12
++IPV6CTL_KEEPFAITH = 13
++IPV6CTL_LOG_INTERVAL = 14
++IPV6CTL_HDRNESTLIMIT = 15
++IPV6CTL_DAD_COUNT = 16
++IPV6CTL_AUTO_FLOWLABEL = 17
++IPV6CTL_DEFMCASTHLIM = 18
++IPV6CTL_GIF_HLIM = 19
++IPV6CTL_KAME_VERSION = 20
++IPV6CTL_USE_DEPRECATED = 21
++IPV6CTL_RR_PRUNE = 22
++IPV6CTL_MAPPED_ADDR = 23
++IPV6CTL_V6ONLY = 24
++IPV6CTL_RTEXPIRE = 25
++IPV6CTL_RTMINEXPIRE = 26
++IPV6CTL_RTMAXCACHE = 27
++IPV6CTL_USETEMPADDR = 32
++IPV6CTL_TEMPPLTIME = 33
++IPV6CTL_TEMPVLTIME = 34
++IPV6CTL_AUTO_LINKLOCAL = 35
++IPV6CTL_RIP6STATS = 36
++IPV6CTL_PREFER_TEMPADDR = 37
++IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
++IPV6CTL_MAXFRAGS = 41
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+--- Lib/posixfile.py.orig 2005-07-17 11:36:59.000000000 +0900
++++ Lib/posixfile.py 2007-10-28 21:41:27.000000000 +0900
+@@ -179,7 +179,7 @@
+ if sys.platform in ('netbsd1',
+ 'openbsd2',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4'):
+ flock = struct.pack('lxxxxlxxxxlhh', \
+ l_start, l_len, os.getpid(), l_type, l_whence)
+--- Lib/test/regrtest.py.orig 2007-03-09 04:58:46.000000000 +0900
++++ Lib/test/regrtest.py 2007-10-28 21:40:49.000000000 +0900
+@@ -1314,6 +1314,7 @@
+ _expectations['freebsd5'] = _expectations['freebsd4']
+ _expectations['freebsd6'] = _expectations['freebsd4']
+ _expectations['freebsd7'] = _expectations['freebsd4']
++_expectations['freebsd8'] = _expectations['freebsd4']
+
+ class _ExpectedSkips:
+ def __init__(self):
+--- Lib/test/test_fcntl.py.orig 2006-09-05 11:54:42.000000000 +0900
++++ Lib/test/test_fcntl.py 2007-10-28 21:41:12.000000000 +0900
+@@ -23,7 +23,7 @@
+ if sys.platform in ('netbsd1', 'netbsd2', 'netbsd3',
+ 'Darwin1.2', 'darwin',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4',
+ 'openbsd', 'openbsd2', 'openbsd3', 'openbsd4'):
+ if struct.calcsize('l') == 8:
+--- Lib/test/test_socket.py.orig 2007-04-01 03:56:11.000000000 +0900
++++ Lib/test/test_socket.py 2007-10-28 21:40:59.000000000 +0900
+@@ -316,7 +316,7 @@
+ # I've ordered this by protocols that have both a tcp and udp
+ # protocol, at least for modern Linuxes.
+ if sys.platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7', 'darwin'):
++ 'freebsd7', 'freebsd8', 'darwin'):
+ # avoid the 'echo' service on this platform, as there is an
+ # assumption breaking non-standard port/protocol entry
+ services = ('daytime', 'qotd', 'domain')
+--- setup.py.orig 2007-10-28 20:38:55.000000000 +0900
++++ setup.py 2007-10-28 21:40:05.000000000 +0900
+@@ -1045,7 +1045,7 @@
+ exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) )
+
+ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7'):
++ 'freebsd7', 'freebsd8'):
+ exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
+
+ if platform == 'sunos5':
diff --git a/lang/python25/pkg-plist b/lang/python25/pkg-plist
index 3098736ca2c1..580b8cfa52b4 100644
--- a/lang/python25/pkg-plist
+++ b/lang/python25/pkg-plist
@@ -750,6 +750,8 @@ lib/lib%%PYTHON_VERSION%%.so.1
%%PYTHON_LIBDIR%%/plat-freebsd6/regen
%%PYTHON_LIBDIR%%/plat-freebsd7/IN.py
%%PYTHON_LIBDIR%%/plat-freebsd7/regen
+%%PYTHON_LIBDIR%%/plat-freebsd8/IN.py
+%%PYTHON_LIBDIR%%/plat-freebsd8/regen
%%PYTHON_LIBDIR%%/platform.py
%%PYTHON_LIBDIR%%/popen2.py
%%PYTHON_LIBDIR%%/poplib.py
@@ -1868,6 +1870,7 @@ lib/lib%%PYTHON_VERSION%%.so.1
@dirrm %%PYTHON_LIBDIR%%/sqlite3/test
@dirrm %%PYTHON_LIBDIR%%/sqlite3
@dirrm %%PYTHON_LIBDIR%%/site-packages
+@dirrm %%PYTHON_LIBDIR%%/plat-freebsd8
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd7
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd6
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd5
diff --git a/lang/python26/Makefile b/lang/python26/Makefile
index 970afaecc195..05c2793052f5 100644
--- a/lang/python26/Makefile
+++ b/lang/python26/Makefile
@@ -6,6 +6,7 @@
PORTNAME= python25
PORTVERSION= 2.5.1
+PORTREVISION= 1
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -38,6 +39,9 @@ PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//} \
DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION}
TOOLSDIR= ${PREFIX}/share/${PYTHON_VERSION}
+PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 \
+ plat-freebsd7 plat-freebsd8
+
BIN_SCRIPTS= idle pydoc python python-shared smtpd.py python-config \
python-shared-config
BINLINKS_SUB= -e 's,smtpd,smtpd${PYTHON_VER},' \
@@ -116,14 +120,6 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-.if ${OSVERSION} >= 700000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd6
-.elif ${OSVERSION} >= 600000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd7
-.else
-PLATFORMS=plat-freebsd4 plat-freebsd6 plat-freebsd7
-.endif
-
pre-patch:
${MKDIR} ${WRKSRC} ${SHARED_WRKSRC}/Modules
${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
diff --git a/lang/python26/files/patch-freebsd8 b/lang/python26/files/patch-freebsd8
new file mode 100644
index 000000000000..51c5c39f7026
--- /dev/null
+++ b/lang/python26/files/patch-freebsd8
@@ -0,0 +1,938 @@
+Index: Lib/plat-freebsd6/IN.py
+===================================================================
+--- Lib/plat-freebsd6/IN.py (revision 58696)
++++ Lib/plat-freebsd6/IN.py (revision 58697)
+@@ -1,6 +1,28 @@
+ # Generated by h2py from /usr/include/netinet/in.h
+
+ # Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
+ def __P(protos): return protos
+
+ def __STRING(x): return #x
+@@ -29,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -86,8 +110,6 @@
+ BIG_ENDIAN = _BIG_ENDIAN
+ PDP_ENDIAN = _PDP_ENDIAN
+ BYTE_ORDER = _BYTE_ORDER
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+ def __word_swap_int_var(x): return \
+
+ def __word_swap_int_const(x): return \
+@@ -96,12 +118,16 @@
+
+ def __byte_swap_int_var(x): return \
+
+-def __byte_swap_int_var(x): return \
+-
+ def __byte_swap_int_const(x): return \
+
+ def __byte_swap_int(x): return __byte_swap_int_var(x)
+
++def __byte_swap_long_var(x): return \
++
++def __byte_swap_long_const(x): return \
++
++def __byte_swap_long(x): return __byte_swap_long_var(x)
++
+ def __byte_swap_word_var(x): return \
+
+ def __byte_swap_word_const(x): return \
+@@ -229,47 +255,50 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
++IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+ IPPROTO_PFSYNC = 240
+ IPPROTO_OLD_DIVERT = 254
+ IPPROTO_MAX = 256
+ IPPROTO_DONE = 257
+ IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
+ IPPORT_RESERVED = 1024
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_MAX = 65535
+-def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++def IN_CLASSA(i): return (((u_int32_t)(i) & 0x80000000) == 0)
+
+-IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+-def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++def IN_CLASSB(i): return (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
+
+-IN_CLASSB_NET = (-65536)
++IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+-def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++def IN_CLASSC(i): return (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
+
+-IN_CLASSC_NET = (-256)
++IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSC_HOST = 0x000000ff
+-def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++def IN_CLASSD(i): return (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
+
+-IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_CLASSD_HOST = 0x0fffffff
+ def IN_MULTICAST(i): return IN_CLASSD(i)
+
+-def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_BADCLASS(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-INADDR_NONE = (-1)
++INADDR_NONE = 0xffffffff
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+ IP_HDRINCL = 2
+@@ -311,6 +340,8 @@
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_MAX_MEMBERSHIPS = 20
+@@ -339,7 +370,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -348,8 +379,8 @@
+ INET6_ADDRSTRLEN = 46
+ IPV6_ADDR_INT32_ONE = 1
+ IPV6_ADDR_INT32_TWO = 2
+-IPV6_ADDR_INT32_MNL = (-16711680)
+-IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_MNL = 0xff010000
++IPV6_ADDR_INT32_MLL = 0xff020000
+ IPV6_ADDR_INT32_SMP = 0x0000ffff
+ IPV6_ADDR_INT16_ULL = 0xfe80
+ IPV6_ADDR_INT16_USL = 0xfec0
+@@ -358,7 +389,7 @@
+ IPV6_ADDR_INT32_TWO = 0x02000000
+ IPV6_ADDR_INT32_MNL = 0x000001ff
+ IPV6_ADDR_INT32_MLL = 0x000002ff
+-IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT32_SMP = 0xffff0000
+ IPV6_ADDR_INT16_ULL = 0x80fe
+ IPV6_ADDR_INT16_USL = 0xc0fe
+ IPV6_ADDR_INT16_MLL = 0x02ff
+@@ -511,5 +542,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd7/IN.py
+===================================================================
+--- Lib/plat-freebsd7/IN.py (revision 58696)
++++ Lib/plat-freebsd7/IN.py (revision 58697)
+@@ -10,9 +10,9 @@
+ __GNUCLIKE_CTOR_SECTION_HANDLING = 1
+ __GNUCLIKE_BUILTIN_CONSTANT_P = 1
+ __GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_VAALIST = 1
+ __GNUC_VA_LIST_COMPATIBILITY = 1
+-__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_NEXT_ARG = 1
+ __GNUCLIKE_BUILTIN_MEMCPY = 1
+ __CC_SUPPORTS_INLINE = 1
+@@ -51,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -247,6 +249,7 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
+ IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+@@ -289,6 +292,10 @@
+
+ def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
+
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
+ INADDR_NONE = (-1)
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+@@ -326,14 +333,35 @@
+ IP_FW_ZERO = 53
+ IP_FW_GET = 54
+ IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+-IP_MAX_MEMBERSHIPS = 20
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+@@ -359,7 +387,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -430,6 +458,8 @@
+
+ def IN6_IS_SCOPE_LINKLOCAL(a): return \
+
++def IN6_IS_SCOPE_EMBED(a): return \
++
+ def IFA6_IS_DEPRECATED(a): return \
+
+ def IFA6_IS_INVALID(a): return \
+@@ -488,6 +518,7 @@
+ IPV6_TCLASS = 61
+ IPV6_DONTFRAG = 62
+ IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+@@ -531,5 +562,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd8/regen
+===================================================================
+--- Lib/plat-freebsd8/regen (revision 0)
++++ Lib/plat-freebsd8/regen (revision 58697)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++set -v
++python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+Index: Lib/plat-freebsd8/IN.py
+===================================================================
+--- Lib/plat-freebsd8/IN.py (revision 0)
++++ Lib/plat-freebsd8/IN.py (revision 58697)
+@@ -0,0 +1,571 @@
++# Generated by h2py from /usr/include/netinet/in.h
++
++# Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
++def __P(protos): return protos
++
++def __STRING(x): return #x
++
++def __XSTRING(x): return __STRING(x)
++
++def __P(protos): return ()
++
++def __STRING(x): return "x"
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __nonnull(x): return __attribute__((__nonnull__(x)))
++
++def __predict_true(exp): return __builtin_expect((exp), 1)
++
++def __predict_false(exp): return __builtin_expect((exp), 0)
++
++def __predict_true(exp): return (exp)
++
++def __predict_false(exp): return (exp)
++
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
++def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID_SOURCE(s): return __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
++
++def __SCCSID(s): return __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
++
++def __COPYRIGHT(s): return __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
++
++_POSIX_C_SOURCE = 199009
++_POSIX_C_SOURCE = 199209
++__XSI_VISIBLE = 600
++_POSIX_C_SOURCE = 200112
++__XSI_VISIBLE = 500
++_POSIX_C_SOURCE = 199506
++_POSIX_C_SOURCE = 198808
++__POSIX_VISIBLE = 200112
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 199506
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199309
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199209
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199009
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 198808
++__ISO_C_VISIBLE = 0
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 200112
++__XSI_VISIBLE = 600
++__BSD_VISIBLE = 1
++__ISO_C_VISIBLE = 1999
++
++# Included from sys/_types.h
++
++# Included from machine/_types.h
++
++# Included from machine/endian.h
++_QUAD_HIGHWORD = 1
++_QUAD_LOWWORD = 0
++_LITTLE_ENDIAN = 1234
++_BIG_ENDIAN = 4321
++_PDP_ENDIAN = 3412
++_BYTE_ORDER = _LITTLE_ENDIAN
++LITTLE_ENDIAN = _LITTLE_ENDIAN
++BIG_ENDIAN = _BIG_ENDIAN
++PDP_ENDIAN = _PDP_ENDIAN
++BYTE_ORDER = _BYTE_ORDER
++def __word_swap_int_var(x): return \
++
++def __word_swap_int_const(x): return \
++
++def __word_swap_int(x): return __word_swap_int_var(x)
++
++def __byte_swap_int_var(x): return \
++
++def __byte_swap_int_const(x): return \
++
++def __byte_swap_int(x): return __byte_swap_int_var(x)
++
++def __byte_swap_word_var(x): return \
++
++def __byte_swap_word_const(x): return \
++
++def __byte_swap_word(x): return __byte_swap_word_var(x)
++
++def __htonl(x): return __bswap32(x)
++
++def __htons(x): return __bswap16(x)
++
++def __ntohl(x): return __bswap32(x)
++
++def __ntohs(x): return __bswap16(x)
++
++IPPROTO_IP = 0
++IPPROTO_ICMP = 1
++IPPROTO_TCP = 6
++IPPROTO_UDP = 17
++def htonl(x): return __htonl(x)
++
++def htons(x): return __htons(x)
++
++def ntohl(x): return __ntohl(x)
++
++def ntohs(x): return __ntohs(x)
++
++IPPROTO_RAW = 255
++INET_ADDRSTRLEN = 16
++IPPROTO_HOPOPTS = 0
++IPPROTO_IGMP = 2
++IPPROTO_GGP = 3
++IPPROTO_IPV4 = 4
++IPPROTO_IPIP = IPPROTO_IPV4
++IPPROTO_ST = 7
++IPPROTO_EGP = 8
++IPPROTO_PIGP = 9
++IPPROTO_RCCMON = 10
++IPPROTO_NVPII = 11
++IPPROTO_PUP = 12
++IPPROTO_ARGUS = 13
++IPPROTO_EMCON = 14
++IPPROTO_XNET = 15
++IPPROTO_CHAOS = 16
++IPPROTO_MUX = 18
++IPPROTO_MEAS = 19
++IPPROTO_HMP = 20
++IPPROTO_PRM = 21
++IPPROTO_IDP = 22
++IPPROTO_TRUNK1 = 23
++IPPROTO_TRUNK2 = 24
++IPPROTO_LEAF1 = 25
++IPPROTO_LEAF2 = 26
++IPPROTO_RDP = 27
++IPPROTO_IRTP = 28
++IPPROTO_TP = 29
++IPPROTO_BLT = 30
++IPPROTO_NSP = 31
++IPPROTO_INP = 32
++IPPROTO_SEP = 33
++IPPROTO_3PC = 34
++IPPROTO_IDPR = 35
++IPPROTO_XTP = 36
++IPPROTO_DDP = 37
++IPPROTO_CMTP = 38
++IPPROTO_TPXX = 39
++IPPROTO_IL = 40
++IPPROTO_IPV6 = 41
++IPPROTO_SDRP = 42
++IPPROTO_ROUTING = 43
++IPPROTO_FRAGMENT = 44
++IPPROTO_IDRP = 45
++IPPROTO_RSVP = 46
++IPPROTO_GRE = 47
++IPPROTO_MHRP = 48
++IPPROTO_BHA = 49
++IPPROTO_ESP = 50
++IPPROTO_AH = 51
++IPPROTO_INLSP = 52
++IPPROTO_SWIPE = 53
++IPPROTO_NHRP = 54
++IPPROTO_MOBILE = 55
++IPPROTO_TLSP = 56
++IPPROTO_SKIP = 57
++IPPROTO_ICMPV6 = 58
++IPPROTO_NONE = 59
++IPPROTO_DSTOPTS = 60
++IPPROTO_AHIP = 61
++IPPROTO_CFTP = 62
++IPPROTO_HELLO = 63
++IPPROTO_SATEXPAK = 64
++IPPROTO_KRYPTOLAN = 65
++IPPROTO_RVD = 66
++IPPROTO_IPPC = 67
++IPPROTO_ADFS = 68
++IPPROTO_SATMON = 69
++IPPROTO_VISA = 70
++IPPROTO_IPCV = 71
++IPPROTO_CPNX = 72
++IPPROTO_CPHB = 73
++IPPROTO_WSN = 74
++IPPROTO_PVP = 75
++IPPROTO_BRSATMON = 76
++IPPROTO_ND = 77
++IPPROTO_WBMON = 78
++IPPROTO_WBEXPAK = 79
++IPPROTO_EON = 80
++IPPROTO_VMTP = 81
++IPPROTO_SVMTP = 82
++IPPROTO_VINES = 83
++IPPROTO_TTP = 84
++IPPROTO_IGP = 85
++IPPROTO_DGP = 86
++IPPROTO_TCF = 87
++IPPROTO_IGRP = 88
++IPPROTO_OSPFIGP = 89
++IPPROTO_SRPC = 90
++IPPROTO_LARP = 91
++IPPROTO_MTP = 92
++IPPROTO_AX25 = 93
++IPPROTO_IPEIP = 94
++IPPROTO_MICP = 95
++IPPROTO_SCCSP = 96
++IPPROTO_ETHERIP = 97
++IPPROTO_ENCAP = 98
++IPPROTO_APES = 99
++IPPROTO_GMTP = 100
++IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
++IPPROTO_PIM = 103
++IPPROTO_CARP = 112
++IPPROTO_PGM = 113
++IPPROTO_PFSYNC = 240
++IPPROTO_OLD_DIVERT = 254
++IPPROTO_MAX = 256
++IPPROTO_DONE = 257
++IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
++IPPORT_RESERVED = 1024
++IPPORT_HIFIRSTAUTO = 49152
++IPPORT_HILASTAUTO = 65535
++IPPORT_RESERVEDSTART = 600
++IPPORT_MAX = 65535
++def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++
++IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NSHIFT = 24
++IN_CLASSA_HOST = 0x00ffffff
++IN_CLASSA_MAX = 128
++def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++
++IN_CLASSB_NET = (-65536)
++IN_CLASSB_NSHIFT = 16
++IN_CLASSB_HOST = 0x0000ffff
++IN_CLASSB_MAX = 65536
++def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++
++IN_CLASSC_NET = (-256)
++IN_CLASSC_NSHIFT = 8
++IN_CLASSC_HOST = 0x000000ff
++def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++
++IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NSHIFT = 28
++IN_CLASSD_HOST = 0x0fffffff
++def IN_MULTICAST(i): return IN_CLASSD(i)
++
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
++INADDR_NONE = (-1)
++IN_LOOPBACKNET = 127
++IP_OPTIONS = 1
++IP_HDRINCL = 2
++IP_TOS = 3
++IP_TTL = 4
++IP_RECVOPTS = 5
++IP_RECVRETOPTS = 6
++IP_RECVDSTADDR = 7
++IP_SENDSRCADDR = IP_RECVDSTADDR
++IP_RETOPTS = 8
++IP_MULTICAST_IF = 9
++IP_MULTICAST_TTL = 10
++IP_MULTICAST_LOOP = 11
++IP_ADD_MEMBERSHIP = 12
++IP_DROP_MEMBERSHIP = 13
++IP_MULTICAST_VIF = 14
++IP_RSVP_ON = 15
++IP_RSVP_OFF = 16
++IP_RSVP_VIF_ON = 17
++IP_RSVP_VIF_OFF = 18
++IP_PORTRANGE = 19
++IP_RECVIF = 20
++IP_IPSEC_POLICY = 21
++IP_FAITH = 22
++IP_ONESBCAST = 23
++IP_FW_TABLE_ADD = 40
++IP_FW_TABLE_DEL = 41
++IP_FW_TABLE_FLUSH = 42
++IP_FW_TABLE_GETSIZE = 43
++IP_FW_TABLE_LIST = 44
++IP_FW_ADD = 50
++IP_FW_DEL = 51
++IP_FW_FLUSH = 52
++IP_FW_ZERO = 53
++IP_FW_GET = 54
++IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
++IP_DUMMYNET_CONFIGURE = 60
++IP_DUMMYNET_DEL = 61
++IP_DUMMYNET_FLUSH = 62
++IP_DUMMYNET_GET = 64
++IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
++IP_DEFAULT_MULTICAST_TTL = 1
++IP_DEFAULT_MULTICAST_LOOP = 1
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
++IP_PORTRANGE_DEFAULT = 0
++IP_PORTRANGE_HIGH = 1
++IP_PORTRANGE_LOW = 2
++IPPROTO_MAXID = (IPPROTO_AH + 1)
++IPCTL_FORWARDING = 1
++IPCTL_SENDREDIRECTS = 2
++IPCTL_DEFTTL = 3
++IPCTL_DEFMTU = 4
++IPCTL_RTEXPIRE = 5
++IPCTL_RTMINEXPIRE = 6
++IPCTL_RTMAXCACHE = 7
++IPCTL_SOURCEROUTE = 8
++IPCTL_DIRECTEDBROADCAST = 9
++IPCTL_INTRQMAXLEN = 10
++IPCTL_INTRQDROPS = 11
++IPCTL_STATS = 12
++IPCTL_ACCEPTSOURCEROUTE = 13
++IPCTL_FASTFORWARDING = 14
++IPCTL_KEEPFAITH = 15
++IPCTL_GIF_TTL = 16
++IPCTL_MAXID = 17
++def in_nullhost(x): return ((x).s_addr == INADDR_ANY)
++
++
++# Included from netinet6/in6.h
++__KAME_VERSION = "FreeBSD"
++IPV6PORT_RESERVED = 1024
++IPV6PORT_ANONMIN = 49152
++IPV6PORT_ANONMAX = 65535
++IPV6PORT_RESERVEDMIN = 600
++IPV6PORT_RESERVEDMAX = (IPV6PORT_RESERVED-1)
++INET6_ADDRSTRLEN = 46
++IPV6_ADDR_INT32_ONE = 1
++IPV6_ADDR_INT32_TWO = 2
++IPV6_ADDR_INT32_MNL = (-16711680)
++IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_SMP = 0x0000ffff
++IPV6_ADDR_INT16_ULL = 0xfe80
++IPV6_ADDR_INT16_USL = 0xfec0
++IPV6_ADDR_INT16_MLL = 0xff02
++IPV6_ADDR_INT32_ONE = 0x01000000
++IPV6_ADDR_INT32_TWO = 0x02000000
++IPV6_ADDR_INT32_MNL = 0x000001ff
++IPV6_ADDR_INT32_MLL = 0x000002ff
++IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT16_ULL = 0x80fe
++IPV6_ADDR_INT16_USL = 0xc0fe
++IPV6_ADDR_INT16_MLL = 0x02ff
++def IN6_IS_ADDR_UNSPECIFIED(a): return \
++
++def IN6_IS_ADDR_LOOPBACK(a): return \
++
++def IN6_IS_ADDR_V4COMPAT(a): return \
++
++def IN6_IS_ADDR_V4MAPPED(a): return \
++
++IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++__IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++__IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++__IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++__IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++__IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++__IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++def IN6_IS_ADDR_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_INTFACELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_SCOPE_LINKLOCAL(a): return \
++
++def IN6_IS_SCOPE_EMBED(a): return \
++
++def IFA6_IS_DEPRECATED(a): return \
++
++def IFA6_IS_INVALID(a): return \
++
++IPV6_OPTIONS = 1
++IPV6_RECVOPTS = 5
++IPV6_RECVRETOPTS = 6
++IPV6_RECVDSTADDR = 7
++IPV6_RETOPTS = 8
++IPV6_SOCKOPT_RESERVED1 = 3
++IPV6_UNICAST_HOPS = 4
++IPV6_MULTICAST_IF = 9
++IPV6_MULTICAST_HOPS = 10
++IPV6_MULTICAST_LOOP = 11
++IPV6_JOIN_GROUP = 12
++IPV6_LEAVE_GROUP = 13
++IPV6_PORTRANGE = 14
++ICMP6_FILTER = 18
++IPV6_2292PKTINFO = 19
++IPV6_2292HOPLIMIT = 20
++IPV6_2292NEXTHOP = 21
++IPV6_2292HOPOPTS = 22
++IPV6_2292DSTOPTS = 23
++IPV6_2292RTHDR = 24
++IPV6_2292PKTOPTIONS = 25
++IPV6_CHECKSUM = 26
++IPV6_V6ONLY = 27
++IPV6_BINDV6ONLY = IPV6_V6ONLY
++IPV6_IPSEC_POLICY = 28
++IPV6_FAITH = 29
++IPV6_FW_ADD = 30
++IPV6_FW_DEL = 31
++IPV6_FW_FLUSH = 32
++IPV6_FW_ZERO = 33
++IPV6_FW_GET = 34
++IPV6_RTHDRDSTOPTS = 35
++IPV6_RECVPKTINFO = 36
++IPV6_RECVHOPLIMIT = 37
++IPV6_RECVRTHDR = 38
++IPV6_RECVHOPOPTS = 39
++IPV6_RECVDSTOPTS = 40
++IPV6_RECVRTHDRDSTOPTS = 41
++IPV6_USE_MIN_MTU = 42
++IPV6_RECVPATHMTU = 43
++IPV6_PATHMTU = 44
++IPV6_REACHCONF = 45
++IPV6_PKTINFO = 46
++IPV6_HOPLIMIT = 47
++IPV6_NEXTHOP = 48
++IPV6_HOPOPTS = 49
++IPV6_DSTOPTS = 50
++IPV6_RTHDR = 51
++IPV6_PKTOPTIONS = 52
++IPV6_RECVTCLASS = 57
++IPV6_AUTOFLOWLABEL = 59
++IPV6_TCLASS = 61
++IPV6_DONTFRAG = 62
++IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
++IPV6_RTHDR_LOOSE = 0
++IPV6_RTHDR_STRICT = 1
++IPV6_RTHDR_TYPE_0 = 0
++IPV6_DEFAULT_MULTICAST_HOPS = 1
++IPV6_DEFAULT_MULTICAST_LOOP = 1
++IPV6_PORTRANGE_DEFAULT = 0
++IPV6_PORTRANGE_HIGH = 1
++IPV6_PORTRANGE_LOW = 2
++IPV6PROTO_MAXID = (IPPROTO_PIM + 1)
++IPV6CTL_FORWARDING = 1
++IPV6CTL_SENDREDIRECTS = 2
++IPV6CTL_DEFHLIM = 3
++IPV6CTL_DEFMTU = 4
++IPV6CTL_FORWSRCRT = 5
++IPV6CTL_STATS = 6
++IPV6CTL_MRTSTATS = 7
++IPV6CTL_MRTPROTO = 8
++IPV6CTL_MAXFRAGPACKETS = 9
++IPV6CTL_SOURCECHECK = 10
++IPV6CTL_SOURCECHECK_LOGINT = 11
++IPV6CTL_ACCEPT_RTADV = 12
++IPV6CTL_KEEPFAITH = 13
++IPV6CTL_LOG_INTERVAL = 14
++IPV6CTL_HDRNESTLIMIT = 15
++IPV6CTL_DAD_COUNT = 16
++IPV6CTL_AUTO_FLOWLABEL = 17
++IPV6CTL_DEFMCASTHLIM = 18
++IPV6CTL_GIF_HLIM = 19
++IPV6CTL_KAME_VERSION = 20
++IPV6CTL_USE_DEPRECATED = 21
++IPV6CTL_RR_PRUNE = 22
++IPV6CTL_MAPPED_ADDR = 23
++IPV6CTL_V6ONLY = 24
++IPV6CTL_RTEXPIRE = 25
++IPV6CTL_RTMINEXPIRE = 26
++IPV6CTL_RTMAXCACHE = 27
++IPV6CTL_USETEMPADDR = 32
++IPV6CTL_TEMPPLTIME = 33
++IPV6CTL_TEMPVLTIME = 34
++IPV6CTL_AUTO_LINKLOCAL = 35
++IPV6CTL_RIP6STATS = 36
++IPV6CTL_PREFER_TEMPADDR = 37
++IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
++IPV6CTL_MAXFRAGS = 41
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+--- Lib/posixfile.py.orig 2005-07-17 11:36:59.000000000 +0900
++++ Lib/posixfile.py 2007-10-28 21:41:27.000000000 +0900
+@@ -179,7 +179,7 @@
+ if sys.platform in ('netbsd1',
+ 'openbsd2',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4'):
+ flock = struct.pack('lxxxxlxxxxlhh', \
+ l_start, l_len, os.getpid(), l_type, l_whence)
+--- Lib/test/regrtest.py.orig 2007-03-09 04:58:46.000000000 +0900
++++ Lib/test/regrtest.py 2007-10-28 21:40:49.000000000 +0900
+@@ -1314,6 +1314,7 @@
+ _expectations['freebsd5'] = _expectations['freebsd4']
+ _expectations['freebsd6'] = _expectations['freebsd4']
+ _expectations['freebsd7'] = _expectations['freebsd4']
++_expectations['freebsd8'] = _expectations['freebsd4']
+
+ class _ExpectedSkips:
+ def __init__(self):
+--- Lib/test/test_fcntl.py.orig 2006-09-05 11:54:42.000000000 +0900
++++ Lib/test/test_fcntl.py 2007-10-28 21:41:12.000000000 +0900
+@@ -23,7 +23,7 @@
+ if sys.platform in ('netbsd1', 'netbsd2', 'netbsd3',
+ 'Darwin1.2', 'darwin',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4',
+ 'openbsd', 'openbsd2', 'openbsd3', 'openbsd4'):
+ if struct.calcsize('l') == 8:
+--- Lib/test/test_socket.py.orig 2007-04-01 03:56:11.000000000 +0900
++++ Lib/test/test_socket.py 2007-10-28 21:40:59.000000000 +0900
+@@ -316,7 +316,7 @@
+ # I've ordered this by protocols that have both a tcp and udp
+ # protocol, at least for modern Linuxes.
+ if sys.platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7', 'darwin'):
++ 'freebsd7', 'freebsd8', 'darwin'):
+ # avoid the 'echo' service on this platform, as there is an
+ # assumption breaking non-standard port/protocol entry
+ services = ('daytime', 'qotd', 'domain')
+--- setup.py.orig 2007-10-28 20:38:55.000000000 +0900
++++ setup.py 2007-10-28 21:40:05.000000000 +0900
+@@ -1045,7 +1045,7 @@
+ exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) )
+
+ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7'):
++ 'freebsd7', 'freebsd8'):
+ exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
+
+ if platform == 'sunos5':
diff --git a/lang/python26/pkg-plist b/lang/python26/pkg-plist
index 3098736ca2c1..580b8cfa52b4 100644
--- a/lang/python26/pkg-plist
+++ b/lang/python26/pkg-plist
@@ -750,6 +750,8 @@ lib/lib%%PYTHON_VERSION%%.so.1
%%PYTHON_LIBDIR%%/plat-freebsd6/regen
%%PYTHON_LIBDIR%%/plat-freebsd7/IN.py
%%PYTHON_LIBDIR%%/plat-freebsd7/regen
+%%PYTHON_LIBDIR%%/plat-freebsd8/IN.py
+%%PYTHON_LIBDIR%%/plat-freebsd8/regen
%%PYTHON_LIBDIR%%/platform.py
%%PYTHON_LIBDIR%%/popen2.py
%%PYTHON_LIBDIR%%/poplib.py
@@ -1868,6 +1870,7 @@ lib/lib%%PYTHON_VERSION%%.so.1
@dirrm %%PYTHON_LIBDIR%%/sqlite3/test
@dirrm %%PYTHON_LIBDIR%%/sqlite3
@dirrm %%PYTHON_LIBDIR%%/site-packages
+@dirrm %%PYTHON_LIBDIR%%/plat-freebsd8
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd7
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd6
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd5
diff --git a/lang/python27/Makefile b/lang/python27/Makefile
index 970afaecc195..05c2793052f5 100644
--- a/lang/python27/Makefile
+++ b/lang/python27/Makefile
@@ -6,6 +6,7 @@
PORTNAME= python25
PORTVERSION= 2.5.1
+PORTREVISION= 1
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -38,6 +39,9 @@ PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//} \
DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION}
TOOLSDIR= ${PREFIX}/share/${PYTHON_VERSION}
+PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 \
+ plat-freebsd7 plat-freebsd8
+
BIN_SCRIPTS= idle pydoc python python-shared smtpd.py python-config \
python-shared-config
BINLINKS_SUB= -e 's,smtpd,smtpd${PYTHON_VER},' \
@@ -116,14 +120,6 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-.if ${OSVERSION} >= 700000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd6
-.elif ${OSVERSION} >= 600000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd7
-.else
-PLATFORMS=plat-freebsd4 plat-freebsd6 plat-freebsd7
-.endif
-
pre-patch:
${MKDIR} ${WRKSRC} ${SHARED_WRKSRC}/Modules
${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
diff --git a/lang/python27/files/patch-freebsd8 b/lang/python27/files/patch-freebsd8
new file mode 100644
index 000000000000..51c5c39f7026
--- /dev/null
+++ b/lang/python27/files/patch-freebsd8
@@ -0,0 +1,938 @@
+Index: Lib/plat-freebsd6/IN.py
+===================================================================
+--- Lib/plat-freebsd6/IN.py (revision 58696)
++++ Lib/plat-freebsd6/IN.py (revision 58697)
+@@ -1,6 +1,28 @@
+ # Generated by h2py from /usr/include/netinet/in.h
+
+ # Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
+ def __P(protos): return protos
+
+ def __STRING(x): return #x
+@@ -29,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -86,8 +110,6 @@
+ BIG_ENDIAN = _BIG_ENDIAN
+ PDP_ENDIAN = _PDP_ENDIAN
+ BYTE_ORDER = _BYTE_ORDER
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+ def __word_swap_int_var(x): return \
+
+ def __word_swap_int_const(x): return \
+@@ -96,12 +118,16 @@
+
+ def __byte_swap_int_var(x): return \
+
+-def __byte_swap_int_var(x): return \
+-
+ def __byte_swap_int_const(x): return \
+
+ def __byte_swap_int(x): return __byte_swap_int_var(x)
+
++def __byte_swap_long_var(x): return \
++
++def __byte_swap_long_const(x): return \
++
++def __byte_swap_long(x): return __byte_swap_long_var(x)
++
+ def __byte_swap_word_var(x): return \
+
+ def __byte_swap_word_const(x): return \
+@@ -229,47 +255,50 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
++IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+ IPPROTO_PFSYNC = 240
+ IPPROTO_OLD_DIVERT = 254
+ IPPROTO_MAX = 256
+ IPPROTO_DONE = 257
+ IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
+ IPPORT_RESERVED = 1024
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_MAX = 65535
+-def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++def IN_CLASSA(i): return (((u_int32_t)(i) & 0x80000000) == 0)
+
+-IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+-def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++def IN_CLASSB(i): return (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
+
+-IN_CLASSB_NET = (-65536)
++IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+-def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++def IN_CLASSC(i): return (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
+
+-IN_CLASSC_NET = (-256)
++IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSC_HOST = 0x000000ff
+-def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++def IN_CLASSD(i): return (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
+
+-IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_CLASSD_HOST = 0x0fffffff
+ def IN_MULTICAST(i): return IN_CLASSD(i)
+
+-def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_BADCLASS(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-INADDR_NONE = (-1)
++INADDR_NONE = 0xffffffff
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+ IP_HDRINCL = 2
+@@ -311,6 +340,8 @@
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_MAX_MEMBERSHIPS = 20
+@@ -339,7 +370,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -348,8 +379,8 @@
+ INET6_ADDRSTRLEN = 46
+ IPV6_ADDR_INT32_ONE = 1
+ IPV6_ADDR_INT32_TWO = 2
+-IPV6_ADDR_INT32_MNL = (-16711680)
+-IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_MNL = 0xff010000
++IPV6_ADDR_INT32_MLL = 0xff020000
+ IPV6_ADDR_INT32_SMP = 0x0000ffff
+ IPV6_ADDR_INT16_ULL = 0xfe80
+ IPV6_ADDR_INT16_USL = 0xfec0
+@@ -358,7 +389,7 @@
+ IPV6_ADDR_INT32_TWO = 0x02000000
+ IPV6_ADDR_INT32_MNL = 0x000001ff
+ IPV6_ADDR_INT32_MLL = 0x000002ff
+-IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT32_SMP = 0xffff0000
+ IPV6_ADDR_INT16_ULL = 0x80fe
+ IPV6_ADDR_INT16_USL = 0xc0fe
+ IPV6_ADDR_INT16_MLL = 0x02ff
+@@ -511,5 +542,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd7/IN.py
+===================================================================
+--- Lib/plat-freebsd7/IN.py (revision 58696)
++++ Lib/plat-freebsd7/IN.py (revision 58697)
+@@ -10,9 +10,9 @@
+ __GNUCLIKE_CTOR_SECTION_HANDLING = 1
+ __GNUCLIKE_BUILTIN_CONSTANT_P = 1
+ __GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_VAALIST = 1
+ __GNUC_VA_LIST_COMPATIBILITY = 1
+-__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_NEXT_ARG = 1
+ __GNUCLIKE_BUILTIN_MEMCPY = 1
+ __CC_SUPPORTS_INLINE = 1
+@@ -51,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -247,6 +249,7 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
+ IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+@@ -289,6 +292,10 @@
+
+ def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
+
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
+ INADDR_NONE = (-1)
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+@@ -326,14 +333,35 @@
+ IP_FW_ZERO = 53
+ IP_FW_GET = 54
+ IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+-IP_MAX_MEMBERSHIPS = 20
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+@@ -359,7 +387,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -430,6 +458,8 @@
+
+ def IN6_IS_SCOPE_LINKLOCAL(a): return \
+
++def IN6_IS_SCOPE_EMBED(a): return \
++
+ def IFA6_IS_DEPRECATED(a): return \
+
+ def IFA6_IS_INVALID(a): return \
+@@ -488,6 +518,7 @@
+ IPV6_TCLASS = 61
+ IPV6_DONTFRAG = 62
+ IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+@@ -531,5 +562,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd8/regen
+===================================================================
+--- Lib/plat-freebsd8/regen (revision 0)
++++ Lib/plat-freebsd8/regen (revision 58697)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++set -v
++python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+Index: Lib/plat-freebsd8/IN.py
+===================================================================
+--- Lib/plat-freebsd8/IN.py (revision 0)
++++ Lib/plat-freebsd8/IN.py (revision 58697)
+@@ -0,0 +1,571 @@
++# Generated by h2py from /usr/include/netinet/in.h
++
++# Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
++def __P(protos): return protos
++
++def __STRING(x): return #x
++
++def __XSTRING(x): return __STRING(x)
++
++def __P(protos): return ()
++
++def __STRING(x): return "x"
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __nonnull(x): return __attribute__((__nonnull__(x)))
++
++def __predict_true(exp): return __builtin_expect((exp), 1)
++
++def __predict_false(exp): return __builtin_expect((exp), 0)
++
++def __predict_true(exp): return (exp)
++
++def __predict_false(exp): return (exp)
++
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
++def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID_SOURCE(s): return __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
++
++def __SCCSID(s): return __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
++
++def __COPYRIGHT(s): return __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
++
++_POSIX_C_SOURCE = 199009
++_POSIX_C_SOURCE = 199209
++__XSI_VISIBLE = 600
++_POSIX_C_SOURCE = 200112
++__XSI_VISIBLE = 500
++_POSIX_C_SOURCE = 199506
++_POSIX_C_SOURCE = 198808
++__POSIX_VISIBLE = 200112
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 199506
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199309
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199209
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199009
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 198808
++__ISO_C_VISIBLE = 0
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 200112
++__XSI_VISIBLE = 600
++__BSD_VISIBLE = 1
++__ISO_C_VISIBLE = 1999
++
++# Included from sys/_types.h
++
++# Included from machine/_types.h
++
++# Included from machine/endian.h
++_QUAD_HIGHWORD = 1
++_QUAD_LOWWORD = 0
++_LITTLE_ENDIAN = 1234
++_BIG_ENDIAN = 4321
++_PDP_ENDIAN = 3412
++_BYTE_ORDER = _LITTLE_ENDIAN
++LITTLE_ENDIAN = _LITTLE_ENDIAN
++BIG_ENDIAN = _BIG_ENDIAN
++PDP_ENDIAN = _PDP_ENDIAN
++BYTE_ORDER = _BYTE_ORDER
++def __word_swap_int_var(x): return \
++
++def __word_swap_int_const(x): return \
++
++def __word_swap_int(x): return __word_swap_int_var(x)
++
++def __byte_swap_int_var(x): return \
++
++def __byte_swap_int_const(x): return \
++
++def __byte_swap_int(x): return __byte_swap_int_var(x)
++
++def __byte_swap_word_var(x): return \
++
++def __byte_swap_word_const(x): return \
++
++def __byte_swap_word(x): return __byte_swap_word_var(x)
++
++def __htonl(x): return __bswap32(x)
++
++def __htons(x): return __bswap16(x)
++
++def __ntohl(x): return __bswap32(x)
++
++def __ntohs(x): return __bswap16(x)
++
++IPPROTO_IP = 0
++IPPROTO_ICMP = 1
++IPPROTO_TCP = 6
++IPPROTO_UDP = 17
++def htonl(x): return __htonl(x)
++
++def htons(x): return __htons(x)
++
++def ntohl(x): return __ntohl(x)
++
++def ntohs(x): return __ntohs(x)
++
++IPPROTO_RAW = 255
++INET_ADDRSTRLEN = 16
++IPPROTO_HOPOPTS = 0
++IPPROTO_IGMP = 2
++IPPROTO_GGP = 3
++IPPROTO_IPV4 = 4
++IPPROTO_IPIP = IPPROTO_IPV4
++IPPROTO_ST = 7
++IPPROTO_EGP = 8
++IPPROTO_PIGP = 9
++IPPROTO_RCCMON = 10
++IPPROTO_NVPII = 11
++IPPROTO_PUP = 12
++IPPROTO_ARGUS = 13
++IPPROTO_EMCON = 14
++IPPROTO_XNET = 15
++IPPROTO_CHAOS = 16
++IPPROTO_MUX = 18
++IPPROTO_MEAS = 19
++IPPROTO_HMP = 20
++IPPROTO_PRM = 21
++IPPROTO_IDP = 22
++IPPROTO_TRUNK1 = 23
++IPPROTO_TRUNK2 = 24
++IPPROTO_LEAF1 = 25
++IPPROTO_LEAF2 = 26
++IPPROTO_RDP = 27
++IPPROTO_IRTP = 28
++IPPROTO_TP = 29
++IPPROTO_BLT = 30
++IPPROTO_NSP = 31
++IPPROTO_INP = 32
++IPPROTO_SEP = 33
++IPPROTO_3PC = 34
++IPPROTO_IDPR = 35
++IPPROTO_XTP = 36
++IPPROTO_DDP = 37
++IPPROTO_CMTP = 38
++IPPROTO_TPXX = 39
++IPPROTO_IL = 40
++IPPROTO_IPV6 = 41
++IPPROTO_SDRP = 42
++IPPROTO_ROUTING = 43
++IPPROTO_FRAGMENT = 44
++IPPROTO_IDRP = 45
++IPPROTO_RSVP = 46
++IPPROTO_GRE = 47
++IPPROTO_MHRP = 48
++IPPROTO_BHA = 49
++IPPROTO_ESP = 50
++IPPROTO_AH = 51
++IPPROTO_INLSP = 52
++IPPROTO_SWIPE = 53
++IPPROTO_NHRP = 54
++IPPROTO_MOBILE = 55
++IPPROTO_TLSP = 56
++IPPROTO_SKIP = 57
++IPPROTO_ICMPV6 = 58
++IPPROTO_NONE = 59
++IPPROTO_DSTOPTS = 60
++IPPROTO_AHIP = 61
++IPPROTO_CFTP = 62
++IPPROTO_HELLO = 63
++IPPROTO_SATEXPAK = 64
++IPPROTO_KRYPTOLAN = 65
++IPPROTO_RVD = 66
++IPPROTO_IPPC = 67
++IPPROTO_ADFS = 68
++IPPROTO_SATMON = 69
++IPPROTO_VISA = 70
++IPPROTO_IPCV = 71
++IPPROTO_CPNX = 72
++IPPROTO_CPHB = 73
++IPPROTO_WSN = 74
++IPPROTO_PVP = 75
++IPPROTO_BRSATMON = 76
++IPPROTO_ND = 77
++IPPROTO_WBMON = 78
++IPPROTO_WBEXPAK = 79
++IPPROTO_EON = 80
++IPPROTO_VMTP = 81
++IPPROTO_SVMTP = 82
++IPPROTO_VINES = 83
++IPPROTO_TTP = 84
++IPPROTO_IGP = 85
++IPPROTO_DGP = 86
++IPPROTO_TCF = 87
++IPPROTO_IGRP = 88
++IPPROTO_OSPFIGP = 89
++IPPROTO_SRPC = 90
++IPPROTO_LARP = 91
++IPPROTO_MTP = 92
++IPPROTO_AX25 = 93
++IPPROTO_IPEIP = 94
++IPPROTO_MICP = 95
++IPPROTO_SCCSP = 96
++IPPROTO_ETHERIP = 97
++IPPROTO_ENCAP = 98
++IPPROTO_APES = 99
++IPPROTO_GMTP = 100
++IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
++IPPROTO_PIM = 103
++IPPROTO_CARP = 112
++IPPROTO_PGM = 113
++IPPROTO_PFSYNC = 240
++IPPROTO_OLD_DIVERT = 254
++IPPROTO_MAX = 256
++IPPROTO_DONE = 257
++IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
++IPPORT_RESERVED = 1024
++IPPORT_HIFIRSTAUTO = 49152
++IPPORT_HILASTAUTO = 65535
++IPPORT_RESERVEDSTART = 600
++IPPORT_MAX = 65535
++def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++
++IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NSHIFT = 24
++IN_CLASSA_HOST = 0x00ffffff
++IN_CLASSA_MAX = 128
++def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++
++IN_CLASSB_NET = (-65536)
++IN_CLASSB_NSHIFT = 16
++IN_CLASSB_HOST = 0x0000ffff
++IN_CLASSB_MAX = 65536
++def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++
++IN_CLASSC_NET = (-256)
++IN_CLASSC_NSHIFT = 8
++IN_CLASSC_HOST = 0x000000ff
++def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++
++IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NSHIFT = 28
++IN_CLASSD_HOST = 0x0fffffff
++def IN_MULTICAST(i): return IN_CLASSD(i)
++
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
++INADDR_NONE = (-1)
++IN_LOOPBACKNET = 127
++IP_OPTIONS = 1
++IP_HDRINCL = 2
++IP_TOS = 3
++IP_TTL = 4
++IP_RECVOPTS = 5
++IP_RECVRETOPTS = 6
++IP_RECVDSTADDR = 7
++IP_SENDSRCADDR = IP_RECVDSTADDR
++IP_RETOPTS = 8
++IP_MULTICAST_IF = 9
++IP_MULTICAST_TTL = 10
++IP_MULTICAST_LOOP = 11
++IP_ADD_MEMBERSHIP = 12
++IP_DROP_MEMBERSHIP = 13
++IP_MULTICAST_VIF = 14
++IP_RSVP_ON = 15
++IP_RSVP_OFF = 16
++IP_RSVP_VIF_ON = 17
++IP_RSVP_VIF_OFF = 18
++IP_PORTRANGE = 19
++IP_RECVIF = 20
++IP_IPSEC_POLICY = 21
++IP_FAITH = 22
++IP_ONESBCAST = 23
++IP_FW_TABLE_ADD = 40
++IP_FW_TABLE_DEL = 41
++IP_FW_TABLE_FLUSH = 42
++IP_FW_TABLE_GETSIZE = 43
++IP_FW_TABLE_LIST = 44
++IP_FW_ADD = 50
++IP_FW_DEL = 51
++IP_FW_FLUSH = 52
++IP_FW_ZERO = 53
++IP_FW_GET = 54
++IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
++IP_DUMMYNET_CONFIGURE = 60
++IP_DUMMYNET_DEL = 61
++IP_DUMMYNET_FLUSH = 62
++IP_DUMMYNET_GET = 64
++IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
++IP_DEFAULT_MULTICAST_TTL = 1
++IP_DEFAULT_MULTICAST_LOOP = 1
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
++IP_PORTRANGE_DEFAULT = 0
++IP_PORTRANGE_HIGH = 1
++IP_PORTRANGE_LOW = 2
++IPPROTO_MAXID = (IPPROTO_AH + 1)
++IPCTL_FORWARDING = 1
++IPCTL_SENDREDIRECTS = 2
++IPCTL_DEFTTL = 3
++IPCTL_DEFMTU = 4
++IPCTL_RTEXPIRE = 5
++IPCTL_RTMINEXPIRE = 6
++IPCTL_RTMAXCACHE = 7
++IPCTL_SOURCEROUTE = 8
++IPCTL_DIRECTEDBROADCAST = 9
++IPCTL_INTRQMAXLEN = 10
++IPCTL_INTRQDROPS = 11
++IPCTL_STATS = 12
++IPCTL_ACCEPTSOURCEROUTE = 13
++IPCTL_FASTFORWARDING = 14
++IPCTL_KEEPFAITH = 15
++IPCTL_GIF_TTL = 16
++IPCTL_MAXID = 17
++def in_nullhost(x): return ((x).s_addr == INADDR_ANY)
++
++
++# Included from netinet6/in6.h
++__KAME_VERSION = "FreeBSD"
++IPV6PORT_RESERVED = 1024
++IPV6PORT_ANONMIN = 49152
++IPV6PORT_ANONMAX = 65535
++IPV6PORT_RESERVEDMIN = 600
++IPV6PORT_RESERVEDMAX = (IPV6PORT_RESERVED-1)
++INET6_ADDRSTRLEN = 46
++IPV6_ADDR_INT32_ONE = 1
++IPV6_ADDR_INT32_TWO = 2
++IPV6_ADDR_INT32_MNL = (-16711680)
++IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_SMP = 0x0000ffff
++IPV6_ADDR_INT16_ULL = 0xfe80
++IPV6_ADDR_INT16_USL = 0xfec0
++IPV6_ADDR_INT16_MLL = 0xff02
++IPV6_ADDR_INT32_ONE = 0x01000000
++IPV6_ADDR_INT32_TWO = 0x02000000
++IPV6_ADDR_INT32_MNL = 0x000001ff
++IPV6_ADDR_INT32_MLL = 0x000002ff
++IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT16_ULL = 0x80fe
++IPV6_ADDR_INT16_USL = 0xc0fe
++IPV6_ADDR_INT16_MLL = 0x02ff
++def IN6_IS_ADDR_UNSPECIFIED(a): return \
++
++def IN6_IS_ADDR_LOOPBACK(a): return \
++
++def IN6_IS_ADDR_V4COMPAT(a): return \
++
++def IN6_IS_ADDR_V4MAPPED(a): return \
++
++IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++__IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++__IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++__IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++__IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++__IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++__IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++def IN6_IS_ADDR_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_INTFACELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_SCOPE_LINKLOCAL(a): return \
++
++def IN6_IS_SCOPE_EMBED(a): return \
++
++def IFA6_IS_DEPRECATED(a): return \
++
++def IFA6_IS_INVALID(a): return \
++
++IPV6_OPTIONS = 1
++IPV6_RECVOPTS = 5
++IPV6_RECVRETOPTS = 6
++IPV6_RECVDSTADDR = 7
++IPV6_RETOPTS = 8
++IPV6_SOCKOPT_RESERVED1 = 3
++IPV6_UNICAST_HOPS = 4
++IPV6_MULTICAST_IF = 9
++IPV6_MULTICAST_HOPS = 10
++IPV6_MULTICAST_LOOP = 11
++IPV6_JOIN_GROUP = 12
++IPV6_LEAVE_GROUP = 13
++IPV6_PORTRANGE = 14
++ICMP6_FILTER = 18
++IPV6_2292PKTINFO = 19
++IPV6_2292HOPLIMIT = 20
++IPV6_2292NEXTHOP = 21
++IPV6_2292HOPOPTS = 22
++IPV6_2292DSTOPTS = 23
++IPV6_2292RTHDR = 24
++IPV6_2292PKTOPTIONS = 25
++IPV6_CHECKSUM = 26
++IPV6_V6ONLY = 27
++IPV6_BINDV6ONLY = IPV6_V6ONLY
++IPV6_IPSEC_POLICY = 28
++IPV6_FAITH = 29
++IPV6_FW_ADD = 30
++IPV6_FW_DEL = 31
++IPV6_FW_FLUSH = 32
++IPV6_FW_ZERO = 33
++IPV6_FW_GET = 34
++IPV6_RTHDRDSTOPTS = 35
++IPV6_RECVPKTINFO = 36
++IPV6_RECVHOPLIMIT = 37
++IPV6_RECVRTHDR = 38
++IPV6_RECVHOPOPTS = 39
++IPV6_RECVDSTOPTS = 40
++IPV6_RECVRTHDRDSTOPTS = 41
++IPV6_USE_MIN_MTU = 42
++IPV6_RECVPATHMTU = 43
++IPV6_PATHMTU = 44
++IPV6_REACHCONF = 45
++IPV6_PKTINFO = 46
++IPV6_HOPLIMIT = 47
++IPV6_NEXTHOP = 48
++IPV6_HOPOPTS = 49
++IPV6_DSTOPTS = 50
++IPV6_RTHDR = 51
++IPV6_PKTOPTIONS = 52
++IPV6_RECVTCLASS = 57
++IPV6_AUTOFLOWLABEL = 59
++IPV6_TCLASS = 61
++IPV6_DONTFRAG = 62
++IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
++IPV6_RTHDR_LOOSE = 0
++IPV6_RTHDR_STRICT = 1
++IPV6_RTHDR_TYPE_0 = 0
++IPV6_DEFAULT_MULTICAST_HOPS = 1
++IPV6_DEFAULT_MULTICAST_LOOP = 1
++IPV6_PORTRANGE_DEFAULT = 0
++IPV6_PORTRANGE_HIGH = 1
++IPV6_PORTRANGE_LOW = 2
++IPV6PROTO_MAXID = (IPPROTO_PIM + 1)
++IPV6CTL_FORWARDING = 1
++IPV6CTL_SENDREDIRECTS = 2
++IPV6CTL_DEFHLIM = 3
++IPV6CTL_DEFMTU = 4
++IPV6CTL_FORWSRCRT = 5
++IPV6CTL_STATS = 6
++IPV6CTL_MRTSTATS = 7
++IPV6CTL_MRTPROTO = 8
++IPV6CTL_MAXFRAGPACKETS = 9
++IPV6CTL_SOURCECHECK = 10
++IPV6CTL_SOURCECHECK_LOGINT = 11
++IPV6CTL_ACCEPT_RTADV = 12
++IPV6CTL_KEEPFAITH = 13
++IPV6CTL_LOG_INTERVAL = 14
++IPV6CTL_HDRNESTLIMIT = 15
++IPV6CTL_DAD_COUNT = 16
++IPV6CTL_AUTO_FLOWLABEL = 17
++IPV6CTL_DEFMCASTHLIM = 18
++IPV6CTL_GIF_HLIM = 19
++IPV6CTL_KAME_VERSION = 20
++IPV6CTL_USE_DEPRECATED = 21
++IPV6CTL_RR_PRUNE = 22
++IPV6CTL_MAPPED_ADDR = 23
++IPV6CTL_V6ONLY = 24
++IPV6CTL_RTEXPIRE = 25
++IPV6CTL_RTMINEXPIRE = 26
++IPV6CTL_RTMAXCACHE = 27
++IPV6CTL_USETEMPADDR = 32
++IPV6CTL_TEMPPLTIME = 33
++IPV6CTL_TEMPVLTIME = 34
++IPV6CTL_AUTO_LINKLOCAL = 35
++IPV6CTL_RIP6STATS = 36
++IPV6CTL_PREFER_TEMPADDR = 37
++IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
++IPV6CTL_MAXFRAGS = 41
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+--- Lib/posixfile.py.orig 2005-07-17 11:36:59.000000000 +0900
++++ Lib/posixfile.py 2007-10-28 21:41:27.000000000 +0900
+@@ -179,7 +179,7 @@
+ if sys.platform in ('netbsd1',
+ 'openbsd2',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4'):
+ flock = struct.pack('lxxxxlxxxxlhh', \
+ l_start, l_len, os.getpid(), l_type, l_whence)
+--- Lib/test/regrtest.py.orig 2007-03-09 04:58:46.000000000 +0900
++++ Lib/test/regrtest.py 2007-10-28 21:40:49.000000000 +0900
+@@ -1314,6 +1314,7 @@
+ _expectations['freebsd5'] = _expectations['freebsd4']
+ _expectations['freebsd6'] = _expectations['freebsd4']
+ _expectations['freebsd7'] = _expectations['freebsd4']
++_expectations['freebsd8'] = _expectations['freebsd4']
+
+ class _ExpectedSkips:
+ def __init__(self):
+--- Lib/test/test_fcntl.py.orig 2006-09-05 11:54:42.000000000 +0900
++++ Lib/test/test_fcntl.py 2007-10-28 21:41:12.000000000 +0900
+@@ -23,7 +23,7 @@
+ if sys.platform in ('netbsd1', 'netbsd2', 'netbsd3',
+ 'Darwin1.2', 'darwin',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4',
+ 'openbsd', 'openbsd2', 'openbsd3', 'openbsd4'):
+ if struct.calcsize('l') == 8:
+--- Lib/test/test_socket.py.orig 2007-04-01 03:56:11.000000000 +0900
++++ Lib/test/test_socket.py 2007-10-28 21:40:59.000000000 +0900
+@@ -316,7 +316,7 @@
+ # I've ordered this by protocols that have both a tcp and udp
+ # protocol, at least for modern Linuxes.
+ if sys.platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7', 'darwin'):
++ 'freebsd7', 'freebsd8', 'darwin'):
+ # avoid the 'echo' service on this platform, as there is an
+ # assumption breaking non-standard port/protocol entry
+ services = ('daytime', 'qotd', 'domain')
+--- setup.py.orig 2007-10-28 20:38:55.000000000 +0900
++++ setup.py 2007-10-28 21:40:05.000000000 +0900
+@@ -1045,7 +1045,7 @@
+ exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) )
+
+ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7'):
++ 'freebsd7', 'freebsd8'):
+ exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
+
+ if platform == 'sunos5':
diff --git a/lang/python27/pkg-plist b/lang/python27/pkg-plist
index 3098736ca2c1..580b8cfa52b4 100644
--- a/lang/python27/pkg-plist
+++ b/lang/python27/pkg-plist
@@ -750,6 +750,8 @@ lib/lib%%PYTHON_VERSION%%.so.1
%%PYTHON_LIBDIR%%/plat-freebsd6/regen
%%PYTHON_LIBDIR%%/plat-freebsd7/IN.py
%%PYTHON_LIBDIR%%/plat-freebsd7/regen
+%%PYTHON_LIBDIR%%/plat-freebsd8/IN.py
+%%PYTHON_LIBDIR%%/plat-freebsd8/regen
%%PYTHON_LIBDIR%%/platform.py
%%PYTHON_LIBDIR%%/popen2.py
%%PYTHON_LIBDIR%%/poplib.py
@@ -1868,6 +1870,7 @@ lib/lib%%PYTHON_VERSION%%.so.1
@dirrm %%PYTHON_LIBDIR%%/sqlite3/test
@dirrm %%PYTHON_LIBDIR%%/sqlite3
@dirrm %%PYTHON_LIBDIR%%/site-packages
+@dirrm %%PYTHON_LIBDIR%%/plat-freebsd8
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd7
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd6
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd5
diff --git a/lang/python30/Makefile b/lang/python30/Makefile
index 970afaecc195..05c2793052f5 100644
--- a/lang/python30/Makefile
+++ b/lang/python30/Makefile
@@ -6,6 +6,7 @@
PORTNAME= python25
PORTVERSION= 2.5.1
+PORTREVISION= 1
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -38,6 +39,9 @@ PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//} \
DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION}
TOOLSDIR= ${PREFIX}/share/${PYTHON_VERSION}
+PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 \
+ plat-freebsd7 plat-freebsd8
+
BIN_SCRIPTS= idle pydoc python python-shared smtpd.py python-config \
python-shared-config
BINLINKS_SUB= -e 's,smtpd,smtpd${PYTHON_VER},' \
@@ -116,14 +120,6 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-.if ${OSVERSION} >= 700000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd6
-.elif ${OSVERSION} >= 600000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd7
-.else
-PLATFORMS=plat-freebsd4 plat-freebsd6 plat-freebsd7
-.endif
-
pre-patch:
${MKDIR} ${WRKSRC} ${SHARED_WRKSRC}/Modules
${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
diff --git a/lang/python30/files/patch-freebsd8 b/lang/python30/files/patch-freebsd8
new file mode 100644
index 000000000000..51c5c39f7026
--- /dev/null
+++ b/lang/python30/files/patch-freebsd8
@@ -0,0 +1,938 @@
+Index: Lib/plat-freebsd6/IN.py
+===================================================================
+--- Lib/plat-freebsd6/IN.py (revision 58696)
++++ Lib/plat-freebsd6/IN.py (revision 58697)
+@@ -1,6 +1,28 @@
+ # Generated by h2py from /usr/include/netinet/in.h
+
+ # Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
+ def __P(protos): return protos
+
+ def __STRING(x): return #x
+@@ -29,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -86,8 +110,6 @@
+ BIG_ENDIAN = _BIG_ENDIAN
+ PDP_ENDIAN = _PDP_ENDIAN
+ BYTE_ORDER = _BYTE_ORDER
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+ def __word_swap_int_var(x): return \
+
+ def __word_swap_int_const(x): return \
+@@ -96,12 +118,16 @@
+
+ def __byte_swap_int_var(x): return \
+
+-def __byte_swap_int_var(x): return \
+-
+ def __byte_swap_int_const(x): return \
+
+ def __byte_swap_int(x): return __byte_swap_int_var(x)
+
++def __byte_swap_long_var(x): return \
++
++def __byte_swap_long_const(x): return \
++
++def __byte_swap_long(x): return __byte_swap_long_var(x)
++
+ def __byte_swap_word_var(x): return \
+
+ def __byte_swap_word_const(x): return \
+@@ -229,47 +255,50 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
++IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+ IPPROTO_PFSYNC = 240
+ IPPROTO_OLD_DIVERT = 254
+ IPPROTO_MAX = 256
+ IPPROTO_DONE = 257
+ IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
+ IPPORT_RESERVED = 1024
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_MAX = 65535
+-def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++def IN_CLASSA(i): return (((u_int32_t)(i) & 0x80000000) == 0)
+
+-IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+-def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++def IN_CLASSB(i): return (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
+
+-IN_CLASSB_NET = (-65536)
++IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+-def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++def IN_CLASSC(i): return (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
+
+-IN_CLASSC_NET = (-256)
++IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSC_HOST = 0x000000ff
+-def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++def IN_CLASSD(i): return (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
+
+-IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_CLASSD_HOST = 0x0fffffff
+ def IN_MULTICAST(i): return IN_CLASSD(i)
+
+-def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_BADCLASS(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-INADDR_NONE = (-1)
++INADDR_NONE = 0xffffffff
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+ IP_HDRINCL = 2
+@@ -311,6 +340,8 @@
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_MAX_MEMBERSHIPS = 20
+@@ -339,7 +370,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -348,8 +379,8 @@
+ INET6_ADDRSTRLEN = 46
+ IPV6_ADDR_INT32_ONE = 1
+ IPV6_ADDR_INT32_TWO = 2
+-IPV6_ADDR_INT32_MNL = (-16711680)
+-IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_MNL = 0xff010000
++IPV6_ADDR_INT32_MLL = 0xff020000
+ IPV6_ADDR_INT32_SMP = 0x0000ffff
+ IPV6_ADDR_INT16_ULL = 0xfe80
+ IPV6_ADDR_INT16_USL = 0xfec0
+@@ -358,7 +389,7 @@
+ IPV6_ADDR_INT32_TWO = 0x02000000
+ IPV6_ADDR_INT32_MNL = 0x000001ff
+ IPV6_ADDR_INT32_MLL = 0x000002ff
+-IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT32_SMP = 0xffff0000
+ IPV6_ADDR_INT16_ULL = 0x80fe
+ IPV6_ADDR_INT16_USL = 0xc0fe
+ IPV6_ADDR_INT16_MLL = 0x02ff
+@@ -511,5 +542,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd7/IN.py
+===================================================================
+--- Lib/plat-freebsd7/IN.py (revision 58696)
++++ Lib/plat-freebsd7/IN.py (revision 58697)
+@@ -10,9 +10,9 @@
+ __GNUCLIKE_CTOR_SECTION_HANDLING = 1
+ __GNUCLIKE_BUILTIN_CONSTANT_P = 1
+ __GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_VAALIST = 1
+ __GNUC_VA_LIST_COMPATIBILITY = 1
+-__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_NEXT_ARG = 1
+ __GNUCLIKE_BUILTIN_MEMCPY = 1
+ __CC_SUPPORTS_INLINE = 1
+@@ -51,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -247,6 +249,7 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
+ IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+@@ -289,6 +292,10 @@
+
+ def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
+
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
+ INADDR_NONE = (-1)
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+@@ -326,14 +333,35 @@
+ IP_FW_ZERO = 53
+ IP_FW_GET = 54
+ IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+-IP_MAX_MEMBERSHIPS = 20
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+@@ -359,7 +387,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -430,6 +458,8 @@
+
+ def IN6_IS_SCOPE_LINKLOCAL(a): return \
+
++def IN6_IS_SCOPE_EMBED(a): return \
++
+ def IFA6_IS_DEPRECATED(a): return \
+
+ def IFA6_IS_INVALID(a): return \
+@@ -488,6 +518,7 @@
+ IPV6_TCLASS = 61
+ IPV6_DONTFRAG = 62
+ IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+@@ -531,5 +562,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd8/regen
+===================================================================
+--- Lib/plat-freebsd8/regen (revision 0)
++++ Lib/plat-freebsd8/regen (revision 58697)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++set -v
++python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+Index: Lib/plat-freebsd8/IN.py
+===================================================================
+--- Lib/plat-freebsd8/IN.py (revision 0)
++++ Lib/plat-freebsd8/IN.py (revision 58697)
+@@ -0,0 +1,571 @@
++# Generated by h2py from /usr/include/netinet/in.h
++
++# Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
++def __P(protos): return protos
++
++def __STRING(x): return #x
++
++def __XSTRING(x): return __STRING(x)
++
++def __P(protos): return ()
++
++def __STRING(x): return "x"
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __nonnull(x): return __attribute__((__nonnull__(x)))
++
++def __predict_true(exp): return __builtin_expect((exp), 1)
++
++def __predict_false(exp): return __builtin_expect((exp), 0)
++
++def __predict_true(exp): return (exp)
++
++def __predict_false(exp): return (exp)
++
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
++def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID_SOURCE(s): return __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
++
++def __SCCSID(s): return __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
++
++def __COPYRIGHT(s): return __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
++
++_POSIX_C_SOURCE = 199009
++_POSIX_C_SOURCE = 199209
++__XSI_VISIBLE = 600
++_POSIX_C_SOURCE = 200112
++__XSI_VISIBLE = 500
++_POSIX_C_SOURCE = 199506
++_POSIX_C_SOURCE = 198808
++__POSIX_VISIBLE = 200112
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 199506
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199309
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199209
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199009
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 198808
++__ISO_C_VISIBLE = 0
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 200112
++__XSI_VISIBLE = 600
++__BSD_VISIBLE = 1
++__ISO_C_VISIBLE = 1999
++
++# Included from sys/_types.h
++
++# Included from machine/_types.h
++
++# Included from machine/endian.h
++_QUAD_HIGHWORD = 1
++_QUAD_LOWWORD = 0
++_LITTLE_ENDIAN = 1234
++_BIG_ENDIAN = 4321
++_PDP_ENDIAN = 3412
++_BYTE_ORDER = _LITTLE_ENDIAN
++LITTLE_ENDIAN = _LITTLE_ENDIAN
++BIG_ENDIAN = _BIG_ENDIAN
++PDP_ENDIAN = _PDP_ENDIAN
++BYTE_ORDER = _BYTE_ORDER
++def __word_swap_int_var(x): return \
++
++def __word_swap_int_const(x): return \
++
++def __word_swap_int(x): return __word_swap_int_var(x)
++
++def __byte_swap_int_var(x): return \
++
++def __byte_swap_int_const(x): return \
++
++def __byte_swap_int(x): return __byte_swap_int_var(x)
++
++def __byte_swap_word_var(x): return \
++
++def __byte_swap_word_const(x): return \
++
++def __byte_swap_word(x): return __byte_swap_word_var(x)
++
++def __htonl(x): return __bswap32(x)
++
++def __htons(x): return __bswap16(x)
++
++def __ntohl(x): return __bswap32(x)
++
++def __ntohs(x): return __bswap16(x)
++
++IPPROTO_IP = 0
++IPPROTO_ICMP = 1
++IPPROTO_TCP = 6
++IPPROTO_UDP = 17
++def htonl(x): return __htonl(x)
++
++def htons(x): return __htons(x)
++
++def ntohl(x): return __ntohl(x)
++
++def ntohs(x): return __ntohs(x)
++
++IPPROTO_RAW = 255
++INET_ADDRSTRLEN = 16
++IPPROTO_HOPOPTS = 0
++IPPROTO_IGMP = 2
++IPPROTO_GGP = 3
++IPPROTO_IPV4 = 4
++IPPROTO_IPIP = IPPROTO_IPV4
++IPPROTO_ST = 7
++IPPROTO_EGP = 8
++IPPROTO_PIGP = 9
++IPPROTO_RCCMON = 10
++IPPROTO_NVPII = 11
++IPPROTO_PUP = 12
++IPPROTO_ARGUS = 13
++IPPROTO_EMCON = 14
++IPPROTO_XNET = 15
++IPPROTO_CHAOS = 16
++IPPROTO_MUX = 18
++IPPROTO_MEAS = 19
++IPPROTO_HMP = 20
++IPPROTO_PRM = 21
++IPPROTO_IDP = 22
++IPPROTO_TRUNK1 = 23
++IPPROTO_TRUNK2 = 24
++IPPROTO_LEAF1 = 25
++IPPROTO_LEAF2 = 26
++IPPROTO_RDP = 27
++IPPROTO_IRTP = 28
++IPPROTO_TP = 29
++IPPROTO_BLT = 30
++IPPROTO_NSP = 31
++IPPROTO_INP = 32
++IPPROTO_SEP = 33
++IPPROTO_3PC = 34
++IPPROTO_IDPR = 35
++IPPROTO_XTP = 36
++IPPROTO_DDP = 37
++IPPROTO_CMTP = 38
++IPPROTO_TPXX = 39
++IPPROTO_IL = 40
++IPPROTO_IPV6 = 41
++IPPROTO_SDRP = 42
++IPPROTO_ROUTING = 43
++IPPROTO_FRAGMENT = 44
++IPPROTO_IDRP = 45
++IPPROTO_RSVP = 46
++IPPROTO_GRE = 47
++IPPROTO_MHRP = 48
++IPPROTO_BHA = 49
++IPPROTO_ESP = 50
++IPPROTO_AH = 51
++IPPROTO_INLSP = 52
++IPPROTO_SWIPE = 53
++IPPROTO_NHRP = 54
++IPPROTO_MOBILE = 55
++IPPROTO_TLSP = 56
++IPPROTO_SKIP = 57
++IPPROTO_ICMPV6 = 58
++IPPROTO_NONE = 59
++IPPROTO_DSTOPTS = 60
++IPPROTO_AHIP = 61
++IPPROTO_CFTP = 62
++IPPROTO_HELLO = 63
++IPPROTO_SATEXPAK = 64
++IPPROTO_KRYPTOLAN = 65
++IPPROTO_RVD = 66
++IPPROTO_IPPC = 67
++IPPROTO_ADFS = 68
++IPPROTO_SATMON = 69
++IPPROTO_VISA = 70
++IPPROTO_IPCV = 71
++IPPROTO_CPNX = 72
++IPPROTO_CPHB = 73
++IPPROTO_WSN = 74
++IPPROTO_PVP = 75
++IPPROTO_BRSATMON = 76
++IPPROTO_ND = 77
++IPPROTO_WBMON = 78
++IPPROTO_WBEXPAK = 79
++IPPROTO_EON = 80
++IPPROTO_VMTP = 81
++IPPROTO_SVMTP = 82
++IPPROTO_VINES = 83
++IPPROTO_TTP = 84
++IPPROTO_IGP = 85
++IPPROTO_DGP = 86
++IPPROTO_TCF = 87
++IPPROTO_IGRP = 88
++IPPROTO_OSPFIGP = 89
++IPPROTO_SRPC = 90
++IPPROTO_LARP = 91
++IPPROTO_MTP = 92
++IPPROTO_AX25 = 93
++IPPROTO_IPEIP = 94
++IPPROTO_MICP = 95
++IPPROTO_SCCSP = 96
++IPPROTO_ETHERIP = 97
++IPPROTO_ENCAP = 98
++IPPROTO_APES = 99
++IPPROTO_GMTP = 100
++IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
++IPPROTO_PIM = 103
++IPPROTO_CARP = 112
++IPPROTO_PGM = 113
++IPPROTO_PFSYNC = 240
++IPPROTO_OLD_DIVERT = 254
++IPPROTO_MAX = 256
++IPPROTO_DONE = 257
++IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
++IPPORT_RESERVED = 1024
++IPPORT_HIFIRSTAUTO = 49152
++IPPORT_HILASTAUTO = 65535
++IPPORT_RESERVEDSTART = 600
++IPPORT_MAX = 65535
++def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++
++IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NSHIFT = 24
++IN_CLASSA_HOST = 0x00ffffff
++IN_CLASSA_MAX = 128
++def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++
++IN_CLASSB_NET = (-65536)
++IN_CLASSB_NSHIFT = 16
++IN_CLASSB_HOST = 0x0000ffff
++IN_CLASSB_MAX = 65536
++def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++
++IN_CLASSC_NET = (-256)
++IN_CLASSC_NSHIFT = 8
++IN_CLASSC_HOST = 0x000000ff
++def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++
++IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NSHIFT = 28
++IN_CLASSD_HOST = 0x0fffffff
++def IN_MULTICAST(i): return IN_CLASSD(i)
++
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
++INADDR_NONE = (-1)
++IN_LOOPBACKNET = 127
++IP_OPTIONS = 1
++IP_HDRINCL = 2
++IP_TOS = 3
++IP_TTL = 4
++IP_RECVOPTS = 5
++IP_RECVRETOPTS = 6
++IP_RECVDSTADDR = 7
++IP_SENDSRCADDR = IP_RECVDSTADDR
++IP_RETOPTS = 8
++IP_MULTICAST_IF = 9
++IP_MULTICAST_TTL = 10
++IP_MULTICAST_LOOP = 11
++IP_ADD_MEMBERSHIP = 12
++IP_DROP_MEMBERSHIP = 13
++IP_MULTICAST_VIF = 14
++IP_RSVP_ON = 15
++IP_RSVP_OFF = 16
++IP_RSVP_VIF_ON = 17
++IP_RSVP_VIF_OFF = 18
++IP_PORTRANGE = 19
++IP_RECVIF = 20
++IP_IPSEC_POLICY = 21
++IP_FAITH = 22
++IP_ONESBCAST = 23
++IP_FW_TABLE_ADD = 40
++IP_FW_TABLE_DEL = 41
++IP_FW_TABLE_FLUSH = 42
++IP_FW_TABLE_GETSIZE = 43
++IP_FW_TABLE_LIST = 44
++IP_FW_ADD = 50
++IP_FW_DEL = 51
++IP_FW_FLUSH = 52
++IP_FW_ZERO = 53
++IP_FW_GET = 54
++IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
++IP_DUMMYNET_CONFIGURE = 60
++IP_DUMMYNET_DEL = 61
++IP_DUMMYNET_FLUSH = 62
++IP_DUMMYNET_GET = 64
++IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
++IP_DEFAULT_MULTICAST_TTL = 1
++IP_DEFAULT_MULTICAST_LOOP = 1
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
++IP_PORTRANGE_DEFAULT = 0
++IP_PORTRANGE_HIGH = 1
++IP_PORTRANGE_LOW = 2
++IPPROTO_MAXID = (IPPROTO_AH + 1)
++IPCTL_FORWARDING = 1
++IPCTL_SENDREDIRECTS = 2
++IPCTL_DEFTTL = 3
++IPCTL_DEFMTU = 4
++IPCTL_RTEXPIRE = 5
++IPCTL_RTMINEXPIRE = 6
++IPCTL_RTMAXCACHE = 7
++IPCTL_SOURCEROUTE = 8
++IPCTL_DIRECTEDBROADCAST = 9
++IPCTL_INTRQMAXLEN = 10
++IPCTL_INTRQDROPS = 11
++IPCTL_STATS = 12
++IPCTL_ACCEPTSOURCEROUTE = 13
++IPCTL_FASTFORWARDING = 14
++IPCTL_KEEPFAITH = 15
++IPCTL_GIF_TTL = 16
++IPCTL_MAXID = 17
++def in_nullhost(x): return ((x).s_addr == INADDR_ANY)
++
++
++# Included from netinet6/in6.h
++__KAME_VERSION = "FreeBSD"
++IPV6PORT_RESERVED = 1024
++IPV6PORT_ANONMIN = 49152
++IPV6PORT_ANONMAX = 65535
++IPV6PORT_RESERVEDMIN = 600
++IPV6PORT_RESERVEDMAX = (IPV6PORT_RESERVED-1)
++INET6_ADDRSTRLEN = 46
++IPV6_ADDR_INT32_ONE = 1
++IPV6_ADDR_INT32_TWO = 2
++IPV6_ADDR_INT32_MNL = (-16711680)
++IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_SMP = 0x0000ffff
++IPV6_ADDR_INT16_ULL = 0xfe80
++IPV6_ADDR_INT16_USL = 0xfec0
++IPV6_ADDR_INT16_MLL = 0xff02
++IPV6_ADDR_INT32_ONE = 0x01000000
++IPV6_ADDR_INT32_TWO = 0x02000000
++IPV6_ADDR_INT32_MNL = 0x000001ff
++IPV6_ADDR_INT32_MLL = 0x000002ff
++IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT16_ULL = 0x80fe
++IPV6_ADDR_INT16_USL = 0xc0fe
++IPV6_ADDR_INT16_MLL = 0x02ff
++def IN6_IS_ADDR_UNSPECIFIED(a): return \
++
++def IN6_IS_ADDR_LOOPBACK(a): return \
++
++def IN6_IS_ADDR_V4COMPAT(a): return \
++
++def IN6_IS_ADDR_V4MAPPED(a): return \
++
++IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++__IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++__IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++__IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++__IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++__IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++__IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++def IN6_IS_ADDR_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_INTFACELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_SCOPE_LINKLOCAL(a): return \
++
++def IN6_IS_SCOPE_EMBED(a): return \
++
++def IFA6_IS_DEPRECATED(a): return \
++
++def IFA6_IS_INVALID(a): return \
++
++IPV6_OPTIONS = 1
++IPV6_RECVOPTS = 5
++IPV6_RECVRETOPTS = 6
++IPV6_RECVDSTADDR = 7
++IPV6_RETOPTS = 8
++IPV6_SOCKOPT_RESERVED1 = 3
++IPV6_UNICAST_HOPS = 4
++IPV6_MULTICAST_IF = 9
++IPV6_MULTICAST_HOPS = 10
++IPV6_MULTICAST_LOOP = 11
++IPV6_JOIN_GROUP = 12
++IPV6_LEAVE_GROUP = 13
++IPV6_PORTRANGE = 14
++ICMP6_FILTER = 18
++IPV6_2292PKTINFO = 19
++IPV6_2292HOPLIMIT = 20
++IPV6_2292NEXTHOP = 21
++IPV6_2292HOPOPTS = 22
++IPV6_2292DSTOPTS = 23
++IPV6_2292RTHDR = 24
++IPV6_2292PKTOPTIONS = 25
++IPV6_CHECKSUM = 26
++IPV6_V6ONLY = 27
++IPV6_BINDV6ONLY = IPV6_V6ONLY
++IPV6_IPSEC_POLICY = 28
++IPV6_FAITH = 29
++IPV6_FW_ADD = 30
++IPV6_FW_DEL = 31
++IPV6_FW_FLUSH = 32
++IPV6_FW_ZERO = 33
++IPV6_FW_GET = 34
++IPV6_RTHDRDSTOPTS = 35
++IPV6_RECVPKTINFO = 36
++IPV6_RECVHOPLIMIT = 37
++IPV6_RECVRTHDR = 38
++IPV6_RECVHOPOPTS = 39
++IPV6_RECVDSTOPTS = 40
++IPV6_RECVRTHDRDSTOPTS = 41
++IPV6_USE_MIN_MTU = 42
++IPV6_RECVPATHMTU = 43
++IPV6_PATHMTU = 44
++IPV6_REACHCONF = 45
++IPV6_PKTINFO = 46
++IPV6_HOPLIMIT = 47
++IPV6_NEXTHOP = 48
++IPV6_HOPOPTS = 49
++IPV6_DSTOPTS = 50
++IPV6_RTHDR = 51
++IPV6_PKTOPTIONS = 52
++IPV6_RECVTCLASS = 57
++IPV6_AUTOFLOWLABEL = 59
++IPV6_TCLASS = 61
++IPV6_DONTFRAG = 62
++IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
++IPV6_RTHDR_LOOSE = 0
++IPV6_RTHDR_STRICT = 1
++IPV6_RTHDR_TYPE_0 = 0
++IPV6_DEFAULT_MULTICAST_HOPS = 1
++IPV6_DEFAULT_MULTICAST_LOOP = 1
++IPV6_PORTRANGE_DEFAULT = 0
++IPV6_PORTRANGE_HIGH = 1
++IPV6_PORTRANGE_LOW = 2
++IPV6PROTO_MAXID = (IPPROTO_PIM + 1)
++IPV6CTL_FORWARDING = 1
++IPV6CTL_SENDREDIRECTS = 2
++IPV6CTL_DEFHLIM = 3
++IPV6CTL_DEFMTU = 4
++IPV6CTL_FORWSRCRT = 5
++IPV6CTL_STATS = 6
++IPV6CTL_MRTSTATS = 7
++IPV6CTL_MRTPROTO = 8
++IPV6CTL_MAXFRAGPACKETS = 9
++IPV6CTL_SOURCECHECK = 10
++IPV6CTL_SOURCECHECK_LOGINT = 11
++IPV6CTL_ACCEPT_RTADV = 12
++IPV6CTL_KEEPFAITH = 13
++IPV6CTL_LOG_INTERVAL = 14
++IPV6CTL_HDRNESTLIMIT = 15
++IPV6CTL_DAD_COUNT = 16
++IPV6CTL_AUTO_FLOWLABEL = 17
++IPV6CTL_DEFMCASTHLIM = 18
++IPV6CTL_GIF_HLIM = 19
++IPV6CTL_KAME_VERSION = 20
++IPV6CTL_USE_DEPRECATED = 21
++IPV6CTL_RR_PRUNE = 22
++IPV6CTL_MAPPED_ADDR = 23
++IPV6CTL_V6ONLY = 24
++IPV6CTL_RTEXPIRE = 25
++IPV6CTL_RTMINEXPIRE = 26
++IPV6CTL_RTMAXCACHE = 27
++IPV6CTL_USETEMPADDR = 32
++IPV6CTL_TEMPPLTIME = 33
++IPV6CTL_TEMPVLTIME = 34
++IPV6CTL_AUTO_LINKLOCAL = 35
++IPV6CTL_RIP6STATS = 36
++IPV6CTL_PREFER_TEMPADDR = 37
++IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
++IPV6CTL_MAXFRAGS = 41
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+--- Lib/posixfile.py.orig 2005-07-17 11:36:59.000000000 +0900
++++ Lib/posixfile.py 2007-10-28 21:41:27.000000000 +0900
+@@ -179,7 +179,7 @@
+ if sys.platform in ('netbsd1',
+ 'openbsd2',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4'):
+ flock = struct.pack('lxxxxlxxxxlhh', \
+ l_start, l_len, os.getpid(), l_type, l_whence)
+--- Lib/test/regrtest.py.orig 2007-03-09 04:58:46.000000000 +0900
++++ Lib/test/regrtest.py 2007-10-28 21:40:49.000000000 +0900
+@@ -1314,6 +1314,7 @@
+ _expectations['freebsd5'] = _expectations['freebsd4']
+ _expectations['freebsd6'] = _expectations['freebsd4']
+ _expectations['freebsd7'] = _expectations['freebsd4']
++_expectations['freebsd8'] = _expectations['freebsd4']
+
+ class _ExpectedSkips:
+ def __init__(self):
+--- Lib/test/test_fcntl.py.orig 2006-09-05 11:54:42.000000000 +0900
++++ Lib/test/test_fcntl.py 2007-10-28 21:41:12.000000000 +0900
+@@ -23,7 +23,7 @@
+ if sys.platform in ('netbsd1', 'netbsd2', 'netbsd3',
+ 'Darwin1.2', 'darwin',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4',
+ 'openbsd', 'openbsd2', 'openbsd3', 'openbsd4'):
+ if struct.calcsize('l') == 8:
+--- Lib/test/test_socket.py.orig 2007-04-01 03:56:11.000000000 +0900
++++ Lib/test/test_socket.py 2007-10-28 21:40:59.000000000 +0900
+@@ -316,7 +316,7 @@
+ # I've ordered this by protocols that have both a tcp and udp
+ # protocol, at least for modern Linuxes.
+ if sys.platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7', 'darwin'):
++ 'freebsd7', 'freebsd8', 'darwin'):
+ # avoid the 'echo' service on this platform, as there is an
+ # assumption breaking non-standard port/protocol entry
+ services = ('daytime', 'qotd', 'domain')
+--- setup.py.orig 2007-10-28 20:38:55.000000000 +0900
++++ setup.py 2007-10-28 21:40:05.000000000 +0900
+@@ -1045,7 +1045,7 @@
+ exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) )
+
+ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7'):
++ 'freebsd7', 'freebsd8'):
+ exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
+
+ if platform == 'sunos5':
diff --git a/lang/python30/pkg-plist b/lang/python30/pkg-plist
index 3098736ca2c1..580b8cfa52b4 100644
--- a/lang/python30/pkg-plist
+++ b/lang/python30/pkg-plist
@@ -750,6 +750,8 @@ lib/lib%%PYTHON_VERSION%%.so.1
%%PYTHON_LIBDIR%%/plat-freebsd6/regen
%%PYTHON_LIBDIR%%/plat-freebsd7/IN.py
%%PYTHON_LIBDIR%%/plat-freebsd7/regen
+%%PYTHON_LIBDIR%%/plat-freebsd8/IN.py
+%%PYTHON_LIBDIR%%/plat-freebsd8/regen
%%PYTHON_LIBDIR%%/platform.py
%%PYTHON_LIBDIR%%/popen2.py
%%PYTHON_LIBDIR%%/poplib.py
@@ -1868,6 +1870,7 @@ lib/lib%%PYTHON_VERSION%%.so.1
@dirrm %%PYTHON_LIBDIR%%/sqlite3/test
@dirrm %%PYTHON_LIBDIR%%/sqlite3
@dirrm %%PYTHON_LIBDIR%%/site-packages
+@dirrm %%PYTHON_LIBDIR%%/plat-freebsd8
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd7
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd6
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd5
diff --git a/lang/python31/Makefile b/lang/python31/Makefile
index 970afaecc195..05c2793052f5 100644
--- a/lang/python31/Makefile
+++ b/lang/python31/Makefile
@@ -6,6 +6,7 @@
PORTNAME= python25
PORTVERSION= 2.5.1
+PORTREVISION= 1
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -38,6 +39,9 @@ PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//} \
DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION}
TOOLSDIR= ${PREFIX}/share/${PYTHON_VERSION}
+PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 \
+ plat-freebsd7 plat-freebsd8
+
BIN_SCRIPTS= idle pydoc python python-shared smtpd.py python-config \
python-shared-config
BINLINKS_SUB= -e 's,smtpd,smtpd${PYTHON_VER},' \
@@ -116,14 +120,6 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-.if ${OSVERSION} >= 700000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd6
-.elif ${OSVERSION} >= 600000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd7
-.else
-PLATFORMS=plat-freebsd4 plat-freebsd6 plat-freebsd7
-.endif
-
pre-patch:
${MKDIR} ${WRKSRC} ${SHARED_WRKSRC}/Modules
${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
diff --git a/lang/python31/files/patch-freebsd8 b/lang/python31/files/patch-freebsd8
new file mode 100644
index 000000000000..51c5c39f7026
--- /dev/null
+++ b/lang/python31/files/patch-freebsd8
@@ -0,0 +1,938 @@
+Index: Lib/plat-freebsd6/IN.py
+===================================================================
+--- Lib/plat-freebsd6/IN.py (revision 58696)
++++ Lib/plat-freebsd6/IN.py (revision 58697)
+@@ -1,6 +1,28 @@
+ # Generated by h2py from /usr/include/netinet/in.h
+
+ # Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
+ def __P(protos): return protos
+
+ def __STRING(x): return #x
+@@ -29,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -86,8 +110,6 @@
+ BIG_ENDIAN = _BIG_ENDIAN
+ PDP_ENDIAN = _PDP_ENDIAN
+ BYTE_ORDER = _BYTE_ORDER
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+ def __word_swap_int_var(x): return \
+
+ def __word_swap_int_const(x): return \
+@@ -96,12 +118,16 @@
+
+ def __byte_swap_int_var(x): return \
+
+-def __byte_swap_int_var(x): return \
+-
+ def __byte_swap_int_const(x): return \
+
+ def __byte_swap_int(x): return __byte_swap_int_var(x)
+
++def __byte_swap_long_var(x): return \
++
++def __byte_swap_long_const(x): return \
++
++def __byte_swap_long(x): return __byte_swap_long_var(x)
++
+ def __byte_swap_word_var(x): return \
+
+ def __byte_swap_word_const(x): return \
+@@ -229,47 +255,50 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
++IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+ IPPROTO_PFSYNC = 240
+ IPPROTO_OLD_DIVERT = 254
+ IPPROTO_MAX = 256
+ IPPROTO_DONE = 257
+ IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
+ IPPORT_RESERVED = 1024
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_MAX = 65535
+-def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++def IN_CLASSA(i): return (((u_int32_t)(i) & 0x80000000) == 0)
+
+-IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+-def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++def IN_CLASSB(i): return (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
+
+-IN_CLASSB_NET = (-65536)
++IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+-def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++def IN_CLASSC(i): return (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
+
+-IN_CLASSC_NET = (-256)
++IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSC_HOST = 0x000000ff
+-def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++def IN_CLASSD(i): return (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
+
+-IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_CLASSD_HOST = 0x0fffffff
+ def IN_MULTICAST(i): return IN_CLASSD(i)
+
+-def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_BADCLASS(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-INADDR_NONE = (-1)
++INADDR_NONE = 0xffffffff
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+ IP_HDRINCL = 2
+@@ -311,6 +340,8 @@
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_MAX_MEMBERSHIPS = 20
+@@ -339,7 +370,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -348,8 +379,8 @@
+ INET6_ADDRSTRLEN = 46
+ IPV6_ADDR_INT32_ONE = 1
+ IPV6_ADDR_INT32_TWO = 2
+-IPV6_ADDR_INT32_MNL = (-16711680)
+-IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_MNL = 0xff010000
++IPV6_ADDR_INT32_MLL = 0xff020000
+ IPV6_ADDR_INT32_SMP = 0x0000ffff
+ IPV6_ADDR_INT16_ULL = 0xfe80
+ IPV6_ADDR_INT16_USL = 0xfec0
+@@ -358,7 +389,7 @@
+ IPV6_ADDR_INT32_TWO = 0x02000000
+ IPV6_ADDR_INT32_MNL = 0x000001ff
+ IPV6_ADDR_INT32_MLL = 0x000002ff
+-IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT32_SMP = 0xffff0000
+ IPV6_ADDR_INT16_ULL = 0x80fe
+ IPV6_ADDR_INT16_USL = 0xc0fe
+ IPV6_ADDR_INT16_MLL = 0x02ff
+@@ -511,5 +542,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd7/IN.py
+===================================================================
+--- Lib/plat-freebsd7/IN.py (revision 58696)
++++ Lib/plat-freebsd7/IN.py (revision 58697)
+@@ -10,9 +10,9 @@
+ __GNUCLIKE_CTOR_SECTION_HANDLING = 1
+ __GNUCLIKE_BUILTIN_CONSTANT_P = 1
+ __GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_VAALIST = 1
+ __GNUC_VA_LIST_COMPATIBILITY = 1
+-__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_NEXT_ARG = 1
+ __GNUCLIKE_BUILTIN_MEMCPY = 1
+ __CC_SUPPORTS_INLINE = 1
+@@ -51,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -247,6 +249,7 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
+ IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+@@ -289,6 +292,10 @@
+
+ def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
+
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
+ INADDR_NONE = (-1)
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+@@ -326,14 +333,35 @@
+ IP_FW_ZERO = 53
+ IP_FW_GET = 54
+ IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+-IP_MAX_MEMBERSHIPS = 20
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+@@ -359,7 +387,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -430,6 +458,8 @@
+
+ def IN6_IS_SCOPE_LINKLOCAL(a): return \
+
++def IN6_IS_SCOPE_EMBED(a): return \
++
+ def IFA6_IS_DEPRECATED(a): return \
+
+ def IFA6_IS_INVALID(a): return \
+@@ -488,6 +518,7 @@
+ IPV6_TCLASS = 61
+ IPV6_DONTFRAG = 62
+ IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+@@ -531,5 +562,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd8/regen
+===================================================================
+--- Lib/plat-freebsd8/regen (revision 0)
++++ Lib/plat-freebsd8/regen (revision 58697)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++set -v
++python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+Index: Lib/plat-freebsd8/IN.py
+===================================================================
+--- Lib/plat-freebsd8/IN.py (revision 0)
++++ Lib/plat-freebsd8/IN.py (revision 58697)
+@@ -0,0 +1,571 @@
++# Generated by h2py from /usr/include/netinet/in.h
++
++# Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
++def __P(protos): return protos
++
++def __STRING(x): return #x
++
++def __XSTRING(x): return __STRING(x)
++
++def __P(protos): return ()
++
++def __STRING(x): return "x"
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __nonnull(x): return __attribute__((__nonnull__(x)))
++
++def __predict_true(exp): return __builtin_expect((exp), 1)
++
++def __predict_false(exp): return __builtin_expect((exp), 0)
++
++def __predict_true(exp): return (exp)
++
++def __predict_false(exp): return (exp)
++
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
++def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID_SOURCE(s): return __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
++
++def __SCCSID(s): return __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
++
++def __COPYRIGHT(s): return __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
++
++_POSIX_C_SOURCE = 199009
++_POSIX_C_SOURCE = 199209
++__XSI_VISIBLE = 600
++_POSIX_C_SOURCE = 200112
++__XSI_VISIBLE = 500
++_POSIX_C_SOURCE = 199506
++_POSIX_C_SOURCE = 198808
++__POSIX_VISIBLE = 200112
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 199506
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199309
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199209
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199009
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 198808
++__ISO_C_VISIBLE = 0
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 200112
++__XSI_VISIBLE = 600
++__BSD_VISIBLE = 1
++__ISO_C_VISIBLE = 1999
++
++# Included from sys/_types.h
++
++# Included from machine/_types.h
++
++# Included from machine/endian.h
++_QUAD_HIGHWORD = 1
++_QUAD_LOWWORD = 0
++_LITTLE_ENDIAN = 1234
++_BIG_ENDIAN = 4321
++_PDP_ENDIAN = 3412
++_BYTE_ORDER = _LITTLE_ENDIAN
++LITTLE_ENDIAN = _LITTLE_ENDIAN
++BIG_ENDIAN = _BIG_ENDIAN
++PDP_ENDIAN = _PDP_ENDIAN
++BYTE_ORDER = _BYTE_ORDER
++def __word_swap_int_var(x): return \
++
++def __word_swap_int_const(x): return \
++
++def __word_swap_int(x): return __word_swap_int_var(x)
++
++def __byte_swap_int_var(x): return \
++
++def __byte_swap_int_const(x): return \
++
++def __byte_swap_int(x): return __byte_swap_int_var(x)
++
++def __byte_swap_word_var(x): return \
++
++def __byte_swap_word_const(x): return \
++
++def __byte_swap_word(x): return __byte_swap_word_var(x)
++
++def __htonl(x): return __bswap32(x)
++
++def __htons(x): return __bswap16(x)
++
++def __ntohl(x): return __bswap32(x)
++
++def __ntohs(x): return __bswap16(x)
++
++IPPROTO_IP = 0
++IPPROTO_ICMP = 1
++IPPROTO_TCP = 6
++IPPROTO_UDP = 17
++def htonl(x): return __htonl(x)
++
++def htons(x): return __htons(x)
++
++def ntohl(x): return __ntohl(x)
++
++def ntohs(x): return __ntohs(x)
++
++IPPROTO_RAW = 255
++INET_ADDRSTRLEN = 16
++IPPROTO_HOPOPTS = 0
++IPPROTO_IGMP = 2
++IPPROTO_GGP = 3
++IPPROTO_IPV4 = 4
++IPPROTO_IPIP = IPPROTO_IPV4
++IPPROTO_ST = 7
++IPPROTO_EGP = 8
++IPPROTO_PIGP = 9
++IPPROTO_RCCMON = 10
++IPPROTO_NVPII = 11
++IPPROTO_PUP = 12
++IPPROTO_ARGUS = 13
++IPPROTO_EMCON = 14
++IPPROTO_XNET = 15
++IPPROTO_CHAOS = 16
++IPPROTO_MUX = 18
++IPPROTO_MEAS = 19
++IPPROTO_HMP = 20
++IPPROTO_PRM = 21
++IPPROTO_IDP = 22
++IPPROTO_TRUNK1 = 23
++IPPROTO_TRUNK2 = 24
++IPPROTO_LEAF1 = 25
++IPPROTO_LEAF2 = 26
++IPPROTO_RDP = 27
++IPPROTO_IRTP = 28
++IPPROTO_TP = 29
++IPPROTO_BLT = 30
++IPPROTO_NSP = 31
++IPPROTO_INP = 32
++IPPROTO_SEP = 33
++IPPROTO_3PC = 34
++IPPROTO_IDPR = 35
++IPPROTO_XTP = 36
++IPPROTO_DDP = 37
++IPPROTO_CMTP = 38
++IPPROTO_TPXX = 39
++IPPROTO_IL = 40
++IPPROTO_IPV6 = 41
++IPPROTO_SDRP = 42
++IPPROTO_ROUTING = 43
++IPPROTO_FRAGMENT = 44
++IPPROTO_IDRP = 45
++IPPROTO_RSVP = 46
++IPPROTO_GRE = 47
++IPPROTO_MHRP = 48
++IPPROTO_BHA = 49
++IPPROTO_ESP = 50
++IPPROTO_AH = 51
++IPPROTO_INLSP = 52
++IPPROTO_SWIPE = 53
++IPPROTO_NHRP = 54
++IPPROTO_MOBILE = 55
++IPPROTO_TLSP = 56
++IPPROTO_SKIP = 57
++IPPROTO_ICMPV6 = 58
++IPPROTO_NONE = 59
++IPPROTO_DSTOPTS = 60
++IPPROTO_AHIP = 61
++IPPROTO_CFTP = 62
++IPPROTO_HELLO = 63
++IPPROTO_SATEXPAK = 64
++IPPROTO_KRYPTOLAN = 65
++IPPROTO_RVD = 66
++IPPROTO_IPPC = 67
++IPPROTO_ADFS = 68
++IPPROTO_SATMON = 69
++IPPROTO_VISA = 70
++IPPROTO_IPCV = 71
++IPPROTO_CPNX = 72
++IPPROTO_CPHB = 73
++IPPROTO_WSN = 74
++IPPROTO_PVP = 75
++IPPROTO_BRSATMON = 76
++IPPROTO_ND = 77
++IPPROTO_WBMON = 78
++IPPROTO_WBEXPAK = 79
++IPPROTO_EON = 80
++IPPROTO_VMTP = 81
++IPPROTO_SVMTP = 82
++IPPROTO_VINES = 83
++IPPROTO_TTP = 84
++IPPROTO_IGP = 85
++IPPROTO_DGP = 86
++IPPROTO_TCF = 87
++IPPROTO_IGRP = 88
++IPPROTO_OSPFIGP = 89
++IPPROTO_SRPC = 90
++IPPROTO_LARP = 91
++IPPROTO_MTP = 92
++IPPROTO_AX25 = 93
++IPPROTO_IPEIP = 94
++IPPROTO_MICP = 95
++IPPROTO_SCCSP = 96
++IPPROTO_ETHERIP = 97
++IPPROTO_ENCAP = 98
++IPPROTO_APES = 99
++IPPROTO_GMTP = 100
++IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
++IPPROTO_PIM = 103
++IPPROTO_CARP = 112
++IPPROTO_PGM = 113
++IPPROTO_PFSYNC = 240
++IPPROTO_OLD_DIVERT = 254
++IPPROTO_MAX = 256
++IPPROTO_DONE = 257
++IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
++IPPORT_RESERVED = 1024
++IPPORT_HIFIRSTAUTO = 49152
++IPPORT_HILASTAUTO = 65535
++IPPORT_RESERVEDSTART = 600
++IPPORT_MAX = 65535
++def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++
++IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NSHIFT = 24
++IN_CLASSA_HOST = 0x00ffffff
++IN_CLASSA_MAX = 128
++def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++
++IN_CLASSB_NET = (-65536)
++IN_CLASSB_NSHIFT = 16
++IN_CLASSB_HOST = 0x0000ffff
++IN_CLASSB_MAX = 65536
++def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++
++IN_CLASSC_NET = (-256)
++IN_CLASSC_NSHIFT = 8
++IN_CLASSC_HOST = 0x000000ff
++def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++
++IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NSHIFT = 28
++IN_CLASSD_HOST = 0x0fffffff
++def IN_MULTICAST(i): return IN_CLASSD(i)
++
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
++INADDR_NONE = (-1)
++IN_LOOPBACKNET = 127
++IP_OPTIONS = 1
++IP_HDRINCL = 2
++IP_TOS = 3
++IP_TTL = 4
++IP_RECVOPTS = 5
++IP_RECVRETOPTS = 6
++IP_RECVDSTADDR = 7
++IP_SENDSRCADDR = IP_RECVDSTADDR
++IP_RETOPTS = 8
++IP_MULTICAST_IF = 9
++IP_MULTICAST_TTL = 10
++IP_MULTICAST_LOOP = 11
++IP_ADD_MEMBERSHIP = 12
++IP_DROP_MEMBERSHIP = 13
++IP_MULTICAST_VIF = 14
++IP_RSVP_ON = 15
++IP_RSVP_OFF = 16
++IP_RSVP_VIF_ON = 17
++IP_RSVP_VIF_OFF = 18
++IP_PORTRANGE = 19
++IP_RECVIF = 20
++IP_IPSEC_POLICY = 21
++IP_FAITH = 22
++IP_ONESBCAST = 23
++IP_FW_TABLE_ADD = 40
++IP_FW_TABLE_DEL = 41
++IP_FW_TABLE_FLUSH = 42
++IP_FW_TABLE_GETSIZE = 43
++IP_FW_TABLE_LIST = 44
++IP_FW_ADD = 50
++IP_FW_DEL = 51
++IP_FW_FLUSH = 52
++IP_FW_ZERO = 53
++IP_FW_GET = 54
++IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
++IP_DUMMYNET_CONFIGURE = 60
++IP_DUMMYNET_DEL = 61
++IP_DUMMYNET_FLUSH = 62
++IP_DUMMYNET_GET = 64
++IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
++IP_DEFAULT_MULTICAST_TTL = 1
++IP_DEFAULT_MULTICAST_LOOP = 1
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
++IP_PORTRANGE_DEFAULT = 0
++IP_PORTRANGE_HIGH = 1
++IP_PORTRANGE_LOW = 2
++IPPROTO_MAXID = (IPPROTO_AH + 1)
++IPCTL_FORWARDING = 1
++IPCTL_SENDREDIRECTS = 2
++IPCTL_DEFTTL = 3
++IPCTL_DEFMTU = 4
++IPCTL_RTEXPIRE = 5
++IPCTL_RTMINEXPIRE = 6
++IPCTL_RTMAXCACHE = 7
++IPCTL_SOURCEROUTE = 8
++IPCTL_DIRECTEDBROADCAST = 9
++IPCTL_INTRQMAXLEN = 10
++IPCTL_INTRQDROPS = 11
++IPCTL_STATS = 12
++IPCTL_ACCEPTSOURCEROUTE = 13
++IPCTL_FASTFORWARDING = 14
++IPCTL_KEEPFAITH = 15
++IPCTL_GIF_TTL = 16
++IPCTL_MAXID = 17
++def in_nullhost(x): return ((x).s_addr == INADDR_ANY)
++
++
++# Included from netinet6/in6.h
++__KAME_VERSION = "FreeBSD"
++IPV6PORT_RESERVED = 1024
++IPV6PORT_ANONMIN = 49152
++IPV6PORT_ANONMAX = 65535
++IPV6PORT_RESERVEDMIN = 600
++IPV6PORT_RESERVEDMAX = (IPV6PORT_RESERVED-1)
++INET6_ADDRSTRLEN = 46
++IPV6_ADDR_INT32_ONE = 1
++IPV6_ADDR_INT32_TWO = 2
++IPV6_ADDR_INT32_MNL = (-16711680)
++IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_SMP = 0x0000ffff
++IPV6_ADDR_INT16_ULL = 0xfe80
++IPV6_ADDR_INT16_USL = 0xfec0
++IPV6_ADDR_INT16_MLL = 0xff02
++IPV6_ADDR_INT32_ONE = 0x01000000
++IPV6_ADDR_INT32_TWO = 0x02000000
++IPV6_ADDR_INT32_MNL = 0x000001ff
++IPV6_ADDR_INT32_MLL = 0x000002ff
++IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT16_ULL = 0x80fe
++IPV6_ADDR_INT16_USL = 0xc0fe
++IPV6_ADDR_INT16_MLL = 0x02ff
++def IN6_IS_ADDR_UNSPECIFIED(a): return \
++
++def IN6_IS_ADDR_LOOPBACK(a): return \
++
++def IN6_IS_ADDR_V4COMPAT(a): return \
++
++def IN6_IS_ADDR_V4MAPPED(a): return \
++
++IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++__IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++__IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++__IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++__IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++__IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++__IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++def IN6_IS_ADDR_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_INTFACELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_SCOPE_LINKLOCAL(a): return \
++
++def IN6_IS_SCOPE_EMBED(a): return \
++
++def IFA6_IS_DEPRECATED(a): return \
++
++def IFA6_IS_INVALID(a): return \
++
++IPV6_OPTIONS = 1
++IPV6_RECVOPTS = 5
++IPV6_RECVRETOPTS = 6
++IPV6_RECVDSTADDR = 7
++IPV6_RETOPTS = 8
++IPV6_SOCKOPT_RESERVED1 = 3
++IPV6_UNICAST_HOPS = 4
++IPV6_MULTICAST_IF = 9
++IPV6_MULTICAST_HOPS = 10
++IPV6_MULTICAST_LOOP = 11
++IPV6_JOIN_GROUP = 12
++IPV6_LEAVE_GROUP = 13
++IPV6_PORTRANGE = 14
++ICMP6_FILTER = 18
++IPV6_2292PKTINFO = 19
++IPV6_2292HOPLIMIT = 20
++IPV6_2292NEXTHOP = 21
++IPV6_2292HOPOPTS = 22
++IPV6_2292DSTOPTS = 23
++IPV6_2292RTHDR = 24
++IPV6_2292PKTOPTIONS = 25
++IPV6_CHECKSUM = 26
++IPV6_V6ONLY = 27
++IPV6_BINDV6ONLY = IPV6_V6ONLY
++IPV6_IPSEC_POLICY = 28
++IPV6_FAITH = 29
++IPV6_FW_ADD = 30
++IPV6_FW_DEL = 31
++IPV6_FW_FLUSH = 32
++IPV6_FW_ZERO = 33
++IPV6_FW_GET = 34
++IPV6_RTHDRDSTOPTS = 35
++IPV6_RECVPKTINFO = 36
++IPV6_RECVHOPLIMIT = 37
++IPV6_RECVRTHDR = 38
++IPV6_RECVHOPOPTS = 39
++IPV6_RECVDSTOPTS = 40
++IPV6_RECVRTHDRDSTOPTS = 41
++IPV6_USE_MIN_MTU = 42
++IPV6_RECVPATHMTU = 43
++IPV6_PATHMTU = 44
++IPV6_REACHCONF = 45
++IPV6_PKTINFO = 46
++IPV6_HOPLIMIT = 47
++IPV6_NEXTHOP = 48
++IPV6_HOPOPTS = 49
++IPV6_DSTOPTS = 50
++IPV6_RTHDR = 51
++IPV6_PKTOPTIONS = 52
++IPV6_RECVTCLASS = 57
++IPV6_AUTOFLOWLABEL = 59
++IPV6_TCLASS = 61
++IPV6_DONTFRAG = 62
++IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
++IPV6_RTHDR_LOOSE = 0
++IPV6_RTHDR_STRICT = 1
++IPV6_RTHDR_TYPE_0 = 0
++IPV6_DEFAULT_MULTICAST_HOPS = 1
++IPV6_DEFAULT_MULTICAST_LOOP = 1
++IPV6_PORTRANGE_DEFAULT = 0
++IPV6_PORTRANGE_HIGH = 1
++IPV6_PORTRANGE_LOW = 2
++IPV6PROTO_MAXID = (IPPROTO_PIM + 1)
++IPV6CTL_FORWARDING = 1
++IPV6CTL_SENDREDIRECTS = 2
++IPV6CTL_DEFHLIM = 3
++IPV6CTL_DEFMTU = 4
++IPV6CTL_FORWSRCRT = 5
++IPV6CTL_STATS = 6
++IPV6CTL_MRTSTATS = 7
++IPV6CTL_MRTPROTO = 8
++IPV6CTL_MAXFRAGPACKETS = 9
++IPV6CTL_SOURCECHECK = 10
++IPV6CTL_SOURCECHECK_LOGINT = 11
++IPV6CTL_ACCEPT_RTADV = 12
++IPV6CTL_KEEPFAITH = 13
++IPV6CTL_LOG_INTERVAL = 14
++IPV6CTL_HDRNESTLIMIT = 15
++IPV6CTL_DAD_COUNT = 16
++IPV6CTL_AUTO_FLOWLABEL = 17
++IPV6CTL_DEFMCASTHLIM = 18
++IPV6CTL_GIF_HLIM = 19
++IPV6CTL_KAME_VERSION = 20
++IPV6CTL_USE_DEPRECATED = 21
++IPV6CTL_RR_PRUNE = 22
++IPV6CTL_MAPPED_ADDR = 23
++IPV6CTL_V6ONLY = 24
++IPV6CTL_RTEXPIRE = 25
++IPV6CTL_RTMINEXPIRE = 26
++IPV6CTL_RTMAXCACHE = 27
++IPV6CTL_USETEMPADDR = 32
++IPV6CTL_TEMPPLTIME = 33
++IPV6CTL_TEMPVLTIME = 34
++IPV6CTL_AUTO_LINKLOCAL = 35
++IPV6CTL_RIP6STATS = 36
++IPV6CTL_PREFER_TEMPADDR = 37
++IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
++IPV6CTL_MAXFRAGS = 41
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+--- Lib/posixfile.py.orig 2005-07-17 11:36:59.000000000 +0900
++++ Lib/posixfile.py 2007-10-28 21:41:27.000000000 +0900
+@@ -179,7 +179,7 @@
+ if sys.platform in ('netbsd1',
+ 'openbsd2',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4'):
+ flock = struct.pack('lxxxxlxxxxlhh', \
+ l_start, l_len, os.getpid(), l_type, l_whence)
+--- Lib/test/regrtest.py.orig 2007-03-09 04:58:46.000000000 +0900
++++ Lib/test/regrtest.py 2007-10-28 21:40:49.000000000 +0900
+@@ -1314,6 +1314,7 @@
+ _expectations['freebsd5'] = _expectations['freebsd4']
+ _expectations['freebsd6'] = _expectations['freebsd4']
+ _expectations['freebsd7'] = _expectations['freebsd4']
++_expectations['freebsd8'] = _expectations['freebsd4']
+
+ class _ExpectedSkips:
+ def __init__(self):
+--- Lib/test/test_fcntl.py.orig 2006-09-05 11:54:42.000000000 +0900
++++ Lib/test/test_fcntl.py 2007-10-28 21:41:12.000000000 +0900
+@@ -23,7 +23,7 @@
+ if sys.platform in ('netbsd1', 'netbsd2', 'netbsd3',
+ 'Darwin1.2', 'darwin',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4',
+ 'openbsd', 'openbsd2', 'openbsd3', 'openbsd4'):
+ if struct.calcsize('l') == 8:
+--- Lib/test/test_socket.py.orig 2007-04-01 03:56:11.000000000 +0900
++++ Lib/test/test_socket.py 2007-10-28 21:40:59.000000000 +0900
+@@ -316,7 +316,7 @@
+ # I've ordered this by protocols that have both a tcp and udp
+ # protocol, at least for modern Linuxes.
+ if sys.platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7', 'darwin'):
++ 'freebsd7', 'freebsd8', 'darwin'):
+ # avoid the 'echo' service on this platform, as there is an
+ # assumption breaking non-standard port/protocol entry
+ services = ('daytime', 'qotd', 'domain')
+--- setup.py.orig 2007-10-28 20:38:55.000000000 +0900
++++ setup.py 2007-10-28 21:40:05.000000000 +0900
+@@ -1045,7 +1045,7 @@
+ exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) )
+
+ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7'):
++ 'freebsd7', 'freebsd8'):
+ exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
+
+ if platform == 'sunos5':
diff --git a/lang/python31/pkg-plist b/lang/python31/pkg-plist
index 3098736ca2c1..580b8cfa52b4 100644
--- a/lang/python31/pkg-plist
+++ b/lang/python31/pkg-plist
@@ -750,6 +750,8 @@ lib/lib%%PYTHON_VERSION%%.so.1
%%PYTHON_LIBDIR%%/plat-freebsd6/regen
%%PYTHON_LIBDIR%%/plat-freebsd7/IN.py
%%PYTHON_LIBDIR%%/plat-freebsd7/regen
+%%PYTHON_LIBDIR%%/plat-freebsd8/IN.py
+%%PYTHON_LIBDIR%%/plat-freebsd8/regen
%%PYTHON_LIBDIR%%/platform.py
%%PYTHON_LIBDIR%%/popen2.py
%%PYTHON_LIBDIR%%/poplib.py
@@ -1868,6 +1870,7 @@ lib/lib%%PYTHON_VERSION%%.so.1
@dirrm %%PYTHON_LIBDIR%%/sqlite3/test
@dirrm %%PYTHON_LIBDIR%%/sqlite3
@dirrm %%PYTHON_LIBDIR%%/site-packages
+@dirrm %%PYTHON_LIBDIR%%/plat-freebsd8
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd7
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd6
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd5
diff --git a/lang/python32/Makefile b/lang/python32/Makefile
index 970afaecc195..05c2793052f5 100644
--- a/lang/python32/Makefile
+++ b/lang/python32/Makefile
@@ -6,6 +6,7 @@
PORTNAME= python25
PORTVERSION= 2.5.1
+PORTREVISION= 1
CATEGORIES= lang python ipv6
MASTER_SITES= ${PYTHON_MASTER_SITES}
MASTER_SITE_SUBDIR= ${PYTHON_MASTER_SITE_SUBDIR}
@@ -38,6 +39,9 @@ PLIST_SUB= PYVER=${PYTHON_VERSION:S/python//} \
DEMODIR= ${PREFIX}/share/examples/${PYTHON_VERSION}
TOOLSDIR= ${PREFIX}/share/${PYTHON_VERSION}
+PLATFORMS= plat-freebsd4 plat-freebsd5 plat-freebsd6 \
+ plat-freebsd7 plat-freebsd8
+
BIN_SCRIPTS= idle pydoc python python-shared smtpd.py python-config \
python-shared-config
BINLINKS_SUB= -e 's,smtpd,smtpd${PYTHON_VER},' \
@@ -116,14 +120,6 @@ CONFIGURE_ARGS+= --disable-ipv6
CONFIGURE_ARGS+= --with-fpectl
.endif
-.if ${OSVERSION} >= 700000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd6
-.elif ${OSVERSION} >= 600000
-PLATFORMS=plat-freebsd4 plat-freebsd5 plat-freebsd7
-.else
-PLATFORMS=plat-freebsd4 plat-freebsd6 plat-freebsd7
-.endif
-
pre-patch:
${MKDIR} ${WRKSRC} ${SHARED_WRKSRC}/Modules
${SED} -e '1s,^.*$$,#!${PREFIX}/bin/${PYTHON_VERSION},' \
diff --git a/lang/python32/files/patch-freebsd8 b/lang/python32/files/patch-freebsd8
new file mode 100644
index 000000000000..51c5c39f7026
--- /dev/null
+++ b/lang/python32/files/patch-freebsd8
@@ -0,0 +1,938 @@
+Index: Lib/plat-freebsd6/IN.py
+===================================================================
+--- Lib/plat-freebsd6/IN.py (revision 58696)
++++ Lib/plat-freebsd6/IN.py (revision 58697)
+@@ -1,6 +1,28 @@
+ # Generated by h2py from /usr/include/netinet/in.h
+
+ # Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
+ def __P(protos): return protos
+
+ def __STRING(x): return #x
+@@ -29,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -86,8 +110,6 @@
+ BIG_ENDIAN = _BIG_ENDIAN
+ PDP_ENDIAN = _PDP_ENDIAN
+ BYTE_ORDER = _BYTE_ORDER
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+-__INTEL_COMPILER_with_FreeBSD_endian = 1
+ def __word_swap_int_var(x): return \
+
+ def __word_swap_int_const(x): return \
+@@ -96,12 +118,16 @@
+
+ def __byte_swap_int_var(x): return \
+
+-def __byte_swap_int_var(x): return \
+-
+ def __byte_swap_int_const(x): return \
+
+ def __byte_swap_int(x): return __byte_swap_int_var(x)
+
++def __byte_swap_long_var(x): return \
++
++def __byte_swap_long_const(x): return \
++
++def __byte_swap_long(x): return __byte_swap_long_var(x)
++
+ def __byte_swap_word_var(x): return \
+
+ def __byte_swap_word_const(x): return \
+@@ -229,47 +255,50 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
++IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+ IPPROTO_PFSYNC = 240
+ IPPROTO_OLD_DIVERT = 254
+ IPPROTO_MAX = 256
+ IPPROTO_DONE = 257
+ IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
+ IPPORT_RESERVED = 1024
+ IPPORT_HIFIRSTAUTO = 49152
+ IPPORT_HILASTAUTO = 65535
+ IPPORT_RESERVEDSTART = 600
+ IPPORT_MAX = 65535
+-def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++def IN_CLASSA(i): return (((u_int32_t)(i) & 0x80000000) == 0)
+
+-IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NET = 0xff000000
+ IN_CLASSA_NSHIFT = 24
+ IN_CLASSA_HOST = 0x00ffffff
+ IN_CLASSA_MAX = 128
+-def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++def IN_CLASSB(i): return (((u_int32_t)(i) & 0xc0000000) == 0x80000000)
+
+-IN_CLASSB_NET = (-65536)
++IN_CLASSB_NET = 0xffff0000
+ IN_CLASSB_NSHIFT = 16
+ IN_CLASSB_HOST = 0x0000ffff
+ IN_CLASSB_MAX = 65536
+-def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++def IN_CLASSC(i): return (((u_int32_t)(i) & 0xe0000000) == 0xc0000000)
+
+-IN_CLASSC_NET = (-256)
++IN_CLASSC_NET = 0xffffff00
+ IN_CLASSC_NSHIFT = 8
+ IN_CLASSC_HOST = 0x000000ff
+-def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++def IN_CLASSD(i): return (((u_int32_t)(i) & 0xf0000000) == 0xe0000000)
+
+-IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NET = 0xf0000000
+ IN_CLASSD_NSHIFT = 28
+ IN_CLASSD_HOST = 0x0fffffff
+ def IN_MULTICAST(i): return IN_CLASSD(i)
+
+-def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++def IN_BADCLASS(i): return (((u_int32_t)(i) & 0xf0000000) == 0xf0000000)
+
+-INADDR_NONE = (-1)
++INADDR_NONE = 0xffffffff
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+ IP_HDRINCL = 2
+@@ -311,6 +340,8 @@
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+ IP_MAX_MEMBERSHIPS = 20
+@@ -339,7 +370,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -348,8 +379,8 @@
+ INET6_ADDRSTRLEN = 46
+ IPV6_ADDR_INT32_ONE = 1
+ IPV6_ADDR_INT32_TWO = 2
+-IPV6_ADDR_INT32_MNL = (-16711680)
+-IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_MNL = 0xff010000
++IPV6_ADDR_INT32_MLL = 0xff020000
+ IPV6_ADDR_INT32_SMP = 0x0000ffff
+ IPV6_ADDR_INT16_ULL = 0xfe80
+ IPV6_ADDR_INT16_USL = 0xfec0
+@@ -358,7 +389,7 @@
+ IPV6_ADDR_INT32_TWO = 0x02000000
+ IPV6_ADDR_INT32_MNL = 0x000001ff
+ IPV6_ADDR_INT32_MLL = 0x000002ff
+-IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT32_SMP = 0xffff0000
+ IPV6_ADDR_INT16_ULL = 0x80fe
+ IPV6_ADDR_INT16_USL = 0xc0fe
+ IPV6_ADDR_INT16_MLL = 0x02ff
+@@ -511,5 +542,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd7/IN.py
+===================================================================
+--- Lib/plat-freebsd7/IN.py (revision 58696)
++++ Lib/plat-freebsd7/IN.py (revision 58697)
+@@ -10,9 +10,9 @@
+ __GNUCLIKE_CTOR_SECTION_HANDLING = 1
+ __GNUCLIKE_BUILTIN_CONSTANT_P = 1
+ __GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_VAALIST = 1
+ __GNUC_VA_LIST_COMPATIBILITY = 1
+-__GNUCLIKE_BUILTIN_STDARG = 1
+ __GNUCLIKE_BUILTIN_NEXT_ARG = 1
+ __GNUCLIKE_BUILTIN_MEMCPY = 1
+ __CC_SUPPORTS_INLINE = 1
+@@ -51,6 +51,8 @@
+
+ def __predict_false(exp): return (exp)
+
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
+ def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+
+ def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
+@@ -247,6 +249,7 @@
+ IPPROTO_APES = 99
+ IPPROTO_GMTP = 100
+ IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
+ IPPROTO_PIM = 103
+ IPPROTO_CARP = 112
+ IPPROTO_PGM = 113
+@@ -289,6 +292,10 @@
+
+ def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
+
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
+ INADDR_NONE = (-1)
+ IN_LOOPBACKNET = 127
+ IP_OPTIONS = 1
+@@ -326,14 +333,35 @@
+ IP_FW_ZERO = 53
+ IP_FW_GET = 54
+ IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
+ IP_DUMMYNET_CONFIGURE = 60
+ IP_DUMMYNET_DEL = 61
+ IP_DUMMYNET_FLUSH = 62
+ IP_DUMMYNET_GET = 64
+ IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
+ IP_DEFAULT_MULTICAST_TTL = 1
+ IP_DEFAULT_MULTICAST_LOOP = 1
+-IP_MAX_MEMBERSHIPS = 20
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
+ IP_PORTRANGE_DEFAULT = 0
+ IP_PORTRANGE_HIGH = 1
+ IP_PORTRANGE_LOW = 2
+@@ -359,7 +387,7 @@
+
+
+ # Included from netinet6/in6.h
+-__KAME_VERSION = "20010528/FreeBSD"
++__KAME_VERSION = "FreeBSD"
+ IPV6PORT_RESERVED = 1024
+ IPV6PORT_ANONMIN = 49152
+ IPV6PORT_ANONMAX = 65535
+@@ -430,6 +458,8 @@
+
+ def IN6_IS_SCOPE_LINKLOCAL(a): return \
+
++def IN6_IS_SCOPE_EMBED(a): return \
++
+ def IFA6_IS_DEPRECATED(a): return \
+
+ def IFA6_IS_INVALID(a): return \
+@@ -488,6 +518,7 @@
+ IPV6_TCLASS = 61
+ IPV6_DONTFRAG = 62
+ IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
+ IPV6_RTHDR_LOOSE = 0
+ IPV6_RTHDR_STRICT = 1
+ IPV6_RTHDR_TYPE_0 = 0
+@@ -531,5 +562,10 @@
+ IPV6CTL_RIP6STATS = 36
+ IPV6CTL_PREFER_TEMPADDR = 37
+ IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
+ IPV6CTL_MAXFRAGS = 41
+-IPV6CTL_MAXID = 42
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+Index: Lib/plat-freebsd8/regen
+===================================================================
+--- Lib/plat-freebsd8/regen (revision 0)
++++ Lib/plat-freebsd8/regen (revision 58697)
+@@ -0,0 +1,3 @@
++#! /bin/sh
++set -v
++python ../../Tools/scripts/h2py.py -i '(u_long)' /usr/include/netinet/in.h
+Index: Lib/plat-freebsd8/IN.py
+===================================================================
+--- Lib/plat-freebsd8/IN.py (revision 0)
++++ Lib/plat-freebsd8/IN.py (revision 58697)
+@@ -0,0 +1,571 @@
++# Generated by h2py from /usr/include/netinet/in.h
++
++# Included from sys/cdefs.h
++__GNUCLIKE_ASM = 3
++__GNUCLIKE_ASM = 2
++__GNUCLIKE___TYPEOF = 1
++__GNUCLIKE___OFFSETOF = 1
++__GNUCLIKE___SECTION = 1
++__GNUCLIKE_ATTRIBUTE_MODE_DI = 1
++__GNUCLIKE_CTOR_SECTION_HANDLING = 1
++__GNUCLIKE_BUILTIN_CONSTANT_P = 1
++__GNUCLIKE_BUILTIN_VARARGS = 1
++__GNUCLIKE_BUILTIN_STDARG = 1
++__GNUCLIKE_BUILTIN_VAALIST = 1
++__GNUC_VA_LIST_COMPATIBILITY = 1
++__GNUCLIKE_BUILTIN_NEXT_ARG = 1
++__GNUCLIKE_BUILTIN_MEMCPY = 1
++__CC_SUPPORTS_INLINE = 1
++__CC_SUPPORTS___INLINE = 1
++__CC_SUPPORTS___INLINE__ = 1
++__CC_SUPPORTS___FUNC__ = 1
++__CC_SUPPORTS_WARNING = 1
++__CC_SUPPORTS_VARADIC_XXX = 1
++__CC_SUPPORTS_DYNAMIC_ARRAY_INIT = 1
++__CC_INT_IS_32BIT = 1
++def __P(protos): return protos
++
++def __STRING(x): return #x
++
++def __XSTRING(x): return __STRING(x)
++
++def __P(protos): return ()
++
++def __STRING(x): return "x"
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __aligned(x): return __attribute__((__aligned__(x)))
++
++def __section(x): return __attribute__((__section__(x)))
++
++def __nonnull(x): return __attribute__((__nonnull__(x)))
++
++def __predict_true(exp): return __builtin_expect((exp), 1)
++
++def __predict_false(exp): return __builtin_expect((exp), 0)
++
++def __predict_true(exp): return (exp)
++
++def __predict_false(exp): return (exp)
++
++def __format_arg(fmtarg): return __attribute__((__format_arg__ (fmtarg)))
++
++def __FBSDID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID(s): return __IDSTRING(__CONCAT(__rcsid_,__LINE__),s)
++
++def __RCSID_SOURCE(s): return __IDSTRING(__CONCAT(__rcsid_source_,__LINE__),s)
++
++def __SCCSID(s): return __IDSTRING(__CONCAT(__sccsid_,__LINE__),s)
++
++def __COPYRIGHT(s): return __IDSTRING(__CONCAT(__copyright_,__LINE__),s)
++
++_POSIX_C_SOURCE = 199009
++_POSIX_C_SOURCE = 199209
++__XSI_VISIBLE = 600
++_POSIX_C_SOURCE = 200112
++__XSI_VISIBLE = 500
++_POSIX_C_SOURCE = 199506
++_POSIX_C_SOURCE = 198808
++__POSIX_VISIBLE = 200112
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 199506
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199309
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199209
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 199009
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 198808
++__ISO_C_VISIBLE = 0
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1990
++__POSIX_VISIBLE = 0
++__XSI_VISIBLE = 0
++__BSD_VISIBLE = 0
++__ISO_C_VISIBLE = 1999
++__POSIX_VISIBLE = 200112
++__XSI_VISIBLE = 600
++__BSD_VISIBLE = 1
++__ISO_C_VISIBLE = 1999
++
++# Included from sys/_types.h
++
++# Included from machine/_types.h
++
++# Included from machine/endian.h
++_QUAD_HIGHWORD = 1
++_QUAD_LOWWORD = 0
++_LITTLE_ENDIAN = 1234
++_BIG_ENDIAN = 4321
++_PDP_ENDIAN = 3412
++_BYTE_ORDER = _LITTLE_ENDIAN
++LITTLE_ENDIAN = _LITTLE_ENDIAN
++BIG_ENDIAN = _BIG_ENDIAN
++PDP_ENDIAN = _PDP_ENDIAN
++BYTE_ORDER = _BYTE_ORDER
++def __word_swap_int_var(x): return \
++
++def __word_swap_int_const(x): return \
++
++def __word_swap_int(x): return __word_swap_int_var(x)
++
++def __byte_swap_int_var(x): return \
++
++def __byte_swap_int_const(x): return \
++
++def __byte_swap_int(x): return __byte_swap_int_var(x)
++
++def __byte_swap_word_var(x): return \
++
++def __byte_swap_word_const(x): return \
++
++def __byte_swap_word(x): return __byte_swap_word_var(x)
++
++def __htonl(x): return __bswap32(x)
++
++def __htons(x): return __bswap16(x)
++
++def __ntohl(x): return __bswap32(x)
++
++def __ntohs(x): return __bswap16(x)
++
++IPPROTO_IP = 0
++IPPROTO_ICMP = 1
++IPPROTO_TCP = 6
++IPPROTO_UDP = 17
++def htonl(x): return __htonl(x)
++
++def htons(x): return __htons(x)
++
++def ntohl(x): return __ntohl(x)
++
++def ntohs(x): return __ntohs(x)
++
++IPPROTO_RAW = 255
++INET_ADDRSTRLEN = 16
++IPPROTO_HOPOPTS = 0
++IPPROTO_IGMP = 2
++IPPROTO_GGP = 3
++IPPROTO_IPV4 = 4
++IPPROTO_IPIP = IPPROTO_IPV4
++IPPROTO_ST = 7
++IPPROTO_EGP = 8
++IPPROTO_PIGP = 9
++IPPROTO_RCCMON = 10
++IPPROTO_NVPII = 11
++IPPROTO_PUP = 12
++IPPROTO_ARGUS = 13
++IPPROTO_EMCON = 14
++IPPROTO_XNET = 15
++IPPROTO_CHAOS = 16
++IPPROTO_MUX = 18
++IPPROTO_MEAS = 19
++IPPROTO_HMP = 20
++IPPROTO_PRM = 21
++IPPROTO_IDP = 22
++IPPROTO_TRUNK1 = 23
++IPPROTO_TRUNK2 = 24
++IPPROTO_LEAF1 = 25
++IPPROTO_LEAF2 = 26
++IPPROTO_RDP = 27
++IPPROTO_IRTP = 28
++IPPROTO_TP = 29
++IPPROTO_BLT = 30
++IPPROTO_NSP = 31
++IPPROTO_INP = 32
++IPPROTO_SEP = 33
++IPPROTO_3PC = 34
++IPPROTO_IDPR = 35
++IPPROTO_XTP = 36
++IPPROTO_DDP = 37
++IPPROTO_CMTP = 38
++IPPROTO_TPXX = 39
++IPPROTO_IL = 40
++IPPROTO_IPV6 = 41
++IPPROTO_SDRP = 42
++IPPROTO_ROUTING = 43
++IPPROTO_FRAGMENT = 44
++IPPROTO_IDRP = 45
++IPPROTO_RSVP = 46
++IPPROTO_GRE = 47
++IPPROTO_MHRP = 48
++IPPROTO_BHA = 49
++IPPROTO_ESP = 50
++IPPROTO_AH = 51
++IPPROTO_INLSP = 52
++IPPROTO_SWIPE = 53
++IPPROTO_NHRP = 54
++IPPROTO_MOBILE = 55
++IPPROTO_TLSP = 56
++IPPROTO_SKIP = 57
++IPPROTO_ICMPV6 = 58
++IPPROTO_NONE = 59
++IPPROTO_DSTOPTS = 60
++IPPROTO_AHIP = 61
++IPPROTO_CFTP = 62
++IPPROTO_HELLO = 63
++IPPROTO_SATEXPAK = 64
++IPPROTO_KRYPTOLAN = 65
++IPPROTO_RVD = 66
++IPPROTO_IPPC = 67
++IPPROTO_ADFS = 68
++IPPROTO_SATMON = 69
++IPPROTO_VISA = 70
++IPPROTO_IPCV = 71
++IPPROTO_CPNX = 72
++IPPROTO_CPHB = 73
++IPPROTO_WSN = 74
++IPPROTO_PVP = 75
++IPPROTO_BRSATMON = 76
++IPPROTO_ND = 77
++IPPROTO_WBMON = 78
++IPPROTO_WBEXPAK = 79
++IPPROTO_EON = 80
++IPPROTO_VMTP = 81
++IPPROTO_SVMTP = 82
++IPPROTO_VINES = 83
++IPPROTO_TTP = 84
++IPPROTO_IGP = 85
++IPPROTO_DGP = 86
++IPPROTO_TCF = 87
++IPPROTO_IGRP = 88
++IPPROTO_OSPFIGP = 89
++IPPROTO_SRPC = 90
++IPPROTO_LARP = 91
++IPPROTO_MTP = 92
++IPPROTO_AX25 = 93
++IPPROTO_IPEIP = 94
++IPPROTO_MICP = 95
++IPPROTO_SCCSP = 96
++IPPROTO_ETHERIP = 97
++IPPROTO_ENCAP = 98
++IPPROTO_APES = 99
++IPPROTO_GMTP = 100
++IPPROTO_IPCOMP = 108
++IPPROTO_SCTP = 132
++IPPROTO_PIM = 103
++IPPROTO_CARP = 112
++IPPROTO_PGM = 113
++IPPROTO_PFSYNC = 240
++IPPROTO_OLD_DIVERT = 254
++IPPROTO_MAX = 256
++IPPROTO_DONE = 257
++IPPROTO_DIVERT = 258
++IPPROTO_SPACER = 32767
++IPPORT_RESERVED = 1024
++IPPORT_HIFIRSTAUTO = 49152
++IPPORT_HILASTAUTO = 65535
++IPPORT_RESERVEDSTART = 600
++IPPORT_MAX = 65535
++def IN_CLASSA(i): return (((u_int32_t)(i) & (-2147483648)) == 0)
++
++IN_CLASSA_NET = (-16777216)
++IN_CLASSA_NSHIFT = 24
++IN_CLASSA_HOST = 0x00ffffff
++IN_CLASSA_MAX = 128
++def IN_CLASSB(i): return (((u_int32_t)(i) & (-1073741824)) == (-2147483648))
++
++IN_CLASSB_NET = (-65536)
++IN_CLASSB_NSHIFT = 16
++IN_CLASSB_HOST = 0x0000ffff
++IN_CLASSB_MAX = 65536
++def IN_CLASSC(i): return (((u_int32_t)(i) & (-536870912)) == (-1073741824))
++
++IN_CLASSC_NET = (-256)
++IN_CLASSC_NSHIFT = 8
++IN_CLASSC_HOST = 0x000000ff
++def IN_CLASSD(i): return (((u_int32_t)(i) & (-268435456)) == (-536870912))
++
++IN_CLASSD_NET = (-268435456)
++IN_CLASSD_NSHIFT = 28
++IN_CLASSD_HOST = 0x0fffffff
++def IN_MULTICAST(i): return IN_CLASSD(i)
++
++def IN_EXPERIMENTAL(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_BADCLASS(i): return (((u_int32_t)(i) & (-268435456)) == (-268435456))
++
++def IN_LINKLOCAL(i): return (((u_int32_t)(i) & (-65536)) == (-1442971648))
++
++def IN_LOCAL_GROUP(i): return (((u_int32_t)(i) & (-256)) == (-536870912))
++
++INADDR_NONE = (-1)
++IN_LOOPBACKNET = 127
++IP_OPTIONS = 1
++IP_HDRINCL = 2
++IP_TOS = 3
++IP_TTL = 4
++IP_RECVOPTS = 5
++IP_RECVRETOPTS = 6
++IP_RECVDSTADDR = 7
++IP_SENDSRCADDR = IP_RECVDSTADDR
++IP_RETOPTS = 8
++IP_MULTICAST_IF = 9
++IP_MULTICAST_TTL = 10
++IP_MULTICAST_LOOP = 11
++IP_ADD_MEMBERSHIP = 12
++IP_DROP_MEMBERSHIP = 13
++IP_MULTICAST_VIF = 14
++IP_RSVP_ON = 15
++IP_RSVP_OFF = 16
++IP_RSVP_VIF_ON = 17
++IP_RSVP_VIF_OFF = 18
++IP_PORTRANGE = 19
++IP_RECVIF = 20
++IP_IPSEC_POLICY = 21
++IP_FAITH = 22
++IP_ONESBCAST = 23
++IP_FW_TABLE_ADD = 40
++IP_FW_TABLE_DEL = 41
++IP_FW_TABLE_FLUSH = 42
++IP_FW_TABLE_GETSIZE = 43
++IP_FW_TABLE_LIST = 44
++IP_FW_ADD = 50
++IP_FW_DEL = 51
++IP_FW_FLUSH = 52
++IP_FW_ZERO = 53
++IP_FW_GET = 54
++IP_FW_RESETLOG = 55
++IP_FW_NAT_CFG = 56
++IP_FW_NAT_DEL = 57
++IP_FW_NAT_GET_CONFIG = 58
++IP_FW_NAT_GET_LOG = 59
++IP_DUMMYNET_CONFIGURE = 60
++IP_DUMMYNET_DEL = 61
++IP_DUMMYNET_FLUSH = 62
++IP_DUMMYNET_GET = 64
++IP_RECVTTL = 65
++IP_MINTTL = 66
++IP_DONTFRAG = 67
++IP_ADD_SOURCE_MEMBERSHIP = 70
++IP_DROP_SOURCE_MEMBERSHIP = 71
++IP_BLOCK_SOURCE = 72
++IP_UNBLOCK_SOURCE = 73
++IP_MSFILTER = 74
++MCAST_JOIN_GROUP = 80
++MCAST_LEAVE_GROUP = 81
++MCAST_JOIN_SOURCE_GROUP = 82
++MCAST_LEAVE_SOURCE_GROUP = 83
++MCAST_BLOCK_SOURCE = 84
++MCAST_UNBLOCK_SOURCE = 85
++IP_DEFAULT_MULTICAST_TTL = 1
++IP_DEFAULT_MULTICAST_LOOP = 1
++IP_MIN_MEMBERSHIPS = 31
++IP_MAX_MEMBERSHIPS = 4095
++IP_MAX_SOURCE_FILTER = 1024
++MCAST_INCLUDE = 1
++MCAST_EXCLUDE = 2
++IP_PORTRANGE_DEFAULT = 0
++IP_PORTRANGE_HIGH = 1
++IP_PORTRANGE_LOW = 2
++IPPROTO_MAXID = (IPPROTO_AH + 1)
++IPCTL_FORWARDING = 1
++IPCTL_SENDREDIRECTS = 2
++IPCTL_DEFTTL = 3
++IPCTL_DEFMTU = 4
++IPCTL_RTEXPIRE = 5
++IPCTL_RTMINEXPIRE = 6
++IPCTL_RTMAXCACHE = 7
++IPCTL_SOURCEROUTE = 8
++IPCTL_DIRECTEDBROADCAST = 9
++IPCTL_INTRQMAXLEN = 10
++IPCTL_INTRQDROPS = 11
++IPCTL_STATS = 12
++IPCTL_ACCEPTSOURCEROUTE = 13
++IPCTL_FASTFORWARDING = 14
++IPCTL_KEEPFAITH = 15
++IPCTL_GIF_TTL = 16
++IPCTL_MAXID = 17
++def in_nullhost(x): return ((x).s_addr == INADDR_ANY)
++
++
++# Included from netinet6/in6.h
++__KAME_VERSION = "FreeBSD"
++IPV6PORT_RESERVED = 1024
++IPV6PORT_ANONMIN = 49152
++IPV6PORT_ANONMAX = 65535
++IPV6PORT_RESERVEDMIN = 600
++IPV6PORT_RESERVEDMAX = (IPV6PORT_RESERVED-1)
++INET6_ADDRSTRLEN = 46
++IPV6_ADDR_INT32_ONE = 1
++IPV6_ADDR_INT32_TWO = 2
++IPV6_ADDR_INT32_MNL = (-16711680)
++IPV6_ADDR_INT32_MLL = (-16646144)
++IPV6_ADDR_INT32_SMP = 0x0000ffff
++IPV6_ADDR_INT16_ULL = 0xfe80
++IPV6_ADDR_INT16_USL = 0xfec0
++IPV6_ADDR_INT16_MLL = 0xff02
++IPV6_ADDR_INT32_ONE = 0x01000000
++IPV6_ADDR_INT32_TWO = 0x02000000
++IPV6_ADDR_INT32_MNL = 0x000001ff
++IPV6_ADDR_INT32_MLL = 0x000002ff
++IPV6_ADDR_INT32_SMP = (-65536)
++IPV6_ADDR_INT16_ULL = 0x80fe
++IPV6_ADDR_INT16_USL = 0xc0fe
++IPV6_ADDR_INT16_MLL = 0x02ff
++def IN6_IS_ADDR_UNSPECIFIED(a): return \
++
++def IN6_IS_ADDR_LOOPBACK(a): return \
++
++def IN6_IS_ADDR_V4COMPAT(a): return \
++
++def IN6_IS_ADDR_V4MAPPED(a): return \
++
++IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++__IPV6_ADDR_SCOPE_NODELOCAL = 0x01
++__IPV6_ADDR_SCOPE_INTFACELOCAL = 0x01
++__IPV6_ADDR_SCOPE_LINKLOCAL = 0x02
++__IPV6_ADDR_SCOPE_SITELOCAL = 0x05
++__IPV6_ADDR_SCOPE_ORGLOCAL = 0x08
++__IPV6_ADDR_SCOPE_GLOBAL = 0x0e
++def IN6_IS_ADDR_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_INTFACELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_ADDR_MC_NODELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_LINKLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_SITELOCAL(a): return \
++
++def IN6_IS_ADDR_MC_ORGLOCAL(a): return \
++
++def IN6_IS_ADDR_MC_GLOBAL(a): return \
++
++def IN6_IS_SCOPE_LINKLOCAL(a): return \
++
++def IN6_IS_SCOPE_EMBED(a): return \
++
++def IFA6_IS_DEPRECATED(a): return \
++
++def IFA6_IS_INVALID(a): return \
++
++IPV6_OPTIONS = 1
++IPV6_RECVOPTS = 5
++IPV6_RECVRETOPTS = 6
++IPV6_RECVDSTADDR = 7
++IPV6_RETOPTS = 8
++IPV6_SOCKOPT_RESERVED1 = 3
++IPV6_UNICAST_HOPS = 4
++IPV6_MULTICAST_IF = 9
++IPV6_MULTICAST_HOPS = 10
++IPV6_MULTICAST_LOOP = 11
++IPV6_JOIN_GROUP = 12
++IPV6_LEAVE_GROUP = 13
++IPV6_PORTRANGE = 14
++ICMP6_FILTER = 18
++IPV6_2292PKTINFO = 19
++IPV6_2292HOPLIMIT = 20
++IPV6_2292NEXTHOP = 21
++IPV6_2292HOPOPTS = 22
++IPV6_2292DSTOPTS = 23
++IPV6_2292RTHDR = 24
++IPV6_2292PKTOPTIONS = 25
++IPV6_CHECKSUM = 26
++IPV6_V6ONLY = 27
++IPV6_BINDV6ONLY = IPV6_V6ONLY
++IPV6_IPSEC_POLICY = 28
++IPV6_FAITH = 29
++IPV6_FW_ADD = 30
++IPV6_FW_DEL = 31
++IPV6_FW_FLUSH = 32
++IPV6_FW_ZERO = 33
++IPV6_FW_GET = 34
++IPV6_RTHDRDSTOPTS = 35
++IPV6_RECVPKTINFO = 36
++IPV6_RECVHOPLIMIT = 37
++IPV6_RECVRTHDR = 38
++IPV6_RECVHOPOPTS = 39
++IPV6_RECVDSTOPTS = 40
++IPV6_RECVRTHDRDSTOPTS = 41
++IPV6_USE_MIN_MTU = 42
++IPV6_RECVPATHMTU = 43
++IPV6_PATHMTU = 44
++IPV6_REACHCONF = 45
++IPV6_PKTINFO = 46
++IPV6_HOPLIMIT = 47
++IPV6_NEXTHOP = 48
++IPV6_HOPOPTS = 49
++IPV6_DSTOPTS = 50
++IPV6_RTHDR = 51
++IPV6_PKTOPTIONS = 52
++IPV6_RECVTCLASS = 57
++IPV6_AUTOFLOWLABEL = 59
++IPV6_TCLASS = 61
++IPV6_DONTFRAG = 62
++IPV6_PREFER_TEMPADDR = 63
++IPV6_MSFILTER = 74
++IPV6_RTHDR_LOOSE = 0
++IPV6_RTHDR_STRICT = 1
++IPV6_RTHDR_TYPE_0 = 0
++IPV6_DEFAULT_MULTICAST_HOPS = 1
++IPV6_DEFAULT_MULTICAST_LOOP = 1
++IPV6_PORTRANGE_DEFAULT = 0
++IPV6_PORTRANGE_HIGH = 1
++IPV6_PORTRANGE_LOW = 2
++IPV6PROTO_MAXID = (IPPROTO_PIM + 1)
++IPV6CTL_FORWARDING = 1
++IPV6CTL_SENDREDIRECTS = 2
++IPV6CTL_DEFHLIM = 3
++IPV6CTL_DEFMTU = 4
++IPV6CTL_FORWSRCRT = 5
++IPV6CTL_STATS = 6
++IPV6CTL_MRTSTATS = 7
++IPV6CTL_MRTPROTO = 8
++IPV6CTL_MAXFRAGPACKETS = 9
++IPV6CTL_SOURCECHECK = 10
++IPV6CTL_SOURCECHECK_LOGINT = 11
++IPV6CTL_ACCEPT_RTADV = 12
++IPV6CTL_KEEPFAITH = 13
++IPV6CTL_LOG_INTERVAL = 14
++IPV6CTL_HDRNESTLIMIT = 15
++IPV6CTL_DAD_COUNT = 16
++IPV6CTL_AUTO_FLOWLABEL = 17
++IPV6CTL_DEFMCASTHLIM = 18
++IPV6CTL_GIF_HLIM = 19
++IPV6CTL_KAME_VERSION = 20
++IPV6CTL_USE_DEPRECATED = 21
++IPV6CTL_RR_PRUNE = 22
++IPV6CTL_MAPPED_ADDR = 23
++IPV6CTL_V6ONLY = 24
++IPV6CTL_RTEXPIRE = 25
++IPV6CTL_RTMINEXPIRE = 26
++IPV6CTL_RTMAXCACHE = 27
++IPV6CTL_USETEMPADDR = 32
++IPV6CTL_TEMPPLTIME = 33
++IPV6CTL_TEMPVLTIME = 34
++IPV6CTL_AUTO_LINKLOCAL = 35
++IPV6CTL_RIP6STATS = 36
++IPV6CTL_PREFER_TEMPADDR = 37
++IPV6CTL_ADDRCTLPOLICY = 38
++IPV6CTL_USE_DEFAULTZONE = 39
++IPV6CTL_MAXFRAGS = 41
++IPV6CTL_IFQ = 42
++IPV6CTL_ISATAPRTR = 43
++IPV6CTL_MCAST_PMTU = 44
++IPV6CTL_STEALTH = 45
++IPV6CTL_MAXID = 46
+--- Lib/posixfile.py.orig 2005-07-17 11:36:59.000000000 +0900
++++ Lib/posixfile.py 2007-10-28 21:41:27.000000000 +0900
+@@ -179,7 +179,7 @@
+ if sys.platform in ('netbsd1',
+ 'openbsd2',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4'):
+ flock = struct.pack('lxxxxlxxxxlhh', \
+ l_start, l_len, os.getpid(), l_type, l_whence)
+--- Lib/test/regrtest.py.orig 2007-03-09 04:58:46.000000000 +0900
++++ Lib/test/regrtest.py 2007-10-28 21:40:49.000000000 +0900
+@@ -1314,6 +1314,7 @@
+ _expectations['freebsd5'] = _expectations['freebsd4']
+ _expectations['freebsd6'] = _expectations['freebsd4']
+ _expectations['freebsd7'] = _expectations['freebsd4']
++_expectations['freebsd8'] = _expectations['freebsd4']
+
+ class _ExpectedSkips:
+ def __init__(self):
+--- Lib/test/test_fcntl.py.orig 2006-09-05 11:54:42.000000000 +0900
++++ Lib/test/test_fcntl.py 2007-10-28 21:41:12.000000000 +0900
+@@ -23,7 +23,7 @@
+ if sys.platform in ('netbsd1', 'netbsd2', 'netbsd3',
+ 'Darwin1.2', 'darwin',
+ 'freebsd2', 'freebsd3', 'freebsd4', 'freebsd5',
+- 'freebsd6', 'freebsd7',
++ 'freebsd6', 'freebsd7', 'freebsd8',
+ 'bsdos2', 'bsdos3', 'bsdos4',
+ 'openbsd', 'openbsd2', 'openbsd3', 'openbsd4'):
+ if struct.calcsize('l') == 8:
+--- Lib/test/test_socket.py.orig 2007-04-01 03:56:11.000000000 +0900
++++ Lib/test/test_socket.py 2007-10-28 21:40:59.000000000 +0900
+@@ -316,7 +316,7 @@
+ # I've ordered this by protocols that have both a tcp and udp
+ # protocol, at least for modern Linuxes.
+ if sys.platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7', 'darwin'):
++ 'freebsd7', 'freebsd8', 'darwin'):
+ # avoid the 'echo' service on this platform, as there is an
+ # assumption breaking non-standard port/protocol entry
+ services = ('daytime', 'qotd', 'domain')
+--- setup.py.orig 2007-10-28 20:38:55.000000000 +0900
++++ setup.py 2007-10-28 21:40:05.000000000 +0900
+@@ -1045,7 +1045,7 @@
+ exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) )
+
+ if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6',
+- 'freebsd7'):
++ 'freebsd7', 'freebsd8'):
+ exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
+
+ if platform == 'sunos5':
diff --git a/lang/python32/pkg-plist b/lang/python32/pkg-plist
index 3098736ca2c1..580b8cfa52b4 100644
--- a/lang/python32/pkg-plist
+++ b/lang/python32/pkg-plist
@@ -750,6 +750,8 @@ lib/lib%%PYTHON_VERSION%%.so.1
%%PYTHON_LIBDIR%%/plat-freebsd6/regen
%%PYTHON_LIBDIR%%/plat-freebsd7/IN.py
%%PYTHON_LIBDIR%%/plat-freebsd7/regen
+%%PYTHON_LIBDIR%%/plat-freebsd8/IN.py
+%%PYTHON_LIBDIR%%/plat-freebsd8/regen
%%PYTHON_LIBDIR%%/platform.py
%%PYTHON_LIBDIR%%/popen2.py
%%PYTHON_LIBDIR%%/poplib.py
@@ -1868,6 +1870,7 @@ lib/lib%%PYTHON_VERSION%%.so.1
@dirrm %%PYTHON_LIBDIR%%/sqlite3/test
@dirrm %%PYTHON_LIBDIR%%/sqlite3
@dirrm %%PYTHON_LIBDIR%%/site-packages
+@dirrm %%PYTHON_LIBDIR%%/plat-freebsd8
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd7
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd6
@dirrm %%PYTHON_LIBDIR%%/plat-freebsd5