https://github.com/python/cpython/commit/7676f956e2bf83925f1f6ae3f7b59bc28add805b
commit: 7676f956e2bf83925f1f6ae3f7b59bc28add805b
branch: 3.15
author: Miss Islington (bot) <[email protected]>
committer: serhiy-storchaka <[email protected]>
date: 2026-07-22T12:38:47Z
summary:

[3.15] gh-154460: Do not use wcsftime() on OpenBSD (GH-154461) (GH-154474)

(cherry picked from commit f195b2e3edec8f770abdd013906379bf49176a5b)

Co-authored-by: Serhiy Storchaka <[email protected]>
Co-authored-by: Claude Opus 4.8 <[email protected]>
Co-authored-by: Stan Ulbrych <[email protected]>

files:
A Misc/NEWS.d/next/Library/2026-07-22-13-00-00.gh-issue-154460.wCsFtM.rst
M Modules/timemodule.c

diff --git 
a/Misc/NEWS.d/next/Library/2026-07-22-13-00-00.gh-issue-154460.wCsFtM.rst 
b/Misc/NEWS.d/next/Library/2026-07-22-13-00-00.gh-issue-154460.wCsFtM.rst
new file mode 100644
index 000000000000000..b0a7058f0519ff0
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2026-07-22-13-00-00.gh-issue-154460.wCsFtM.rst
@@ -0,0 +1,2 @@
+Fix :func:`time.strftime` and :meth:`datetime.datetime.strftime` returning a
+wrong ISO 8601 week number (``%V``) on OpenBSD.
diff --git a/Modules/timemodule.c b/Modules/timemodule.c
index d90bf1f2ef90ed9..70d7e1b3713687a 100644
--- a/Modules/timemodule.c
+++ b/Modules/timemodule.c
@@ -763,6 +763,13 @@ Other codes may be available on your platform.  See 
documentation for\n\
 the C library strftime function.\n"
 
 #ifdef HAVE_STRFTIME
+// gh-154460: OpenBSD's wcsftime() computes %V incorrectly: it returns 53
+// whenever the ISO 8601 week belongs to a different year than tm_year.
+// strftime() is not affected.
+#ifdef __OpenBSD__
+#  undef HAVE_WCSFTIME
+#endif
+
 #ifdef HAVE_WCSFTIME
 #define time_char wchar_t
 #define format_time wcsftime

_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]

Reply via email to