dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.15.0[${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/Manifest b/dev-python/clang-python/Manifest
index c1826fcf9ddf..9135f9a04091 100644
--- a/dev-python/clang-python/Manifest
+++ b/dev-python/clang-python/Manifest
@@ -5,11 +5,14 @@ DIST llvm-project-15.0.7.src.tar.xz 110936452 BLAKE2B f3d277e2029157329e5be78b78
DIST llvm-project-15.0.7.src.tar.xz.sig 566 BLAKE2B 47dc8c82d86237b80c6d85f83a6c9a6e9e174cf8e7f367b071e0cd9481d7cd408e991337c5624e07f3f370f26387c814f212808575ed1c1b58404d3e3836b7df SHA512 fc6891b440dd1175eb8df3790590af8d36bc92301660f84744ae15123475aeb900a151e6a8e7998ded27ec4d86871903ad0b89cd61164943054c2e3bc8d8beb2
DIST llvm-project-16.0.0.src.tar.xz 117933476 BLAKE2B fa09cd8f647ce0daf5a7eae9ac03b99594a9b3193b12065f43f9a6731875243f2f5b354136bcadcb31622b246054e94f880eec3dab0bcd6ae89973fa9dca845c SHA512 3f040abc1b03205693824aeff2ee6efb0cff25fe04bd5265141c093f294655a1f3fcda73cab9c57cbed7523c8f186a7e2484afce0792c55e90e3fb80450fabb7
DIST llvm-project-16.0.0.src.tar.xz.sig 566 BLAKE2B daba130aa5662fbf7cc2e7aa8fa6b64f9cb355a72330f7a01a21b86389c6f2f85ae93de19ff08ba3f1cfe2834d9a2b7648bdf659caba3afdb2a0d13984774a54 SHA512 38e2449dce20cfbf813d1a9a68b36807722ac8ebb5ee07360fa215b2de8534d2329d3e41cfc3ed33e59e36714b94a6683a6d8077950bcf0037973492e0820fb3
+DIST llvm-project-16.0.1.src.tar.xz 117990772 BLAKE2B 298189ce6d7245711e5bd3e03fa74d603dda5a458463ca0cb261fe6949290c46a70abbd1ad1c556e08da3adc5df577305e267c1135214b900d78502e39b46bc5 SHA512 98fc11c0ad90d5e5a2cb123b497b89a1583fe7f91b3ff05c335037801ef66cbfab08f6d2eff539f0da238e9685d4bc7a9fb2578e28864fc9e9357b84129cefaa
+DIST llvm-project-16.0.1.src.tar.xz.sig 566 BLAKE2B 06c03d789e63ab30bba4c56ba9ec91400d804448482d6a7fd395252b3b9166a5ee7a42a94c2074aa0d1809a3327f993d8932211f3fc05ad281db64c17b2a7094 SHA512 f42db28eb8280db06b1c78fa7a7aaea3a79499cecee1a64ce18c49b90c755b3a78fc93f01d1855887c7918ccc927c3b6147cfc916520f05d4cef65381ca6fe60
DIST llvm-project-4bf004e07e2b9d6e04e3f33e1b02628c679de664.tar.gz 180304467 BLAKE2B 6750855453b575eb8fcc861d5b24b144497bba62df9b9292ac586cf340e04b2b58290fe9df6d89142f29b56aa37ddeb3bd11cc3337e4dc985a4487954d1e2ffa SHA512 d8a87064ba0f92967df019e9345222b87cda81852a9599902cedc4a49ec7d9e2175c972b7fa6d19920489c1d309822f9c31c23bdce0376a8d40c71d57bcd5068
EBUILD clang-python-14.0.6.ebuild 956 BLAKE2B 0452806a0baf8641d44d86c91b95958fe3bdef74fe62c32e6cb90c90ee8718c61fe9649d2f9ac17b127d65c64cba9093adee742f455be720ca2bf558131cee05 SHA512 5179df9990802cfcedcd59b8a38a6198cdfddb511fb872872c2e4cfc95531f114acb6bb43395c74659c6b46a42da32213e8312e2ed71b6e317a7270a12cfa214
EBUILD clang-python-15.0.7.ebuild 1202 BLAKE2B b655ab7b2fa3a5334666e42d36e1e7773be8910f5a47fe8792be04fafbc0c9889cf74d5ca4671863b5244b874133bb353feb4b1ac119e52486ac18d3ff7c6760 SHA512 eb99a86e826ff46d78e1f97a7db1c867e0fc4c9d0036de31407d83dc4de1b8cf80e36ba186d6d8a825209bbb4312d7120b96cbf59d6cb5cf598a3ffb754bf75d
-EBUILD clang-python-16.0.0.9999.ebuild 1181 BLAKE2B 2628ec06a37f501d0fbe285ec294050a999816997028b0813cd68cabab97139abb229688fcdd9d496a4c045fb55907ffbe9f9861ec5cc34d41bba64f8affee89 SHA512 4df861292429fe4bdce21f387db7051172950ece21607fda3a2b11504ae93f7b301a526b2bf44c38e092d046fd6c6542a4169f641731d6197d15b45198d51089
EBUILD clang-python-16.0.0.ebuild 1204 BLAKE2B 7147fb79338449b0a955f7f5010e8fdba34848f9fb84b9df9ceefbcc9c1829def49d7157054ef2f707225d2bff673b67d37b82b2fb373b75355583a205db6b50 SHA512 e99332305557a698a231391bad9ba6c1677c7cf13ab64d9c79e6900029f373face1b89acc55321305b12ab6cd70b946609d6352318467c0c11ea1c5d2efff425
+EBUILD clang-python-16.0.1.ebuild 1204 BLAKE2B 7147fb79338449b0a955f7f5010e8fdba34848f9fb84b9df9ceefbcc9c1829def49d7157054ef2f707225d2bff673b67d37b82b2fb373b75355583a205db6b50 SHA512 e99332305557a698a231391bad9ba6c1677c7cf13ab64d9c79e6900029f373face1b89acc55321305b12ab6cd70b946609d6352318467c0c11ea1c5d2efff425
+EBUILD clang-python-16.0.2.9999.ebuild 1181 BLAKE2B 2628ec06a37f501d0fbe285ec294050a999816997028b0813cd68cabab97139abb229688fcdd9d496a4c045fb55907ffbe9f9861ec5cc34d41bba64f8affee89 SHA512 4df861292429fe4bdce21f387db7051172950ece21607fda3a2b11504ae93f7b301a526b2bf44c38e092d046fd6c6542a4169f641731d6197d15b45198d51089
EBUILD clang-python-17.0.0.9999.ebuild 1181 BLAKE2B 2628ec06a37f501d0fbe285ec294050a999816997028b0813cd68cabab97139abb229688fcdd9d496a4c045fb55907ffbe9f9861ec5cc34d41bba64f8affee89 SHA512 4df861292429fe4bdce21f387db7051172950ece21607fda3a2b11504ae93f7b301a526b2bf44c38e092d046fd6c6542a4169f641731d6197d15b45198d51089
EBUILD clang-python-17.0.0_pre20230314.ebuild 1181 BLAKE2B 2628ec06a37f501d0fbe285ec294050a999816997028b0813cd68cabab97139abb229688fcdd9d496a4c045fb55907ffbe9f9861ec5cc34d41bba64f8affee89 SHA512 4df861292429fe4bdce21f387db7051172950ece21607fda3a2b11504ae93f7b301a526b2bf44c38e092d046fd6c6542a4169f641731d6197d15b45198d51089
EBUILD clang-python-17.0.0_pre20230325.ebuild 1181 BLAKE2B 2628ec06a37f501d0fbe285ec294050a999816997028b0813cd68cabab97139abb229688fcdd9d496a4c045fb55907ffbe9f9861ec5cc34d41bba64f8affee89 SHA512 4df861292429fe4bdce21f387db7051172950ece21607fda3a2b11504ae93f7b301a526b2bf44c38e092d046fd6c6542a4169f641731d6197d15b45198d51089
diff --git a/dev-python/clang-python/clang-python-16.0.1.ebuild b/dev-python/clang-python/clang-python-16.0.1.ebuild
new file mode 100644
index 000000000000..83f4d804e310
--- /dev/null
+++ b/dev-python/clang-python/clang-python-16.0.1.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..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="~amd64 ~arm ~arm64 ~x86"
+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/clang-python/clang-python-16.0.0.9999.ebuild b/dev-python/clang-python/clang-python-16.0.2.9999.ebuild
similarity index 100%
rename from dev-python/clang-python/clang-python-16.0.0.9999.ebuild
rename to dev-python/clang-python/clang-python-16.0.2.9999.ebuild
diff --git a/dev-python/configshell-fb/Manifest b/dev-python/configshell-fb/Manifest
index 15b45e9b01f2..b4fa6f2d51d8 100644
--- a/dev-python/configshell-fb/Manifest
+++ b/dev-python/configshell-fb/Manifest
@@ -1,7 +1,5 @@
DIST configshell-fb-1.1.29-replace-getargspec-1.patch 1398 BLAKE2B 650efe1dad551ad040001cb2f576311806d329bd430874e1dac38a5cb94c4801140f32b628e0089809214466613e8f207ba3aff1a87dd8ca29c05593b551e5d7 SHA512 59c320939d4590dc2933de7d0ad613efd7236868fd898ce1edadbc55d1ecd8667e28a5c03caa80ea12420db3dd0e4de8c36ef5528352920d98acfd881648154a
DIST configshell-fb-1.1.29-replace-getargspec-2.patch 2981 BLAKE2B 88400de96d329c0efd2a9e9cb41f1c53e62c28507439c405874726fccc6093d5fe37e52b6e4b811bf0ccc7616c9a26b83b17e39a257aeab3c4114e1486a32575 SHA512 621b125cde9fcc68f46a3a32fd78190a46f900ec808233a60c4beb22c6109165f0743a341991e6c556dc5a76b7c6a42b703f2a6be91915110f196845a3fa111c
DIST configshell-fb-1.1.29.gh.tar.gz 33192 BLAKE2B 6c9c2146a597572675611afe259122b0ec9614295c4b9b4056d7a16f35004700b1e6fc29e1bf868d9ba6291b781ca35eab77e8adf23c6d23e09de2fb94626f26 SHA512 1b5f573506317119d2420e415abbb856692caa65a7f407f741300eec302d1b442e29d2691f6a192b202b2a5731a7a179d1b03f6cd27780876194d97e4df5f7d0
-DIST configshell-fb-1.1.29.tar.gz 55036 BLAKE2B 4a9a8f2573b43a9c8ddbda837e831c96b221f4499acb1aeeb990a7b1050c5572e9b745857ac9d1de4089d1758dd1284d0555da524def80e0a1caac18bb43a921 SHA512 0d7663cf58431c8b0be5618e5ef454838489e11a3074e5bd63145c3ea965065e37f1a41b5775363a35498a4d5dd86ad5453feb58dd74853cd77ae196b44c658e
-EBUILD configshell-fb-1.1.29-r2.ebuild 1576 BLAKE2B 374faa16da256396c8014616f891b4524ea04bb4a696c3a2c90fe4193cb288aa2c0147706ff5a5a123d9387e56e4ab5f1eb29cd8addba6addd855f6c5f3b7846 SHA512 32861fa005be44f208174348cf0d41fcc6a69674bbff98bf8f33c07662d5e49f894c15a47a615afc3707f75ca007ebb8e5a6cce7165285a2aa9e95dc1a7b2713
-EBUILD configshell-fb-1.1.29.ebuild 573 BLAKE2B c9183cc98b502edf3b278ddadc6cb9d6a7e7336216600c5d8a1147d17dd98b40cb4548a390f5cbba84e7ef131b59d1a69af8bdb77eb4d7a48a935aa7378c3ae2 SHA512 76c285e343031bc6930d23e21612faf912b8b7d87b0f4de1de7d3004000020ae1a7ecf42e8b3e0ab9d83689811437bbe2b2e79c231526cd038283c0730f75f14
+EBUILD configshell-fb-1.1.29-r2.ebuild 1569 BLAKE2B 91663aab642a192425d862f367bc0d307a12063dff5fb4b4a51e2f9dfe9ddf13cfffd73d05a723ce8f0c6d5a6bd54cd473d046830b7540499355835e758c454a SHA512 22b7344090c635bf138e8deb0c8a5c0c00b3b68fd213c0f0eb26674693c14962a321d8fab333af53626e098c43a3b8bf77e45b3fb7a2a651b3f6f4a6ac8fa66a
MISC metadata.xml 789 BLAKE2B fc1e6e767a4b869c7cfade0a030133a746acdea98b9991740eb82a74f82eb29d495807682a1d521667162ba39a68c966c78ff1e39338d1273d173915e6401a61 SHA512 76a628ddb64f2ce5e0fa09faef29cb7b643e03cee337b9b3554d3a6ac3873be64b8fc66067c93087938e71473f0e2ae3af0a50f0a3b19195b87d69680ded5cd8
diff --git a/dev-python/configshell-fb/configshell-fb-1.1.29-r2.ebuild b/dev-python/configshell-fb/configshell-fb-1.1.29-r2.ebuild
index c1efcb33a256..3bad960c4654 100644
--- a/dev-python/configshell-fb/configshell-fb-1.1.29-r2.ebuild
+++ b/dev-python/configshell-fb/configshell-fb-1.1.29-r2.ebuild
@@ -23,7 +23,7 @@ SRC_URI="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
RDEPEND="
dev-python/pyparsing[${PYTHON_USEDEP}]
diff --git a/dev-python/configshell-fb/configshell-fb-1.1.29.ebuild b/dev-python/configshell-fb/configshell-fb-1.1.29.ebuild
deleted file mode 100644
index f0dda5939ec2..000000000000
--- a/dev-python/configshell-fb/configshell-fb-1.1.29.ebuild
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-PYTHON_COMPAT=( python3_{9..10} )
-inherit distutils-r1
-
-DESCRIPTION="A Python library for building configuration shells"
-HOMEPAGE="https://github.com/open-iscsi/configshell-fb"
-SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~ia64 ~loong ~mips ppc ppc64 ~riscv sparc x86"
-
-RDEPEND="dev-python/pyparsing[${PYTHON_USEDEP}]
- dev-python/six[${PYTHON_USEDEP}]
- dev-python/urwid[${PYTHON_USEDEP}]"
diff --git a/dev-python/confuse/Manifest b/dev-python/confuse/Manifest
index 00874ba9ffbf..a38c9e67e116 100644
--- a/dev-python/confuse/Manifest
+++ b/dev-python/confuse/Manifest
@@ -1,3 +1,5 @@
DIST confuse-2.0.0.gh.tar.gz 48269 BLAKE2B 58b96ab65da7b48236b798ad5546a72f0f74934c42525b26b44c0aad08ba4de385dbc2dd6915a4b570b1c4e59003e23119f0da80cf84b1bbc88abb9f72d4d8b1 SHA512 53732ef24903bc464f4cda0c9a2728814ff286c2e2a2150b4703b61f925d5bf77d75b98469a4fb92267caeec736e51d33285264f3fd8daa4adaaf23fa9511733
+DIST confuse-2.0.1.tar.gz 50872 BLAKE2B fc28d6109abec7a233ade85de35ba10264261eb37367fbfa7b6719399cedffc87da3c0bb563b8d9524551cf11ff679896e0a8cc123e08f5291c40d04ffcfe314 SHA512 fe9e17d3b321079290fa2c7db64cd5664db11f1277fe608cf5a1419254b83eee9bc169e34631a429ab1bf47779ea709156b8310a97e65fae32a20802b379fa76
EBUILD confuse-2.0.0.ebuild 641 BLAKE2B 394c6c58a66d43ca5355c8cc4caa4869293e7e5a1a30bdd04c617cf90d6586bd133c0ea4dfe7a4547041f4e4bb4de7d21edd779f0c07e20cbabdc904b5a0dc3c SHA512 863d669582ee0a7ab6e3d14ff6d949ed1a0223daa0da5e43826a283edb0c4588cc51a92b9b80fe01dda6c53a9f3458a2609bde22cef95a1e95afd824f8ad5fa9
+EBUILD confuse-2.0.1.ebuild 559 BLAKE2B 64bee93bcbe9ca06ab52295ea8d93979d5a9145d6bd03940b733451f3c35d621aab963c67e36b260c6e851ba56a25cb5752e6a93611b9dbb122313b61ab12109 SHA512 65bbb2380abf6e038bcaae74b3a8e8dda3546391fb70894f84df7fe78eb7c34c954fb752c05774c46602ad9e0e319af8ecf0f80fd128c9bcb2ec27b6892bc2d4
MISC metadata.xml 878 BLAKE2B 2c3a52104c43764bd91ab68c7706013373ab30fa0fdb447bd5401f986ac242b1935268ced5fb70657d44ae2539758b81f8956eddcb0656c7dee70be292e240f8 SHA512 64f959d0ce18e4fb412f482712101117f8f824f333c0befce184e736b52897dd105a0d9d71d65eea57bb21d724e2b69661f9efcaffa36536c61d9c6ae2d2a522
diff --git a/dev-python/confuse/confuse-2.0.1.ebuild b/dev-python/confuse/confuse-2.0.1.ebuild
new file mode 100644
index 000000000000..f19d138dcfe9
--- /dev/null
+++ b/dev-python/confuse/confuse-2.0.1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9..11} pypy3 )
+DISTUTILS_USE_PEP517=flit
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Confuse is a configuration library for Python that uses YAML"
+HOMEPAGE="
+ https://github.com/beetbox/confuse/
+ https://pypi.org/project/confuse/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
+distutils_enable_sphinx docs \
+ 'dev-python/sphinx-rtd-theme'
diff --git a/dev-python/crispy-bootstrap3/Manifest b/dev-python/crispy-bootstrap3/Manifest
index 234fd831f9f5..7830de86c4b3 100644
--- a/dev-python/crispy-bootstrap3/Manifest
+++ b/dev-python/crispy-bootstrap3/Manifest
@@ -1,3 +1,3 @@
DIST crispy-bootstrap3-2022.1.gh.tar.gz 25773 BLAKE2B 492f8b41fcdbb92bf40213aa31f98db9818cf0810cd5808e0436f838e9a0c3bea2e1cd3d5d8412034ecd3e97c2c80ba379cfbccab6675184eeb90d8e316041d8 SHA512 632bb7ec654227c7a95ea6019742517e5f04b41b570274adc52d1d828168327b8f2fd5e8f0171098500721ef449b408f79c5918b208adca1948ca61b0d2862a6
-EBUILD crispy-bootstrap3-2022.1.ebuild 560 BLAKE2B f3cd14b1a3c22552d6d3c4d3229151f0512bee89ae52d3d93a55b6c9e2f95beb060149bc824700a80b04ef754cb4fd5c62d82b267f08f58810f89864a4f3e665 SHA512 3e27327edeab8f0bf0a334d5266c79d7bf6169b5dcf9017d92b5bad36b9ff6aa8846883883673f90a0931192f7ab1b90fd6591d72f3aa2c290fda6012d5776c3
+EBUILD crispy-bootstrap3-2022.1.ebuild 636 BLAKE2B 54a826c05597696d40c920dfec1f6472d4e0b49fe1a9ee14a938e17696e54e650cf16a0beff9627484891f9adefe04f678ec15f1e9bc6e2d3577f2f1ac67d8d8 SHA512 95bc7b42ae2ae0c798ae4aa989daa9094a72a1f35b49a2c9916a58d2a85521ecdd9c9d9967eee0c96e558f905df60928d8b9a026c08e78c1b62978a5621a464e
MISC metadata.xml 405 BLAKE2B a31f584762af791297bf339f5aa305007a9276795649910ef189b4f09946f92bd2bbc08427b61d1b0490c54cea33c31841c5f0ee88d1eb04304faaffbd7f6e02 SHA512 dcd20d925f351d5fcafee73c3753b1d14ac08ed2ec4f21ff886254e0f3019eeb5c037c9a45f7a9af4f9ccf382c845b1876cfd4a6b5c06ec7f0bbb3f04e3fd2b3
diff --git a/dev-python/crispy-bootstrap3/crispy-bootstrap3-2022.1.ebuild b/dev-python/crispy-bootstrap3/crispy-bootstrap3-2022.1.ebuild
index 7fbae1ced281..aa01b8d7ac26 100644
--- a/dev-python/crispy-bootstrap3/crispy-bootstrap3-2022.1.ebuild
+++ b/dev-python/crispy-bootstrap3/crispy-bootstrap3-2022.1.ebuild
@@ -17,7 +17,11 @@ SRC_URI="https://github.com/django-crispy-forms/${PN}/archive/refs/tags/${PV}.ta
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~x86"
+IUSE="test"
RDEPEND="dev-python/django-crispy-forms[${PYTHON_USEDEP}]"
+BDEPEND="test? (
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+)"
distutils_enable_tests pytest
diff --git a/dev-python/crispy-bootstrap4/Manifest b/dev-python/crispy-bootstrap4/Manifest
new file mode 100644
index 000000000000..75a6e1e37c7e
--- /dev/null
+++ b/dev-python/crispy-bootstrap4/Manifest
@@ -0,0 +1,4 @@
+AUX crispy-bootstrap4-2022.1-test.patch 573 BLAKE2B ecc43c8679fdca3fde8f9a8a15015748211aa4ea83fbec064fd5a5c0119ec9e923dc9df15b2f1c98b89f2087ea2b84c1420af641001e9406a41db2220f4d0880 SHA512 bff60cd807c321f8d932748cf01db9615bc1c2e939eff3c0b1667a33fea65fb035c405595c346f2546203e4e24cd9aee0e2e9c152e2592930ab98a3cb6056477
+DIST crispy-bootstrap4-2022.1.gh.tar.gz 30814 BLAKE2B 573847b614b5f6cf71fea6ed6831eeef48ac01b2c2db07653d600b5b0829209188d235a143585ed4fabb663264aff3b5f7a416d99d12a8e268d4c62edaf3db84 SHA512 7f1e5443229274de2aaf28bd63507bbe5dff7923f27509801ea9de9246fa393bfc4563a4aa6d586a1e642b87bb7dddcb3ad3403653912c0197f8638141c42229
+EBUILD crispy-bootstrap4-2022.1.ebuild 679 BLAKE2B 80fa1f1a1af741667de7124210541ffd7f646d495eb388869fad4c42b6b24cca9785a214db9751c5ed4793f09c5492265b4c9287d4364d81880fb4c03baf3747 SHA512 50edfbc58c43e4eaae9011d67a05e5dedef7990f586b5e6a99567d8902b65814b2453739257909f7cb7780b71f295729e473f2e0e013cdb355faeecaf075d5b9
+MISC metadata.xml 405 BLAKE2B ec5d0537b699db8dd80bde37a759e754e8bc9c96c514cc8e24b43534c68dfcc44e44e219eec4912d8bd42184c92b866c19eb68da24e4ef780f821a2d855c3c79 SHA512 0398280620b4f7fe239e3ded58d04a14ae7a7c3b6597c496277d923d52ae7ce3600c0509e1c9a8187aeb0f2c012a4f7088308fe15eef6649406c09e893b66da0
diff --git a/dev-python/crispy-bootstrap4/crispy-bootstrap4-2022.1.ebuild b/dev-python/crispy-bootstrap4/crispy-bootstrap4-2022.1.ebuild
new file mode 100644
index 000000000000..1603b39db3f0
--- /dev/null
+++ b/dev-python/crispy-bootstrap4/crispy-bootstrap4-2022.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9..11} )
+inherit distutils-r1
+
+DESCRIPTION="Bootstrap4 template pack for django-crispy-forms"
+HOMEPAGE="
+ https://pypi.org/project/crispy-bootstrap4/
+"
+SRC_URI="https://github.com/django-crispy-forms/${PN}/archive/refs/tags/${PV}.tar.gz
+ -> ${P}.gh.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+
+RDEPEND="dev-python/django-crispy-forms[${PYTHON_USEDEP}]"
+BDEPEND="test? (
+ dev-python/pytest-django[${PYTHON_USEDEP}]
+)"
+
+distutils_enable_tests pytest
+
+PATCHES=( "${FILESDIR}"/${P}-test.patch )
diff --git a/dev-python/crispy-bootstrap4/files/crispy-bootstrap4-2022.1-test.patch b/dev-python/crispy-bootstrap4/files/crispy-bootstrap4-2022.1-test.patch
new file mode 100644
index 000000000000..1432235e3b56
--- /dev/null
+++ b/dev-python/crispy-bootstrap4/files/crispy-bootstrap4-2022.1-test.patch
@@ -0,0 +1,17 @@
+--- a/tests/test_form_helper.py 2023-04-01 18:48:25.847263389 +0200
++++ b/tests/test_form_helper.py 2023-04-01 18:48:38.817091994 +0200
+@@ -633,14 +633,6 @@
+ assert '