Merge tag '2.8.9' into develop

This commit is contained in:
Kay Hayen
2025-11-28 14:14:32 +00:00
6 changed files with 37 additions and 36 deletions

6
debian/changelog vendored
View File

@@ -4,6 +4,12 @@ nuitka (4.0~rc2+ds-1) unstable; urgency=medium
-- Kay Hayen <kay.hayen@gmail.com> Wed, 26 Nov 2025 11:21:52 +0000
nuitka (2.8.9+ds-1) unstable; urgency=medium
* New upstream hotfix release.
-- Kay Hayen <kay.hayen@gmail.com> Fri, 28 Nov 2025 13:58:44 +0000
nuitka (2.8.8+ds-1) unstable; urgency=medium
* New upstream hotfix release.

View File

@@ -354,7 +354,7 @@ NUITKA_MAY_BE_UNUSED static bool UNPACK_ITERATOR_CHECK(PyThreadState *tstate,
SET_EXCEPTION_PRESERVATION_STATE_FROM_TYPE0_FORMAT1(tstate, exception_state, PyExc_ValueError,
"too many values to unpack (expected %d)", expected);
#else
int gotten = -1;
Py_ssize_t gotten = -1;
if (Py_TYPE(iterator) == &PyTupleIter_Type) {
gotten = PyTuple_GET_SIZE(((_PyTupleIterObject *)iterator)->it_seq);

View File

@@ -132,10 +132,12 @@ def _call_env_subst(env, string, *args, **kw):
def smart_link(source, target, env, for_signature):
import SCons.Tool.cxx
import SCons.Tool.FortranCommon
# Nuitka: Avoid unused tools
# import SCons.Tool.FortranCommon
has_cplusplus = SCons.Tool.cxx.iscplusplus(source)
has_fortran = SCons.Tool.FortranCommon.isfortran(env, source)
# Nuitka: Avoid unused tools
has_fortran = False
has_d = isD(env, source)
if has_cplusplus and has_fortran and not has_d:
global issued_mixed_link_warning

View File

@@ -41,23 +41,10 @@ import SCons.Defaults
import SCons.Tool
import SCons.Util
# TODO: should this be synced with SCons/Platform/mingw.py:MINGW_DEFAULTPATHS
# i.e. either keep the same, or make sure there's only one?
mingw_base_paths = [
r'c:\MinGW\bin',
r'C:\cygwin64\bin',
r'C:\msys64',
r'C:\msys64\mingw64\bin',
r'C:\cygwin\bin',
r'C:\msys',
# Chocolatey mingw (pkg name for MinGW-w64) does not use ChocolateyToolsLocation
r'C:\ProgramData\chocolatey\lib\mingw\tools\install\mingw64\bin',
]
# Chocolatey msys2 uses envvar ChocolateyToolsLocation to base the install
# location (unless the user supplied additional params). Try to reproduce:
choco = os.environ.get('ChocolateyToolsLocation')
if choco:
mingw_base_paths.append(choco + r'\msys64\bin')
# Nuitka: Only use version specific paths if possible.
# Cygwin and msys2 should be avoided.
mingw_base_paths = []
mingw_paths = []
def shlib_generator(target, source, env, for_signature):
@@ -66,10 +53,15 @@ def shlib_generator(target, source, env, for_signature):
dll = env.FindIxes(target, 'SHLIBPREFIX', 'SHLIBSUFFIX')
if dll: cmd.extend(['-o', dll])
cmd.extend(['$SOURCES', '$_LIBDIRFLAGS', '$_LIBFLAGS'])
# Nuitka: Use linker file
tmp_linker_filename = "@%s" % (
os.path.join(env.source_dir, "@link_input.txt").replace(os.path.sep, "/"),
)
cmd.extend([tmp_linker_filename, '$_LIBDIRFLAGS', '$_LIBFLAGS'])
implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
if implib: cmd.append('-Wl,--out-implib,' + implib.get_string(for_signature))
# Nuitka: Disable implib here, we do it manually.
# implib = env.FindIxes(target, 'LIBPREFIX', 'LIBSUFFIX')
# if implib: cmd.append('-Wl,--out-implib,' + implib.get_string(for_signature))
def_target = env.FindIxes(target, 'WINDOWSDEFPREFIX', 'WINDOWSDEFSUFFIX')
insert_def = env.subst("$WINDOWS_INSERT_DEF")
@@ -130,19 +122,13 @@ SCons.Tool.SourceFileScanner.add_scanner('.rc', SCons.Defaults.CScan)
key_program = 'mingw32-make'
def find_version_specific_mingw_paths():
r"""
One example of default mingw install paths is:
C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev2\mingw64\bin
Use glob'ing to find such and add to mingw_base_paths
"""
new_paths = glob.glob(r"C:\mingw-w64\*\mingw64\bin")
return new_paths
# Nuitka: We try to find matching ones only.
def find_version_specific_mingw_paths(env):
return []
_mingw_all_paths = None
_mingw_all_paths = []
def get_mingw_paths():
global _mingw_all_paths
@@ -151,8 +137,10 @@ def get_mingw_paths():
return _mingw_all_paths
def generate(env):
global mingw_paths
# Check for reasoanble mingw default paths
mingw_paths = get_mingw_paths()
# Nuitks: Do not do that anymore.
# mingw_paths += find_version_specific_mingw_paths(env)
mingw = SCons.Tool.find_program_path(env, key_program, default_paths=mingw_paths)
if mingw:

View File

@@ -73,7 +73,7 @@ static void _createGlobalConstants(PyThreadState *tstate) {
// The empty name means global.
loadConstantsBlob(tstate, &global_constants[0], "");
#if _NUITKA_EXE_MODE
#if _NUITKA_EXE_MODE || _NUITKA_DLL_MODE
/* Set the "sys.executable" path to the original CPython executable or point to inside the
distribution for standalone. */
Nuitka_SysSetObject(

View File

@@ -9,6 +9,11 @@
- depends:
- 'asyncio'
- module-name: '_ctypes' # checksum: b31a8f6b
implicit-imports:
- depends:
- 'ctypes._layout'
- module-name: '_curses_panel' # checksum: c9b072ec
implicit-imports:
- depends: