Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-getmac for openSUSE:Factory checked in at 2022-09-29 18:14:16 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-getmac (Old) and /work/SRC/openSUSE:Factory/.python-getmac.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-getmac" Thu Sep 29 18:14:16 2022 rev:6 rq:1006897 version:0.8.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-getmac/python-getmac.changes 2021-04-17 23:25:04.333605003 +0200 +++ /work/SRC/openSUSE:Factory/.python-getmac.new.2275/python-getmac.changes 2022-09-29 18:15:07.443462669 +0200 @@ -1,0 +2,18 @@ +Wed Sep 28 21:01:13 UTC 2022 - Yogalakshmi Arunachalam <[email protected]> + +- 0.8.3 (12/10/2021) + Announcement: Compatibility with Python versions older than 3.6 (2.7, 3.4, and 3.5) is deprecated and will be removed in getmac 1.0.0. + If you are stuck on an unsupported Python, considor loosely pinning the version of this package in your dependency list, e.g. getmac<1. + Changed + Added support for Thomas Habets' version of arping in addition to the existing iputils one (contributed by Ville Skytt?? (@scop) in #52 and #54) + Added support for docker in network bridge mode (contributed by Tomasz Duda (@tomaszduda23) in #57) + Add CHANGELOG URL to PyPI metadata (contributed by Ville Skytt?? (@scop) in #58) + Fixed code quality test suite errors (includes changes by Daniel Flanagan (@FlantasticDan) in #67) + Improved Android support (contributed by @emadmahdi in #71) + Minor code quality fixes (2 years of neglecting master branch) + Add Code of Conduct for project contributors + Add SECURITY.md for reporting security issues (e.g. vulnerabilities) + Deprecate Python 3.4 and 3.5 + Issue deprecation message as a warning in addition to a log message + +------------------------------------------------------------------- Old: ---- getmac-0.8.2.tar.gz New: ---- getmac-0.8.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-getmac.spec ++++++ --- /var/tmp/diff_new_pack.FMMhgt/_old 2022-09-29 18:15:07.947463658 +0200 +++ /var/tmp/diff_new_pack.FMMhgt/_new 2022-09-29 18:15:07.955463673 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-getmac # -# Copyright (c) 2021 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -19,7 +19,7 @@ %define skip_python2 1 %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-getmac -Version: 0.8.2 +Version: 0.8.3 Release: 0 Summary: Module to get MAC addresses of remote hosts and local interfaces License: MIT ++++++ getmac-0.8.2.tar.gz -> getmac-0.8.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/CHANGELOG.md new/getmac-0.8.3/CHANGELOG.md --- old/getmac-0.8.2/CHANGELOG.md 2019-12-08 02:48:17.000000000 +0100 +++ new/getmac-0.8.3/CHANGELOG.md 2021-12-10 21:05:37.000000000 +0100 @@ -1,13 +1,29 @@ # Changelog -**NOTE**: if any changes significantly impact your project or use case, - please open an issue on [GitHub](https://github.com/GhostofGoes/getmac/issues) - or send me an email (see git commit author info for address). +**NOTE**: if any changes significantly impact your project or use case, please open an issue on [GitHub](https://github.com/GhostofGoes/getmac/issues) or email me (see git commit author info for address). + ## NEXT (XX/XX/XXXX) * TBD +## 0.8.3 (12/10/2021) + +**Announcement**: Compatibility with Python versions older than 3.6 (2.7, 3.4, and 3.5) is deprecated and will be removed in getmac 1.0.0. If you are stuck on an unsupported Python, considor loosely pinning the version of this package in your dependency list, e.g. `getmac<1`. + +### Changed +* Added support for Thomas Habets' version of `arping` in addition to the existing iputils one (contributed by Ville Skytt?? (@scop) in [#52](https://github.com/GhostofGoes/getmac/pull/52) and [#54](https://github.com/GhostofGoes/getmac/pull/54)) +* Added support for docker in network bridge mode (contributed by Tomasz Duda (@tomaszduda23) in [#57](https://github.com/GhostofGoes/getmac/pull/57)) +* Add CHANGELOG URL to PyPI metadata (contributed by Ville Skytt?? (@scop) in [#58](https://github.com/GhostofGoes/getmac/pull/58)) +* Fixed code quality test suite errors (includes changes by Daniel Flanagan (@FlantasticDan) in [#67](https://github.com/GhostofGoes/getmac/pull/67)) +* Improved Android support (contributed by @emadmahdi in [#71](https://github.com/GhostofGoes/getmac/pull/71)) +* Minor code quality fixes (2 years of neglecting master branch) +* Add [Code of Conduct](https://github.com/GhostofGoes/getmac/blob/master/CODE_OF_CONDUCT.md) for project contributors +* Add [SECURITY.md](https://github.com/GhostofGoes/getmac/blob/master/SECURITY.md) for reporting security issues (e.g. vulnerabilities) +* Deprecate Python 3.4 and 3.5 +* Issue deprecation message as a warning in addition to a log message + + ## 0.8.2 (12/07/2019) **Announcement**: Python 2 compatibility will be dropped in getmac 1.0.0, which will be finished sometime in 2020. If you are stuck on Python 2, consider loosely pinning the version in your dependencies list, e.g. `getmac<1`. I will continue to fix reported bugs and accept patches for the last release before 1.0.0, however active development will cease and new features will not be backported. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/CONTRIBUTING.md new/getmac-0.8.3/CONTRIBUTING.md --- old/getmac-0.8.2/CONTRIBUTING.md 2019-09-07 00:50:31.000000000 +0200 +++ new/getmac-0.8.3/CONTRIBUTING.md 2021-12-10 20:31:04.000000000 +0100 @@ -16,6 +16,7 @@ (cursing/swearing), NSFW text/content, or racism are NOT ok. ## Checklist before submitting a pull request +* [ ] Code is formatted with Black: `black getmac tests` * [ ] All tests run and pass locally * [ ] `tox` * [ ] `tox -e check` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/MANIFEST.in new/getmac-0.8.3/MANIFEST.in --- old/getmac-0.8.2/MANIFEST.in 2019-09-07 00:50:31.000000000 +0200 +++ new/getmac-0.8.3/MANIFEST.in 2021-12-10 20:15:40.000000000 +0100 @@ -1,15 +1,16 @@ -include LICENSE README.md CHANGELOG.md CONTRIBUTING.md -include docs/man/getmac.1 -include docs/man/getmac2.1 -graft getmac -graft tests - -prune .github -prune packaging -prune scripts - -global-exclude *.py[cod] __pycache__ *.so *.class -exclude *-getmac.spec *.yml -exclude tox.ini Dockerfile Vagrantfile .editorconfig -exclude conf.py index.md make.bat Makefile packaging.md -exclude releasing.md style-requirements.txt requirements.txt TODO.md \ No newline at end of file +include LICENSE README.md CHANGELOG.md CONTRIBUTING.md +prune docs +include docs/man/getmac.1 +include docs/man/getmac2.1 +graft getmac +graft tests + +prune .github +prune packaging +prune scripts + +global-exclude *.py[cod] __pycache__ *.so *.class +exclude *-getmac.spec *.yml +exclude tox.ini Dockerfile Vagrantfile .editorconfig +exclude conf.py index.md make.bat Makefile packaging.md +exclude releasing.md style-requirements.txt requirements.txt TODO.md CODE_OF_CONDUCT.md SECURITY.md diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/PKG-INFO new/getmac-0.8.3/PKG-INFO --- old/getmac-0.8.2/PKG-INFO 2019-12-08 02:49:44.000000000 +0100 +++ new/getmac-0.8.3/PKG-INFO 2021-12-10 21:57:20.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: getmac -Version: 0.8.2 +Version: 0.8.3 Summary: Get MAC addresses of remote hosts and local interfaces Home-page: https://github.com/GhostofGoes/getmac Author: Christopher Goes @@ -8,6 +8,7 @@ License: MIT Project-URL: Discord server, https://discord.gg/python Project-URL: Issue tracker, https://github.com/GhostofGoes/getmac/issues +Project-URL: Changelog, https://github.com/GhostofGoes/getmac/blob/master/CHANGELOG.md Description: [](https://pypi.org/project/getmac/) [](https://coveralls.io/github/GhostofGoes/getmac?branch=master) @@ -230,11 +231,13 @@ * Docker ## Docker + Add `-v /proc/1/net/arp:/host/arp -e ARP_PATH=/host/arp` to access arp table of host inside container in bridge network mode. ```bash docker build -f packaging/Dockerfile -t getmac . docker run -it getmac:latest --help docker run -it getmac:latest --version docker run -it getmac:latest -n localhost + docker run --rm -it -v /proc/1/net/arp:/host/arp -e ARP_PATH=/host/arp getmac:latest -n 192.168.0.1 ``` ## Caveats @@ -283,12 +286,15 @@ ### Contributors * Christopher Goes (@ghostofgoes) - Author and maintainer * Calvin Tran (@cyberhobbes) - Windows interface detection improvements + * Daniel Flanagan (@FlantasticDan) - Code cleanup + * @emadmahdi - Android fixes * Izra Faturrahman (@Frizz925) - Unit tests using the platform samples * Jose Gonzalez (@Komish) - Docker container and Docker testing * @fortunate-man - Awesome usage videos * @martmists - legacy Python compatibility improvements * @hargoniX - scripts and specfiles for RPM packaging * Ville Skytt?? (@scop) - arping lookup support + * Tomasz Duda (@tomaszduda23) - support for docker in network bridge mode ## Sources Many of the methods used to acquire an address and the core logic framework @@ -307,14 +313,30 @@ # Changelog - **NOTE**: if any changes significantly impact your project or use case, - please open an issue on [GitHub](https://github.com/GhostofGoes/getmac/issues) - or send me an email (see git commit author info for address). + **NOTE**: if any changes significantly impact your project or use case, please open an issue on [GitHub](https://github.com/GhostofGoes/getmac/issues) or email me (see git commit author info for address). + ## NEXT (XX/XX/XXXX) * TBD + ## 0.8.3 (12/10/2021) + + **Announcement**: Compatibility with Python versions older than 3.6 (2.7, 3.4, and 3.5) is deprecated and will be removed in getmac 1.0.0. If you are stuck on an unsupported Python, considor loosely pinning the version of this package in your dependency list, e.g. `getmac<1`. + + ### Changed + * Added support for Thomas Habets' version of `arping` in addition to the existing iputils one (contributed by Ville Skytt?? (@scop) in [#52](https://github.com/GhostofGoes/getmac/pull/52) and [#54](https://github.com/GhostofGoes/getmac/pull/54)) + * Added support for docker in network bridge mode (contributed by Tomasz Duda (@tomaszduda23) in [#57](https://github.com/GhostofGoes/getmac/pull/57)) + * Add CHANGELOG URL to PyPI metadata (contributed by Ville Skytt?? (@scop) in [#58](https://github.com/GhostofGoes/getmac/pull/58)) + * Fixed code quality test suite errors (includes changes by Daniel Flanagan (@FlantasticDan) in [#67](https://github.com/GhostofGoes/getmac/pull/67)) + * Improved Android support (contributed by @emadmahdi in [#71](https://github.com/GhostofGoes/getmac/pull/71)) + * Minor code quality fixes (2 years of neglecting master branch) + * Add [Code of Conduct](https://github.com/GhostofGoes/getmac/blob/master/CODE_OF_CONDUCT.md) for project contributors + * Add [SECURITY.md](https://github.com/GhostofGoes/getmac/blob/master/SECURITY.md) for reporting security issues (e.g. vulnerabilities) + * Deprecate Python 3.4 and 3.5 + * Issue deprecation message as a warning in addition to a log message + + ## 0.8.2 (12/07/2019) **Announcement**: Python 2 compatibility will be dropped in getmac 1.0.0, which will be finished sometime in 2020. If you are stuck on Python 2, consider loosely pinning the version in your dependencies list, e.g. `getmac<1`. I will continue to fix reported bugs and accept patches for the last release before 1.0.0, however active development will cease and new features will not be backported. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/README.md new/getmac-0.8.3/README.md --- old/getmac-0.8.2/README.md 2019-12-08 01:17:49.000000000 +0100 +++ new/getmac-0.8.3/README.md 2021-12-10 20:55:16.000000000 +0100 @@ -220,11 +220,13 @@ * Docker ## Docker +Add `-v /proc/1/net/arp:/host/arp -e ARP_PATH=/host/arp` to access arp table of host inside container in bridge network mode. ```bash docker build -f packaging/Dockerfile -t getmac . docker run -it getmac:latest --help docker run -it getmac:latest --version docker run -it getmac:latest -n localhost +docker run --rm -it -v /proc/1/net/arp:/host/arp -e ARP_PATH=/host/arp getmac:latest -n 192.168.0.1 ``` ## Caveats @@ -273,12 +275,15 @@ ### Contributors * Christopher Goes (@ghostofgoes) - Author and maintainer * Calvin Tran (@cyberhobbes) - Windows interface detection improvements +* Daniel Flanagan (@FlantasticDan) - Code cleanup +* @emadmahdi - Android fixes * Izra Faturrahman (@Frizz925) - Unit tests using the platform samples * Jose Gonzalez (@Komish) - Docker container and Docker testing * @fortunate-man - Awesome usage videos * @martmists - legacy Python compatibility improvements * @hargoniX - scripts and specfiles for RPM packaging * Ville Skytt?? (@scop) - arping lookup support +* Tomasz Duda (@tomaszduda23) - support for docker in network bridge mode ## Sources Many of the methods used to acquire an address and the core logic framework diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/getmac/__main__.py new/getmac-0.8.3/getmac/__main__.py --- old/getmac-0.8.2/getmac/__main__.py 2019-09-07 00:50:31.000000000 +0200 +++ new/getmac-0.8.3/getmac/__main__.py 2021-12-10 20:23:24.000000000 +0100 @@ -11,6 +11,7 @@ def main(): + # type: () -> None parser = argparse.ArgumentParser( "getmac", description="Get the MAC address of system network " diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/getmac/getmac.py new/getmac-0.8.3/getmac/getmac.py --- old/getmac-0.8.2/getmac/getmac.py 2019-12-08 02:48:17.000000000 +0100 +++ new/getmac-0.8.3/getmac/getmac.py 2021-12-10 21:54:25.000000000 +0100 @@ -32,6 +32,7 @@ import struct import sys import traceback +import warnings from subprocess import check_output try: # Python 3 @@ -43,7 +44,7 @@ log = logging.getLogger("getmac") log.addHandler(logging.NullHandler()) -__version__ = "0.8.2" +__version__ = "0.8.3" PY2 = sys.version_info[0] == 2 # Configurable settings @@ -81,6 +82,8 @@ ENV = dict(os.environ) ENV["LC_ALL"] = "C" # Ensure ASCII output so we parse correctly +ARP_PATH = os.environ.get("ARP_PATH", "/proc/net/arp") + # Constants IP4 = 0 IP6 = 1 @@ -101,8 +104,8 @@ except ImportError: pass -# Ensure we only log the Python 2 warning once -WARNED_PY2 = False +# Ensure we only log the Python compatibility warning once +WARNED_UNSUPPORTED_PYTHONS = False def get_mac_address( @@ -133,14 +136,18 @@ Lowercase colon-separated MAC address, or None if one could not be found or there was an error. """ - if PY2: - global WARNED_PY2 - if not WARNED_PY2: - log.warning( - "Python 2 compatibility will be dropped in getmac 1.0.0. If you are " - 'stuck on Python 2, consider loosely pinning the version e.g. "getmac<1".' + if PY2 or (sys.version_info[0] == 3 and sys.version_info[1] < 6): + global WARNED_UNSUPPORTED_PYTHONS + if not WARNED_UNSUPPORTED_PYTHONS: + warning_string = ( + "Support for Python versions < 3.6 is deprecated and will be " + "removed in getmac 1.0.0. If you are stuck on an unsupported " + "Python, considor loosely pinning the version of this package " + 'in your dependency list, e.g. "getmac<1".' ) - WARNED_PY2 = True + warnings.warn(warning_string, DeprecationWarning) + log.warning(warning_string) # Ensure it appears in any logs + WARNED_UNSUPPORTED_PYTHONS = True if (hostname and hostname == "localhost") or (ip and ip == "127.0.0.1"): return "00:00:00:00:00:00" @@ -160,7 +167,7 @@ s.sendto(b"", (ip, PORT)) else: s.sendto(b"", (ip6, PORT)) - except Exception: + except Exception: # noqa: B902 log.error("Failed to send ARP table population packet") if DEBUG: log.debug(traceback.format_exc()) @@ -296,7 +303,7 @@ inetaddr = ctypes.windll.wsock32.inet_addr(host) # type: ignore if inetaddr in (0, -1): raise Exception - except Exception: + except Exception: # noqa: BLK100 hostip = socket.gethostbyname(host) inetaddr = ctypes.windll.wsock32.inet_addr(hostip) # type: ignore @@ -347,7 +354,7 @@ mac2 = _uuid_convert(mac2) if mac1 == mac2: return mac1 - except Exception: + except Exception: # noqa: B902 raise finally: socket.gethostbyname = backup @@ -380,7 +387,7 @@ def _read_arp_file(host): # type: (str) -> Optional[str] - data = _read_file("/proc/net/arp") + data = _read_file(ARP_PATH) if data is not None and len(data) > 1: # Need a space, otherwise a search for 192.168.16.2 # will match 192.168.16.254 if it comes first! @@ -388,11 +395,21 @@ return None -def _arping(host): +def _arping_habets(host): + # type: (str) -> Optional[str] + """Parse https://github.com/ThomasHabets/arping output.""" + return _search( + r"^%s$" % MAC_RE_COLON, + _popen("arping", "-r -C 1 -c 1 %s" % host).strip(), + ) + + +def _arping_iputils(host): # type: (str) -> Optional[str] + """Parse iputils arping output.""" return _search( r" from %s \[(%s)\]" % (re.escape(host), MAC_RE_COLON), - _popen("arping", "-f -c 1 %s" % host), + _popen("arping", "-f -c 1 %s" % host).strip(), ) @@ -401,7 +418,7 @@ try: with open(filepath) as f: return f.read() - except (OSError, IOError): # This is IOError on Python 2.7 + except (OSError, IOError): # noqa: B014 - This is IOError on Python 2.7 log.debug("Could not find file: '%s'", filepath) return None @@ -493,13 +510,17 @@ (r"ether " + MAC_RE_COLON, 0, "ifconfig", [to_find]), # Fast ifconfig (r"HWaddr " + MAC_RE_COLON, 0, "ifconfig", [to_find]), + # Android 6.0.1 + (r"state UP.*\n.*ether " + MAC_RE_COLON, 0, "ip", ["link", "addr"]), + (r"wlan.*\n.*ether " + MAC_RE_COLON, 0, "ip", ["link", "addr"]), + (r"ether " + MAC_RE_COLON, 0, "ip", ["link", "addr"]), # ip link (Don't use 'list' due to SELinux [Android 24+]) - ( - to_find + r".*\n.*link/ether " + MAC_RE_COLON, - 0, - "ip", - ["link %s" % to_find, "link"], - ), + # ( + # to_find + r".*\n.*link/ether " + MAC_RE_COLON, + # 0, + # "ip", + # ["link %s" % to_find, "link"], + # ), # netstat (to_find + r".*HWaddr " + MAC_RE_COLON, 0, "netstat", ["-iae"]), # More variations of ifconfig @@ -535,7 +556,7 @@ ] # Add methods that make network requests if net_ok and type_of_thing != IP6: - methods.append(_arping) + methods.extend((_arping_iputils, _arping_habets)) else: log.critical("Reached end of _hunt_for_mac() if-else chain!") return None @@ -573,7 +594,7 @@ log.debug("Result: %s\n", found) else: log.critical("Invalid type '%s' for method '%s'", type(m), str(m)) - except Exception as ex: + except Exception as ex: # noqa: B902 if DEBUG: log.debug("Exception: %s", str(ex)) if DEBUG >= 2: @@ -633,7 +654,7 @@ def _get_default_iface_freebsd(): # type: () -> Optional[str] - methods = [(r"default[ ]+\S+[ ]+\S+[ ]+(\S+)\n", 0, "netstat", ["-r"])] + methods = [(r"default[ ]+\S+[ ]+\S+[ ]+(\S+)[\r\n]+", 0, "netstat", ["-r"])] return _try_methods(methods) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/getmac.egg-info/PKG-INFO new/getmac-0.8.3/getmac.egg-info/PKG-INFO --- old/getmac-0.8.2/getmac.egg-info/PKG-INFO 2019-12-08 02:49:43.000000000 +0100 +++ new/getmac-0.8.3/getmac.egg-info/PKG-INFO 2021-12-10 21:57:19.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: getmac -Version: 0.8.2 +Version: 0.8.3 Summary: Get MAC addresses of remote hosts and local interfaces Home-page: https://github.com/GhostofGoes/getmac Author: Christopher Goes @@ -8,6 +8,7 @@ License: MIT Project-URL: Discord server, https://discord.gg/python Project-URL: Issue tracker, https://github.com/GhostofGoes/getmac/issues +Project-URL: Changelog, https://github.com/GhostofGoes/getmac/blob/master/CHANGELOG.md Description: [](https://pypi.org/project/getmac/) [](https://coveralls.io/github/GhostofGoes/getmac?branch=master) @@ -230,11 +231,13 @@ * Docker ## Docker + Add `-v /proc/1/net/arp:/host/arp -e ARP_PATH=/host/arp` to access arp table of host inside container in bridge network mode. ```bash docker build -f packaging/Dockerfile -t getmac . docker run -it getmac:latest --help docker run -it getmac:latest --version docker run -it getmac:latest -n localhost + docker run --rm -it -v /proc/1/net/arp:/host/arp -e ARP_PATH=/host/arp getmac:latest -n 192.168.0.1 ``` ## Caveats @@ -283,12 +286,15 @@ ### Contributors * Christopher Goes (@ghostofgoes) - Author and maintainer * Calvin Tran (@cyberhobbes) - Windows interface detection improvements + * Daniel Flanagan (@FlantasticDan) - Code cleanup + * @emadmahdi - Android fixes * Izra Faturrahman (@Frizz925) - Unit tests using the platform samples * Jose Gonzalez (@Komish) - Docker container and Docker testing * @fortunate-man - Awesome usage videos * @martmists - legacy Python compatibility improvements * @hargoniX - scripts and specfiles for RPM packaging * Ville Skytt?? (@scop) - arping lookup support + * Tomasz Duda (@tomaszduda23) - support for docker in network bridge mode ## Sources Many of the methods used to acquire an address and the core logic framework @@ -307,14 +313,30 @@ # Changelog - **NOTE**: if any changes significantly impact your project or use case, - please open an issue on [GitHub](https://github.com/GhostofGoes/getmac/issues) - or send me an email (see git commit author info for address). + **NOTE**: if any changes significantly impact your project or use case, please open an issue on [GitHub](https://github.com/GhostofGoes/getmac/issues) or email me (see git commit author info for address). + ## NEXT (XX/XX/XXXX) * TBD + ## 0.8.3 (12/10/2021) + + **Announcement**: Compatibility with Python versions older than 3.6 (2.7, 3.4, and 3.5) is deprecated and will be removed in getmac 1.0.0. If you are stuck on an unsupported Python, considor loosely pinning the version of this package in your dependency list, e.g. `getmac<1`. + + ### Changed + * Added support for Thomas Habets' version of `arping` in addition to the existing iputils one (contributed by Ville Skytt?? (@scop) in [#52](https://github.com/GhostofGoes/getmac/pull/52) and [#54](https://github.com/GhostofGoes/getmac/pull/54)) + * Added support for docker in network bridge mode (contributed by Tomasz Duda (@tomaszduda23) in [#57](https://github.com/GhostofGoes/getmac/pull/57)) + * Add CHANGELOG URL to PyPI metadata (contributed by Ville Skytt?? (@scop) in [#58](https://github.com/GhostofGoes/getmac/pull/58)) + * Fixed code quality test suite errors (includes changes by Daniel Flanagan (@FlantasticDan) in [#67](https://github.com/GhostofGoes/getmac/pull/67)) + * Improved Android support (contributed by @emadmahdi in [#71](https://github.com/GhostofGoes/getmac/pull/71)) + * Minor code quality fixes (2 years of neglecting master branch) + * Add [Code of Conduct](https://github.com/GhostofGoes/getmac/blob/master/CODE_OF_CONDUCT.md) for project contributors + * Add [SECURITY.md](https://github.com/GhostofGoes/getmac/blob/master/SECURITY.md) for reporting security issues (e.g. vulnerabilities) + * Deprecate Python 3.4 and 3.5 + * Issue deprecation message as a warning in addition to a log message + + ## 0.8.2 (12/07/2019) **Announcement**: Python 2 compatibility will be dropped in getmac 1.0.0, which will be finished sometime in 2020. If you are stuck on Python 2, consider loosely pinning the version in your dependencies list, e.g. `getmac<1`. I will continue to fix reported bugs and accept patches for the last release before 1.0.0, however active development will cease and new features will not be backported. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/getmac.egg-info/SOURCES.txt new/getmac-0.8.3/getmac.egg-info/SOURCES.txt --- old/getmac-0.8.2/getmac.egg-info/SOURCES.txt 2019-12-08 02:49:43.000000000 +0100 +++ new/getmac-0.8.3/getmac.egg-info/SOURCES.txt 2021-12-10 21:57:19.000000000 +0100 @@ -37,6 +37,8 @@ tests/samples/openbsd_6/route_nq_show_inet_gateway_priority_1.out tests/samples/ubuntu_18.04/arp_-a.out tests/samples/ubuntu_18.04/arp_-an.out +tests/samples/ubuntu_18.04/arping-habets.out +tests/samples/ubuntu_18.04/arping-iputils.out tests/samples/ubuntu_18.04/cat_proc-net-arp.out tests/samples/ubuntu_18.04/ifconfig.out tests/samples/ubuntu_18.04/ifconfig_ens33.out @@ -48,7 +50,6 @@ tests/samples/ubuntu_18.04/lsb_release_-a.out tests/samples/ubuntu_18.04/netstat_iae.out tests/samples/ubuntu_18.04/route_-n.out -tests/samples/ubuntu_18.10/arping.out tests/samples/ubuntu_18.10/proc_net_arp.out tests/samples/ubuntu_18.10/proc_net_route.out tests/samples/windows_10/getmac.out diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/setup.py new/getmac-0.8.3/setup.py --- old/getmac-0.8.2/setup.py 2019-09-07 00:50:31.000000000 +0200 +++ new/getmac-0.8.3/setup.py 2021-12-10 20:00:29.000000000 +0100 @@ -29,6 +29,7 @@ project_urls={ "Discord server": "https://discord.gg/python", "Issue tracker": "https://github.com/GhostofGoes/getmac/issues", + "Changelog": "https://github.com/GhostofGoes/getmac/blob/master/CHANGELOG.md", }, license="MIT", data_files=[ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/tests/conftest.py new/getmac-0.8.3/tests/conftest.py --- old/getmac-0.8.2/tests/conftest.py 2019-09-07 00:50:31.000000000 +0200 +++ new/getmac-0.8.3/tests/conftest.py 2021-12-10 20:19:49.000000000 +0100 @@ -5,7 +5,7 @@ import pytest [email protected] [email protected]() def get_sample(): def _get_sample(sample_path): sdir = path.realpath(path.join(path.dirname(__file__), "samples")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/tests/samples/freebsd11/netstat_r.out new/getmac-0.8.3/tests/samples/freebsd11/netstat_r.out --- old/getmac-0.8.2/tests/samples/freebsd11/netstat_r.out 2019-08-17 04:07:40.000000000 +0200 +++ new/getmac-0.8.3/tests/samples/freebsd11/netstat_r.out 2021-12-10 20:40:32.000000000 +0100 @@ -1,18 +1,18 @@ -Routing tables - -Internet: -Destination Gateway Flags Netif Expire -default 10.0.2.2 UGS em0 -10.0.2.0/24 link#1 U em0 -10.0.2.15 link#1 UHS lo0 -getmac-freebsd link#2 UH lo0 - -Internet6: -Destination Gateway Flags Netif Expire -::/96 localhost UGRS lo0 -localhost link#2 UH lo0 -::ffff:0.0.0.0/96 localhost UGRS lo0 -fe80::/10 localhost UGRS lo0 -fe80::%lo0/64 link#2 U lo0 -fe80::1%lo0 link#2 UHS lo0 +Routing tables + +Internet: +Destination Gateway Flags Netif Expire +default 10.0.2.2 UGS em0 +10.0.2.0/24 link#1 U em0 +10.0.2.15 link#1 UHS lo0 +getmac-freebsd link#2 UH lo0 + +Internet6: +Destination Gateway Flags Netif Expire +::/96 localhost UGRS lo0 +localhost link#2 UH lo0 +::ffff:0.0.0.0/96 localhost UGRS lo0 +fe80::/10 localhost UGRS lo0 +fe80::%lo0/64 link#2 U lo0 +fe80::1%lo0 link#2 UHS lo0 ff02::/16 localhost UGRS lo0 \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/tests/samples/ubuntu_18.04/arping-habets.out new/getmac-0.8.3/tests/samples/ubuntu_18.04/arping-habets.out --- old/getmac-0.8.2/tests/samples/ubuntu_18.04/arping-habets.out 1970-01-01 01:00:00.000000000 +0100 +++ new/getmac-0.8.3/tests/samples/ubuntu_18.04/arping-habets.out 2020-05-29 07:28:17.000000000 +0200 @@ -0,0 +1 @@ +00:50:56:e8:32:3c diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/tests/samples/ubuntu_18.04/arping-iputils.out new/getmac-0.8.3/tests/samples/ubuntu_18.04/arping-iputils.out --- old/getmac-0.8.2/tests/samples/ubuntu_18.04/arping-iputils.out 1970-01-01 01:00:00.000000000 +0100 +++ new/getmac-0.8.3/tests/samples/ubuntu_18.04/arping-iputils.out 2020-05-29 07:28:17.000000000 +0200 @@ -0,0 +1,4 @@ +ARPING 192.168.16.254 from 192.168.16.42 ens33 +Unicast reply from 192.168.16.254 [00:50:56:E8:32:3C] 7.521ms +Sent 1 probes (1 broadcast(s)) +Received 1 response(s) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/tests/samples/ubuntu_18.10/arping.out new/getmac-0.8.3/tests/samples/ubuntu_18.10/arping.out --- old/getmac-0.8.2/tests/samples/ubuntu_18.10/arping.out 2019-12-08 01:17:49.000000000 +0100 +++ new/getmac-0.8.3/tests/samples/ubuntu_18.10/arping.out 1970-01-01 01:00:00.000000000 +0100 @@ -1,4 +0,0 @@ -ARPING 192.168.16.254 from 192.168.16.42 ens33 -Unicast reply from 192.168.16.254 [00:50:56:E8:32:3C] 7.521ms -Sent 1 probes (1 broadcast(s)) -Received 1 response(s) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/tests/style-requirements.txt new/getmac-0.8.3/tests/style-requirements.txt --- old/getmac-0.8.2/tests/style-requirements.txt 2019-09-25 03:42:12.000000000 +0200 +++ new/getmac-0.8.3/tests/style-requirements.txt 2021-12-10 21:07:57.000000000 +0100 @@ -11,7 +11,6 @@ flake8-debugger pep8-naming flake8-string-format -flake8-2020 flake8-broken-line flake8-mutable flake8-black;python_version>='3.6' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/getmac-0.8.2/tests/test_samples.py new/getmac-0.8.3/tests/test_samples.py --- old/getmac-0.8.2/tests/test_samples.py 2019-12-08 01:17:49.000000000 +0100 +++ new/getmac-0.8.3/tests/test_samples.py 2021-12-10 20:38:20.000000000 +0100 @@ -53,10 +53,20 @@ assert benchmark(getmac._hunt_linux_default_iface) == "ens33" -def test_arping(benchmark, mocker, get_sample): - content = get_sample("ubuntu_18.10/arping.out") +def test_arping_habets(benchmark, mocker, get_sample): + content = get_sample("ubuntu_18.04/arping-habets.out") mocker.patch("getmac.getmac._popen", return_value=content) - assert benchmark(getmac._arping, host="192.168.16.254") == "00:50:56:E8:32:3C" + assert ( + benchmark(getmac._arping_habets, host="192.168.16.254") == "00:50:56:e8:32:3c" + ) + + +def test_arping_iputils(benchmark, mocker, get_sample): + content = get_sample("ubuntu_18.04/arping-iputils.out") + mocker.patch("getmac.getmac._popen", return_value=content) + assert ( + benchmark(getmac._arping_iputils, host="192.168.16.254") == "00:50:56:E8:32:3C" + ) def test_ubuntu_1804_interface(benchmark, mocker, get_sample):
