File mingw-python3_win-modules.patch of Package mingw-python3

diff -rupN --no-dereference Python-3.11.8/Modules/Setup Python-3.11.8-new/Modules/Setup
--- Python-3.11.8/Modules/Setup	2024-02-16 22:21:29.974347426 +0100
+++ Python-3.11.8-new/Modules/Setup	2024-02-16 22:21:30.325347765 +0100
@@ -270,6 +270,12 @@ mmap mmapmodule.c
 # macOS specific module, needs SystemConfiguration and CoreFoundation framework
 # _scproxy _scproxy.c
 
+# Windows specific modules
+msvcrt ../PC/msvcrtmodule.c
+_winapi _winapi.c
+winsound ../PC/winsound.c -lwinmm
+_overlapped overlapped.c
+
 # Examples
 
 #xx xxmodule.c
diff -rupN --no-dereference Python-3.11.8/Modules/Setup.bootstrap.in Python-3.11.8-new/Modules/Setup.bootstrap.in
--- Python-3.11.8/Modules/Setup.bootstrap.in	2024-02-06 22:21:21.000000000 +0100
+++ Python-3.11.8-new/Modules/Setup.bootstrap.in	2024-02-16 22:21:30.328347768 +0100
@@ -8,15 +8,15 @@
 # module C APIs are used in core
 atexit atexitmodule.c
 faulthandler faulthandler.c
-posix posixmodule.c
-_signal signalmodule.c
+nt posixmodule.c
+_signal signalmodule.c -lws2_32
 _tracemalloc _tracemalloc.c
 
 # modules used by importlib, deepfreeze, freeze, runpy, and sysconfig
 _codecs _codecsmodule.c
 _collections _collectionsmodule.c
 errno errnomodule.c
-_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c
+_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c _io/winconsoleio.c
 itertools itertoolsmodule.c
 _sre _sre/sre.c
 _thread _threadmodule.c
@@ -33,3 +33,5 @@ _symtable symtablemodule.c
 
 # for systems without $HOME env, used by site._getuserbase()
 @MODULE_PWD_TRUE@pwd pwdmodule.c
+
+winreg ../PC/winreg.c
diff -rupN --no-dereference Python-3.11.8/setup.py Python-3.11.8-new/setup.py
--- Python-3.11.8/setup.py	2024-02-16 22:21:29.977347429 +0100
+++ Python-3.11.8-new/setup.py	2024-02-16 22:21:30.332347772 +0100
@@ -1382,6 +1382,15 @@ class PyBuildExt(build_ext):
         self.addext(Extension('xxlimited', ['xxlimited.c']))
         self.addext(Extension('xxlimited_35', ['xxlimited_35.c']))
 
+        # Modules with some Windows dependencies:
+        if HOST_PLATFORM.startswith(('mingw', 'win')):
+            srcdir = sysconfig.get_config_var('srcdir')
+            pc_srcdir = os.path.abspath(os.path.join(srcdir, 'PC'))
+
+            self.add(Extension('_msi', [os.path.join(pc_srcdir, p)
+                for p in ['_msi.c']],
+                libraries=['msi','cabinet','rpcrt4']) ) # To link with lib(msi|cabinet|rpcrt4).a
+
     def detect_tkinter(self):
         tkinter_libs = ['tcl', 'tk']
         self.addext(Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], libraries=tkinter_libs))
openSUSE Build Service is sponsored by