← Commit list

3b8bb1a86a

Viktor Szakats
Viktor Szakats
2026-04-04
SUCCESS Duration: 251s

Subject

GHA/windows: bump OpenSSH-Windows to v10, other improvements

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

.github/workflows/windows.yml+60 -10
@@ -34,6 +34,9 @@ permissions: {}
env:
CURL_CI: github
CURL_TEST_MIN: 1700
+ OPENSSH_WINDOWS_VERSION: 10.0.0.0p2-Preview
+ OPENSSH_WINDOWS_SHA256_ARM64: 698c6aec31c1dd0fb996206e8741f4531a97355686b5431ef347d531b07fcd42
+ OPENSSH_WINDOWS_SHA256_WIN64: 23f50f3458c4c5d0b12217c6a5ddfde0137210a30fa870e98b29827f7b43aba5
STUNNEL_VERSION: 5.77
STUNNEL_SHA256: 59ba0c5330de85ef474164b40cc559b2eb4e2b8d788c48b564e2257efa236384
@@ -238,6 +241,7 @@ jobs:
LDFLAGS: -s
MAKEFLAGS: -j 5
MATRIX_BUILD: '${{ matrix.build }}'
+ MATRIX_OPENSSH: '${{ matrix.openssh }}'
MATRIX_SYS: '${{ matrix.sys }}'
MATRIX_TEST: '${{ matrix.test }}'
strategy:
@@ -281,10 +285,10 @@ jobs:
build: 'cmake' , sys: 'ucrt64' , env: 'ucrt-x86_64' , tflags: '-t --shallow=13 --min=700 951 to 9999',
config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DENABLE_ARES=ON',
install: 'mingw-w64-ucrt-x86_64-c-ares mingw-w64-ucrt-x86_64-libssh2' }
- - { name: 'gnutls', type: 'Debug',
+ - { name: 'gnutls', type: 'Debug', openssh: 'OpenSSH-Windows',
build: 'cmake' , sys: 'clang64' , env: 'clang-x86_64' , tflags: '' ,
config: '-DENABLE_DEBUG=ON -DBUILD_SHARED_LIBS=OFF -DCURL_USE_GNUTLS=ON -DENABLE_UNICODE=OFF -DUSE_NGTCP2=ON -DCURL_ENABLE_NTLM=ON',
- install: 'mingw-w64-clang-x86_64-gnutls mingw-w64-clang-x86_64-nghttp3 mingw-w64-clang-x86_64-ngtcp2' }
+ install: 'mingw-w64-clang-x86_64-gnutls mingw-w64-clang-x86_64-nghttp3 mingw-w64-clang-x86_64-ngtcp2 unzip' }
- { name: 'schannel R', type: 'Release', image: 'windows-11-arm',
build: 'cmake' , sys: 'clangarm64', env: 'clang-aarch64', tflags: 'skiprun' ,
config: '-DENABLE_DEBUG=OFF -DBUILD_SHARED_LIBS=ON -DCURL_USE_SCHANNEL=ON -DENABLE_UNICODE=ON -DCURL_DROP_UNUSED=ON',
@@ -462,7 +466,27 @@ jobs:
- name: 'install test prereqs'
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
timeout-minutes: 2
- run: /usr/bin/pacman --noconfirm --noprogressbar --sync --needed openssh
+ run: |
+ if [ -z "${MATRIX_OPENSSH}" ]; then # MSYS2 openssh
+ /usr/bin/pacman --noconfirm --noprogressbar --sync --needed openssh
+ elif [ "${MATRIX_OPENSSH}" = 'OpenSSH-Windows-builtin' ]; then
+ # https://learn.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse
+ if [[ "${MATRIX_IMAGE}" = *'windows-2025'* ]]; then
+ pwsh -Command 'Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0'
+ pwsh -Command 'Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0'
+ fi
+ else # OpenSSH-Windows
+ cd /c # no D: drive on windows-11-arm runners
+ if [[ "${MATRIX_IMAGE}" = *'-arm'* ]]; then
+ curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \
+ --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-ARM64.zip" --output pkg.bin
+ sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256_ARM64}" && unzip pkg.bin && rm -f pkg.bin
+ else
+ curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \
+ --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-Win64.zip" --output pkg.bin
+ sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256_WIN64}" && unzip pkg.bin && rm -f pkg.bin
+ fi
+ fi
- name: 'run tests'
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
@@ -483,6 +507,22 @@ jobs:
export CURL_TEST_NO_TASKKILL=1 # experiment to see if it reduces flaky failures
fi
fi
+ if [ -n "${MATRIX_OPENSSH}" ]; then # OpenSSH-Windows
+ TFLAGS+=' ~601 ~603 ~617 ~619 ~621 ~641 ~665 ~2004' # SCP
+ if [[ "${MATRIX_INSTALL_MSYS2} " = *'libssh '* || \
+ "${MATRIX_INSTALL_VCPKG} " = *'libssh '* ]]; then
+ TFLAGS+=' ~614' # 'SFTP pre-quote chmod' SFTP, pre-quote, directory
+ else
+ TFLAGS+=' ~3022' # 'SCP correct sha256 host key' SCP, server sha256 key check
+ fi
+ fi
+ if [ "${MATRIX_OPENSSH}" = 'OpenSSH-Windows' ]; then
+ if [[ "${MATRIX_IMAGE}" = *'-arm'* ]]; then
+ PATH="/c/OpenSSH-ARM64:$PATH"
+ else
+ PATH="/c/OpenSSH-Win64:$PATH"
+ fi
+ fi
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")"
fi
@@ -837,8 +877,6 @@ jobs:
MATRIX_OPENSSH: '${{ matrix.openssh }}'
MATRIX_PLAT: '${{ matrix.plat }}'
MATRIX_TYPE: '${{ matrix.type }}'
- OPENSSH_WINDOWS_VERSION: v9.8.1.0p1-Preview
- OPENSSH_WINDOWS_SHA256: c7a1369cd73c8165be00c66e90291c4dd67784de7c3aa3af18c68ebedffa6ea9
VCPKG_DISABLE_METRICS: '1'
strategy:
matrix:
@@ -1074,7 +1112,7 @@ jobs:
- name: 'install test prereqs'
if: ${{ matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }}
- timeout-minutes: 5
+ timeout-minutes: 2
run: |
if [ -z "${MATRIX_OPENSSH}" ]; then # MSYS2 openssh
/usr/bin/pacman --noconfirm --noprogressbar --sync --needed openssh
@@ -1086,9 +1124,15 @@ jobs:
fi
else # OpenSSH-Windows
cd /c # no D: drive on windows-11-arm runners
- curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \
- --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-Win64.zip" --output pkg.bin
- sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256}" && unzip pkg.bin && rm -f pkg.bin
+ if [[ "${MATRIX_IMAGE}" = *'-arm'* ]]; then
+ curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \
+ --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-ARM64.zip" --output pkg.bin
+ sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256_ARM64}" && unzip pkg.bin && rm -f pkg.bin
+ else
+ curl --disable --fail --silent --show-error --connect-timeout 15 --max-time 60 --retry 3 --retry-connrefused \
+ --location "https://github.com/PowerShell/Win32-OpenSSH/releases/download/${OPENSSH_WINDOWS_VERSION}/OpenSSH-Win64.zip" --output pkg.bin
+ sha256sum pkg.bin && sha256sum pkg.bin | grep -qwF -- "${OPENSSH_WINDOWS_SHA256_WIN64}" && unzip pkg.bin && rm -f pkg.bin
+ fi
fi
if "bld/src/${MATRIX_TYPE}/curl.exe" --disable -V 2>/dev/null | grep smb; then
python3 -m pip --disable-pip-version-check --no-input --no-cache-dir install --progress-bar off --prefer-binary -r tests/requirements.txt
@@ -1115,7 +1159,13 @@ jobs:
else
TFLAGS+=' ~3022' # 'SCP correct sha256 host key' SCP, server sha256 key check
fi
- PATH="/c/OpenSSH-Win64:$PATH"
+ fi
+ if [ "${MATRIX_OPENSSH}" = 'OpenSSH-Windows' ]; then
+ if [[ "${MATRIX_IMAGE}" = *'-arm'* ]]; then
+ PATH="/c/OpenSSH-ARM64:$PATH"
+ else
+ PATH="/c/OpenSSH-Win64:$PATH"
+ fi
fi
PATH="$PWD/bld/lib/${MATRIX_TYPE}:$PATH:/c/my-stunnel/bin"
cmake --build bld --config "${MATRIX_TYPE}" --target test-ci