The mirror workflow cloned with --mirror and pushed all refs, including
GitHub's refs/pull/* and upstream/pr/*, which GitLab rejects as hidden
refs ("deny updating a hidden ref" on upstream/pr/3213), failing the
whole push. Clone --bare and push only refs/heads/* and refs/tags/*
with --prune, keeping deletion sync while never touching PR refs.
The root build is a modular super-project: libretroshare, retroshare-gui,
retroshare-service, retroshare-friendserver and plugins are each a standalone
CMake project that the top-level CMakeLists.txt only aggregates (and they live
in separate git repos pulled as submodules). Rename project(retroshare-monorepo)
-> project(retroshare-superproject) and reword the CI header comments. Purely
cosmetic: the old name was referenced nowhere.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Qt6 counterparts of windows-cmake.yml and macos-cmake.yml: build the tree
against Qt6 on UCRT64 (qt6-* incl. qt6-5compat) and macOS (Homebrew 'qt'). Both
keep plugins OFF since VOIP/FeedReader are not yet Qt6-ported. Completes the
Qt6 CMake CI matrix (Ubuntu already green).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Qt6 counterpart of ubuntu-cmake.yml: builds the tree against Qt6 on
ubuntu-24.04 to exercise the version-agnostic Qt detection. Plugins kept OFF
since VOIP (Qt5 QtMultimedia API) and FeedReader (Qt5-hardcoded CMake) are not
yet ported.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- ubuntu-cmake: add concurrency cancel-in-progress (stop run pile-up per push)
- all 3: actions/checkout@v4 -> @v5 (Node 24; clears the Node 20 deprecation)
- ubuntu + macos: build with -G Ninja for consistency with Windows and a
slightly faster build (ninja already present on Ubuntu; add brew ninja on macOS)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Build reached 863/906 then failed in the FeedReader plugin: GCC 16's new
-Wtemplate-body diagnoses rapidjson 1.1.0's GenericStringRef::operator=
(assigns const members, never instantiated) as a hard error. FeedReader
includes rapidjson via -I (warnings active) unlike other targets that use
-isystem. Disable the check for the whole Windows build.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The MSYS base /usr/bin/doxygen.exe treats CMake's Windows-style OUTPUT_DIRECTORY
(D:/...) as relative, producing a bogus mixed path and failing the jsonapi
generator. Use the native-Windows mingw-w64-ucrt-x86_64-doxygen instead, which
understands D:/ drive paths.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
MSYS2 now ships GCC 16.1, which dropped many transitive includes. The pinned
librnp commit uses strlen() without <cstring>, so it failed to build
(crypto/mem.cpp: 'strlen' was not declared). Force-include the standard
string/stdint headers for the whole Windows build as a non-intrusive
workaround.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Deep index is currently disabled in the project (Xapian unused; it will be
re-enabled via the ForumContentSearchFTS5 branch). Forcing it ON pulled
Xapian, which broke the Windows build: the MSYS2 xapian-core package ships
no import lib, so linking libretroshare.dll failed on a missing
/ucrt64/lib/libxapian.dll.a. Set RS_FORUM_DEEP_INDEX=OFF and drop the xapian
dependency everywhere so the CIs reflect the real config.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CMake counterpart of the legacy qmake ci-ucrt64.yml, but builds the whole
tree (service/friendserver/sam3/rnp/plugins all ON) with Ninja and a shared
libretroshare, mirroring the user's validated local Windows command.
Submodules init without --remote (like the Linux/macOS CMake CIs).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Configure failed because the broad CMAKE_PREFIX_PATH put the Homebrew
prefix ahead of qt@5, so find_package(Qt5) picked a broken Qt5 config
(referencing a non-existent mkspecs/macx-clang). Put qt@5 first and set
Qt5_DIR explicitly, matching the local build_retroshare.sh approach.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CMake counterpart of the legacy qmake ci-macOS.yml, but builds the whole
tree (service/friendserver/sam3/rnp/plugins all ON) on macos-14 / Qt5,
using the user's validated Homebrew -I/-L flag harvesting plus
CMAKE_PREFIX_PATH so find_package() locates keg-only qt@5/botan@2/etc.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
CMake configure failed at plugins/VOIP/CMakeLists.txt (pkg_check_modules
REQUIRED libavcodec/libavutil). Add libavcodec-dev and libavutil-dev.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds .github/workflows/ubuntu-cmake.yml as the CMake counterpart to the
legacy qmake CI. Builds the whole super-project from the top-level
CMakeLists.txt (libretroshare + gui + service + friendserver + plugins,
JSON API / WebUI on) on ubuntu-22.04 / Qt5.
Submodules are initialised without --remote so libretroshare stays on the
pinned CMake-enabled commit; librnp is fetched recursively for src/libsexpp.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>