diff --git a/debian/changelog b/debian/changelog index 28f3e7115..2f4216f13 100644 --- a/debian/changelog +++ b/debian/changelog @@ -4,6 +4,12 @@ nuitka (4.0~rc2+ds-1) unstable; urgency=medium -- Kay Hayen Wed, 26 Nov 2025 11:21:52 +0000 +nuitka (2.8.9+ds-1) unstable; urgency=medium + + * New upstream hotfix release. + + -- Kay Hayen Fri, 28 Nov 2025 13:58:44 +0000 + nuitka (2.8.8+ds-1) unstable; urgency=medium * New upstream hotfix release. diff --git a/nuitka/build/include/nuitka/helper/iterators.h b/nuitka/build/include/nuitka/helper/iterators.h index e1e1c1264..bb93bd4b2 100644 --- a/nuitka/build/include/nuitka/helper/iterators.h +++ b/nuitka/build/include/nuitka/helper/iterators.h @@ -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); diff --git a/nuitka/build/inline_copy/lib/scons-4.10.1/SCons/Tool/linkCommon/__init__.py b/nuitka/build/inline_copy/lib/scons-4.10.1/SCons/Tool/linkCommon/__init__.py index a9ac0288b..6832aa38c 100644 --- a/nuitka/build/inline_copy/lib/scons-4.10.1/SCons/Tool/linkCommon/__init__.py +++ b/nuitka/build/inline_copy/lib/scons-4.10.1/SCons/Tool/linkCommon/__init__.py @@ -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 diff --git a/nuitka/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mingw.py b/nuitka/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mingw.py index 37ab4197f..1f3c1529a 100644 --- a/nuitka/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mingw.py +++ b/nuitka/build/inline_copy/lib/scons-4.10.1/SCons/Tool/mingw.py @@ -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: diff --git a/nuitka/code_generation/templates/CodeTemplatesConstants.py b/nuitka/code_generation/templates/CodeTemplatesConstants.py index dd8fa1b33..c37459455 100644 --- a/nuitka/code_generation/templates/CodeTemplatesConstants.py +++ b/nuitka/code_generation/templates/CodeTemplatesConstants.py @@ -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( diff --git a/nuitka/plugins/standard/stdlib3.nuitka-package.config.yml b/nuitka/plugins/standard/stdlib3.nuitka-package.config.yml index d2a660c59..d930239c8 100644 --- a/nuitka/plugins/standard/stdlib3.nuitka-package.config.yml +++ b/nuitka/plugins/standard/stdlib3.nuitka-package.config.yml @@ -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: