Browse Source

Update dependencies from https://github.com/dotnet/arcade build 20250106.1 (#59731)

[main] Update dependencies from dotnet/arcade
dotnet-maestro[bot] 1 year ago
parent
commit
67ae6c8b73

+ 16 - 16
eng/Version.Details.xml

@@ -388,39 +388,39 @@
       <Uri>https://github.com/dotnet/runtime</Uri>
       <Sha>efdd29953304f1fc494bb45c5785d37961c4a14b</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.25053.3">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="10.0.0-beta.25056.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>05d4d46d438eec2d012a0dae7a9118e5fab947af</Sha>
+      <Sha>e58820063a8754d418518bce69ca2df0e3b4ac25</Sha>
     </Dependency>
     <!-- Intermediate is necessary for source build. -->
-    <Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="10.0.0-beta.25053.3">
+    <Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="10.0.0-beta.25056.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>05d4d46d438eec2d012a0dae7a9118e5fab947af</Sha>
+      <Sha>e58820063a8754d418518bce69ca2df0e3b4ac25</Sha>
       <SourceBuild RepoName="arcade" ManagedOnly="true" />
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Build.Tasks.Archives" Version="10.0.0-beta.25053.3">
+    <Dependency Name="Microsoft.DotNet.Build.Tasks.Archives" Version="10.0.0-beta.25056.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>05d4d46d438eec2d012a0dae7a9118e5fab947af</Sha>
+      <Sha>e58820063a8754d418518bce69ca2df0e3b4ac25</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="10.0.0-beta.25053.3">
+    <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="10.0.0-beta.25056.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>05d4d46d438eec2d012a0dae7a9118e5fab947af</Sha>
+      <Sha>e58820063a8754d418518bce69ca2df0e3b4ac25</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Build.Tasks.Templating" Version="10.0.0-beta.25053.3">
+    <Dependency Name="Microsoft.DotNet.Build.Tasks.Templating" Version="10.0.0-beta.25056.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>05d4d46d438eec2d012a0dae7a9118e5fab947af</Sha>
+      <Sha>e58820063a8754d418518bce69ca2df0e3b4ac25</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="10.0.0-beta.25053.3">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="10.0.0-beta.25056.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>05d4d46d438eec2d012a0dae7a9118e5fab947af</Sha>
+      <Sha>e58820063a8754d418518bce69ca2df0e3b4ac25</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="10.0.0-beta.25053.3">
+    <Dependency Name="Microsoft.DotNet.RemoteExecutor" Version="10.0.0-beta.25056.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>05d4d46d438eec2d012a0dae7a9118e5fab947af</Sha>
+      <Sha>e58820063a8754d418518bce69ca2df0e3b4ac25</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.SharedFramework.Sdk" Version="10.0.0-beta.25053.3">
+    <Dependency Name="Microsoft.DotNet.SharedFramework.Sdk" Version="10.0.0-beta.25056.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>05d4d46d438eec2d012a0dae7a9118e5fab947af</Sha>
+      <Sha>e58820063a8754d418518bce69ca2df0e3b4ac25</Sha>
     </Dependency>
     <Dependency Name="Microsoft.Extensions.Diagnostics.Testing" Version="9.1.0-preview.1.25056.1">
       <Uri>https://github.com/dotnet/extensions</Uri>

+ 5 - 5
eng/Versions.props

@@ -166,11 +166,11 @@
     <NuGetVersioningVersion>6.2.4</NuGetVersioningVersion>
     <NuGetFrameworksVersion>6.2.4</NuGetFrameworksVersion>
     <!-- Packages from dotnet/arcade -->
-    <MicrosoftDotNetBuildTasksArchivesVersion>10.0.0-beta.25053.3</MicrosoftDotNetBuildTasksArchivesVersion>
-    <MicrosoftDotNetBuildTasksInstallersVersion>10.0.0-beta.25053.3</MicrosoftDotNetBuildTasksInstallersVersion>
-    <MicrosoftDotNetBuildTasksTemplatingVersion>10.0.0-beta.25053.3</MicrosoftDotNetBuildTasksTemplatingVersion>
-    <MicrosoftDotNetRemoteExecutorVersion>10.0.0-beta.25053.3</MicrosoftDotNetRemoteExecutorVersion>
-    <MicrosoftSourceBuildIntermediatearcadeVersion>10.0.0-beta.25053.3</MicrosoftSourceBuildIntermediatearcadeVersion>
+    <MicrosoftDotNetBuildTasksArchivesVersion>10.0.0-beta.25056.1</MicrosoftDotNetBuildTasksArchivesVersion>
+    <MicrosoftDotNetBuildTasksInstallersVersion>10.0.0-beta.25056.1</MicrosoftDotNetBuildTasksInstallersVersion>
+    <MicrosoftDotNetBuildTasksTemplatingVersion>10.0.0-beta.25056.1</MicrosoftDotNetBuildTasksTemplatingVersion>
+    <MicrosoftDotNetRemoteExecutorVersion>10.0.0-beta.25056.1</MicrosoftDotNetRemoteExecutorVersion>
+    <MicrosoftSourceBuildIntermediatearcadeVersion>10.0.0-beta.25056.1</MicrosoftSourceBuildIntermediatearcadeVersion>
     <!-- Packages from dotnet/source-build-externals -->
     <MicrosoftSourceBuildIntermediatesourcebuildexternalsVersion>10.0.605601</MicrosoftSourceBuildIntermediatesourcebuildexternalsVersion>
     <!-- Packages from dotnet/source-build-reference-packages -->

+ 6 - 0
eng/common/core-templates/post-build/post-build.yml

@@ -44,6 +44,11 @@ parameters:
     displayName: Publish installers and checksums
     type: boolean
     default: true
+    
+  - name: requireDefaultChannels
+    displayName: Fail the build if there are no default channel(s) registrations for the current build
+    type: boolean
+    default: false
 
   - name: SDLValidationParameters
     type: object
@@ -312,5 +317,6 @@ stages:
               -PublishingInfraVersion ${{ parameters.publishingInfraVersion }}
               -AzdoToken '$(System.AccessToken)'
               -WaitPublishingFinish true
+              -RequireDefaultChannels ${{ parameters.requireDefaultChannels }}
               -ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
               -SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'

+ 1 - 1
eng/common/cross/build-rootfs.sh

@@ -800,7 +800,7 @@ elif [[ -n "$__CodeName" ]]; then
         PYTHON=${PYTHON_EXECUTABLE:-python3}
 
         # shellcheck disable=SC2086,SC2046
-        echo running "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --rootfsdir "$__RootfsDir" --artool "$AR" \
+        echo running "$PYTHON" "$__CrossDir/install-debs.py" --arch "$__UbuntuArch" --mirror "$__UbuntuRepo" --rootfsdir "$__RootfsDir" --artool "$AR" \
             $(echo $suites | xargs -n 1 | xargs -I {} echo -n "--suite {} ") \
             $__UbuntuPackages
 

+ 33 - 35
eng/common/cross/install-debs.py

@@ -162,23 +162,35 @@ def parse_package_index(content):
     packages = {}
     aliases = {}
     entries = re.split(r'\n\n+', content)
+
     for entry in entries:
         fields = dict(re.findall(r'^(\S+): (.+)$', entry, re.MULTILINE))
         if "Package" in fields:
             package_name = fields["Package"]
-            packages[package_name] = {
-                "Version": fields.get("Version"),
-                "Filename": fields.get("Filename"),
-                "Depends": fields.get("Depends")
-            }
-            if "Provides" in fields:
-                provides_list = [x.strip() for x in fields["Provides"].split(",")]
-                for alias in provides_list:
-                    # strip version specifiers
-                    alias_name = re.sub(r'\s*\(=.*\)', '', alias)
-                    if alias_name not in aliases:
-                        aliases[alias_name] = []
-                    aliases[alias_name].append(package_name)
+            version = fields.get("Version")
+            filename = fields.get("Filename")
+            depends = fields.get("Depends")
+            provides = fields.get("Provides", None)
+
+            # Only update if package_name is not in packages or if the new version is higher
+            if package_name not in packages or compare_debian_versions(version, packages[package_name]["Version"]) > 0:
+                packages[package_name] = {
+                    "Version": version,
+                    "Filename": filename,
+                    "Depends": depends
+                }
+
+                # Update aliases if package provides any alternatives
+                if provides:
+                    provides_list = [x.strip() for x in provides.split(",")]
+                    for alias in provides_list:
+                        # Strip version specifiers
+                        alias_name = re.sub(r'\s*\(=.*\)', '', alias)
+                        if alias_name not in aliases:
+                            aliases[alias_name] = []
+                        if package_name not in aliases[alias_name]:
+                            aliases[alias_name].append(package_name)
+
     return packages, aliases
 
 def install_packages(mirror, packages_info, aliases, tmp_dir, extract_dir, ar_tool, desired_packages):
@@ -189,27 +201,13 @@ def install_packages(mirror, packages_info, aliases, tmp_dir, extract_dir, ar_to
     packages_to_download = {}
 
     for pkg in resolved_packages:
-        available_versions = [pkg]
+        if pkg in packages_info:
+            packages_to_download[pkg] = packages_info[pkg]
 
         if pkg in aliases:
-            available_versions.extend(aliases[pkg])
-
-        # Choose the package with the latest version
-        if available_versions:
-            best_package = max(
-                (p for p in available_versions if p in packages_info),
-                key=lambda p: (
-                    1 if p == pkg else 0,
-                    cmp_to_key(lambda p1, p2: compare_debian_versions(
-                        packages_info[p1]["Version"],
-                        packages_info[p2]["Version"]
-                    ))(p)
-                ),
-                default=None
-            )
-
-            if best_package:
-                packages_to_download[best_package] = packages_info[best_package]
+            for alias in aliases[pkg]:
+                if alias in packages_info:
+                    packages_to_download[alias] = packages_info[alias]
 
     asyncio.run(download_deb_files_parallel(mirror, packages_to_download, tmp_dir))
 
@@ -225,11 +223,11 @@ def install_packages(mirror, packages_info, aliases, tmp_dir, extract_dir, ar_to
     for pkg in reversed(resolved_packages):
         deb_file = package_to_deb_file_map.get(pkg)
         if deb_file and os.path.exists(deb_file):
-            extract_deb_file_using_dpkg(deb_file, tmp_dir, extract_dir, ar_tool)
+            extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool)
 
     print("All done!")
 
-def extract_deb_file_using_dpkg(deb_file, tmp_dir, extract_dir, ar_tool):
+def extract_deb_file(deb_file, tmp_dir, extract_dir, ar_tool):
     """Extract .deb file contents"""
 
     os.makedirs(extract_dir, exist_ok=True)
@@ -270,7 +268,7 @@ def extract_deb_file_using_dpkg(deb_file, tmp_dir, extract_dir, ar_tool):
             raise ValueError(f"Unsupported compression format: {file_extension}")
 
         with tarfile.open(tar_file_path, mode) as tar:
-            tar.extractall(path=extract_dir, filter=None)
+            tar.extractall(path=extract_dir, filter='fully_trusted')
 
 def finalize_setup(rootfsdir):
     lib_dir = os.path.join(rootfsdir, 'lib')

+ 6 - 1
eng/common/post-build/publish-using-darc.ps1

@@ -5,7 +5,8 @@ param(
   [Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
   [Parameter(Mandatory=$true)][string] $WaitPublishingFinish,
   [Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters,
-  [Parameter(Mandatory=$false)][string] $SymbolPublishingAdditionalParameters
+  [Parameter(Mandatory=$false)][string] $SymbolPublishingAdditionalParameters,
+  [Parameter(Mandatory=$false)][string] $RequireDefaultChannels
 )
 
 try {
@@ -33,6 +34,10 @@ try {
   if ("false" -eq $WaitPublishingFinish) {
     $optionalParams.Add("--no-wait") | Out-Null
   }
+  
+  if ("true" -eq $RequireDefaultChannels) {
+    $optionalParams.Add("--default-channels-required") | Out-Null
+  }
 
   & $darc add-build-to-channel `
     --id $buildId `

+ 3 - 3
global.json

@@ -27,9 +27,9 @@
     "jdk": "11.0.24"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25053.3",
-    "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25053.3",
-    "Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25053.3",
+    "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25056.1",
+    "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25056.1",
+    "Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25056.1",
     "Microsoft.Build.NoTargets": "3.7.0",
     "Microsoft.Build.Traversal": "3.4.0"
   }