commit:     680afc54c6185bec1af67dbacaab9df9e247756a
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Fri May  1 00:50:56 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri May  1 01:07:21 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=680afc54

app-admin/salt-3000.2-r4: revbump, fix warnings with py38

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 app-admin/salt/Manifest                            |   1 +
 .../salt/files/salt-3000.2-py38-logwarn.patch      | 116 ++++++
 app-admin/salt/files/salt-3000.2-py38-misc.patch   | 460 ---------------------
 .../salt/files/salt-3000.2-tornado-py38.patch      |  12 -
 ...salt-3000.2-r3.ebuild => salt-3000.2-r4.ebuild} |  15 +-
 5 files changed, 128 insertions(+), 476 deletions(-)

diff --git a/app-admin/salt/Manifest b/app-admin/salt/Manifest
index 64303c5476b..fed8fc97b0c 100644
--- a/app-admin/salt/Manifest
+++ b/app-admin/salt/Manifest
@@ -1,2 +1,3 @@
 DIST salt-2019.2.4.tar.gz 14572556 BLAKE2B 
a1057baa5ab6c0a07f34ce658a1d5bc644f968600663d28d084eb712b55faaee93b8410d81c4b5324944e6e1f2067ffb102200088832e1b0076fed78c8542ae6
 SHA512 
9e621cbd78ead1060a2b0c07e7ef02e8c4590360a95c51ac29fa8c1add34f617e4407dd28b67cae3b0fd68b333782185edcf1159edd2db08e8b4e79b6b07a63f
+DIST salt-3000.2-py38-misc.patch.gz 6250 BLAKE2B 
68fff80a042e6bf208ea2d9692da7a7b1e29572f1ec3c850c14743bbf2821d231f933ec4e6d6eaad12acee0b7666888a37a72872b2b082c92d8db9de988fbbec
 SHA512 
6d4a66323a423e630f7cc73b566ed96c452c8fc3d72c25a2dd86033c4774c1c8e8b8701e1d4ee92994d4148c398d704f419023e26d8b40c8fdd63f9d79d9d52f
 DIST salt-3000.2.tar.gz 15231513 BLAKE2B 
2090d0f52f953a42f1685ad190750e9c76ad6e862a3272444fef063a7605f69a6c542f04165a41fb9cdaa126a878cc133d4857faa70edc5eac4bf49bdde937ab
 SHA512 
88e8876ed8cd18e942c2194686cda68f40fa49e69e317ca488bf58e095bcf6cdf8771d93eba7960038941cc5863e13a4eea4dad5256c12da7cd8288a2c61f59d

diff --git a/app-admin/salt/files/salt-3000.2-py38-logwarn.patch 
b/app-admin/salt/files/salt-3000.2-py38-logwarn.patch
new file mode 100644
index 00000000000..e77d2376ce1
--- /dev/null
+++ b/app-admin/salt/files/salt-3000.2-py38-logwarn.patch
@@ -0,0 +1,116 @@
+diff --git a/salt/cloud/clouds/ec2.py b/salt/cloud/clouds/ec2.py
+index 68f752cb2d..fa2b96499d 100644
+--- a/salt/cloud/clouds/ec2.py
++++ b/salt/cloud/clouds/ec2.py
+@@ -4901,7 +4901,7 @@ def get_password_data(
+ 
+     if not HAS_M2 and not HAS_PYCRYPTO:
+         if 'key' in kwargs or 'key_file' in kwargs:
+-            log.warn("No crypto library is installed, can not decrypt 
password")
++            log.warning("No crypto library is installed, can not decrypt 
password")
+         return ret
+ 
+     if 'key' not in kwargs:
+diff --git a/salt/modules/gpg.py b/salt/modules/gpg.py
+index 9dd1007c1b..47c82a7141 100644
+--- a/salt/modules/gpg.py
++++ b/salt/modules/gpg.py
+@@ -1083,7 +1083,7 @@ def verify(text=None,
+ 
+     if trustmodel and trustmodel not in trustmodels:
+         msg = 'Invalid trustmodel defined: {}. Use one of: 
{}'.format(trustmodel, ', '.join(trustmodels))
+-        log.warn(msg)
++        log.warning(msg)
+         return {'res': False, 'message': msg}
+ 
+     extra_args = []
+diff --git a/salt/modules/network.py b/salt/modules/network.py
+index 38e2bc326e..f3a8a714cd 100644
+--- a/salt/modules/network.py
++++ b/salt/modules/network.py
+@@ -958,7 +958,7 @@ def traceroute(host):
+ 
+         ret.append(result)
+         if not result:
+-            log.warn('Cannot parse traceroute output line: %s', line)
++            log.warning('Cannot parse traceroute output line: %s', line)
+     return ret
+ 
+ 
+diff --git a/salt/modules/saltutil.py b/salt/modules/saltutil.py
+index 138a0fcf51..5f026b0f36 100644
+--- a/salt/modules/saltutil.py
++++ b/salt/modules/saltutil.py
+@@ -1096,7 +1096,7 @@ def refresh_pillar(wait=False, timeout=30):
+             tag='/salt/minion/minion_pillar_refresh_complete',
+             wait=timeout)
+         if not event_ret or event_ret['complete'] is False:
+-            log.warn("Pillar refresh did not complete within timeout %s", 
timeout)
++            log.warning("Pillar refresh did not complete within timeout %s", 
timeout)
+     return ret
+ 
+ 
+diff --git a/salt/transport/tcp.py b/salt/transport/tcp.py
+index 12ef24e86f..e83d1c927f 100644
+--- a/salt/transport/tcp.py
++++ b/salt/transport/tcp.py
+@@ -1073,7 +1073,7 @@ class SaltMessageClient(object):
+                 self._connecting_future.set_result(True)
+                 break
+             except Exception as exc:  # pylint: disable=broad-except
+-                log.warn('TCP Message Client encountered an exception %r', 
exc)
++                log.warning('TCP Message Client encountered an exception %r', 
exc)
+                 yield salt.ext.tornado.gen.sleep(1)  # TODO: backoff
+                 #self._connecting_future.set_exception(e)
+ 
+diff --git a/salt/utils/process.py b/salt/utils/process.py
+index 9626ac0cb2..18697ccf7c 100644
+--- a/salt/utils/process.py
++++ b/salt/utils/process.py
+@@ -124,7 +124,7 @@ def dup2(file1, file2):
+         try:
+             fno1 = file1.fileno()
+         except io.UnsupportedOperation:
+-            log.warn('Unsupported operation on file: %r', file1)
++            log.warning('Unsupported operation on file: %r', file1)
+             return
+     if isinstance(file2, int):
+         fno2 = file2
+@@ -132,7 +132,7 @@ def dup2(file1, file2):
+         try:
+             fno2 = file2.fileno()
+         except io.UnsupportedOperation:
+-            log.warn('Unsupported operation on file: %r', file2)
++            log.warning('Unsupported operation on file: %r', file2)
+             return
+     os.dup2(fno1, fno2)
+ 
+@@ -829,13 +829,13 @@ class SignalHandlingProcess(Process):
+                             if child.is_running():
+                                 child.terminate()
+                         except psutil.NoSuchProcess:
+-                            log.warn(
++                            log.warning(
+                                 'Unable to kill child of process %d, it does '
+                                 'not exist. My pid is %d',
+                                 self.pid, os.getpid()
+                             )
+             except psutil.NoSuchProcess:
+-                log.warn(
++                log.warning(
+                     'Unable to kill children of process %d, it does not 
exist.'
+                     'My pid is %d',
+                     self.pid, os.getpid()
+diff --git a/tests/integration/modules/test_state.py 
b/tests/integration/modules/test_state.py
+index 81b3b677b9..2f3bcaa613 100644
+--- a/tests/integration/modules/test_state.py
++++ b/tests/integration/modules/test_state.py
+@@ -2282,7 +2282,7 @@ class StateModuleTest(ModuleCase, 
SaltReturnAssertsMixin):
+                 try:
+                     os.remove(path)
+                 except OSError:
+-                    log.warn("Path not found: %s", path)
++                    log.warning("Path not found: %s", path)
+ 
+         with salt.utils.files.fopen(module_path, 'w') as fp:
+             fp.write('raise ImportError("No module named pip")')

diff --git a/app-admin/salt/files/salt-3000.2-py38-misc.patch 
b/app-admin/salt/files/salt-3000.2-py38-misc.patch
deleted file mode 100644
index 93cc045a531..00000000000
--- a/app-admin/salt/files/salt-3000.2-py38-misc.patch
+++ /dev/null
@@ -1,460 +0,0 @@
-diff --git a/salt/config/__init__.py b/salt/config/__init__.py
-index 70b34ec949..4304d99bf7 100644
---- a/salt/config/__init__.py
-+++ b/salt/config/__init__.py
-@@ -8,6 +8,7 @@ from __future__ import absolute_import, print_function, 
unicode_literals, genera
- import os
- import re
- import sys
-+import copy
- import glob
- import time
- import codecs
-@@ -3191,7 +3192,7 @@ def apply_cloud_providers_config(overrides, 
defaults=None):
-         # Merge provided extends
-         keep_looping = False
-         for alias, entries in six.iteritems(providers.copy()):
--            for driver, details in six.iteritems(entries):
-+            for driver, details in copy.copy(entries).items():
- 
-                 if 'extends' not in details:
-                     # Extends resolved or non existing, continue!
-diff --git a/salt/grains/core.py b/salt/grains/core.py
-index 9b244def9c..ede3a94de9 100644
---- a/salt/grains/core.py
-+++ b/salt/grains/core.py
-@@ -1939,7 +1939,7 @@ def os_data():
-         )
-         (osname, osrelease, oscodename) = \
-             [x.strip('"').strip("'") for x in
--             linux_distribution(supported_dists=_supported_dists)]
-+             linux_distribution()]
-         # Try to assign these three names based on the lsb info, they tend to
-         # be more accurate than what python gets from /etc/DISTRO-release.
-         # It's worth noting that Ubuntu has patched their Python distribution
-diff --git a/salt/modules/boto_route53.py b/salt/modules/boto_route53.py
-index a663ec7207..8d3d8c2105 100644
---- a/salt/modules/boto_route53.py
-+++ b/salt/modules/boto_route53.py
-@@ -158,7 +158,7 @@ def describe_hosted_zones(zone_id=None, domain_name=None, 
region=None,
-             else:
-                 marker = None
-                 ret = None
--                while marker is not '':
-+                while marker != '':
-                     r = conn.get_all_hosted_zones(start_marker=marker,
-                                                   zone_list=ret)
-                     ret = r['ListHostedZonesResponse']['HostedZones']
-diff --git a/salt/modules/file.py b/salt/modules/file.py
-index b5b70e2d4c..41a9229eb4 100644
---- a/salt/modules/file.py
-+++ b/salt/modules/file.py
-@@ -2744,7 +2744,7 @@ def blockreplace(path,
- 
-     if block_found:
-         diff = __utils__['stringutils.get_diff'](orig_file, new_file)
--        has_changes = diff is not ''
-+        has_changes = diff != ''
-         if has_changes and not dry_run:
-             # changes detected
-             # backup file attrs
-diff --git a/salt/modules/iptables.py b/salt/modules/iptables.py
-index e232c6931f..9708f45256 100644
---- a/salt/modules/iptables.py
-+++ b/salt/modules/iptables.py
-@@ -905,7 +905,7 @@ def insert(table='filter', chain=None, position=None, 
rule=None, family='ipv4'):
-         rules = get_rules(family=family)
-         size = len(rules[table][chain]['rules'])
-         position = (size + position) + 1
--        if position is 0:
-+        if position == 0:
-             position = 1
- 
-     wait = '--wait' if _has_option('--wait', family) else ''
-@@ -1040,7 +1040,7 @@ def _parse_conf(conf_file=None, in_mem=False, 
family='ipv4'):
-             ret_args = {}
-             chain = parsed_args['append']
-             for arg in parsed_args:
--                if parsed_args[arg] and arg is not 'append':
-+                if parsed_args[arg] and arg != 'append':
-                     ret_args[arg] = parsed_args[arg]
-             if parsed_args['comment'] is not None:
-                 comment = parsed_args['comment'][0].strip('"')
-diff --git a/salt/modules/lxd.py b/salt/modules/lxd.py
-index d6c2d8d4b9..d617cbb3df 100644
---- a/salt/modules/lxd.py
-+++ b/salt/modules/lxd.py
-@@ -1824,11 +1824,11 @@ def container_file_get(name, src, dst, overwrite=False,
- 
-     if mode:
-         os.chmod(dst, mode)
--    if uid or uid is '0':
-+    if uid or uid == '0':
-         uid = int(uid)
-     else:
-         uid = -1
--    if gid or gid is '0':
-+    if gid or gid == '0':
-         gid = int(gid)
-     else:
-         gid = -1
-diff --git a/salt/modules/mongodb.py b/salt/modules/mongodb.py
-index 8cdb819102..ed3228150e 100644
---- a/salt/modules/mongodb.py
-+++ b/salt/modules/mongodb.py
-@@ -484,7 +484,7 @@ def update_one(objects, collection, user=None, 
password=None, host=None, port=No
-     objects = six.text_type(objects)
-     objs = re.split(r'}\s+{', objects)
- 
--    if len(objs) is not 2:
-+    if len(objs) != 2:
-         return "Your request does not contain a valid " + \
-         "'{_\"id\": \"my_id\"} {\"my_doc\": \"my_val\"}'"
- 
-diff --git a/salt/modules/virt.py b/salt/modules/virt.py
-index a2412bb745..91e105fe04 100644
---- a/salt/modules/virt.py
-+++ b/salt/modules/virt.py
-@@ -4732,7 +4732,7 @@ def _parse_pools_caps(doc):
-             if options:
-                 if 'options' not in pool_caps:
-                     pool_caps['options'] = {}
--                kind = option_kind if option_kind is not 'vol' else 'volume'
-+                kind = option_kind if option_kind != 'vol' else 'volume'
-                 pool_caps['options'][kind] = options
-         return pool_caps
- 
-diff --git a/salt/modules/win_ip.py b/salt/modules/win_ip.py
-index e69f44211e..99b9d392f6 100644
---- a/salt/modules/win_ip.py
-+++ b/salt/modules/win_ip.py
-@@ -342,7 +342,7 @@ def set_static_dns(iface, *addrs):
-         salt -G 'os_family:Windows' ip.set_static_dns 'Local Area Connection' 
'192.168.1.1'
-         salt -G 'os_family:Windows' ip.set_static_dns 'Local Area Connection' 
'192.168.1.252' '192.168.1.253'
-     '''
--    if addrs is () or str(addrs[0]).lower() == 'none':
-+    if addrs == () or str(addrs[0]).lower() == 'none':
-         return {'Interface': iface, 'DNS Server': 'No Changes'}
-     # Clear the list of DNS servers if [] is passed
-     if str(addrs[0]).lower() == '[]':
-diff --git a/salt/modules/win_lgpo.py b/salt/modules/win_lgpo.py
-index efa154889f..50f0c9940f 100644
---- a/salt/modules/win_lgpo.py
-+++ b/salt/modules/win_lgpo.py
-@@ -4692,7 +4692,7 @@ class _policy_info(object):
-             return 'true'
-         elif val.upper() == 'Run Windows PowerShell scripts last'.upper():
-             return 'false'
--        elif val is 'Not Configured':
-+        elif val == 'Not Configured':
-             return None
-         else:
-             return 'Invalid Value'
-diff --git a/salt/modules/win_system.py b/salt/modules/win_system.py
-index 74fa61bc51..42f0c2ca6e 100644
---- a/salt/modules/win_system.py
-+++ b/salt/modules/win_system.py
-@@ -1149,7 +1149,7 @@ def set_system_date_time(years=None,
-         system_time.wSecond = int(seconds)
-         system_time_ptr = ctypes.pointer(system_time)
-         succeeded = ctypes.windll.kernel32.SetLocalTime(system_time_ptr)
--        if succeeded is not 0:
-+        if succeeded != 0:
-             return True
-         else:
-             log.error('Failed to set local time')
-diff --git a/salt/modules/x509.py b/salt/modules/x509.py
-index 1cdd912bfb..4069076c32 100644
---- a/salt/modules/x509.py
-+++ b/salt/modules/x509.py
-@@ -131,7 +131,7 @@ def _new_extension(name, value, critical=0, issuer=None, 
_pyfree=1):
-     to create the authoritykeyidentifier extension.
-     '''
-     if name == 'subjectKeyIdentifier' and \
--            value.strip('0123456789abcdefABCDEF:') is not '':
-+            value.strip('0123456789abcdefABCDEF:') != '':
-         raise salt.exceptions.SaltInvocationError(
-             'value must be precomputed hash')
- 
-diff --git a/salt/output/highstate.py b/salt/output/highstate.py
-index 1f2f9452fa..87be7656fe 100644
---- a/salt/output/highstate.py
-+++ b/salt/output/highstate.py
-@@ -209,7 +209,7 @@ def _format_host(host, data, indent_level=1):
-         # Verify that the needed data is present
-         data_tmp = {}
-         for tname, info in six.iteritems(data):
--            if isinstance(info, dict) and tname is not 'changes' and info and 
'__run_num__' not in info:
-+            if isinstance(info, dict) and tname != 'changes' and info and 
'__run_num__' not in info:
-                 err = ('The State execution failed to record the order '
-                        'in which all states were executed. The state '
-                        'return missing data is:')
-diff --git a/salt/renderers/stateconf.py b/salt/renderers/stateconf.py
-index cfce9e6926..1b116ddfb1 100644
---- a/salt/renderers/stateconf.py
-+++ b/salt/renderers/stateconf.py
-@@ -224,7 +224,7 @@ def render(input, saltenv='base', sls='', argline='', 
**kws):
-             tmplctx = STATE_CONF.copy()
-             if tmplctx:
-                 prefix = sls + '::'
--                for k in six.iterkeys(tmplctx):  # iterate over a copy of keys
-+                for k in copy.copy(tmplctx).keys():  # iterate over a copy of 
keys
-                     if k.startswith(prefix):
-                         tmplctx[k[len(prefix):]] = tmplctx[k]
-                         del tmplctx[k]
-diff --git a/salt/returners/slack_webhook_return.py 
b/salt/returners/slack_webhook_return.py
-index aad1cdf656..0db705df01 100644
---- a/salt/returners/slack_webhook_return.py
-+++ b/salt/returners/slack_webhook_return.py
-@@ -322,7 +322,7 @@ def returner(ret):
-     show_tasks = _options.get('show_tasks')
-     author_icon = _options.get('author_icon')
- 
--    if not webhook or webhook is '':
-+    if not webhook or webhook == '':
-         log.error('%s.webhook not defined in salt config', __virtualname__)
-         return
- 
-diff --git a/salt/states/debconfmod.py b/salt/states/debconfmod.py
-index a0ef20b185..a7478c7ac0 100644
---- a/salt/states/debconfmod.py
-+++ b/salt/states/debconfmod.py
-@@ -210,7 +210,7 @@ def set(name, data, **kwargs):
-             args['value'] = 'true' if args['value'] else 'false'
- 
-         if current is not None and [key, args['type'], 
six.text_type(args['value'])] in current:
--            if ret['comment'] is '':
-+            if ret['comment'] == '':
-                 ret['comment'] = 'Unchanged answers: '
-             ret['comment'] += ('{0} ').format(key)
-         else:
-diff --git a/salt/states/git.py b/salt/states/git.py
-index ce6455ee71..f2bf4da629 100644
---- a/salt/states/git.py
-+++ b/salt/states/git.py
-@@ -2464,7 +2464,7 @@ def detached(name,
-             password,
-             output_encoding=output_encoding)[0]
- 
--        if remote_rev_type is 'hash':
-+        if remote_rev_type == 'hash':
-             try:
-                 __salt__['git.describe'](target,
-                                          rev,
-@@ -2643,7 +2643,7 @@ def detached(name,
- 
-     # get refs and checkout
-     checkout_commit_id = ''
--    if remote_rev_type is 'hash':
-+    if remote_rev_type == 'hash':
-         if __salt__['git.describe'](
-                 target,
-                 rev,
-diff --git a/salt/states/mysql_grants.py b/salt/states/mysql_grants.py
-index d6023bbf86..638e988e13 100644
---- a/salt/states/mysql_grants.py
-+++ b/salt/states/mysql_grants.py
-@@ -167,7 +167,7 @@ def present(name,
-             db_part = database.rpartition('.')
-             my_db = db_part[0]
-             my_table = db_part[2]
--            my_db = __salt__['mysql.quote_identifier'](my_db, (my_table is 
'*'))
-+            my_db = __salt__['mysql.quote_identifier'](my_db, (my_table == 
'*'))
-             my_table = __salt__['mysql.quote_identifier'](my_table)
-             # Removing per table grants in case of database level grant !!!
-             if token_grants['database'] == my_db:
-diff --git a/salt/utils/args.py b/salt/utils/args.py
-index 8cc0f35196..8caaae4d1f 100644
---- a/salt/utils/args.py
-+++ b/salt/utils/args.py
-@@ -253,6 +253,9 @@ def get_function_argspec(func, is_class_method=None):
-     if not callable(func):
-         raise TypeError('{0} is not a callable'.format(func))
- 
-+    if hasattr(func, "__wrapped__"):
-+        func = func.__wrapped__
-+
-     if six.PY2:
-         if is_class_method is True:
-             aspec = inspect.getargspec(func)
-diff --git a/salt/utils/decorators/path.py b/salt/utils/decorators/path.py
-index 4adacf0e4e..37c692355f 100644
---- a/salt/utils/decorators/path.py
-+++ b/salt/utils/decorators/path.py
-@@ -4,10 +4,11 @@ Decorators for salt.utils.path
- '''
- from __future__ import absolute_import, print_function, unicode_literals
- 
-+import functools
-+
- # Import Salt libs
- import salt.utils.path
- from salt.exceptions import CommandNotFoundError
--from salt.utils.decorators.signature import identical_signature_wrapper
- 
- 
- def which(exe):
-@@ -15,13 +16,14 @@ def which(exe):
-     Decorator wrapper for salt.utils.path.which
-     '''
-     def wrapper(function):
-+        @functools.wraps(function)
-         def wrapped(*args, **kwargs):
-             if salt.utils.path.which(exe) is None:
-                 raise CommandNotFoundError(
-                     'The \'{0}\' binary was not found in $PATH.'.format(exe)
-                 )
-             return function(*args, **kwargs)
--        return identical_signature_wrapper(function, wrapped)
-+        return wrapped
-     return wrapper
- 
- 
-@@ -30,6 +32,7 @@ def which_bin(exes):
-     Decorator wrapper for salt.utils.path.which_bin
-     '''
-     def wrapper(function):
-+        @functools.wraps(function)
-         def wrapped(*args, **kwargs):
-             if salt.utils.path.which_bin(exes) is None:
-                 raise CommandNotFoundError(
-@@ -39,5 +42,5 @@ def which_bin(exes):
-                     )
-                 )
-             return function(*args, **kwargs)
--        return identical_signature_wrapper(function, wrapped)
-+        return wrapped
-     return wrapper
-diff --git a/salt/utils/schedule.py b/salt/utils/schedule.py
-index 474af442a1..69204a53d4 100644
---- a/salt/utils/schedule.py
-+++ b/salt/utils/schedule.py
-@@ -721,7 +721,7 @@ class Schedule(object):
-             if argspec.keywords:
-                 # this function accepts **kwargs, pack in the publish data
-                 for key, val in six.iteritems(ret):
--                    if key is not 'kwargs':
-+                    if key != 'kwargs':
-                         kwargs['__pub_{0}'.format(key)] = copy.deepcopy(val)
- 
-             # Only include these when running runner modules
-diff --git a/salt/utils/win_pdh.py b/salt/utils/win_pdh.py
-index 9921ee72da..7e9e368caf 100644
---- a/salt/utils/win_pdh.py
-+++ b/salt/utils/win_pdh.py
-@@ -164,7 +164,7 @@ class Counter(object):
-         '''
-         path = win32pdh.MakeCounterPath(
-             (None, obj, instance, None, instance_index, counter), 0)
--        if win32pdh.ValidatePath(path) is 0:
-+        if win32pdh.ValidatePath(path) == 0:
-             return Counter(path, obj, instance, instance_index, counter)
-         raise CommandExecutionError('Invalid counter specified: 
{0}'.format(path))
- 
-diff --git a/tests/integration/cloud/helpers/virtualbox.py 
b/tests/integration/cloud/helpers/virtualbox.py
-index 668f15d82f..a6bc9dd2c3 100644
---- a/tests/integration/cloud/helpers/virtualbox.py
-+++ b/tests/integration/cloud/helpers/virtualbox.py
-@@ -74,7 +74,7 @@ class VirtualboxCloudTestCase(ShellCase):
-                 output.pop(0)
-             else:
-                 break
--        if len(output) is 0:
-+        if len(output) == 0:
-             return dict()
-         else:
-             return salt.utils.json.loads(''.join(output))
-diff --git a/tests/integration/modules/test_mysql.py 
b/tests/integration/modules/test_mysql.py
-index 7edb77cb94..197c4e65ae 100644
---- a/tests/integration/modules/test_mysql.py
-+++ b/tests/integration/modules/test_mysql.py
-@@ -519,7 +519,7 @@ class MysqlModuleDbTest(ModuleCase, 
SaltReturnAssertsMixin):
-         )
-         expected = []
-         for tablename, engine in sorted(six.iteritems(tablenames)):
--            if engine is 'MEMORY':
-+            if engine == 'MEMORY':
-                 expected.append([{
-                     'Table': dbname+'.'+tablename,
-                     'Msg_text': ("The storage engine for the table doesn't"
-@@ -544,7 +544,7 @@ class MysqlModuleDbTest(ModuleCase, 
SaltReturnAssertsMixin):
-         )
-         expected = []
-         for tablename, engine in sorted(six.iteritems(tablenames)):
--            if engine is 'MYISAM':
-+            if engine == 'MYISAM':
-                 expected.append([{
-                     'Table': dbname+'.'+tablename,
-                     'Msg_text': 'OK',
-@@ -570,14 +570,14 @@ class MysqlModuleDbTest(ModuleCase, 
SaltReturnAssertsMixin):
- 
-         expected = []
-         for tablename, engine in sorted(six.iteritems(tablenames)):
--            if engine is 'MYISAM':
-+            if engine == 'MYISAM':
-                 expected.append([{
-                     'Table': dbname+'.'+tablename,
-                     'Msg_text': 'OK',
-                     'Msg_type': 'status',
-                     'Op': 'optimize'
-                 }])
--            elif engine is 'InnoDB':
-+            elif engine == 'InnoDB':
-                 expected.append([{
-                     'Table': dbname+'.'+tablename,
-                     'Msg_text': ("Table does not support optimize, "
-@@ -591,7 +591,7 @@ class MysqlModuleDbTest(ModuleCase, 
SaltReturnAssertsMixin):
-                     'Msg_type': 'status',
-                     'Op': 'optimize'
-                 }])
--            elif engine is 'MEMORY':
-+            elif engine == 'MEMORY':
-                 expected.append([{
-                     'Table': dbname+'.'+tablename,
-                     'Msg_text': ("The storage engine for the table doesn't"
-diff --git a/tests/unit/modules/test_virt.py b/tests/unit/modules/test_virt.py
-index 32f4302e5f..c49bd0bccc 100644
---- a/tests/unit/modules/test_virt.py
-+++ b/tests/unit/modules/test_virt.py
-@@ -9,6 +9,7 @@ virt execution module unit tests
- from __future__ import absolute_import, print_function, unicode_literals
- import os
- import re
-+import sys
- import datetime
- import shutil
- 
-@@ -1393,19 +1394,20 @@ class VirtTestCase(TestCase, LoaderModuleMockMixin):
-         self.assertEqual('vnc', setxml.find('devices/graphics').get('type'))
- 
-         # Update with no diff case
--        self.assertEqual({
--                'definition': False,
--                'disk': {'attached': [], 'detached': []},
--                'interface': {'attached': [], 'detached': []}
--            }, virt.update('my vm', cpu=1, mem=1024,
--                           disk_profile='default', disks=[{'name': 'data', 
'size': 2048}],
--                           nic_profile='myprofile',
--                           interfaces=[{'name': 'eth0', 'type': 'network', 
'source': 'default',
--                                        'mac': '52:54:00:39:02:b1'},
--                                       {'name': 'eth1', 'type': 'network', 
'source': 'oldnet',
--                                        'mac': '52:54:00:39:02:b2'}],
--                           graphics={'type': 'spice',
--                                     'listen': {'type': 'address', 'address': 
'127.0.0.1'}}))
-+        if sys.hexversion < 0x03080000:
-+            self.assertEqual({
-+                    'definition': False,
-+                    'disk': {'attached': [], 'detached': []},
-+                    'interface': {'attached': [], 'detached': []}
-+                }, virt.update('my vm', cpu=1, mem=1024,
-+                            disk_profile='default', disks=[{'name': 'data', 
'size': 2048}],
-+                            nic_profile='myprofile',
-+                            interfaces=[{'name': 'eth0', 'type': 'network', 
'source': 'default',
-+                                            'mac': '52:54:00:39:02:b1'},
-+                                        {'name': 'eth1', 'type': 'network', 
'source': 'oldnet',
-+                                            'mac': '52:54:00:39:02:b2'}],
-+                            graphics={'type': 'spice',
-+                                        'listen': {'type': 'address', 
'address': '127.0.0.1'}}))
- 
-         # Failed XML description update case
-         self.mock_conn.defineXML.side_effect = 
self.mock_libvirt.libvirtError("Test error")

diff --git a/app-admin/salt/files/salt-3000.2-tornado-py38.patch 
b/app-admin/salt/files/salt-3000.2-tornado-py38.patch
deleted file mode 100644
index b324872c921..00000000000
--- a/app-admin/salt/files/salt-3000.2-tornado-py38.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur salt-3000.2.orig/salt/ext/tornado/httputil.py 
salt-3000.2/salt/ext/tornado/httputil.py
---- salt-3000.2.orig/salt/ext/tornado/httputil.py      2020-04-29 
11:29:20.000000000 -0700
-+++ salt-3000.2/salt/ext/tornado/httputil.py   2020-04-30 11:52:45.690890947 
-0700
-@@ -104,7 +104,7 @@
- _normalized_headers = _NormalizedHeaderCache(1000)
- 
- 
--class HTTPHeaders(collections.MutableMapping):
-+class HTTPHeaders(collections.abc.MutableMapping):
-     """A dictionary that maintains ``Http-Header-Case`` for all keys.
- 
-     Supports multiple values per key via a pair of new methods,

diff --git a/app-admin/salt/salt-3000.2-r3.ebuild 
b/app-admin/salt/salt-3000.2-r4.ebuild
similarity index 91%
rename from app-admin/salt/salt-3000.2-r3.ebuild
rename to app-admin/salt/salt-3000.2-r4.ebuild
index 5e7ab8e084a..2cb2a715e74 100644
--- a/app-admin/salt/salt-3000.2-r3.ebuild
+++ b/app-admin/salt/salt-3000.2-r4.ebuild
@@ -17,7 +17,8 @@ if [[ ${PV} == 9999* ]]; then
        SRC_URI=""
        KEYWORDS=""
 else
-       SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+       SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz
+               
https://dev.gentoo.org/~chutzpah/dist/salt/salt-3000.2-py38-misc.patch.gz";
        KEYWORDS="~amd64 ~x86"
 fi
 
@@ -107,11 +108,12 @@ PATCHES=(
        # https://github.com/saltstack/salt/pull/55410
        "${FILESDIR}/salt-3000.2-py38.patch"
 
-       "${FILESDIR}/salt-3000.2-py38-misc.patch"
-
        # https://github.com/saltstack/salt/pull/55900
        "${FILESDIR}/salt-3000.2-py38-abc.patch"
-       "${FILESDIR}/salt-3000.2-tornado-py38.patch"
+
+       # misc py38 fixups
+       "${WORKDIR}/salt-3000.2-py38-misc.patch"
+       "${FILESDIR}/salt-3000.2-py38-logwarn.patch"
 )
 
 python_prepare() {
@@ -126,6 +128,11 @@ python_prepare() {
        # make sure pkg_resources doesn't bomb because pycrypto isn't installed
        find . -name '*.txt' -print0 | xargs -0 sed -e '/pycrypto>/ d' -i || die
 
+       einfo "Fixing collections.abc warnings for ${EPYTHON}"
+       local abc
+       abc="$("${EPYTHON}" -c 'import collections.abc; print("|".join((c for c 
in dir(collections.abc) if not c.startswith("_"))))')" || die
+       find -name '*.py' -type f -print0 | xargs -0 sed -r -e 
"s:collections\\.(${abc}):collections.abc.\\1:g" -i || die
+
        # allow the use of the renamed msgpack
        sed -i '/^msgpack/d' requirements/base.txt || die
 }

Reply via email to