Subject: CVS commit: pkgsrc/lang
From: Adam Ciarcinski
Date: 2021-05-04 07:17:29
Message id: 20210504051729.9F56DFA95@cvs.NetBSD.org

Log Message:
python39: updated to 3.9.5

Python 3.9.5 final

Security
bpo-43434: Creating a sqlite3.Connection object now also produces a \ 
sqlite3.connect auditing event. Previously this event was only produced by \ 
sqlite3.connect() calls. Patch by Erlend E. Aasland.
bpo-43882: The presence of newline or tab characters in parts of a URL could \ 
allow some forms of attacks.

Following the controlling specification for URLs defined by WHATWG \ 
urllib.parse() now removes ASCII newlines and tabs from URLs, preventing such \ 
attacks.
bpo-43472: Ensures interpreter-level audit hooks receive the \ 
cpython.PyInterpreterState_New event when called through the _xxsubinterpreters \ 
module.
bpo-36384: ipaddress module no longer accepts any leading zeros in IPv4 address \ 
strings. Leading zeros are ambiguous and interpreted as octal notation by some \ 
libraries. For example the legacy function socket.inet_aton() treats leading \ 
zeros as octal notatation. glibc implementation of modern inet_pton() does not \ 
accept any leading zeros. For a while the ipaddress module used to accept \ 
ambiguous leading zeros.
bpo-43075: Fix Regular Expression Denial of Service (ReDoS) vulnerability in \ 
urllib.request.AbstractBasicAuthHandler. The ReDoS-vulnerable regex has \ 
quadratic worst-case complexity and it allows cause a denial of service when \ 
identifying crafted invalid RFCs. This ReDoS issue is on the client side and \ 
needs remote attackers to control the HTTP server.
bpo-42800: Audit hooks are now fired for frame.f_code, traceback.tb_frame, and \ 
generator code/frame attribute access.

Core and Builtins
bpo-43105: Importlib now resolves relative paths when creating module spec \ 
objects from file locations.
bpo-42924: Fix bytearray repetition incorrectly copying data from the start of \ 
the buffer, even if the data is offset within the buffer (e.g. after reassigning \ 
a slice at the start of the bytearray to a shorter byte string).

Library
bpo-43993: Update bundled pip to 21.1.1.
bpo-43937: Fixed the turtle module working with non-default root window.
bpo-43930: Update bundled pip to 21.1 and setuptools to 56.0.0
bpo-43920: OpenSSL 3.0.0: load_verify_locations() now returns a consistent error \ 
message when cadata contains no valid certificate.
bpo-43607: urllib can now convert Windows paths with \\?\ prefixes into URL paths.
bpo-43284: platform.win32_ver derives the windows version from \ 
sys.getwindowsversion().platform_version which in turn derives the version from \ 
kernel32.dll (which can be of a different version than Windows itself). \ 
Therefore change the platform.win32_ver to determine the version using the \ 
platform module’s _syscmd_ver private function to return an accurate version.
bpo-42248: [Enum] ensure exceptions raised in _missing__ are released
bpo-43799: OpenSSL 3.0.0: define OPENSSL_API_COMPAT 1.1.1 to suppress \ 
deprecation warnings. Python requires OpenSSL 1.1.1 APIs.
bpo-43794: Add ssl.OP_IGNORE_UNEXPECTED_EOF constants (OpenSSL 3.0.0)
bpo-43789: OpenSSL 3.0.0: Don’t call the password callback function a second \ 
time when first call has signaled an error condition.
bpo-43788: The header files for ssl error codes are now OpenSSL \ 
version-specific. Exceptions will now show correct reason and library codes. The \ 
make_ssl_data.py script has been rewritten to use OpenSSL’s text file with \ 
error codes.
bpo-43655: tkinter dialog windows are now recognized as dialogs by window \ 
managers on macOS and X Window.
bpo-43534: turtle.textinput() and turtle.numinput() create now a transient \ 
window working on behalf of the canvas window.
bpo-43522: Fix problem with hostname_checks_common_name. OpenSSL does not copy \ 
hostflags from struct SSL_CTX to struct SSL.
bpo-42967: Allow bytes separator argument in urllib.parse.parse_qs and \ 
urllib.parse.parse_qsl when parsing str query strings. Previously, this raised a \ 
TypeError.
bpo-43176: Fixed processing of a dataclass that inherits from a frozen dataclass \ 
with no fields. It is now correctly detected as an error.
bpo-41735: Fix thread locks in zlib module may go wrong in rare case. Patch by \ 
Ma Lin.
bpo-36470: Fix dataclasses with InitVars and replace(). Patch by Claudiu Popa.
bpo-32745: Fix a regression in the handling of ctypes’ ctypes.c_wchar_p type: \ 
embedded null characters would cause a ValueError to be raised. Patch by Zackery \ 
Spytz.

Documentation
bpo-43959: The documentation on the PyContextVar C-API was clarified.
bpo-43938: Update dataclasses documentation to express that FrozenInstanceError \ 
is derived from AttributeError.
bpo-43755: Update documentation to reflect that unparenthesized lambda \ 
expressions can no longer be the expression part in an if clause in \ 
comprehensions and generator expressions since Python 3.9.
bpo-43739: Fixing the example code in Doc/extending/extending.rst to declare and \ 
initialize the pmodule variable to be of the right type.

Tests
bpo-43961: Fix test_logging.test_namer_rotator_inheritance() on Windows: use \ 
os.replace() rather than os.rename(). Patch by Victor Stinner.
bpo-43842: Fix a race condition in the SMTP test of test_logging. Don’t close \ 
a file descriptor (socket) from a different thread while asyncore.loop() is \ 
polling the file descriptor. Patch by Victor Stinner.
bpo-43811: Tests multiple OpenSSL versions on GitHub Actions. Use ccache to \ 
speed up testing.
bpo-43791: OpenSSL 3.0.0: Disable testing of legacy protocols TLS 1.0 and 1.1. \ 
Tests are failing with TLSV1_ALERT_INTERNAL_ERROR.

Windows
bpo-35306: Avoid raising errors from pathlib.Path.exists() when passed an \ 
invalid filename.
bpo-38822: Fixed os.stat() failing on inaccessible directories with a trailing \ 
slash, rather than falling back to the parent directory’s metadata. This \ 
implicitly affected os.path.exists() and os.path.isdir().
bpo-26227: Fixed decoding of host names in socket.gethostbyaddr() and \ 
socket.gethostbyname_ex().
bpo-40432: Updated pegen regeneration script on Windows to find and use Python \ 
3.8 or higher. Prior to this, pegen regeneration already required 3.8 or higher, \ 
but the script may have used lower versions of Python.
bpo-43745: Actually updates Windows release to OpenSSL 1.1.1k. Earlier releases \ 
were mislabelled and actually included 1.1.1i again.
bpo-43492: Upgrade Windows installer to use SQLite 3.35.5.

macOS
bpo-42119: Fix check for macOS SDK paths when building Python. Narrow search to \ 
match contents of SDKs, namely only files in /System/Library, \ 
/System/IOSSupport, and /usr other than /usr/local. Previously, anything under \ 
/System was assumed to be in an SDK which causes problems with the new file \ 
system layout in 10.15+ where user file systems may appear to be mounted under \ 
/System. Paths in /Library were also incorrectly treated as SDK locations.
bpo-44009: Provide “python3.x-intel64” executable to allow reliably forcing \ 
macOS universal2 framework builds to run under Rosetta 2 Intel-64 emulation on \ 
Apple Silicon Macs. This can be useful for testing or when universal2 wheels are \ 
not yet available.
bpo-43492: Update macOS installer to use SQLite 3.35.4.

IDLE
bpo-43655: IDLE dialog windows are now recognized as dialogs by window managers \ 
on macOS and X Window.

Files:
RevisionActionfile
1.6modifypkgsrc/lang/py39-html-docs/Makefile
1.6modifypkgsrc/lang/py39-html-docs/distinfo
1.5modifypkgsrc/lang/python39/PLIST
1.6modifypkgsrc/lang/python39/dist.mk
1.9modifypkgsrc/lang/python39/distinfo