From ba1465e584fb7d11973d96be8d6b76c883a8aa48 Mon Sep 17 00:00:00 2001 From: Billy O'Neal Date: Wed, 21 Feb 2024 16:30:42 -0800 Subject: [PATCH] Patch Tuesday for February 2024 (#36757) * Cherry-pick infrastructure changes from https://github.com/microsoft/vcpkg/pull/36081 as authored by @dg0yt * Suppress warnings for the monthly docker mint as suggested by Toddy Mladenov ( MS internal conversation https://teams.microsoft.com/l/message/19:f498f444e97f40b2a2027d015a9047ab@thread.tacv2/1707520630587?tenantId=72f988bf-86f1-41af-91ab-2d7cd011db47&groupId=2080ccbe-0cfb-49e6-a9c1-ea6a6bf82722&parentMessageId=1707520630587&teamName=Containers%20Secure%20Supply%20Chain&channelName=3P%20Registry%20and%20Images%20Guidance&createdTime=1707520630587 ) * Move Azure Container Registry for Android to WestUS3; with this we are officially entirely within one Azure region again :D * Explicitly grant Azure DevOps permissions to touch the scale set rather than relying on subscription-level assignments. --- ports/hpx/portfile.cmake | 10 +++++++++- ports/hpx/vcpkg.json | 1 + scripts/azure-pipelines/android/Dockerfile | 3 ++- scripts/azure-pipelines/android/azure-pipelines.yml | 2 +- .../azure-pipelines/android/create-docker-image.ps1 | 13 +++---------- scripts/azure-pipelines/azure-pipelines.yml | 4 ++-- scripts/azure-pipelines/linux/managed-image.json | 2 +- scripts/azure-pipelines/linux/provision-image.sh | 4 ++-- scripts/azure-pipelines/patch-tuesday-checklist.md | 8 +++++--- scripts/azure-pipelines/roll-sas-tokens.ps1 | 4 +--- scripts/azure-pipelines/windows/create-vmss.ps1 | 9 ++++++++- .../windows/deploy-visual-studio.ps1 | 2 +- scripts/ci.baseline.txt | 4 +--- versions/baseline.json | 2 +- versions/h-/hpx.json | 5 +++++ 15 files changed, 43 insertions(+), 30 deletions(-) diff --git a/ports/hpx/portfile.cmake b/ports/hpx/portfile.cmake index d2723a789f..059ac373a5 100644 --- a/ports/hpx/portfile.cmake +++ b/ports/hpx/portfile.cmake @@ -3,16 +3,24 @@ if(VCPKG_TARGET_IS_WINDOWS) endif() string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" HPX_WITH_STATIC_LINKING) +vcpkg_download_distfile( + MSVC_STATIC_VARIABLES_PATCH + URLS https://github.com/STEllAR-GROUP/hpx/commit/6c378813a7e2304a3a0c8900156f147a3a44b0cb.patch?full_index=1 + SHA512 6ed2ec4eab9593d8d1a76da183dd4ceb5ac332f50b0b5cd3a81c74248c61eeb869d301a33e266d06c5f8ddf041da6cd29d1b89b38e51527716a6e557b4a7e66e + FILENAME hpx-6c378813a7e2304a3a0c8900156f147a3a44b0cb.patch +) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO STEllAR-GROUP/hpx REF "v${VERSION}" SHA512 a7972beada950cf6ef3b61f20496a08b220e4f48c28c11d57c20683906ca5124a9f36ac2552318883a5ab1db6efdbf63d1141b6e0c484c560a8c1311ae2d7090 - HEAD_REF stable + HEAD_REF master PATCHES fix-dependency-hwloc.patch fix-debug.patch fix_output_name_clash.patch + "${MSVC_STATIC_VARIABLES_PATCH}" ) vcpkg_check_features( diff --git a/ports/hpx/vcpkg.json b/ports/hpx/vcpkg.json index 17eba54ff3..e0e812df15 100644 --- a/ports/hpx/vcpkg.json +++ b/ports/hpx/vcpkg.json @@ -1,6 +1,7 @@ { "name": "hpx", "version": "1.9.1", + "port-version": 1, "description": [ "The C++ Standards Library for Concurrency and Parallelism", "HPX is a C++ Standards Library for Concurrency and Parallelism. It implements all of the corresponding facilities as defined by the C++ Standard. Additionally, in HPX we implement functionalities proposed as part of the ongoing C++ standardization process. We also extend the C++ Standard APIs to the distributed case." diff --git a/scripts/azure-pipelines/android/Dockerfile b/scripts/azure-pipelines/android/Dockerfile index e089221281..adbf124190 100644 --- a/scripts/azure-pipelines/android/Dockerfile +++ b/scripts/azure-pipelines/android/Dockerfile @@ -1,5 +1,6 @@ # syntax=docker/dockerfile:1.4 -FROM ubuntu:focal-20231211 +# DisableDockerDetector "Used to build the container deployed to Azure Container Registry" +FROM ubuntu:focal-20240123 ADD https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb /packages-microsoft-prod.deb ADD https://dl.google.com/android/repository/android-ndk-r25c-linux.zip /android-ndk-r25c-linux.zip diff --git a/scripts/azure-pipelines/android/azure-pipelines.yml b/scripts/azure-pipelines/android/azure-pipelines.yml index 8a43e3ab61..71a5c4fe79 100644 --- a/scripts/azure-pipelines/android/azure-pipelines.yml +++ b/scripts/azure-pipelines/android/azure-pipelines.yml @@ -46,7 +46,7 @@ jobs: - bash: | curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash az login --identity - az acr login --name AndContainerRegistry + az acr login --name vcpkgandroidwus3 displayName: 'Set up managed identity' - bash: | sudo mkdir /home/agent -m=777 diff --git a/scripts/azure-pipelines/android/create-docker-image.ps1 b/scripts/azure-pipelines/android/create-docker-image.ps1 index a912c014a2..1bb0ee4293 100644 --- a/scripts/azure-pipelines/android/create-docker-image.ps1 +++ b/scripts/azure-pipelines/android/create-docker-image.ps1 @@ -1,17 +1,10 @@ # Create Docker image for Android -$Location = 'westus3' $Date = (Get-Date -Format 'yyyy-MM-dd') -$ResourceGroupName = "And-Registry" -$ContainerRegistryName = "AndContainerRegistry" +$ResourceGroupName = "PrAnd-1ES" +$ContainerRegistryName = "vcpkgandroidwus3" $ErrorActionPreference = 'Stop' -Get-AzResourceGroup -Name $ResourceGroupName -ErrorVariable error -ErrorAction SilentlyContinue -if ($error) { - New-AzResourceGroup -Name $ResourceGroupName -Location $Location - New-AzContainerRegistry -ResourceGroupName $ResourceGroupName -Name $ContainerRegistryName -EnableAdminUser -Sku Basic -} - $registry = Get-AzContainerRegistry -ResourceGroupName $ResourceGroupName -Name $ContainerRegistryName Connect-AzContainerRegistry -Name $registry.Name @@ -22,7 +15,7 @@ try { docker build . -t $imageName - $remote = [string]::Format('andcontainerregistry.azurecr.io/{0}:{1}', $imageName, $Date) + $remote = [string]::Format('{0}.azurecr.io/{1}:{2}', $ContainerRegistryName, $imageName, $Date) docker tag $imageName $remote docker push $remote diff --git a/scripts/azure-pipelines/azure-pipelines.yml b/scripts/azure-pipelines/azure-pipelines.yml index fbd7f11cf5..f5118c5f1a 100644 --- a/scripts/azure-pipelines/azure-pipelines.yml +++ b/scripts/azure-pipelines/azure-pipelines.yml @@ -4,10 +4,10 @@ variables: android-pool: 'PrAnd-1ES-Pool' linux-pool: 'PrLin-1ES-Pool' - windows-pool: 'PrWin-2024-02-08' + windows-pool: 'PrWin-2024-02-16' osx-pool: 'PrOsx-2024-01-18' osx-arm64-pool: 'PrOsx-2024-01-22-arm64' - linux-docker-image: 'andcontainerregistry.azurecr.io/vcpkg-android:2024-01-11' + linux-docker-image: 'vcpkgandroidwus3.azurecr.io/vcpkg-android:2024-02-14' parameters: - name: vcpkgToolSha diff --git a/scripts/azure-pipelines/linux/managed-image.json b/scripts/azure-pipelines/linux/managed-image.json index 090ae8a90f..1f4696f1ed 100644 --- a/scripts/azure-pipelines/linux/managed-image.json +++ b/scripts/azure-pipelines/linux/managed-image.json @@ -3,7 +3,7 @@ { "name": "linux-install-packages", "parameters": { - "packages": "git curl zip unzip tar at libxt-dev gperf libxaw7-dev cifs-utils build-essential g++ gfortran libx11-dev libxkbcommon-x11-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxinerama-dev libxxf86vm-dev libxcursor-dev yasm libnuma1 libnuma-dev libtool-bin flex bison libbison-dev autoconf libudev-dev libncurses5-dev libtool libxrandr-dev xutils-dev dh-autoreconf autoconf-archive libgles2-mesa-dev ruby-full pkg-config meson nasm cmake ninja-build libxext-dev libxfixes-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-glx0-dev libxcb-util0-dev libxkbcommon-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev libxcb-cursor-dev libkrb5-dev libxcb-res0-dev libxcb-keysyms1-dev libxcb-xkb-dev libxcb-record0-dev python3-setuptools python3-mako python3-pip python3-venv nodejs libwayland-dev python-is-python3 guile-2.2-dev libxdamage-dev libdbus-1-dev libxtst-dev haskell-stack golang-go wayland-protocols" + "packages": "git curl zip unzip tar at libxt-dev gperf libxaw7-dev cifs-utils build-essential g++ gfortran libx11-dev libxkbcommon-x11-dev libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxinerama-dev libxxf86vm-dev libxcursor-dev yasm libnuma1 libnuma-dev libtool-bin flex bison libbison-dev autoconf libudev-dev libncurses5-dev libtool libxrandr-dev xutils-dev dh-autoreconf autoconf-archive libgles2-mesa-dev ruby-full pkg-config meson nasm cmake ninja-build libxext-dev libxfixes-dev libxrender-dev libxcb1-dev libx11-xcb-dev libxcb-dri3-dev libxcb-glx0-dev libxcb-util0-dev libxkbcommon-dev libxcb-keysyms1-dev libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-render-util0-dev libxcb-xinerama0-dev libxcb-xkb-dev libxcb-xinput-dev libxcb-cursor-dev libkrb5-dev libxcb-res0-dev libxcb-keysyms1-dev libxcb-xkb-dev libxcb-record0-dev python3-setuptools python3-mako python3-pip python3-venv nodejs libwayland-dev python-is-python3 guile-2.2-dev libxdamage-dev libdbus-1-dev libxtst-dev haskell-stack golang-go wayland-protocols" } }, { diff --git a/scripts/azure-pipelines/linux/provision-image.sh b/scripts/azure-pipelines/linux/provision-image.sh index 28ad548643..ddcfbddba4 100755 --- a/scripts/azure-pipelines/linux/provision-image.sh +++ b/scripts/azure-pipelines/linux/provision-image.sh @@ -59,7 +59,7 @@ APT_PACKAGES="$APT_PACKAGES libxcb-res0-dev" APT_PACKAGES="$APT_PACKAGES libxcb-keysyms1-dev libxcb-xkb-dev libxcb-record0-dev" ## required by mesa -APT_PACKAGES="$APT_PACKAGES python3-setuptools python3-mako" +APT_PACKAGES="$APT_PACKAGES python3-setuptools python3-mako libxcb-dri3-dev" ## required by some packages to install additional python packages APT_PACKAGES="$APT_PACKAGES python3-pip python3-venv" @@ -91,7 +91,7 @@ APT_PACKAGES="$APT_PACKAGES haskell-stack" ## required by boringssl APT_PACKAGES="$APT_PACKAGES golang-go" -## required by libdecor +## required by libdecor and mesa APT_PACKAGES="$APT_PACKAGES wayland-protocols" ## CUDA diff --git a/scripts/azure-pipelines/patch-tuesday-checklist.md b/scripts/azure-pipelines/patch-tuesday-checklist.md index e03ea634ea..c1c5932cc0 100644 --- a/scripts/azure-pipelines/patch-tuesday-checklist.md +++ b/scripts/azure-pipelines/patch-tuesday-checklist.md @@ -10,6 +10,10 @@ (Most often PowerShell needs to be updated) * [ ] Check for any other software for the Windows images we wish to update and make the edits to do so in `scripts/azure-pipelines/windows` +* [ ] Check for any updates possible to `vcpkgTools.xml`. Note that PowerShell currently uses the + 7.2.x series due to customer reported problems on older Windows with 7.3.x and later. +* [ ] Update the first line of android/Dockerfile with the current 'focal' image according to + https://hub.docker.com/_/ubuntu * [ ] Run android/create-docker-image.ps1 * [ ] Update azure-pipelines.yml to point to the new linux docker image from Azure Container Registry * [ ] Run windows/create-image.ps1 @@ -24,10 +28,8 @@ * [ ] Look at that and compare with recent build and resolve anything that's not an existing baseline issue. * [ ] Merge the PR. * [ ] Update the managed image for compiler testing and delete unused images. - * CPP_GITHUB\vcpkg-image-minting\PrWinEA + * CPP_GITHUB\vcpkg-image-minting\PrWinWus3 * Standard HDD LRS - * East Asia, 1 Replica - * 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 -KeyNumber N`, where N is whether the month is even diff --git a/scripts/azure-pipelines/roll-sas-tokens.ps1 b/scripts/azure-pipelines/roll-sas-tokens.ps1 index 5968a4da3a..d0c33f5b75 100644 --- a/scripts/azure-pipelines/roll-sas-tokens.ps1 +++ b/scripts/azure-pipelines/roll-sas-tokens.ps1 @@ -7,9 +7,7 @@ Param( $keyName = "key$KeyNumber" # Asset Cache: -New-AzStorageAccountKey -ResourceGroupName vcpkg-asset-cache -StorageAccountName vcpkgassetcacheeastasia -KeyName $keyName +New-AzStorageAccountKey -ResourceGroupName vcpkg-asset-cache -StorageAccountName vcpkgassetcachewus3 -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/windows/create-vmss.ps1 b/scripts/azure-pipelines/windows/create-vmss.ps1 index a11cda9f1a..5b87366111 100644 --- a/scripts/azure-pipelines/windows/create-vmss.ps1 +++ b/scripts/azure-pipelines/windows/create-vmss.ps1 @@ -89,11 +89,18 @@ $Vmss = Set-AzVmssBootDiagnostic ` -VirtualMachineScaleSet $Vmss ` -Enabled $false -New-AzVmss ` +$VmssCreated = New-AzVmss ` -ResourceGroupName $ResourceGroupName ` -Name $VmssName ` -VirtualMachineScaleSet $Vmss +# Grant 'Virtual Machine Contributor' (RoleDefinitionId 9980e02c-c2be-4d73-94e8-173b1dc7cf3c) to +# 'dev-azure-com-vcpkg-scale-set-management' (ObjectId e4fe677f-f905-4f3c-b5c3-d8a2d6812a5b) +New-AzRoleAssignment ` + -Scope $VmssCreated.Id ` + -RoleDefinitionId '9980e02c-c2be-4d73-94e8-173b1dc7cf3c' ` + -ObjectId 'e4fe677f-f905-4f3c-b5c3-d8a2d6812a5b' + Write-Host "Location: $Location" Write-Host "Resource group name: $ResourceGroupName" Write-Host 'Finished!' diff --git a/scripts/azure-pipelines/windows/deploy-visual-studio.ps1 b/scripts/azure-pipelines/windows/deploy-visual-studio.ps1 index 65164c310f..d9224a1f1e 100644 --- a/scripts/azure-pipelines/windows/deploy-visual-studio.ps1 +++ b/scripts/azure-pipelines/windows/deploy-visual-studio.ps1 @@ -5,7 +5,7 @@ # REPLACE WITH UTILITY-PREFIX.ps1 -$VisualStudioBootstrapperUrl = 'https://aka.ms/vs/17/release/vs_enterprise.exe' +$VisualStudioBootstrapperUrl = 'https://download.visualstudio.microsoft.com/download/pr/03aef663-a3da-4cdd-ac33-9ff2935267ba/d08ca31938fde015b2fec26b18149cfd21a99b69309ac2726c00658d67e7ed4c/vs_Enterprise.exe' $Workloads = @( 'Microsoft.VisualStudio.Workload.NativeDesktop', 'Microsoft.VisualStudio.Workload.Universal', diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 3b8eab2867..f93ee1eb16 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -135,6 +135,7 @@ catch-classic:x64-windows = skip catch-classic:x64-windows-static = skip catch-classic:x64-windows-static-md=skip catch-classic:x86-windows = skip +cairo:arm64-android=fail cctag:x64-windows-static-md=fail cello:arm64-uwp=fail cello:x64-uwp=fail @@ -429,8 +430,6 @@ hexl:x64-android=fail highs:arm-neon-android=fail highs:arm64-android=fail highs:x64-android=fail -hpx:x64-windows-static=fail -hpx:arm64-windows=fail hwloc:arm-neon-android=fail hwloc:arm64-android=fail hwloc:x64-android=fail @@ -882,7 +881,6 @@ pcl:arm-neon-android=fail pcl:arm64-android=fail pcl:x64-android=fail pixman:arm-neon-android=fail -pixman:arm64-android=fail platform-folders:arm64-uwp=fail platform-folders:x64-uwp=fail plib:arm-neon-android=fail diff --git a/versions/baseline.json b/versions/baseline.json index b419598275..cf5fd70203 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3386,7 +3386,7 @@ }, "hpx": { "baseline": "1.9.1", - "port-version": 0 + "port-version": 1 }, "http-parser": { "baseline": "2.9.4", diff --git a/versions/h-/hpx.json b/versions/h-/hpx.json index 0ae7c9f0ef..ebe070f413 100644 --- a/versions/h-/hpx.json +++ b/versions/h-/hpx.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "f2a5820cd03a2049446ae18d5e98f99ae6eb7fa7", + "version": "1.9.1", + "port-version": 1 + }, { "git-tree": "94d5f165d483752d4b7996bd1414497c5299208f", "version": "1.9.1",