@@ -342,6 +342,31 @@ def build_krb(env, dirs, logfp):
342342 runcmd (["make" , "install" ], env = env , stderr = logfp , stdout = logfp )
343343
344344
345+ def update_expat (version ):
346+ """
347+ Check if the given python version should get an updated libexpat.
348+
349+ Patch libexpat on these versions and below:
350+ - 3.9.23
351+ - 3.10.18
352+ - 3.11.13
353+ - 3.12.11
354+ - 3.13.7
355+ """
356+ relenv_version = Version (env ["RELENV_PY_MAJOR_VERSION" ])
357+ if relenv_version .minor == 9 and relenv_version .micro <= 23 :
358+ return True
359+ elif relenv_version .minor == 10 and relenv_version .micro <= 18 :
360+ return True
361+ elif relenv_version .minor == 11 and relenv_version .micro <= 13 :
362+ return True
363+ elif relenv_version .minor == 12 and relenv_version .micro <= 11 :
364+ return True
365+ elif relenv_version .minor == 13 and relenv_version .micro <= 7 :
366+ return True
367+ return False
368+
369+
345370def build_python (env , dirs , logfp ):
346371 """
347372 Run the commands to build Python.
@@ -378,26 +403,7 @@ def build_python(env, dirs, logfp):
378403 ]
379404 )
380405
381- # Patch libexpat on these versions and below
382- # - 3.9.23
383- # - 3.10.18
384- # - 3.11.13
385- # - 3.12.11
386- # - 3.13.7
387- update_expat = False
388- relenv_version = Version (env ["RELENV_PY_MAJOR_VERSION" ])
389- if relenv_version .minor == 9 and relenv_version .micro <= 23 :
390- update_expat = True
391- elif relenv_version .minor == 10 and relenv_version .micro <= 18 :
392- update_expat = True
393- elif relenv_version .minor == 11 and relenv_version .micro <= 13 :
394- update_expat = True
395- elif relenv_version .minor == 12 and relenv_version .micro <= 11 :
396- update_expat = True
397- elif relenv_version .minor == 13 and relenv_version .micro <= 7 :
398- update_expat = True
399-
400- if update_expat :
406+ if update_expat (env ["RELENV_PY_MAJOR_VERSION" ]):
401407 bash_refresh = pathlib .Path (dirs .source ) / "Modules" / "expat" / "refresh.sh"
402408 runcmd (
403409 [
0 commit comments