From 1d52c6e30d875a0c54a2d499d1b5a11124056e38 Mon Sep 17 00:00:00 2001 From: Scott M Anderson Date: Thu, 20 Aug 2026 00:46:23 -0600 Subject: [PATCH 1/6] 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 - Define [LIBEXPAT|OPENSSL]_LIBRARIES if not defined (found via cps instead of cmake script) - Infer dependencies (libexpat, openssl) - Add CMAKE_EXPERIMENTAL_GENERATE_SBOM in presets --- CMakeLists.txt | 36 +++++++++++++++++++++--------------- CMakePresetsBase.json | 2 +- src/CMakeLists.txt | 5 +---- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bfca8cb1..92def6b3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,5 @@ -cmake_minimum_required(VERSION 3.31) -set(CMAKE_PROJECT_TOP_LEVEL_INCLUDES .devcontainer/cmake/xproinc.cmake) +cmake_minimum_required(VERSION 4.3) project(libstrophe) -set(targetsFile ${PROJECT_NAME}-targets) -if(DEFINED XP_NAMESPACE) - xpExternPackage(NAMESPACE ${XP_NAMESPACE} - TARGETS_FILE ${targetsFile} LIBRARIES ${PROJECT_NAME} - BASE 0.9.1 XPDIFF "intro" DEPS libexpat openssl - WEB "http://strophe.im/libstrophe/" UPSTREAM "github.com/strophe/libstrophe" - DESC "A simple, lightweight C library for writing XMPP client" - LICENSE "[MIT OR GPL-3.0-only](https://github.com/strophe/libstrophe/blob/0.9.1/LICENSE.txt 'dual licensed under MIT and GPLv3 licenses')" - ) -endif() enable_testing() set_property(GLOBAL PROPERTY USE_FOLDERS ON) # enables MSVC Solution Folders ######################################## @@ -22,13 +11,17 @@ if(MSVC) ) endif() ######################################## -find_package(OpenSSL) find_package(libexpat) -if(NOT LIBEXPAT_FOUND) +if(NOT libexpat_FOUND) message(FATAL_ERROR "can't find libexpat - libstrophe cmake currently hard-coded to use libexpat") +elseif(NOT DEFINED LIBEXPAT_LIBRARIES AND TARGET libexpat::expat) + set(LIBEXPAT_LIBRARIES libexpat::expat) endif() -if(NOT OPENSSL_FOUND) +find_package(openssl) +if(NOT openssl_FOUND) message(FATAL_ERROR "can't find OpenSSL - libstrophe cmake currently hard-coded to use OpenSSL") +elseif(NOT DEFINED OPENSSL_LIBRARIES AND TARGET openssl::crypto AND TARGET openssl::ssl) + set(OPENSSL_LIBRARIES openssl::crypto openssl::ssl) endif() #################### include(CheckLibraryExists) @@ -49,7 +42,20 @@ checkLibraryConcat(resolv ${fn} SYS_LIBS) checkLibraryConcat(winmm timeGetTime SYS_LIBS) checkLibraryConcat(ws2_32 getch SYS_LIBS) ######################################## +set(targetsFile ${PROJECT_NAME}-targets) +if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR) + set(CMAKE_INSTALL_CMAKEDIR ${CMAKE_INSTALL_DATADIR}/cmake) +endif() add_subdirectory(src) add_subdirectory(examples) add_subdirectory(tests) install(FILES strophe.h strophepp.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}) +if(COMMAND xpExternPackage) + xpExternPackage(TARGETS_FILE ${targetsFile} + LIBRARIES ${PROJECT_NAME} DEFAULT_TARGETS ${PROJECT_NAME} + BASE 0.9.1 XPDIFF "intro" + WEB "http://strophe.im/libstrophe/" UPSTREAM "github.com/strophe/libstrophe" + DESC "A simple, lightweight C library for writing XMPP client" + LICENSE "[MIT OR GPL-3.0-only](https://github.com/strophe/libstrophe/blob/0.9.1/LICENSE.txt 'dual licensed under MIT and GPLv3 licenses')" + ) +endif() diff --git a/CMakePresetsBase.json b/CMakePresetsBase.json index 4489d79c..c54ade99 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" } } ], diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f1a7fd75..ddaa8fbb 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -56,7 +56,4 @@ install(TARGETS ${lib_name} EXPORT ${targetsFile} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) -if(DEFINED XP_NAMESPACE) - set(nameSpace NAMESPACE ${XP_NAMESPACE}::) -endif() -install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} ${nameSpace}) +install(EXPORT ${targetsFile} DESTINATION ${CMAKE_INSTALL_CMAKEDIR} NAMESPACE ${PROJECT_NAME}::) From 5ef20eac2994dd41b51f45a2a0e521bce4ce0d26 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 06:51:07 +0000 Subject: [PATCH 2/6] externpro 26.01.5-10-g088d11f --- .devcontainer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer b/.devcontainer index 99c37c55..088d11f8 160000 --- a/.devcontainer +++ b/.devcontainer @@ -1 +1 @@ -Subproject commit 99c37c554e3473089ab264dbbf0e5f53d8cc18ef +Subproject commit 088d11f85ea014c03195ed1029151bc47d05da9d From 474016587136d6570b4bbc5b5942acbf34313387 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 06:51:07 +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 76b2701d..25962792 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 a2eb2822..5181b8f7 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 b5ce9503..1f6b0193 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 22573a6e5a9d85c1b73148629ed8969578dbf465 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 06:51:07 +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 00000000..ad691db1 --- /dev/null +++ b/.github/release-tag.json @@ -0,0 +1,4 @@ +{ + "message": "xpro version 0.9.1.6 tag", + "tag": "xpv0.9.1.6" +} From 6daa76c830530c0ecdf333cb1233e37ea63781fd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 06:51:07 +0000 Subject: [PATCH 5/6] dependency updates --- xprodeps.md | 13 +++++++------ xprodeps.svg | 40 ++++++++++++++++++++++++++-------------- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/xprodeps.md b/xprodeps.md index 9a908bbc..24a3960c 100644 --- a/xprodeps.md +++ b/xprodeps.md @@ -2,15 +2,16 @@ |project|license [^_l]|description [dependencies]|version|source|diff [^_d]| |-------|-------------|--------------------------|-------|------|----------| -|[libstrophe](http://strophe.im/libstrophe/)|[MIT or GPL-3.0](https://github.com/strophe/libstrophe/blob/0.9.1/LICENSE.txt 'dual licensed under MIT and GPLv3 licenses')|A simple, lightweight C library for writing XMPP client [deps: _libexpat, openssl_]| |[upstream](https://github.com/strophe/libstrophe 'github.com/strophe/libstrophe')| [intro]| -|[libexpat](https://libexpat.github.io)|[MIT](https://github.com/libexpat/libexpat/blob/R_2_2_5/expat/COPYING 'MIT License')|a stream-oriented XML parser library written in C|[xpv2.2.5.3](https://github.com/externpro/libexpat/releases/tag/xpv2.2.5.3 'release')|[repo](https://github.com/externpro/libexpat 'github.com/externpro/libexpat') [upstream](https://github.com/libexpat/libexpat 'github.com/libexpat/libexpat')|[diff](https://github.com/externpro/libexpat/compare/R_2_2_5...xpv2.2.5.3 'github.com/externpro/libexpat/compare/R_2_2_5...xpv2.2.5.3') [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]| -|[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]| +|[libstrophe](http://strophe.im/libstrophe/)|[MIT OR GPL-3.0-only](https://github.com/strophe/libstrophe/blob/0.9.1/LICENSE.txt 'dual licensed under MIT and GPLv3 licenses')|A simple, lightweight C library for writing XMPP client [deps: _libexpat, openssl_]| |[upstream](https://github.com/strophe/libstrophe 'github.com/strophe/libstrophe')| [intro]| +|[libexpat](https://libexpat.github.io)|[MIT](https://github.com/libexpat/libexpat/blob/R_2_2_5/expat/COPYING 'MIT License')|a stream-oriented XML parser library written in C|[xpv2.2.5.4](https://github.com/externpro/libexpat/releases/tag/xpv2.2.5.4 'release')|[repo](https://github.com/externpro/libexpat 'github.com/externpro/libexpat') [upstream](https://github.com/libexpat/libexpat 'github.com/libexpat/libexpat')|[diff](https://github.com/externpro/libexpat/compare/R_2_2_5...xpv2.2.5.4 'github.com/externpro/libexpat/compare/R_2_2_5...xpv2.2.5.4') [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.5](https://github.com/externpro/openssl/releases/tag/xpv1.1.1l.5 '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.5 'github.com/externpro/openssl/compare/OpenSSL_1_1_1l...xpv1.1.1l.5') [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 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 9a1ac867..1b8e15bd 100644 --- a/xprodeps.svg +++ b/xprodeps.svg @@ -4,8 +4,8 @@ - + GG @@ -38,29 +38,41 @@ - + +Threads + +Threads + + + +openssl->Threads + + + + + nasm - -nasm + +nasm - + openssl->nasm - - + + - + yasm - -yasm + +yasm - + openssl->yasm - - + + From e5e6fba831a00ba006e631591c3d234704c44c2c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 20 Aug 2026 06:51:07 +0000 Subject: [PATCH 6/6] externpro 26.01.5-10-g088d11f 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 d3e75662..00000000 --- a/.github/release-tag.yml +++ /dev/null @@ -1,2 +0,0 @@ -tag: xpv0.9.1.5 -message: "xpro version 0.9.1.5 tag" diff --git a/CMakePresets.json b/CMakePresets.json index f82cfdd2..28efa397 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" ] }