From fa7f68d3be8efacca6b1915ee713d364f78e754f Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Mon, 20 Apr 2026 09:04:01 -0400 Subject: [PATCH] Fix building .NET 10 on konflux In the new build system, builders on s390x have limited resources (specially memory and disk), so we need to size our builds more carefully and clean up more thoroughly. The new system also tends to trim logs, so minimize what we print. Resolves: RHEL-169518 --- dotnet10.0.spec | 42 ++++++++++++++++++++++++++++++++++-------- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/dotnet10.0.spec b/dotnet10.0.spec index 29176f6..7d2078f 100644 --- a/dotnet10.0.spec +++ b/dotnet10.0.spec @@ -77,7 +77,7 @@ Name: dotnet%{dotnetver} Version: %{sdk_rpm_version} -Release: 2%{?dist} +Release: 3%{?dist} Summary: .NET Runtime and SDK License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib @@ -158,6 +158,7 @@ BuildRequires: lttng-ust-devel %endif BuildRequires: make BuildRequires: openssl-devel +BuildRequires: procps-ng BuildRequires: python3 %if ! %{use_bundled_rapidjson} BuildRequires: rapidjson-devel @@ -559,12 +560,14 @@ rm -r src/runtime/src/native/external/zlib-ng %build +cat /proc/cpuinfo +cat /proc/meminfo cat /etc/os-release %if %{without bootstrap} # We need to create a copy because build scripts will mutate this cp -a %{_libdir}/dotnet previously-built-dotnet -find previously-built-dotnet +#find previously-built-dotnet %endif %if 0%{?fedora} || 0%{?rhel} >= 9 @@ -621,6 +624,14 @@ export EXTRA_CFLAGS="$CFLAGS" export EXTRA_CXXFLAGS="$CXXFLAGS" export EXTRA_LDFLAGS="$LDFLAGS" +# In some build environments, the build environment is shared across multiple +# packages. We need to be careful not to consume all the resources of the +# entire system. If we do, we might get killed by OOM killer. +%ifarch ppc64le s390x # TODO: conditionalize on konflux too +export DOTNET_PROCESSOR_COUNT=4 +export DOTNET_GCHeapHardLimit=0x400000000 +%endif + # Disable tracing, which is incompatible with certain versions of # lttng See https://github.com/dotnet/runtime/issues/57784. The # suggested compile-time change doesn't work, unfortunately. @@ -651,11 +662,11 @@ system_libs= %endif %ifarch ppc64le s390x -max_attempts=3 +max_attempts=5 timeout=5h %else max_attempts=3 -timeout=120m +timeout=2.5h %endif function retry_until_success { @@ -690,25 +701,34 @@ find -depth -name 'artifacts' -type d -print -exec rm -rf {} \; %ifarch %{mono_archs} --use-mono-runtime \ %endif + --clean-while-building \ -- \ /p:UseSystemLibs=${system_libs} \ /p:TargetRid=%{runtime_id} \ /p:OfficialBuilder="$vendor" \ - /p:MinimalConsoleLogOutput=false \ /p:ContinueOnPrebuiltBaselineError=true \ - /v:n \ - /p:LogVerbosity=n + #/v:n \ + #/p:LogVerbosity=n \ + #/p:MinimalConsoleLogOutput=false \ + + EOF chmod +x dotnet-rpm-build.sh VERBOSE=1 retry_until_success $max_attempts \ timeout $timeout \ - ./dotnet-rpm-build.sh + ./dotnet-rpm-build.sh || { cat /proc/cpuinfo; cat /proc/meminfo; env; exit 1; } +# Kill any leftover processes +pgrep -x dotnet -u "$UID" -a +pkill -x dotnet -u "$UID" +pkill -x VBCSCompiler -u "$UID" sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE102} > dotnet.sh +env +ps aux %install @@ -808,6 +828,7 @@ find %{buildroot}%{_libdir}/dotnet/sdk -type f -name '*.pdb' | sed -E 's|%{buil # delete files, we will not have everything we need to self-test in %%check. %{buildroot}%{_libdir}/dotnet/dotnet --info %{buildroot}%{_libdir}/dotnet/dotnet --version +ps aux # Provided by dotnet-host from another SRPM rm %{buildroot}%{_libdir}/dotnet/LICENSE.txt @@ -826,6 +847,7 @@ export COMPlus_LTTng=0 %if %{is_latest_dotnet} %{buildroot}%{_libdir}/dotnet/dotnet --info %{buildroot}%{_libdir}/dotnet/dotnet --version +ps aux %endif @@ -915,6 +937,10 @@ export COMPlus_LTTng=0 %changelog +* Wed Apr 22 2026 Omair Majid - 10.0.106-3 +- Adjust build limits +- Resolves: RHEL-169518 + * Fri Apr 17 2026 Omair Majid - 10.0.106-2 - Update to .NET SDK 10.0.106 and Runtime 10.0.6 - Resolves: RHEL-163387