diff --git a/dev-python/IP2Location/IP2Location-8.10.0.ebuild b/dev-python/IP2Location/IP2Location-8.10.0.ebuild
deleted file mode 100644
index f8d1a11ed..000000000
--- a/dev-python/IP2Location/IP2Location-8.10.0.ebuild
+++ /dev/null
@@ -1,22 +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_{11..13} )
-
-inherit distutils-r1
-
-DESCRIPTION="Python API for IP2Location database"
-HOMEPAGE="https://pypi.org/project/IP2Location/"
-#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
-HASH_COMMIT="71828f8506cab07f8379faa815fc257ad9d8ca7a"
-SRC_URI="https://github.com/chrislim2888/IP2Location-Python/archive/refs/tags/${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 x86"
-RESTRICT="test"
-
-S="${WORKDIR}/IP2Location-Python-${PV}"
diff --git a/dev-python/IP2Location/IP2Location-8.10.5.ebuild b/dev-python/IP2Location/IP2Location-8.10.5.ebuild
new file mode 100644
index 000000000..b6225e351
--- /dev/null
+++ b/dev-python/IP2Location/IP2Location-8.10.5.ebuild
@@ -0,0 +1,19 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYPI_PN="ip2location"
+PYPI_NO_NORMALIZE=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python API for IP2Location database"
+HOMEPAGE="https://pypi.org/project/IP2Location/"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm64 x86"
+RESTRICT="test"
diff --git a/dev-python/IP2Location/Manifest b/dev-python/IP2Location/Manifest
index 367956404..b916c7401 100644
--- a/dev-python/IP2Location/Manifest
+++ b/dev-python/IP2Location/Manifest
@@ -1,2 +1,2 @@
-DIST IP2Location-8.10.0.gh.tar.gz 2504708 BLAKE2B 519def2250be7c2bfc653a377923ee16e7560d47695b280a3af4460536cb548499bc5f2d3f1854b7e3bd354e3d522e86a3bfa0dc1e8bdee48784cb39cae8274d SHA512 1313adf7ab5150a5af835a33f476bec90f8d0c8373694ef04fba90d12d00948d567acb922869ce80bb98af6ece15eb30ac6f375757f556cb02bc1c1b4d517293
DIST IP2Location-8.10.2.tar.gz 13841 BLAKE2B dd81f8ebf55191df4bf833d326eed44f4455a8a478e64b729b50d8a0917831974f7e7b61e59c91e9967859531a66cd606caf4d29ae5c21d66fc3c56c0cfa21f4 SHA512 2da677097d191ae11a1d3f3a9044e1f5a0a28fdc5143f3d62f7ec393e0d171895acc7a48a8c96b34ad74656b15d6da42125673e97e5d07e67754153a3373a3e9
+DIST ip2location-8.10.5.tar.gz 13792 BLAKE2B 7f783c0edb5a5c0ac6f44bed154ffe3de92d365b207d4fae1ae510a36d476785d05da0f14699e4b4ecb4889315b8247f26ab026f6a7d7327fd54e08aca23f999 SHA512 990dac68b863cd4043230915d63b43df133b71a28a06c4dd41c023a08e5b63b614423063a93616696e3065c6b5dfabe9457cf5eec4f8dce85bbfae2c98bb21a7
diff --git a/dev-python/django-picklefield/Manifest b/dev-python/django-picklefield/Manifest
new file mode 100644
index 000000000..7911801bc
--- /dev/null
+++ b/dev-python/django-picklefield/Manifest
@@ -0,0 +1 @@
+DIST django-picklefield-3.3.tar.gz 9559 BLAKE2B 3a929ba50c499e1545159303a19d88b3146a1a1e66567891c4640c209b57ab9ed7203c747e302762f2a0e62c19ea45d04d2941b9cdb71b5adf0543d5bfaed9ef SHA512 ba7adc68b870986c089a013c9845e9a85e5d7959ef0377d331086ccbfcbbe7d7f42ab3b8563c647f691e43512eec98369788e0eb03e9b9055859d0467a726306
diff --git a/dev-python/django-picklefield/django-picklefield-3.3.ebuild b/dev-python/django-picklefield/django-picklefield-3.3.ebuild
new file mode 100644
index 000000000..3165ee98f
--- /dev/null
+++ b/dev-python/django-picklefield/django-picklefield-3.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYPI_NO_NORMALIZE=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pickled object field for Django"
+HOMEPAGE="https://pypi.org/project/django-picklefield/"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~x86"
+
+CDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+RDEPEND="${CDEPEND}"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="test"
+#distutils_enable_tests pytest
diff --git a/dev-python/django-picklefield/metadata.xml b/dev-python/django-picklefield/metadata.xml
new file mode 100644
index 000000000..d9b283672
--- /dev/null
+++ b/dev-python/django-picklefield/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ unknown@pentoo.ch
+ Author Unknown
+
+
+
+
+
diff --git a/dev-python/django-q2/Manifest b/dev-python/django-q2/Manifest
new file mode 100644
index 000000000..b8cb7d24c
--- /dev/null
+++ b/dev-python/django-q2/Manifest
@@ -0,0 +1 @@
+DIST django_q2-1.7.6.tar.gz 76849 BLAKE2B 2a75f49b215bb5c82555e7a5f8983315bd303499d93225c84f739d6aaeed6dd0ba2112c50cad0e77e0a5095c711b973456282b2df83be022d3ee9b49b7bce530 SHA512 3bb0189b5f6c32f6390f7aac43f4ad85212272e821c2447ba3a74883ca8eaedcaaa6851d7efccea3e159d3c9c199f0f33ebbed11fc75ae8c3f5d99b490eb43b8
diff --git a/dev-python/django-q2/django-q2-1.7.6.ebuild b/dev-python/django-q2/django-q2-1.7.6.ebuild
new file mode 100644
index 000000000..bf841fae0
--- /dev/null
+++ b/dev-python/django-q2/django-q2-1.7.6.ebuild
@@ -0,0 +1,27 @@
+# Copyright 2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+#PYPI_NO_NORMALIZE=1
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A multiprocessing distributed task queue for Django"
+HOMEPAGE="https://django-q.readthedocs.org"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~x86"
+
+CDEPEND="dev-python/django[${PYTHON_USEDEP}]
+ >=dev-python/django-picklefield-3.1[${PYTHON_USEDEP}]
+"
+RDEPEND="${CDEPEND}"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="test"
+#distutils_enable_tests pytest
diff --git a/dev-python/django-q2/metadata.xml b/dev-python/django-q2/metadata.xml
new file mode 100644
index 000000000..38a34a8d0
--- /dev/null
+++ b/dev-python/django-q2/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ unknown@pentoo.ch
+ Author Unknown
+
+
+ django-q2
+
+
diff --git a/dev-python/django-ratelimit/Manifest b/dev-python/django-ratelimit/Manifest
new file mode 100644
index 000000000..cbec291a2
--- /dev/null
+++ b/dev-python/django-ratelimit/Manifest
@@ -0,0 +1 @@
+DIST django-ratelimit-4.1.0.tar.gz 11551 BLAKE2B 4778ecef885a9bb42721a21d5f16256b2c6d60e17d1546b4378a24dab525632c2d73c6843a7f8fdbbde0d8e21a1b2cd1156ce485f7b694bea705acacfc239c0f SHA512 20bb7916f01dcf344b1a6966a742f80525f9a1d1aac4dac4f23b0f184bd8bf891aab41db20a30e99c9cf40041d5e1d07159a40f64b7c814d26729cc6a80f0eaa
diff --git a/dev-python/django-ratelimit/django-ratelimit-4.1.0.ebuild b/dev-python/django-ratelimit/django-ratelimit-4.1.0.ebuild
new file mode 100644
index 000000000..66680e821
--- /dev/null
+++ b/dev-python/django-ratelimit/django-ratelimit-4.1.0.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYPI_NO_NORMALIZE=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Cache-based rate-limiting for Django"
+HOMEPAGE="https://pypi.org/project/django-ratelimit/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~x86"
+
+CDEPEND="dev-python/django[${PYTHON_USEDEP}]"
+RDEPEND="${CDEPEND}"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RESTRICT="test"
+#distutils_enable_tests pytest
diff --git a/dev-python/django-ratelimit/metadata.xml b/dev-python/django-ratelimit/metadata.xml
new file mode 100644
index 000000000..45ebfbdab
--- /dev/null
+++ b/dev-python/django-ratelimit/metadata.xml
@@ -0,0 +1,11 @@
+
+
+
+
+ unknown@pentoo.ch
+ Author Unknown
+
+
+ django-ratelimit
+
+
diff --git a/dev-python/http-tools/Manifest b/dev-python/http-tools/Manifest
deleted file mode 100644
index 0f4a96324..000000000
--- a/dev-python/http-tools/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST http-tools-3.0.0.tar.gz 549933 BLAKE2B 6f19148ac58030bddbaee39de05d6d0089c880067dfaebd2acba5a72247fb25e88cee36e3f1b120512b6a3ebe8886fe514e0a78a22bb2a98b9dbeb0989e4ca2d SHA512 d0906434c532ee562cf92b3370472084f93750411b7656254cf591f3367ecae56e3b642963a74ead49c6287bedf6d1cbf88efdf9473b46400643baa5fcc34b9d
-DIST http-tools-4.0.0.tar.gz 549944 BLAKE2B 1c1136e6c43601500f6070bb0d08225c4526ebca1839cd2db1e7b26a471d17e980ba6ed0f99fe001048ea57de63c20b4a5c5904f9fd45b6c19133ac255c92703 SHA512 7f35e266e93702e7c74f495fcf87ec5c4c466950d46e166d0384d7c64a034cf96a4abe7d6563c82da8cbaa7c8aed4de3aacf7ae89578567a05a1072335d15aec
diff --git a/dev-python/http-tools/http-tools-3.0.0.ebuild b/dev-python/http-tools/http-tools-3.0.0.ebuild
deleted file mode 100644
index 449448be9..000000000
--- a/dev-python/http-tools/http-tools-3.0.0.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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_{11..13} )
-inherit distutils-r1 pypi
-
-DESCRIPTION="Capture, repeat and live intercept HTTP requests"
-HOMEPAGE="https://github.com/MobSF/httptools"
-#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-#IUSE="test"
-
-RDEPEND="net-proxy/mitmproxy[${PYTHON_USEDEP}]
- >=dev-python/markupsafe-2.0.1[${PYTHON_USEDEP}]"
-DEPEND="${RDEPEND}"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-src_prepare(){
- sed -i "s|'mitmproxy.*'|'mitmproxy'|g" setup.py
- eapply_user
-}
diff --git a/dev-python/http_tools/Manifest b/dev-python/http_tools/Manifest
new file mode 100644
index 000000000..bcc1da57b
--- /dev/null
+++ b/dev-python/http_tools/Manifest
@@ -0,0 +1 @@
+DIST http_tools-5.0.0.tar.gz 550370 BLAKE2B 8d18f1920481a2517edd7180a650c00e9802e73625ba16fa0b53bd12ffc7d707277266acabf939b4d1a3b706e4b03866dcea42cfd2c83ad5c24686abd905873f SHA512 00a31374cf455c148e91b9dc214074981b92b53d15159d3946a3b4b3cf936f7eaa219a0d45a6f709cc4165fbb66100461a727c0a6552e1c38dfda1c87ea9aa9c
diff --git a/dev-python/http-tools/http-tools-4.0.0.ebuild b/dev-python/http_tools/http_tools-5.0.0.ebuild
similarity index 100%
rename from dev-python/http-tools/http-tools-4.0.0.ebuild
rename to dev-python/http_tools/http_tools-5.0.0.ebuild
diff --git a/dev-python/http-tools/metadata.xml b/dev-python/http_tools/metadata.xml
similarity index 100%
rename from dev-python/http-tools/metadata.xml
rename to dev-python/http_tools/metadata.xml
diff --git a/dev-python/libsast/Manifest b/dev-python/libsast/Manifest
index e3d37b3e3..7ce4131d4 100644
--- a/dev-python/libsast/Manifest
+++ b/dev-python/libsast/Manifest
@@ -1,2 +1,3 @@
DIST libsast-1.5.2.tar.gz 36744 BLAKE2B c2591cb40a76cbe0982b53ce85dd8356f5e67b61db46e12b8efb637c7ea1e090c131c841f9b13e3c4442de72ff630ac7042991d782f76396ee5c05cb8c0d777a SHA512 86643d89aefca2a0e80f7516e3270c05e32ddba10a649746cb0fb868a3a3f444e3359097061648b8efc99800a7f48ead9954a8effbaa0258624b3e3d8c7fa809
DIST libsast-2.0.3.tar.gz 35349 BLAKE2B 610d9e32618dbfe2f24d9c7d24336c4f56b262a79ab533a281b2e4fd2102858a68a2871505b16c922d55c199fb1d7997f9eb76024c7e95b34bae41f134d79975 SHA512 66c7580b413c92120e27f0c96c9483008ae18fafe16b733ad3c44adfa89e91264f10c3595425bc70339b399aa5ab847b3dd924ffae8e1323b2e62e8c47d564b2
+DIST libsast-3.1.6.tar.gz 36919 BLAKE2B 5c1803c8693fc5d14a51f5fde578d42f668c5a2fc01894333bfdd5a42e95f58f1952e8e299506803c923a0803b7b9a9548dc67cb5adeb0a74db383c59998d5c8 SHA512 395f896971700923098a3fdd61b32c96d0557226f618a8c5db7774f77317113ca52f3e41a863782b1edabfbf8a8b5e1b041731fdb9bd6cfe843e3c6949c1c1e3
diff --git a/dev-python/libsast/libsast-3.1.6.ebuild b/dev-python/libsast/libsast-3.1.6.ebuild
new file mode 100644
index 000000000..e45d93fb3
--- /dev/null
+++ b/dev-python/libsast/libsast-3.1.6.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A generic SAST core built on top of semgrep and regex"
+HOMEPAGE="https://github.com/ajinabraham/libsast/"
+
+LICENSE="LGPL-3"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND=">=dev-python/requests-2.27.1[${PYTHON_USEDEP}]
+ >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}]
+ >=dev-python/semgrep-0.104.0[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+src_prepare(){
+ # https://python-poetry.org/docs/dependency-specification/#using-environment-markers
+ # Invalid PEP 440 version: '>=2.0.3'
+ # sed -i "s|version = \"|version = \">=|g" pyproject.toml
+ sed -i '/^semgrep = {version/d' pyproject.toml
+ eapply_user
+}
diff --git a/dev-python/openstep_parser/Manifest b/dev-python/openstep_parser/Manifest
index 93e251756..c443b9452 100644
--- a/dev-python/openstep_parser/Manifest
+++ b/dev-python/openstep_parser/Manifest
@@ -1 +1,2 @@
DIST openstep_parser-1.5.4.tar.gz 4121 BLAKE2B 80716b513c104819a4e0409c5e20b27c6736a5022b14d22fc403713aa6a6a8d38b8e142c0e4974c13ebe65b5acc5580eb7ca52e5fed451321147659cdc6ed00b SHA512 95d6050a365ab96550caf19bbef02c08e4f8923d52f67404c5092768c9af50f7d5709aa4272bafe6486f06fb2c04fc64caac5f5aeb3068793b40c8e5898a5571
+DIST openstep_parser-2.0.1.tar.gz 3987 BLAKE2B dd468d8289b3e6658866b433f73e2466849200f0ae8155f771a734c2c0e09ea9d7e93aae9ec1744b933d19e61eebae6315446cd43c948e8b21797b7e68779413 SHA512 a739893f2e57b022d3368cced8767eba7d37256ac2db958cf0711ee2de40cae87b7875c63569d0f66ce20ee890a75b8c4956706ea209c57b1111a716c8a2f5e8
diff --git a/dev-python/openstep_parser/openstep_parser-2.0.1.ebuild b/dev-python/openstep_parser/openstep_parser-2.0.1.ebuild
new file mode 100644
index 000000000..50ba42127
--- /dev/null
+++ b/dev-python/openstep_parser/openstep_parser-2.0.1.ebuild
@@ -0,0 +1,21 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="OpenStep plist reader into python objects"
+HOMEPAGE="https://github.com/kronenthaler/openstep-parser"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 x86"
+RESTRICT="test"
+
+RDEPEND="dev-python/coverage[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/python3-saml/Manifest b/dev-python/python3-saml/Manifest
new file mode 100644
index 000000000..b6371b767
--- /dev/null
+++ b/dev-python/python3-saml/Manifest
@@ -0,0 +1 @@
+DIST python3-saml-1.16.0.gh.tar.gz 3578998 BLAKE2B 94fc65caf978aeb30577ff435ce874c1fbb15dac0c5028e15a8adb21631496b9382d538c80ae77e1ba4166d2fbf22c7ac96bce7b6e3533589a6b8654f5be35ee SHA512 77e779a3d3190f3164105bbc2943b54729dfef12c71b0303a523acada95da291bc77b331a83726f00c503ef09040a05180c234620e5a65d4ea4fd88da24eeade
diff --git a/dev-python/python3-saml/metadata.xml b/dev-python/python3-saml/metadata.xml
new file mode 100644
index 000000000..a3b24bec3
--- /dev/null
+++ b/dev-python/python3-saml/metadata.xml
@@ -0,0 +1,16 @@
+
+
+
+
+ chutzpah@gentoo.org
+ Patrick McLean
+
+
+ python@gentoo.org
+ Python
+
+
+ python3-saml
+ SAML-Toolkits/python3-saml
+
+
diff --git a/dev-python/python3-saml/python3-saml-1.16.0.ebuild b/dev-python/python3-saml/python3-saml-1.16.0.ebuild
new file mode 100644
index 000000000..237bcb29f
--- /dev/null
+++ b/dev-python/python3-saml/python3-saml-1.16.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2020-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1
+
+DESCRIPTION="OneLogin's SAML Python Toolkit"
+HOMEPAGE="
+ https://github.com/SAML-Toolkits/python3-saml/
+ https://pypi.org/project/python3-saml/
+"
+SRC_URI="
+ https://github.com/SAML-Toolkits/python3-saml/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc64 ~x86"
+
+RDEPEND="
+ >=dev-python/isodate-0.6.1[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.9.0[${PYTHON_USEDEP}]
+ >=dev-python/xmlsec-1.3.9[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/src/OneLogin/saml2_tests/idp_metadata_parser_test.py::OneLogin_Saml2_IdPMetadataParser_Test::testGetMetadataWithHeaders
+ tests/src/OneLogin/saml2_tests/idp_metadata_parser_test.py::OneLogin_Saml2_IdPMetadataParser_Test::testParseRemoteWithHeaders
+ )
+
+ # The tests are horribly fragile to paths.
+ local -x PYTHONPATH=src
+ epytest -o 'python_files=*_test.py'
+}
diff --git a/dev-python/whitenoise/Manifest b/dev-python/whitenoise/Manifest
index 569f1f589..bc75205dc 100644
--- a/dev-python/whitenoise/Manifest
+++ b/dev-python/whitenoise/Manifest
@@ -1 +1,2 @@
DIST whitenoise-5.2.0.tar.gz 45096 BLAKE2B 8a2cb53664e2f4fffc8f92298879475b5ec5354bce3f99d8bacf4a0da90f858e48c8e4817c241f9d542b4f0066e2980fb935a33f47e8e861cc6cb4103f184de0 SHA512 6f4305205247b98a7d6d73b48c40de9eea5ea7f525c7b9a863b979e9d38461370eddf6392bc33fc6766623e4a7e33dc356f488eb495dc7786dc6b9e1e5bf04ed
+DIST whitenoise-6.9.0.tar.gz 25920 BLAKE2B 7585e74caba5b6ba40d25c5810155be8b0f68ccf0d32e75097fb9fe1963e76d1cc0ff2ef7366741fdea16981a8b0c0b136a97bc6a80ac526d69da4dc9fd7fe79 SHA512 981715651f29128156a7d25143c4e5cecb4fa9ce363971ea6312d9b445441e01465ee08de46809549a44905c541b4d10c17396f7bd11d6b43731755c4f43438d
diff --git a/dev-python/whitenoise/metadata.xml b/dev-python/whitenoise/metadata.xml
index 515166c39..2b989ee31 100644
--- a/dev-python/whitenoise/metadata.xml
+++ b/dev-python/whitenoise/metadata.xml
@@ -5,7 +5,7 @@
unknown@pentoo.ch
Author Unknown
-
+
+ whitenoise
+
diff --git a/dev-python/whitenoise/whitenoise-5.2.0.ebuild b/dev-python/whitenoise/whitenoise-5.2.0.ebuild
index 12d12b3ea..4da379c3c 100644
--- a/dev-python/whitenoise/whitenoise-5.2.0.ebuild
+++ b/dev-python/whitenoise/whitenoise-5.2.0.ebuild
@@ -6,16 +6,16 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{11..13} )
-inherit distutils-r1
+inherit distutils-r1 pypi
DESCRIPTION="Radically simplified static file serving for WSGI applications"
HOMEPAGE="http://whitenoise.evans.io/en/stable/"
-SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 ~arm64 x86"
-IUSE="test brotli"
+IUSE="brotli"
RDEPEND="brotli? ( app-arch/brotli[${PYTHON_USEDEP}] )"
DEPEND="${RDEPEND}"
diff --git a/dev-python/whitenoise/whitenoise-6.9.0.ebuild b/dev-python/whitenoise/whitenoise-6.9.0.ebuild
new file mode 100644
index 000000000..f190d0fa8
--- /dev/null
+++ b/dev-python/whitenoise/whitenoise-6.9.0.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{11..13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Radically simplified static file serving for WSGI applications"
+HOMEPAGE="http://whitenoise.evans.io/en/stable/"
+#SRC_URI="mirror://pypi/${P:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 x86"
+IUSE="brotli"
+
+RDEPEND="brotli? ( app-arch/brotli[${PYTHON_USEDEP}] )"
+DEPEND="${RDEPEND}"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
diff --git a/dev-python/yara-python/Manifest b/dev-python/yara-python/Manifest
new file mode 100644
index 000000000..93d43b856
--- /dev/null
+++ b/dev-python/yara-python/Manifest
@@ -0,0 +1 @@
+DIST yara-python-4.5.1.gh.tar.gz 39419 BLAKE2B e89677bd8b857e9c7b40b172311245ab7cc2149bfec6de09905494645d65abd67b1a41978101795ddb9dcb9d4344c3a4ffc23c96291580f17f59cdabe66a1d59 SHA512 fb3d78cea58a5dcb21287d5211805ef7097c07b9117e4fe78a7e56b40f2520950f0e8d6f1eb3c4253a454e10ca782c3826c19613bd17677bef491ae91f9f9d2a
diff --git a/dev-python/yara-python/metadata.xml b/dev-python/yara-python/metadata.xml
new file mode 100644
index 000000000..da2280735
--- /dev/null
+++ b/dev-python/yara-python/metadata.xml
@@ -0,0 +1,25 @@
+
+
+
+
+ mario.haustein@hrz.tu-chemnitz.de
+ Mario Haustein
+
+
+ sam@gentoo.org
+ Sam James
+
+
+ proxy-maint@gentoo.org
+ Proxy Maintainers
+
+
+ With this library you can use YARA from your Python programs. It covers
+ all YARA's features, from compiling, saving and loading rules to
+ scanning files, strings and processes.
+
+
+ VirusTotal/yara-python
+ yara-python
+
+
diff --git a/dev-python/yara-python/yara-python-4.5.1.ebuild b/dev-python/yara-python/yara-python-4.5.1.ebuild
new file mode 100644
index 000000000..e320577e8
--- /dev/null
+++ b/dev-python/yara-python/yara-python-4.5.1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+DISTUTILS_EXT=1
+PYTHON_COMPAT=( python3_{11..13} )
+inherit distutils-r1
+
+DESCRIPTION="Python interface for a malware identification and classification tool"
+HOMEPAGE="https://github.com/VirusTotal/yara-python"
+
+if [[ ${PV} == "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/VirusTotal/yara-python.git"
+else
+ SRC_URI="https://github.com/virustotal/yara-python/archive/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+ KEYWORDS="amd64 ~arm64 ~ppc64 x86"
+fi
+
+LICENSE="Apache-2.0"
+SLOT="0"
+
+RDEPEND="
+ =app-forensics/yara-$(ver_cut 1-2)*
+"
+DEPEND="${RDEPEND}"
+
+distutils_enable_tests unittest
+
+python_configure_all() {
+ cat >> setup.cfg <<-EOF
+ dynamic_linking = True
+ EOF
+}
+
+python_test() {
+ "${EPYTHON}" tests.py || die "Tests fail with ${EPYTHON}"
+}
diff --git a/dev-util/mobsf/Manifest b/dev-util/mobsf/Manifest
index a97b6ddd1..6b6680686 100644
--- a/dev-util/mobsf/Manifest
+++ b/dev-util/mobsf/Manifest
@@ -1,2 +1,3 @@
DIST mobsf-3.9.7.tar.gz 95335051 BLAKE2B eaf77e4843662992c1074adb486e6f338b2549a66e483dd16bfe42a8658ec6e08812d477ee74021c4b0f05d8160b31d4bcb0ec1b12569668fdf914382706ffa9 SHA512 f6aba220da9411ae00afe3d6e87bbb9023625923240c1f5e22b34cb38ea59e329c02b19ca5cce894458c72a72c07ef5a875f1563450a5284e02122a5e4922893
DIST mobsf-4.0.7.tar.gz 125903114 BLAKE2B 6ac72053839aaebde541e801d93f7c9af00204d4303b5af9455f90b0f0d75427b7ef215fda19e13775974a83291ddf5092f89d1c2688fcdb2b237880c6135e24 SHA512 117c3d735a81b73e31d17b69cbbe5692b3bf6b78ac82b9678d40d54923a5f2a4d1f94c9f81061e8900fb0be750c85d1251d00169ba09dca909eb14ef6c53e3fc
+DIST mobsf-4.3.2.tar.gz 103836219 BLAKE2B 61f59387a38428b075f997aa8e22603306c5f2ee5eb433b720feafb1c814aaaa4c9a917b79ba103a8a2f613ae8b04210d6e154fb0d550bf1a9b38e7e13e24db2 SHA512 f58c691d8965230e2aefe05fe1c5a1e2a465fdc44d89561b74a028b452bca3f0dc31b71e6fb7e86b15e390278e4294a6e40e64badc9c91354a935f1eef37c0c7
diff --git a/dev-util/mobsf/mobsf-3.9.7.ebuild b/dev-util/mobsf/mobsf-3.9.7.ebuild
index 12176b64f..58595a3d5 100644
--- a/dev-util/mobsf/mobsf-3.9.7.ebuild
+++ b/dev-util/mobsf/mobsf-3.9.7.ebuild
@@ -42,7 +42,7 @@ RDEPEND="
>=dev-python/distro-1.5.0[${PYTHON_USEDEP}]
>=dev-python/IP2Location-8.10.0[${PYTHON_USEDEP}]
>=dev-util/lief-0.12.3[${PYTHON_USEDEP}]
- >=dev-python/http-tools-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/http_tools-4.0.0[${PYTHON_USEDEP}]
>=dev-python/google-play-scraper-0.1.2[${PYTHON_USEDEP}]
>=dev-python/apkid-2.1.5[${PYTHON_USEDEP}]
>=dev-python/frida-python-16.1.4[${PYTHON_USEDEP}]
diff --git a/dev-util/mobsf/mobsf-4.0.7.ebuild b/dev-util/mobsf/mobsf-4.0.7.ebuild
index 071b60109..a02249c4f 100644
--- a/dev-util/mobsf/mobsf-4.0.7.ebuild
+++ b/dev-util/mobsf/mobsf-4.0.7.ebuild
@@ -42,7 +42,7 @@ RDEPEND="
>=dev-python/distro-1.5.0[${PYTHON_USEDEP}]
>=dev-python/IP2Location-8.10.0[${PYTHON_USEDEP}]
>=dev-util/lief-0.13.2[${PYTHON_USEDEP}]
- >=dev-python/http-tools-4.0.0[${PYTHON_USEDEP}]
+ >=dev-python/http_tools-4.0.0[${PYTHON_USEDEP}]
>=dev-python/google-play-scraper-0.1.2[${PYTHON_USEDEP}]
>=dev-python/apkid-2.1.5[${PYTHON_USEDEP}]
>=dev-python/frida-python-16.1.4[${PYTHON_USEDEP}]
diff --git a/dev-util/mobsf/mobsf-4.3.2.ebuild b/dev-util/mobsf/mobsf-4.3.2.ebuild
new file mode 100644
index 000000000..779261884
--- /dev/null
+++ b/dev-util/mobsf/mobsf-4.3.2.ebuild
@@ -0,0 +1,92 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{11..13} )
+inherit distutils-r1
+
+MY_PN="Mobile-Security-Framework-MobSF"
+
+DESCRIPTION="Automated, all-in-one mobile application (Android/iOS/Windows) pen-testing"
+HOMEPAGE="https://github.com/MobSF/Mobile-Security-Framework-MobSF"
+SRC_URI="https://github.com/MobSF/Mobile-Security-Framework-MobSF/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+#Dynamic Analysis or genymotion
+IUSE="genymotion"
+
+QA_FLAGS_IGNORED="usr/lib/python.*/site-packages/mobsf/DynamicAnalyzer.*
+ usr/lib/python.*/site-packages/mobsf/StaticAnalyzer.*"
+QA_PRESTRIPPED="usr/lib/python.*/site-packages/mobsf/DynamicAnalyzer.*
+ usr/lib/python.*/site-packages/mobsf/StaticAnalyzer.*"
+
+RDEPEND="
+ >=dev-python/django-3.1.5[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.6.2[${PYTHON_USEDEP}]
+ >=dev-python/rsa-4.7[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.25.1[${PYTHON_USEDEP}]
+ >=dev-python/beautifulsoup4-0.0.1[${PYTHON_USEDEP}]
+ >=dev-python/colorlog-4.7.2[${PYTHON_USEDEP}]
+ >=dev-python/macholib-1.14[${PYTHON_USEDEP}]
+ >=dev-python/whitenoise-6.8.2[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.8.0[${PYTHON_USEDEP}]
+ >=dev-python/shelljob-0.6.2[${PYTHON_USEDEP}]
+ >=dev-python/asn1crypto-1.4.0[${PYTHON_USEDEP}]
+ >=dev-python/distro-1.5.0[${PYTHON_USEDEP}]
+ >=dev-python/IP2Location-8.10.4[${PYTHON_USEDEP}]
+ >=dev-python/google-play-scraper-0.1.2[${PYTHON_USEDEP}]
+ >=dev-python/apkid-2.1.5[${PYTHON_USEDEP}]
+ >=dev-python/frida-python-16.1.4[${PYTHON_USEDEP}]
+ >=dev-python/tldextract-5.1.3[${PYTHON_USEDEP}]
+ >=dev-python/openstep_parser-2.0.1[${PYTHON_USEDEP}]
+ >=dev-python/svgutils-0.3.4[${PYTHON_USEDEP}]
+ >=dev-python/arpy-2.3.0[${PYTHON_USEDEP}]
+ >=dev-python/apksigtool-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/tzdata-2023.3[${PYTHON_USEDEP}]
+ >=dev-python/http_tools-5.0.0[${PYTHON_USEDEP}]
+ >=dev-python/libsast-3.1.6[${PYTHON_USEDEP}]
+ >=dev-python/paramiko-3.3.1[${PYTHON_USEDEP}]
+ >=dev-python/six-1.16.0[${PYTHON_USEDEP}]
+ >=dev-python/python3-saml-1.16.0[${PYTHON_USEDEP}]
+ >=dev-python/bcrypt-4.0.1[${PYTHON_USEDEP}]
+ >=dev-python/psycopg-2.9.10[${PYTHON_USEDEP}]
+ >=dev-util/lief-0.15.1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ >=dev-python/django-ratelimit-4.1.0[${PYTHON_USEDEP}]
+ >=dev-python/django-q2-1.7.4[${PYTHON_USEDEP}]
+ >=dev-python/defusedxml-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/xmlsec-1.3.14[${PYTHON_USEDEP}]
+ >=dev-python/ruamel-yaml-0.16.13[${PYTHON_USEDEP}]
+ >=dev-python/click-8.0.1[${PYTHON_USEDEP}]
+ >=dev-python/decorator-4.4.2[${PYTHON_USEDEP}]
+ www-servers/gunicorn
+
+ dev-python/yara-python[${PYTHON_USEDEP}]
+
+ www-servers/gunicorn
+ genymotion? ( app-emulation/genymotion-bin )"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ #regular user support
+ sed -e 's|USE_HOME = False|USE_HOME = True|' -i ./mobsf/MobSF/settings.py || die "sed settings failed"
+
+# sed -e '/waitress/d' \
+# -e '/pyOpenSSL/d' -e '/cryptography/d' \
+# -e '/bs4/d' -i requirements.txt || die "sed failed"
+# sed -e 's|==|>=|' -i requirements.txt || die "sed failed"
+
+# use pdf || sed -e '/pdfkit/d' -i requirements.txt || die "sed failed"
+
+ ./manage.py makemigrations
+ ./manage.py makemigrations StaticAnalyzer
+ ./manage.py migrate
+
+ eapply_user
+}
diff --git a/net-proxy/mitmproxy/Manifest b/net-proxy/mitmproxy/Manifest
deleted file mode 100644
index 16ff392f0..000000000
--- a/net-proxy/mitmproxy/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST mitmproxy-11.0.0.gh.tar.gz 31024600 BLAKE2B 53b124b5d71e1cebcdf5b4c729b969b7c107755b4163becf4169a9116e78d187eb5be77ced1a3f2de47dc93098afbea2f703a0562941675105bb5d0905cb80ce SHA512 d3c85736499d12f2d9a9f7821048af14fbc300aef29bc3b1b3b020a087dd9190a04143d175c78302d389207968b903e5694643c348dcf6a9f8d170d211f6bde7
diff --git a/net-proxy/mitmproxy/metadata.xml b/net-proxy/mitmproxy/metadata.xml
deleted file mode 100644
index 33bee145a..000000000
--- a/net-proxy/mitmproxy/metadata.xml
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
-
-
-
- mitmproxy is your swiss-army knife for debugging,
- testing, privacy measurements, and penetration
- testing. It can be used to intercept, inspect, modify
- and replay web traffic such as HTTP/1, HTTP/2,
- WebSockets, or any other SSL/TLS-protected
- protocols. You can prettify and decode a variety of
- message types ranging from HTML to Protobuf, intercept
- specific messages on-the-fly, modify them before they
- reach their destination, and replay them to a client
- or server later on.
-
-
- mitmproxy/mitmproxy
- mitmproxy
-
-
diff --git a/net-proxy/mitmproxy/mitmproxy-11.0.0-r1.ebuild b/net-proxy/mitmproxy/mitmproxy-11.0.0-r1.ebuild
deleted file mode 100644
index 62d7aa3d0..000000000
--- a/net-proxy/mitmproxy/mitmproxy-11.0.0-r1.ebuild
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{11..13} )
-PYTHON_REQ_USE="sqlite"
-inherit distutils-r1
-
-DESCRIPTION="An interactive, SSL-capable, man-in-the-middle HTTP proxy"
-HOMEPAGE="https://mitmproxy.org/"
-SRC_URI="https://github.com/mitmproxy/mitmproxy/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~x86"
-
-RDEPEND="
- >=app-arch/brotli-1.0.0[python,${PYTHON_USEDEP}]
- >=dev-python/asgiref-3.2.10[${PYTHON_USEDEP}]
- >=dev-python/blinker-1.4[${PYTHON_USEDEP}]
- >=dev-python/certifi-2015.11.20.1[${PYTHON_USEDEP}]
- >=dev-python/cryptography-37.0.0[${PYTHON_USEDEP}]
- >=dev-python/flask-1.1.1[${PYTHON_USEDEP}]
- >=dev-python/h2-4.1.0[${PYTHON_USEDEP}]
- >=dev-python/hyperframe-6.0.0[${PYTHON_USEDEP}]
- >=dev-python/kaitaistruct-0.10[${PYTHON_USEDEP}]
- >=dev-python/ldap3-2.8[${PYTHON_USEDEP}]
- >=dev-python/mitmproxy-wireguard-0.1.16[${PYTHON_USEDEP}]
- >=dev-python/msgpack-1.0.0[${PYTHON_USEDEP}]
- >=dev-python/passlib-1.6.5[${PYTHON_USEDEP}]
- >=dev-python/protobuf-3.14.0[${PYTHON_USEDEP}]
- >=dev-python/publicsuffix2-2.20190205[${PYTHON_USEDEP}]
- >=dev-python/pyopenssl-22.1[${PYTHON_USEDEP}]
- >=dev-python/pyparsing-2.4.2[${PYTHON_USEDEP}]
- >=dev-python/pyperclip-1.6.0[${PYTHON_USEDEP}]
- >=dev-python/zstandard-0.11.0[${PYTHON_USEDEP}]
- >=dev-python/ruamel-yaml-0.16[${PYTHON_USEDEP}]
- >=dev-python/sortedcontainers-2.3.0[${PYTHON_USEDEP}]
- >=dev-python/tornado-6.1[${PYTHON_USEDEP}]
- >=dev-python/urwid-2.1.1[${PYTHON_USEDEP}]
- >=dev-python/wsproto-1.0.0[${PYTHON_USEDEP}]
-"
-
-BDEPEND="
- test? (
- >=dev-python/click-7.0[${PYTHON_USEDEP}]
- >=dev-python/hypothesis-5.8[${PYTHON_USEDEP}]
- >=dev-python/parver-0.1[${PYTHON_USEDEP}]
- >=dev-python/pytest-asyncio-0.17.0[${PYTHON_USEDEP}]
- >=dev-python/requests-2.9.1[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-python_prepare_all() {
- # loosen dependencies
-# sed -i \
-# -e '/>/s/>.*/",/g' \
-# -e '/python_requires/d' \
-# setup.py || die
-
- # remove failing test
- # sed -i 's/test_get_version/_&/g' test/mitmproxy/test_version.py || die
-
- # seems to hang. other tests ensure that mitmproxy_wireguard module
- # loads properly.
- sed -i 's/test_wireguard/_&/g' \
- test/mitmproxy/proxy/test_mode_servers.py || die
-
- distutils-r1_python_prepare_all
-}
diff --git a/profiles/updates/2Q-2025 b/profiles/updates/2Q-2025
new file mode 100644
index 000000000..09083f1ef
--- /dev/null
+++ b/profiles/updates/2Q-2025
@@ -0,0 +1 @@
+move dev-python/http-tools dev-python/http_tools