• src/xptls/CMakeLists.txt

    From Deuc¿@VERT to Git commit to main/sbbs/m on Thu May 7 09:50:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/7fdba76bb9bf8a9ae32899b0
    Added Files:
    src/xptls/CMakeLists.txt LICENSE xp_crypt.h xp_crypt_botan3.cpp xp_crypt_none.c xp_crypt_openssl.c xp_tls.h xp_tls_botan3.cpp xp_tls_none.c xp_tls_openssl.c
    Modified Files:
    src/syncterm/CMakeLists.txt GNUmakefile
    Log Message:
    xptls: move xp_tls/xp_crypt to standalone library

    Move xp_tls and xp_crypt from syncterm/ to src/xptls/ as a standalone
    static library with its own CMakeLists.txt and BSD 2-clause license.

    The library auto-detects Botan/OpenSSL/none backends and can be used
    as a CMake subdirectory by any Synchronet component. SyncTERM's
    CMakeLists.txt and GNUmakefile updated to reference the new location.

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Thu May 7 19:11:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/85dcf1c43e62351765f5a86d
    Modified Files:
    src/xptls/CMakeLists.txt
    Log Message:
    xptls: honor BOTAN3_VENDORED_TARGET on Win32

    When the parent project builds Botan via ExternalProject (typical
    on Windows where pkg-config is rarely installed), it pre-creates
    an IMPORTED Botan target and exports the cache hint
    BOTAN3_VENDORED_TARGET. Use that target directly instead of
    unconditionally requiring pkg-config Ä mirrors src/ssh/CMakeLists.txt.

    Fixes "Could NOT find PkgConfig" on Win32 CI runners.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Thu May 7 19:19:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/31025f03be71e82aaa147740
    Modified Files:
    src/xptls/CMakeLists.txt
    Log Message:
    xptls: depend on xpdev target for portability defines

    Replace the duplicated platform / HAS_STDINT_H / HAS_INTTYPES_H
    checks with a single source of truth: link xpdev. xpdev's
    CMakeLists already publishes the right defines as PUBLIC on its
    target, but xptls only borrowed xpdev's headers without linking,
    so they didn't propagate.

    Add xpdev as a subdirectory if the parent hasn't already (using
    the same xpdev_DONE flag require_lib_dir uses, so syncterm's later require_libs() doesn't double-add).

    Fixes MSVC int8_t/int32_t/uint32_t redefinition errors caused by
    gen_defs.h's typedef block firing without HAS_STDINT_H set.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Thu May 7 19:23:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/47993deecbb746f364e2c7a1
    Modified Files:
    src/xptls/CMakeLists.txt
    Log Message:
    xptls: set xpdev_DONE in CACHE so parent require_libs sees it

    set(xpdev_DONE TRUE) in xptls's scope doesn't propagate up to
    syncterm's scope where require_libs() runs, so syncterm was
    re-adding the xpdev subdirectory and triggering CMP0002 (duplicate
    target). CACHE INTERNAL makes the flag global, matching how
    require_lib_dir's own set() works inside the macro caller's scope.

    Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Mon Aug 3 23:05:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/3cbf554b40cc4cc6c11edb24
    Modified Files:
    src/xptls/CMakeLists.txt xp_ca_openssl.c xp_tls_credentials.c
    Log Message:
    xptls: restore legacy CI toolchain support

    Moving xptls behind its own CMake target exposed platform assumptions
    that SyncTERM previously supplied while compiling the provider sources directly. MinGW inherited an XP-era Windows floor, old AppleClang
    rejected an unnecessary C17 requirement, and MSVC lost the options
    needed for C11 atomics.

    Give xptls the Windows floor required by its C++ mutexes while retaining
    xpdev feature definitions, use the C11 standard the C sources actually
    require, and materialize inherited compile options before generation. Explicitly enable and expose MSVC atomics for xptls atomic users.

    Co-Authored-By: OpenAI Codex <noreply@openai.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/m on Mon Aug 3 23:30:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/1e15986d748227287fef0127
    Modified Files:
    src/xptls/CMakeLists.txt
    Log Message:
    xptls: preserve MSVC atomics flags for C sources

    Visual Studio generators evaluate target-wide COMPILE_LANGUAGE
    expressions as C++ when a target contains any C++ sources. The Botan
    provider therefore caused the C-only atomics switches to disappear from xp_tls_credentials.c, leaving MSVC's C atomics support disabled.

    Apply the atomics enablement and __STDC_NO_ATOMICS__ override directly
    to each C source that includes <stdatomic.h>. This keeps the switches
    off C++ translation units while covering both Botan and OpenSSL builds.

    Co-Authored-By: OpenAI Codex <noreply@openai.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net