summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-02-16 19:35:16 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-02-16 19:35:16 +0000
commit21184535f1aeed4066b3fb00248c90c1835dd453 (patch)
tree2ebcd1b95508cbe6200444b5e22a657a75bda6aa /dev-python
parent484b38ba94446adf3cbc8cee9325d6e1cd52a8de (diff)
downloadbaldeagleos-repo-21184535f1aeed4066b3fb00248c90c1835dd453.tar.gz
baldeagleos-repo-21184535f1aeed4066b3fb00248c90c1835dd453.tar.xz
baldeagleos-repo-21184535f1aeed4066b3fb00248c90c1835dd453.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/github3-py/github3-py-4.0.1.ebuild10
-rw-r--r--dev-python/moto/moto-5.0.1.ebuild12
-rw-r--r--dev-python/netaddr/metadata.xml1
-rw-r--r--dev-python/netaddr/netaddr-1.1.0.ebuild3
-rw-r--r--dev-python/oslo-utils/oslo-utils-7.0.0-r1.ebuild (renamed from dev-python/oslo-utils/oslo-utils-7.0.0.ebuild)1
-rw-r--r--dev-python/pyside6-tools/Manifest1
-rw-r--r--dev-python/pyside6-tools/pyside6-tools-6.6.2.ebuild76
-rw-r--r--dev-python/pyside6/Manifest1
-rw-r--r--dev-python/pyside6/pyside6-6.6.2.ebuild247
-rw-r--r--dev-python/shiboken6/Manifest1
-rw-r--r--dev-python/shiboken6/shiboken6-6.6.2.ebuild174
-rw-r--r--dev-python/urllib3/files/urllib3-2.2.0-pytest-8.patch112
-rw-r--r--dev-python/urllib3/files/urllib3-2.2.0-revert.patch42
-rw-r--r--dev-python/urllib3/urllib3-2.2.0-r1.ebuild (renamed from dev-python/urllib3/urllib3-2.2.0.ebuild)7
-rw-r--r--dev-python/vcrpy/files/vcrpy-6.0.1-httpbin-compat.patch40
-rw-r--r--dev-python/vcrpy/vcrpy-6.0.1.ebuild5
16 files changed, 718 insertions, 15 deletions
diff --git a/dev-python/github3-py/github3-py-4.0.1.ebuild b/dev-python/github3-py/github3-py-4.0.1.ebuild
index b81a8d263ed2..fe610b14c1e0 100644
--- a/dev-python/github3-py/github3-py-4.0.1.ebuild
+++ b/dev-python/github3-py/github3-py-4.0.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -41,5 +41,13 @@ BDEPEND="
distutils_enable_tests pytest
python_test() {
+ local EPYTEST_DESELECT=(
+ # betamax / urllib3 problem
+ # upstream marked these tests xfail...
+ # https://github.com/sigmavirus24/github3.py/commit/9d6124c09b0997b5e83579549bcf22b3e901d7e5
+ tests/integration/test_repos_repo.py::TestRepoCommit::test_{diff,patch}
+ tests/integration/test_repos_repo.py::TestComparison::test_{diff,patch}
+ )
+
epytest -o addopts=
}
diff --git a/dev-python/moto/moto-5.0.1.ebuild b/dev-python/moto/moto-5.0.1.ebuild
index 0629a89f14e3..876c973aac85 100644
--- a/dev-python/moto/moto-5.0.1.ebuild
+++ b/dev-python/moto/moto-5.0.1.ebuild
@@ -93,18 +93,6 @@ python_test() {
# require py_partiql_parser
tests/test_s3/test_s3_select.py
tests/test_dynamodb/test_dynamodb_statements.py
- # broken by new urllib3
- tests/test_moto_api/recorder/test_recorder.py::TestRecorder::test_s3_upload_data
- tests/test_moto_api/recorder/test_recorder.py::TestRecorder::test_s3_upload_file_using_requests
- tests/test_moto_api/recorder/test_recorder.py::TestThreadedMotoServer::test_server
- tests/test_s3/test_s3.py::test_presigned_put_url_with_approved_headers
- tests/test_s3/test_s3.py::test_presigned_put_url_with_custom_headers
- tests/test_s3/test_s3.py::test_put_chunked_with_v4_signature_in_body
- tests/test_s3/test_s3.py::test_upload_from_file_to_presigned_url
- tests/test_s3/test_s3_bucket_policy.py::TestBucketPolicy::test_block_all_actions
- tests/test_s3/test_s3_bucket_policy.py::TestBucketPolicy::test_block_all_with_different_principal
- tests/test_s3/test_s3_bucket_policy.py::TestBucketPolicy::test_block_or_allow_get_object
- tests/test_s3/test_s3_bucket_policy.py::TestBucketPolicy::test_block_put_object
)
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
diff --git a/dev-python/netaddr/metadata.xml b/dev-python/netaddr/metadata.xml
index 337742a2ed4b..dee90aa52b49 100644
--- a/dev-python/netaddr/metadata.xml
+++ b/dev-python/netaddr/metadata.xml
@@ -6,7 +6,6 @@
<name>Python</name>
</maintainer>
<upstream>
- <changelog>https://github.com/netaddr/netaddr/blob/master/CHANGELOG</changelog>
<bugs-to>https://github.com/netaddr/netaddr/issues</bugs-to>
<doc>https://netaddr.readthedocs.io/</doc>
</upstream>
diff --git a/dev-python/netaddr/netaddr-1.1.0.ebuild b/dev-python/netaddr/netaddr-1.1.0.ebuild
index 7b3ac3f1f2fc..b0589dbf1b74 100644
--- a/dev-python/netaddr/netaddr-1.1.0.ebuild
+++ b/dev-python/netaddr/netaddr-1.1.0.ebuild
@@ -25,7 +25,8 @@ RDEPEND="
"
distutils_enable_sphinx docs/source \
- dev-python/furo
+ dev-python/furo \
+ dev-python/sphinx-issues
distutils_enable_tests pytest
src_prepare() {
diff --git a/dev-python/oslo-utils/oslo-utils-7.0.0.ebuild b/dev-python/oslo-utils/oslo-utils-7.0.0-r1.ebuild
index bbd53325dbd9..a80ab80f1075 100644
--- a/dev-python/oslo-utils/oslo-utils-7.0.0.ebuild
+++ b/dev-python/oslo-utils/oslo-utils-7.0.0-r1.ebuild
@@ -25,6 +25,7 @@ RDEPEND="
>=dev-python/iso8601-0.1.11[${PYTHON_USEDEP}]
>=dev-python/oslo-i18n-3.15.3[${PYTHON_USEDEP}]
>=dev-python/pytz-2013.6[${PYTHON_USEDEP}]
+ <dev-python/netaddr-1[${PYTHON_USEDEP}]
>=dev-python/netaddr-0.7.18[${PYTHON_USEDEP}]
>=dev-python/netifaces-0.10.4[${PYTHON_USEDEP}]
>=dev-python/debtcollector-1.2.0[${PYTHON_USEDEP}]
diff --git a/dev-python/pyside6-tools/Manifest b/dev-python/pyside6-tools/Manifest
index 7e173a3c10b3..6e0eca01cd41 100644
--- a/dev-python/pyside6-tools/Manifest
+++ b/dev-python/pyside6-tools/Manifest
@@ -1 +1,2 @@
DIST pyside-setup-everywhere-src-6.6.1.tar.xz 13887704 BLAKE2B 14a75cb6d20dced9b1edf79b8bb40ce44ecb7642f45743e59bc2d55b3e6fa5a742a0a0e5712b8f8cd4d908cc0f5103ac823390db968f42d0782818242c6f77e5 SHA512 3516f3e4595f1ba4ebbc680c5a94f9f939e04c0a3257720ebdd7ed12307bb007d1c73824029f51ec71c41a335268f34834250a5e87b3c4356d9e0a6f1d6b1f71
+DIST pyside-setup-everywhere-src-6.6.2.tar.xz 13975896 BLAKE2B b4572e58613e5446692e8c4cef28156fd0126ecda0c6334652ce49c6c7ce4614dbf2400c693addaa38e9b6cca9e331b9fe84c83ddb26e7014b8603afe2c54ad6 SHA512 1d23d27a4cbe74434ec5d391172416d324b4c92181401444821b456b4e27dabbdb3dcaad685a22b62c09f750555a4e626bbb6406a2fbde1cf4ec5c8bbb64cda5
diff --git a/dev-python/pyside6-tools/pyside6-tools-6.6.2.ebuild b/dev-python/pyside6-tools/pyside6-tools-6.6.2.ebuild
new file mode 100644
index 000000000000..69a33589d002
--- /dev/null
+++ b/dev-python/pyside6-tools/pyside6-tools-6.6.2.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# TODO: Add PyPy once officially supported. See also:
+# https://bugreports.qt.io/browse/PYSIDE-535
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+LLVM_COMPAT=( {15..17} )
+
+inherit cmake llvm-r1 python-r1
+
+MY_PN="pyside-setup-everywhere-src"
+
+DESCRIPTION="PySide development tools (pyside6-lupdate with support for Python)"
+HOMEPAGE="https://wiki.qt.io/PySide6"
+SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${PV}-src/${MY_PN}-${PV}.tar.xz"
+S="${WORKDIR}/${MY_PN}-${PV}/sources/pyside-tools"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ ~dev-python/shiboken6-${PV}[${PYTHON_USEDEP},${LLVM_USEDEP}]
+ ~dev-python/pyside6-${PV}[quick,${PYTHON_USEDEP},${LLVM_USEDEP}]
+"
+DEPEND="${RDEPEND}
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ')
+"
+
+src_prepare() {
+ cmake_src_prepare
+
+ python_copy_sources
+}
+
+src_configure() {
+ pyside-tools_configure() {
+ local mycmakeargs=(
+ # If this is enabled cmake just makes copies of /lib64/qt6/bin/*
+ -DNO_QT_TOOLS=yes
+ )
+ cmake_src_configure
+ }
+
+ python_foreach_impl pyside-tools_configure
+}
+
+src_compile() {
+ pyside-tools_compile() {
+ cmake_src_compile
+ }
+
+ python_foreach_impl pyside-tools_compile
+}
+
+src_install() {
+ pyside-tools_install() {
+ # This replicates the contents of the PySide6 pypi wheel
+ DESTDIR="${BUILD_DIR}" cmake_build install
+ cp __init__.py "${BUILD_DIR}/usr/bin" || die
+ rm -r "${BUILD_DIR}/usr/bin/qtpy2cpp_lib/tests" || die
+ python_moduleinto PySide6/scripts
+ python_domodule "${BUILD_DIR}/usr/bin/."
+ }
+
+ python_foreach_impl pyside-tools_install
+
+ einstalldocs
+}
diff --git a/dev-python/pyside6/Manifest b/dev-python/pyside6/Manifest
index 7e173a3c10b3..6e0eca01cd41 100644
--- a/dev-python/pyside6/Manifest
+++ b/dev-python/pyside6/Manifest
@@ -1 +1,2 @@
DIST pyside-setup-everywhere-src-6.6.1.tar.xz 13887704 BLAKE2B 14a75cb6d20dced9b1edf79b8bb40ce44ecb7642f45743e59bc2d55b3e6fa5a742a0a0e5712b8f8cd4d908cc0f5103ac823390db968f42d0782818242c6f77e5 SHA512 3516f3e4595f1ba4ebbc680c5a94f9f939e04c0a3257720ebdd7ed12307bb007d1c73824029f51ec71c41a335268f34834250a5e87b3c4356d9e0a6f1d6b1f71
+DIST pyside-setup-everywhere-src-6.6.2.tar.xz 13975896 BLAKE2B b4572e58613e5446692e8c4cef28156fd0126ecda0c6334652ce49c6c7ce4614dbf2400c693addaa38e9b6cca9e331b9fe84c83ddb26e7014b8603afe2c54ad6 SHA512 1d23d27a4cbe74434ec5d391172416d324b4c92181401444821b456b4e27dabbdb3dcaad685a22b62c09f750555a4e626bbb6406a2fbde1cf4ec5c8bbb64cda5
diff --git a/dev-python/pyside6/pyside6-6.6.2.ebuild b/dev-python/pyside6/pyside6-6.6.2.ebuild
new file mode 100644
index 000000000000..13d711636034
--- /dev/null
+++ b/dev-python/pyside6/pyside6-6.6.2.ebuild
@@ -0,0 +1,247 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# TODO: Add PyPy once officially supported. See also:
+# https://bugreports.qt.io/browse/PYSIDE-535
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+LLVM_COMPAT=( {15..17} )
+
+inherit cmake llvm-r1 python-r1 virtualx
+
+# TODO: Add conditional support for "QtRemoteObjects" via a new "remoteobjects"
+# USE flag after an external "dev-qt/qtremoteobjects" package has been created.
+# TODO: Add conditional support for apidoc generation via a new "doc" USE flag.
+# Note that doing so requires the Qt source tree, sphinx, and graphviz. Once
+# ready, pass the ${QT_SRC_DIR} variable to cmake to enable this support.
+# TODO: Disable GLES support if the "gles2-only" USE flag is disabled. Note
+# that the "PySide6/QtGui/CMakeLists.txt" and
+# "PySide6/QtOpenGLFunctions/CMakeLists.txt" files test for GLES support by
+# testing whether the "Qt5::Gui" list property defined by
+# "/usr/lib64/cmake/Qt5Gui/Qt5GuiConfig.cmake" at "dev-qt/qtgui" installation
+# time contains the substring "opengles2". Since cmake does not permit
+# properties to be overridden from the command line, these files must instead
+# be conditionally patched to avoid these tests. An issue should be filed with
+# upstream requesting a CLI-settable variable to control this.
+
+MY_PN="pyside-setup-everywhere-src"
+
+DESCRIPTION="Python bindings for the Qt framework"
+HOMEPAGE="https://wiki.qt.io/PySide6"
+SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${PV}-src/${MY_PN}-${PV}.tar.xz"
+S="${WORKDIR}/${MY_PN}-${PV}/sources/pyside6"
+
+# See "sources/pyside6/PySide6/licensecomment.txt" for licensing details.
+# Shall we allow essential modules to be disabled? They are:
+# (core), gui, widgets, printsupport, sql, network, testlib, concurrent,
+# x11extras (for X)
+LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 )"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="
+ 3d bluetooth charts +concurrent +dbus designer gles2-only +gui help location
+ multimedia +network network-auth nfc positioning +opengl pdfium positioning
+ +printsupport qml quick quick3d serialport scxml sensors spatialaudio speech
+ +sql svg test +testlib webchannel webengine websockets +widgets +xml
+"
+
+# Manually reextract these requirements on version bumps by running the
+# following one-liner from within "${S}":
+# $ grep 'set.*_deps' PySide6/Qt*/CMakeLists.txt
+# Note that the "designer" USE flag corresponds to the "Qt6UiTools" module.
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ 3d? ( gui network )
+ charts? ( gui widgets )
+ designer? ( widgets )
+ gles2-only? ( gui )
+ gui? ( dbus opengl )
+ help? ( network sql widgets )
+ location? ( gui network positioning quick )
+ multimedia? ( gui network )
+ network-auth? ( network )
+ opengl? ( gui )
+ pdfium? ( gui )
+ printsupport? ( widgets )
+ qml? ( network )
+ quick? ( gui network opengl qml )
+ quick3d? ( gui network opengl qml quick )
+ spatialaudio? ( multimedia )
+ speech? ( multimedia )
+ sql? ( widgets )
+ svg? ( gui )
+ testlib? ( widgets )
+ webchannel? ( qml )
+ webengine? ( network gui printsupport quick webchannel )
+ websockets? ( network )
+ widgets? ( gui )
+"
+
+# Tests fail pretty bad and I'm not fixing them right now
+RESTRICT="test"
+
+# Minimal supported version of Qt.
+QT_PV="$(ver_cut 1-3)*:6"
+
+RDEPEND="${PYTHON_DEPS}
+ ~dev-python/shiboken6-${PV}[${PYTHON_USEDEP},${LLVM_USEDEP}]
+ =dev-qt/qtbase-${QT_PV}[concurrent?,dbus?,gles2-only=,network?,opengl?,sql?,widgets?,xml?]
+ 3d? ( =dev-qt/qt3d-${QT_PV}[qml?,gles2-only=] )
+ bluetooth? ( =dev-qt/qtconnectivity-${QT_PV}[bluetooth] )
+ charts? ( =dev-qt/qtcharts-${QT_PV} )
+ designer? ( =dev-qt/qttools-${QT_PV}[designer] )
+ gui? (
+ =dev-qt/qtbase-${QT_PV}[gui,jpeg(+)]
+ x11-libs/libxkbcommon
+ )
+ help? ( =dev-qt/qttools-${QT_PV}[assistant] )
+ location? ( =dev-qt/qtlocation-${QT_PV} )
+ multimedia? ( =dev-qt/qtmultimedia-${QT_PV} )
+ network-auth? ( =dev-qt/qtnetworkauth-${QT_PV} )
+ nfc? ( =dev-qt/qtconnectivity-${QT_PV}[nfc] )
+ pdfium? ( =dev-qt/qtwebengine-${QT_PV}[pdfium(-),widgets?] )
+ positioning? ( =dev-qt/qtpositioning-${QT_PV} )
+ printsupport? ( =dev-qt/qtbase-${QT_PV}[gui,widgets] )
+ qml? ( =dev-qt/qtdeclarative-${QT_PV}[widgets?] )
+ quick3d? ( =dev-qt/qtquick3d-${QT_PV} )
+ scxml? ( =dev-qt/qtscxml-${QT_PV} )
+ sensors? ( =dev-qt/qtsensors-${QT_PV}[qml?] )
+ speech? ( =dev-qt/qtspeech-${QT_PV} )
+ serialport? ( =dev-qt/qtserialport-${QT_PV} )
+ svg? ( =dev-qt/qtsvg-${QT_PV} )
+ testlib? ( =dev-qt/qtbase-${QT_PV}[gui] )
+ webchannel? ( =dev-qt/qtwebchannel-${QT_PV} )
+ webengine? ( || (
+ =dev-qt/qtwebengine-${QT_PV}[alsa,widgets?]
+ =dev-qt/qtwebengine-${QT_PV}[pulseaudio,widgets?]
+ )
+ )
+ websockets? ( =dev-qt/qtwebsockets-${QT_PV} )
+"
+DEPEND="${RDEPEND}
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ')
+ test? ( =dev-qt/qtbase-${QT_PV}[gui] )
+"
+# testlib is toggled by the gui flag on qtbase
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.3.1-no-strip.patch"
+ # References files not present in our dev-qt/qtbase
+ "${FILESDIR}/${PN}-6.6.0-no-qtexampleicons.patch"
+)
+
+src_configure() {
+ # See collect_module_if_found macros in PySideHelpers.cmake
+ local mycmakeargs=(
+ -DBUILD_TESTS=$(usex test)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DAnimation=$(usex !3d)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DCore=$(usex !3d)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DExtras=$(usex !3d)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DInput=$(usex !3d)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DLogic=$(usex !3d)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt63DRender=$(usex !3d)
+ #-DCMAKE_DISABLE_FIND_PACKAGE_Qt6AxContainer=yes
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Bluetooth=$(usex !bluetooth)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Charts=$(usex !charts)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Concurrent=$(usex !concurrent)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6DataVisualization=yes
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6DBus=$(usex !dbus)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Designer=$(usex !designer)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Gui=$(usex !gui)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Help=$(usex !help)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6HttpServer=yes
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Location=$(usex !location)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Multimedia=$(usex !multimedia)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6MultimediaWidgets=$(usex !multimedia yes $(usex !widgets))
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6NetworkAuth=$(usex !network-auth)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Network=$(usex !network)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Nfc=$(usex !nfc)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6OpenGL=$(usex !opengl)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6OpenGLWidgets=$(usex !opengl yes $(usex !widgets))
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Pdf=$(usex !pdfium)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6PdfWidgets=$(usex !pdfium yes $(usex !widgets))
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Positioning=$(usex !positioning)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6PrintSupport=$(usex !printsupport)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Qml=$(usex !qml)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Quick3D=$(usex !quick3d)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Quick=$(usex !quick)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6QuickControls2=yes
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6QuickWidgets=$(usex !quick yes $(usex !widgets))
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6RemoteObjects=yes
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Scxml=$(usex !scxml)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Sensors=$(usex !sensors)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SerialPort=$(usex !serialport)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SpatialAudio=$(usex !spatialaudio)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Sql=$(usex !sql)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6StateMachine=yes
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Svg=$(usex !svg)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6SvgWidgets=$(usex !svg yes $(usex !widgets))
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Test=$(usex !testlib)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6TextToSpeech=$(usex !speech)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6UiTools=$(usex !designer)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebChannel=$(usex !webchannel)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineCore=$(usex !webengine)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineQuick=$(usex !webengine yes $(usex !quick))
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebEngineWidgets=$(usex !webengine yes $(usex !widgets))
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6WebSockets=$(usex !websockets)
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Widgets=$(usex !widgets)
+ #-DCMAKE_DISABLE_FIND_PACKAGE_Qt6WinExtras=yes
+ -DCMAKE_DISABLE_FIND_PACKAGE_Qt6Xml=$(usex !xml)
+ # try to avoid pre-stripping
+ -DQFP_NO_OVERRIDE_OPTIMIZATION_FLAGS=yes
+ -DQFP_NO_STRIP=yes
+
+ )
+
+ pyside6_configure() {
+ local mycmakeargs=(
+ "${mycmakeargs[@]}"
+ -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DPYTHON_SITE_PACKAGES="$(python_get_sitedir)"
+ -DSHIBOKEN_PYTHON_SHARED_LIBRARY_SUFFIX="-${EPYTHON}"
+ )
+ cmake_src_configure
+ }
+ python_foreach_impl pyside6_configure
+}
+
+src_compile() {
+ python_foreach_impl cmake_src_compile
+}
+
+src_test() {
+ local -x PYTHONDONTWRITEBYTECODE
+ python_foreach_impl virtx cmake_src_test
+}
+
+src_install() {
+ pyside6_install() {
+ cmake_src_install
+ python_optimize
+
+ # Uniquify the shiboken6 pkgconfig dependency in the PySide6 pkgconfig
+ # file for the current Python target. See also:
+ # https://github.com/leycec/raiagent/issues/73
+ sed -i -e 's~^Requires: shiboken6$~&-'${EPYTHON}'~' \
+ "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}.pc || die
+
+ # Uniquify the PySide6 pkgconfig file for the current Python target,
+ # preserving an unversioned "pyside6.pc" file arbitrarily associated
+ # with the last Python target. (See the previously linked issue.)
+ cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
+ }
+ python_foreach_impl pyside6_install
+
+ # CMakeLists.txt installs a "PySide6Targets-gentoo.cmake" file forcing
+ # downstream consumers (e.g., pyside6-tools) to target one
+ # "libpyside6-*.so" library linked to one Python interpreter. See also:
+ # https://bugreports.qt.io/browse/PYSIDE-1053
+ # https://github.com/leycec/raiagent/issues/74
+ sed -i -e 's~pyside6-python[[:digit:]]\+\.[[:digit:]]\+~pyside6${PYTHON_CONFIG_SUFFIX}~g' \
+ "${ED}/usr/$(get_libdir)/cmake/PySide6/PySide6Targets-${CMAKE_BUILD_TYPE,,}.cmake" || die
+}
diff --git a/dev-python/shiboken6/Manifest b/dev-python/shiboken6/Manifest
index 7e173a3c10b3..6e0eca01cd41 100644
--- a/dev-python/shiboken6/Manifest
+++ b/dev-python/shiboken6/Manifest
@@ -1 +1,2 @@
DIST pyside-setup-everywhere-src-6.6.1.tar.xz 13887704 BLAKE2B 14a75cb6d20dced9b1edf79b8bb40ce44ecb7642f45743e59bc2d55b3e6fa5a742a0a0e5712b8f8cd4d908cc0f5103ac823390db968f42d0782818242c6f77e5 SHA512 3516f3e4595f1ba4ebbc680c5a94f9f939e04c0a3257720ebdd7ed12307bb007d1c73824029f51ec71c41a335268f34834250a5e87b3c4356d9e0a6f1d6b1f71
+DIST pyside-setup-everywhere-src-6.6.2.tar.xz 13975896 BLAKE2B b4572e58613e5446692e8c4cef28156fd0126ecda0c6334652ce49c6c7ce4614dbf2400c693addaa38e9b6cca9e331b9fe84c83ddb26e7014b8603afe2c54ad6 SHA512 1d23d27a4cbe74434ec5d391172416d324b4c92181401444821b456b4e27dabbdb3dcaad685a22b62c09f750555a4e626bbb6406a2fbde1cf4ec5c8bbb64cda5
diff --git a/dev-python/shiboken6/shiboken6-6.6.2.ebuild b/dev-python/shiboken6/shiboken6-6.6.2.ebuild
new file mode 100644
index 000000000000..6a7c30b84b70
--- /dev/null
+++ b/dev-python/shiboken6/shiboken6-6.6.2.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# TODO: Split the "/usr/bin/shiboken6" binding generator from the
+# "/usr/lib64/libshiboken6-*.so" family of shared libraries. The former
+# requires everything (including Clang) at runtime; the latter only requires
+# Qt and Python at runtime. Note that "pip" separates these two as well. See:
+# https://doc.qt.io/qtforpython/shiboken6/faq.html#is-there-any-runtime-dependency-on-the-generated-binding
+# Once split, the PySide6 ebuild should be revised to require
+# "/usr/bin/shiboken6" at build time and "libshiboken6-*.so" at runtime.
+# TODO: Add PyPy once officially supported. See also:
+# https://bugreports.qt.io/browse/PYSIDE-535
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+LLVM_COMPAT=( {15..17} )
+
+inherit cmake llvm-r1 python-r1 toolchain-funcs
+
+MY_PN="pyside-setup-everywhere-src"
+
+DESCRIPTION="Python binding generator for C++ libraries"
+HOMEPAGE="https://wiki.qt.io/PySide6"
+SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-${PV}-src/${MY_PN}-${PV}.tar.xz"
+S="${WORKDIR}/${MY_PN}-${PV}/sources/shiboken6"
+
+# The "sources/shiboken6/libshiboken" directory is triple-licensed under the
+# GPL v2, v3+, and LGPL v3. All remaining files are licensed under the GPL v3
+# with version 1.0 of a Qt-specific exception enabling shiboken6 output to be
+# arbitrarily relicensed. (TODO)
+LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 ) GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="+docstrings numpy test vulkan"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+# Tests fail pretty bad and I'm not fixing them right now
+RESTRICT="test"
+
+# Minimal supported version of Qt.
+QT_PV="$(ver_cut 1-3)*:6"
+
+# Since Clang is required at both build- and runtime, BDEPEND is omitted here.
+RDEPEND="${PYTHON_DEPS}
+ =dev-qt/qtbase-${QT_PV}
+ $(llvm_gen_dep '
+ sys-devel/clang:${LLVM_SLOT}
+ sys-devel/llvm:${LLVM_SLOT}
+ ')
+ docstrings? (
+ >=dev-libs/libxml2-2.6.32
+ >=dev-libs/libxslt-1.1.19
+ )
+ numpy? ( dev-python/numpy[${PYTHON_USEDEP}] )
+ vulkan? ( dev-util/vulkan-headers )
+"
+DEPEND="${RDEPEND}
+ test? ( =dev-qt/qtbase-${QT_PV}[gui] )
+"
+# testlib is toggled by the gui flag on qtbase
+
+DOCS=( AUTHORS )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-6.3.1-no-strip.patch"
+)
+
+src_prepare() {
+ # TODO: File upstream issue requesting a sane way to disable NumPy support.
+ if ! use numpy; then
+ sed -i -e '/\bprint(os\.path\.realpath(numpy))/d' \
+ libshiboken/CMakeLists.txt || die
+ fi
+
+ # Shiboken6 assumes Vulkan headers live under either "$VULKAN_SDK/include"
+ # or "$VK_SDK_PATH/include" rather than "${EPREFIX}/usr/include/vulkan".
+ if use vulkan; then
+ sed -i -e "s~\bdetectVulkan(&headerPaths);~headerPaths.append(HeaderPath{QByteArrayLiteral(\"${EPREFIX}/usr/include/vulkan\"), HeaderType::System});~" \
+ ApiExtractor/clangparser/compilersupport.cpp || die
+ fi
+
+ local clangver="$(CPP=clang clang-major-version)"
+
+ # Clang 15 and older used the full version as a directory name.
+ if [[ ${clangver} -lt 16 ]]; then
+ clangver="$(CPP=clang clang-fullversion)"
+ fi
+
+ # Shiboken6 assumes the "/usr/lib/clang/${CLANG_NEWEST_VERSION}/include/"
+ # subdirectory provides Clang builtin includes (e.g., "stddef.h") for the
+ # currently installed version of Clang, where ${CLANG_NEWEST_VERSION} is
+ # the largest version specifier that exists under the "/usr/lib/clang/"
+ # subdirectory. This assumption is false in edge cases, including when
+ # users downgrade from newer Clang versions but fail to remove those
+ # versions with "emerge --depclean". See also:
+ # https://github.com/leycec/raiagent/issues/85
+ #
+ # Sadly, the clang-* family of functions exported by the "toolchain-funcs"
+ # eclass are defective, returning nonsensical placeholder strings if the
+ # end user has *NOT* explicitly configured their C++ compiler to be Clang.
+ # PySide6 does *NOT* care whether the end user has done so or not, as
+ # PySide6 unconditionally requires Clang in either case. See also:
+ # https://bugs.gentoo.org/619490
+ sed -i -e 's~(findClangBuiltInIncludesDir())~(QStringLiteral("'"${EPREFIX}"'/usr/lib/clang/'"${clangver}"'/include"))~' \
+ ApiExtractor/clangparser/compilersupport.cpp || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ # Minimal tests for now, 2 failing with the extended version
+ # FIXME Subscripted generics cannot be used with class and instance checks
+ local mycmakeargs=(
+ -DBUILD_TESTS=$(usex test)
+ -DDISABLE_DOCSTRINGS=$(usex !docstrings)
+ )
+
+ shiboken6_configure() {
+ local mycmakeargs=(
+ "${mycmakeargs[@]}"
+ -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}"
+ -DPYTHON_EXECUTABLE="${PYTHON}"
+ -DUSE_PYTHON_VERSION="${EPYTHON#python}"
+ )
+ # CMakeLists.txt expects LLVM_INSTALL_DIR as an environment variable.
+ local -x LLVM_INSTALL_DIR="$(get_llvm_prefix)"
+ cmake_src_configure
+ }
+ python_foreach_impl shiboken6_configure
+}
+
+src_compile() {
+ python_foreach_impl cmake_src_compile
+}
+
+src_test() {
+ python_foreach_impl cmake_src_test
+}
+
+src_install() {
+ shiboken6_install() {
+ cmake_src_install
+ python_optimize
+
+ # Uniquify the "shiboken6" executable for the current Python target,
+ # preserving an unversioned "shiboken6" file arbitrarily associated
+ # with the last Python target.
+ cp "${ED}"/usr/bin/${PN}{,-${EPYTHON}} || die
+
+ # Uniquify the Shiboken6 pkgconfig file for the current Python target,
+ # preserving an unversioned "shiboken6.pc" file arbitrarily associated
+ # with the last Python target. See also:
+ # https://github.com/leycec/raiagent/issues/73
+ cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc || die
+ }
+ python_foreach_impl shiboken6_install
+
+ # CMakeLists.txt installs a "Shiboken6Targets-gentoo.cmake" file forcing
+ # downstream consumers (e.g., PySide6) to target one "libshiboken6-*.so"
+ # library and one "shiboken6" executable linked to one Python interpreter.
+ # See also:
+ # https://bugreports.qt.io/browse/PYSIDE-1053
+ # https://github.com/leycec/raiagent/issues/74
+ sed -i \
+ -e 's~shiboken6-python[[:digit:]]\+\.[[:digit:]]\+~shiboken6${PYTHON_CONFIG_SUFFIX}~g' \
+ -e 's~/bin/shiboken6~/bin/shiboken6${PYTHON_CONFIG_SUFFIX}~g' \
+ "${ED}/usr/$(get_libdir)"/cmake/Shiboken6/Shiboken6Targets-${CMAKE_BUILD_TYPE,,}.cmake || die
+
+ # Remove the broken "shiboken_tool.py" script. By inspection, this script
+ # reduces to a noop. Moreover, this script raises the following exception:
+ # FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/../shiboken_tool.py': '/usr/bin/../shiboken_tool.py'
+ rm "${ED}"/usr/bin/shiboken_tool.py || die
+}
diff --git a/dev-python/urllib3/files/urllib3-2.2.0-pytest-8.patch b/dev-python/urllib3/files/urllib3-2.2.0-pytest-8.patch
new file mode 100644
index 000000000000..9baa3379a7c9
--- /dev/null
+++ b/dev-python/urllib3/files/urllib3-2.2.0-pytest-8.patch
@@ -0,0 +1,112 @@
+From aa8d3dd2535cc125e123e5c2bca38738d6864b2a Mon Sep 17 00:00:00 2001
+From: Ruben Laguna <ruben.laguna@gmail.com>
+Date: Mon, 5 Feb 2024 15:29:35 +0100
+Subject: [PATCH] Fix ssl_version tests for upcoming migration to pytest 8
+
+---
+ dev-requirements.txt | 2 +-
+ test/contrib/test_pyopenssl.py | 1 -
+ test/with_dummyserver/test_https.py | 35 ++++++++++++++++++++---------
+ 3 files changed, 26 insertions(+), 12 deletions(-)
+
+diff --git a/test/contrib/test_pyopenssl.py b/test/contrib/test_pyopenssl.py
+index b4799ce802..eaca77ba6f 100644
+--- a/test/contrib/test_pyopenssl.py
++++ b/test/contrib/test_pyopenssl.py
+@@ -38,7 +38,6 @@ def teardown_module() -> None:
+ from ..test_ssl import TestSSL # noqa: E402, F401
+ from ..test_util import TestUtilSSL # noqa: E402, F401
+ from ..with_dummyserver.test_https import ( # noqa: E402, F401
+- TestHTTPS,
+ TestHTTPS_IPV4SAN,
+ TestHTTPS_IPV6SAN,
+ TestHTTPS_TLSv1,
+diff --git a/test/with_dummyserver/test_https.py b/test/with_dummyserver/test_https.py
+index aa22f11879..b8353d758b 100644
+--- a/test/with_dummyserver/test_https.py
++++ b/test/with_dummyserver/test_https.py
+@@ -65,7 +65,7 @@
+ CLIENT_CERT = CLIENT_INTERMEDIATE_PEM
+
+
+-class TestHTTPS(HTTPSHypercornDummyServerTestCase):
++class BaseTestHTTPS(HTTPSHypercornDummyServerTestCase):
+ tls_protocol_name: str | None = None
+
+ def tls_protocol_not_default(self) -> bool:
+@@ -83,11 +83,17 @@ def tls_version(self) -> ssl.TLSVersion:
+ def ssl_version(self) -> int:
+ if self.tls_protocol_name is None:
+ return pytest.skip("Skipping base test class")
+- attribute = f"PROTOCOL_{self.tls_protocol_name.replace('.', '_')}"
+- ssl_version = getattr(ssl, attribute, None)
+- if ssl_version is None:
+- return pytest.skip(f"ssl.{attribute} isn't available")
+- return ssl_version # type: ignore[no-any-return]
++
++ if self.tls_protocol_name == "TLSv1.3" and ssl.HAS_TLSv1_3:
++ return ssl.PROTOCOL_TLS_CLIENT
++ if self.tls_protocol_name == "TLSv1.2" and ssl.HAS_TLSv1_2:
++ return ssl.PROTOCOL_TLSv1_2
++ if self.tls_protocol_name == "TLSv1.1" and ssl.HAS_TLSv1_1:
++ return ssl.PROTOCOL_TLSv1_1
++ if self.tls_protocol_name == "TLSv1" and ssl.HAS_TLSv1:
++ return ssl.PROTOCOL_TLSv1
++ else:
++ return pytest.skip(f"{self.tls_protocol_name} isn't available")
+
+ @classmethod
+ def setup_class(cls) -> None:
+@@ -797,6 +803,10 @@ def test_tls_protocol_name_of_socket(self) -> None:
+ def test_ssl_version_is_deprecated(self) -> None:
+ if self.tls_protocol_name is None:
+ pytest.skip("Skipping base test class")
++ if self.ssl_version() == ssl.PROTOCOL_TLS_CLIENT:
++ pytest.skip(
++ "Skipping because ssl_version=ssl.PROTOCOL_TLS_CLIENT is not deprecated"
++ )
+
+ with HTTPSConnectionPool(
+ self.host, self.port, ca_certs=DEFAULT_CA, ssl_version=self.ssl_version()
+@@ -964,6 +974,11 @@ def test_default_ssl_context_ssl_min_max_versions(self) -> None:
+ assert ctx.maximum_version == expected_maximum_version
+
+ def test_ssl_context_ssl_version_uses_ssl_min_max_versions(self) -> None:
++ if self.ssl_version() == ssl.PROTOCOL_TLS_CLIENT:
++ pytest.skip(
++ "Skipping because ssl_version=ssl.PROTOCOL_TLS_CLIENT is not deprecated"
++ )
++
+ with pytest.warns(
+ DeprecationWarning,
+ match=r"'ssl_version' option is deprecated and will be removed in "
+@@ -977,25 +992,25 @@ def test_ssl_context_ssl_version_uses_ssl_min_max_versions(self) -> None:
+
+
+ @pytest.mark.usefixtures("requires_tlsv1")
+-class TestHTTPS_TLSv1(TestHTTPS):
++class TestHTTPS_TLSv1(BaseTestHTTPS):
+ tls_protocol_name = "TLSv1"
+ certs = TLSv1_CERTS
+
+
+ @pytest.mark.usefixtures("requires_tlsv1_1")
+-class TestHTTPS_TLSv1_1(TestHTTPS):
++class TestHTTPS_TLSv1_1(BaseTestHTTPS):
+ tls_protocol_name = "TLSv1.1"
+ certs = TLSv1_1_CERTS
+
+
+ @pytest.mark.usefixtures("requires_tlsv1_2")
+-class TestHTTPS_TLSv1_2(TestHTTPS):
++class TestHTTPS_TLSv1_2(BaseTestHTTPS):
+ tls_protocol_name = "TLSv1.2"
+ certs = TLSv1_2_CERTS
+
+
+ @pytest.mark.usefixtures("requires_tlsv1_3")
+-class TestHTTPS_TLSv1_3(TestHTTPS):
++class TestHTTPS_TLSv1_3(BaseTestHTTPS):
+ tls_protocol_name = "TLSv1.3"
+ certs = TLSv1_3_CERTS
+
diff --git a/dev-python/urllib3/files/urllib3-2.2.0-revert.patch b/dev-python/urllib3/files/urllib3-2.2.0-revert.patch
new file mode 100644
index 000000000000..14175ecec58b
--- /dev/null
+++ b/dev-python/urllib3/files/urllib3-2.2.0-revert.patch
@@ -0,0 +1,42 @@
+From 49b2ddaf07ec9ef65ef12d0218117f20e739ee6e Mon Sep 17 00:00:00 2001
+From: Quentin Pradet <quentin.pradet@gmail.com>
+Date: Fri, 16 Feb 2024 11:35:30 +0400
+Subject: [PATCH] Stop casting request headers to HTTPHeaderDict (#3344)
+
+While this was done to fix a mypy error, we did not notice the
+consequences:
+
+ * This breaks boto3 that subclasses HTTPConnection because
+ HTTPHeaderDict does not support bytes values yet.
+ * When proxying, headers are still a dictionary by default.
+
+We can decide to reintroduce a forced conversion to HTTPHeaderDict in
+urllib3 3.0 if the above issues are fixed.
+---
+ changelog/3343.bugfix.rst | 1 +
+ src/urllib3/connectionpool.py | 4 ++--
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+ create mode 100644 changelog/3343.bugfix.rst
+
+diff --git a/changelog/3343.bugfix.rst b/changelog/3343.bugfix.rst
+new file mode 100644
+index 0000000000..4f2df9e7a4
+--- /dev/null
++++ b/changelog/3343.bugfix.rst
+@@ -0,0 +1 @@
++Fixed ``HTTPConnectionPool.urlopen`` to stop automatically casting non-proxy headers to ``HTTPHeaderDict``. This change was premature as it did not apply to proxy headers and ``HTTPHeaderDict`` does not handle byte header values correctly yet.
+diff --git a/src/urllib3/connectionpool.py b/src/urllib3/connectionpool.py
+index 1036f0d718..bd58ff14dd 100644
+--- a/src/urllib3/connectionpool.py
++++ b/src/urllib3/connectionpool.py
+@@ -751,8 +751,8 @@ def urlopen( # type: ignore[override]
+ # have to copy the headers dict so we can safely change it without those
+ # changes being reflected in anyone else's copy.
+ if not http_tunnel_required:
+- headers = HTTPHeaderDict(headers)
+- headers.update(self.proxy_headers)
++ headers = headers.copy() # type: ignore[attr-defined]
++ headers.update(self.proxy_headers) # type: ignore[union-attr]
+
+ # Must keep the exception bound to a separate variable or else Python 3
+ # complains about UnboundLocalError.
diff --git a/dev-python/urllib3/urllib3-2.2.0.ebuild b/dev-python/urllib3/urllib3-2.2.0-r1.ebuild
index fb2fc467f430..35b1a6099418 100644
--- a/dev-python/urllib3/urllib3-2.2.0.ebuild
+++ b/dev-python/urllib3/urllib3-2.2.0-r1.ebuild
@@ -66,6 +66,13 @@ BDEPEND="
"
src_prepare() {
+ local PATCHES=(
+ # https://github.com/urllib3/urllib3/commit/49b2ddaf07ec9ef65ef12d0218117f20e739ee6e
+ "${FILESDIR}/${P}-revert.patch"
+ # https://github.com/urllib3/urllib3/commit/aa8d3dd2535cc125e123e5c2bca38738d6864b2a
+ "${FILESDIR}/${P}-pytest-8.patch"
+ )
+
# upstream considers 0.5 s to be "long" for a timeout
# we get tons of test failures on *fast* systems because of that
sed -i -e '/LONG_TIMEOUT/s:0.5:5:' test/__init__.py || die
diff --git a/dev-python/vcrpy/files/vcrpy-6.0.1-httpbin-compat.patch b/dev-python/vcrpy/files/vcrpy-6.0.1-httpbin-compat.patch
new file mode 100644
index 000000000000..4e2a91cb4bac
--- /dev/null
+++ b/dev-python/vcrpy/files/vcrpy-6.0.1-httpbin-compat.patch
@@ -0,0 +1,40 @@
+From e60dafb8dce589e7deb63fec552f5c05bd19ac6d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Fri, 16 Feb 2024 19:33:41 +0100
+Subject: [PATCH] Improve test compatibility with legacy httpbin index
+
+Make the tests slightly more flexible to match both the flasgger-based
+and legacy httpbin index. This is needed for compatibility with
+https://github.com/psf/httpbin/pull/44 when flasgger is not installed
+(e.g. on architectures that are not supported by Rust).
+---
+ tests/integration/test_basic.py | 2 +-
+ tests/integration/test_register_persister.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/integration/test_basic.py b/tests/integration/test_basic.py
+index bfad6153..99121456 100644
+--- a/tests/integration/test_basic.py
++++ b/tests/integration/test_basic.py
+@@ -39,7 +39,7 @@ def test_basic_json_use(tmpdir, httpbin):
+ test_fixture = str(tmpdir.join("synopsis.json"))
+ with vcr.use_cassette(test_fixture, serializer="json"):
+ response = urlopen(httpbin.url).read()
+- assert b"A simple HTTP Request &amp; Response Service." in response
++ assert b"HTTP Request &amp; Response Service" in response
+
+
+ def test_patched_content(tmpdir, httpbin):
+diff --git a/tests/integration/test_register_persister.py b/tests/integration/test_register_persister.py
+index e904197c..375f14be 100644
+--- a/tests/integration/test_register_persister.py
++++ b/tests/integration/test_register_persister.py
+@@ -66,7 +66,7 @@ def test_load_cassette_with_custom_persister(tmpdir, httpbin):
+
+ with my_vcr.use_cassette(test_fixture, serializer="json"):
+ response = urlopen(httpbin.url).read()
+- assert b"A simple HTTP Request &amp; Response Service." in response
++ assert b"HTTP Request &amp; Response Service" in response
+
+
+ def test_load_cassette_persister_exception_handling(tmpdir, httpbin):
diff --git a/dev-python/vcrpy/vcrpy-6.0.1.ebuild b/dev-python/vcrpy/vcrpy-6.0.1.ebuild
index d8863b3d1fd6..910a05a43f34 100644
--- a/dev-python/vcrpy/vcrpy-6.0.1.ebuild
+++ b/dev-python/vcrpy/vcrpy-6.0.1.ebuild
@@ -38,6 +38,11 @@ BDEPEND="
distutils_enable_tests pytest
+PATCHES=(
+ # https://github.com/kevin1024/vcrpy/pull/823
+ "${FILESDIR}/${P}-httpbin-compat.patch"
+)
+
python_test() {
local EPYTEST_DESELECT=(
# these tests are failing with recent dev-python/werkzeug; losely related: