From e3eba8ce266f90d9f8faeb5b2b4b64e56110bd2a Mon Sep 17 00:00:00 2001 From: Michael Osipov Date: Fri, 31 Jan 2025 10:02:45 +0100 Subject: gh-129393: Make 'sys.platform' return "freebsd" only on FreeBSD (#129394) Make 'sys.platform' return "freebsd" only on FreeBSD without major version. --- Doc/library/sys.rst | 15 ++++++++++----- Doc/whatsnew/3.14.rst | 3 +++ .../2025-01-28-10-26-04.gh-issue-129393.0eICq6.rst | 2 ++ configure | 1 + configure.ac | 1 + 5 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2025-01-28-10-26-04.gh-issue-129393.0eICq6.rst diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 151fd60..5a09623 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -1422,6 +1422,7 @@ always available. Unless explicitly noted otherwise, all variables are read-only AIX ``'aix'`` Android ``'android'`` Emscripten ``'emscripten'`` + FreeBSD ``'freebsd'`` iOS ``'ios'`` Linux ``'linux'`` macOS ``'darwin'`` @@ -1432,12 +1433,12 @@ always available. Unless explicitly noted otherwise, all variables are read-only On Unix systems not listed in the table, the value is the lowercased OS name as returned by ``uname -s``, with the first part of the version as returned by - ``uname -r`` appended, e.g. ``'sunos5'`` or ``'freebsd8'``, *at the time - when Python was built*. Unless you want to test for a specific system - version, it is therefore recommended to use the following idiom:: + ``uname -r`` appended, e.g. ``'sunos5'``, *at the time when Python was built*. + Unless you want to test for a specific system version, it is therefore + recommended to use the following idiom:: - if sys.platform.startswith('freebsd'): - # FreeBSD-specific code here... + if sys.platform.startswith('sunos'): + # SunOS-specific code here... .. versionchanged:: 3.3 On Linux, :data:`sys.platform` doesn't contain the major version anymore. @@ -1451,6 +1452,10 @@ always available. Unless explicitly noted otherwise, all variables are read-only On Android, :data:`sys.platform` now returns ``'android'`` rather than ``'linux'``. + .. versionchanged:: 3.14 + On FreeBSD, :data:`sys.platform` doesn't contain the major version anymore. + It is always ``'freebsd'``, instead of ``'freebsd13'`` or ``'freebsd14'``. + .. seealso:: :data:`os.name` has a coarser granularity. :func:`os.uname` gives diff --git a/Doc/whatsnew/3.14.rst b/Doc/whatsnew/3.14.rst index 8d4cb94..484e306 100644 --- a/Doc/whatsnew/3.14.rst +++ b/Doc/whatsnew/3.14.rst @@ -649,6 +649,9 @@ sys which only exists in specialized builds of Python, may now return objects from other interpreters than the one it's called in. +* On FreeBSD, :data:`sys.platform` doesn't contain the major version anymore. + It is always ``'freebsd'``, instead of ``'freebsd13'`` or ``'freebsd14'``. + sys.monitoring -------------- diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-01-28-10-26-04.gh-issue-129393.0eICq6.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-01-28-10-26-04.gh-issue-129393.0eICq6.rst new file mode 100644 index 0000000..e36e6f5 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2025-01-28-10-26-04.gh-issue-129393.0eICq6.rst @@ -0,0 +1,2 @@ +On FreeBSD, :data:`sys.platform` doesn't contain the major version anymore. +It is always ``'freebsd'``, instead of ``'freebsd13'`` or ``'freebsd14'``. diff --git a/configure b/configure index 885c2cf..3eb787f 100755 --- a/configure +++ b/configure @@ -4132,6 +4132,7 @@ then case $MACHDEP in aix*) MACHDEP="aix";; + freebsd*) MACHDEP="freebsd";; linux-android*) MACHDEP="android";; linux*) MACHDEP="linux";; cygwin*) MACHDEP="cygwin";; diff --git a/configure.ac b/configure.ac index f89a080..c0130b8 100644 --- a/configure.ac +++ b/configure.ac @@ -365,6 +365,7 @@ then case $MACHDEP in aix*) MACHDEP="aix";; + freebsd*) MACHDEP="freebsd";; linux-android*) MACHDEP="android";; linux*) MACHDEP="linux";; cygwin*) MACHDEP="cygwin";; -- cgit v0.12