aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2023-08-11 16:39:45 +0200
committerGitHub <[email protected]>2023-08-11 16:39:45 +0200
commitbf4738df5cad0eaa61f4e24b8db7611e378f9f80 (patch)
tree6f0ada74fc5c49b71b64f7731c0681ef544bea65
parent0.2.16-pre0 (diff)
downloadzen-bf4738df5cad0eaa61f4e24b8db7611e378f9f80.tar.xz
zen-bf4738df5cad0eaa61f4e24b8db7611e378f9f80.zip
update vcpkg dependencies (#356)
* bump vcpkg version * fmt lib 10 fixes * xmake dependencies (with linux workarounds) * changelog
-rw-r--r--.github/workflows/create_release.yml12
-rw-r--r--.github/workflows/validate.yml12
-rw-r--r--CHANGELOG.md1
-rw-r--r--src/zen/cmds/status.cpp3
-rw-r--r--src/zen/cmds/top.cpp7
-rw-r--r--src/zen/zen.cpp2
-rw-r--r--src/zencore/include/zencore/fmtutils.h11
-rw-r--r--src/zencore/include/zencore/string.h32
-rw-r--r--src/zencore/thread.cpp1
-rw-r--r--src/zenserver-test/zenserver-test.cpp15
-rw-r--r--src/zenserver/cache/httpstructuredcache.cpp3
-rw-r--r--src/zenserver/projectstore/projectstore.cpp4
-rw-r--r--src/zenserver/xmake.lua5
-rw-r--r--src/zenserver/zenserver.cpp6
-rw-r--r--src/zenstore/filecas.cpp2
-rw-r--r--src/zenutil/zenserverprocess.cpp2
-rw-r--r--xmake.lua23
17 files changed, 106 insertions, 35 deletions
diff --git a/.github/workflows/create_release.yml b/.github/workflows/create_release.yml
index 8d7a965cd..6f29e3382 100644
--- a/.github/workflows/create_release.yml
+++ b/.github/workflows/create_release.yml
@@ -10,7 +10,7 @@ jobs:
runs-on: [self-hosted, windows, x64]
timeout-minutes: 25
env:
- VCPKG_VERSION: 2023.04.15
+ VCPKG_VERSION: 2023.07.21
steps:
- uses: actions/checkout@v3
@@ -18,7 +18,7 @@ jobs:
- name: Setup xmake
uses: xmake-io/github-action-setup-xmake@v1
with:
- xmake-version: 2.7.9
+ xmake-version: branch@dev
- name: Installing vcpkg
run: |
@@ -61,7 +61,7 @@ jobs:
runs-on: [self-hosted, linux, x64]
timeout-minutes: 25
env:
- VCPKG_VERSION: 2023.04.15
+ VCPKG_VERSION: 2023.07.21
steps:
- uses: actions/checkout@v3
@@ -75,7 +75,7 @@ jobs:
- name: Setup xmake
uses: xmake-io/github-action-setup-xmake@v1
with:
- xmake-version: 2.7.9
+ xmake-version: branch@dev
- name: Installing vcpkg
run: |
@@ -124,7 +124,7 @@ jobs:
runs-on: [self-hosted, macos, x64]
timeout-minutes: 25
env:
- VCPKG_VERSION: 2023.04.15
+ VCPKG_VERSION: 2023.07.21
steps:
- uses: actions/checkout@v3
@@ -138,7 +138,7 @@ jobs:
- name: Setup xmake
uses: xmake-io/github-action-setup-xmake@v1
with:
- xmake-version: 2.7.9
+ xmake-version: branch@dev
- name: Installing vcpkg
run: |
diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml
index e0a8b6a8f..435467822 100644
--- a/.github/workflows/validate.yml
+++ b/.github/workflows/validate.yml
@@ -53,7 +53,7 @@ jobs:
arch:
- 'x64'
env:
- VCPKG_VERSION: 2023.04.15
+ VCPKG_VERSION: 2023.07.21
steps:
- name: Checkout
@@ -62,7 +62,7 @@ jobs:
- name: Setup xmake
uses: xmake-io/github-action-setup-xmake@v1
with:
- xmake-version: 2.7.9
+ xmake-version: branch@dev
- name: Installing vcpkg
run: | # Remove-Item -Recurse .vcpkg
@@ -119,7 +119,7 @@ jobs:
arch:
- 'x86_64'
env:
- VCPKG_VERSION: 2023.04.15
+ VCPKG_VERSION: 2023.07.21
steps:
- name: Checkout
@@ -134,7 +134,7 @@ jobs:
- name: Setup xmake
uses: xmake-io/github-action-setup-xmake@v1
with:
- xmake-version: 2.7.9
+ xmake-version: branch@dev
- name: Installing vcpkg
run: | # rm -rf .vcpkg
@@ -190,7 +190,7 @@ jobs:
arch:
- 'x86_64'
env:
- VCPKG_VERSION: 2023.04.15
+ VCPKG_VERSION: 2023.07.21
steps:
- name: Checkout
@@ -199,7 +199,7 @@ jobs:
- name: Setup xmake
uses: xmake-io/github-action-setup-xmake@v1
with:
- xmake-version: 2.7.9
+ xmake-version: branch@dev
- name: Installing vcpkg
run: | # rm -rf .vcpkg
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bc6369bc9..97aad3773 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,7 @@
- Improvement: Add `response.text` to output in log when jupiter request fails
- Improvement: Only hash jupiter oplog ref once when uploading
- Improvement: Increase request timeout when uploading to Jupiter to 3 min (to handle very large attachments)
+- Improvement: Fix issues with latest fmt vcpk dependency (10.0.0) and sentry-native for linux
## 0.2.15
- Feature: Add `--assume-http2` option to cloud style import/export command to use a HTTP/2 endpoint without without HTTP/1.1 upgrade
diff --git a/src/zen/cmds/status.cpp b/src/zen/cmds/status.cpp
index 23c27f9f9..1afe191b7 100644
--- a/src/zen/cmds/status.cpp
+++ b/src/zen/cmds/status.cpp
@@ -2,6 +2,7 @@
#include "status.h"
+#include <zencore/fmtutils.h>
#include <zencore/logging.h>
#include <zencore/string.h>
#include <zencore/uid.h>
@@ -32,7 +33,7 @@ StatusCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
State.Snapshot([&](const ZenServerState::ZenServerEntry& Entry) {
StringBuilder<25> SessionStringBuilder;
Entry.GetSessionId().ToString(SessionStringBuilder);
- ZEN_CONSOLE("{:>5} {:>6} {:>24}", Entry.EffectiveListenPort, Entry.Pid, SessionStringBuilder.ToString());
+ ZEN_CONSOLE("{:>5} {:>6} {:>24}", Entry.EffectiveListenPort.load(), Entry.Pid.load(), SessionStringBuilder);
});
return 0;
diff --git a/src/zen/cmds/top.cpp b/src/zen/cmds/top.cpp
index 4fe8c9cdf..6aed6fe1b 100644
--- a/src/zen/cmds/top.cpp
+++ b/src/zen/cmds/top.cpp
@@ -45,7 +45,7 @@ TopCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
State.Snapshot([&](const ZenServerState::ZenServerEntry& Entry) {
StringBuilder<25> SessionStringBuilder;
Entry.GetSessionId().ToString(SessionStringBuilder);
- ZEN_CONSOLE("{:>5} {:>6} {:>24}", Entry.EffectiveListenPort, Entry.Pid, SessionStringBuilder.ToString());
+ ZEN_CONSOLE("{:>5} {:>6} {:>24}", Entry.EffectiveListenPort.load(), Entry.Pid.load(), SessionStringBuilder);
});
zen::Sleep(1000);
@@ -80,8 +80,9 @@ PsCommand::Run(const ZenCliOptions& GlobalOptions, int argc, char** argv)
return 0;
}
- State.Snapshot(
- [&](const ZenServerState::ZenServerEntry& Entry) { ZEN_CONSOLE("Port {} : pid {}", Entry.EffectiveListenPort, Entry.Pid); });
+ State.Snapshot([&](const ZenServerState::ZenServerEntry& Entry) {
+ ZEN_CONSOLE("Port {} : pid {}", Entry.EffectiveListenPort.load(), Entry.Pid.load());
+ });
return 0;
}
diff --git a/src/zen/zen.cpp b/src/zen/zen.cpp
index 0dc86a50f..6031c8be6 100644
--- a/src/zen/zen.cpp
+++ b/src/zen/zen.cpp
@@ -456,7 +456,7 @@ ZenCmdBase::ResolveTargetHostSpec(const std::string& InHostSpec, uint16_t& OutEf
Servers.Snapshot([&](const zen::ZenServerState::ZenServerEntry& Entry) {
if (ResolvedSpec.empty())
{
- ResolvedSpec = fmt::format("http://localhost:{}", Entry.EffectiveListenPort);
+ ResolvedSpec = fmt::format("http://localhost:{}", Entry.EffectiveListenPort.load());
OutEffectivePort = Entry.EffectiveListenPort;
}
});
diff --git a/src/zencore/include/zencore/fmtutils.h b/src/zencore/include/zencore/fmtutils.h
index 5c5169cd6..a927df866 100644
--- a/src/zencore/include/zencore/fmtutils.h
+++ b/src/zencore/include/zencore/fmtutils.h
@@ -2,6 +2,7 @@
#pragma once
+#include <zencore/filesystem.h>
#include <zencore/guid.h>
#include <zencore/iohash.h>
#include <zencore/string.h>
@@ -11,7 +12,6 @@ ZEN_THIRD_PARTY_INCLUDES_START
#include <fmt/format.h>
ZEN_THIRD_PARTY_INCLUDES_END
-#include <filesystem>
#include <string_view>
// Custom formatting for some zencore types
@@ -63,3 +63,12 @@ struct fmt::formatter<std::filesystem::path> : formatter<string_view>
return fmt::formatter<string_view>::format(String.ToView(), ctx);
}
};
+
+template<typename T>
+struct fmt::formatter<T, std::enable_if_t<std::is_base_of<zen::PathBuilderBase, T>::value, char>> : fmt::formatter<std::string_view>
+{
+ auto format(const zen::PathBuilderBase& a, format_context& ctx) const
+ {
+ return fmt::formatter<std::string_view>::format(a.ToView(), ctx);
+ }
+};
diff --git a/src/zencore/include/zencore/string.h b/src/zencore/include/zencore/string.h
index 7a44bf781..b26407005 100644
--- a/src/zencore/include/zencore/string.h
+++ b/src/zencore/include/zencore/string.h
@@ -17,6 +17,10 @@
#include <type_traits>
+ZEN_THIRD_PARTY_INCLUDES_START
+#include <fmt/format.h>
+ZEN_THIRD_PARTY_INCLUDES_END
+
namespace zen {
//////////////////////////////////////////////////////////////////////////
@@ -302,6 +306,16 @@ public:
return AppendAscii(Str);
}
+#if defined(__clang__) && !defined(__APPLE__)
+ /* UE Toolchain Clang has different types for int64_t and long long so an override is
+ needed here. Without it, Clang can't disambiguate integer overloads */
+ inline StringBuilderImpl& operator<<(long long n)
+ {
+ IntNum Str(n);
+ return AppendAscii(Str);
+ }
+#endif
+
inline StringBuilderImpl& operator<<(const char* str) { return AppendAscii(str); }
inline StringBuilderImpl& operator<<(const std::string_view str) { return AppendAscii(str); }
inline StringBuilderImpl& operator<<(const std::u8string_view str) { return AppendAscii(str); }
@@ -1112,3 +1126,21 @@ private:
void string_forcelink(); // internal
} // namespace zen
+
+template<typename T>
+struct fmt::formatter<T, std::enable_if_t<std::is_base_of<zen::StringBuilderBase, T>::value, char>> : fmt::formatter<std::string_view>
+{
+ auto format(const zen::StringBuilderBase& a, format_context& ctx) const
+ {
+ return fmt::formatter<std::string_view>::format(a.ToView(), ctx);
+ }
+};
+
+template<typename T>
+struct fmt::formatter<T, std::enable_if_t<std::is_base_of<zen::NiceBase, T>::value, char>> : fmt::formatter<std::string_view>
+{
+ auto format(const zen::NiceBase& a, format_context& ctx) const
+ {
+ return fmt::formatter<std::string_view>::format(std::string_view(a), ctx);
+ }
+};
diff --git a/src/zencore/thread.cpp b/src/zencore/thread.cpp
index b225c8aff..d95f5d542 100644
--- a/src/zencore/thread.cpp
+++ b/src/zencore/thread.cpp
@@ -4,6 +4,7 @@
#include <zencore/except.h>
#include <zencore/filesystem.h>
+#include <zencore/fmtutils.h>
#include <zencore/scopeguard.h>
#include <zencore/string.h>
#include <zencore/testing.h>
diff --git a/src/zenserver-test/zenserver-test.cpp b/src/zenserver-test/zenserver-test.cpp
index 0e7c3c674..8c95835fd 100644
--- a/src/zenserver-test/zenserver-test.cpp
+++ b/src/zenserver-test/zenserver-test.cpp
@@ -346,7 +346,10 @@ TEST_CASE("default.single")
uint64_t Elapsed = timer.GetElapsedTimeMs();
- ZEN_INFO("{} requests in {} ({})", RequestCount, zen::NiceTimeSpanMs(Elapsed), zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req"));
+ ZEN_INFO("{} requests in {} ({})",
+ RequestCount.load(),
+ zen::NiceTimeSpanMs(Elapsed),
+ zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req"));
}
TEST_CASE("multi.basic")
@@ -397,7 +400,10 @@ TEST_CASE("multi.basic")
uint64_t Elapsed = timer.GetElapsedTimeMs();
- ZEN_INFO("{} requests in {} ({})", RequestCount, zen::NiceTimeSpanMs(Elapsed), zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req"));
+ ZEN_INFO("{} requests in {} ({})",
+ RequestCount.load(),
+ zen::NiceTimeSpanMs(Elapsed),
+ zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req"));
}
TEST_CASE("project.basic")
@@ -562,7 +568,10 @@ TEST_CASE("project.basic")
const uint64_t Elapsed = timer.GetElapsedTimeMs();
- ZEN_INFO("{} requests in {} ({})", RequestCount, zen::NiceTimeSpanMs(Elapsed), zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req"));
+ ZEN_INFO("{} requests in {} ({})",
+ RequestCount.load(),
+ zen::NiceTimeSpanMs(Elapsed),
+ zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req"));
}
# if 0 // this is extremely WIP
diff --git a/src/zenserver/cache/httpstructuredcache.cpp b/src/zenserver/cache/httpstructuredcache.cpp
index 03bbde10e..7c4097d4f 100644
--- a/src/zenserver/cache/httpstructuredcache.cpp
+++ b/src/zenserver/cache/httpstructuredcache.cpp
@@ -541,7 +541,8 @@ HttpStructuredCacheService::HandleDetailsRequest(HttpServerRequest& Request)
Cbo.AddHash("rawhash", ValueIt.second.RawHash);
}
Cbo.AddString("contenttype", ToString(ValueIt.second.ContentType));
- Cbo.AddInteger("age", NowSeconds.count() - LastAccessedSeconds.count());
+ Cbo.AddInteger("age",
+ gsl::narrow<uint64_t>(NowSeconds.count() - LastAccessedSeconds.count()));
if (ValueIt.second.Attachments.size() > 0)
{
if (AttachmentDetails)
diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp
index 4865f048b..3a91d7f0c 100644
--- a/src/zenserver/projectstore/projectstore.cpp
+++ b/src/zenserver/projectstore/projectstore.cpp
@@ -317,8 +317,8 @@ struct ProjectStore::OplogStorage : public RefCounted
ZEN_INFO("Oplog replay completed in {} - Max LSN# {}, Next offset: {}",
NiceTimeSpanMs(Timer.GetElapsedTimeMs()),
- m_MaxLsn,
- m_NextOpsOffset);
+ m_MaxLsn.load(),
+ m_NextOpsOffset.load());
}
void ReplayLog(const std::span<OplogEntryAddress> Entries, std::function<void(CbObject)>&& Handler)
diff --git a/src/zenserver/xmake.lua b/src/zenserver/xmake.lua
index ed589ae93..a2d02baae 100644
--- a/src/zenserver/xmake.lua
+++ b/src/zenserver/xmake.lua
@@ -44,10 +44,13 @@ target("zenserver")
"vcpkg::lua",
"vcpkg::mimalloc",
"vcpkg::rocksdb",
- "vcpkg::sentry-native",
"vcpkg::sol2"
)
+ if has_config("zensentry") then
+ add_packages("vcpkg::sentry-native")
+ end
+
if is_plat("linux") then
-- As sentry_native uses symbols from breakpad_client, the latter must
-- be specified after the former with GCC-like toolchains. xmake however
diff --git a/src/zenserver/zenserver.cpp b/src/zenserver/zenserver.cpp
index 6e636611d..d4a82231d 100644
--- a/src/zenserver/zenserver.cpp
+++ b/src/zenserver/zenserver.cpp
@@ -1173,7 +1173,7 @@ ZenEntryPoint::Run()
ZEN_INFO(
"Looks like there is already a process listening to this port {} (pid: {}), attaching owner pid {} to running instance",
ServerOptions.BasePort,
- Entry->Pid,
+ Entry->Pid.load(),
ServerOptions.OwnerPid);
Entry->AddSponsorProcess(ServerOptions.OwnerPid);
@@ -1182,7 +1182,9 @@ ZenEntryPoint::Run()
}
else
{
- ZEN_WARN("Exiting since there is already a process listening to port {} (pid: {})", ServerOptions.BasePort, Entry->Pid);
+ ZEN_WARN("Exiting since there is already a process listening to port {} (pid: {})",
+ ServerOptions.BasePort,
+ Entry->Pid.load());
std::exit(1);
}
}
diff --git a/src/zenstore/filecas.cpp b/src/zenstore/filecas.cpp
index 70078ecb7..f641b899e 100644
--- a/src/zenstore/filecas.cpp
+++ b/src/zenstore/filecas.cpp
@@ -957,7 +957,7 @@ FileCasStrategy::CollectGarbage(GcContext& GcCtx)
m_RootDirectory,
NiceTimeSpanMs(TotalTimer.GetElapsedTimeMs()),
DeletedCount,
- ChunkCount,
+ ChunkCount.load(),
NiceBytes(OldTotalSize - m_TotalSize.load(std::memory_order::relaxed)),
NiceBytes(OldTotalSize));
});
diff --git a/src/zenutil/zenserverprocess.cpp b/src/zenutil/zenserverprocess.cpp
index d1a91b93f..c939d3f39 100644
--- a/src/zenutil/zenserverprocess.cpp
+++ b/src/zenutil/zenserverprocess.cpp
@@ -301,7 +301,7 @@ ZenServerState::Sweep()
{
if (IsProcessRunning(Entry.Pid) == false)
{
- ZEN_DEBUG("Sweep - pid {} not running, reclaiming entry (port {})", Entry.Pid, Entry.DesiredListenPort);
+ ZEN_DEBUG("Sweep - pid {} not running, reclaiming entry (port {})", Entry.Pid.load(), Entry.DesiredListenPort.load());
Entry.Reset();
}
diff --git a/xmake.lua b/xmake.lua
index 3bf27c296..930ef65c1 100644
--- a/xmake.lua
+++ b/xmake.lua
@@ -15,7 +15,6 @@ add_requires(
"vcpkg::json11",
"vcpkg::lua",
"vcpkg::lz4",
- "vcpkg::openssl",
"vcpkg::robin-map",
"vcpkg::sol2",
"vcpkg::spdlog",
@@ -24,13 +23,25 @@ add_requires(
"vcpkg::zstd"
)
-add_requires("7z") -- for bundling
+if is_plat("linux") then
+ add_requires("vcpkg::openssl 3.0.8")
+else
+ add_requires("vcpkg::openssl")
+end
+
+if is_plat("windows") then
+ add_requires("7z") -- for bundling
+end
if not is_arch("arm64") then
- add_requires(
- "vcpkg::mimalloc",
- "vcpkg::sentry-native"
- )
+ add_requires("vcpkg::mimalloc")
+ if has_config("zensentry") then
+ if is_plat("linux") then
+ add_requires("vcpkg::sentry-native 0.5.4")
+ else
+ add_requires("vcpkg::sentry-native")
+ end
+ end
end
add_rules("mode.debug", "mode.release")