From f052f73860204387af9ad0ec381936801bcf4c7c Mon Sep 17 00:00:00 2001 From: Omair Majid Date: Wed, 14 Dec 2022 21:34:37 -0500 Subject: [PATCH] Update to .NET SDK 6.0.112 and Runtime 6.0.12 --- .gitignore | 1 + dotnet6.0.spec | 18 +-- rename-tarball | 23 +++- runtime-66594-s390x-debuginfo.patch | 29 ----- runtime-clang15-support.patch | 58 ---------- runtime-strerror.patch | 172 ---------------------------- sources | 2 +- update-release | 29 ++++- 8 files changed, 50 insertions(+), 282 deletions(-) delete mode 100644 runtime-66594-s390x-debuginfo.patch delete mode 100644 runtime-clang15-support.patch delete mode 100644 runtime-strerror.patch diff --git a/.gitignore b/.gitignore index bd4ce1f..f9054fe 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ /dotnet-v6.0.109.tar.gz /dotnet-v6.0.110.tar.gz /dotnet-v6.0.111.tar.gz +/dotnet-v6.0.112.tar.gz diff --git a/dotnet6.0.spec b/dotnet6.0.spec index 538dd82..81f6fb2 100644 --- a/dotnet6.0.spec +++ b/dotnet6.0.spec @@ -20,10 +20,10 @@ # until that's done, disable LTO. This has to happen before setting the flags below. %define _lto_cflags %{nil} -%global host_version 6.0.11 -%global runtime_version 6.0.11 +%global host_version 6.0.12 +%global runtime_version 6.0.12 %global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 6.0.111 +%global sdk_version 6.0.112 %global sdk_feature_band_version %(echo %{sdk_version} | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global templates_version %{runtime_version} #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') @@ -86,12 +86,6 @@ Source11: dotnet.sh.in Patch100: runtime-arm64-lld-fix.patch # Mono still has a dependency on (now unbuildable) ILStrip which was removed from CoreCLR: https://github.com/dotnet/runtime/pull/60315 Patch101: runtime-mono-remove-ilstrip.patch -# https://github.com/dotnet/runtime/pull/66594 -Patch102: runtime-66594-s390x-debuginfo.patch -# https://github.com/dotnet/runtime/pull/73065 -Patch103: runtime-clang15-support.patch -# https://github.com/dotnet/runtime/pull/60675 -Patch104: runtime-strerror.patch # Disable apphost, needed for s390x Patch500: fsharp-no-apphost.patch @@ -400,9 +394,6 @@ sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/runtime/src/native/corehost/ pushd src/runtime %patch100 -p1 %patch101 -p1 -%patch102 -p1 -%patch103 -p1 -%patch104 -p1 popd pushd src/fsharp @@ -648,6 +639,9 @@ export COMPlus_LTTng=0 %changelog +* Wed Dec 14 2022 Omair Majid - 6.0.112-1 +- Update to .NET SDK 6.0.112 and Runtime 6.0.12 + * Thu Nov 10 2022 Omair Majid - 6.0.111-1 - Update to .NET SDK 6.0.111 and Runtime 6.0.11 diff --git a/rename-tarball b/rename-tarball index ea7e65c..5bc1109 100755 --- a/rename-tarball +++ b/rename-tarball @@ -2,6 +2,12 @@ # Usage: # ./rename-tarball original-name.tar.gz new-name.tar.gz +# +# The generated new-name.tar.gz will always have a single main +# directory (named new-name to match the tarball name) in the archive. +# If the original tarball had multiple files in the main directory of +# the archive, all those files will be moved to under the new main +# directory. set -euo pipefail IFS=$'\n\t' @@ -42,10 +48,19 @@ echo "Original: ${original_name}.tar.gz" echo "New name: ${new_name}.tar.gz" mkdir "temp-${new_name}" -pushd "temp-${new_name}" +pushd "temp-${new_name}" > /dev/null tar xf "${original_path}" -mv -- * "${new_name}" -tar czf ../"${new_name}.tar.gz" "${new_name}" +# `find` always shows the current directory as one of the entries in +# the output. A total of 2 entries means there is only one main +# directory in the extracted archive, and we can just move it to the +# expected location. +if [[ $(find . -maxdepth 1 | wc -l) == 2 ]]; then + mv -- ./* ../"${new_name}" +else + mkdir -p ../"${new_name}" + mv -- ./* ../"${new_name}" +fi +popd > /dev/null +tar czf "${new_name}.tar.gz" "${new_name}" rm -rf "${new_name}" -popd rmdir "temp-${new_name}" diff --git a/runtime-66594-s390x-debuginfo.patch b/runtime-66594-s390x-debuginfo.patch deleted file mode 100644 index 5637645..0000000 --- a/runtime-66594-s390x-debuginfo.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/src/mono/mono.proj b/src/mono/mono.proj -index fb98ffc1896..d6a0c9a8ec2 100644 ---- a/src/mono/mono.proj -+++ b/src/mono/mono.proj -@@ -519,17 +519,17 @@ - - <_Objcopy Condition="'$(_ObjcopyFound)' != '0'">objcopy - -- -+ - - - - -- -- -- -- -- -- -+ -+ -+ -+ -+ -+ - - - diff --git a/runtime-clang15-support.patch b/runtime-clang15-support.patch deleted file mode 100644 index b68ab4d..0000000 --- a/runtime-clang15-support.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 992cf8c97cc71d4ca9a0a11e6604a6716ed4cefc Mon Sep 17 00:00:00 2001 -From: Adeel Mujahid <3840695+am11@users.noreply.github.com> -Date: Fri, 29 Jul 2022 19:34:00 +0300 -Subject: [PATCH] Define __cpuid{ex} only when there's no builtin one (#73065) - -* Define __cpuid{ex} only when there's no builtin one - -Fix clang 15 RC1 build: `error: definition of builtin function '__cpuid'` - -* Add clang-15 autodetection ---- - eng/common/native/find-native-compiler.sh | 2 +- - src/coreclr/vm/amd64/unixstubs.cpp | 4 ++++ - 3 files changed, 9 insertions(+), 1 deletion(-) - -diff --git a/eng/common/native/find-native-compiler.sh b/eng/common/native/find-native-compiler.sh -index 4b99a9cad3b77..41a26d802a93f 100644 ---- a/eng/common/native/find-native-compiler.sh -+++ b/eng/common/native/find-native-compiler.sh -@@ -55,7 +55,7 @@ - # Set default versions - if [ -z "$majorVersion" ]; then - # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero. -- if [ "$compiler" = "clang" ]; then versions=( 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 ) -+ if [[ "$compiler" == "clang" ]]; then versions=( 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5 ) - elif [ "$compiler" = "gcc" ]; then versions=( 9 8 7 6 5 4.9 ); fi - - for version in "${versions[@]}"; do -diff --git a/src/coreclr/vm/amd64/unixstubs.cpp b/src/coreclr/vm/amd64/unixstubs.cpp -index 517eea98f6b6a..09d2568a9273b 100644 ---- a/src/coreclr/vm/amd64/unixstubs.cpp -+++ b/src/coreclr/vm/amd64/unixstubs.cpp -@@ -10,6 +10,7 @@ extern "C" - PORTABILITY_ASSERT("Implement for PAL"); - } - -+#if !__has_builtin(__cpuid) - void __cpuid(int cpuInfo[4], int function_id) - { - // Based on the Clang implementation provided in cpuid.h: -@@ -20,7 +21,9 @@ extern "C" - : "0"(function_id) - ); - } -+#endif - -+#if !__has_builtin(__cpuidex) - void __cpuidex(int cpuInfo[4], int function_id, int subFunction_id) - { - // Based on the Clang implementation provided in cpuid.h: -@@ -31,6 +34,7 @@ extern "C" - : "0"(function_id), "2"(subFunction_id) - ); - } -+#endif - - DWORD xmmYmmStateSupport() - { diff --git a/runtime-strerror.patch b/runtime-strerror.patch deleted file mode 100644 index 35d5605..0000000 --- a/runtime-strerror.patch +++ /dev/null @@ -1,172 +0,0 @@ -From 577a70afa472a2b7aa8e05947e185d920f42b23d Mon Sep 17 00:00:00 2001 -From: Adeel Mujahid <3840695+am11@users.noreply.github.com> -Date: Tue, 2 Nov 2021 17:47:37 +0200 -Subject: [PATCH] Fix gcc warnings during mono linux-x64 build (#60675) - -* Fix gcc warnings during mono linux-x64 build - -main with Debug configuration: 822 warnings - http://sprunge.us/2GzrDE -PR with Debug configuration: 3 warnings related to deprecated sys/sysctl.h includes - http://sprunge.us/JuyA3K - -after fixing Debug warnings, there were 13 additional warnings in Release configuration: -http://sprunge.us/PJCivP - -PR with Release configuration: (same) 3 warnings - http://sprunge.us/NwKHNE - -* Address CR feedback ---- - src/mono/cmake/config.h.in | 7 +-- - src/mono/cmake/configure.cmake | 40 +++++++++++--- - src/mono/cmake/defines-todo.cmake | 1 - - src/mono/mono/eglib/gstr.c | 14 ++--- - src/mono/mono/utils/mono-proclib.c | 28 +++++----- - 5 files changed, 173 insertions(+), 192 deletions(-) - -diff --git a/src/mono/cmake/config.h.in b/src/mono/cmake/config.h.in -index 48a82ec6db8c4..648ad60dd0494 100644 ---- a/src/mono/cmake/config.h.in -+++ b/src/mono/cmake/config.h.in -@@ -510,14 +510,11 @@ - /* Define to 1 if you have the `strerror_r' function. */ - #cmakedefine HAVE_STRERROR_R 1 - --/* Define to 1 if strerror_r returns char *. */ --#cmakedefine STRERROR_R_CHAR_P 1 -- - /* Have GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY */ - #cmakedefine GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY 1 - - /* GLIBC has CPU_COUNT macro in sched.h */ --#cmakedefine GLIBC_HAS_CPU_COUNT 1 -+#cmakedefine HAVE_GNU_CPU_COUNT - - /* Have large file support */ - #cmakedefine HAVE_LARGE_FILE_SUPPORT 1 -@@ -712,6 +709,8 @@ - /* The size of `size_t', as computed by sizeof. */ - #define SIZEOF_SIZE_T @SIZEOF_SIZE_T@ - -+#cmakedefine01 HAVE_GNU_STRERROR_R -+ - /* Define to 1 if the system has the type `struct sockaddr'. */ - #cmakedefine HAVE_STRUCT_SOCKADDR 1 - -diff --git a/src/mono/cmake/configure.cmake b/src/mono/cmake/configure.cmake -index 7bee1c6b98553..e8e9fb9e67d79 100644 ---- a/src/mono/cmake/configure.cmake -+++ b/src/mono/cmake/configure.cmake -@@ -135,6 +135,37 @@ - check_type_size("long long" SIZEOF_LONG_LONG) - check_type_size("size_t" SIZEOF_SIZE_T) - -+if (HOST_LINUX OR HOST_ANDROID) -+ set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) -+endif() -+ -+check_c_source_compiles( -+ " -+ #include -+ int main(void) -+ { -+ char buffer[1]; -+ char c = *strerror_r(0, buffer, 0); -+ return 0; -+ } -+ " -+ HAVE_GNU_STRERROR_R) -+ -+check_c_source_compiles( -+ " -+ #include -+ int main(void) -+ { -+ CPU_COUNT((void *) 0); -+ return 0; -+ } -+ " -+ HAVE_GNU_CPU_COUNT) -+ -+if (HOST_LINUX OR HOST_ANDROID) -+ set(CMAKE_REQUIRED_DEFINITIONS) -+endif() -+ - # ICONV - set(ICONV_LIB) - find_library(LIBICONV_FOUND iconv) -@@ -142,14 +173,6 @@ - set(ICONV_LIB "iconv") - endif() - --file(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test.c -- "#include \n" -- "void main () { CPU_COUNT((void *) 0); }\n" --) --try_compile(GLIBC_HAS_CPU_COUNT ${CMAKE_BINARY_DIR}/CMakeTmp SOURCES "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/test.c" -- COMPILE_DEFINITIONS "-D_GNU_SOURCE") -- -- - if(HOST_WIN32) - # checking for this doesn't work for some reason, hardcode result - set(HAVE_WINTERNL_H 1) -diff --git a/src/mono/cmake/defines-todo.cmake b/src/mono/cmake/defines-todo.cmake -index d45098d4eea4f..8d2828d53e9ba 100644 ---- a/src/mono/cmake/defines-todo.cmake -+++ b/src/mono/cmake/defines-todo.cmake -@@ -4,7 +4,6 @@ - - #option (MAJOR_IN_MKDEV "Define to 1 if `major', `minor', and `makedev' are declared in .") - #option (MAJOR_IN_SYSMACROS "Define to 1 if `major', `minor', and `makedev' are declared in .") --#option (STRERROR_R_CHAR_P "Define to 1 if strerror_r returns char *.") - #option (HAVE_LIBICONV "Define to 1 if you have the `iconv' library (-liconv).") - #option (ANDROID_UNIFIED_HEADERS "Whether Android NDK unified headers are used") - #option (MONO_DL_NEED_USCORE "Does dlsym require leading underscore.") -diff --git a/src/mono/mono/eglib/gstr.c b/src/mono/mono/eglib/gstr.c -index c549b241894f1..cbf63d8f02b97 100644 ---- a/src/mono/mono/eglib/gstr.c -+++ b/src/mono/mono/eglib/gstr.c -@@ -249,7 +249,11 @@ g_strerror (gint errnum) - size_t buff_len = sizeof (tmp_buff); - buff [0] = 0; - --#ifndef STRERROR_R_CHAR_P -+#if HAVE_GNU_STRERROR_R -+ buff = strerror_r (errnum, buff, buff_len); -+ if (!error_messages [errnum]) -+ error_messages [errnum] = g_strdup (buff); -+#else /* HAVE_GNU_STRERROR_R */ - int r; - while ((r = strerror_r (errnum, buff, buff_len - 1))) { - if (r != ERANGE) { -@@ -261,17 +265,13 @@ g_strerror (gint errnum) - else - buff = g_realloc (buff, buff_len * 2); - buff_len *= 2; -- //Spec is not clean on whether size argument includes space for null terminator or not -+ //Spec is not clean on whether size argument includes space for null terminator or not - } - if (!error_messages [errnum]) - error_messages [errnum] = g_strdup (buff); - if (buff != tmp_buff) - g_free (buff); --#else /* STRERROR_R_CHAR_P */ -- buff = strerror_r (errnum, buff, buff_len); -- if (!error_messages [errnum]) -- error_messages [errnum] = g_strdup (buff); --#endif /* STRERROR_R_CHAR_P */ -+#endif /* HAVE_GNU_STRERROR_R */ - - #else /* HAVE_STRERROR_R */ - if (!error_messages [errnum]) -diff --git a/src/mono/mono/utils/mono-proclib.c b/src/mono/mono/utils/mono-proclib.c -index 1fe731d9fe0f5..9a33fc2924e6b 100644 ---- a/src/mono/mono/utils/mono-proclib.c -+++ b/src/mono/mono/utils/mono-proclib.c -@@ -81,7 +81,7 @@ - #endif - - #ifdef HAVE_SCHED_GETAFFINITY --# ifndef GLIBC_HAS_CPU_COUNT -+# ifndef HAVE_GNU_CPU_COUNT - static int - CPU_COUNT(cpu_set_t *set) - { diff --git a/sources b/sources index 3eb8d14..084a8b4 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (dotnet-v6.0.111.tar.gz) = 4cce9a7cdf1c66322d222b6efd07186eef1013a89d7e68855baa5900584231557ab3d91cd5064c983815fb842db97cad950d337801322c5303d355596ebab54a +SHA512 (dotnet-v6.0.112.tar.gz) = 0b9c33fb0fd273f8b76079aa8c65a6b5329915e565168006a978619e145b02e2d5a15efc8338456df4532794404943a2f5f09081ed530378bd1ede5583982dbb diff --git a/update-release b/update-release index 3aa2df3..54c7307 100755 --- a/update-release +++ b/update-release @@ -1,18 +1,19 @@ #!/bin/bash # Usage: -# ./update-release sdk-version runtime-version [--bug bug-id] [--tarball tarball-name] +# ./update-release sdk-version runtime-version [--bug bug-id] [--tarball tarball-name] [--larger-rpm-release] set -euo pipefail IFS=$'\n\t' print_usage() { echo " Usage:" - echo " ./update-release sdk-version runtime-version [--bug bug-id] [--tarball tarball-name]" + echo " ./update-release sdk-version runtime-version [--bug bug-id] [--tarball tarball-name] [--larger-rpm-release]" } user_provided_tarball_name="" +rpm_release=1 positional_args=() bug_ids=() while [[ "$#" -gt 0 ]]; do @@ -32,6 +33,10 @@ while [[ "$#" -gt 0 ]]; do shift; shift; ;; + --larger-rpm-release) + rpm_release="2" + shift; + ;; *) positional_args+=("$1") shift @@ -56,13 +61,19 @@ fi host_version="$runtime_version" -tag=v${sdk_version} +if [[ "$runtime_version" == "3.1"* ]]; then + tag=v${sdk_version}-SDK +else + tag=v${sdk_version} +fi if [[ -f "dotnet-${tag}-original.tar.gz" ]]; then echo "dotnet-${tag}-original.tar.gz alredy exists, not rebuilding tarball" else if [[ -n "${user_provided_tarball_name}" ]]; then ./rename-tarball "$user_provided_tarball_name" "dotnet-${tag}-original.tar.gz" + elif [[ -f "dotnet-${sdk_version}-SDK.tar.gz" ]]; then + ./rename-tarball "dotnet-${sdk_version}-SDK.tar.gz" "dotnet-${tag}-original.tar.gz" elif [[ -f "dotnet-${sdk_version}.tar.gz" ]]; then ./rename-tarball "dotnet-${sdk_version}.tar.gz" "dotnet-${tag}-original.tar.gz" elif [[ -f "dotnet-${runtime_version}.tar.gz" ]]; then @@ -81,15 +92,21 @@ sed -i -E "s|^%global runtime_version [[:digit:]]\.[[:digit:]]\.[[:digit:]]+|%gl sed -i -E "s|^%global sdk_version [[:digit:]]\.[[:digit:]]\.[[:digit:]][[:digit:]][[:digit:]]|%global sdk_version ${sdk_version}|" "$spec_file" comment="Update to .NET SDK ${sdk_version} and Runtime ${runtime_version}" +commit_message="$comment +" for bug_id in "${bug_ids[@]}"; do comment="$comment - Resolves: RHBZ#$bug_id" + commit_message="$commit_message +Resolves: RHBZ#$bug_id" done +echo "$commit_message" > git-commit-message + rpmdev-bumpspec --comment="$comment" "$spec_file" -# Reset release to 1 in 'Release' tag -sed -i -E 's|^Release: [[:digit:]]+%|Release: 1%|' "$spec_file" +# Reset release in 'Release' tag +sed -i -E 's|^Release: [[:digit:]]+%|Release: '"$rpm_release"'%|' "$spec_file" # Reset Release in changelog comment # See https://stackoverflow.com/questions/18620153/find-matching-text-and-replace-next-line -sed -i -E '/^%changelog$/!b;n;s/-[[:digit:]]+$/-1/' "$spec_file" +sed -i -E '/^%changelog$/!b;n;s/-[[:digit:]]+$/-'"$rpm_release"'/' "$spec_file"