Skip to content

Commit 7da0257

Browse files
committed
Refactor libexpat update check
1 parent 799c0be commit 7da0257

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

relenv/build/linux.py

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
345370
def 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

Comments
 (0)