gh-129393: Make 'sys.platform' return "freebsd" only on FreeBSD (#129394)

Make 'sys.platform' return "freebsd" only on FreeBSD without major version.
This commit is contained in:
Michael Osipov 2025-01-31 10:02:45 +01:00 committed by GitHub
parent 8df5193d37
commit e3eba8ce26
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 17 additions and 5 deletions

View file

@ -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

View file

@ -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
--------------

View file

@ -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'``.

1
configure generated vendored
View file

@ -4132,6 +4132,7 @@ then
case $MACHDEP in
aix*) MACHDEP="aix";;
freebsd*) MACHDEP="freebsd";;
linux-android*) MACHDEP="android";;
linux*) MACHDEP="linux";;
cygwin*) MACHDEP="cygwin";;

View file

@ -365,6 +365,7 @@ then
case $MACHDEP in
aix*) MACHDEP="aix";;
freebsd*) MACHDEP="freebsd";;
linux-android*) MACHDEP="android";;
linux*) MACHDEP="linux";;
cygwin*) MACHDEP="cygwin";;