summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-06-14 08:17:28 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2023-06-14 08:17:28 +0000
commit4876afda8bd2a2ff7739c35d2217e076f969b700 (patch)
tree5d3aa7f305cca311eb5135d2e7ffbfa065082d83 /dev-python
parent26cb790d5c3144747fa0bf0ee13fc2c41728f304 (diff)
downloadbaldeagleos-repo-4876afda8bd2a2ff7739c35d2217e076f969b700.tar.gz
baldeagleos-repo-4876afda8bd2a2ff7739c35d2217e076f969b700.tar.xz
baldeagleos-repo-4876afda8bd2a2ff7739c35d2217e076f969b700.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/boto3/Manifest1
-rw-r--r--dev-python/boto3/boto3-1.26.153.ebuild66
-rw-r--r--dev-python/botocore/Manifest1
-rw-r--r--dev-python/botocore/botocore-1.29.153.ebuild79
-rw-r--r--dev-python/btrfs/Manifest1
-rw-r--r--dev-python/btrfs/btrfs-13.ebuild39
-rw-r--r--dev-python/btrfs/files/13-001-docs-do-not-monkey-patch-for-sphinx-4.patch146
-rw-r--r--dev-python/btrfs/files/13-002-show_file_csum-fix-vaddr-computation.patch27
-rw-r--r--dev-python/btrfs/files/13-003-ioctl-fix-documentation-error-in-FeatureFlags.patch21
-rw-r--r--dev-python/btrfs/files/13-004-add-Block-Group-Tree.patch110
-rw-r--r--dev-python/btrfs/files/13-005-ctree-FileSystem-add-block_groups-function.patch58
-rw-r--r--dev-python/btrfs/files/13-006-btrfs-search-metadata-use-FileSystem-block_groups.patch30
-rw-r--r--dev-python/btrfs/metadata.xml14
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-0.77.8.ebuild64
-rw-r--r--dev-python/clang-python/clang-python-16.0.6.9999.ebuild54
-rw-r--r--dev-python/contourpy/Manifest1
-rw-r--r--dev-python/contourpy/contourpy-1.1.0.ebuild47
-rw-r--r--dev-python/google-auth/Manifest1
-rw-r--r--dev-python/google-auth/files/google-auth-2.20.0-urllib3-2.patch68
-rw-r--r--dev-python/google-auth/google-auth-2.20.0.ebuild63
-rw-r--r--dev-python/langdetect/Manifest2
-rw-r--r--dev-python/langdetect/metadata.xml10
-rw-r--r--dev-python/lit/lit-16.0.6.9999.ebuild42
-rw-r--r--dev-python/myst-parser/Manifest1
-rw-r--r--dev-python/myst-parser/myst-parser-2.0.0.ebuild60
-rw-r--r--dev-python/phonenumbers/Manifest1
-rw-r--r--dev-python/phonenumbers/phonenumbers-8.13.14.ebuild39
28 files changed, 947 insertions, 100 deletions
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index dd0050c01b97..1408e78fe672 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -2,3 +2,4 @@ DIST boto3-1.26.142.gh.tar.gz 655602 BLAKE2B e9d5671308e71bb43a97953407f4aba5b78
DIST boto3-1.26.146.gh.tar.gz 658035 BLAKE2B 29104a4ebd16ca8b2a0631bb747ed8b5af9fd6a5c86927937e6fc3ded14857c5244dc3ae4db1aec880f845b32d505edb1ef652a29f9f4d48f8a935a3ff239dbd SHA512 910c49bfdca0f39e089eab50ca24f9cfa3c75cae8c33d53155f0df2dd4c6ae1729dc235bfb3f5880cd50bdeeb60327490bf2372ca2cc14600d24dc90b51d6120
DIST boto3-1.26.151.gh.tar.gz 661732 BLAKE2B 8adc42757d828414dd4bde9f460bc9fd6781131de5c8a5648fd1b6888ad4ff656db4075aeb2855493823290c5239ea6364aedd531197206c540b126bd466c379 SHA512 51359a351ed023de6b7c84e6d3e2bd5fc28f1ddc39e71af61bc6880002ed9478150e87e4237032d0ff9110792fcfbc09a62ee23f89d7d417730a88abccda0517
DIST boto3-1.26.152.gh.tar.gz 662874 BLAKE2B 31866c0c3244cdb868fadaf985410e5577d8d75f37387ee44f6ce879ae06c282a4e85e262da4bab3e588918b126110c10b5a64bf7764f076baf495a4382cd225 SHA512 3d496da055172bbc840a3a6f8bd7df6f24bbb1f2f5dbacbbc0e337d4bd15d1355b9fd2e5dbb9e611aa1e415d11dc32bd0b61428a0d0ce7e2d55bb143a0cf1491
+DIST boto3-1.26.153.gh.tar.gz 663859 BLAKE2B 6c5a04fcaa6dde09a09552c2687a2ad1a780ce703cc60eda84c2fa6ad9061dd5f0a4aa0c8f7a7d15f73da2abd9f28d12f8f3d4f859a552cc355bde16f9b306aa SHA512 70117de2475d82f4bb94be2033b7ba18447290f767334d3ea11c60807619d76846003868439f1d025b396df12b91e126f4935f7438d649ca2ee7d629f0a499f4
diff --git a/dev-python/boto3/boto3-1.26.153.ebuild b/dev-python/boto3/boto3-1.26.153.ebuild
new file mode 100644
index 000000000000..03c610b184f7
--- /dev/null
+++ b/dev-python/boto3/boto3-1.26.153.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/boto3"
+ inherit git-r3
+ BOTOCORE_PV=${PV}
+else
+ SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+ # botocore is x.(y+3).z
+ BOTOCORE_PV="$(ver_cut 1).$(( $(ver_cut 2) + 3)).$(ver_cut 3-)"
+fi
+
+RDEPEND="
+ >=dev-python/botocore-${BOTOCORE_PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.6.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ epytest tests/{functional,unit} -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index 405f805924ea..378dd84b3ab9 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -2,3 +2,4 @@ DIST botocore-1.29.142.gh.tar.gz 11528069 BLAKE2B 860a5ab68d26424702006b221e62e2
DIST botocore-1.29.146.gh.tar.gz 11553866 BLAKE2B 7b5b060480de459af9045be8724272fb876c8663b39b1a1ea3575cee83d233dc4e04735682f7eac9299ae0219a5995ddd3379d75c6d2e1bece565e2294b3cc23 SHA512 e786137deaac49fa9db7c8c4df1ff8be195dd400432fbb2e6a23608181161234fa5c3a81a293b4ae1133d1a40e0341b3a081f0d845672e8d0c604fdffc2bc1b5
DIST botocore-1.29.151.gh.tar.gz 11618833 BLAKE2B cac8007e6177c029b97e288c244668657da6b20d3ea1b4e5b1b93e65bf7dec1206c5bccdc70094e14b02a3937a10f12868a3ea9b85cf6fbcb6e7a6c71155170a SHA512 960a5a62e467a3057e89f1f7d2700b67a1aff442b85a7b89b7da6a403deb2d706e9d6297392ef74a5569d90cd3123fa0474d40f378f0756012d88665c0214aa4
DIST botocore-1.29.152.gh.tar.gz 11624895 BLAKE2B f6b8596548ab8ff5cbf401d98ebf90cd0425f0363f9be1b71f58649a98dd6c69a859deb80467621bcdc5c15ebe151df7960880ebc013d5834d5310e80a89e948 SHA512 f51f8e00e61ed51d39ec9e51a08cf0f57d29f5e1d4e77460cf28ed296f062cf9df2b5761a30d8a78b6bc4ca8a971032150929cb84147d099e45f8e0112a717e5
+DIST botocore-1.29.153.gh.tar.gz 11665559 BLAKE2B 82a51ba87753e4f241776652f846db39e5d3748997c635af960dfa389786f3abe3b622f2415abba1aaef81d12aee8b7197f1dea9e71a34e6fc18e1712a79eed5 SHA512 84f774eae433b8efecbc4ccf4990435cfa2f9a5fa1a6d29d94bbc57a75b6f3fd4c0b8392672a7d06a00ad7b5f0f4c3fcf66aa893ad655e3a1409083d8731df78
diff --git a/dev-python/botocore/botocore-1.29.153.ebuild b/dev-python/botocore/botocore-1.29.153.ebuild
new file mode 100644
index 000000000000..509d06dedf97
--- /dev/null
+++ b/dev-python/botocore/botocore-1.29.153.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 multiprocessing
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+LICENSE="Apache-2.0"
+SLOT="0"
+
+if [[ "${PV}" == "9999" ]]; then
+ EGIT_REPO_URI="https://github.com/boto/botocore"
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ "
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+fi
+
+RDEPEND="
+ dev-python/six[${PYTHON_USEDEP}]
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ # fails on unrelated warnings
+ tests/unit/test_client.py::TestAutoGeneratedClient::test_BOTO_DISABLE_COMMONNAME
+ tests/unit/test_client.py::TestClientErrors::test_BOTO_DISABLE_COMMONNAME
+ # TODO
+ tests/functional/test_credentials.py::SSOSessionTest::test_token_chosen_from_provider
+ # urllib3-2 compatibility, mock relies on implementation details
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_expect_100_continue_no_response_from_server
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_expect_100_continue_returned
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_expect_100_continue_sends_307
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_expect_100_sends_connection_header
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_handles_expect_100_with_different_reason_phrase
+ tests/unit/test_awsrequest.py::TestAWSHTTPConnection::test_state_reset_on_connection_close
+ )
+
+ epytest tests/{functional,unit} -n "$(makeopts_jobs)"
+}
diff --git a/dev-python/btrfs/Manifest b/dev-python/btrfs/Manifest
new file mode 100644
index 000000000000..8c584ff7f6ff
--- /dev/null
+++ b/dev-python/btrfs/Manifest
@@ -0,0 +1 @@
+DIST btrfs-13.gh.tar.gz 93110 BLAKE2B 286e5d1d9aa66ce5072f2fe144b2da6bbcde65dd90eb21efe1eb69b9aaa3230d76e8b8baffcfd269ce5d53e1004b5fc6c5546125bc1a5c26413ba8abc66f068a SHA512 5117b9c6542fe191eccbed56a15bb5d8eadc2d3c0edd986a3e1a33d0b63f58c3db5e7f6d234c43a83d1cc74eea3e106c5882a92926c3087601edc36e6672721f
diff --git a/dev-python/btrfs/btrfs-13.ebuild b/dev-python/btrfs/btrfs-13.ebuild
new file mode 100644
index 000000000000..fd8fc18aa724
--- /dev/null
+++ b/dev-python/btrfs/btrfs-13.ebuild
@@ -0,0 +1,39 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python module to inspect btrfs filesystems"
+HOMEPAGE="https://github.com/knorrie/python-btrfs"
+SRC_URI="https://github.com/knorrie/python-${PN}/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="examples"
+
+S="${WORKDIR}/python-${P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-001-docs-do-not-monkey-patch-for-sphinx-4.patch
+ "${FILESDIR}"/${PV}-002-show_file_csum-fix-vaddr-computation.patch
+ "${FILESDIR}"/${PV}-003-ioctl-fix-documentation-error-in-FeatureFlags.patch
+ "${FILESDIR}"/${PV}-004-add-Block-Group-Tree.patch
+ "${FILESDIR}"/${PV}-005-ctree-FileSystem-add-block_groups-function.patch
+ "${FILESDIR}"/${PV}-006-btrfs-search-metadata-use-FileSystem-block_groups.patch
+)
+
+python_install_all() {
+ if use examples; then
+ # skip symlink meant for development
+ rm examples/btrfs
+ dodoc -r examples
+ fi
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/btrfs/files/13-001-docs-do-not-monkey-patch-for-sphinx-4.patch b/dev-python/btrfs/files/13-001-docs-do-not-monkey-patch-for-sphinx-4.patch
new file mode 100644
index 000000000000..f74d1502aa66
--- /dev/null
+++ b/dev-python/btrfs/files/13-001-docs-do-not-monkey-patch-for-sphinx-4.patch
@@ -0,0 +1,146 @@
+
+Patch from:
+https://github.com/knorrie/python-btrfs/commit/892bc3d8882d62bf91df5de9a11569b6cffec3cd
+
+From 892bc3d8882d62bf91df5de9a11569b6cffec3cd Mon Sep 17 00:00:00 2001
+From: Hans van Kranenburg <hans@knorrie.org>
+Date: Sun, 8 Aug 2021 16:40:41 +0200
+Subject: [PATCH] docs: don't monkey patch for sphinx >= 4
+
+There's a really long existing bug in sphinx that causes it to generate
+cross references in places where it really should not:
+ https://github.com/sphinx-doc/sphinx/issues/2549
+
+In docs/source/conf.py there's a monkey patch for this, from line 363
+and further.
+
+It looks like a fix for this was implemented in v4:
+ https://github.com/sphinx-doc/sphinx/pull/8638/commits
+
+ -$ git tag --contains 918086b5590763663c1627578085e528f1358384
+ v4.0.0
+ [...]
+
+The function that is replaced while applying the workaround has been
+changed recently, causing breakage (TypeError: patched_make_field() got
+an unexpected keyword argument 'inliner').
+
+ -$ git tag --contains 4534d2d1a5755c8cbc9ef4327eab7e34a85a7de8
+ v4.1.0
+ [...]
+
+So, combining this information, it seems that when the major version
+number of the sphinx lib being used is >= 4, the monkey patch part
+should be skipped.
+
+Fixes: https://github.com/knorrie/python-btrfs/issues/31
+--- a/docs/source/conf.py
++++ b/docs/source/conf.py
+@@ -359,54 +359,56 @@ def get_version():
+
+ autodoc_member_order = 'bysource'
+
+-
+-from docutils import nodes
+-from sphinx.util.docfields import TypedField
+-from sphinx import addnodes
+-
+-
+-def patched_make_field(self,
+- types, # type: Dict[unicode, List[nodes.Node]]
+- domain, # type: unicode
+- items, # type: Tuple
+- env=None, # type: BuildEnvironment
+- ):
+- # type: (...) -> nodes.field
+- def handle_item(fieldarg, content):
+- # type: (unicode, unicode) -> nodes.paragraph
+- par = nodes.paragraph()
+- # Adding the next line, and taking out the one after should prevent
+- # ivars from getting incorrect cross-references.
+- par += addnodes.literal_strong('', fieldarg)
+- #par.extend(self.make_xrefs(self.rolename, domain, fieldarg,
+- # addnodes.literal_strong, env=env))
+- if fieldarg in types:
+- par += nodes.Text(' (')
+- # NOTE: using .pop() here to prevent a single type node to be
+- # inserted twice into the doctree, which leads to
+- # inconsistencies later when references are resolved
+- fieldtype = types.pop(fieldarg)
+- if len(fieldtype) == 1 and isinstance(fieldtype[0], nodes.Text):
+- typename = u''.join(n.astext() for n in fieldtype)
+- par.extend(self.make_xrefs(self.typerolename, domain, typename,
+- addnodes.literal_emphasis, env=env))
+- else:
+- par += fieldtype
+- par += nodes.Text(')')
+- par += nodes.Text(' -- ')
+- par += content
+- return par
+-
+- fieldname = nodes.field_name('', self.label)
+- if len(items) == 1 and self.can_collapse:
+- fieldarg, content = items[0]
+- bodynode = handle_item(fieldarg, content)
+- else:
+- bodynode = self.list_type()
+- for fieldarg, content in items:
+- bodynode += nodes.list_item('', handle_item(fieldarg, content))
+- fieldbody = nodes.field_body('', bodynode)
+- return nodes.field('', fieldname, fieldbody)
+-
+-
+-TypedField.make_field = patched_make_field
++import sphinx
++
++if int(sphinx.__version__.split('.')[0]) < 4:
++ from docutils import nodes
++ from sphinx.util.docfields import TypedField
++ from sphinx import addnodes
++
++
++ def patched_make_field(self,
++ types, # type: Dict[unicode, List[nodes.Node]]
++ domain, # type: unicode
++ items, # type: Tuple
++ env=None, # type: BuildEnvironment
++ ):
++ # type: (...) -> nodes.field
++ def handle_item(fieldarg, content):
++ # type: (unicode, unicode) -> nodes.paragraph
++ par = nodes.paragraph()
++ # Adding the next line, and taking out the one after should prevent
++ # ivars from getting incorrect cross-references.
++ par += addnodes.literal_strong('', fieldarg)
++ #par.extend(self.make_xrefs(self.rolename, domain, fieldarg,
++ # addnodes.literal_strong, env=env))
++ if fieldarg in types:
++ par += nodes.Text(' (')
++ # NOTE: using .pop() here to prevent a single type node to be
++ # inserted twice into the doctree, which leads to
++ # inconsistencies later when references are resolved
++ fieldtype = types.pop(fieldarg)
++ if len(fieldtype) == 1 and isinstance(fieldtype[0], nodes.Text):
++ typename = u''.join(n.astext() for n in fieldtype)
++ par.extend(self.make_xrefs(self.typerolename, domain, typename,
++ addnodes.literal_emphasis, env=env))
++ else:
++ par += fieldtype
++ par += nodes.Text(')')
++ par += nodes.Text(' -- ')
++ par += content
++ return par
++
++ fieldname = nodes.field_name('', self.label)
++ if len(items) == 1 and self.can_collapse:
++ fieldarg, content = items[0]
++ bodynode = handle_item(fieldarg, content)
++ else:
++ bodynode = self.list_type()
++ for fieldarg, content in items:
++ bodynode += nodes.list_item('', handle_item(fieldarg, content))
++ fieldbody = nodes.field_body('', bodynode)
++ return nodes.field('', fieldname, fieldbody)
++
++
++ TypedField.make_field = patched_make_field
diff --git a/dev-python/btrfs/files/13-002-show_file_csum-fix-vaddr-computation.patch b/dev-python/btrfs/files/13-002-show_file_csum-fix-vaddr-computation.patch
new file mode 100644
index 000000000000..dcf81c7566de
--- /dev/null
+++ b/dev-python/btrfs/files/13-002-show_file_csum-fix-vaddr-computation.patch
@@ -0,0 +1,27 @@
+
+Patch from:
+https://github.com/knorrie/python-btrfs/commit/8ebe99f77b5e4da38d8e9322bb5a7c4688c98b4a
+
+From 8ebe99f77b5e4da38d8e9322bb5a7c4688c98b4a Mon Sep 17 00:00:00 2001
+From: Cebtenzzre <cebtenzzre@gmail.com>
+Date: Sun, 28 Nov 2021 14:46:39 -0500
+Subject: [PATCH] examples/show_file_csum: Fix vaddr computation
+
+extent.logical_offset is relative to the start of the file, whereas
+extent.offset is relative to the start of the extent data on disk.
+--- a/examples/show_file_csum.py
++++ b/examples/show_file_csum.py
+@@ -90,11 +90,11 @@ def first_regular_file_extent(inum, tree):
+ "inside a data extent at vaddr {}.".format(
+ extent.logical_offset, extent.num_bytes, extent.offset, extent.disk_bytenr))
+
+-vaddr = extent.disk_bytenr + extent.logical_offset
++vaddr = extent.disk_bytenr + extent.offset
+
+ wraprint("Now, we first look up the checksum value for one block ({} bytes) "
+ "of data at vaddr {} ({} + {}).".format(
+- fs.sectorsize, vaddr, extent.disk_bytenr, extent.logical_offset))
++ fs.sectorsize, vaddr, extent.disk_bytenr, extent.offset))
+ wraprint("If we're lucky, the checksum tree has a key at {}. "
+ "If not, we have to try searching back a bit to find the csum object that "
+ "holds information about our data block. Searching back is done in a very clumsy "
diff --git a/dev-python/btrfs/files/13-003-ioctl-fix-documentation-error-in-FeatureFlags.patch b/dev-python/btrfs/files/13-003-ioctl-fix-documentation-error-in-FeatureFlags.patch
new file mode 100644
index 000000000000..24403089bd70
--- /dev/null
+++ b/dev-python/btrfs/files/13-003-ioctl-fix-documentation-error-in-FeatureFlags.patch
@@ -0,0 +1,21 @@
+
+Patch from:
+https://github.com/knorrie/python-btrfs/commit/9f1698ce16b6ae15bf7b3f9f414e9f08dd052b79
+
+From 9f1698ce16b6ae15bf7b3f9f414e9f08dd052b79 Mon Sep 17 00:00:00 2001
+From: Hans van Kranenburg <hans@knorrie.org>
+Date: Sun, 21 May 2023 17:44:15 +0200
+Subject: [PATCH] ioctl: Fix documentation error in FeatureFlags
+
+The free_space_tree flag is located in compat_ro_flags.
+--- a/btrfs/ioctl.py
++++ b/btrfs/ioctl.py
+@@ -1410,7 +1410,7 @@ class FeatureFlags(object):
+ incompat_flags: mixed_backref|default_subvol|compress_lzo|big_metadata|extended_iref
+ >>> features.incompat_flags & btrfs.ioctl.FEATURE_INCOMPAT_MIXED_GROUPS
+ 0
+- >>> features.incompat_flags & btrfs.ioctl.FEATURE_COMPAT_RO_FREE_SPACE_TREE
++ >>> features.compat_ro_flags & btrfs.ioctl.FEATURE_COMPAT_RO_FREE_SPACE_TREE
+ 1
+
+ .. note::
diff --git a/dev-python/btrfs/files/13-004-add-Block-Group-Tree.patch b/dev-python/btrfs/files/13-004-add-Block-Group-Tree.patch
new file mode 100644
index 000000000000..8e21581237bc
--- /dev/null
+++ b/dev-python/btrfs/files/13-004-add-Block-Group-Tree.patch
@@ -0,0 +1,110 @@
+
+Patch from:
+https://github.com/knorrie/python-btrfs/commit/7d8dca5bf1211843d8fd5c02b118afddaa53bee8
+
+From 7d8dca5bf1211843d8fd5c02b118afddaa53bee8 Mon Sep 17 00:00:00 2001
+From: Hans van Kranenburg <hans@knorrie.org>
+Date: Sun, 21 May 2023 17:46:06 +0200
+Subject: [PATCH] WIP ctree,ioctl,utils: Add Block Group Tree
+
+When the block_group_tree feature is enabled on a filesystem, we have to
+look up Block Group metadata items in the new Block Group Tree, instead
+of the Extent Tree, where they always were located before.
+
+WIP: We don't want to call the get_features ioctl *every* time we look
+up 1 block group object, but we also cannot just cache the result of it,
+since some feature flags can change while the fs is mounted.
+
+So, this needs some extra work in the features department first to make
+this more nice.
+--- a/btrfs/ctree.py
++++ b/btrfs/ctree.py
+@@ -91,6 +91,7 @@ def _struct_format(s):
+ QUOTA_TREE_OBJECTID = 8 #: Quota tree
+ UUID_TREE_OBJECTID = 9 #: Subvolume UUID tree
+ FREE_SPACE_TREE_OBJECTID = 10 #: Free space tree
++BLOCK_GROUP_TREE_OBJECTID = 11 #: Block group tree
+
+ DEV_STATS_OBJECTID = 0 #: Object ID of device statistics in the Device tree.
+ BALANCE_OBJECTID = ULL(-4) #: Object ID to store balance status. (-4)
+@@ -346,6 +347,7 @@ def _qgroup_objectid(level, subvid):
+ QUOTA_TREE_OBJECTID: 'QUOTA_TREE',
+ UUID_TREE_OBJECTID: 'UUID_TREE',
+ FREE_SPACE_TREE_OBJECTID: 'FREE_SPACE_TREE',
++ BLOCK_GROUP_TREE_OBJECTID: 'BLOCK_GROUP_TREE',
+ BALANCE_OBJECTID: 'BALANCE',
+ ORPHAN_OBJECTID: 'ORPHAN',
+ TREE_LOG_OBJECTID: 'TREE_LOG',
+@@ -765,6 +767,11 @@ def __init__(self, path):
+ self.fsid = _fs_info.fsid
+ self.nodesize = _fs_info.nodesize
+ self.sectorsize = _fs_info.sectorsize
++ # TEMP cached feature flag for block_group_tree TEMP
++ _features = self.features()
++ self._block_group_tree = self.features().compat_ro_flags & \
++ btrfs.ioctl.FEATURE_COMPAT_RO_BLOCK_GROUP_TREE != 0
++ # TEMP cached feature flag for block_group_tree TEMP
+
+ def __enter__(self):
+ return self
+@@ -870,7 +877,10 @@ def block_group(self, vaddr, length=None):
+ :raises: :class:`ItemNotFoundError` if no Block Group Item can be found
+ at the address.
+ """
+- tree = EXTENT_TREE_OBJECTID
++ if not self._block_group_tree:
++ tree = EXTENT_TREE_OBJECTID
++ else:
++ tree = BLOCK_GROUP_TREE_OBJECTID
+ min_offset = length if length is not None else 0
+ max_offset = length if length is not None else ULLONG_MAX
+ min_key = Key(vaddr, BLOCK_GROUP_ITEM_KEY, min_offset)
+@@ -1240,11 +1250,14 @@ class BlockGroupItem(ItemData):
+ The `Block Group` has a 1 to 1 relationship with a `Chunk` and tracks some
+ usage information about a range of virtual address space.
+
+- * Tree: `EXTENT_TREE_OBJECTID` (2)
++ * Tree: `EXTENT_TREE_OBJECTID` (2) or `BLOCK_GROUP_TREE_OBJECTID` (11)
+ * Key objectid: Virtual address.
+ * Key type: `BLOCK_GROUP_ITEM_KEY` (192)
+ * Key offset: Block Group length.
+
++ If the block_group_tree feature is enabled on the filesystem, these items
++ can be found inside the Block Group Tree instead of the Extent Tree.
++
+ :ivar int vaddr: Virtual address where the Bock Group starts (taken from
+ the objectid field of the item key).
+ :ivar int length: Block Group length in bytes (taken from the offset field
+--- a/btrfs/ioctl.py
++++ b/btrfs/ioctl.py
+@@ -1325,10 +1325,12 @@ def _compat_flags_str(flags):
+
+ FEATURE_COMPAT_RO_FREE_SPACE_TREE = 1 << 0
+ FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID = 1 << 1
++FEATURE_COMPAT_RO_BLOCK_GROUP_TREE = 1 << 3
+
+ _feature_compat_ro_str_map = {
+ FEATURE_COMPAT_RO_FREE_SPACE_TREE: 'free_space_tree',
+ FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID: 'free_space_tree_valid',
++ FEATURE_COMPAT_RO_BLOCK_GROUP_TREE : 'block_group_tree',
+ }
+
+
+@@ -1383,6 +1385,7 @@ class FeatureFlags(object):
+
+ - FEATURE_COMPAT_RO_FREE_SPACE_TREE
+ - FEATURE_COMPAT_RO_FREE_SPACE_TREE_VALID
++ - FEATURE_COMPAT_RO_BLOCK_GROUP_TREE
+
+ Known incompat_flags (available as attribute of this module) are:
+
+--- a/btrfs/utils.py
++++ b/btrfs/utils.py
+@@ -436,6 +436,7 @@ def embedded_text_for_str(text):
+ 'quota': btrfs.ctree.QUOTA_TREE_OBJECTID,
+ 'uuid': btrfs.ctree.UUID_TREE_OBJECTID,
+ 'free_space': btrfs.ctree.FREE_SPACE_TREE_OBJECTID,
++ 'block_group': btrfs.ctree.BLOCK_GROUP_TREE_OBJECTID,
+ 'tree_log': btrfs.ctree.TREE_LOG_OBJECTID,
+ 'tree_log_fixup': btrfs.ctree.TREE_LOG_FIXUP_OBJECTID,
+ 'tree_reloc': btrfs.ctree.TREE_RELOC_OBJECTID,
diff --git a/dev-python/btrfs/files/13-005-ctree-FileSystem-add-block_groups-function.patch b/dev-python/btrfs/files/13-005-ctree-FileSystem-add-block_groups-function.patch
new file mode 100644
index 000000000000..a6aae613a59d
--- /dev/null
+++ b/dev-python/btrfs/files/13-005-ctree-FileSystem-add-block_groups-function.patch
@@ -0,0 +1,58 @@
+
+Patch from:
+https://github.com/knorrie/python-btrfs/commit/be867c10e30b7d8e4d3cfd939a433cc19f362966
+
+From be867c10e30b7d8e4d3cfd939a433cc19f362966 Mon Sep 17 00:00:00 2001
+From: Hans van Kranenburg <hans@knorrie.org>
+Date: Sun, 21 May 2023 18:40:28 +0200
+Subject: [PATCH] WIP ctree: FileSystem: add block_groups function
+
+In the past, I did not really want to add this helper function, since
+it's not just translating some function parameters to another function
+call, but, to get all Block Group objects, we needed to search the Chunk
+tree and get all of them individually. So, to make it more explicit to
+the user of the library that it was a bit weird inefficient process, I
+let the user do that little dance.
+
+Now, with the new Block Group Tree, we can actually just to a cheap
+lookup of a Block Group range! So, well, let's add the convenience
+function now, and let it handle both the old and new case.
+
+Note that the difference in behaviour between error handling for looking
+up a range or a single items stays the same. block_groups(...) will
+return an iterator which has no objects to produce, and block_group(...)
+will throw the ItemNotFoundError.
+--- a/btrfs/ctree.py
++++ b/btrfs/ctree.py
+@@ -866,6 +866,31 @@ def dev_extents(self, min_devid=1, max_devid=ULLONG_MAX):
+ for header, data in btrfs.ioctl.search_v2(self.fd, tree, min_key, max_key):
+ yield DevExtent(header, data)
+
++ def block_groups(self, min_vaddr=0, max_vaddr=ULLONG_MAX, nr_items=None):
++ """
++ :param int min_vaddr: Lowest virtual address to search for.
++ :param int max_vaddr: Highest virtual address to search for.
++ :param int nr_items: Maximum amount of items to return. Defaults to no limit.
++ :returns: Block Group items from the Extent Tree or Block Group Tree
++ :rtype: Iterator[:class:`~btrfs.ctree.BlockGroupItem`]
++ """
++ if not self._block_group_tree:
++ for chunk in self.chunks(min_vaddr, max_vaddr, nr_items):
++ try:
++ yield self.block_group(chunk.vaddr, chunk.length)
++ except btrfs.ctree.ItemNotFoundError:
++ # This is simply to prevent the program from aborting when a block
++ # group is removed in between doing the chunks lookup and the block
++ # group item lookup.
++ pass
++ else:
++ tree = BLOCK_GROUP_TREE_OBJECTID
++ min_key = Key(min_vaddr, BLOCK_GROUP_ITEM_KEY, 0)
++ max_key = Key(max_vaddr, BLOCK_GROUP_ITEM_KEY, ULLONG_MAX)
++ for header, data in btrfs.ioctl.search_v2(self.fd, tree, min_key, max_key,
++ nr_items=nr_items):
++ yield BlockGroupItem(header, data)
++
+ def block_group(self, vaddr, length=None):
+ """
+ :param int vaddr: Starting virtual address of the block group.
diff --git a/dev-python/btrfs/files/13-006-btrfs-search-metadata-use-FileSystem-block_groups.patch b/dev-python/btrfs/files/13-006-btrfs-search-metadata-use-FileSystem-block_groups.patch
new file mode 100644
index 000000000000..286282f73822
--- /dev/null
+++ b/dev-python/btrfs/files/13-006-btrfs-search-metadata-use-FileSystem-block_groups.patch
@@ -0,0 +1,30 @@
+
+Patch from:
+https://github.com/knorrie/python-btrfs/commit/59c8daca3a05f86001b1dc36b2ab2e5961bf7bc0
+
+From 59c8daca3a05f86001b1dc36b2ab2e5961bf7bc0 Mon Sep 17 00:00:00 2001
+From: Hans van Kranenburg <hans@knorrie.org>
+Date: Sun, 21 May 2023 18:48:55 +0200
+Subject: [PATCH] btrfs-search-metadata: use FileSystem block_groups
+
+Now that we have a helper for looking up Block Groups, let's use it, so
+that it can deal with Block Groups in either Extent or Block Group Tree
+automagically.
+--- a/bin/btrfs-search-metadata
++++ b/bin/btrfs-search-metadata
+@@ -37,14 +37,7 @@ def get_chunks(fs, **kwargs):
+
+
+ def get_block_groups(fs, **kwargs):
+- for chunk in fs.chunks():
+- try:
+- yield fs.block_group(chunk.vaddr, chunk.length)
+- except btrfs.ctree.ItemNotFoundError:
+- # This is simply to prevent the program from aborting when a block
+- # group is removed in between doing the chunks lookup and the block
+- # group item lookup.
+- pass
++ return fs.block_groups()
+
+
+ def get_dev_extents(fs, **kwargs):
diff --git a/dev-python/btrfs/metadata.xml b/dev-python/btrfs/metadata.xml
new file mode 100644
index 000000000000..68f705d5ef56
--- /dev/null
+++ b/dev-python/btrfs/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>holger@applied-asynchrony.com</email>
+ <name>Holger Hoffstätte</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 312fd082616e..c335b47e0ea8 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,3 +1,4 @@
DIST cfn-lint-0.77.5.tar.gz 3513226 BLAKE2B edff62682027d87fc4f0934aba83ca1cbd83773fbf85246eecfe1d1908b8ba0f6df413b2dbc8976770f7eefaec78bde1cd7017ed36ffac849687436364a42f2d SHA512 e80231e8539735d0a114c6de81f9c52714a1886dbeb070b78bba3c9dd2798399bbb6eb41b3917b5c826b4d3d571f2d9996a5eeaebd7a48a9b774135fb0966372
DIST cfn-lint-0.77.6.tar.gz 3554363 BLAKE2B abd496cdb72e1032c92a6489da12a4ffb4f83bba994067f9e2d333e55a13ea22d07db880dd3acca208f9b8328c17fe98540cec2847dac32ad87b2662aa0047e4 SHA512 b36c781dbd3294d6f2cfe43f617832170e47c9c9502845a551e6a9263e28dc6de99c77abd998699a2fcb6f08535daff615b17072c3ad1fe9c10853890a71989f
DIST cfn-lint-0.77.7.tar.gz 3554332 BLAKE2B b669b9f97523933eb5549f7b2d67a132aef2236301b24094a0b74e9198d49121d4ec173c99d74b554b77eee2765b4ceb97126f2ccfab121393bc68e34cfb8147 SHA512 124ab4b96963f4971a25535852290ee71b5eed82e85a4101b3aa0469213b1006bfe8ae3d384f1acf236a0fa9915a24999b00f31f0d6ddbedbdaba123bfbb823b
+DIST cfn-lint-0.77.8.tar.gz 3578363 BLAKE2B 33fbc0dd76a025425453bf39da0cd1c9ffc15b057735e2add0a54fe387377824839ab34fb37216db4fe0cc05f60878b4ac828aceecd888d510612d9c44d8473f SHA512 7fc71965d33df29557de996e2ba0e911e681b5d220e69346a26448c1e04f3cd40f7e17b933cde695ad5aa6170d46981834efa19103e50d6690b4d476d13f82ba
diff --git a/dev-python/cfn-lint/cfn-lint-0.77.8.ebuild b/dev-python/cfn-lint/cfn-lint-0.77.8.ebuild
new file mode 100644
index 000000000000..fd044b24f9ef
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-0.77.8.ebuild
@@ -0,0 +1,64 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="CloudFormation Linter"
+HOMEPAGE="
+ https://github.com/aws-cloudformation/cfn-lint/
+ https://pypi.org/project/cfn-lint/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ >=dev-python/aws-sam-translator-1.68.0[${PYTHON_USEDEP}]
+ dev-python/jsonpatch[${PYTHON_USEDEP}]
+ >=dev-python/jschema_to_python-1.2.3[${PYTHON_USEDEP}]
+ >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
+ dev-python/junit-xml[${PYTHON_USEDEP}]
+ <dev-python/networkx-4[${PYTHON_USEDEP}]
+ >dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.15.0[${PYTHON_USEDEP}]
+ dev-python/regex[${PYTHON_USEDEP}]
+ >=dev-python/sarif_om-1.0.4[${PYTHON_USEDEP}]
+ >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin the deps
+ sed -e 's:~=[0-9.]*::' -i setup.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ test/unit/module/test_template.py::TestTemplate::test_build_graph
+ # requires git repo
+ test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
+ # Internet
+ test/unit/module/formatters/test_formatters.py::TestFormatters::test_sarif_formatter
+ test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_3
+ # TODO: it looks as if AWS_DEFAULT_REGION didn't work
+ test/unit/module/core/test_run_cli.py::TestCli::test_bad_config
+ test/unit/module/core/test_run_cli.py::TestCli::test_override_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_positional_template_parameters
+ test/unit/module/core/test_run_cli.py::TestCli::test_template_config
+ )
+
+ # from tox.ini
+ local -x AWS_DEFAULT_REGION=us-east-1
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/clang-python/clang-python-16.0.6.9999.ebuild b/dev-python/clang-python/clang-python-16.0.6.9999.ebuild
deleted file mode 100644
index f37802f5c2d7..000000000000
--- a/dev-python/clang-python/clang-python-16.0.6.9999.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-PYTHON_COMPAT=( python3_{7,8,9,10,11} )
-inherit llvm.org python-r1
-
-DESCRIPTION="Python bindings for sys-devel/clang"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-KEYWORDS=""
-IUSE="test"
-RESTRICT="!test? ( test )"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-# The module is opening libclang.so directly, and doing some blasphemy
-# on top of it.
-DEPEND="
- >=sys-devel/clang-${PV}:*
- !sys-devel/llvm:0[clang(-),python(-)]
- !sys-devel/clang:0[python(-)]
-"
-RDEPEND="
- ${DEPEND}
- ${PYTHON_DEPS}
-"
-BDEPEND="
- ${PYTHON_DEPS}
- test? (
- sys-devel/clang:${LLVM_MAJOR}
- )
-"
-
-LLVM_COMPONENTS=( clang/bindings/python )
-llvm.org_set_globals
-
-python_test() {
- # tests rely on results from a specific clang version, so override
- # the search path
- local -x CLANG_LIBRARY_PATH=${BROOT}/usr/lib/llvm/${LLVM_MAJOR}/$(get_libdir)
- local -x CLANG_NO_DEFAULT_CONFIG=1
- "${EPYTHON}" -m unittest discover -v || die "Tests fail with ${EPYTHON}"
-}
-
-src_test() {
- python_foreach_impl python_test
-}
-
-src_install() {
- python_foreach_impl python_domodule clang
-}
diff --git a/dev-python/contourpy/Manifest b/dev-python/contourpy/Manifest
index a2d531ec61a7..c59d847716eb 100644
--- a/dev-python/contourpy/Manifest
+++ b/dev-python/contourpy/Manifest
@@ -1 +1,2 @@
DIST contourpy-1.0.7.gh.tar.gz 13357940 BLAKE2B 740214d68eb95c2d80dfb4008fbf82ae1bbd7135476a7f1a45863e2fd88331c959e80dd56afde67789e95325fe4613a6404c24d4deafebacfabbdebc0b199dfe SHA512 64edcfc911b3d7af9b422058d1f595c05d64f7fca8511ea199d30fa52854aee53a7c7dd95e2f47964f57e7764ce6b7b05c8ccee5ed0309eb5daa822d488ce0ff
+DIST contourpy-1.1.0.gh.tar.gz 13413711 BLAKE2B 020bf7f63dbe304e71b66249cdfa86047598a3f8352657f7c179bc068869bf7659fb7c821749a0be33a8a04ec02dc642ac7a9ed14f5fd73d4a1e9f20c3606ee2 SHA512 aeb60db039aa14aed29a31dcf6091708daf7e65589964dd7682dc28e085d584103abb872e607685408eaefd4947adeba966c9a0d93cb1f827805189e498c67d8
diff --git a/dev-python/contourpy/contourpy-1.1.0.ebuild b/dev-python/contourpy/contourpy-1.1.0.ebuild
new file mode 100644
index 000000000000..4000ca8db338
--- /dev/null
+++ b/dev-python/contourpy/contourpy-1.1.0.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1
+
+DESCRIPTION="Python library for calculating contours in 2D quadrilateral grids"
+HOMEPAGE="
+ https://pypi.org/project/contourpy/
+ https://github.com/contourpy/contourpy/
+"
+SRC_URI="
+ https://github.com/contourpy/contourpy/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ >=dev-python/numpy-1.16[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ >=dev-python/pybind11-2.6[${PYTHON_USEDEP}]
+ test? (
+ dev-python/matplotlib[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/wurlitzer[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_IGNORE=(
+ # linters
+ tests/test_codebase.py
+ )
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/google-auth/Manifest b/dev-python/google-auth/Manifest
index ece7dc22db47..7d797b35a71a 100644
--- a/dev-python/google-auth/Manifest
+++ b/dev-python/google-auth/Manifest
@@ -1,2 +1,3 @@
DIST google-auth-2.18.1.tar.gz 224714 BLAKE2B 2fa63ed18d4dfa4940c93e5f3fb099a6892a16148e5161c3e52980cdee80b7b153a60c005bd3d1d856476f85678b88315d3f4b639f693d292abbf8133dee9397 SHA512 34e53a1c0cf42ab600281d815f259bb252987f163925e357dc2e636c945fd4b74c1f4168bf7d90a6e352fe1d7343767b68bf94fdbb1bc90a92c7067b0e2f2f8f
DIST google-auth-2.19.1.tar.gz 230290 BLAKE2B c7f76e1bd936d4d76c81e19fbf6bb50dfe700666d8eb234f762253547fd670d1d26a97a7fe4457bdb719712d32e28e3c8f9adc82c475ee6830f5fd2af994bb3a SHA512 8a8106abb1a0966254caa2e568fe9a9c887601b19e5309f4d43e1b07f3e3280ad358cf8999e34719d6f23473b263d128a2d0321f0ff184c4e188b0b5cf88a6ee
+DIST google-auth-2.20.0.tar.gz 229669 BLAKE2B 547cb99cb72a4a5b224fdfff2bf156effe1cce5d7b4316b16530b1a3bbe50ab24dc54520fce3206fb2cea3fde1ca0c35f7bf5920e5128a5ed1bed13883fc75e5 SHA512 e13471f4452bd5c69c2ca9d1ff145431b160805e4ab2d3a70c35cad78c6e3e4f4bc789dfe99f55a0e60e5f335f9983529eabbfb0fc50794b62dfa7eeb70882b1
diff --git a/dev-python/google-auth/files/google-auth-2.20.0-urllib3-2.patch b/dev-python/google-auth/files/google-auth-2.20.0-urllib3-2.patch
new file mode 100644
index 000000000000..791edeed09cf
--- /dev/null
+++ b/dev-python/google-auth/files/google-auth-2.20.0-urllib3-2.patch
@@ -0,0 +1,68 @@
+From 9ed006d02d7c9de3e6898ee819648c2fd3367c1d Mon Sep 17 00:00:00 2001
+From: Daniel Garcia Moreno <daniel.garcia@suse.com>
+Date: Wed, 10 May 2023 09:18:57 +0200
+Subject: [PATCH] Support urllib3 >= 2.0.0
+
+The urllib3.request.RequestMethods has been moved to
+urllib3._request_methods.RequestMethods.
+
+This patch changes the usage to continue working with the latest
+release, but now it's a "private" class in a "private" module, so maybe
+it's worth to start to think about updating this code to use the public
+API.
+
+https://urllib3.readthedocs.io/en/stable/changelog.html#removed
+---
+ google/auth/transport/urllib3.py | 11 ++++++-----
+ setup.py | 2 +-
+ 2 files changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/google/auth/transport/urllib3.py b/google/auth/transport/urllib3.py
+index 4abc26b52..f1dd35320 100644
+--- a/google/auth/transport/urllib3.py
++++ b/google/auth/transport/urllib3.py
+@@ -95,8 +95,8 @@ class Request(transport.Request):
+ credentials.refresh(request)
+
+ Args:
+- http (urllib3.request.RequestMethods): An instance of any urllib3
+- class that implements :class:`~urllib3.request.RequestMethods`,
++ http (urllib3._request_methods.RequestMethods): An instance of any urllib3
++ class that implements :class:`~urllib3._request_methods.RequestMethods`,
+ usually :class:`urllib3.PoolManager`.
+
+ .. automethod:: __call__
+@@ -184,7 +184,7 @@ def _make_mutual_tls_http(cert, key):
+ return http
+
+
+-class AuthorizedHttp(urllib3.request.RequestMethods):
++class AuthorizedHttp(urllib3._request_methods.RequestMethods):
+ """A urllib3 HTTP class with credentials.
+
+ This class is used to perform requests to API endpoints that require
+@@ -197,8 +197,9 @@ class AuthorizedHttp(urllib3.request.RequestMethods):
+ response = authed_http.request(
+ 'GET', 'https://www.googleapis.com/storage/v1/b')
+
+- This class implements :class:`urllib3.request.RequestMethods` and can be
+- used just like any other :class:`urllib3.PoolManager`.
++ This class implements
++ :class:`urllib3._request_methods.RequestMethods` and can be used
++ just like any other :class:`urllib3.PoolManager`.
+
+ The underlying :meth:`urlopen` implementation handles adding the
+ credentials' headers to the request and refreshing credentials as needed.
+diff --git a/setup.py b/setup.py
+index e45512a02..cfb3b504f 100644
+--- a/setup.py
++++ b/setup.py
+@@ -29,7 +29,7 @@
+ # install enum34 to support 2.7. enum34 only works up to python version 3.3.
+ 'enum34>=1.1.10; python_version < "3.4"',
+ "six>=1.9.0",
+- "urllib3<2.0",
++ "urllib3>=2.0",
+ )
+
+ extras = {
diff --git a/dev-python/google-auth/google-auth-2.20.0.ebuild b/dev-python/google-auth/google-auth-2.20.0.ebuild
new file mode 100644
index 000000000000..20b132312687
--- /dev/null
+++ b/dev-python/google-auth/google-auth-2.20.0.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google Authentication Library"
+HOMEPAGE="
+ https://github.com/googleapis/google-auth-library-python/
+ https://pypi.org/project/google-auth/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/cachetools-6.0.0[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.1.7[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-modules-0.2.1[${PYTHON_USEDEP}]
+ >=dev-python/rsa-3.1.4[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ !dev-python/namespace-google
+"
+BDEPEND="
+ test? (
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/flask[${PYTHON_USEDEP}]
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/grpcio[${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/moto[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/pytest-localserver[${PYTHON_USEDEP}]
+ dev-python/pyu2f[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/responses[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-2[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/googleapis/google-auth-library-python/pull/1290
+ "${FILESDIR}"/google-auth-2.20.0-urllib3-2.patch
+)
+
+EPYTEST_IGNORE=(
+ # these are compatibility tests with oauth2client
+ # disable them to unblock removal of that package
+ tests/test__oauth2client.py
+)
+
+python_compile() {
+ distutils-r1_python_compile
+ find "${BUILD_DIR}" -name '*.pth' -delete || die
+}
diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest
index a11d7c268c91..e9da2ac43cac 100644
--- a/dev-python/langdetect/Manifest
+++ b/dev-python/langdetect/Manifest
@@ -1 +1,3 @@
DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db
+EBUILD langdetect-1.0.9.ebuild 493 BLAKE2B 0df8bce19bc80f79f8e76bcef5a4c2caf333365fe0cb9a3c076b7858bceded5a3e58921474f866a2709dd657b7ed330c1ec4a7f9d7bab0fcf1bc92d77cabc32d SHA512 ea2a1adcb133ac5fc951ba1aa90ef1ce3dfcc424e59727591763d4875aa044a74188be2d15fd89c6b2e83ed6ea04ec3d9851ed584ae79d2c2c127bde7d994b48
+MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45
diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml
index ddb5b0f1787e..020e07f2a3dd 100644
--- a/dev-python/langdetect/metadata.xml
+++ b/dev-python/langdetect/metadata.xml
@@ -2,9 +2,11 @@
<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
- <email>cyber+gentoo@sysrq.in</email>
- <name>Anna</name>
+ <email>marcin.deranek@slonko.net</email>
+ <name>Marcin Deranek</name>
</maintainer>
-
- <origin>gentoo-guru-overlay</origin>
+ <upstream>
+ <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to>
+ </upstream>
+ <origin>slonko-overlay</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/lit/lit-16.0.6.9999.ebuild b/dev-python/lit/lit-16.0.6.9999.ebuild
deleted file mode 100644
index 0e39fac626c6..000000000000
--- a/dev-python/lit/lit-16.0.6.9999.ebuild
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{7,8,9,10,11} )
-
-inherit distutils-r1 llvm.org
-
-DESCRIPTION="A stand-alone install of the LLVM suite testing tool"
-HOMEPAGE="https://llvm.org/"
-
-LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA"
-SLOT="0"
-KEYWORDS=""
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-# Tests require 'FileCheck' and 'not' utilities (from llvm)
-BDEPEND="
- test? (
- dev-python/psutil[${PYTHON_USEDEP}]
- sys-devel/llvm
- )
-"
-
-LLVM_COMPONENTS=( llvm/utils/lit )
-llvm.org_set_globals
-
-# TODO: move the manpage generation here (from sys-devel/llvm)
-
-src_prepare() {
- cd "${WORKDIR}" || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local -x LIT_PRESERVES_TMP=1
- local litflags=$(get_lit_flags)
- ./lit.py ${litflags//;/ } tests || die
-}
diff --git a/dev-python/myst-parser/Manifest b/dev-python/myst-parser/Manifest
index d84d8effec89..e38139a2230b 100644
--- a/dev-python/myst-parser/Manifest
+++ b/dev-python/myst-parser/Manifest
@@ -1 +1,2 @@
DIST MyST-Parser-1.0.0.gh.tar.gz 813309 BLAKE2B 03bc080e0a5103b9fb239cfbea991012b1fb5f411a5a6a121b2113ad7172a1130bf8b77d20ce84a8aade4148ffba36788eb95b15ecd28c53ed321226ae8600f2 SHA512 1f0ecffd2c84b0db5d251dbc771457cdf52a8e6e540d3acde563115af24ce30d43e01223f172b3e72b2c81862052bb05ea5d7c6091f933afbda0a859d1b86e83
+DIST MyST-Parser-2.0.0.gh.tar.gz 815453 BLAKE2B 8f5dd823c3c79d843b45a7a4819d5677b51a12f78db2c1ce9700eb6faa8c4f0bc167fb1d8cd947e89ffab85aec947ab527b67dc73ef4db97a393f700a4331738 SHA512 c47bdd773565e93c4714d318a70f9a8adab1be6e2a63c23175667fc4afb5da4d66b84e11176782c8202e9fd68883e74d444911ddfb0b91356c2ba07fa65f7ea4
diff --git a/dev-python/myst-parser/myst-parser-2.0.0.ebuild b/dev-python/myst-parser/myst-parser-2.0.0.ebuild
new file mode 100644
index 000000000000..1719b6f174d4
--- /dev/null
+++ b/dev-python/myst-parser/myst-parser-2.0.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 2022-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{7,8,9,10,11} pypy3 )
+
+inherit distutils-r1
+
+MY_P=MyST-Parser-${PV}
+DESCRIPTION="Extended commonmark compliant parser, with bridges to Sphinx"
+HOMEPAGE="
+ https://github.com/executablebooks/MyST-Parser/
+ https://pypi.org/project/myst-parser/
+"
+SRC_URI="
+ https://github.com/executablebooks/MyST-Parser/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ <dev-python/docutils-0.21[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ <dev-python/markdown-it-py-4[${PYTHON_USEDEP}]
+ >=dev-python/markdown-it-py-3.0[${PYTHON_USEDEP}]
+ <dev-python/mdit-py-plugins-0.5[${PYTHON_USEDEP}]
+ >=dev-python/mdit-py-plugins-0.4[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ <dev-python/sphinx-8[${PYTHON_USEDEP}]
+ >=dev-python/sphinx-6[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ <dev-python/linkify-it-py-3[${PYTHON_USEDEP}]
+ >=dev-python/linkify-it-py-2.0.0[${PYTHON_USEDEP}]
+ dev-python/pytest-regressions[${PYTHON_USEDEP}]
+ dev-python/pytest-param-files[${PYTHON_USEDEP}]
+ dev-python/sphinx-pytest[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ false && [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=(
+ # bad test relying on exact exception messages
+ "tests/test_renderers/test_include_directive.py::test_errors[9-Non-existent path:]"
+ )
+
+ epytest
+}
diff --git a/dev-python/phonenumbers/Manifest b/dev-python/phonenumbers/Manifest
index f96324e015f4..456db9e94472 100644
--- a/dev-python/phonenumbers/Manifest
+++ b/dev-python/phonenumbers/Manifest
@@ -1,2 +1,3 @@
DIST python-phonenumbers-8.13.11.gh.tar.gz 4910723 BLAKE2B 270ded8f0c009feb0ffe70bdcec089f400d1ea18ae24e3837b8f3a659657b82fb5912577eba22cb7c28a297dcbb55d402213c576857c514eb08c241af8bc1e4e SHA512 688b5440538cd6d636b645474dff51e4ba9a080708e4d3a9bdd5560701a9effbb26b9a669c632917101ea2e27a6f2ebe1f468fc0a881625ef33a4e30885ae30b
DIST python-phonenumbers-8.13.13.gh.tar.gz 4912623 BLAKE2B 7b030b15861150564dbc640d3ee40f8db360b79427d5ca6ebd33ff350cde2505c592455722463e94a609b4487a6908b9a5359059b83a3a4fe4212483bbf9f2fe SHA512 fe2e2aae730b5df6f1b150d45b6e3cb5225327b653243fece186d22b1f4685d796f91c3dc462d3c2239d976b249d4756590f72c8ff4d007826e46b86f0acc36e
+DIST python-phonenumbers-8.13.14.gh.tar.gz 4912846 BLAKE2B 0d4bc37280e863a97a4b235db6c8ab2681bf4aac1ec18a7c6f4505ddf0143fd97685772c554e8270f6243e5a80548b0b0005ef27073f7d16f88a56442c0862aa SHA512 c6e07538f6a5c61f2d8d2bbbf26722af3548eff5aadd0b35898ad7eee62be010bca0386494b77cfcdcff414bafdb382d52944996d2b4a539c0ff3a572bf8d675
diff --git a/dev-python/phonenumbers/phonenumbers-8.13.14.ebuild b/dev-python/phonenumbers/phonenumbers-8.13.14.ebuild
new file mode 100644
index 000000000000..4ef52501be16
--- /dev/null
+++ b/dev-python/phonenumbers/phonenumbers-8.13.14.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{7,8,9,10,11} )
+
+inherit distutils-r1
+
+MY_P=python-${P}
+DESCRIPTION="Python port of Google's libphonenumber"
+HOMEPAGE="
+ https://github.com/daviddrysdale/python-phonenumbers/
+ https://pypi.org/project/phonenumbers/
+"
+SRC_URI="
+ https://github.com/daviddrysdale/python-phonenumbers/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}/python
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ dev-python/protobuf-python[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( ../README.md )
+
+python_test() {
+ "${EPYTHON}" testwrapper.py -v || die "Tests failed with ${EPYTHON}"
+}