Skip to content

Commit a4841cd

Browse files
[main] Update dependencies from dotnet/arcade (#1682)
[main] Update dependencies from dotnet/arcade
1 parent 0b06c70 commit a4841cd

File tree

10 files changed

+149
-17
lines changed

10 files changed

+149
-17
lines changed

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
</Dependency>
1616
</ProductDependencies>
1717
<ToolsetDependencies>
18-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22405.6">
18+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22411.2">
1919
<Uri>https://github.com/dotnet/arcade</Uri>
20-
<Sha>58aed6cc9fde5155c79cf706eeccf31b03e9a8a7</Sha>
20+
<Sha>6a638cd0c13962ab2a1943cb1c878be5a41dd82e</Sha>
2121
</Dependency>
2222
</ToolsetDependencies>
2323
</Dependencies>

eng/common/cross/build-rootfs.sh

Lines changed: 89 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,13 @@ usage()
88
echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86"
99
echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine, alpine3.13 or alpine3.14. If BuildArch is armel, LinuxCodeName is jessie(default) or tizen."
1010
echo " for FreeBSD can be: freebsd12, freebsd13"
11-
echo " for illumos can be: illumos."
11+
echo " for illumos can be: illumos"
12+
echo " for Haiku can be: haiku."
1213
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine and FreeBSD"
1314
echo "llvmx[.y] - optional, LLVM version for LLVM related packages."
1415
echo "--skipunmount - optional, will skip the unmount of rootfs folder."
1516
echo "--use-mirror - optional, use mirror URL to fetch resources, when available."
17+
echo "--jobs N - optional, restrict to N jobs."
1618
exit 1
1719
}
1820

@@ -79,6 +81,17 @@ __IllumosPackages+=" mit-krb5-1.16.2nb4"
7981
__IllumosPackages+=" openssl-1.1.1e"
8082
__IllumosPackages+=" zlib-1.2.11"
8183

84+
__HaikuPackages="gmp"
85+
__HaikuPackages+=" gmp_devel"
86+
__HaikuPackages+=" krb5"
87+
__HaikuPackages+=" krb5_devel"
88+
__HaikuPackages+=" libiconv"
89+
__HaikuPackages+=" libiconv_devel"
90+
__HaikuPackages+=" llvm12_libunwind"
91+
__HaikuPackages+=" llvm12_libunwind_devel"
92+
__HaikuPackages+=" mpfr"
93+
__HaikuPackages+=" mpfr_devel"
94+
8295
# ML.NET dependencies
8396
__UbuntuPackages+=" libomp5"
8497
__UbuntuPackages+=" libomp-dev"
@@ -263,6 +276,11 @@ while :; do
263276
__CodeName=illumos
264277
__SkipUnmount=1
265278
;;
279+
haiku)
280+
__CodeName=haiku
281+
__BuildArch=x64
282+
__SkipUnmount=1
283+
;;
266284
--skipunmount)
267285
__SkipUnmount=1
268286
;;
@@ -273,6 +291,10 @@ while :; do
273291
--use-mirror)
274292
__UseMirror=1
275293
;;
294+
--use-jobs)
295+
shift
296+
MAXJOBS=$1
297+
;;
276298
*)
277299
__UnprocessedBuildArgs="$__UnprocessedBuildArgs $1"
278300
;;
@@ -326,7 +348,7 @@ if [[ "$__CodeName" == "alpine" ]]; then
326348
rm -r "$__ApkToolsDir"
327349
elif [[ "$__CodeName" == "freebsd" ]]; then
328350
mkdir -p "$__RootfsDir"/usr/local/etc
329-
JOBS="$(getconf _NPROCESSORS_ONLN)"
351+
JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
330352
wget -O - "https://download.freebsd.org/ftp/releases/${__FreeBSDArch}/${__FreeBSDMachineArch}/${__FreeBSDBase}/base.txz" | tar -C "$__RootfsDir" -Jxf - ./lib ./usr/lib ./usr/libdata ./usr/include ./usr/share/keys ./etc ./bin/freebsd-version
331353
echo "ABI = \"FreeBSD:${__FreeBSDABI}:${__FreeBSDMachineArch}\"; FINGERPRINTS = \"${__RootfsDir}/usr/share/keys\"; REPOS_DIR = [\"${__RootfsDir}/etc/pkg\"]; REPO_AUTOUPDATE = NO; RUN_SCRIPTS = NO;" > "${__RootfsDir}"/usr/local/etc/pkg.conf
332354
echo "FreeBSD: { url: \"pkg+http://pkg.FreeBSD.org/\${ABI}/quarterly\", mirror_type: \"srv\", signature_type: \"fingerprints\", fingerprints: \"${__RootfsDir}/usr/share/keys/pkg\", enabled: yes }" > "${__RootfsDir}"/etc/pkg/FreeBSD.conf
@@ -344,7 +366,7 @@ elif [[ "$__CodeName" == "freebsd" ]]; then
344366
elif [[ "$__CodeName" == "illumos" ]]; then
345367
mkdir "$__RootfsDir/tmp"
346368
pushd "$__RootfsDir/tmp"
347-
JOBS="$(getconf _NPROCESSORS_ONLN)"
369+
JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
348370
echo "Downloading sysroot."
349371
wget -O - https://github.com/illumos/sysroot/releases/download/20181213-de6af22ae73b-v1/illumos-sysroot-i386-20181213-de6af22ae73b-v1.tar.gz | tar -C "$__RootfsDir" -xzf -
350372
echo "Building binutils. Please wait.."
@@ -386,6 +408,70 @@ elif [[ "$__CodeName" == "illumos" ]]; then
386408
wget -P "$__RootfsDir"/usr/include/net https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/io/bpf/net/dlt.h
387409
wget -P "$__RootfsDir"/usr/include/netpacket https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/inet/sockmods/netpacket/packet.h
388410
wget -P "$__RootfsDir"/usr/include/sys https://raw.githubusercontent.com/illumos/illumos-gate/master/usr/src/uts/common/sys/sdt.h
411+
elif [[ "$__CodeName" == "haiku" ]]; then
412+
JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"}
413+
414+
echo "Building Haiku sysroot for x86_64"
415+
mkdir -p "$__RootfsDir/tmp"
416+
cd "$__RootfsDir/tmp"
417+
git clone -b hrev56235 https://review.haiku-os.org/haiku
418+
git clone -b btrev43195 https://review.haiku-os.org/buildtools
419+
cd "$__RootfsDir/tmp/buildtools" && git checkout 7487388f5110021d400b9f3b88e1a7f310dc066d
420+
421+
# Fetch some unmerged patches
422+
cd "$__RootfsDir/tmp/haiku"
423+
## Add development build profile (slimmer than nightly)
424+
git fetch origin refs/changes/64/4164/1 && git -c commit.gpgsign=false cherry-pick FETCH_HEAD
425+
426+
# Build jam
427+
cd "$__RootfsDir/tmp/buildtools/jam"
428+
make
429+
430+
# Configure cross tools
431+
echo "Building cross-compiler"
432+
mkdir -p "$__RootfsDir/generated"
433+
cd "$__RootfsDir/generated"
434+
"$__RootfsDir/tmp/haiku/configure" -j"$JOBS" --sysroot "$__RootfsDir" --cross-tools-source "$__RootfsDir/tmp/buildtools" --build-cross-tools x86_64
435+
436+
# Build Haiku packages
437+
echo "Building Haiku"
438+
echo 'HAIKU_BUILD_PROFILE = "development-raw" ;' > UserProfileConfig
439+
"$__RootfsDir/tmp/buildtools/jam/jam0" -j"$JOBS" -q '<build>package' '<repository>Haiku'
440+
441+
BaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg"
442+
443+
# Download additional packages
444+
echo "Downloading additional required packages"
445+
read -ra array <<<"$__HaikuPackages"
446+
for package in "${array[@]}"; do
447+
echo "Downloading $package..."
448+
# API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60
449+
# The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598
450+
hpkgDownloadUrl="$(wget -qO- --post-data='{"name":"'"$package"'","repositorySourceCode":"haikuports_x86_64","versionType":"LATEST","naturalLanguageCode":"en"}' \
451+
--header='Content-Type:application/json' "$BaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')"
452+
wget -P "$__RootfsDir/generated/download" "$hpkgDownloadUrl"
453+
done
454+
455+
# Setup the sysroot
456+
echo "Setting up sysroot and extracting needed packages"
457+
mkdir -p "$__RootfsDir/boot/system"
458+
for file in "$__RootfsDir/generated/objects/haiku/x86_64/packaging/packages/"*.hpkg; do
459+
"$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file"
460+
done
461+
for file in "$__RootfsDir/generated/download/"*.hpkg; do
462+
"$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file"
463+
done
464+
465+
# Cleaning up temporary files
466+
echo "Cleaning up temporary files"
467+
rm -rf "$__RootfsDir/tmp"
468+
for name in "$__RootfsDir/generated/"*; do
469+
if [[ "$name" =~ "cross-tools-" ]]; then
470+
: # Keep the cross-compiler
471+
else
472+
rm -rf "$name"
473+
fi
474+
done
389475
elif [[ -n "$__CodeName" ]]; then
390476
qemu-debootstrap $__Keyring --arch "$__UbuntuArch" "$__CodeName" "$__RootfsDir" "$__UbuntuRepo"
391477
cp "$__CrossDir/$__BuildArch/sources.list.$__CodeName" "$__RootfsDir/etc/apt/sources.list"

eng/common/cross/toolchain.cmake

Lines changed: 40 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version)
77
elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc)
88
set(CMAKE_SYSTEM_NAME SunOS)
99
set(ILLUMOS 1)
10+
elseif(EXISTS ${CROSS_ROOTFS}/boot/system/develop/headers/config/HaikuConfig.h)
11+
set(CMAKE_SYSTEM_NAME Haiku)
1012
else()
1113
set(CMAKE_SYSTEM_NAME Linux)
1214
set(LINUX 1)
@@ -76,6 +78,8 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64")
7678
set(triple "x86_64-unknown-freebsd12")
7779
elseif(ILLUMOS)
7880
set(TOOLCHAIN "x86_64-illumos")
81+
elseif(HAIKU)
82+
set(TOOLCHAIN "x64_64-unknown-haiku")
7983
endif()
8084
elseif(TARGET_ARCH_NAME STREQUAL "x86")
8185
set(CMAKE_SYSTEM_PROCESSOR i686)
@@ -170,6 +174,41 @@ elseif(ILLUMOS)
170174

171175
set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
172176
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
177+
elseif(HAIKU)
178+
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
179+
180+
set(TOOLSET_PREFIX ${TOOLCHAIN}-)
181+
function(locate_toolchain_exec exec var)
182+
string(TOUPPER ${exec} EXEC_UPPERCASE)
183+
if(NOT "$ENV{CLR_${EXEC_UPPERCASE}}" STREQUAL "")
184+
set(${var} "$ENV{CLR_${EXEC_UPPERCASE}}" PARENT_SCOPE)
185+
return()
186+
endif()
187+
188+
set(SEARCH_PATH "${CROSS_ROOTFS}/generated/cross-tools-x86_64/bin")
189+
190+
find_program(EXEC_LOCATION_${exec}
191+
PATHS ${SEARCH_PATH}
192+
NAMES
193+
"${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}"
194+
"${TOOLSET_PREFIX}${exec}")
195+
196+
if (EXEC_LOCATION_${exec} STREQUAL "EXEC_LOCATION_${exec}-NOTFOUND")
197+
message(FATAL_ERROR "Unable to find toolchain executable. Name: ${exec}, Prefix: ${TOOLSET_PREFIX}.")
198+
endif()
199+
set(${var} ${EXEC_LOCATION_${exec}} PARENT_SCOPE)
200+
endfunction()
201+
202+
set(CMAKE_SYSTEM_PREFIX_PATH "${CROSS_ROOTFS}")
203+
204+
locate_toolchain_exec(gcc CMAKE_C_COMPILER)
205+
locate_toolchain_exec(g++ CMAKE_CXX_COMPILER)
206+
207+
set(CMAKE_C_STANDARD_LIBRARIES "${CMAKE_C_STANDARD_LIBRARIES} -lssp")
208+
set(CMAKE_CXX_STANDARD_LIBRARIES "${CMAKE_CXX_STANDARD_LIBRARIES} -lssp")
209+
210+
# let CMake set up the correct search paths
211+
include(Platform/Haiku)
173212
else()
174213
set(CMAKE_SYSROOT "${CROSS_ROOTFS}")
175214

@@ -229,7 +268,7 @@ endif()
229268

230269
# Specify compile options
231270

232-
if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS)
271+
if((TARGET_ARCH_NAME MATCHES "^(arm|arm64|armel|armv6|ppc64le|riscv64|s390x)$" AND NOT ANDROID AND NOT FREEBSD) OR ILLUMOS OR HAIKU)
233272
set(CMAKE_C_COMPILER_TARGET ${TOOLCHAIN})
234273
set(CMAKE_CXX_COMPILER_TARGET ${TOOLCHAIN})
235274
set(CMAKE_ASM_COMPILER_TARGET ${TOOLCHAIN})

eng/common/templates/job/execute-sdl.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
# If it's not devdiv, it's dnceng
5555
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
5656
name: NetCore1ESPool-Internal
57-
demands: ImageOverride -equals Build.Server.Amd64.VS2019
57+
demands: ImageOverride -equals windows.vs2019.amd64
5858
steps:
5959
- checkout: self
6060
clean: true

eng/common/templates/job/onelocbuild.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
# If it's not devdiv, it's dnceng
4242
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
4343
name: NetCore1ESPool-Internal
44-
demands: ImageOverride -equals Build.Server.Amd64.VS2019
44+
demands: ImageOverride -equals windows.vs2019.amd64
4545

4646
variables:
4747
- group: OneLocBuildVariables # Contains the CeapexPat and GithubPat

eng/common/templates/job/source-index-stage1.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ jobs:
2929
pool:
3030
${{ if eq(variables['System.TeamProject'], 'public') }}:
3131
name: NetCore1ESPool-Public
32-
demands: ImageOverride -equals Build.Server.Amd64.VS2019.Open
32+
demands: ImageOverride -equals windows.vs2019.amd64.open
3333
${{ if eq(variables['System.TeamProject'], 'internal') }}:
3434
name: NetCore1ESPool-Internal
35-
demands: ImageOverride -equals Build.Server.Amd64.VS2019
35+
demands: ImageOverride -equals windows.vs2019.amd64
3636

3737
steps:
3838
- ${{ each preStep in parameters.preSteps }}:

eng/common/templates/jobs/jobs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ jobs:
9696
# If it's not devdiv, it's dnceng
9797
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
9898
name: NetCore1ESPool-Internal
99-
demands: ImageOverride -equals Build.Server.Amd64.VS2019
99+
demands: ImageOverride -equals windows.vs2019.amd64
100100

101101
runAsPublic: ${{ parameters.runAsPublic }}
102102
publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}

eng/common/templates/post-build/post-build.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ stages:
107107
# If it's not devdiv, it's dnceng
108108
${{ else }}:
109109
name: NetCore1ESPool-Internal
110-
demands: ImageOverride -equals Build.Server.Amd64.VS2019
110+
demands: ImageOverride -equals windows.vs2019.amd64
111111

112112
steps:
113113
- template: setup-maestro-vars.yml
@@ -144,7 +144,7 @@ stages:
144144
# If it's not devdiv, it's dnceng
145145
${{ else }}:
146146
name: NetCore1ESPool-Internal
147-
demands: ImageOverride -equals Build.Server.Amd64.VS2019
147+
demands: ImageOverride -equals windows.vs2019.amd64
148148
steps:
149149
- template: setup-maestro-vars.yml
150150
parameters:
@@ -204,7 +204,7 @@ stages:
204204
# If it's not devdiv, it's dnceng
205205
${{ else }}:
206206
name: NetCore1ESPool-Internal
207-
demands: ImageOverride -equals Build.Server.Amd64.VS2019
207+
demands: ImageOverride -equals windows.vs2019.amd64
208208
steps:
209209
- template: setup-maestro-vars.yml
210210
parameters:
@@ -263,7 +263,7 @@ stages:
263263
# If it's not devdiv, it's dnceng
264264
${{ else }}:
265265
name: NetCore1ESPool-Internal
266-
demands: ImageOverride -equals Build.Server.Amd64.VS2019
266+
demands: ImageOverride -equals windows.vs2019.amd64
267267
steps:
268268
- template: setup-maestro-vars.yml
269269
parameters:

eng/common/tools.ps1

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,14 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
368368
# https://dev.azure.com/dnceng/public/_packaging?_a=package&feed=dotnet-eng&package=RoslynTools.MSBuild&protocolType=NuGet&version=17.1.0&view=overview
369369
$defaultXCopyMSBuildVersion = '17.1.0'
370370

371-
if (!$vsRequirements) { $vsRequirements = $GlobalJson.tools.vs }
371+
if (!$vsRequirements) {
372+
if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {
373+
$vsRequirements = $GlobalJson.tools.vs
374+
}
375+
else {
376+
$vsRequirements = New-Object PSObject -Property @{ version = $vsMinVersionReqdStr }
377+
}
378+
}
372379
$vsMinVersionStr = if ($vsRequirements.version) { $vsRequirements.version } else { $vsMinVersionReqdStr }
373380
$vsMinVersion = [Version]::new($vsMinVersionStr)
374381

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
}
1414
},
1515
"msbuild-sdks": {
16-
"Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22405.6"
16+
"Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22411.2"
1717
}
1818
}

0 commit comments

Comments
 (0)