Upstream changes:
Version 0.81 (2013-04-08)
* Correct reverseName() for IPv6 addresses, so IP('::1').reverseName() returns correct.
* Add network mask awareness to v46map()
* Fix Python 3 errors in IPSet class
* Make IPSet base class be object when MutableSet isn't available, fixing
errors in Python 2.5
Version 0.80 (2013-03-26)
------------
* Drop support of Python older than 2.4
* Python 3 does not need 2to3 conversion anymore (same code base)
* Fix adding of non-adjacent networks:
192.168.0.0/24 + 192.168.255.0/24 made 192.168.0.0/23
* Fix adding networks that don't create a valid subnet:
192.168.1.0/24 + 192.168.2.0/24 made 192.168.1.0/23
* Fix adding with an IPv6 address where .int() was < 32 bits made IPy believe it
was an IPv4 address:
::ffff:0/112 + ::1:0:0/112 made 255.255.0.0/111
* Add support of IPSets
* Add support for subtracting a network range
* Prevent IPv4 and IPv6 ranges from saying they contain each other
* Add a .v46map() method to convert mapped address ranges
such as IP('::ffff:192.168.1.1'); RFC 4291
* Change sort order to more natural:
IPv4 before IPv6; less-specific prefixes first (/0 before /32)
Version 0.76 (2013-03-19)
-------------------------
* ip == other and ip != other doesn't fail with an exception anymore if other
is not a IP object
* Add IP.get_mac() method: get the 802.3 MAC address from IPv6 RFC 2464
address.
* Fix IP('::/0')[0]: return an IPv6 instead of an IPv4 address
either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
Remove devel/py-ctypes (only needed by and supporting python24).
Remove PYTHON_VERSIONS_ACCEPTED and PYTHON_VERSIONS_INCOMPATIBLE
lines that just mirror defaults now.
Miscellaneous cleanup while editing all these files.
while here,
* convert to register egg-info
* add test target
Version 0.75 (2011-04-12)
-------------------------
* IP('::/0').netmask() gives IP('::') instead of IP('0.0.0.0')
Version 0.74 (2011-02-16)
-------------------------
* Fix tests for Python 3.1 and 3.2
* ip.__nonzero__() and (ipa in ipb) return a bool instead of 0 or 1
* IP('0.0.0.0/0') + IP('0.0.0.0/0') raises an error, fix written by Arfrever
Version 0.73 (2011-02-15)
-------------------------
* Support Python 3: setup.py runs 2to3
* Update the ranges for IPv6 IPs
* Fix reverseName() and reverseNames() for IPv4 in IPv6 addresses
* Drop support of Python < 2.5
Version 0.72 (2010-11-23)
-------------------------
* Include examples and MANIFEST.in in source build (add them to
MANIFEST.in)
* Remove __rcsid__ constant from IPy module
Version 0.71 (2010-10-01)
-------------------------
* Use xrange() instead of range()
* Use isinstance(x, int) instead of type(x) == types.IntType
* Prepare support of Python3 (use integer division: x // y)
* Fix IP(long) constructor: ensure that the address is not too large
* Constructor raise a TypeError if the type is not int, long,
str or unicode
* 223.0.0.0/8 is now public (belongs to APNIC)
Based on PR#42669 by Wen Heping (and take maintainership).
Version 0.70 (2009-10-29)
* New "major" version because it may break compatibility
* Fix __cmp__(): IP('0.0.0.0/0') and IP('0.0.0.0') are not equal
* Fix IP.net() of the network "::/0": "::" instead of "0.0.0.0".
IPy 0.63 should fix this bug, but it wasn't.
Version 0.64 (2009-08-19)
* Create MANIFEST.in to fix setup.py bdist_rpm, fix by Robert Nickel
Version 0.63 (2009-06-23)
* Fix formatting of "IPv4 in IPv6" network, eg. IP('::ffff:192.168.10.0/120'),
the netmask ("/120" in the example) was missing!
Version 0.62 (2008-07-15)
* Fix reverse DNS of IPv6 address: use ".ip6.arpa." suffix instead of
deprecated ".ip6.int." suffix
Version 0.61 (2008-06-12)
* Patch from Aras Vaichas allowing the [-1] operator
to work with an IP object of size 1.
Version 0.60 (2008-05-16)
* strCompressed() formats '::ffff:a.b.c.d' correctly
* Use strCompressed() instead of strFullsize() to format IP addresses,
ouput is smarter with IPv6 address
* Remove check_addr_prefixlen because it generates invalid IP address
2008-02-05
* Release IPy 0.56
* Fix IPv6 parser for unit tests: reject
'1111::2222:3333:4444:5555:6666:7777:8888' address since '::' is
useless
2007-08-16
* Release IPy 0.55
* Rewrite IPv6 parser to allow address "1:2:3:4:5:6::"
2007-06-22
* Release IPy 0.54
* make_net() match from James Teh: transform an IP address into a network
address by applying the given netmask
2007-02-28
* Release IPy 0.53
* Reject '0.0.0.0-0.0.0.4' if check_addr_prefixlen is enable
* Fix many english spelling mistakes
2006-11-06
* Release IPy 0.52
* Fix strCompressed() for IPv6 "ffff:ffff:ffff:ffff:ffff:f:f:fffc/127"
2006-11-02
* Release IPy 0.51
* Write real name of IPy author (Maximillian Dornseif)
* Use version "0.51" to help packaging since 0.5 was smaller than 0.42
* Fix unit test for Python 2.3 (don't use doctest.testfile) and 2.5
(problem of hex() lower case)
* "make test" also check IPy documentation
* IPy now works on Python 2.2 to 2.5
2006-10-26
* Release IPy 0.5
* Apply Jean Gillaux patch for netmask "/0.0.0.0" bug
* Apply William McVey patch for __nonzero__() bug
* Apply Victor Stinner patch: setup.py can use setuptools and fix URLs
* Allow "172.30.1.0/22" with new option IPy.check_addr_prefixlen=False
* Add regression tests
* Create AUTHORS file
2004-08-22
* IPy 0.42 works on Python 2.3 without warnings
2002-01-16
* IPy 0.41 has Python < 2.2 compatible unit tests and a README file
Inspired by FreeBSD "ports".
Fix the PLISTs accordingly.
Also, while at it, remove now obsolete compileall.py calls in post-install
targets and insure that extension.mk is in included before builinlinks of
other Python modules.
Discussed with/ok'ed by drochner@.
extension Makefile fragments, because they really don't have anything to
do with the buildlink[12] frameworks. Change all the Makefiles that use
application.buildlink.mk and extension.buildlink.mk to use application.mk
and extension.mk instead.