summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRepository mirror & CI <repomirrorci@gentoo.org>2020-04-30 06:14:06 +0000
committerRepository mirror & CI <repomirrorci@gentoo.org>2020-04-30 06:14:06 +0000
commita2526788e1ea5f55948f2758988e5471cde66692 (patch)
tree5631ca74eb1f54b5692727d1b9e080a35b34169b
parent2020-04-30 05:27:41 UTC (diff)
parentpython-utils-r1.eclass: Restore old CPython version reqs (diff)
downloadgentoo-a2526788e1ea5f55948f2758988e5471cde66692.tar.gz
gentoo-a2526788e1ea5f55948f2758988e5471cde66692.tar.bz2
gentoo-a2526788e1ea5f55948f2758988e5471cde66692.zip
Merge updates from master
-rw-r--r--app-admin/salt/files/salt-3000.2-py38-abc.patch79
-rw-r--r--app-admin/salt/files/salt-3000.2-py38-misc.patch460
-rw-r--r--app-admin/salt/files/salt-3000.2-py38.patch60
-rw-r--r--app-admin/salt/salt-3000.2-r2.ebuild (renamed from app-admin/salt/salt-3000.2-r1.ebuild)12
-rw-r--r--dev-libs/libxml2/libxml2-2.9.9-r2.ebuild2
-rw-r--r--dev-libs/libxml2/libxml2-2.9.9-r3.ebuild2
-rw-r--r--dev-ruby/rack-attack/Manifest2
-rw-r--r--dev-ruby/rack-attack/rack-attack-6.2.0.ebuild36
-rw-r--r--dev-ruby/rack-attack/rack-attack-6.2.1.ebuild36
-rw-r--r--dev-ruby/rake-compiler/Manifest2
-rw-r--r--dev-ruby/rake-compiler/rake-compiler-1.0.8.ebuild49
-rw-r--r--dev-ruby/rake-compiler/rake-compiler-1.0.9.ebuild51
-rw-r--r--dev-ruby/stomp/Manifest1
-rw-r--r--dev-ruby/stomp/stomp-1.4.8.ebuild27
-rw-r--r--dev-util/edi/Manifest2
-rw-r--r--dev-util/edi/edi-0.8.0.ebuild (renamed from dev-util/edi/edi-0.7.1.ebuild)10
-rw-r--r--eclass/python-utils-r1.eclass12
-rw-r--r--net-libs/nodejs/Manifest1
-rw-r--r--net-libs/nodejs/nodejs-13.14.0.ebuild209
-rw-r--r--sys-process/evisum/Manifest1
-rw-r--r--sys-process/evisum/evisum-0.4.0.ebuild17
21 files changed, 849 insertions, 222 deletions
diff --git a/app-admin/salt/files/salt-3000.2-py38-abc.patch b/app-admin/salt/files/salt-3000.2-py38-abc.patch
new file mode 100644
index 000000000000..e9f64b664178
--- /dev/null
+++ b/app-admin/salt/files/salt-3000.2-py38-abc.patch
@@ -0,0 +1,79 @@
+From 11c23a526ae926ca082ee7ad92246e085c51b8e6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Blaisot?= <sebastien@blaisot.org>
+Date: Fri, 17 Jan 2020 17:06:42 +0100
+Subject: [PATCH] Import abstract base classes from collection.abc in python
+ 3.3+
+
+---
+ salt/modules/file.py | 6 +++++-
+ salt/modules/win_file.py | 5 ++++-
+ salt/states/file.py | 6 +++++-
+ salt/utils/dictdiffer.py | 5 ++++-
+ 4 files changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/salt/modules/file.py b/salt/modules/file.py
+index 771b204d63fe..d1ec5e4c295d 100644
+--- a/salt/modules/file.py
++++ b/salt/modules/file.py
+@@ -29,7 +29,11 @@
+ import glob
+ import hashlib
+ import mmap
+-from collections import Iterable, Mapping, namedtuple
++try:
++ from collections.abc import Iterable, Mapping
++except ImportError:
++ from collections import Iterable, Mapping
++from collections import namedtuple
+ from functools import reduce # pylint: disable=redefined-builtin
+
+ # pylint: disable=import-error,no-name-in-module,redefined-builtin
+diff --git a/salt/modules/win_file.py b/salt/modules/win_file.py
+index 4fd3eebcdd81..5bc983786a98 100644
+--- a/salt/modules/win_file.py
++++ b/salt/modules/win_file.py
+@@ -17,7 +17,10 @@
+ import logging
+ # pylint: disable=W0611
+ import operator # do not remove
+-from collections import Iterable, Mapping # do not remove
++try:
++ from collections.abc import Iterable, Mapping # do not remove
++except ImportError:
++ from collections import Iterable, Mapping # do not remove
+ from functools import reduce # do not remove
+ import datetime # do not remove.
+ import tempfile # do not remove. Used in salt.modules.file.__clean_tmp
+diff --git a/salt/states/file.py b/salt/states/file.py
+index 23c3d3c53955..36231c69cff6 100644
+--- a/salt/states/file.py
++++ b/salt/states/file.py
+@@ -291,7 +291,11 @@ def run():
+ import sys
+ import time
+ import traceback
+-from collections import Iterable, Mapping, defaultdict
++try:
++ from collections.abc import Iterable, Mapping
++except ImportError:
++ from collections import Iterable, Mapping
++from collections import defaultdict
+ from datetime import datetime, date # python3 problem in the making?
+
+ # Import salt libs
+diff --git a/salt/utils/dictdiffer.py b/salt/utils/dictdiffer.py
+index 30e87e885436..da6bd5ed944c 100644
+--- a/salt/utils/dictdiffer.py
++++ b/salt/utils/dictdiffer.py
+@@ -13,7 +13,10 @@
+ '''
+ from __future__ import absolute_import, print_function, unicode_literals
+ import copy
+-from collections import Mapping
++try:
++ from collections.abc import Mapping
++except ImportError:
++ from collections import Mapping
+ from salt.ext import six
+
+
diff --git a/app-admin/salt/files/salt-3000.2-py38-misc.patch b/app-admin/salt/files/salt-3000.2-py38-misc.patch
new file mode 100644
index 000000000000..93cc045a5310
--- /dev/null
+++ b/app-admin/salt/files/salt-3000.2-py38-misc.patch
@@ -0,0 +1,460 @@
+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-py38.patch b/app-admin/salt/files/salt-3000.2-py38.patch
new file mode 100644
index 000000000000..1c543a085b10
--- /dev/null
+++ b/app-admin/salt/files/salt-3000.2-py38.patch
@@ -0,0 +1,60 @@
+From 5259ba8ef6e5949815641edc563deab67ba68582 Mon Sep 17 00:00:00 2001
+From: Mathias Fussenegger <f.mathias@zignar.net>
+Date: Fri, 22 Nov 2019 17:05:27 +0100
+Subject: [PATCH] Remove _supported_dists import for python-3.8 support
+
+`_supported_dists` has been removed from platform in Python 3.8:
+
+ https://github.com/python/cpython/commit/8b94b41ab7b12f745dea744e8940631318816935#diff-47c8e5750258a08a6dd9de3e9c3774acL267-L271
+
+This instead inlines all the values that have been there.
+
+Without this change running `salt-ssh` with Python 3.8 run into an
+import error.
+---
+ salt/grains/core.py | 31 +++++++++++++++++++++++++++----
+ 1 file changed, 27 insertions(+), 4 deletions(-)
+
+diff --git a/salt/grains/core.py b/salt/grains/core.py
+index 04c1ae91b5f5..77694abe84f9 100644
+--- a/salt/grains/core.py
++++ b/salt/grains/core.py
+@@ -35,11 +35,34 @@
+ __proxyenabled__ = ['*']
+ __FQDN__ = None
+
+-# Extend the default list of supported distros. This will be used for the
++# Default list of supported distros. This will be used for the
+ # /etc/DISTRO-release checking that is part of linux_distribution()
+-from platform import _supported_dists
+-_supported_dists += ('arch', 'mageia', 'meego', 'vmware', 'bluewhite64',
+- 'slamd64', 'ovs', 'system', 'mint', 'oracle', 'void')
++_supported_dists = (
++ 'SuSE',
++ 'UnitedLinux',
++ 'arch',
++ 'bluewhite64',
++ 'centos',
++ 'debian',
++ 'fedora',
++ 'gentoo',
++ 'mageia',
++ 'mandrake',
++ 'mandriva',
++ 'meego',
++ 'mint',
++ 'oracle',
++ 'ovs',
++ 'redhat',
++ 'rocks',
++ 'slackware',
++ 'slamd64',
++ 'system',
++ 'turbolinux',
++ 'vmware',
++ 'void',
++ 'yellowdog',
++)
+
+ # linux_distribution deprecated in py3.7
+ try:
diff --git a/app-admin/salt/salt-3000.2-r1.ebuild b/app-admin/salt/salt-3000.2-r2.ebuild
index 100dafe7754f..2f37c30a24d4 100644
--- a/app-admin/salt/salt-3000.2-r1.ebuild
+++ b/app-admin/salt/salt-3000.2-r2.ebuild
@@ -2,7 +2,7 @@
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-PYTHON_COMPAT=( python3_7 )
+PYTHON_COMPAT=( python3_{7,8} )
DISTUTILS_USE_SETUPTOOLS=bdepend
inherit systemd distutils-r1
@@ -103,6 +103,14 @@ PATCHES=(
"${FILESDIR}/salt-2019.2.0-skip-tests-that-oom-machine.patch"
"${FILESDIR}/salt-3000.1-tests.patch"
"${FILESDIR}/salt-3000.2-tests.patch"
+
+ # 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"
)
python_prepare() {
@@ -157,7 +165,7 @@ python_test() {
)
}
-pkg_postinst_disabled() {
+pkg_postinst() {
if use python_targets_python3_8; then
if use nova; then
ewarn "Salt's nova functionality will not work with python3.8 since"
diff --git a/dev-libs/libxml2/libxml2-2.9.9-r2.ebuild b/dev-libs/libxml2/libxml2-2.9.9-r2.ebuild
index 18b2d16edf2c..8897fe18e5b3 100644
--- a/dev-libs/libxml2/libxml2-2.9.9-r2.ebuild
+++ b/dev-libs/libxml2/libxml2-2.9.9-r2.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="http://www.xmlsoft.org/"
LICENSE="MIT"
SLOT="2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="debug examples icu ipv6 lzma python readline static-libs test"
+IUSE="debug examples icu ipv6 lzma +python readline static-libs test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
diff --git a/dev-libs/libxml2/libxml2-2.9.9-r3.ebuild b/dev-libs/libxml2/libxml2-2.9.9-r3.ebuild
index 5d076c35297a..b226aa06cb99 100644
--- a/dev-libs/libxml2/libxml2-2.9.9-r3.ebuild
+++ b/dev-libs/libxml2/libxml2-2.9.9-r3.ebuild
@@ -14,7 +14,7 @@ HOMEPAGE="http://www.xmlsoft.org/"
LICENSE="MIT"
SLOT="2"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~m68k ~mips ppc ppc64 ~riscv s390 sparc x86 ~ppc-aix ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-IUSE="debug examples icu ipv6 lzma python readline static-libs test"
+IUSE="debug examples icu ipv6 lzma +python readline static-libs test"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RESTRICT="!test? ( test )"
diff --git a/dev-ruby/rack-attack/Manifest b/dev-ruby/rack-attack/Manifest
index 20109be1585e..db1d0a32be3c 100644
--- a/dev-ruby/rack-attack/Manifest
+++ b/dev-ruby/rack-attack/Manifest
@@ -1,4 +1,2 @@
DIST rack-attack-5.4.2.gem 23040 BLAKE2B 7af950339f03139e6a3ac9e8349e6d2af5182a29f643a08a9ea0806349c02965d05e99d95421f14ba827c9c942a6824f710dbaf06adbb0aa07dde03d74e629ed SHA512 a4af12c2c436a3634108494e2a5b9c5751c0fa2e87af6efa326d9c09fdae54b5bd8a8974c48785dfef64565ff9ee0a6704c90acf1277c8e80849ff30f9fbb67b
-DIST rack-attack-6.2.0.gem 24576 BLAKE2B 7836dd0c8a56bfa6337cc0bfa8ec2a4224873108d73bf1cb225c07a7720fba239bc7eeb75467c098c890050338f60420874c27529568b93c3bec9ed04926300a SHA512 df5de90d976dbd357780a5ab4a012ea1e528e5b608bad57ab8c59ee39ad36a1cf4490b3ec663d7f8ca6b788118ae7b256feb1cc475f8644c29883080e9c8b9dd
-DIST rack-attack-6.2.1.gem 24576 BLAKE2B 4a40486a457b5568045b4311a8eb1f4c54f2e04f68c92a643f4e6523ad32aed6253ce4faa830f0fe36d21ae89137908aab90cb07fe1f1f7307d4ac486de00263 SHA512 aefc9f2b56f5345e45f90b2a90619922fbc4459e95db5b324a58ce05d15b749f5fe93033fb5b7a8e312c10cd076a3e47033ff34a71712ec2923158cecfbcd0c7
DIST rack-attack-6.2.2.gem 24064 BLAKE2B dd76a1f76b4f20e8bf01ac4bfda9af2daacbe972f7847399bd30b9472c8e0f66dbcc333b19eb2e482f91c38d9557ad76559b6a40b7f842faea43b7f88e24cd77 SHA512 c2e852f0871502d1f70be20e6d3d6a9ffe50e6203950624b7ea4f6f0c4c48239a8dbef417f6b7348146f3f6d5a028bffa133c29da6453eff57438d7993562822
diff --git a/dev-ruby/rack-attack/rack-attack-6.2.0.ebuild b/dev-ruby/rack-attack/rack-attack-6.2.0.ebuild
deleted file mode 100644
index 3c7630016e9d..000000000000
--- a/dev-ruby/rack-attack/rack-attack-6.2.0.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-USE_RUBY="ruby24 ruby25 ruby26"
-
-# Skip integration tests since they require additional unpackaged
-# dependencies and running daemons.
-RUBY_FAKEGEM_TASK_TEST="test:units"
-
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-inherit ruby-fakegem
-
-DESCRIPTION="A DSL for blocking & throttling abusive clients"
-HOMEPAGE="https://github.com/kickstarter/rack-attack"
-
-LICENSE="MIT"
-SLOT="6"
-KEYWORDS="~amd64"
-IUSE="test"
-
-ruby_add_rdepend "dev-ruby/rack:*"
-ruby_add_bdepend "test? (
- dev-ruby/actionpack
- dev-ruby/activesupport
- dev-ruby/rack-test
- dev-ruby/minitest )"
-
-all_ruby_prepare() {
- sed -i -e '/\(bundler\|byebug\)/ s:^:#:' Rakefile spec/spec_helper.rb || die
- sed -i -e '3igem "actionpack"' spec/spec_helper.rb || die
- sed -i -e '/rubocop/I s:^:#:' Rakefile || die
-}
diff --git a/dev-ruby/rack-attack/rack-attack-6.2.1.ebuild b/dev-ruby/rack-attack/rack-attack-6.2.1.ebuild
deleted file mode 100644
index 3c7630016e9d..000000000000
--- a/dev-ruby/rack-attack/rack-attack-6.2.1.ebuild
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-USE_RUBY="ruby24 ruby25 ruby26"
-
-# Skip integration tests since they require additional unpackaged
-# dependencies and running daemons.
-RUBY_FAKEGEM_TASK_TEST="test:units"
-
-RUBY_FAKEGEM_EXTRADOC="README.md"
-
-RUBY_FAKEGEM_BINWRAP=""
-
-inherit ruby-fakegem
-
-DESCRIPTION="A DSL for blocking & throttling abusive clients"
-HOMEPAGE="https://github.com/kickstarter/rack-attack"
-
-LICENSE="MIT"
-SLOT="6"
-KEYWORDS="~amd64"
-IUSE="test"
-
-ruby_add_rdepend "dev-ruby/rack:*"
-ruby_add_bdepend "test? (
- dev-ruby/actionpack
- dev-ruby/activesupport
- dev-ruby/rack-test
- dev-ruby/minitest )"
-
-all_ruby_prepare() {
- sed -i -e '/\(bundler\|byebug\)/ s:^:#:' Rakefile spec/spec_helper.rb || die
- sed -i -e '3igem "actionpack"' spec/spec_helper.rb || die
- sed -i -e '/rubocop/I s:^:#:' Rakefile || die
-}
diff --git a/dev-ruby/rake-compiler/Manifest b/dev-ruby/rake-compiler/Manifest
index 8ec30fb66c77..446ed35ff5e9 100644
--- a/dev-ruby/rake-compiler/Manifest
+++ b/dev-ruby/rake-compiler/Manifest
@@ -1,4 +1,2 @@
DIST rake-compiler-1.0.7.tar.gz 33444 BLAKE2B c3a92206d4d7defdf21295aaf094f704596962a3ee79c3517ea1058732e1f9f378b5f14bbe3b9652572564d11c566e26014e187dcdb488409bf95ea9a52e0a7c SHA512 fa901f5cc48891f07bd8d9a27cf4e745e87d5a667dbee0c9f4b43f9564fdfe3067b9c658f10ea8bcacd32ea7320a542ef0fca9373147057472f5572a4a4c5268
-DIST rake-compiler-1.0.8.tar.gz 33547 BLAKE2B 542544543cd6d02a9ff964571244c65a0d748e09ea88027a514f25d13086463094aec29b0961881aa175f9553afcf14fc9f7c12dba0e96a07bf88e21f51e87bf SHA512 30b753d45a1180e034b520ad6385f2799098f0916d55e8b4729f5e3a29dabc1acfa292475edfb384c7809543e1c3e428e28db1bacb5383deb9f4bb31b18d6fe5
-DIST rake-compiler-1.0.9.tar.gz 34780 BLAKE2B 59b736dedf70de3daffdf30b74d251dc3b3d7588610dc57d3aa7e13b55dad2d637b1569beb31075a0e5336d9827adfe3b9f89c9a8b75b141c3012a1d48274d2a SHA512 8a5ccbc4bbe6a546634f939c1cbe42b35d952173bbe914e7a22eb78f3f2e85b48e207ff36b70432fe469a2d07d62b8e59c9827352181122fde76ba89bbc2aca0
DIST rake-compiler-1.1.0.tar.gz 34819 BLAKE2B ec4fec1eb92031f9f6b378b190c4e8a2f2627623afd6fb11922f71a93431de94bce640863deea2aab05656612533ee2b110f295f87590b48500583af71b08dae SHA512 77338776506df66c2e99e9b1b82dc4d54cc4e7c8fdb1f8b7b6d7507b9f9cb0718839e5139e9c0cb6295259e819dc8a011101e2427cdd387b568b639889321d60
diff --git a/dev-ruby/rake-compiler/rake-compiler-1.0.8.ebuild b/dev-ruby/rake-compiler/rake-compiler-1.0.8.ebuild
deleted file mode 100644
index be4047d3141e..000000000000
--- a/dev-ruby/rake-compiler/rake-compiler-1.0.8.ebuild
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-USE_RUBY="ruby24 ruby25 ruby26"
-
-RUBY_FAKEGEM_RECIPE_TEST="none"
-
-RUBY_FAKEGEM_RECIPE_DOC="none"
-RUBY_FAKEGEM_EXTRADOC="History.txt README.rdoc"
-
-inherit ruby-fakegem eutils
-
-DESCRIPTION="Provide a standard and simplified way to build and package Ruby extensions"
-HOMEPAGE="https://github.com/luislavena/rake-compiler"
-LICENSE="MIT"
-
-SRC_URI="https://github.com/luislavena/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-SLOT="0"
-IUSE=""
-
-ruby_add_rdepend "dev-ruby/rake"
-
-ruby_add_bdepend "test? ( dev-ruby/rspec:3 )"
-
-USE_RUBY="ruby24 ruby25 ruby26" ruby_add_bdepend "test? ( dev-util/cucumber dev-ruby/rspec:2 )"
-
-all_ruby_prepare() {
- # Make sure the right rspec version is used in cucumber.
- sed -i -e "1igem 'rspec', '~>2.0'" features/support/env.rb || die
-
- # Avoid failing features for native gems, this also fails with rubygems
- sed -i -e '/generate native gem/,$ s:^:#:' features/package.feature || die
-}
-
-each_ruby_test() {
- # Skip cucumber for new ruby versions (not ready yet)
- case ${RUBY} in
- **ruby24|*ruby25|*ruby26)
- RSPEC_VERSION=3 ruby-ng_rspec
- ruby-ng_cucumber
- ;;
- *)
- RSPEC_VERSION=3 ruby-ng_rspec
- ;;
- esac
-}
diff --git a/dev-ruby/rake-compiler/rake-compiler-1.0.9.ebuild b/dev-ruby/rake-compiler/rake-compiler-1.0.9.ebuild
deleted file mode 100644
index 0c864a706a3f..000000000000
--- a/dev-ruby/rake-compiler/rake-compiler-1.0.9.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-USE_RUBY="ruby24 ruby25 ruby26"
-
-RUBY_FAKEGEM_RECIPE_TEST="none"
-
-RUBY_FAKEGEM_RECIPE_DOC="none"
-RUBY_FAKEGEM_EXTRADOC="History.txt README.md"
-
-RUBY_FAKEGEM_GEMSPEC="rake-compiler.gemspec"
-
-inherit ruby-fakegem eutils
-
-DESCRIPTION="Provide a standard and simplified way to build and package Ruby extensions"
-HOMEPAGE="https://github.com/luislavena/rake-compiler"
-LICENSE="MIT"
-
-SRC_URI="https://github.com/luislavena/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
-SLOT="0"
-IUSE=""
-
-ruby_add_rdepend "dev-ruby/rake"
-
-ruby_add_bdepend "test? ( dev-ruby/rspec:3 )"
-
-USE_RUBY="ruby24 ruby25 ruby26" ruby_add_bdepend "test? ( dev-util/cucumber dev-ruby/rspec:2 )"
-
-all_ruby_prepare() {
- # Make sure the right rspec version is used in cucumber.
- sed -i -e "1igem 'rspec', '~>2.0'" features/support/env.rb || die
-
- # Avoid failing features for native gems, this also fails with rubygems
- sed -i -e '/generate native gem/,$ s:^:#:' features/package.feature || die
-}
-
-each_ruby_test() {
- # Skip cucumber for new ruby versions (not ready yet)
- case ${RUBY} in
- **ruby24|*ruby25|*ruby26)
- RSPEC_VERSION=3 ruby-ng_rspec
- ruby-ng_cucumber
- ;;
- *)
- RSPEC_VERSION=3 ruby-ng_rspec
- ;;
- esac
-}
diff --git a/dev-ruby/stomp/Manifest b/dev-ruby/stomp/Manifest
index c2c1c237ee8f..302a78d2f238 100644
--- a/dev-ruby/stomp/Manifest
+++ b/dev-ruby/stomp/Manifest
@@ -1,3 +1,2 @@
DIST stomp-1.4.4.gem 93696 BLAKE2B c1647ba119946ed41d58b1fe08baae5fa54317e3ba4b4b33eef50b7ff588daaf2ecf89a45b21b3eac7969609337fc8b09d73ea7f54f40af6c4b2613cab686df7 SHA512 77c5a53b56177869beb9ff236405479d1fe48ba6841f42eefbd104a5e1b8f82584283c909bb2f6ec5a34ae99c0dfa91079d0716d1bef65db24c5b1414c1ed673
-DIST stomp-1.4.8.gem 97792 BLAKE2B d3a3ff9795adfe9b53a60a3fa9f18e9e96693882325475fba6629b2c4bb4cf3fc3d9bbd68277d6dc3e093ceaefb680a5f0365e89cd87fae187880c8b35ee022e SHA512 6e5c0727d4b3853f90f8ec4450162b38f571dcd63b58a4d09c284f42f5b9ee884ee8a3b8d27c8d85f8a297337e0d6ed61538bafee840cfc26e15b15039e1e4c9
DIST stomp-1.4.9.gem 99328 BLAKE2B 9aa50880224cede15be69657ec7ecccf1a075db3e51de55faf3a0ba50335b90b910d1202c646585229cc35c0e2e4cf01fd99774960d9ae90ff82030c4bac6a69 SHA512 e1e3aed86621e2dac199fd7e4ba67fedc3582b5cfe9e4ff2efbdc9c545bb25d2c52391d9403e2fa935f69635e85bd3c1ca29d2d5b3c425aa850d3ccb8f7a5e86
diff --git a/dev-ruby/stomp/stomp-1.4.8.ebuild b/dev-ruby/stomp/stomp-1.4.8.ebuild
deleted file mode 100644
index 6564bcdb89c1..000000000000
--- a/dev-ruby/stomp/stomp-1.4.8.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-USE_RUBY="ruby23 ruby24 ruby25 ruby26"
-
-RUBY_FAKEGEM_DOCDIR="doc"
-RUBY_FAKEGEM_EXTRADOC="CHANGELOG.md README.md"
-
-RUBY_FAKEGEM_RECIPE_TEST="rspec3"
-
-inherit ruby-fakegem
-
-DESCRIPTION="Ruby bindings for the stomp messaging protocol"
-HOMEPAGE="https://github.com/stompgem/stomp"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-
-all_ruby_prepare() {
- # Skip specs that hang the test run indefinitely, most likely
- # because of rspec-mocks deprecation output
- rm -f spec/connection_spec.rb || die
-}
diff --git a/dev-util/edi/Manifest b/dev-util/edi/Manifest
index 70a2928b712c..f7c37e8212b8 100644
--- a/dev-util/edi/Manifest
+++ b/dev-util/edi/Manifest
@@ -1 +1 @@
-DIST edi-0.7.1.tar.gz 736103 BLAKE2B f4c82246d66d2620cccf71bfd2b623d1ce95f28d2afb1f1077b53580eec6303748287a5332472c45a911ad83d573ffaadfd08bc0827e3b77909f1a041e0f0750 SHA512 5e7e88e547f2e8fc631d48999aa76e814735dc254381d3965f64f7c1d3006becb90f32305471cd54c4eec5f8b66a1e8595220f302bcebe25eb54e9b56c31767c
+DIST edi-0.8.0.tar.gz 1076134 BLAKE2B b422493a1786f6dd2865adfdc88d756e7ced7681d8ccfbb6d0befcf04b035435134b168752d47dc25f86b1ee59c659a23b04b392787f8863f772e90a5f6f55fb SHA512 88d4ff3f5a4c56c3de7392024022a505907b6d6a16854254f227e457157fd7abd35eff1916842c77fcd6b81d42ec2fa15deceee632bf67d22ab272f8e755215c
diff --git a/dev-util/edi/edi-0.7.1.ebuild b/dev-util/edi/edi-0.8.0.ebuild
index 7d7621ec5b42..b90faeeb5e6f 100644
--- a/dev-util/edi/edi-0.7.1.ebuild
+++ b/dev-util/edi/edi-0.8.0.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI=6
+EAPI=7
-inherit llvm meson xdg-utils
+inherit llvm meson xdg
DESCRIPTION="An EFL-based IDE"
HOMEPAGE="http://edi-ide.com/
@@ -12,7 +12,7 @@ HOMEPAGE="http://edi-ide.com/
https://github.com/Enlightenment/edi"
SRC_URI="https://github.com/Enlightenment/edi/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-LICENSE="GPL-2 LGPL-2.1-with-linking-exception"
+LICENSE="GPL-2 GPL-3 LGPL-2.1-with-linking-exception"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="clang"
@@ -22,8 +22,7 @@ RDEPEND="|| ( dev-libs/efl[X] dev-libs/efl[wayland] )
clang? ( sys-devel/clang:= )"
DEPEND="${RDEPEND}
dev-libs/check"
-BDEPEND=">=dev-util/meson-0.50.0
- virtual/pkgconfig"
+BDEPEND="virtual/pkgconfig"
llvm_check_deps() {
has_version "sys-devel/clang:${LLVM_SLOT}"
@@ -35,7 +34,6 @@ pkg_setup() {
src_prepare() {
default
- xdg_environment_reset
# fix a QA issue with .desktop file, https://phab.enlightenment.org/T7368
sed -i '/Version=/d' data/desktop/edi.desktop* || die
diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass
index e85aefda792a..4af710da363b 100644
--- a/eclass/python-utils-r1.eclass
+++ b/eclass/python-utils-r1.eclass
@@ -378,13 +378,11 @@ _python_export() {
local d
case ${impl} in
python2.7)
- PYTHON_PKG_DEP='>=dev-lang/python-2.7.17-r1:2.7';;
- python3.6)
- PYTHON_PKG_DEP=">=dev-lang/python-3.6.10:3.6";;
- python3.7)
- PYTHON_PKG_DEP=">=dev-lang/python-3.7.7-r1:3.7";;
- python3.8)
- PYTHON_PKG_DEP=">=dev-lang/python-3.8.2:3.8";;
+ PYTHON_PKG_DEP='>=dev-lang/python-2.7.5-r2:2.7';;
+ python*)
+ PYTHON_PKG_DEP="dev-lang/python:${impl#python}";;
+ pypy)
+ PYTHON_PKG_DEP='>=dev-python/pypy-7.3.0:0=';;
pypy3)
PYTHON_PKG_DEP='>=dev-python/pypy3-7.3.0:0=';;
*)
diff --git a/net-libs/nodejs/Manifest b/net-libs/nodejs/Manifest
index 5090c1a233f8..49aaac329422 100644
--- a/net-libs/nodejs/Manifest
+++ b/net-libs/nodejs/Manifest
@@ -4,6 +4,7 @@ DIST node-v12.16.1.tar.xz 23481768 BLAKE2B 29371b952c14907778c064269108f1da5e381
DIST node-v12.16.2.tar.xz 23654020 BLAKE2B aa4bb764a8731e32ce07d03d96d573632bbf9af79b127c2acec48fcf335c01ea0ea99532670a46befac42e2e1ce5a4dbd2e4cf0d068bac05749d87af59bb80fa SHA512 81688468bc6e20d83f7f58f0c15f9291a801eb2acc8ba7279e65d81f3eb4ea95e3b6cee0d09738c0d0fa35226ae3d52f2bad5da63a20a3edc9129197d42d000d
DIST node-v12.16.3.tar.xz 23682432 BLAKE2B 91b97c0de9c76f33d080f3f12a42a15140be6e3f4d42022a55305dc2afc04de6a2b8364b9fc5df0dd71c9ec249eb9e4da8ff23f53be43a1f306d2a6fbc6d6bce SHA512 e5d2d1960972f19ef5acc667efb702d534eb436212dea9e0bfd817328c927b55734406f232b32bba366f05c2691e5085e3a6f8c1e2d959398745e60719e731b3
DIST node-v13.13.0.tar.xz 32862040 BLAKE2B de2802543421049d225b9eab5f1edd3f3d483cf50839fd646cc5756f272b42baaf56c58c3c31c498cb79abf8ed678cd5dbe6c5622b6dd4564ed22dbde11ce1ae SHA512 344d364fd39c9497ff7d2829b271b572f3f997fc3eb01744c9ba533b4ba1e8a1fbd08ad28909e74504f4bf84de95d0197a0b5e8b9cf07180a1457fdd2e95775e
+DIST node-v13.14.0.tar.xz 32862504 BLAKE2B 2e74e1d8afd508aade66db2e4c251be18308932502db5c3f556a233ce863faaa5279b5fa758c9b4aa76b7fa0469b9440b696695787ca58092ad8fc0389b8a029 SHA512 c0da3e7742dddbead71c321157fdd5790de688a98c0c6016e06e6a26babea7347595d74cc8b9ac7e033daf8bd23d0306316e41f138e7b9220ce25b05403602d2
DIST node-v14.0.0.tar.xz 32850900 BLAKE2B ef24e6559246f64d9a54d1e6c9ac390bb416af2ac494547f4171db014e2213cd0b11a482ab611865ca3f61a60a9d793207c53f1779d687a7ba7a32fc4d9f29cc SHA512 030dff2bc46594e5e86e0383185030980ae486bbdab2fd2cf65e591c80a9426cf4e6f16c384d36e6094b8a58e8511d7019bef379c44650507d1352a680505710
DIST node-v14.1.0.tar.xz 32861052 BLAKE2B 34727e0c615b08941edf29da6cc88cfb039f25321b25ea2e544dc6b844520e9174572b5ada5719d73fdb55dbacc156726fdfb7a552defd02f2bfebd3a2cc3835 SHA512 90c981ea198dca59aa1e2b8e528d6e7ea0bf13066ae0d9ffdd9018d8923496e029f0e3ddc0bbf8e0eb67e1087a26a41e16101c83297e086b904a4a92865e7101
DIST node-v8.12.0.tar.xz 18310452 BLAKE2B 79634fc57cd76a97e72bab4be37da91d5eff4d13cdaa2b48e83f013885fa3590ba4a28378baf036ed26b7304bf234753d1d4014f72571496f5bb6cd5b221e5f0 SHA512 665d2dba287d78bcd723d7b4d00a6897fb996f4aa69a541e010a3dfeb2614257892117fcce7123966b1ecaddc9269a6667e0e262df693baea1f476c96de55c42
diff --git a/net-libs/nodejs/nodejs-13.14.0.ebuild b/net-libs/nodejs/nodejs-13.14.0.ebuild
new file mode 100644
index 000000000000..625eb14589d5
--- /dev/null
+++ b/net-libs/nodejs/nodejs-13.14.0.ebuild
@@ -0,0 +1,209 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7,8} )
+PYTHON_REQ_USE="threads(+)"
+inherit bash-completion-r1 eutils flag-o-matic pax-utils python-any-r1 toolchain-funcs xdg-utils
+
+DESCRIPTION="A JavaScript runtime built on Chrome's V8 JavaScript engine"
+HOMEPAGE="https://nodejs.org/"
+SRC_URI="
+ https://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz
+"
+
+LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux ~x64-macos"
+IUSE="cpu_flags_x86_sse2 debug doc icu inspector +npm pax_kernel +snapshot +ssl +system-ssl systemtap test"
+REQUIRED_USE="
+ inspector? ( icu ssl )
+ npm? ( ssl )
+ system-ssl? ( ssl )
+"
+
+RDEPEND="
+ >=dev-libs/libuv-1.37.0:=
+ >=net-dns/c-ares-1.16.0
+ >=net-libs/nghttp2-1.40.0
+ sys-libs/zlib
+ icu? ( >=dev-libs/icu-64.1:= )
+ system-ssl? ( >=dev-libs/openssl-1.1.1:0= )
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ systemtap? ( dev-util/systemtap )
+ test? ( net-misc/curl )
+ pax_kernel? ( sys-apps/elfix )
+"
+DEPEND="
+ ${RDEPEND}
+"
+PATCHES=(
+ "${FILESDIR}"/${PN}-10.3.0-global-npm-config.patch
+)
+RESTRICT="test"
+S="${WORKDIR}/node-v${PV}"
+
+pkg_pretend() {
+ (use x86 && ! use cpu_flags_x86_sse2) && \
+ die "Your CPU doesn't support the required SSE2 instruction."
+
+ ( [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11 ) && \
+ die "Your compiler doesn't support C++11. Use GCC 4.8, Clang 3.3 or newer."
+}
+
+src_prepare() {
+ tc-export CC CXX PKG_CONFIG
+ export V=1
+ export BUILDTYPE=Release
+
+ # fix compilation on Darwin
+ # https://code.google.com/p/gyp/issues/detail?id=260
+ sed -i -e "/append('-arch/d" tools/gyp/pylib/gyp/xcode_emulation.py || die
+
+ # less verbose install output (stating the same as portage, basically)
+ sed -i -e "/print/d" tools/install.py || die
+
+ # proper libdir, hat tip @ryanpcmcquen https://github.com/iojs/io.js/issues/504
+ local LIBDIR=$(get_libdir)
+ sed -i -e "s|lib/|${LIBDIR}/|g" tools/install.py || die
+ sed -i -e "s/'lib'/'${LIBDIR}'/" deps/npm/lib/npm.js || die
+
+ # Avoid writing a depfile, not useful
+ sed -i -e "/DEPFLAGS =/d" tools/gyp/pylib/gyp/generator/make.py || die
+
+ sed -i -e "/'-O3'/d" common.gypi node.gypi || die
+
+ # Avoid a test that I've only been able to reproduce from emerge. It doesnt
+ # seem sandbox related either (invoking it from a sandbox works fine).
+ # The issue is that no stdin handle is openened when asked for one.
+ # It doesn't really belong upstream , so it'll just be removed until someone
+ # with more gentoo-knowledge than me (jbergstroem) figures it out.
+ rm test/parallel/test-stdout-close-unref.js || die
+
+ # debug builds. change install path, remove optimisations and override buildtype
+ if use debug; then
+ sed -i -e "s|out/Release/|out/Debug/|g" tools/install.py || die
+ BUILDTYPE=Debug
+ fi
+
+ # We need to disable mprotect on two files when it builds Bug 694100.
+ use pax_kernel && PATCHES+=( "${FILESDIR}"/${PN}-13.8.0-paxmarking.patch )
+
+ default
+}
+
+src_configure() {
+ xdg_environment_reset
+
+ local myconf=(
+ --shared-cares --shared-libuv --shared-nghttp2 --shared-zlib
+ )
+ use debug && myconf+=( --debug )
+ use icu && myconf+=( --with-intl=system-icu ) || myconf+=( --with-intl=none )
+ use inspector || myconf+=( --without-inspector )
+ use npm || myconf+=( --without-npm )
+ use snapshot || myconf+=( --without-node-snapshot )
+ if use ssl; then
+ use system-ssl && myconf+=( --shared-openssl --openssl-use-def-ca-store )
+ else
+ myconf+=( --without-ssl )
+ fi
+
+ local myarch=""
+ case ${ABI} in
+ amd64) myarch="x64";;
+ arm) myarch="arm";;
+ arm64) myarch="arm64";;
+ ppc64) myarch="ppc64";;
+ x32) myarch="x32";;
+ x86) myarch="ia32";;
+ *) myarch="${ABI}";;
+ esac
+
+ GYP_DEFINES="linux_use_gold_flags=0
+ linux_use_bundled_binutils=0
+ linux_use_bundled_gold=0" \
+ "${EPYTHON}" configure.py \
+ --prefix="${EPREFIX}"/usr \
+ --dest-cpu=${myarch} \
+ $(use_with systemtap dtrace) \
+ "${myconf[@]}" || die
+}
+
+src_compile() {
+ emake -C out
+}
+
+src_install() {
+ local LIBDIR="${ED}/usr/$(get_libdir)"
+ default
+
+ pax-mark -m "${ED}"/usr/bin/node
+
+ # set up a symlink structure that node-gyp expects..
+ dodir /usr/include/node/deps/{v8,uv}
+ dosym . /usr/include/node/src
+ for var in deps/{uv,v8}/include; do
+ dosym ../.. /usr/include/node/${var}
+ done
+
+ if use doc; then
+ docinto html
+ dodoc -r "${S}"/doc/*
+ fi
+
+ if use npm; then
+ dodir /etc/npm
+
+ # Install bash completion for `npm`
+ # We need to temporarily replace default config path since
+ # npm otherwise tries to write outside of the sandbox
+ local npm_config="usr/$(get_libdir)/node_modules/npm/lib/config/core.js"
+ sed -i -e "s|'/etc'|'${ED}/etc'|g" "${ED}/${npm_config}" || die
+ local tmp_npm_completion_file="$(emktemp)"
+ "${ED}/usr/bin/npm" completion > "${tmp_npm_completion_file}"
+ newbashcomp "${tmp_npm_completion_file}" npm
+ sed -i -e "s|'${ED}/etc'|'/etc'|g" "${ED}/${npm_config}" || die
+
+ # Move man pages
+ doman "${LIBDIR}"/node_modules/npm/man/man{1,5,7}/*
+
+ # Clean up
+ rm "${LIBDIR}"/node_modules/npm/{.mailmap,.npmignore,Makefile} || die
+ rm -rf "${LIBDIR}"/node_modules/npm/{doc,html,man} || die
+
+ local find_exp="-or -name"
+ local find_name=()
+ for match in "AUTHORS*" "CHANGELOG*" "CONTRIBUT*" "README*" \
+ ".travis.yml" ".eslint*" ".wercker.yml" ".npmignore" \
+ "*.md" "*.markdown" "*.bat" "*.cmd"; do
+ find_name+=( ${find_exp} "${match}" )
+ done
+
+ # Remove various development and/or inappropriate files and
+ # useless docs of dependend packages.
+ find "${LIBDIR}"/node_modules \
+ \( -type d -name examples \) -or \( -type f \( \
+ -iname "LICEN?E*" \
+ "${find_name[@]}" \
+ \) \) -exec rm -rf "{}" \;
+ fi
+
+ mv "${ED}"/usr/share/doc/node "${ED}"/usr/share/doc/${PF} || die
+}
+
+src_test() {
+ out/${BUILDTYPE}/cctest || die
+ "${EPYTHON}" tools/test.py --mode=${BUILDTYPE,,} -J message parallel sequential || die
+}
+
+pkg_postinst() {
+ elog "The global npm config lives in /etc/npm. This deviates slightly"
+ elog "from upstream which otherwise would have it live in /usr/etc/."
+ elog ""
+ elog "Protip: When using node-gyp to install native modules, you can"
+ elog "avoid having to download extras by doing the following:"
+ elog "$ node-gyp --nodedir /usr/include/node <command>"
+}
diff --git a/sys-process/evisum/Manifest b/sys-process/evisum/Manifest
index 097e1d24e2b5..fa9b12b53365 100644
--- a/sys-process/evisum/Manifest
+++ b/sys-process/evisum/Manifest
@@ -1,2 +1,3 @@
DIST evisum-0.3.0.tar.xz 83620 BLAKE2B 9b9646670a7b313246537dbd78f47f5db14f3dd22436cd7e60e902df4b07fa28596d80edac5f3c0ee68c5bb7dfaffd3bf8a6d77d342e4aa32f4bfe97de3eb148 SHA512 a36c931bbb4534fb9201cbc09883311c3552d7ef48d504a86fc722222af64fc80083b81aab3dea99c926394613e7fe78f5477ae7c73dc19ae95df17e78dcd6ee
DIST evisum-0.3.2.tar.xz 107300 BLAKE2B a30ddbdc33bee32c8110f887d986c39a8153f56e2a9660622b779dacf88c01141cb7192d041aa15318c86e83e372e064ccfd197362cc8447c78aecf75fd9909e SHA512 b0a5b3b033e2856cd92b2fd2db52ddb8e8956c4d1db45cf1c29353b3de74dedf2dea86dd1382dbef2a2326a4b60b395a9c7b12839fa93eb23ed34045a8dc213c
+DIST evisum-0.4.0.tar.xz 157652 BLAKE2B be2084ca6bdbbbd5647bab581eb5d2270554dc4a06e06d3b1725ae2a6b9973cb3674f7a1a20c1a624c78daa6a75ada5a5093ab2ae1d2e23b03805da4bbb87a10 SHA512 184b339bb7bac6602552ae0c22315f9af56d1eb3597077e0531159ba48c6dc115232b2f82599eee6e0cf7b91a77b9f8dd08eeff6f3d1436598dde291b5051d37
diff --git a/sys-process/evisum/evisum-0.4.0.ebuild b/sys-process/evisum/evisum-0.4.0.ebuild
new file mode 100644
index 000000000000..34be85ce9ccf
--- /dev/null
+++ b/sys-process/evisum/evisum-0.4.0.ebuild
@@ -0,0 +1,17 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit meson xdg
+
+DESCRIPTION="System and process monitor written with EFL"
+HOMEPAGE="https://www.enlightenment.org/"
+SRC_URI="https://download.enlightenment.org/rel/apps/${PN}/${P}.tar.xz"
+
+LICENSE="GPL-2 ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-libs/efl"
+RDEPEND="|| ( dev-libs/efl[X] dev-libs/efl[wayland] )"