diff --git a/ports/folly/disable-uninitialized-resize-on-new-stl.patch b/ports/folly/disable-uninitialized-resize-on-new-stl.patch new file mode 100644 index 0000000000..29931bc1db --- /dev/null +++ b/ports/folly/disable-uninitialized-resize-on-new-stl.patch @@ -0,0 +1,40 @@ +diff --git a/folly/memory/UninitializedMemoryHacks.h b/folly/memory/UninitializedMemoryHacks.h +index bd31c88..9f640a8 100644 +--- a/folly/memory/UninitializedMemoryHacks.h ++++ b/folly/memory/UninitializedMemoryHacks.h +@@ -101,6 +101,9 @@ template < + typename std::enable_if::value>::type> + inline void resizeWithoutInitialization( + std::basic_string& s, std::size_t n) { ++#if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L ++ s.resize(n); ++#else + if (n <= s.size()) { + s.resize(n); + } else { +@@ -111,6 +114,7 @@ inline void resizeWithoutInitialization( + } + detail::unsafeStringSetLargerSize(s, n); + } ++#endif // STL workaround + } + + /** +@@ -244,6 +248,8 @@ struct MakeUnsafeStringSetLargerSize { + #elif defined(_MSC_VER) + // MSVC + ++#if defined(_MSVC_STL_UPDATE) && _MSVC_STL_UPDATE >= 202206L ++#else + template + struct MakeUnsafeStringSetLargerSize { + friend void unsafeStringSetLargerSizeImpl( +@@ -262,7 +268,7 @@ struct MakeUnsafeStringSetLargerSize { + void (std::basic_string::*)(std::size_t), \ + &std::basic_string::_Eos>; \ + FOLLY_DECLARE_STRING_RESIZE_WITHOUT_INIT_IMPL(TYPE) +- ++#endif // workaround + #else + #warning \ + "No implementation for resizeWithoutInitialization of std::basic_string" diff --git a/ports/folly/portfile.cmake b/ports/folly/portfile.cmake index 63f5c61733..aea538cdd3 100644 --- a/ports/folly/portfile.cmake +++ b/ports/folly/portfile.cmake @@ -18,6 +18,7 @@ vcpkg_from_github( fix-windows-minmax.patch fix-deps.patch openssl.patch # from https://github.com/facebook/folly/pull/2016 + disable-uninitialized-resize-on-new-stl.patch ) file(REMOVE "${SOURCE_PATH}/CMake/FindFmt.cmake") diff --git a/ports/folly/vcpkg.json b/ports/folly/vcpkg.json index ea1d8b0df3..2501067d20 100644 --- a/ports/folly/vcpkg.json +++ b/ports/folly/vcpkg.json @@ -1,6 +1,7 @@ { "name": "folly", "version-string": "2023.10.02.00", + "port-version": 1, "description": "An open-source C++ library developed and used at Facebook. The library is UNSTABLE on Windows", "homepage": "https://github.com/facebook/folly", "license": "Apache-2.0", diff --git a/ports/qtwebengine/msvc-template.patch b/ports/qtwebengine/msvc-template.patch index d0a61806e2..90dc0320ab 100644 --- a/ports/qtwebengine/msvc-template.patch +++ b/ports/qtwebengine/msvc-template.patch @@ -1,124 +1,140 @@ -diff --git a/src/3rdparty/chromium/third_party/webrtc/rtc_base/checks.h b/src/3rdparty/chromium/third_party/webrtc/rtc_base/checks.h -index 459c6a5..687a364 100644 ---- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/checks.h -+++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/checks.h -@@ -224,60 +224,13 @@ ToStringVal MakeVal(const T& x) { - template - class LogStreamer; - --// Base case: Before the first << argument. --template <> --class LogStreamer<> final { -- public: -- template ())), -- absl::enable_if_t::value || -- std::is_enum::value>* = nullptr> -- RTC_FORCE_INLINE LogStreamer operator<<(U arg) const { -- return LogStreamer(MakeVal(arg), this); -- } -- -- template ())), -- absl::enable_if_t::value && -- !std::is_enum::value>* = nullptr> -- RTC_FORCE_INLINE LogStreamer operator<<(const U& arg) const { -- return LogStreamer(MakeVal(arg), this); -- } -- --#if RTC_CHECK_MSG_ENABLED -- template -- RTC_NORETURN RTC_FORCE_INLINE static void Call(const char* file, -- const int line, -- const char* message, -- const Us&... args) { -- static constexpr CheckArgType t[] = {Us::Type()..., CheckArgType::kEnd}; -- FatalLog(file, line, message, t, args.GetVal()...); -- } -- -- template -- RTC_NORETURN RTC_FORCE_INLINE static void CallCheckOp(const char* file, -- const int line, -- const char* message, -- const Us&... args) { -- static constexpr CheckArgType t[] = {CheckArgType::kCheckOp, Us::Type()..., -- CheckArgType::kEnd}; -- FatalLog(file, line, message, t, args.GetVal()...); -- } --#else -- template -- RTC_NORETURN RTC_FORCE_INLINE static void Call(const char* file, -- const int line) { -- FatalLog(file, line); -- } --#endif --}; - - // Inductive case: We've already seen at least one << argument. The most recent - // one had type `T`, and the earlier ones had types `Ts`. - template - class LogStreamer final { - public: -- RTC_FORCE_INLINE LogStreamer(T arg, const LogStreamer* prior) -+ RTC_FORCE_INLINE LogStreamer(T arg, const LogStreamer * const prior) - : arg_(arg), prior_(prior) {} - - template final { - const LogStreamer* prior_; - }; - -+ -+// Base case: Before the first << argument. -+template <> -+class LogStreamer<> final { -+ public: -+ template >::value || -+ std::is_enum::value>* = nullptr> -+ RTC_FORCE_INLINE auto operator<<(U arg) const { -+ return LogStreamer(MakeVal(arg), this); -+ } -+ -+ template >::value && -+ !std::is_enum::value>* = nullptr> -+ RTC_FORCE_INLINE auto operator<<(const U& arg) const { -+ return LogStreamer(MakeVal(arg), this); -+ } -+ -+ //RTC_FORCE_INLINE auto operator<<(const std::string& arg) const { -+ // return LogStreamer>(MakeVal(arg), this); -+ // -+ -+#if RTC_CHECK_MSG_ENABLED -+ template -+ RTC_NORETURN RTC_FORCE_INLINE static void Call(const char* file, -+ const int line, -+ const char* message, -+ const Us&... args) { -+ static constexpr CheckArgType t[] = {Us::Type()..., CheckArgType::kEnd}; -+ FatalLog(file, line, message, t, args.GetVal()...); -+ } -+ -+ template -+ RTC_NORETURN RTC_FORCE_INLINE static void CallCheckOp(const char* file, -+ const int line, -+ const char* message, -+ const Us&... args) { -+ static constexpr CheckArgType t[] = {CheckArgType::kCheckOp, Us::Type()..., -+ CheckArgType::kEnd}; -+ FatalLog(file, line, message, t, args.GetVal()...); -+ } -+#else -+ template -+ RTC_NORETURN RTC_FORCE_INLINE static void Call(const char* file, -+ const int line) { -+ FatalLog(file, line); -+ } -+#endif -+}; -+ - template - class FatalLogCall final { - public: +diff --git a/src/3rdparty/chromium/third_party/webrtc/rtc_base/checks.h b/src/3rdparty/chromium/third_party/webrtc/rtc_base/checks.h +index 459c6a5..4bc8da8 100644 +--- a/src/3rdparty/chromium/third_party/webrtc/rtc_base/checks.h ++++ b/src/3rdparty/chromium/third_party/webrtc/rtc_base/checks.h +@@ -224,76 +224,27 @@ ToStringVal MakeVal(const T& x) { + template + class LogStreamer; + +-// Base case: Before the first << argument. +-template <> +-class LogStreamer<> final { +- public: +- template ())), +- absl::enable_if_t::value || +- std::is_enum::value>* = nullptr> +- RTC_FORCE_INLINE LogStreamer operator<<(U arg) const { +- return LogStreamer(MakeVal(arg), this); +- } +- +- template ())), +- absl::enable_if_t::value && +- !std::is_enum::value>* = nullptr> +- RTC_FORCE_INLINE LogStreamer operator<<(const U& arg) const { +- return LogStreamer(MakeVal(arg), this); +- } +- +-#if RTC_CHECK_MSG_ENABLED +- template +- RTC_NORETURN RTC_FORCE_INLINE static void Call(const char* file, +- const int line, +- const char* message, +- const Us&... args) { +- static constexpr CheckArgType t[] = {Us::Type()..., CheckArgType::kEnd}; +- FatalLog(file, line, message, t, args.GetVal()...); +- } +- +- template +- RTC_NORETURN RTC_FORCE_INLINE static void CallCheckOp(const char* file, +- const int line, +- const char* message, +- const Us&... args) { +- static constexpr CheckArgType t[] = {CheckArgType::kCheckOp, Us::Type()..., +- CheckArgType::kEnd}; +- FatalLog(file, line, message, t, args.GetVal()...); +- } +-#else +- template +- RTC_NORETURN RTC_FORCE_INLINE static void Call(const char* file, +- const int line) { +- FatalLog(file, line); +- } +-#endif +-}; + + // Inductive case: We've already seen at least one << argument. The most recent + // one had type `T`, and the earlier ones had types `Ts`. + template + class LogStreamer final { + public: +- RTC_FORCE_INLINE LogStreamer(T arg, const LogStreamer* prior) ++ RTC_FORCE_INLINE LogStreamer(T arg, const LogStreamer * const prior) + : arg_(arg), prior_(prior) {} + + template ())), + absl::enable_if_t::value || + std::is_enum::value>* = nullptr> +- RTC_FORCE_INLINE LogStreamer operator<<(U arg) const { +- return LogStreamer(MakeVal(arg), this); ++ RTC_FORCE_INLINE auto operator<<(U arg) const { ++ return LogStreamer(MakeVal(arg), this); + } + + template ())), + absl::enable_if_t::value && + !std::is_enum::value>* = nullptr> +- RTC_FORCE_INLINE LogStreamer operator<<(const U& arg) const { +- return LogStreamer(MakeVal(arg), this); ++ RTC_FORCE_INLINE auto operator<<(const U& arg) const { ++ return LogStreamer(MakeVal(arg), this); + } + + #if RTC_CHECK_MSG_ENABLED +@@ -328,6 +279,53 @@ class LogStreamer final { + const LogStreamer* prior_; + }; + ++ ++// Base case: Before the first << argument. ++template <> ++class LogStreamer<> final { ++ public: ++ template ::value || ++ std::is_enum::value>* = nullptr> ++ RTC_FORCE_INLINE auto operator<<(U arg) const { ++ return LogStreamer(MakeVal(arg), this); ++ } ++ ++ template ::value && ++ !std::is_enum::value>* = nullptr> ++ RTC_FORCE_INLINE auto operator<<(const U& arg) const { ++ return LogStreamer(MakeVal(arg), this); ++ } ++ ++#if RTC_CHECK_MSG_ENABLED ++ template ++ RTC_NORETURN RTC_FORCE_INLINE static void Call(const char* file, ++ const int line, ++ const char* message, ++ const Us&... args) { ++ static constexpr CheckArgType t[] = {Us::Type()..., CheckArgType::kEnd}; ++ FatalLog(file, line, message, t, args.GetVal()...); ++ } ++ ++ template ++ RTC_NORETURN RTC_FORCE_INLINE static void CallCheckOp(const char* file, ++ const int line, ++ const char* message, ++ const Us&... args) { ++ static constexpr CheckArgType t[] = {CheckArgType::kCheckOp, Us::Type()..., ++ CheckArgType::kEnd}; ++ FatalLog(file, line, message, t, args.GetVal()...); ++ } ++#else ++ template ++ RTC_NORETURN RTC_FORCE_INLINE static void Call(const char* file, ++ const int line) { ++ FatalLog(file, line); ++ } ++#endif ++}; ++ + template + class FatalLogCall final { + public: diff --git a/ports/qtwebengine/vcpkg.json b/ports/qtwebengine/vcpkg.json index 2b2969d41d..11800b39e6 100644 --- a/ports/qtwebengine/vcpkg.json +++ b/ports/qtwebengine/vcpkg.json @@ -2,7 +2,7 @@ "$comment": "x86-windows is not within the upstream support matrix of Qt6", "name": "qtwebengine", "version": "6.6.1", - "port-version": 2, + "port-version": 3, "description": "Qt WebEngine", "homepage": "https://www.qt.io/", "license": null, diff --git a/scripts/azure-pipelines/azure-pipelines.yml b/scripts/azure-pipelines/azure-pipelines.yml index 97d382694d..1a826aa5d5 100644 --- a/scripts/azure-pipelines/azure-pipelines.yml +++ b/scripts/azure-pipelines/azure-pipelines.yml @@ -4,7 +4,7 @@ variables: android-pool: 'PrAnd-1ES-Pool' linux-pool: 'PrLin-1ES-Pool' - windows-pool: 'PrWin-2023-10-11' + windows-pool: 'PrWin-2023-12-12' osx-pool: 'PrOsx-2023-09-11' linux-docker-image: 'andcontainerregistry.azurecr.io/vcpkg-android:2023-12-05' diff --git a/scripts/azure-pipelines/generate-sas-tokens.ps1 b/scripts/azure-pipelines/generate-sas-tokens.ps1 index 86848e88bb..04cc8a534e 100644 --- a/scripts/azure-pipelines/generate-sas-tokens.ps1 +++ b/scripts/azure-pipelines/generate-sas-tokens.ps1 @@ -1,3 +1,7 @@ +Param( + [Parameter(Mandatory=$true)] + [int]$KeyNumber +) function Get-SasToken { Param( @@ -28,13 +32,13 @@ function Get-SasToken { # Asset Cache: # Read, Create, List -$assetSas = Get-SasToken -KeyNumber 1 -ResourceGroupName vcpkg-asset-cache -StorageAccountName vcpkgassetcacheeastasia -ContainerName cache -Permission rcl +$assetSas = Get-SasToken -KeyNumber $KeyNumber -ResourceGroupName vcpkg-asset-cache -StorageAccountName vcpkgassetcacheeastasia -ContainerName cache -Permission rcl # Binary Cache: # Read, Create, List, Write -$binarySas = Get-SasToken -KeyNumber 1 -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycache -ContainerName cache -Permission rclw -$binaryEASas = Get-SasToken -KeyNumber 1 -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycacheeastasia -ContainerName cache -Permission rclw -$binaryWUS3as = Get-SasToken -KeyNumber 1 -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycachewus3 -ContainerName cache -Permission rclw +$binarySas = Get-SasToken -KeyNumber $KeyNumber -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycache -ContainerName cache -Permission rclw +$binaryEASas = Get-SasToken -KeyNumber $KeyNumber -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycacheeastasia -ContainerName cache -Permission rclw +$binaryWUS3as = Get-SasToken -KeyNumber $KeyNumber -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycachewus3 -ContainerName cache -Permission rclw $response = "Asset Cache SAS: Update`n" + ` "https://dev.azure.com/vcpkg/public/_library?itemType=VariableGroups&view=VariableGroupView&variableGroupId=6&path=vcpkg-asset-caching-credentials`n" + ` diff --git a/scripts/azure-pipelines/patch-tuesday-checklist.md b/scripts/azure-pipelines/patch-tuesday-checklist.md index cb5857467a..e27c919b26 100644 --- a/scripts/azure-pipelines/patch-tuesday-checklist.md +++ b/scripts/azure-pipelines/patch-tuesday-checklist.md @@ -30,7 +30,10 @@ * West US 2, 1 Replica * West US 3, 1 Replica * [ ] After the last build finishes on the previous pool, delete it in the Azure Devops *Organization* UI and its Resource Group. ( https://dev.azure.com/vcpkg/_settings/agentpools ?) -* [ ] Run `generate-sas-tokens.ps1` and update the relevant libraries on dev.azure.com/vcpkg and - devdiv.visualstudio.com. +* [ ] Run `generate-sas-tokens.ps1 -KeyNumber N`, where N is whether the month is even + (Jan = 1, Feb = 2, Mar = 1, and so on) and update the relevant libraries on + dev.azure.com/vcpkg and devdiv.visualstudio.com +* [ ] After builds using previous SAS tokens complete, run `roll-sas-tokens.ps1 -KeyNumber N` where + this N is the other key. (Jan = 2, Feb = 1, Mar = 2, and so on) * [ ] Mint a new macOS base box. (See instructions in `scripts/azure-pipelines/osx/README.md`) * [ ] Deploy the new base box to all hosts. diff --git a/scripts/azure-pipelines/roll-sas-tokens.ps1 b/scripts/azure-pipelines/roll-sas-tokens.ps1 new file mode 100644 index 0000000000..5968a4da3a --- /dev/null +++ b/scripts/azure-pipelines/roll-sas-tokens.ps1 @@ -0,0 +1,15 @@ + +Param( + [Parameter(Mandatory=$true)] + [int]$KeyNumber +) + +$keyName = "key$KeyNumber" + +# Asset Cache: +New-AzStorageAccountKey -ResourceGroupName vcpkg-asset-cache -StorageAccountName vcpkgassetcacheeastasia -KeyName $keyName + +# Binary Cache: +New-AzStorageAccountKey -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycache -KeyName $keyName +New-AzStorageAccountKey -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycacheeastasia -KeyName $keyName +New-AzStorageAccountKey -ResourceGroupName vcpkg-binary-cache -StorageAccountName vcpkgbinarycachewus3 -KeyName $keyName diff --git a/scripts/azure-pipelines/test-modified-ports.ps1 b/scripts/azure-pipelines/test-modified-ports.ps1 index e51bf08a55..e392ed64df 100755 --- a/scripts/azure-pipelines/test-modified-ports.ps1 +++ b/scripts/azure-pipelines/test-modified-ports.ps1 @@ -71,10 +71,9 @@ if ((-Not [string]::IsNullOrWhiteSpace($ArchivesRoot))) { $BinarySourceStub = "files,$ArchivesRoot" } -$env:VCPKG_DOWNLOADS = Join-Path $WorkingRoot 'downloads' -$buildtreesRoot = Join-Path $WorkingRoot 'buildtrees' +$buildtreesRoot = Join-Path $WorkingRoot 'b' $installRoot = Join-Path $WorkingRoot 'installed' -$packagesRoot = Join-Path $WorkingRoot 'packages' +$packagesRoot = Join-Path $WorkingRoot 'p' $commonArgs = @( "--x-buildtrees-root=$buildtreesRoot", diff --git a/scripts/azure-pipelines/windows/deploy-pwsh.ps1 b/scripts/azure-pipelines/windows/deploy-pwsh.ps1 index 9a5a02afc5..298fe59ffa 100644 --- a/scripts/azure-pipelines/windows/deploy-pwsh.ps1 +++ b/scripts/azure-pipelines/windows/deploy-pwsh.ps1 @@ -5,5 +5,5 @@ # REPLACE WITH UTILITY-PREFIX.ps1 -$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.3.8/PowerShell-7.3.8-win-x64.msi' +$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.4.0/PowerShell-7.4.0-win-x64.msi' InstallMSI -Url $PwshUrl -Name 'PowerShell Core' diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 08026e7c7f..338b8b9b1d 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -630,6 +630,9 @@ libtcod:arm64-android=fail libtcod:x64-android=fail libtomcrypt:arm64-windows=fail libtomcrypt:arm64-uwp=fail +# D:\b\libtorch\src\v1.12.1-e1cb316ec6.clean\aten\src\ATen/cpu/vec/vec_base.h(134): fatal error C1001: Internal compiler error. +# (compiler file 'D:\a\_work\1\s\src\vctools\Compiler\CxxFE\sl\p1\c\toinil.c', line 910) +libtorch:x64-windows=fail libtorch:x64-osx=fail libusb-win32:arm64-uwp=fail libusb-win32:x64-uwp=fail diff --git a/versions/baseline.json b/versions/baseline.json index 23b005b4b7..f57afdb611 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2718,7 +2718,7 @@ }, "folly": { "baseline": "2023.10.02.00", - "port-version": 0 + "port-version": 1 }, "font-chef": { "baseline": "1.1.0", @@ -7274,7 +7274,7 @@ }, "qtwebengine": { "baseline": "6.6.1", - "port-version": 2 + "port-version": 3 }, "qtwebsockets": { "baseline": "6.6.1", diff --git a/versions/f-/folly.json b/versions/f-/folly.json index 79366706fa..a4d67dd333 100644 --- a/versions/f-/folly.json +++ b/versions/f-/folly.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "5d4dff9c56b8324d2e6b7ca2ba6ad0b60845de56", + "version-string": "2023.10.02.00", + "port-version": 1 + }, { "git-tree": "a909b9222ac4ded463976431d65b6b24fa486bd3", "version-string": "2023.10.02.00", diff --git a/versions/q-/qtwebengine.json b/versions/q-/qtwebengine.json index 22f85a14e5..b08a904993 100644 --- a/versions/q-/qtwebengine.json +++ b/versions/q-/qtwebengine.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "d2585496a5eec4f9f08df3a69483157640acb3cf", + "version": "6.6.1", + "port-version": 3 + }, { "git-tree": "0da0e5d03340ccc05f77e90cb898e62237746107", "version": "6.6.1",