From 180c1f669ece5b6e4d545f2aff10963aafb65263 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Tue, 18 Aug 2026 23:31:08 -0600 Subject: [PATCH 01/10] cmake: use bracket-quoted strings for OPENSSLDIR and ENGINESDIR Replace backslash-escaped quotes with CMake bracket-quoted strings so the preprocessor define values are passed to the compiler literally. This avoids both editor syntax highlighting issues and build errors from stray backslashes in the compiler flags. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bdd67d74a6a33..d94bb29c85021 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,8 +8,8 @@ set(OPENSSL_DEFS -D_REENTRANT -DL_ENDIAN # NOTE: SHA1_ASM must define L_ENDIAN for x86 -DOPENSSL_PIC - -DOPENSSLDIR=\"/etc/ssl\" - -DENGINESDIR=\"/dev/null\" + [[-DOPENSSLDIR="/etc/ssl"]] + [[-DENGINESDIR="/dev/null"]] ) if(WIN32) list(APPEND OPENSSL_DEFS From ac803eb93e731822b74a3b8c8d8b3870a6ba0a3d Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Tue, 18 Aug 2026 23:36:52 -0600 Subject: [PATCH 02/10] cmakeup: CMake updates, remove XP_NAMESPACE - Update minimum CMake version from 3.31 to 4.3 - Remove XP_NAMESPACE and xproinc.cmake inclusion (now part of CMakePresets) - Package name and Target Namespace now match - Make xpExternPackage conditional 'if(COMMAND' and move to end of CMakeLists.txt - xpExternPackage: infer dependency (Threads), remove FIND_THREADS - Add CMAKE_EXPERIMENTAL_GENERATE_SBOM in presets --- CMakeLists.txt | 31 +++++++++++++------------------ CMakePresetsBase.json | 2 +- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d94bb29c85021..2a95bcbf1ecd9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,4 @@ -cmake_minimum_required(VERSION 3.31) -set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) +cmake_minimum_required(VERSION 4.3) project(openssl LANGUAGES C ASM) set_property(GLOBAL PROPERTY USE_FOLDERS ON) # enables MSVC Solution Folders ######################################## @@ -102,31 +101,27 @@ function(compareCmakeFilesys files) endfunction() ######################################## set(targetsFile ${PROJECT_NAME}-targets) -if(DEFINED XP_NAMESPACE) +add_subdirectory(include) +add_subdirectory(crypto) +add_subdirectory(ssl) +add_subdirectory(apps) +add_subdirectory(test) +if(COMMAND xpExternPackage) string(JOIN "\n" ALIASES "if(NOT TARGET OpenSSL::Crypto)" - " add_library(OpenSSL::Crypto ALIAS ${XP_NAMESPACE}::crypto)" + " add_library(OpenSSL::Crypto ALIAS ${CMAKE_PROJECT_NAME}::crypto)" "endif()" - "" "if(NOT TARGET OpenSSL::SSL)" - " add_library(OpenSSL::SSL ALIAS ${XP_NAMESPACE}::ssl)" + " add_library(OpenSSL::SSL ALIAS ${CMAKE_PROJECT_NAME}::ssl)" "endif()" "" ) - xpExternPackage(NAMESPACE ${XP_NAMESPACE} - TARGETS_FILE ${targetsFile} LIBRARIES crypto ssl - BASE OpenSSL_1_1_1l XPDIFF "intro" - FIND_THREADS PVT_DEPS nasm yasm + xpExternPackage(TARGETS_FILE ${targetsFile} + LIBRARIES crypto ssl DEFAULT_TARGETS crypto ssl + BASE OpenSSL_1_1_1l XPDIFF "intro" PVT_DEPS nasm yasm WEB "http://www.openssl.org/" UPSTREAM "github.com/openssl/openssl" DESC "Cryptography and SSL/TLS Toolkit" LICENSE "[OpenSSL AND SSLeay](http://www.openssl.org/source/license.html 'dual OpenSSL and SSLeay License: both apply')" ) - set(nameSpace NAMESPACE ${XP_NAMESPACE}::) endif() -######################################## -add_subdirectory(include) -add_subdirectory(crypto) -add_subdirectory(ssl) -add_subdirectory(apps) -add_subdirectory(test) -install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} ${nameSpace}) +install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} NAMESPACE ${CMAKE_PROJECT_NAME}::) diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json index 4489d79c34cef..c54ade998adeb 100644 --- a/CMakePresetsBase.json +++ b/CMakePresetsBase.json @@ -6,7 +6,7 @@ "hidden": true, "binaryDir": "${sourceDir}/_bld-${presetName}", "cacheVariables": { - "XP_NAMESPACE": "xpro" + "CMAKE_EXPERIMENTAL_GENERATE_SBOM": "ca494ed3-b261-4205-a01f-603c95e4cae0" } } ], From 5b13c0d94e98919810c85d6d78bde5b28d608300 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 19 Aug 2026 05:42:38 +0000 Subject: [PATCH 03/10] externpro 26.01.5-7-g64a1663 --- .devcontainer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer b/.devcontainer index bfed68d1a12ff..64a1663b4a48c 160000 --- a/.devcontainer +++ b/.devcontainer @@ -1 +1 @@ -Subproject commit bfed68d1a12ffd2b248e405d7cfad18f0ef53278 +Subproject commit 64a1663b4a48cadfbcf0e3e06f699041e38613d8 From 2f13990613b3f9d254f052356ab59c298f6c4431 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 19 Aug 2026 05:42:38 +0000 Subject: [PATCH 04/10] 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 76b2701dea0c7..25962792df934 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 a2eb28224cada..5181b8f71800c 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 b5ce9503a2a76..1f6b0193f2d9e 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 81583f4a7cb0ad0cf7f8b42648b18f20969aaa41 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 19 Aug 2026 05:42:39 +0000 Subject: [PATCH 05/10] 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 0000000000000..7b8ec787d6973 --- /dev/null +++ b/.github/release-tag.json @@ -0,0 +1,4 @@ +{ + "message": "xpro version 1.1.1l.5 tag", + "tag": "xpv1.1.1l.5" +} From 352d82258aa57348538308268d66ffeb1c14cd15 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 19 Aug 2026 05:42:39 +0000 Subject: [PATCH 06/10] dependency updates --- xprodeps.md | 9 +++++---- xprodeps.svg | 44 ++++++++++++++++++++++++++++---------------- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/xprodeps.md b/xprodeps.md index 42248b01007f4..b48b1fa117b74 100644 --- a/xprodeps.md +++ b/xprodeps.md @@ -2,13 +2,14 @@ |project|license [^_l]|description [dependencies]|version|source|diff [^_d]| |-------|-------------|--------------------------|-------|------|----------| -|[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_]| |[upstream](https://github.com/openssl/openssl 'github.com/openssl/openssl')| [intro]| -|[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_]| |[upstream](https://github.com/openssl/openssl 'github.com/openssl/openssl')| [intro]| +|[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 2 parent-manifest versions match pinned versions. +Dependency version check: all 3 parent-manifest versions match pinned versions. |diff |description| |------|-----------| diff --git a/xprodeps.svg b/xprodeps.svg index ad43f15528d0b..86f5130b88988 100644 --- a/xprodeps.svg +++ b/xprodeps.svg @@ -4,39 +4,51 @@ - + GG openssl - -openssl + +openssl - + +Threads + +Threads + + + +openssl->Threads + + + + + nasm - -nasm + +nasm - + openssl->nasm - - + + - + yasm - -yasm + +yasm - + openssl->yasm - - + + From 93ba7030f9ed3d59b0b22ac35c8de92a2957b550 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 19 Aug 2026 05:42:39 +0000 Subject: [PATCH 07/10] externpro 26.01.5-7-g64a1663 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 81411a84228f2..0000000000000 --- a/.github/release-tag.yml +++ /dev/null @@ -1,2 +0,0 @@ -tag: xpv1.1.1l.4 -message: "xpro version 1.1.1l.4 tag" diff --git a/CMakePresets.json b/CMakePresets.json index f82cfdd2cf630..28efa3978f891 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" ] } From 7dd88ff94b66ed1c00064f6069845cda3875d277 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Wed, 19 Aug 2026 00:20:01 -0600 Subject: [PATCH 08/10] workflows/xpbuild: windows.with.enable_tmate true Turn on enable_tmate for the Windows job in xpBuild so we can SSH into the runner and debug the Windows linker issues interactively. --- .github/workflows/xpbuild.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml index 25962792df934..0fb73f628ac1b 100644 --- a/.github/workflows/xpbuild.yml +++ b/.github/workflows/xpbuild.yml @@ -25,4 +25,5 @@ jobs: windows: uses: externpro/externpro/.github/workflows/build-windows.yml@26.01.5 secrets: inherit - with: {} + with: + enable_tmate: true From a94b40ff2d2552e265bacbce3a177cc8f9208692 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Wed, 19 Aug 2026 01:49:13 -0600 Subject: [PATCH 09/10] workflows/xpbuild: windows.with.enable_tmate back to default (false) --- .github/workflows/xpbuild.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/xpbuild.yml b/.github/workflows/xpbuild.yml index 0fb73f628ac1b..25962792df934 100644 --- a/.github/workflows/xpbuild.yml +++ b/.github/workflows/xpbuild.yml @@ -25,5 +25,4 @@ jobs: windows: uses: externpro/externpro/.github/workflows/build-windows.yml@26.01.5 secrets: inherit - with: - enable_tmate: true + with: {} From eeb1237e0214da2ce79c095b9b9c57f86580d322 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Wed, 19 Aug 2026 01:50:26 -0600 Subject: [PATCH 10/10] crypto/CMakeLists: find full path to ws2_32.lib for Windows builds Use find_library with the Windows SDK path so the Visual Studio linker receives ws2_32.lib instead of -lws2_32. --- crypto/CMakeLists.txt | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index 8a75bb6662b30..a6155e6227cfd 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -1920,7 +1920,27 @@ target_link_libraries(${lib_name} PUBLIC $ PRIVATE Thre include(CheckLibraryExists) check_library_exists(ws2_32 getch "" CRYPTO_HAS_WS2_32) if(CRYPTO_HAS_WS2_32) - target_link_libraries(${lib_name} PRIVATE ws2_32) + set(_ws2_arch ${CMAKE_GENERATOR_PLATFORM}) + if(NOT _ws2_arch) + set(_ws2_arch x64) + endif() + set(_ws2_sdk ${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION}) + if(_ws2_sdk) + find_library(WS2_32_LIBRARY ws2_32 + PATHS "C:/Program Files (x86)/Windows Kits/10/Lib/${_ws2_sdk}/um/${_ws2_arch}" + "C:/Program Files/Windows Kits/10/Lib/${_ws2_sdk}/um/${_ws2_arch}" + NO_DEFAULT_PATH + ) + endif() + if(WS2_32_LIBRARY) + target_link_libraries(${lib_name} INTERFACE "$$") + else() + message(WARNING "ws2_32.lib not found; falling back to short name") + target_link_libraries(${lib_name} INTERFACE "ws2_32.lib") + endif() + unset(_ws2_arch) + unset(_ws2_sdk) + unset(WS2_32_LIBRARY) endif() ######################################## install(TARGETS ${lib_name} EXPORT ${targetsFile}