初始提交:terminalX 可运行态(M0/M1/M1.5 已真机验证)
- M0: libghostty SSH 终端(渲染/输入/连接)+ 白屏修复(OutputGate) + 会话状态机/自动重连 - M1: tsnet 用户态组网 + SSH-over-tsnet(fd 桥),shell 级真机验证;R5(Go+gvisor+C+++Swift 同进程) retire - M1.5: tmux -CC 原生 tab(MVP) - 结构: packages/(TXCore·TXTransport), apps/TerminalX, vendor/(libghostty-spm/libssh2/mbedtls/tsnet-bridge), artifacts/ - 文档: CLAUDE.md + docs/HANDOFF.md(新会话入口) - 环境: 认证代理→依赖 vendor 本地化;Go 在 ~/.local/go;仅模拟器/未签名 - 待续: M2 mosh, tmux 多 pane, M4 安全(host key/SE) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
240
vendor/libssh2/appveyor.yml
vendored
Normal file
240
vendor/libssh2/appveyor.yml
vendored
Normal file
@@ -0,0 +1,240 @@
|
||||
# Copyright (C) Ruslan Baratov
|
||||
# Copyright (C) Alexander Lamaison
|
||||
# Copyright (C) Marc Hoersken
|
||||
# Copyright (C) Viktor Szakats
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice, this
|
||||
# list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright notice,
|
||||
# this list of conditions and the following disclaimer in the documentation
|
||||
# and/or other materials provided with the distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
# https://www.appveyor.com/docs/windows-images-software/
|
||||
|
||||
environment:
|
||||
CONFIGURATION: 'Release'
|
||||
FIXTURE_XFER_COUNT: 35020
|
||||
SKIP_CTEST: 'yes' # Connection to test server has been failing consistently since 2024-08-29
|
||||
|
||||
matrix:
|
||||
- job_name: 'VS2022, OpenSSL 3, x64, Server 2019'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
||||
GENERATOR: 'Visual Studio 17 2022'
|
||||
PLATFORM: 'x64'
|
||||
CRYPTO_BACKEND: 'OpenSSL'
|
||||
OPENSSL_ROOT_DIR: 'C:/OpenSSL-v33-Win64'
|
||||
|
||||
- job_name: 'VS2015, OpenSSL 1.1, x86, Server 2016'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
|
||||
GENERATOR: 'Visual Studio 14 2015'
|
||||
PLATFORM: 'x86'
|
||||
CRYPTO_BACKEND: 'OpenSSL'
|
||||
OPENSSL_ROOT_DIR: 'C:/OpenSSL-v111-Win32'
|
||||
|
||||
- job_name: 'VS2015, OpenSSL 1.1, x64, Server 2012 R2, Logging'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
||||
GENERATOR: 'Visual Studio 14 2015'
|
||||
PLATFORM: 'x64'
|
||||
CRYPTO_BACKEND: 'OpenSSL'
|
||||
OPENSSL_ROOT_DIR: 'C:/OpenSSL-v111-Win64'
|
||||
ENABLE_DEBUG_LOGGING: 'ON'
|
||||
|
||||
- job_name: 'VS2013, OpenSSL 1.1, x64, Server 2012 R2'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
||||
GENERATOR: 'Visual Studio 12 2013'
|
||||
PLATFORM: 'x64'
|
||||
CRYPTO_BACKEND: 'OpenSSL'
|
||||
OPENSSL_ROOT_DIR: 'C:/OpenSSL-v111-Win64'
|
||||
|
||||
- job_name: 'VS2013, OpenSSL 1.1, x86, Server 2012 R2, Shared-only'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
||||
GENERATOR: 'Visual Studio 12 2013'
|
||||
PLATFORM: 'x86'
|
||||
BUILD_STATIC_LIBS: 'OFF'
|
||||
CRYPTO_BACKEND: 'OpenSSL'
|
||||
OPENSSL_ROOT_DIR: 'C:/OpenSSL-v111-Win32'
|
||||
SKIP_CTEST: 'no'
|
||||
|
||||
- job_name: 'VS2013, OpenSSL 1.0.2, x64, Build-only, Static-only'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
||||
GENERATOR: 'Visual Studio 12 2013'
|
||||
PLATFORM: 'x64'
|
||||
BUILD_SHARED_LIBS: 'OFF'
|
||||
CRYPTO_BACKEND: 'OpenSSL'
|
||||
OPENSSL_ROOT_DIR: 'C:/OpenSSL-Win64'
|
||||
SKIP_CTEST: 'yes'
|
||||
|
||||
- job_name: 'VS2008, WinCNG, x86, Build-only'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
||||
GENERATOR: 'Visual Studio 9 2008'
|
||||
PLATFORM: 'x86'
|
||||
CRYPTO_BACKEND: 'WinCNG'
|
||||
ENABLE_ECDSA_WINCNG: 'ON'
|
||||
SKIP_CTEST: 'yes'
|
||||
|
||||
- job_name: 'VS2010, WinCNG, x64, Build-only, non-unity'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
||||
GENERATOR: 'Visual Studio 10 2010'
|
||||
PLATFORM: 'x64'
|
||||
CRYPTO_BACKEND: 'WinCNG'
|
||||
ENABLE_ECDSA_WINCNG: 'ON'
|
||||
UNITY: 'OFF'
|
||||
SKIP_CTEST: 'yes'
|
||||
|
||||
- job_name: 'VS2022, WinCNG, x64, Server 2019, Logging'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
||||
GENERATOR: 'Visual Studio 17 2022'
|
||||
PLATFORM: 'x64'
|
||||
CRYPTO_BACKEND: 'WinCNG'
|
||||
ENABLE_ECDSA_WINCNG: 'ON'
|
||||
ENABLE_DEBUG_LOGGING: 'ON'
|
||||
|
||||
- job_name: 'VS2022, WinCNG, ARM64, Build-only'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2022'
|
||||
GENERATOR: 'Visual Studio 17 2022'
|
||||
PLATFORM: 'ARM64'
|
||||
CRYPTO_BACKEND: 'WinCNG'
|
||||
ENABLE_ECDSA_WINCNG: 'ON'
|
||||
|
||||
- job_name: 'VS2015, WinCNG, x86, Server 2016'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
|
||||
GENERATOR: 'Visual Studio 14 2015'
|
||||
PLATFORM: 'x86'
|
||||
CRYPTO_BACKEND: 'WinCNG'
|
||||
ENABLE_ECDSA_WINCNG: 'ON'
|
||||
|
||||
- job_name: 'VS2015, WinCNG, x64, Server 2012 R2'
|
||||
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'
|
||||
GENERATOR: 'Visual Studio 14 2015'
|
||||
PLATFORM: 'x64'
|
||||
CRYPTO_BACKEND: 'WinCNG'
|
||||
ENABLE_ECDSA_WINCNG: 'OFF'
|
||||
SKIP_CTEST: 'no'
|
||||
|
||||
matrix:
|
||||
fast_finish: true
|
||||
|
||||
install:
|
||||
# prepare local SSH server for reverse tunneling from GitHub Actions hosting our docker container
|
||||
- ps: |
|
||||
$env:OPENSSH_SERVER_PORT = Get-Random -Minimum 2000 -Maximum 2300
|
||||
[System.Environment]::SetEnvironmentVariable('OPENSSH_SERVER_PORT', $env:OPENSSH_SERVER_PORT)
|
||||
.\ci\appveyor\docker-bridge.ps1
|
||||
|
||||
build_script:
|
||||
- ps: |
|
||||
$options = @('-DENABLE_WERROR=ON')
|
||||
|
||||
if($env:GENERATOR -eq 'Visual Studio 17 2022') {
|
||||
if($env:PLATFORM -eq 'x86') {
|
||||
$options += '-A Win32'
|
||||
}
|
||||
else {
|
||||
$options += "-A $env:PLATFORM"
|
||||
}
|
||||
}
|
||||
elseif($env:PLATFORM -eq 'x64') {
|
||||
$env:GENERATOR += ' Win64'
|
||||
}
|
||||
$options += "-G$env:GENERATOR"
|
||||
|
||||
$options += "-DCRYPTO_BACKEND=$env:CRYPTO_BACKEND"
|
||||
if($env:OPENSSL_ROOT_DIR -ne '') {
|
||||
if(Test-Path $env:OPENSSL_ROOT_DIR) {
|
||||
$options += "-DOPENSSL_ROOT_DIR=$env:OPENSSL_ROOT_DIR"
|
||||
}
|
||||
else {
|
||||
Write-Error "Directory '$env:OPENSSL_ROOT_DIR' expected, but not found."
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
|
||||
if($env:ENABLE_DEBUG_LOGGING -eq 'ON') {
|
||||
$options += '-DENABLE_DEBUG_LOGGING=ON'
|
||||
}
|
||||
if($env:UNITY -ne 'OFF') {
|
||||
$options += '-DCMAKE_UNITY_BUILD=ON'
|
||||
}
|
||||
if($env:ENABLE_ECDSA_WINCNG -eq 'ON') {
|
||||
$options += '-DENABLE_ECDSA_WINCNG=ON'
|
||||
}
|
||||
if($env:BUILD_STATIC_LIBS -eq 'OFF') {
|
||||
$options += '-DBUILD_STATIC_LIBS=OFF'
|
||||
}
|
||||
if($env:BUILD_SHARED_LIBS -eq 'OFF') {
|
||||
$options += '-DBUILD_SHARED_LIBS=OFF'
|
||||
}
|
||||
$options += '-DCMAKE_VS_GLOBALS=TrackFileAccess=false'
|
||||
# FIXME: First sshd test sometimes timeouts, subsequent ones almost always fail:
|
||||
# 'libssh2_session_handshake failed (-43): Failed getting banner'
|
||||
$options += '-DRUN_SSHD_TESTS=OFF'
|
||||
|
||||
Write-Host 'CMake options:' $options
|
||||
cmake -B _builds $options
|
||||
cmake --build _builds --config "$env:CONFIGURATION" --parallel 2
|
||||
|
||||
test_script:
|
||||
- ps: |
|
||||
if($env:SKIP_CTEST -ne 'yes' -and $env:PLATFORM -ne 'ARM64') {
|
||||
appveyor-retry choco install --yes --no-progress --limit-output --timeout 180 docker-cli
|
||||
Write-Host 'Waiting for SSH connection from GitHub Actions' -NoNewline
|
||||
$endDate = (Get-Date).AddMinutes(5)
|
||||
while((Get-Process -Name 'sshd' -ErrorAction SilentlyContinue).Count -eq 1 -and (Get-Date) -lt $endDate) {
|
||||
Write-Host '.' -NoNewline
|
||||
Start-Sleep -Seconds 1
|
||||
}
|
||||
if((Get-Process -Name 'sshd' -ErrorAction SilentlyContinue).Count -gt 1) {
|
||||
$env:DOCKER_HOST = 'tcp://127.0.0.1:2375'
|
||||
[System.Environment]::SetEnvironmentVariable('DOCKER_HOST', $env:DOCKER_HOST)
|
||||
Write-Host '... ready.'
|
||||
}
|
||||
else {
|
||||
Write-Host '... failed.'
|
||||
}
|
||||
if($env:CRYPTO_BACKEND -eq 'WinCNG') {
|
||||
$env:FIXTURE_TRACE_ALL_CONNECT = '1'
|
||||
}
|
||||
$env:OPENSSH_SERVER_IMAGE=[string] (& bash -c "echo ghcr.io/libssh2/ci_tests_openssh_server:$(git rev-parse --short=20 HEAD:tests/openssh_server)")
|
||||
cd _builds; ctest -VV -C $($env:CONFIGURATION) --output-on-failure --timeout 900
|
||||
}
|
||||
|
||||
on_failure:
|
||||
- ps: |
|
||||
if(Test-Path _builds/CMakeFiles/CMakeConfigureLog.yaml) { cat _builds/CMakeFiles/CMakeConfigureLog.yaml }
|
||||
if(Test-Path _builds/CMakeFiles/CMakeOutput.log) { cat _builds/CMakeFiles/CMakeOutput.log }
|
||||
if(Test-Path _builds/CMakeFiles/CMakeError.log) { cat _builds/CMakeFiles/CMakeError.log }
|
||||
|
||||
on_finish:
|
||||
- ps: |
|
||||
Get-Process -Name 'sleep' -ErrorAction SilentlyContinue | Stop-Process
|
||||
Start-Sleep -Seconds 3
|
||||
Get-Process -Name 'sshd' -ErrorAction SilentlyContinue | Stop-Process
|
||||
|
||||
skip_commits:
|
||||
files:
|
||||
- '.github/**/*'
|
||||
|
||||
clone_depth: 10
|
||||
|
||||
# Limit branches to avoid testing feature branches twice (as branch and as pull request)
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
Reference in New Issue
Block a user