From bb9c66d1e858fea14d3f6c82f0a2ff9f689d17f1 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Mon, 24 Aug 2026 16:11:57 -0600 Subject: [PATCH 1/6] cmakeup: CMake updates, remove XP_NAMESPACE - NOTE: stuck on cmake 3.21 - newer releases have issues on MSW - https://github.com/externpro/libssh2/commit/151f06efebec7e9b3fc97ef660ca8ce65819e649 - Remove XP_NAMESPACE and xproinc.cmake inclusion (now part of CMakePresets) - targetsFile now libssh2-targets (was Libssh2Config) to avoid find_package(Libssh2) collision - Package name and Target Namespace now match - Make xpExternPackage conditional 'if(COMMAND' and move to end of CMakeLists.txt - Infer dependencies (openssl, zlib) - Add CMAKE_EXPERIMENTAL_GENERATE_SBOM in presets - Define ZLIB_LIBRARIES if not defined (found via cps instead of cmake script) - with TODO to remove when externpro/zlib has new release with usext.cmake updates --- CMakeLists.txt | 29 +++++++++++++++-------------- CMakePresetsBase.json | 2 +- src/CMakeLists.txt | 18 ++++++++++++------ 3 files changed, 28 insertions(+), 21 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e42c379843..a55e2e8740 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,7 +36,6 @@ cmake_minimum_required(VERSION 2.8.11...3.21) set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) project(libssh2 C) set(PROJECT_URL "https://www.libssh2.org/") @@ -78,21 +77,14 @@ if(NOT LIBSSH2_VERSION OR "${CMAKE_CURRENT_SOURCE_DIR}/include/libssh2.h") endif() -set(targetsFile Libssh2Config) -if(DEFINED XP_NAMESPACE) - xpExternPackage(NAMESPACE ${XP_NAMESPACE} ALIAS_NAMESPACE Libssh2 - TARGETS_FILE ${targetsFile} LIBRARIES ${PROJECT_NAME} - BASE ${PROJECT_NAME}-${LIBSSH2_VERSION_MAJOR}.${LIBSSH2_VERSION_MINOR}.${LIBSSH2_VERSION_PATCH} - XPDIFF "patch" DEPS openssl zlib - WEB "http://www.libssh2.org/" UPSTREAM "github.com/libssh2/libssh2" - DESC "client-side C library implementing SSH2 protocol" - LICENSE "[BSD-3-Clause](http://www.libssh2.org/license.html 'BSD 3-Clause New or Revised License')" - ) +set(targetsFile ${PROJECT_NAME}-targets) +if(COMMAND xpExternPackage) set(CMAKE_OPT_INSTALL FALSE) - set(CMAKE_NAMESPACE ${XP_NAMESPACE}) + if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR) + set(CMAKE_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/cmake) + endif() else() set(CMAKE_OPT_INSTALL TRUE) - set(CMAKE_NAMESPACE Libssh2) set(CMAKE_INSTALL_CMAKEDIR lib/cmake/libssh2) endif() @@ -121,10 +113,19 @@ add_subdirectory(docs) feature_summary(WHAT ALL) +if(CMAKE_OPT_INSTALL) set(CPACK_PACKAGE_VERSION_MAJOR ${LIBSSH2_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${LIBSSH2_VERSION_MINOR}) set(CPACK_PACKAGE_VERSION_PATCH ${LIBSSH2_VERSION_PATCH}) set(CPACK_PACKAGE_VERSION ${LIBSSH2_VERSION}) -if(CMAKE_OPT_INSTALL) include(CPack) +elseif(COMMAND xpExternPackage) + xpExternPackage(TARGETS_FILE ${targetsFile} ALIAS_NAMESPACE Libssh2 + LIBRARIES ${PROJECT_NAME} DEFAULT_TARGETS ${PROJECT_NAME} + BASE ${PROJECT_NAME}-${LIBSSH2_VERSION_MAJOR}.${LIBSSH2_VERSION_MINOR}.${LIBSSH2_VERSION_PATCH} + XPDIFF "patch" + WEB "http://www.libssh2.org/" UPSTREAM "github.com/libssh2/libssh2" + DESC "client-side C library implementing SSH2 protocol" + LICENSE "[BSD-3-Clause](http://www.libssh2.org/license.html 'BSD 3-Clause New or Revised License')" + ) endif() diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json index e193a06bc9..5e393a6b5a 100644 --- a/CMakePresetsBase.json +++ b/CMakePresetsBase.json @@ -9,7 +9,7 @@ "BUILD_TESTING": "OFF", "CRYPTO_BACKEND": "OpenSSL", "ENABLE_ZLIB_COMPRESSION": "ON", - "XP_NAMESPACE": "xpro" + "CMAKE_EXPERIMENTAL_GENERATE_SBOM": "ca494ed3-b261-4205-a01f-603c95e4cae0" } } ], diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cb5e3ac2f0..1bbe3078f1 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -62,7 +62,7 @@ if(CRYPTO_BACKEND STREQUAL "OpenSSL" OR NOT CRYPTO_BACKEND) find_package(OpenSSL ${SPECIFIC_CRYPTO_REQUIREMENT}) - if(OPENSSL_FOUND) + if(OPENSSL_FOUND OR OpenSSL_FOUND) set(CRYPTO_BACKEND "OpenSSL") set(CRYPTO_SOURCES openssl.c openssl.h) list(APPEND PRIVATE_COMPILE_DEFINITIONS LIBSSH2_OPENSSL) @@ -242,9 +242,13 @@ add_feature_info(Compression ENABLE_ZLIB_COMPRESSION if(ENABLE_ZLIB_COMPRESSION) find_package(ZLIB REQUIRED) - if(NOT TARGET xpro::zlib) + if(DEFINED ZLIB_INCLUDE_DIRS AND EXISTS ${ZLIB_INCLUDE_DIRS}) target_include_directories(libssh2 PRIVATE ${ZLIB_INCLUDE_DIRS}) endif() + # TODO: Remove this when externpro/zlib has a new release with usext.cmake updates + if(NOT DEFINED ZLIB_LIBRARIES AND TARGET zlib::zlibstatic) + set(ZLIB_LIBRARIES zlib::zlibstatic) + endif() list(APPEND LIBRARIES ${ZLIB_LIBRARIES}) list(APPEND PC_REQUIRES_PRIVATE zlib) if(ZLIB_FOUND) @@ -392,14 +396,14 @@ set(RUNTIME_DEPENDENCIES ${_RUNTIME_DEPENDENCIES} CACHE INTERNAL # Package config -## During package installation, install Libssh2Config.cmake +## During package installation, install ${targetsFile} install(EXPORT ${targetsFile} - NAMESPACE ${CMAKE_NAMESPACE}:: + NAMESPACE ${CMAKE_PROJECT_NAME}:: DESTINATION ${CMAKE_INSTALL_CMAKEDIR}) ## During build, register directly from build tree -# create Libssh2Config.cmake -export(TARGETS libssh2 NAMESPACE ${CMAKE_NAMESPACE}:: FILE ${targetsFile}.cmake) +# create ${targetsFile} +export(TARGETS libssh2 NAMESPACE ${CMAKE_PROJECT_NAME}:: FILE ${targetsFile}.cmake) export(PACKAGE Libssh2) # register it ## Export a .pc file for client projects not using CMaek @@ -427,6 +431,8 @@ write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/${targetsFile}Version.cmake VERSION "${LIBSSH2_VERSION_MAJOR}.${LIBSSH2_VERSION_MINOR}.${LIBSSH2_VERSION_PATCH}" COMPATIBILITY SameMajorVersion) +if(CMAKE_OPT_INSTALL) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${targetsFile}Version.cmake DESTINATION ${CMAKE_INSTALL_CMAKEDIR}) +endif() From bc9ee7236495a397ef120ebe1da067acae6806af Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Aug 2026 22:20:44 +0000 Subject: [PATCH 2/6] externpro 26.01.5-17-g46835fd --- .devcontainer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer b/.devcontainer index 8a5e4df722..46835fd599 160000 --- a/.devcontainer +++ b/.devcontainer @@ -1 +1 @@ -Subproject commit 8a5e4df7220b4870ba0ff81ee9e2b319b2855977 +Subproject commit 46835fd599ba053d965bab3f77556ec3ca98c15b From 06836fa74752fbcfc7323d585fe0955bdf5c4cf8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Aug 2026 22:20:44 +0000 Subject: [PATCH 3/6] sync GitHub Actions workflows --- .github/workflows/xpbuild.yml | 12 ++++++++---- .github/workflows/xprelease.yml | 2 +- .github/workflows/xptag.yml | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml index 76b2701dea..25962792df 100644 --- a/.github/workflows/xpbuild.yml +++ b/.github/workflows/xpbuild.yml @@ -14,11 +14,15 @@ jobs: contents: read pull-requests: write packages: write - uses: externpro/externpro/.github/workflows/build-linux.yml@25.07.6 - secrets: inherit + uses: externpro/externpro/.github/workflows/build-linux.yml@26.01.5 + secrets: + automation_token: ${{ secrets.GHCR_TOKEN }} + with: {} macos: - uses: externpro/externpro/.github/workflows/build-macos.yml@25.07.6 + uses: externpro/externpro/.github/workflows/build-macos.yml@26.01.5 secrets: inherit + with: {} windows: - uses: externpro/externpro/.github/workflows/build-windows.yml@25.07.6 + uses: externpro/externpro/.github/workflows/build-windows.yml@26.01.5 secrets: inherit + with: {} diff --git a/.github/workflows/xprelease.yml b/.github/workflows/xprelease.yml index a2eb28224c..5181b8f718 100644 --- a/.github/workflows/xprelease.yml +++ b/.github/workflows/xprelease.yml @@ -34,7 +34,7 @@ jobs: # Upload build artifacts as release assets release-from-build: if: github.event_name == 'workflow_dispatch' - uses: externpro/externpro/.github/workflows/release-from-build.yml@25.07.6 + uses: externpro/externpro/.github/workflows/release-from-build.yml@26.01.5 with: workflow_run_url: ${{ github.event.inputs.workflow_run_url }} permissions: diff --git a/.github/workflows/xptag.yml b/.github/workflows/xptag.yml index b5ce9503a2..1f6b0193f2 100644 --- a/.github/workflows/xptag.yml +++ b/.github/workflows/xptag.yml @@ -8,9 +8,9 @@ on: jobs: tag: if: ${{ github.event.pull_request.merged == true && github.event.pull_request.base.ref == 'xpro' && contains(github.event.pull_request.labels.*.name, 'release:tag') }} - uses: externpro/externpro/.github/workflows/tag-release.yml@25.07.6 + uses: externpro/externpro/.github/workflows/tag-release.yml@26.01.5 with: merge_sha: ${{ github.event.pull_request.merge_commit_sha }} pr_number: ${{ github.event.pull_request.number }} secrets: - workflow_write_token: ${{ secrets.XPUPDATE_TOKEN }} + automation_token: ${{ secrets.XPRO_TOKEN }} From c0aca78eaa3c04e917fefaf2be3fa14034514f57 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Aug 2026 22:20:44 +0000 Subject: [PATCH 4/6] update .github/release-tag.json --- .github/release-tag.json | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .github/release-tag.json diff --git a/.github/release-tag.json b/.github/release-tag.json new file mode 100644 index 0000000000..9169871f10 --- /dev/null +++ b/.github/release-tag.json @@ -0,0 +1,4 @@ +{ + "message": "xpro version 1.9.0.5 tag", + "tag": "xpv1.9.0.5" +} From 459623bdd6aafa47ac49c2447c1ad0390b4eefc2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Aug 2026 22:20:44 +0000 Subject: [PATCH 5/6] dependency updates --- xprodeps.md | 11 +++++----- xprodeps.svg | 60 +++++++++++++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 29 deletions(-) diff --git a/xprodeps.md b/xprodeps.md index cc38da6221..b068791656 100644 --- a/xprodeps.md +++ b/xprodeps.md @@ -3,14 +3,15 @@ |project|license [^_l]|description [dependencies]|version|source|diff [^_d]| |-------|-------------|--------------------------|-------|------|----------| |[libssh2](http://www.libssh2.org/)|[BSD-3-Clause](http://www.libssh2.org/license.html 'BSD 3-Clause New or Revised License')|client-side C library implementing SSH2 protocol [deps: _openssl, zlib_]| |[upstream](https://github.com/libssh2/libssh2 'github.com/libssh2/libssh2')| [patch]| -|[openssl](http://www.openssl.org/)|[BSD-style](http://www.openssl.org/source/license.html 'dual OpenSSL and SSLeay License: both are BSD-style licenses')|Cryptography and SSL/TLS Toolkit [pvt deps: _nasm, yasm_]|[xpv1.1.1l.4](https://github.com/externpro/openssl/releases/tag/xpv1.1.1l.4 'release')|[repo](https://github.com/externpro/openssl 'github.com/externpro/openssl') [upstream](https://github.com/openssl/openssl 'github.com/openssl/openssl')|[diff](https://github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.4 'github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.4') [intro]| -|[zlib](https://zlib.net 'zlib website')|[permissive](https://zlib.net/zlib_license.html 'zlib/libpng license, see https://en.wikipedia.org/wiki/Zlib_License')|compression library|[xpv1.3.1.4](https://github.com/externpro/zlib/releases/tag/xpv1.3.1.4 'release')|[repo](https://github.com/externpro/zlib 'github.com/externpro/zlib') [upstream](https://github.com/madler/zlib 'github.com/madler/zlib')|[diff](https://github.com/externpro/zlib/compare/v1.3.1...xpv1.3.1.4 'github.com/externpro/zlib/compare/v1.3.1...xpv1.3.1.4') [patch]| -|[nasm](https://www.nasm.us/)|[BSD-2-Clause](https://www.nasm.us/ 'BSD 2-Clause Simplified License')|The Netwide Assembler - an 80x86 and x86-64 assembler (MSW-only)|[xpv2.14.02.4](https://github.com/externpro/nasm/releases/tag/xpv2.14.02.4 'release')|[repo](https://github.com/externpro/nasm 'github.com/externpro/nasm')|[diff](https://github.com/externpro/nasm/compare/v0...xpv2.14.02.4 'github.com/externpro/nasm/compare/v0...xpv2.14.02.4') [bin]| -|[yasm](http://yasm.tortall.net/)|[BSD-2-Clause](https://github.com/yasm/yasm/blob/v1.3.0/COPYING 'BSD 2-Clause Simplified License')|assembler and disassembler for the Intel x86 architecture|[xpv1.3.0.3](https://github.com/externpro/yasm/releases/tag/xpv1.3.0.3 'release')|[repo](https://github.com/externpro/yasm 'github.com/externpro/yasm') [upstream](https://github.com/yasm/yasm 'github.com/yasm/yasm')|[diff](https://github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.3 'github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.3') [patch]| +|[openssl](http://www.openssl.org/)|[OpenSSL AND SSLeay](http://www.openssl.org/source/license.html 'dual OpenSSL and SSLeay License: both apply')|Cryptography and SSL/TLS Toolkit [deps: _Threads_] [pvt deps: _nasm, yasm_]|[xpv1.1.1l.6](https://github.com/externpro/openssl/releases/tag/xpv1.1.1l.6 'release')|[repo](https://github.com/externpro/openssl 'github.com/externpro/openssl') [upstream](https://github.com/openssl/openssl 'github.com/openssl/openssl')|[diff](https://github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.6 'github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.6') [intro]| +|[zlib](https://zlib.net/ 'zlib website')|[Zlib](https://zlib.net/zlib_license.html 'zlib/libpng license, see https://en.wikipedia.org/wiki/Zlib_License')|a general-purpose lossless data-compression library|[xpv1.3.2.1](https://github.com/externpro/zlib/releases/tag/xpv1.3.2.1 'release')|[repo](https://github.com/externpro/zlib 'github.com/externpro/zlib') [upstream](https://github.com/madler/zlib 'github.com/madler/zlib')|[diff](https://github.com/externpro/zlib/compare/v1.3.2...xpv1.3.2.1 'github.com/externpro/zlib/compare/v1.3.2...xpv1.3.2.1') [patch]| +|[Threads](https://cmake.org/cmake/help/latest/module/FindThreads.html)|[LGPL-2.1-or-later](https://spdx.org/licenses/LGPL-2.1-or-later.html 'GNU Lesser General Public License v2.1 or later')|Finds and determines the thread library of the system for multithreading support|[xpv1.0.4](https://github.com/externpro/Threads/releases/tag/xpv1.0.4 'release')|[repo](https://github.com/externpro/Threads 'github.com/externpro/Threads')|[diff](https://github.com/externpro/Threads/compare/v0...xpv1.0.4 'github.com/externpro/Threads/compare/v0...xpv1.0.4') [bin]| +|[nasm](https://www.nasm.us/)|[BSD-2-Clause](https://www.nasm.us/ 'BSD 2-Clause Simplified License')|The Netwide Assembler - an 80x86 and x86-64 assembler (MSW-only)|[xpv2.14.02.5](https://github.com/externpro/nasm/releases/tag/xpv2.14.02.5 'release')|[repo](https://github.com/externpro/nasm 'github.com/externpro/nasm')|[diff](https://github.com/externpro/nasm/compare/v0...xpv2.14.02.5 'github.com/externpro/nasm/compare/v0...xpv2.14.02.5') [bin]| +|[yasm](http://yasm.tortall.net/)|[BSD-2-Clause](https://github.com/yasm/yasm/blob/v1.3.0/COPYING 'BSD 2-Clause Simplified License')|assembler and disassembler for the Intel x86 architecture|[xpv1.3.0.4](https://github.com/externpro/yasm/releases/tag/xpv1.3.0.4 'release')|[repo](https://github.com/externpro/yasm 'github.com/externpro/yasm') [upstream](https://github.com/yasm/yasm 'github.com/yasm/yasm')|[diff](https://github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.4 'github.com/externpro/yasm/compare/v1.3.0...xpv1.3.0.4') [patch]| ![deps](xprodeps.svg 'dependencies') -Dependency version check: all 4 parent-manifest versions match pinned versions. +Dependency version check: all 5 parent-manifest versions match pinned versions. |diff |description| |------|-----------| diff --git a/xprodeps.svg b/xprodeps.svg index 0e304a873d..6e0c107b1f 100644 --- a/xprodeps.svg +++ b/xprodeps.svg @@ -4,63 +4,75 @@ - + GG libssh2 - -libssh2 + +libssh2 openssl - -openssl + +openssl libssh2->openssl - - + + zlib - -zlib + +zlib libssh2->zlib - - + + - + +Threads + +Threads + + + +openssl->Threads + + + + + nasm - -nasm + +nasm - + openssl->nasm - - + + - + yasm - -yasm + +yasm - + openssl->yasm - - + + From ee157112dbf6d2066e7f30693e6a921faa2daf0d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 24 Aug 2026 22:20:44 +0000 Subject: [PATCH 6/6] externpro 26.01.5-17-g46835fd updates --- .github/release-tag.yml | 2 -- CMakePresets.json | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 .github/release-tag.yml diff --git a/.github/release-tag.yml b/.github/release-tag.yml deleted file mode 100644 index 983c3f0630..0000000000 --- a/.github/release-tag.yml +++ /dev/null @@ -1,2 +0,0 @@ -tag: xpv1.9.0.4 -message: "xpro version 1.9.0.4 tag" diff --git a/CMakePresets.json b/CMakePresets.json index f82cfdd2cf..28efa3978f 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -3,6 +3,7 @@ "include": [ ".devcontainer/cmake/presets/xpLinuxNinja.json", ".devcontainer/cmake/presets/xpDarwinNinja.json", - ".devcontainer/cmake/presets/xpWindowsVs2022.json" + ".devcontainer/cmake/presets/xpMswVs2022.json", + ".devcontainer/cmake/presets/xpMswVs2026.json" ] }