Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-awscrt for openSUSE:Factory checked in at 2026-04-29 19:18:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-awscrt (Old) and /work/SRC/openSUSE:Factory/.python-awscrt.new.30200 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-awscrt" Wed Apr 29 19:18:37 2026 rev:6 rq:1349891 version:0.32.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-awscrt/python-awscrt.changes 2026-04-23 19:22:19.937216673 +0200 +++ /work/SRC/openSUSE:Factory/.python-awscrt.new.30200/python-awscrt.changes 2026-04-29 19:19:44.609750636 +0200 @@ -1,0 +2,7 @@ +Tue Apr 28 07:56:47 UTC 2026 - John Paul Adrian Glaubitz <[email protected]> + +- Update to version 0.32.2 + * Min or higher Windows SDK Versions by @sbSteveK in (#723) + * Update crt versions by @DmitriyMusatkin in (#732) + +------------------------------------------------------------------- Old: ---- awscrt-0.32.1.tar.gz New: ---- awscrt-0.32.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-awscrt.spec ++++++ --- /var/tmp/diff_new_pack.s5nugO/_old 2026-04-29 19:19:45.441784722 +0200 +++ /var/tmp/diff_new_pack.s5nugO/_new 2026-04-29 19:19:45.441784722 +0200 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-awscrt -Version: 0.32.1 +Version: 0.32.2 Release: 0 Summary: A common runtime for AWS Python projects License: Apache-2.0 ++++++ awscrt-0.32.1.tar.gz -> awscrt-0.32.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-crt-python-0.32.1/.github/workflows/ci.yml new/aws-crt-python-0.32.2/.github/workflows/ci.yml --- old/aws-crt-python-0.32.1/.github/workflows/ci.yml 2026-04-16 23:42:37.000000000 +0200 +++ new/aws-crt-python-0.32.2/.github/workflows/ci.yml 2026-04-24 22:49:53.000000000 +0200 @@ -285,6 +285,32 @@ python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')" python builder.pyz build -p ${{ env.PACKAGE_NAME }} --python "${{ steps.python38.outputs.python-path }}" + windows-latest: + # try latest version to see if it works with a later version of Windows SDK + runs-on: windows-2025 + strategy: + fail-fast: false + matrix: + arch: [x86, x64] + permissions: + id-token: write # This is required for requesting the JWT + steps: + - uses: actions/setup-python@v5 + id: python38 + with: + python-version: '3.8.10' + architecture: ${{ matrix.arch }} + - uses: ilammy/setup-nasm@v1 + - name: configure AWS credentials (containers) + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ env.CRT_CI_ROLE }} + aws-region: ${{ env.AWS_DEFAULT_REGION }} + - name: Build ${{ env.PACKAGE_NAME }} + consumers + run: | + python -c "from urllib.request import urlretrieve; urlretrieve('${{ env.BUILDER_HOST }}/${{ env.BUILDER_SOURCE }}/${{ env.BUILDER_VERSION }}/builder.pyz?run=${{ env.RUN }}', 'builder.pyz')" + python builder.pyz build -p ${{ env.PACKAGE_NAME }} --python "${{ steps.python38.outputs.python-path }}" + macos: runs-on: macos-14 # latest permissions: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/aws-crt-python-0.32.1/setup.py new/aws-crt-python-0.32.2/setup.py --- old/aws-crt-python-0.32.1/setup.py 2026-04-16 23:42:37.000000000 +0200 +++ new/aws-crt-python-0.32.2/setup.py 2026-04-24 22:49:53.000000000 +0200 @@ -30,7 +30,10 @@ # This is the minimum version of the Windows SDK needed for schannel.h with SCH_CREDENTIALS and # TLS_PARAMETERS. These are required to build Windows Binaries with TLS 1.3 support. -WINDOWS_SDK_VERSION_TLS1_3_SUPPORT = "10.0.17763.0" +WINDOWS_SDK_MIN_VERSION_TLS1_3_SUPPORT = "10.0.17763.0" + +# Regex to match a Windows SDK version directory name in the format of major.minor.build.revision +SDK_VERSION_RE = re.compile(r'^(\d+)\.(\d+)\.(\d+)\.(\d+)$') def parse_version(version_string): @@ -91,6 +94,75 @@ return [] +def get_windows_sdk_versions(): + """Return a list of installed Windows SDK versions, sorted from newest to oldest. + + Uses the Windows registry to find the SDK installation path. + """ + if sys.platform != 'win32': + return [] + + import winreg + + sdk_versions = [] + sdk_paths = [] + + # Try to get SDK path from registry + try: + with winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, + r"SOFTWARE\Microsoft\Windows Kits\Installed Roots") as key: + sdk_root = winreg.QueryValueEx(key, "KitsRoot10")[0] + sdk_paths.append(os.path.join(sdk_root, "Include")) + except (OSError, FileNotFoundError): + # Registry key not found, fall back to common installation paths + sdk_paths = [ + os.path.join(os.environ.get('ProgramFiles(x86)', 'C:\\Program Files (x86)'), + 'Windows Kits', '10', 'Include'), + os.path.join(os.environ.get('ProgramFiles', 'C:\\Program Files'), + 'Windows Kits', '10', 'Include'), + ] + + for sdk_path in sdk_paths: + if os.path.exists(sdk_path): + try: + for entry in os.listdir(sdk_path): + # SDK version directories look like "major.minor.build.revision" (e.g. "10.0.17763.0") + if SDK_VERSION_RE.match(entry) and os.path.isdir(os.path.join(sdk_path, entry)): + if entry not in sdk_versions: + sdk_versions.append(entry) + except OSError: + continue + + # Sort versions from newest to oldest + sdk_versions.sort(key=parse_version, reverse=True) + return sdk_versions + + +def get_best_windows_sdk_version(): + """Return the best Windows SDK version to use for TLS 1.3 support. + + Returns the latest installed SDK version that is >= WINDOWS_SDK_MIN_VERSION_TLS1_3_SUPPORT. + Raises RuntimeError if no suitable SDK is found. + """ + installed_versions = get_windows_sdk_versions() + + if installed_versions: + # We only need to check against the newest available version. + if parse_version(installed_versions[0]) >= parse_version(WINDOWS_SDK_MIN_VERSION_TLS1_3_SUPPORT): + version = installed_versions[0] + print(f"Found Windows SDK {version} (>= {WINDOWS_SDK_MIN_VERSION_TLS1_3_SUPPORT} required for TLS 1.3)") + return version + else: + raise RuntimeError( + f"No Windows SDK >= {WINDOWS_SDK_MIN_VERSION_TLS1_3_SUPPORT} found. " + f"Installed versions: {', '.join(installed_versions)}. " + f"Please install Windows SDK {WINDOWS_SDK_MIN_VERSION_TLS1_3_SUPPORT} or later for TLS 1.3 support.") + else: + raise RuntimeError( + f"No Windows SDK found. " + f"Please install Windows SDK {WINDOWS_SDK_MIN_VERSION_TLS1_3_SUPPORT} or later for TLS 1.3 support.") + + def determine_generator_args(cmake_version=None, windows_sdk_version=None): if sys.platform == 'win32': try: @@ -275,7 +347,7 @@ if sys.platform == 'win32': windows_sdk_version = os.getenv('AWS_CRT_WINDOWS_SDK_VERSION') if windows_sdk_version is None: - windows_sdk_version = WINDOWS_SDK_VERSION_TLS1_3_SUPPORT + windows_sdk_version = get_best_windows_sdk_version() cmake_version = get_cmake_version()
