diff --git a/.devcontainer b/.devcontainer
index 8a5e4df722..46835fd599 160000
--- a/.devcontainer
+++ b/.devcontainer
@@ -1 +1 @@
-Subproject commit 8a5e4df7220b4870ba0ff81ee9e2b319b2855977
+Subproject commit 46835fd599ba053d965bab3f77556ec3ca98c15b
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"
+}
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/.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 }}
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/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"
]
}
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()
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]|

-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 @@
-