diff --git a/modulesets-stable/bootstrap.modules b/modulesets-stable/bootstrap.modules
index 51fa799e..7b467409 100644
--- a/modulesets-stable/bootstrap.modules
+++ b/modulesets-stable/bootstrap.modules
@@ -53,14 +53,26 @@
repo="ftp.gnu.org" />
+
+
+
+
+
-
+
+
+
+ cmakeargs="-DFT_DISABLE_BROTLI=ON -DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE -D BUILD_SHARED_LIBS=true -D CMAKE_BUILD_TYPE=Release">
+Date: Sat Jan 27 11:32:52 2024 +0000
+
+ Add skeleton setup.py.
+
+diff --git a/setup.py b/setup.py
+new file mode 100755
+index 0000000..851cb3f
+--- /dev/null
++++ b/setup.py
+@@ -0,0 +1,3 @@
++#!/usr/bin/env python3
++from setuptools import setup
++setup()
+\ No newline at end of file
diff --git a/patches/dnspython-setup-py.patch b/patches/dnspython-setup-py.patch
new file mode 100644
index 00000000..14af1fda
--- /dev/null
+++ b/patches/dnspython-setup-py.patch
@@ -0,0 +1,62 @@
+commit 16e7070b64e4fe20d87c12ee806eb9201daba29d
+Author: Catalin Patulea
+Date: Sat Jan 27 11:22:24 2024 +0000
+
+ Revert "Delete setup.py."
+
+ This reverts commit c9bb83f85c340aff02b87746a665375927cede2c.
+
+diff --git a/setup.py b/setup.py
+new file mode 100755
+index 0000000..cbbbecb
+--- /dev/null
++++ b/setup.py
+@@ -0,0 +1,48 @@
++#!/usr/bin/env python3
++#
++# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
++#
++# Copyright (C) 2003-2007, 2009-2011 Nominum, Inc.
++#
++# Permission to use, copy, modify, and distribute this software and its
++# documentation for any purpose with or without fee is hereby granted,
++# provided that the above copyright notice and this permission notice
++# appear in all copies.
++#
++# THE SOFTWARE IS PROVIDED "AS IS" AND NOMINUM DISCLAIMS ALL WARRANTIES
++# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
++# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL NOMINUM BE LIABLE FOR
++# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
++# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
++# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
++# OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++
++import sys
++
++from setuptools import setup
++
++try:
++ sys.argv.remove("--cython-compile")
++except ValueError:
++ compile_cython = False
++else:
++ compile_cython = True
++ from Cython.Build import cythonize
++
++ ext_modules = cythonize(
++ [
++ "dns/*.py",
++ "dns/dnssecalgs/*.py",
++ "dns/quic/*.py",
++ "dns/rdtypes/*.py",
++ "dns/rdtypes/*/*.py",
++ ],
++ language_level="3",
++ )
++
++kwargs = {
++ "ext_modules": ext_modules if compile_cython else None,
++ "zip_safe": False if compile_cython else None,
++}
++
++setup(**kwargs)
diff --git a/patches/idna-setup-py.patch b/patches/idna-setup-py.patch
new file mode 100644
index 00000000..c79fd34a
--- /dev/null
+++ b/patches/idna-setup-py.patch
@@ -0,0 +1,16 @@
+commit 61401d62c557246600b45d09d471450e97b8c6f0
+Author: Catalin Patulea
+Date: Sat Jan 27 11:32:52 2024 +0000
+
+ Add skeleton setup.py.
+
+diff --git a/setup.py b/setup.py
+new file mode 100755
+index 0000000..851cb3f
+--- /dev/null
++++ b/setup.py
+@@ -0,0 +1,3 @@
++#!/usr/bin/env python3
++from setuptools import setup
++setup()
+\ No newline at end of file
diff --git a/patches/setuptools-rust-setup-py.patch b/patches/setuptools-rust-setup-py.patch
new file mode 100644
index 00000000..c79fd34a
--- /dev/null
+++ b/patches/setuptools-rust-setup-py.patch
@@ -0,0 +1,16 @@
+commit 61401d62c557246600b45d09d471450e97b8c6f0
+Author: Catalin Patulea
+Date: Sat Jan 27 11:32:52 2024 +0000
+
+ Add skeleton setup.py.
+
+diff --git a/setup.py b/setup.py
+new file mode 100755
+index 0000000..851cb3f
+--- /dev/null
++++ b/setup.py
+@@ -0,0 +1,3 @@
++#!/usr/bin/env python3
++from setuptools import setup
++setup()
+\ No newline at end of file
diff --git a/xpra-python3.modules b/xpra-python3.modules
index 460f126f..c99d1647 100644
--- a/xpra-python3.modules
+++ b/xpra-python3.modules
@@ -171,7 +171,9 @@
+ version="1.8.1">
+
+
@@ -189,7 +191,9 @@
+ version="42.0.2">
+
+
@@ -407,7 +411,9 @@
+ version="2.4.2">
+
+
@@ -672,9 +678,9 @@
+ module="p/pyobjc-framework-AVFoundation/pyobjc-framework-AVFoundation-10.1.tar.gz"
+ hash="sha256:07e065c6904fbd6afc434a79888461cdd4097b4153dd592dcbe9c8bef01ee701"
+ version="10.1">
@@ -786,7 +792,9 @@
+ version="3.6">
+
+