From 530f17abd0409c4640dde6ee3f78115268fe1d5d Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Mon, 26 Feb 2024 11:47:10 -0500 Subject: [PATCH] dotnet6.0 was removed due to minimization efforts prior to public launch --- .gitignore | 39 - README.md | 137 ---- arcade-no-apphost.patch | 24 - build-arm64-bootstrap-tarball | 43 -- build-dotnet-tarball | 212 ------ check-debug-symbols.py | 135 ---- dead.package | 1 + dotnet.sh.in | 14 - dotnet6.0.rpmlintrc | 35 - dotnet6.0.spec | 1033 -------------------------- fsharp-no-apphost.patch | 21 - gating.yaml | 20 - msbuild-no-systemconfiguration.patch | 46 -- msbuild-no-systemsecurity.patch | 12 - roslyn-57003-mono-named-mutex.patch | 453 ----------- roslyn-analyzers-no-apphost.patch | 10 - roslyn-no-apphost.patch | 10 - rpminspect.yaml | 21 - runtime-arm64-lld-fix.patch | 18 - runtime-fedora-40-rid.patch | 98 --- runtime-mono-remove-ilstrip.patch | 33 - sdk-telemetry-optout.patch | 18 - sources | 1 - tests/.fmf/version | 1 - tests/provision.fmf | 6 - tests/tests.yml | 47 -- update-release | 139 ---- 27 files changed, 1 insertion(+), 2626 deletions(-) delete mode 100644 .gitignore delete mode 100644 README.md delete mode 100644 arcade-no-apphost.patch delete mode 100755 build-arm64-bootstrap-tarball delete mode 100755 build-dotnet-tarball delete mode 100755 check-debug-symbols.py create mode 100644 dead.package delete mode 100644 dotnet.sh.in delete mode 100644 dotnet6.0.rpmlintrc delete mode 100644 dotnet6.0.spec delete mode 100644 fsharp-no-apphost.patch delete mode 100644 gating.yaml delete mode 100644 msbuild-no-systemconfiguration.patch delete mode 100644 msbuild-no-systemsecurity.patch delete mode 100644 roslyn-57003-mono-named-mutex.patch delete mode 100644 roslyn-analyzers-no-apphost.patch delete mode 100644 roslyn-no-apphost.patch delete mode 100644 rpminspect.yaml delete mode 100644 runtime-arm64-lld-fix.patch delete mode 100644 runtime-fedora-40-rid.patch delete mode 100644 runtime-mono-remove-ilstrip.patch delete mode 100644 sdk-telemetry-optout.patch delete mode 100644 sources delete mode 100644 tests/.fmf/version delete mode 100644 tests/provision.fmf delete mode 100644 tests/tests.yml delete mode 100755 update-release diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 6d417d1..0000000 --- a/.gitignore +++ /dev/null @@ -1,39 +0,0 @@ -/dotnet-v3.1.101-SDK.tar.gz -/dotnet-v3.1.102-SDK.tar.gz -/dotnet-v3.1.103.2-SDK.tar.gz -/dotnet-v5.0.102-SDK-arm64-bootstrap.tar.gz -/dotnet-v5.0.102-SDK-x64-bootstrap.tar.gz -/dotnet-v5.0.102-SDK.tar.gz -/dotnet-v5.0.103-SDK.tar.gz -/dotnet-v5.0.104-SDK.tar.gz -/dotnet-v5.0.202-SDK.tar.gz -/dotnet-v5.0.203-SDK.tar.gz -/dotnet-v5.0.204-SDK.tar.gz -/dotnet-9e8b04bbff820c93c142f99a507a46b976f5c14c-x64-bootstrap.tar.xz -/dotnet-arm64-prebuilts-2021-10-29.tar.gz -/dotnet-s390x-prebuilts-2021-10-29.tar.gz -/dotnet-9e8b04bbff820c93c142f99a507a46b976f5c14c.tar.gz -/dotnet-v6.0.101.tar.gz -/dotnet-v6.0.102.tar.gz -/dotnet-v6.0.103.tar.gz -/dotnet-v6.0.104.tar.gz -/dotnet-v6.0.105.tar.gz -/dotnet-v6.0.106.tar.gz -/dotnet-v6.0.107.tar.gz -/dotnet-v6.0.108.tar.gz -/dotnet-v6.0.109.tar.gz -/dotnet-v6.0.110.tar.gz -/dotnet-v6.0.111.tar.gz -/dotnet-v6.0.112.tar.gz -/dotnet-v6.0.113.tar.gz -/dotnet-v6.0.114.tar.gz -/dotnet-v6.0.115.tar.gz -/dotnet-v6.0.116.tar.gz -/dotnet-v6.0.118.tar.gz -/dotnet-v6.0.120.tar.gz -/dotnet-v6.0.121.tar.gz -/dotnet-v6.0.122.tar.gz -/dotnet-v6.0.123.tar.gz -/dotnet-v6.0.124.tar.gz -/dotnet-v6.0.125.tar.gz -/dotnet-v6.0.126.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index a3681f2..0000000 --- a/README.md +++ /dev/null @@ -1,137 +0,0 @@ -# dotnet6.0 - -This is the .NET 6.0 package for Fedora. - -This package is maintained by the Fedora DotNet SIG (Special Interest -Group). You can find out more about the DotNet SIG at: - -- https://fedoraproject.org/wiki/SIGs/DotNet -- https://fedoraproject.org/wiki/DotNet -- https://lists.fedoraproject.org/archives/list/dotnet-sig@lists.fedoraproject.org/ - -Please report any issues [using -bugzilla](https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dotnet6.0). - -# Specification - -This package follows [package naming and contents suggested by -upstream](https://docs.microsoft.com/en-us/dotnet/core/build/distribution-packaging), -with one exception. It installs dotnet to `/usr/lib64/dotnet` (aka -`%{_libdir}`). - -# Contributing - -The steps below are for the final package. Please only contribute to this -pre-release version this if you know what you are doing. Original instructions -follow. - -## General Changes - -1. Fork the repo. - -2. Checkout the forked repository. - - - `git clone ssh://$USER@pkgs.fedoraproject.org/forks/$USER/rpms/dotnet6.0.git` - - `cd dotnet6.0` - -3. Make your changes. Don't forget to add a changelog. - -4. Do local builds. - - - `fedpkg local` - -5. Fix any errors that come up and rebuild until it works locally. - -6. Do builds in koji. - - - `fedpkg scratch-build --srpm` - -8. Commit the changes to the git repo. - - - `git add` any new patches - - `git remove` any now-unnecessary patches - - `git commit -a` - - `git push` - -9. Create a pull request with your changes. - -10. Once the tests in the pull-request pass, and reviewers are happy, do a real - build. - - - `fedpkg build` - -11. For non-rawhide releases, file updates using bodhi to ship the just-built - package out to users. - - - https://bodhi.fedoraproject.org/updates/new - - OR - - - `fedpkg update` - -## Updating to an new upstream release - -1. Fork the repo. - -2. Checkout the forked repository. - - - `git clone ssh://$USER@pkgs.fedoraproject.org/forks/$USER/rpms/dotnet6.0.git` - - `cd dotnet6.0` - -3. Build the new upstream source tarball. Update the versions in the - spec file. Add a changelog. This is generally automated by the - following. - - - `./update-release ` - - If this fails because of compiler errors, you might have to figure - out a fix, then add the patch in `build-dotnet-tarball` script - rather than the spec file. - -4. Do local builds. - - - `fedpkg local` - -5. Fix any errors that come up and rebuild until it works locally. Any - patches that are needed at this point should be added to the spec file. - -6. Do builds in koji. - - - `fedpkg scratch-build --srpm` - -7. Upload the source archive to the Fedora look-aside cache. - - - `fedpkg new-sources path-to-generated-dotnet-source-tarball.tar.gz` - -8. Commit the changes to the git repo. - - - `git add` any new patches - - `git remove` any now-unnecessary patches - - `git commit -a` - - `git push` - -9. Create a pull request with your changes. - -10. Once the tests in the pull-request pass, and reviewers are happy, do a real - build. - - - `fedpkg build` - -11. For non-rawhide releases, file updates using bodhi to ship the just-built - package out to users. - - - https://bodhi.fedoraproject.org/updates/new - - OR - - - `fedpkg update` - -# Testing - -This package uses CI tests as defined in `tests/test.yml`. Creating a -pull-request or running a build will fire off tests and flag any issues. We have -enabled gating (via `gating.yaml`) on the tests. That prevents a build -that fails any test from being released until the failures are waived. - -The tests themselves are contained in this external repository: -https://github.com/redhat-developer/dotnet-regular-tests/ diff --git a/arcade-no-apphost.patch b/arcade-no-apphost.patch deleted file mode 100644 index 04507f9..0000000 --- a/arcade-no-apphost.patch +++ /dev/null @@ -1,24 +0,0 @@ -Index: a/src/Microsoft.DotNet.SwaggerGenerator/Microsoft.DotNet.SwaggerGenerator.CmdLine/Microsoft.DotNet.SwaggerGenerator.CmdLine.csproj -=================================================================== ---- a/src/Microsoft.DotNet.SwaggerGenerator/Microsoft.DotNet.SwaggerGenerator.CmdLine/Microsoft.DotNet.SwaggerGenerator.CmdLine.csproj -+++ b/src/Microsoft.DotNet.SwaggerGenerator/Microsoft.DotNet.SwaggerGenerator.CmdLine/Microsoft.DotNet.SwaggerGenerator.CmdLine.csproj -@@ -9,6 +9,7 @@ - dotnet-swaggergen - false - true -+ false - - - -Index: a/src/Microsoft.DotNet.XUnitConsoleRunner/src/Microsoft.DotNet.XUnitConsoleRunner.csproj -=================================================================== ---- a/src/Microsoft.DotNet.XUnitConsoleRunner/src/Microsoft.DotNet.XUnitConsoleRunner.csproj -+++ b/src/Microsoft.DotNet.XUnitConsoleRunner/src/Microsoft.DotNet.XUnitConsoleRunner.csproj -@@ -11,6 +11,7 @@ - 2.5.1 - true - Major -+ false - - - diff --git a/build-arm64-bootstrap-tarball b/build-arm64-bootstrap-tarball deleted file mode 100755 index 9f1cc7d..0000000 --- a/build-arm64-bootstrap-tarball +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -set -x - -bootstrap_dir=$(readlink -f "$1") - -version=$(jq -r '.tools.dotnet' "$bootstrap_dir"/global.json) - -date=$(date +%F) - -mkdir -p "dotnet-arm64-prebuilts-$date" - -pushd "dotnet-arm64-prebuilts-$date" - -# Getting the exact matching rc2 version gets us an arm64 build without this -# fix https://github.com/dotnet/runtime/pull/58959. That causes a segfault on -# startup. -# wget "https://dotnetcli.azureedge.net/dotnet/Sdk/$version/dotnet-sdk-$version-linux-arm64.tar.gz" - -wget https://aka.ms/dotnet/6.0.1XX-rc2/daily/dotnet-sdk-linux-arm64.tar.gz - -mapfile -t linux_x64_packages < <(tar tf "$bootstrap_dir"/packages/archive/Private.SourceBuilt.Artifacts.*.tar.gz | grep linux-x64) - -for package in "${linux_x64_packages[@]}"; do - if [[ "$package" = *'.Intermediate.'* ]]; then - continue; - fi - - filename=${package##*/} - name=${filename%.6.0*} - arm_name=${name/linux-x64/linux-arm64} - version="6.0${filename##*6.0}" - version=${version%.*} - - nappo download --verbose "$arm_name" "$version" - -done - -popd - -tar czf "dotnet-arm64-prebuilts-$date.tar.gz" "dotnet-arm64-prebuilts-$date" diff --git a/build-dotnet-tarball b/build-dotnet-tarball deleted file mode 100755 index fafcd74..0000000 --- a/build-dotnet-tarball +++ /dev/null @@ -1,212 +0,0 @@ -#!/bin/bash - -# Usage: -# build-dotnet-tarball [--bootstrap] -# -# Creates a source archive from a tag (or commit) at github.com/dotnet/installer - -# installer is a little strange, we need to clone it, check out the -# tag, build it and then create a tarball from the archive directory -# it creates. Also, it is likely that the source archive is only -# buildable on the OS it was initially created in. - -set -euo pipefail -IFS=$'\n\t' - -function print_usage { - echo "Usage:" - echo "$0 [--bootstrap] " - echo - echo "Creates a source archive from a tag at https://github.com/dotnet/installer" - echo "" - echo " --bootstrap build a source tarball usable for bootstrapping .NET" -} - -function clean_dotnet_cache { - rm -rf ~/.aspnet ~/.dotnet/ ~/.nuget/ ~/.local/share/NuGet ~/.templateengine - rm -rf /tmp/NuGet /tmp/NuGetScratch /tmp/.NETCore* /tmp/.NETStandard* /tmp/.dotnet /tmp/dotnet.* /tmp/clr-debug-pipe* /tmp/Razor-Server /tmp/CoreFxPipe* /tmp/VBCSCompiler /tmp/.NETFramework* -} - -function check_bootstrap_environment { - if rpm -qa | grep dotnet ; then - echo "error: dotnet is installed. Not a good idea for bootstrapping." - exit 1 - fi - if [ -d /usr/lib/dotnet ] || [ -d /usr/lib64/dotnet ] || [ -d /usr/share/dotnet ] ; then - echo "error: one of /usr/lib/dotnet /usr/lib64/dotnet or /usr/share/dotnet/ exists. Not a good idea for bootstrapping." - exit 1 - fi - if command -v dotnet ; then - echo "error: dotnet is in $PATH. Not a good idea for bootstrapping." - exit 1 - fi -} - -function runtime_id { - - source /etc/os-release - case "${ID}" in - # Remove the RHEL minor version - rhel) rid_version=${VERSION_ID%.*} ;; - - *) rid_version=${VERSION_ID} ;; - esac - - echo "${ID}.${rid_version}-${arch}" -} - -build_bootstrap=false - -declare -A archmap -archmap=( - ["aarch64"]="arm64" - ["amd64"]="x64" - ["armv8l"]="arm" - ["i686"]="x86" - ["i386"]="x86" - ["x86_64"]="x64" -) - -arch=${archmap["$(uname -m)"]} - - -positional_args=() -while [[ "$#" -gt 0 ]]; do - arg="${1}" - case "${arg}" in - --bootstrap) - check_bootstrap_environment - build_bootstrap=true - shift - ;; - -h|--help) - print_usage - exit 0 - ;; - *) - positional_args+=("$1") - shift - ;; - esac -done - - -tag=${positional_args[0]:-} -if [[ -z ${tag} ]]; then - echo "error: missing tag to build" - exit 1 -fi - -set -x - -dir_name="dotnet-${tag}" -unmodified_tarball_name="${dir_name}-original" -tarball_name="${dir_name}" -tarball_suffix=.tar.gz - -if [[ ${build_bootstrap} == true ]]; then - unmodified_tarball_name="${unmodified_tarball_name}-${arch}-bootstrap" - tarball_name="${tarball_name}-${arch}-bootstrap" - tarball_suffix=.tar.xz -fi - -if [ -f "${tarball_name}${tarball_suffix}" ]; then - echo "error: ${tarball_name}${tarball_suffix} already exists" - exit 1 -fi - -if [ ! -f "${unmodified_tarball_name}.tar.gz" ]; then - temp_dir=$(mktemp -d -p "$(pwd)") - pushd "${temp_dir}" - git clone https://github.com/dotnet/installer --branch "${tag}" --depth 1 - pushd installer - git submodule update --init --recursive - clean_dotnet_cache - mkdir -p "../${unmodified_tarball_name}" - ./build.sh /p:ArcadeBuildTarball=true - - mv artifacts/packages/Debug/Shipping/dotnet-sdk-source-6.*.tar.gz \ - ../../"${unmodified_tarball_name}.tar.gz" - - popd - popd - - rm -rf "${temp_dir}" -fi - -rm -rf "${tarball_name}" -mkdir -p "${tarball_name}" -pushd "${tarball_name}" -tar xf ../"${unmodified_tarball_name}.tar.gz" - -if [[ ${build_bootstrap} == true ]]; then - if [[ "$(wc -l < packages/archive/archiveArtifacts.txt)" != 1 ]]; then - echo "error: this is not going to work! update $0 to fix this issue." - exit 1 - fi - - pushd packages/archive/ - curl -O $(cat archiveArtifacts.txt) - popd - - mkdir foo - pushd foo - - tar xf ../packages/archive/Private.SourceBuilt.Artifacts.*.tar.gz - sed -i -E 's|6.0.0-rtm.21521.16.0.0-rtm.21521.46.0.0-rtm.21521.16.0.0-rtm.21521.4.*") -# The name of the nuget package includes NETCore -addFilter("W: spelling-error .* NETCore -> Net Core.*") - -# Upstream really has no README or documentation files. They suggest using online resources. -addFilter("W: no-documentation") - -# This is a script that we run; it's expected to have execute permissions -addFilter("W: strange-permission check-debug-symbols.py") - -# libicu is a required dependency, but it's used via a dlopen() -addFilter("E: explicit-lib-dependency libicu") - -# There's no devel package for us to place .h files -addFilter("W: devel-file-in-non-devel-package /usr/lib64/dotnet/.*\.h") -addFilter("W: devel-file-in-non-devel-package /usr/lib64/dotnet/.*\.a") - -# These paths are non-standard, so we need $ORIGIN to find these libraries -addFilter("E: binary-or-shlib-defines-rpath /usr/lib64/dotnet/.*\['\$ORIGIN/netcoredeps'\]") -addFilter("E: binary-or-shlib-defines-rpath /usr/lib64/dotnet/.*\['\$ORIGIN'\]") - -# We put dll files in /usr/lib/dotnet, but rpmlint somehow doesn't see it as a binary? -addFilter("W: only-non-binary-in-usr-lib") - -# We use a number of zero-length files, including _._ -addFilter("E: zero-length /usr/lib64/dotnet/.*/_\._") - -# Upstream uses hidden files, even though we ask them not to, as much as possible -addFilter("W: hidden-file-or-dir /usr/lib64/dotnet/.*/\.version") -addFilter("W: hidden-file-or-dir /usr/lib64/dotnet/.*/\.toolsetversion") - diff --git a/dotnet6.0.spec b/dotnet6.0.spec deleted file mode 100644 index 02e59ac..0000000 --- a/dotnet6.0.spec +++ /dev/null @@ -1,1033 +0,0 @@ -%bcond_with bootstrap - -# Avoid provides/requires from private libraries -%global privlibs libhostfxr -%global privlibs %{privlibs}|libclrjit -%global privlibs %{privlibs}|libcoreclr -%global privlibs %{privlibs}|libcoreclrtraceptprovider -%global privlibs %{privlibs}|libdbgshim -%global privlibs %{privlibs}|libhostpolicy -%global privlibs %{privlibs}|libmscordaccore -%global privlibs %{privlibs}|libmscordbi -%global privlibs %{privlibs}|libsos -%global privlibs %{privlibs}|libsosplugin -%global __provides_exclude ^(%{privlibs})\\.so -%global __requires_exclude ^(%{privlibs})\\.so - -# LTO triggers a compilation error for a source level issue. Given that LTO should not -# change the validity of any given source and the nature of the error (undefined enum), I -# suspect a generator program is mis-behaving in some way. This needs further debugging, -# until that's done, disable LTO. This has to happen before setting the flags below. -%define _lto_cflags %{nil} - -%global host_version 6.0.26 -%global runtime_version 6.0.26 -%global aspnetcore_runtime_version %{runtime_version} -%global sdk_version 6.0.126 -%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 }') - -%global host_rpm_version %{host_version} -%global runtime_rpm_version %{runtime_version} -%global aspnetcore_runtime_rpm_version %{aspnetcore_runtime_version} -%global sdk_rpm_version %{sdk_version} - -# upstream can update releases without revving the SDK version so these don't always match -%global upstream_tag v%{sdk_version} - -%if 0%{?fedora} || 0%{?rhel} < 8 -%global use_bundled_libunwind 0 -%else -%global use_bundled_libunwind 1 -%endif - -%ifarch aarch64 s390x -%global use_bundled_libunwind 1 -%endif - -%ifarch x86_64 -%global runtime_arch x64 -%endif -%ifarch aarch64 -%global runtime_arch arm64 -%endif -%ifarch s390x -%global runtime_arch s390x -%endif - -%{!?runtime_id:%global runtime_id %(. /etc/os-release ; echo "${ID}.${VERSION_ID%%.*}")-%{runtime_arch}} - -Name: dotnet6.0 -Version: %{sdk_rpm_version} -Release: 1%{?dist} -Summary: .NET Runtime and SDK -License: MIT and ASL 2.0 and BSD and LGPLv2+ and CC-BY and CC0 and MS-PL and EPL-1.0 and GPL+ and GPLv2 and ISC and OFL and zlib -URL: https://github.com/dotnet/ - -%if %{with bootstrap} -# The source is generated on a Fedora box via: -# ./build-dotnet-tarball --bootstrap %%{upstream_tag} -Source0: dotnet-%{upstream_tag}-x64-bootstrap.tar.xz -# Generated via ./build-arm64-bootstrap-tarball -Source1: dotnet-arm64-prebuilts-2021-10-29.tar.gz -# Generated manually, same pattern as the arm64 tarball -Source2: dotnet-s390x-prebuilts-2021-10-29.tar.gz -%else -# The source is generated on a Fedora box via: -# ./build-dotnet-tarball %%{upstream_tag} -Source0: dotnet-%{upstream_tag}.tar.gz -%endif - -Source10: check-debug-symbols.py -Source11: dotnet.sh.in - -# Fix using lld on Fedora -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 -# Add Fedora 40 RIDs -Patch102: runtime-fedora-40-rid.patch - -# Disable apphost, needed for s390x -Patch500: fsharp-no-apphost.patch -# Disable apphost, needed for s390x -Patch700: arcade-no-apphost.patch - -# Named mutex fix for mono, needed for s390x. https://github.com/dotnet/roslyn/pull/57003 -Patch800: roslyn-57003-mono-named-mutex.patch -# Disable apphost, needed for s390x -Patch801: roslyn-no-apphost.patch - -# Disable apphost, needed for s390x -Patch900: roslyn-analyzers-no-apphost.patch - -# Fix mono-specific runtime crashes running msbuild. CoreCLR does not -# load types that are not actually used/invoked at runtime, while mono -# does. System.Configuration and System.Security are missing in -# source-build builds, which breaks msbuild. -Patch1000: msbuild-no-systemsecurity.patch -Patch1001: msbuild-no-systemconfiguration.patch - -# Disable telemetry by default; make it opt-in -Patch1500: sdk-telemetry-optout.patch - - - -%if 0%{?fedora} || 0%{?rhel} >= 8 -ExclusiveArch: aarch64 x86_64 s390x -%else -ExclusiveArch: x86_64 -%endif - - -BuildRequires: clang -BuildRequires: cmake -BuildRequires: coreutils -%if %{without bootstrap} -BuildRequires: dotnet-sdk-6.0 -BuildRequires: dotnet-sdk-6.0-source-built-artifacts -%endif -BuildRequires: findutils -BuildRequires: git -%if 0%{?fedora} || 0%{?rhel} > 7 -BuildRequires: glibc-langpack-en -%endif -BuildRequires: hostname -BuildRequires: krb5-devel -BuildRequires: libicu-devel -%if ! %{use_bundled_libunwind} -BuildRequires: libunwind-devel -%endif -%ifarch aarch64 -BuildRequires: lld -%endif -BuildRequires: llvm -BuildRequires: lttng-ust-devel -BuildRequires: make -BuildRequires: openssl-devel -BuildRequires: python3 -BuildRequires: tar -BuildRequires: util-linux -BuildRequires: zlib-devel - -%description -.NET is a fast, lightweight and modular platform for creating -cross platform applications that work on Linux, macOS and Windows. - -It particularly focuses on creating console applications, web -applications and micro-services. - -.NET contains a runtime conforming to .NET Standards a set of -framework libraries, an SDK containing compilers and a 'dotnet' -application to drive everything. - - -%package -n dotnet - -Version: %{sdk_rpm_version} -Summary: .NET CLI tools and runtime - -Requires: dotnet-sdk-6.0%{?_isa} >= %{sdk_rpm_version}-%{release} - -%description -n dotnet -.NET is a fast, lightweight and modular platform for creating -cross platform applications that work on Linux, macOS and Windows. - -It particularly focuses on creating console applications, web -applications and micro-services. - -.NET contains a runtime conforming to .NET Standards a set of -framework libraries, an SDK containing compilers and a 'dotnet' -application to drive everything. - - -%package -n dotnet-host - -Version: %{host_rpm_version} -Summary: .NET command line launcher - -%description -n dotnet-host -The .NET host is a command line program that runs a standalone -.NET application or launches the SDK. - -.NET is a fast, lightweight and modular platform for creating -cross platform applications that work on Linux, Mac and Windows. - -It particularly focuses on creating console applications, web -applications and micro-services. - - -%package -n dotnet-hostfxr-6.0 - -Version: %{host_rpm_version} -Summary: .NET command line host resolver - -# Theoretically any version of the host should work. But lets aim for the one -# provided by this package, or from a newer version of .NET -Requires: dotnet-host%{?_isa} >= %{host_rpm_version}-%{release} - -%description -n dotnet-hostfxr-6.0 -The .NET host resolver contains the logic to resolve and select -the right version of the .NET SDK or runtime to use. - -.NET is a fast, lightweight and modular platform for creating -cross platform applications that work on Linux, Mac and Windows. - -It particularly focuses on creating console applications, web -applications and micro-services. - - -%package -n dotnet-runtime-6.0 - -Version: %{runtime_rpm_version} -Summary: NET 6.0 runtime - -Requires: dotnet-hostfxr-6.0%{?_isa} >= %{host_rpm_version}-%{release} - -# libicu is dlopen()ed -Requires: libicu%{?_isa} - -# See src/runtime/src/libraries/Native/AnyOS/brotli-version.txt -Provides: bundled(libbrotli) = 1.0.9 -%if %{use_bundled_libunwind} -# See src/runtime/src/coreclr/pal/src/libunwind/libunwind-version.txt -Provides: bundled(libunwind) = 1.5.rc1.28.g9165d2a1 -%endif - -%description -n dotnet-runtime-6.0 -The .NET runtime contains everything needed to run .NET applications. -It includes a high performance Virtual Machine as well as the framework -libraries used by .NET applications. - -.NET is a fast, lightweight and modular platform for creating -cross platform applications that work on Linux, Mac and Windows. - -It particularly focuses on creating console applications, web -applications and micro-services. - - -%package -n aspnetcore-runtime-6.0 - -Version: %{aspnetcore_runtime_rpm_version} -Summary: ASP.NET Core 6.0 runtime - -Requires: dotnet-runtime-6.0%{?_isa} >= %{runtime_rpm_version}-%{release} - -%description -n aspnetcore-runtime-6.0 -The ASP.NET Core runtime contains everything needed to run .NET -web applications. It includes a high performance Virtual Machine as -well as the framework libraries used by .NET applications. - -ASP.NET Core is a fast, lightweight and modular platform for creating -cross platform web applications that work on Linux, Mac and Windows. - -It particularly focuses on creating console applications, web -applications and micro-services. - - -%package -n dotnet-templates-6.0 - -Version: %{sdk_rpm_version} -Summary: .NET 6.0 templates - -# Theoretically any version of the host should work. But lets aim for the one -# provided by this package, or from a newer version of .NET -Requires: dotnet-host%{?_isa} >= %{host_rpm_version}-%{release} - -%description -n dotnet-templates-6.0 -This package contains templates used by the .NET SDK. - -.NET is a fast, lightweight and modular platform for creating -cross platform applications that work on Linux, Mac and Windows. - -It particularly focuses on creating console applications, web -applications and micro-services. - - -%package -n dotnet-sdk-6.0 - -Version: %{sdk_rpm_version} -Summary: .NET 6.0 Software Development Kit - -Provides: bundled(js-jquery) - -Requires: dotnet-runtime-6.0%{?_isa} >= %{runtime_rpm_version}-%{release} -Requires: aspnetcore-runtime-6.0%{?_isa} >= %{aspnetcore_runtime_rpm_version}-%{release} - -Requires: dotnet-apphost-pack-6.0%{?_isa} >= %{runtime_rpm_version}-%{release} -Requires: dotnet-targeting-pack-6.0%{?_isa} >= %{runtime_rpm_version}-%{release} -Requires: aspnetcore-targeting-pack-6.0%{?_isa} >= %{aspnetcore_runtime_rpm_version}-%{release} -Requires: netstandard-targeting-pack-2.1%{?_isa} >= %{sdk_rpm_version}-%{release} - -Requires: dotnet-templates-6.0%{?_isa} >= %{sdk_rpm_version}-%{release} - -%description -n dotnet-sdk-6.0 -The .NET SDK is a collection of command line applications to -create, build, publish and run .NET applications. - -.NET is a fast, lightweight and modular platform for creating -cross platform applications that work on Linux, Mac and Windows. - -It particularly focuses on creating console applications, web -applications and micro-services. - - -%global dotnet_targeting_pack() %{expand: -%package -n %{1} - -Version: %{2} -Summary: Targeting Pack for %{3} %{4} - -Requires: dotnet-host%{?_isa} - -%description -n %{1} -This package provides a targeting pack for %{3} %{4} -that allows developers to compile against and target %{3} %{4} -applications using the .NET SDK. - -%files -n %{1} -%dir %{_libdir}/dotnet/packs -%{_libdir}/dotnet/packs/%{5} -} - -%dotnet_targeting_pack dotnet-apphost-pack-6.0 %{runtime_rpm_version} Microsoft.NETCore.App 6.0 Microsoft.NETCore.App.Host.%{runtime_id} -%dotnet_targeting_pack dotnet-targeting-pack-6.0 %{runtime_rpm_version} Microsoft.NETCore.App 6.0 Microsoft.NETCore.App.Ref -%dotnet_targeting_pack aspnetcore-targeting-pack-6.0 %{aspnetcore_runtime_rpm_version} Microsoft.AspNetCore.App 6.0 Microsoft.AspNetCore.App.Ref -%dotnet_targeting_pack netstandard-targeting-pack-2.1 %{sdk_rpm_version} NETStandard.Library 2.1 NETStandard.Library.Ref - - -%package -n dotnet-sdk-6.0-source-built-artifacts - -Version: %{sdk_rpm_version} -Summary: Internal package for building .NET 6.0 Software Development Kit - -%description -n dotnet-sdk-6.0-source-built-artifacts -The .NET source-built archive is a collection of packages needed -to build the .NET SDK itself. - -These are not meant for general use. - - -%prep -%if %{without bootstrap} -%setup -q -n dotnet-%{upstream_tag} -%else - -%setup -q -T -b 0 -n dotnet-%{upstream_tag}-x64-bootstrap - -%ifnarch x86_64 - -rm -rf .dotnet -%ifarch aarch64 -tar -x --strip-components=1 -f %{SOURCE1} -C packages/prebuilt -%endif -%ifarch s390x -tar -x --strip-components=1 -f %{SOURCE2} -C packages/prebuilt -%endif -mkdir -p .dotnet -tar xf packages/prebuilt/dotnet-sdk*.tar.gz -C .dotnet/ -rm packages/prebuilt/dotnet-sdk*.tar.gz -boot_sdk_version=$(ls -1 .dotnet/sdk/) -sed -i -E 's|"dotnet": "[^"]+"|"dotnet" : "'$boot_sdk_version'"|' global.json -%endif - -%endif - -%if %{without bootstrap} -# Remove all prebuilts -find -iname '*.dll' -type f -delete -find -iname '*.so' -type f -delete -find -iname '*.tar.gz' -type f -delete -find -iname '*.nupkg' -type f -delete -find -iname '*.zip' -type f -delete -rm -rf .dotnet/ -rm -rf packages/source-built - -mkdir -p packages/archive -ln -s %{_libdir}/dotnet/source-built-artifacts/Private.SourceBuilt.Artifacts.*.tar.gz packages/archive/ -%endif - -# Fix bad hardcoded path in build -sed -i 's|/usr/share/dotnet|%{_libdir}/dotnet|' src/runtime/src/native/corehost/hostmisc/pal.unix.cpp - -pushd src/runtime -%patch100 -p1 -%patch101 -p1 -%patch102 -p1 -popd - -pushd src/fsharp -%patch500 -p1 -popd - -pushd src/arcade -%patch700 -p1 -popd - -pushd src/roslyn -%patch800 -p3 -%patch801 -p1 -popd - -pushd src/roslyn-analyzers -%patch900 -p1 -popd - -pushd src/msbuild - -# These are mono-specific fixes. Mono is only used on s390x. Restrict -# patch to s390x to avoid potential risk in other architectures. -%ifarch s390x -%patch1000 -p1 -%patch1001 -p1 -%endif - -popd - -pushd src/sdk -%patch1500 -p1 -popd - -pushd src/installer -popd - - -%if ! %{use_bundled_libunwind} -sed -i -E 's|( /p:BuildDebPackage=false)|\1 --cmakeargs -DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|' src/runtime/eng/SourceBuild.props -%endif - -%build -cat /etc/os-release - -%if %{without bootstrap} -# We need to create a copy because we will mutate this -cp -a %{_libdir}/dotnet previously-built-dotnet - -find previously-built-dotnet -%endif - -%if 0%{?fedora} > 32 || 0%{?rhel} > 8 -# Setting this macro ensures that only clang supported options will be -# added to ldflags and cflags. -%global toolchain clang -%set_build_flags -%else -# Filter flags not supported by clang -%global dotnet_cflags %(echo %optflags | sed -re 's/-specs=[^ ]*//g') -%global dotnet_ldflags %(echo %{__global_ldflags} | sed -re 's/-specs=[^ ]*//g') -export CFLAGS="%{dotnet_cflags}" -export CXXFLAGS="%{dotnet_cflags}" -export LDFLAGS="%{dotnet_ldflags}" -%endif - -# -fstack-clash-protection breaks CoreCLR -CFLAGS=$(echo $CFLAGS | sed -e 's/-fstack-clash-protection//' ) -CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/-fstack-clash-protection//' ) - -%ifarch aarch64 -# -mbranch-protection=standard breaks unwinding in CoreCLR through libunwind -CFLAGS=$(echo $CFLAGS | sed -e 's/-mbranch-protection=standard //') -CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/-mbranch-protection=standard //') -%endif - -%ifarch s390x -# -march=z13 -mtune=z14 makes clang crash while compiling .NET -CFLAGS=$(echo $CFLAGS | sed -e 's/ -march=z13//') -CFLAGS=$(echo $CFLAGS | sed -e 's/ -mtune=z14//') -CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/ -march=z13//') -CXXFLAGS=$(echo $CXXFLAGS | sed -e 's/ -mtune=z14//') -%endif - -export EXTRA_CFLAGS="$CFLAGS" -export EXTRA_CXXFLAGS="$CXXFLAGS" -export EXTRA_LDFLAGS="$LDFLAGS" - -# 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. -export COMPlus_LTTng=0 - -%if 0%{?fedora} > 37 || 0%{?rhel} > 8 -# OpenSSL 3.0 in RHEL 9 has disabled SHA1, used by .NET for strong -# name signing. See https://github.com/dotnet/runtime/issues/67304 -# https://gitlab.com/redhat/centos-stream/rpms/openssl/-/commit/78fb78d30755ae18fdaef28ef392f4e67c662ff6 -export OPENSSL_ENABLE_SHA1_SIGNATURES=1 -%endif - -VERBOSE=1 ./build.sh \ -%if %{without bootstrap} - --with-sdk previously-built-dotnet \ -%endif - -- \ - -echo \ - /v:n \ - /p:SkipPortableRuntimeBuild=true \ - /p:LogVerbosity=n \ - /p:MinimalConsoleLogOutput=false \ - /p:ContinueOnPrebuiltBaselineError=true \ - - -sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE11} > dotnet.sh - - -%install -install -dm 0755 %{buildroot}%{_libdir}/dotnet -ls artifacts/%{runtime_arch}/Release -tar xf artifacts/%{runtime_arch}/Release/dotnet-sdk-%{sdk_version}-%{runtime_id}.tar.gz -C %{buildroot}%{_libdir}/dotnet/ - -# See https://github.com/dotnet/source-build/issues/2579 -find %{buildroot}%{_libdir}/dotnet/ -type f -name 'testhost.x86' -delete -find %{buildroot}%{_libdir}/dotnet/ -type f -name 'vstest.console' -delete - -# Install managed symbols: disabled because they don't contain sources -# but point to the paths the sources would have been at in the build -# servers. The end user experience is pretty bad atm. -# tar xf artifacts/%%{runtime_arch}/Release/runtime/dotnet-runtime-symbols-%%{runtime_id}-%%{runtime_version}.tar.gz \ -# -C %%{buildroot}/%%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%%{runtime_version}/ - -# Fix executable permissions on files -find %{buildroot}%{_libdir}/dotnet/ -type f -name 'apphost' -exec chmod +x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name 'singlefilehost' -exec chmod +x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name 'lib*so' -exec chmod +x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.a' -exec chmod -x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.dll' -exec chmod -x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.h' -exec chmod 0644 {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.json' -exec chmod -x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.pdb' -exec chmod -x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.props' -exec chmod -x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.pubxml' -exec chmod -x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.targets' -exec chmod -x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.txt' -exec chmod -x {} \; -find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.xml' -exec chmod -x {} \; - -install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/ -install dotnet.sh %{buildroot}%{_sysconfdir}/profile.d/ - -install -dm 0755 %{buildroot}/%{_datadir}/bash-completion/completions -# dynamic completion needs the file to be named the same as the base command -install src/sdk/scripts/register-completions.bash %{buildroot}/%{_datadir}/bash-completion/completions/dotnet - -# TODO: the zsh completion script needs to be ported to use #compdef -#install -dm 755 %%{buildroot}/%%{_datadir}/zsh/site-functions -#install src/cli/scripts/register-completions.zsh %%{buildroot}/%%{_datadir}/zsh/site-functions/_dotnet - -install -dm 0755 %{buildroot}%{_bindir} -ln -s ../../%{_libdir}/dotnet/dotnet %{buildroot}%{_bindir}/ - -install -dm 0755 %{buildroot}%{_mandir}/man1/ -find -iname 'dotnet*.1' -type f -exec cp {} %{buildroot}%{_mandir}/man1/ \; - -install -dm 0755 %{buildroot}%{_sysconfdir}/dotnet -echo "%{_libdir}/dotnet" >> install_location -install install_location %{buildroot}%{_sysconfdir}/dotnet/ -echo "%{_libdir}/dotnet" >> install_location_%{runtime_arch} -install install_location_%{runtime_arch} %{buildroot}%{_sysconfdir}/dotnet/ - -install -dm 0755 %{buildroot}%{_libdir}/dotnet/source-built-artifacts -install -m 0644 artifacts/%{runtime_arch}/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/ - - -# Quick and dirty check for https://github.com/dotnet/source-build/issues/2731 -test -f %{buildroot}%{_libdir}/dotnet/sdk/%{sdk_version}/Sdks/Microsoft.NET.Sdk/Sdk/Sdk.props - -# Check debug symbols in all elf objects. This is not in %%check -# because native binaries are stripped by rpm-build after %%install. -# So we need to do this check earlier. -echo "Testing build results for debug symbols..." -%{SOURCE10} -v %{buildroot}%{_libdir}/dotnet/ - - - -%check -%if 0%{?fedora} > 35 -# lttng in Fedora > 35 is incompatible with .NET -export COMPlus_LTTng=0 -%endif - -%{buildroot}%{_libdir}/dotnet/dotnet --info -%{buildroot}%{_libdir}/dotnet/dotnet --version - - -%files -n dotnet -# empty package useful for dependencies - -%files -n dotnet-host -%dir %{_libdir}/dotnet -%{_libdir}/dotnet/dotnet -%dir %{_libdir}/dotnet/host -%dir %{_libdir}/dotnet/host/fxr -%{_bindir}/dotnet -%license %{_libdir}/dotnet/LICENSE.txt -%license %{_libdir}/dotnet/ThirdPartyNotices.txt -%doc %{_mandir}/man1/dotnet*.1.gz -%config(noreplace) %{_sysconfdir}/profile.d/dotnet.sh -%config(noreplace) %{_sysconfdir}/dotnet -%dir %{_datadir}/bash-completion -%dir %{_datadir}/bash-completion/completions -%{_datadir}/bash-completion/completions/dotnet - -%files -n dotnet-hostfxr-6.0 -%dir %{_libdir}/dotnet/host/fxr -%{_libdir}/dotnet/host/fxr/%{host_version} - -%files -n dotnet-runtime-6.0 -%dir %{_libdir}/dotnet/shared -%dir %{_libdir}/dotnet/shared/Microsoft.NETCore.App -%{_libdir}/dotnet/shared/Microsoft.NETCore.App/%{runtime_version} - -%files -n aspnetcore-runtime-6.0 -%dir %{_libdir}/dotnet/shared -%dir %{_libdir}/dotnet/shared/Microsoft.AspNetCore.App -%{_libdir}/dotnet/shared/Microsoft.AspNetCore.App/%{aspnetcore_runtime_version} - -%files -n dotnet-templates-6.0 -%dir %{_libdir}/dotnet/templates -%{_libdir}/dotnet/templates/%{templates_version} - -%files -n dotnet-sdk-6.0 -%dir %{_libdir}/dotnet/sdk -%{_libdir}/dotnet/sdk/%{sdk_version} -%dir %{_libdir}/dotnet/sdk-manifests -%{_libdir}/dotnet/sdk-manifests/%{sdk_feature_band_version} -%{_libdir}/dotnet/metadata -%dir %{_libdir}/dotnet/packs - -%files -n dotnet-sdk-6.0-source-built-artifacts -%dir %{_libdir}/dotnet -%{_libdir}/dotnet/source-built-artifacts - - -%changelog -* Tue Jan 09 2024 Omair Majid - 6.0.126-1 -- Update to .NET SDK 6.0.126 and Runtime 6.0.26 - -* Wed Nov 15 2023 Omair Majid - 6.0.125-1 -- Update to .NET SDK 6.0.125 and Runtime 6.0.25 - -* Wed Oct 25 2023 Omair Majid - 6.0.124-1 -- Update to .NET SDK 6.0.124 and Runtime 6.0.24 - -* Wed Oct 11 2023 Omair Majid - 6.0.123-1 -- Update to .NET SDK 6.0.123 and Runtime 6.0.23 - -* Tue Sep 12 2023 Omair Majid - 6.0.122-1 -- Update to .NET SDK 6.0.122 and Runtime 6.0.22 - -* Tue Aug 08 2023 Omair Majid - 6.0.121-1 -- Update to .NET SDK 6.0.121 and Runtime 6.0.21 - -* Wed Jul 19 2023 Fedora Release Engineering - 6.0.120-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Tue Jul 11 2023 Omair Majid - 6.0.120-1 -- Update to .NET SDK 6.0.120 and Runtime 6.0.20 - -* Wed Jun 14 2023 Omair Majid - 6.0.118-1 -- Update to .NET SDK 6.0.118 and Runtime 6.0.18 - -* Wed Apr 12 2023 Omair Majid - 6.0.116-1 -- Update to .NET SDK 6.0.116 and Runtime 6.0.16 - -* Wed Mar 15 2023 Omair Majid - 6.0.115-1 -- Update to .NET SDK 6.0.115 and Runtime 6.0.15 - -* Wed Feb 15 2023 Omair Majid - 6.0.114-1 -- Update to .NET SDK 6.0.114 and Runtime 6.0.14 - -* Thu Jan 19 2023 Fedora Release Engineering - 6.0.113-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jan 11 2023 Omair Majid - 6.0.113-1 -- Update to .NET SDK 6.0.113 and Runtime 6.0.13 - -* 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 - -* Mon Oct 31 2022 Omair Majid - 6.0.110-2 -- Set OPENSSL_ENABLE_SHA1_SIGNATURES=1 when building - -* Fri Oct 28 2022 Omair Majid - 6.0.110-1 -- Update to .NET SDK 6.0.110 and Runtime 6.0.10 - -* Wed Oct 12 2022 Omair Majid - 6.0.109-1 -- Update to .NET SDK 6.0.109 and Runtime 6.0.9 - -* Thu Sep 29 2022 Michael Cronenworth - 6.0.108-3 -- Clang 15 and s390x fixes with upstream patches - -* Mon Aug 22 2022 Omair Majid - 6.0.108-2 -- Add an RID for Fedora 38 - -* Tue Aug 09 2022 Omair Majid - 6.0.108-1 -- Update to .NET SDK 6.0.108 and Runtime 6.0.8 - -* Thu Jul 21 2022 Fedora Release Engineering - 6.0.107-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Mon Jul 18 2022 Omair Majid - 6.0.107-1 -- Update to .NET SDK 6.0.107 and Runtime 6.0.7 - -* Wed Jun 15 2022 Omair Majid - 6.0.106-1 -- Update to .NET SDK 6.0.106 and Runtime 6.0.6 - -* Wed May 11 2022 Omair Majid - 6.0.105-1 -- Update to .NET SDK 6.0.105 and Runtime 6.0.5 - -* Tue Apr 12 2022 Omair Majid - 6.0.104-1 -- Update to .NET SDK 6.0.104 and Runtime 6.0.4 - -* Thu Mar 10 2022 Omair Majid - 6.0.103-1 -- Update to .NET SDK 6.0.103 and Runtime 6.0.3 - -* Mon Feb 14 2022 Omair Majid - 6.0.102-1 -- Update to .NET SDK 6.0.102 and Runtime 6.0.2 - -* Fri Jan 28 2022 Omair Majid - 6.0.101-3 -- Update to .NET SDK 6.0.101 and Runtime 6.0.1 - -* Thu Jan 20 2022 Fedora Release Engineering - 6.0.100-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Mon Dec 20 2021 Omair Majid - 6.0.100-2 -- Disable bootstrap - -* Sun Dec 19 2021 Omair Majid - 6.0.100-1 -- Update to .NET 6 - -* Fri Oct 22 2021 Omair Majid - 6.0.0-0.7.rc2 -- Update to .NET 6 RC2 - -* Fri Oct 08 2021 Omair Majid - 6.0.0-0.6.28be3e9a006d90d8c6e87d4353b77882829df718 -- Enable building on arm64 -- Related: RHBZ#1986017 - -* Sun Oct 03 2021 Omair Majid - 6.0.0-0.5.28be3e9a006d90d8c6e87d4353b77882829df718 -- Enable building on s390x -- Related: RHBZ#1986017 - -* Sun Oct 03 2021 Omair Majid - 6.0.0-0.4.28be3e9a006d90d8c6e87d4353b77882829df718 -- Clean up tarball and add initial support for s390x -- Related: RHBZ#1986017 - -* Sun Sep 26 2021 Omair Majid - 6.0.0-0.3.28be3e9a006d90d8c6e87d4353b77882829df718 -- Update to work-in-progress RC2 release - -* Wed Aug 25 2021 Omair Majid - 6.0.0-0.2.preview6 -- Updated to build the latest source-build preview - -* Fri Jul 23 2021 Omair Majid - 6.0.0-0.1.preview6 -- Initial package for .NET 6 - -* Thu Jun 10 2021 Omair Majid - 5.0.204-1 -- Update to .NET SDK 5.0.204 and Runtime 5.0.7 - -* Wed May 12 2021 Omair Majid - 5.0.203-1 -- Update to .NET SDK 5.0.203 and Runtime 5.0.6 - -* Wed Apr 14 2021 Omair Majid - 5.0.202-1 -- Update to .NET SDK 5.0.202 and Runtime 5.0.5 - -* Tue Apr 06 2021 Omair Majid - 5.0.104-2 -- Mark files under /etc/ as config(noreplace) -- Add an rpm-inspect configuration file -- Add an rpmlintrc file -- Enable gating for release branches and ELN too - -* Tue Mar 16 2021 Omair Majid - 5.0.104-1 -- Update to .NET SDK 5.0.104 and Runtime 5.0.4 -- Drop unneeded/upstreamed patches - -* Wed Feb 17 2021 Omair Majid - 5.0.103-2 -- Add Fedora 35 RIDs - -* Thu Feb 11 2021 Omair Majid - 5.0.103-1 -- Update to .NET SDK 5.0.103 and Runtime 5.0.3 - -* Fri Jan 29 2021 Omair Majid - 5.0.102-2 -- Disable bootstrap - -* Fri Dec 18 2020 Omair Majid - 5.0.100-2 -- Update to .NET Core Runtime 5.0.0 and SDK 5.0.100 commit 9c4e5de - -* Fri Dec 04 2020 Omair Majid - 5.0.100-1 -- Update to .NET Core Runtime 5.0.0 and SDK 5.0.100 - -* Thu Dec 03 2020 Omair Majid - 5.0.100-0.4.20201202git337413b -- Update to latest 5.0 pre-GA commit - -* Tue Nov 24 2020 Omair Majid - 5.0.100-0.4.20201123gitdee899c -- Update to 5.0 pre-GA commit - -* Mon Sep 14 2020 Omair Majid - 5.0.100-0.3.preview8 -- Update to Preview 8 - -* Fri Jul 10 2020 Omair Majid - 5.0.100-0.2.preview4 -- Fix building with custom CFLAGS/CXXFLAGS/LDFLAGS -- Clean up patches - -* Mon Jul 06 2020 Omair Majid - 5.0.100-0.1.preview4 -- Initial build - -* Sat Jun 27 2020 Omair Majid - 3.1.105-4 -- Disable bootstrap - -* Fri Jun 26 2020 Omair Majid - 3.1.105-3 -- Re-bootstrap aarch64 - -* Fri Jun 19 2020 Omair Majid - 3.1.105-3 -- Disable bootstrap - -* Thu Jun 18 2020 Omair Majid - 3.1.105-1 -- Bootstrap aarch64 - -* Tue Jun 16 2020 Chris Rummel - 3.1.105-1 -- Update to .NET Core Runtime 3.1.5 and SDK 3.1.105 - -* Fri Jun 05 2020 Chris Rummel - 3.1.104-1 -- Update to .NET Core Runtime 3.1.4 and SDK 3.1.104 - -* Thu Apr 09 2020 Chris Rummel - 3.1.103-1 -- Update to .NET Core Runtime 3.1.3 and SDK 3.1.103 - -* Mon Mar 16 2020 Omair Majid - 3.1.102-1 -- Update to .NET Core Runtime 3.1.2 and SDK 3.1.102 - -* Fri Feb 28 2020 Omair Majid - 3.1.101-4 -- Disable bootstrap - -* Fri Feb 28 2020 Omair Majid - 3.1.101-3 -- Enable bootstrap -- Add Fedora 33 runtime ids - -* Thu Feb 27 2020 Omair Majid - 3.1.101-2 -- Disable bootstrap - -* Tue Jan 21 2020 Omair Majid - 3.1.101-1 -- Update to .NET Core Runtime 3.1.1 and SDK 3.1.101 - -* Thu Dec 05 2019 Omair Majid - 3.1.100-1 -- Update to .NET Core Runtime 3.1.0 and SDK 3.1.100 - -* Mon Nov 18 2019 Omair Majid - 3.1.100-0.4.preview3 -- Fix apphost permissions - -* Fri Nov 15 2019 Omair Majid - 3.1.100-0.3.preview3 -- Update to .NET Core Runtime 3.1.0-preview3.19553.2 and SDK - 3.1.100-preview3-014645 - -* Wed Nov 06 2019 Omair Majid - 3.1.100-0.2 -- Update to .NET Core 3.1 Preview 2 - -* Wed Oct 30 2019 Omair Majid - 3.1.100-0.1 -- Update to .NET Core 3.1 Preview 1 - -* Thu Oct 24 2019 Omair Majid - 3.0.100-5 -- Add cgroupv2 support to .NET Core - -* Wed Oct 16 2019 Omair Majid - 3.0.100-4 -- Include fix from coreclr for building on Fedora 32 - -* Wed Oct 16 2019 Omair Majid - 3.0.100-3 -- Harden built binaries to pass annocheck - -* Fri Oct 11 2019 Omair Majid - 3.0.100-2 -- Export DOTNET_ROOT in profile to make apphost lookup work - -* Fri Sep 27 2019 Omair Majid - 3.0.100-1 -- Update to .NET Core Runtime 3.0.0 and SDK 3.0.100 - -* Wed Sep 25 2019 Omair Majid - 3.0.100-0.18.rc1 -- Update to .NET Core Runtime 3.0.0-rc1-19456-20 and SDK 3.0.100-rc1-014190 - -* Tue Sep 17 2019 Omair Majid - 3.0.100-0.16.preview9 -- Fix files duplicated between dotnet-apphost-pack-3.0 and dotnet-targeting-pack-3.0 -- Fix dependencies between .NET SDK and the targeting packs - -* Mon Sep 16 2019 Omair Majid - 3.0.100-0.15.preview9 -- Update to .NET Core Runtime 3.0.0-preview 9 and SDK 3.0.100-preview9 - -* Mon Aug 19 2019 Omair Majid - 3.0.100-0.11.preview8 -- Update to .NET Core Runtime 3.0.0-preview8-28405-07 and SDK - 3.0.100-preview8-013656 - -* Tue Jul 30 2019 Omair Majid - 3.0.100-0.9.preview7 -- Update to .NET Core Runtime 3.0.0-preview7-27912-14 and SDK - 3.0.100-preview7-012821 - -* Fri Jul 26 2019 Omair Majid - 3.0.100-0.8.preview7 -- Update to .NET Core Runtime 3.0.0-preview7-27902-19 and SDK - 3.0.100-preview7-012802 - -* Wed Jun 26 2019 Omair Majid - 3.0.0-0.7.preview6 -- Obsolete dotnet-sdk-3.0.1xx -- Add supackages for targeting packs -- Add -fcf-protection to CFLAGS - -* Wed Jun 26 2019 Omair Majid - 3.0.0-0.6.preview6 -- Update to .NET Core Runtime 3.0.0-preview6-27804-01 and SDK 3.0.100-preview6-012264 -- Set dotnet installation location in /etc/dotnet/install_location -- Update targeting packs -- Install managed symbols -- Completely conditionalize libunwind bundling - -* Tue May 07 2019 Omair Majid - 3.0.0-0.3.preview4 -- Update to .NET Core 3.0 preview 4 - -* Tue Dec 18 2018 Omair Majid - 3.0.0-0.1.preview1 -- Update to .NET Core 3.0 preview 1 - -* Fri Dec 07 2018 Omair Majid - 2.2.100 -- Update to .NET Core 2.2.0 - -* Wed Nov 07 2018 Omair Majid - 2.2.100-0.2.preview3 -- Update to .NET Core 2.2.0-preview3 - -* Fri Nov 02 2018 Omair Majid - 2.1.403-3 -- Add host-fxr-2.1 subpackage - -* Mon Oct 15 2018 Omair Majid - 2.1.403-2 -- Disable telemetry by default -- Users have to manually export DOTNET_CLI_TELEMETRY_OPTOUT=0 to enable - -* Tue Oct 02 2018 Omair Majid - 2.1.403-1 -- Update to .NET Core Runtime 2.1.5 and SDK 2.1.403 - -* Wed Sep 26 2018 Omair Majid - 2.1.402-2 -- Add ~/.dotnet/tools to $PATH to make it easier to use dotnet tools - -* Thu Sep 13 2018 Omair Majid - 2.1.402-1 -- Update to .NET Core Runtime 2.1.4 and SDK 2.1.402 - -* Wed Sep 05 2018 Omair Majid - 2.1.401-2 -- Use distro-standard flags when building .NET Core - -* Tue Aug 21 2018 Omair Majid - 2.1.401-1 -- Update to .NET Core Runtime 2.1.3 and SDK 2.1.401 - -* Mon Aug 20 2018 Omair Majid - 2.1.302-1 -- Update to .NET Core Runtime 2.1.2 and SDK 2.1.302 - -* Fri Jul 20 2018 Omair Majid - 2.1.301-1 -- Update to .NET Core 2.1 - -* Thu May 03 2018 Omair Majid - 2.0.7-1 -- Update to .NET Core 2.0.7 - -* Wed Mar 28 2018 Omair Majid - 2.0.6-2 -- Enable bash completion for dotnet -- Remove redundant buildrequires and requires - -* Wed Mar 14 2018 Omair Majid - 2.0.6-1 -- Update to .NET Core 2.0.6 - -* Fri Feb 23 2018 Omair Majid - 2.0.5-1 -- Update to .NET Core 2.0.5 - -* Wed Jan 24 2018 Omair Majid - 2.0.3-5 -- Don't apply corefx clang warnings fix on clang < 5 - -* Fri Jan 19 2018 Omair Majid - 2.0.3-4 -- Add a test script to sanity check debug and symbol info. -- Build with clang 5.0 -- Make main package real instead of using a virtual provides (see RHBZ 1519325) - -* Wed Nov 29 2017 Omair Majid - 2.0.3-3 -- Add a Provides for 'dotnet' -- Fix conditional macro - -* Tue Nov 28 2017 Omair Majid - 2.0.3-2 -- Fix build on Fedora 27 - -* Fri Nov 17 2017 Omair Majid - 2.0.3-1 -- Update to .NET Core 2.0.3 - -* Thu Oct 19 2017 Omair Majid - 2.0.0-4 -- Add a hack to let omnisharp work - -* Wed Aug 30 2017 Omair Majid - 2.0.0-3 -- Add a patch for building coreclr and core-setup correctly on Fedora >= 27 - -* Fri Aug 25 2017 Omair Majid - 2.0.0-2 -- Move libicu/libcurl/libunwind requires to runtime package -- Make sdk depend on the exact version of the runtime package - -* Thu Aug 24 2017 Omair Majid - 2.0.0-1 -- Update to 2.0.0 final release - -* Wed Jul 26 2017 Omair Majid - 2.0.0-0.3.preview2 -- Add man pages - -* Tue Jul 25 2017 Omair Majid - 2.0.0-0.2.preview2 -- Add Requires on libicu -- Split into multiple packages -- Do not repeat first-run message - -* Fri Jul 21 2017 Omair Majid - 2.0.0-0.1.preview2 -- Update to .NET Core 2.0 Preview 2 - -* Thu Mar 16 2017 Nemanja Milošević - 1.1.0-7 -- rebuilt with latest libldb -* Wed Feb 22 2017 Nemanja Milosevic - 1.1.0-6 -- compat-openssl 1.0 for F26 for now -* Sun Feb 19 2017 Nemanja Milosevic - 1.1.0-5 -- Fix wrong commit id's -* Sat Feb 18 2017 Nemanja Milosevic - 1.1.0-4 -- Use commit id's instead of branch names -* Sat Feb 18 2017 Nemanja Milosevic - 1.1.0-3 -- Improper patch5 fix -* Sat Feb 18 2017 Nemanja Milosevic - 1.1.0-2 -- SPEC cleanup -- git removal (using all tarballs for reproducible builds) -- more reasonable versioning -* Thu Feb 09 2017 Nemanja Milosevic - 1.1.0-1 -- Fixed debuginfo going to separate package (Patch1) -- Added F25/F26 RIL and fixed the version info (Patch2) -- Added F25/F26 RIL in Microsoft.NETCore.App suported runtime graph (Patch3) -- SPEC file cleanup -* Wed Jan 11 2017 Nemanja Milosevic - 1.1.0-0 -- Initial RPM for Fedora 25/26. diff --git a/fsharp-no-apphost.patch b/fsharp-no-apphost.patch deleted file mode 100644 index 1534888..0000000 --- a/fsharp-no-apphost.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/tests/benchmarks/MicroPerf/MicroPerf.fsproj -+++ b/tests/benchmarks/MicroPerf/MicroPerf.fsproj -@@ -9,6 +9,7 @@ - $(OtherFlags) --nowarn:57 - $(OtherFlags) --langversion:preview - $(OtherFlags) --define:PREVIEW -+ false - - - - $(OtherFlags) --nowarn:1204 - - diff --git a/gating.yaml b/gating.yaml deleted file mode 100644 index 8574546..0000000 --- a/gating.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- !Policy -product_versions: - - fedora-* -decision_context: bodhi_update_push_testing -subject_type: koji_build -rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} ---- !Policy -product_versions: - - fedora-* -decision_context: bodhi_update_push_stable -subject_type: koji_build -rules: - - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional} ---- !Policy -product_versions: - - rhel-* -decision_context: osci_compose_gate -rules: - - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/msbuild-no-systemconfiguration.patch b/msbuild-no-systemconfiguration.patch deleted file mode 100644 index 537470d..0000000 --- a/msbuild-no-systemconfiguration.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/src/Build/Definition/ProjectCollection.cs -+++ b/src/Build/Definition/ProjectCollection.cs -@@ -1754,7 +1754,11 @@ namespace Microsoft.Build.Evaluation - #if FEATURE_WIN32_REGISTRY - ToolsetRegistryReader registryReader = null, - #endif -+#if FEATURE_SYSTEM_CONFIGURATION - ToolsetConfigurationReader configReader = null -+#else -+ object configReader = null -+#endif - ) - { - _toolsets = new Dictionary(StringComparer.OrdinalIgnoreCase); ---- a/src/Build/Definition/ToolsetReader.cs -+++ b/src/Build/Definition/ToolsetReader.cs -@@ -101,7 +101,11 @@ namespace Microsoft.Build.Evaluation - #if FEATURE_WIN32_REGISTRY - ToolsetRegistryReader registryReader, - #endif -+#if FEATURE_SYSTEM_CONFIGURATION - ToolsetConfigurationReader configurationReader, -+#else -+ object _configurationReader, -+#endif - PropertyDictionary environmentProperties, - PropertyDictionary globalProperties, - ToolsetDefinitionLocations locations -@@ -120,6 +124,7 @@ namespace Microsoft.Build.Evaluation - - if ((locations & ToolsetDefinitionLocations.ConfigurationFile) == ToolsetDefinitionLocations.ConfigurationFile) - { -+#if FEATURE_SYSTEM_CONFIGURATION - if (configurationReader == null) - { - configurationReader = new ToolsetConfigurationReader(environmentProperties, globalProperties); -@@ -129,6 +134,9 @@ namespace Microsoft.Build.Evaluation - defaultToolsVersionFromConfiguration = configurationReader.ReadToolsets(toolsets, globalProperties, - initialProperties, true /* accumulate properties */, out overrideTasksPathFromConfiguration, - out defaultOverrideToolsVersionFromConfiguration); -+#else -+ throw new InvalidOperationException("ToolsetDefinitionLocations.ConfigurationFile not supported"); -+#endif - } - - string defaultToolsVersionFromRegistry = null; diff --git a/msbuild-no-systemsecurity.patch b/msbuild-no-systemsecurity.patch deleted file mode 100644 index dcf6809..0000000 --- a/msbuild-no-systemsecurity.patch +++ /dev/null @@ -1,12 +0,0 @@ ---- a/src/Shared/ExceptionHandling.cs -+++ b/src/Shared/ExceptionHandling.cs -@@ -153,7 +153,9 @@ namespace Microsoft.Build.Shared - internal static bool IsXmlException(Exception e) - { - return e is XmlException -+#if FEATURE_SECURITY_PERMISSIONS - || e is XmlSyntaxException -+#endif - || e is XmlSchemaException - || e is UriFormatException; // XmlTextReader for example uses this under the covers - } diff --git a/roslyn-57003-mono-named-mutex.patch b/roslyn-57003-mono-named-mutex.patch deleted file mode 100644 index c264bff..0000000 --- a/roslyn-57003-mono-named-mutex.patch +++ /dev/null @@ -1,453 +0,0 @@ -Index: tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Core/Portable/InternalUtilities/PlatformInformation.cs -=================================================================== ---- tarball.6.0.1-rc2-6.0.100-rc2.orig/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Core/Portable/InternalUtilities/PlatformInformation.cs -+++ tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Core/Portable/InternalUtilities/PlatformInformation.cs -@@ -31,5 +31,24 @@ namespace Roslyn.Utilities - } - } - } -+ /// -+ /// Are we running on .NET 5 or later using the Mono runtime? -+ /// Will also return true when running on Mono itself; if necessary -+ /// we can use IsRunningOnMono to distinguish. -+ /// -+ public static bool IsUsingMonoRuntime -+ { -+ get -+ { -+ try -+ { -+ return !(Type.GetType("Mono.RuntimeStructs", throwOnError: false) is null); -+ } -+ catch -+ { -+ return false; -+ } -+ } -+ } - } - } -Index: tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/BuildClientTests.cs -=================================================================== ---- tarball.6.0.1-rc2-6.0.100-rc2.orig/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/BuildClientTests.cs -+++ tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/BuildClientTests.cs -@@ -79,7 +79,7 @@ namespace Microsoft.CodeAnalysis.Compile - // to connect. When it fails it should fall back to in-proc - // compilation. - bool holdsMutex; -- using (var serverMutex = new Mutex(initiallyOwned: true, -+ using (var serverMutex = BuildServerConnection.OpenOrCreateMutex( - name: BuildServerConnection.GetServerMutexName(_pipeName), - createdNew: out holdsMutex)) - { -Index: tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/CompilerServerApiTest.cs -=================================================================== ---- tarball.6.0.1-rc2-6.0.100-rc2.orig/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/CompilerServerApiTest.cs -+++ tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/CompilerServerApiTest.cs -@@ -103,7 +103,7 @@ class Hello - var mutexName = BuildServerConnection.GetServerMutexName(pipeName); - - bool holdsMutex; -- using (var mutex = new Mutex(initiallyOwned: true, -+ using (var mutex = BuildServerConnection.OpenOrCreateMutex( - name: mutexName, - createdNew: out holdsMutex)) - { -@@ -119,7 +119,7 @@ class Hello - } - finally - { -- mutex.ReleaseMutex(); -+ mutex.Dispose(); - } - } - } -Index: tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/CompilerServerTests.cs -=================================================================== ---- tarball.6.0.1-rc2-6.0.100-rc2.orig/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/CompilerServerTests.cs -+++ tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/CompilerServerTests.cs -@@ -304,7 +304,7 @@ End Module") - var newTempDir = _tempDirectory.CreateDirectory(new string('a', 100 - _tempDirectory.Path.Length)); - await ApplyEnvironmentVariables( - new[] { new KeyValuePair("TMPDIR", newTempDir.Path) }, -- async () => -+ async () => await Task.Run(async () => - { - using var serverData = await ServerUtil.CreateServer(_logger); - var result = RunCommandLineCompiler( -@@ -317,7 +317,7 @@ End Module") - - var listener = await serverData.Complete(); - Assert.Equal(CompletionData.RequestCompleted, listener.CompletionDataList.Single()); -- }); -+ })); - } - - [Fact] -Index: tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/VBCSCompilerServerTests.cs -=================================================================== ---- tarball.6.0.1-rc2-6.0.100-rc2.orig/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/VBCSCompilerServerTests.cs -+++ tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Server/VBCSCompilerTests/VBCSCompilerServerTests.cs -@@ -101,7 +101,7 @@ namespace Microsoft.CodeAnalysis.Compile - - var thread = new Thread(() => - { -- using (var mutex = new Mutex(initiallyOwned: true, name: mutexName, createdNew: out created)) -+ using (var mutex = BuildServerConnection.OpenOrCreateMutex(name: mutexName, createdNew: out created)) - using (var stream = NamedPipeUtil.CreateServer(pipeName)) - { - readyMre.Set(); -@@ -112,7 +112,7 @@ namespace Microsoft.CodeAnalysis.Compile - stream.Close(); - - doneMre.WaitOne(); -- mutex.ReleaseMutex(); -+ mutex.Dispose(); - } - }); - -@@ -153,7 +153,7 @@ namespace Microsoft.CodeAnalysis.Compile - { - using (var stream = NamedPipeUtil.CreateServer(pipeName)) - { -- var mutex = new Mutex(initiallyOwned: true, name: mutexName, createdNew: out created); -+ var mutex = BuildServerConnection.OpenOrCreateMutex(name: mutexName, createdNew: out created); - readyMre.Set(); - - stream.WaitForConnection(); -@@ -161,7 +161,6 @@ namespace Microsoft.CodeAnalysis.Compile - - // Client is waiting for a response. Close the mutex now. Then close the connection - // so the client gets an error. -- mutex.ReleaseMutex(); - mutex.Dispose(); - stream.Close(); - -Index: tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Shared/BuildServerConnection.cs -=================================================================== ---- tarball.6.0.1-rc2-6.0.100-rc2.orig/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Shared/BuildServerConnection.cs -+++ tarball.6.0.1-rc2-6.0.100-rc2/src/roslyn.8e1779e16298415843e85029d8b52a1ae9bb4c30/src/Compilers/Shared/BuildServerConnection.cs -@@ -543,19 +543,10 @@ namespace Microsoft.CodeAnalysis.Command - { - try - { -- if (PlatformInformation.IsRunningOnMono) -+ if (PlatformInformation.IsUsingMonoRuntime) - { -- IServerMutex? mutex = null; -- bool createdNew = false; -- try -- { -- mutex = new ServerFileMutexPair(mutexName, false, out createdNew); -- return !createdNew; -- } -- finally -- { -- mutex?.Dispose(); -- } -+ using var mutex = new ServerFileMutex(mutexName); -+ return !mutex.CouldLock(); - } - else - { -@@ -572,9 +563,11 @@ namespace Microsoft.CodeAnalysis.Command - - internal static IServerMutex OpenOrCreateMutex(string name, out bool createdNew) - { -- if (PlatformInformation.IsRunningOnMono) -+ if (PlatformInformation.IsUsingMonoRuntime) - { -- return new ServerFileMutexPair(name, initiallyOwned: true, out createdNew); -+ var mutex = new ServerFileMutex(name); -+ createdNew = mutex.TryLock(0); -+ return mutex; - } - else - { -@@ -648,19 +641,22 @@ namespace Microsoft.CodeAnalysis.Command - } - - /// -- /// An interprocess mutex abstraction based on OS advisory locking (FileStream.Lock/Unlock). -+ /// An interprocess mutex abstraction based on file sharing permission (FileShare.None). - /// If multiple processes running as the same user create FileMutex instances with the same name, - /// those instances will all point to the same file somewhere in a selected temporary directory. -- /// The TryLock method can be used to attempt to acquire the mutex, with Unlock or Dispose used to release. -+ /// The TryLock method can be used to attempt to acquire the mutex, with Dispose used to release. -+ /// The CouldLock method can be used to check whether an attempt to acquire the mutex would have -+ /// succeeded at the current time, without actually acquiring it. - /// Unlike Win32 named mutexes, there is no mechanism for detecting an abandoned mutex. The file - /// will simply revert to being unlocked but remain where it is. - /// -- internal sealed class FileMutex : IDisposable -+ internal sealed class ServerFileMutex : IServerMutex - { -- public readonly FileStream Stream; -+ public FileStream? Stream; - public readonly string FilePath; -+ public readonly string GuardPath; - -- public bool IsLocked { get; private set; } -+ public bool IsDisposed { get; private set; } - - internal static string GetMutexDirectory() - { -@@ -670,61 +666,176 @@ namespace Microsoft.CodeAnalysis.Command - return result; - } - -- public FileMutex(string name) -+ public ServerFileMutex(string name) - { -- FilePath = Path.Combine(GetMutexDirectory(), name); -- Stream = new FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); -+ var mutexDirectory = GetMutexDirectory(); -+ FilePath = Path.Combine(mutexDirectory, name); -+ GuardPath = Path.Combine(mutexDirectory, ".guard"); - } - -- public bool TryLock(int timeoutMs) -+ /// -+ /// Acquire the guard by opening the guard file with FileShare.None. The guard must only ever -+ /// be held for very brief amounts of time, so we can simply spin until it is acquired. The -+ /// guard must be released by disposing the FileStream returned from this routine. Note the -+ /// guard file is never deleted; this is a leak, but only of a single file. -+ /// -+ internal FileStream LockGuard() - { -- if (IsLocked) -- throw new InvalidOperationException("Lock already held"); -- -- var sw = Stopwatch.StartNew(); -- do -+ // We should be able to acquire the guard quickly. Limit the number of retries anyway -+ // by some arbitrary bound to avoid getting hung up in a possibly infinite loop. -+ for (var i = 0; i < 100; i++) - { - try - { -- Stream.Lock(0, 0); -- IsLocked = true; -- return true; -+ return new FileStream(GuardPath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); - } - catch (IOException) - { -- // Lock currently held by someone else. -+ // Guard currently held by someone else. - // We want to sleep for a short period of time to ensure that other processes - // have an opportunity to finish their work and relinquish the lock. - // Spinning here (via Yield) would work but risks creating a priority - // inversion if the lock is held by a lower-priority process. - Thread.Sleep(1); - } -+ } -+ // Handle unexpected failure to acquire guard as error. -+ throw new InvalidOperationException("Unable to acquire guard"); -+ } -+ -+ /// -+ /// Attempt to acquire the lock by opening the lock file with FileShare.None. Sets "Stream" -+ /// and returns true if successful, returns false if the lock is already held by another -+ /// thread or process. Guard must be held when calling this routine. -+ /// -+ internal bool TryLockFile() -+ { -+ Debug.Assert(Stream is null); -+ FileStream? stream = null; -+ try -+ { -+ stream = new FileStream(FilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None); -+ // On some targets, the file locking used to implement FileShare.None may not be -+ // atomic with opening/creating the file. This creates a race window when another -+ // thread holds the lock and is just about to unlock: we may be able to open the -+ // file here, then the other thread unlocks and deletes the file, and then we -+ // acquire the lock on our file handle - but the actual file is already deleted. -+ // To close this race, we verify that the file does in fact still exist now that -+ // we have successfull acquired the locked FileStream. (Note that this check is -+ // safe because we cannot race with an other attempt to create the file since we -+ // hold the guard, and after the FileStream constructor returned we can no race -+ // with file deletion because we hold the lock.) -+ if (!File.Exists(FilePath)) -+ { -+ // To simplify the logic, we treat this case as "unable to acquire the lock" -+ // because it we caught another process while it owned the lock and was just -+ // giving it up. If the caller retries, we'll likely acquire the lock then. -+ stream.Dispose(); -+ return false; -+ } -+ } -+ catch (Exception) -+ { -+ stream?.Dispose(); -+ return false; -+ } -+ Stream = stream; -+ return true; -+ } -+ -+ /// -+ /// Release the lock by deleting the lock file and disposing "Stream". -+ /// -+ internal void UnlockFile() -+ { -+ Debug.Assert(Stream is not null); -+ try -+ { -+ // Delete the lock file while the stream is not yet disposed -+ // and we therefore still hold the FileShare.None exclusion. -+ // There may still be a race with another thread attempting a -+ // TryLockFile in parallel, but that is safely handled there. -+ File.Delete(FilePath); -+ } -+ finally -+ { -+ Stream.Dispose(); -+ Stream = null; -+ } -+ } -+ -+ public bool TryLock(int timeoutMs) -+ { -+ if (IsDisposed) -+ throw new ObjectDisposedException("Mutex"); -+ if (Stream is not null) -+ throw new InvalidOperationException("Lock already held"); -+ -+ var sw = Stopwatch.StartNew(); -+ do -+ { -+ try -+ { -+ // Attempt to acquire lock while holding guard. -+ using var guard = LockGuard(); -+ if (TryLockFile()) -+ return true; -+ } - catch (Exception) - { -- // Something else went wrong. - return false; - } -+ -+ // See comment in LockGuard. -+ Thread.Sleep(1); - } while (sw.ElapsedMilliseconds < timeoutMs); - - return false; - } - -- public void Unlock() -+ public bool CouldLock() - { -- if (!IsLocked) -- return; -- Stream.Unlock(0, 0); -- IsLocked = false; -+ if (IsDisposed) -+ return false; -+ if (Stream is not null) -+ return false; -+ -+ try -+ { -+ // Attempt to acquire lock while holding guard, and if successful -+ // immediately unlock again while still holding guard. This ensures -+ // no other thread will spuriously observe the lock as held due to -+ // the lock attempt here. -+ using var guard = LockGuard(); -+ if (TryLockFile()) -+ { -+ UnlockFile(); -+ return true; -+ } -+ } -+ catch (Exception) -+ { -+ return false; -+ } -+ -+ return false; - } - - public void Dispose() - { -- var wasLocked = IsLocked; -- if (wasLocked) -- Unlock(); -- Stream.Dispose(); -- // We do not delete the lock file here because there is no reliable way to perform a -- // 'delete if no one has the file open' operation atomically on *nix. This is a leak. -+ if (IsDisposed) -+ return; -+ IsDisposed = true; -+ if (Stream is not null) -+ { -+ try -+ { -+ UnlockFile(); -+ } -+ catch (Exception) -+ { -+ } -+ } - } - } - -@@ -792,56 +903,4 @@ namespace Microsoft.CodeAnalysis.Command - } - } - } -- -- /// -- /// Approximates a named mutex with 'locked', 'unlocked' and 'abandoned' states. -- /// There is no reliable way to detect whether a mutex has been abandoned on some target platforms, -- /// so we use the AliveMutex to manually track whether the creator of a mutex is still running, -- /// while the HeldMutex represents the actual lock state of the mutex. -- /// -- internal sealed class ServerFileMutexPair : IServerMutex -- { -- public readonly FileMutex AliveMutex; -- public readonly FileMutex HeldMutex; -- -- public bool IsDisposed { get; private set; } -- -- public ServerFileMutexPair(string mutexName, bool initiallyOwned, out bool createdNew) -- { -- AliveMutex = new FileMutex(mutexName + "-alive"); -- HeldMutex = new FileMutex(mutexName + "-held"); -- createdNew = AliveMutex.TryLock(0); -- if (initiallyOwned && createdNew) -- { -- if (!TryLock(0)) -- throw new Exception("Failed to lock mutex after creating it"); -- } -- } -- -- public bool TryLock(int timeoutMs) -- { -- if (IsDisposed) -- throw new ObjectDisposedException("Mutex"); -- return HeldMutex.TryLock(timeoutMs); -- } -- -- public void Dispose() -- { -- if (IsDisposed) -- return; -- IsDisposed = true; -- -- try -- { -- HeldMutex.Unlock(); -- AliveMutex.Unlock(); -- } -- finally -- { -- AliveMutex.Dispose(); -- HeldMutex.Dispose(); -- } -- } -- } -- - } diff --git a/roslyn-analyzers-no-apphost.patch b/roslyn-analyzers-no-apphost.patch deleted file mode 100644 index c1fc3dd..0000000 --- a/roslyn-analyzers-no-apphost.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/Tools/ReleaseNotesUtil/ReleaseNotesUtil.csproj -+++ b/src/Tools/ReleaseNotesUtil/ReleaseNotesUtil.csproj -@@ -4,6 +4,7 @@ - netcoreapp3.1 - true - true -+ false - - - diff --git a/roslyn-no-apphost.patch b/roslyn-no-apphost.patch deleted file mode 100644 index f1767c7..0000000 --- a/roslyn-no-apphost.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/src/Workspaces/Remote/ServiceHub.CoreComponents/Microsoft.CodeAnalysis.Remote.ServiceHub.CoreComponents.csproj -+++ b/src/Workspaces/Remote/ServiceHub.CoreComponents/Microsoft.CodeAnalysis.Remote.ServiceHub.CoreComponents.csproj -@@ -5,6 +5,7 @@ - Exe - netcoreapp3.1 - -+ false - false - - diff --git a/rpminspect.yaml b/rpminspect.yaml deleted file mode 100644 index d0cd46b..0000000 --- a/rpminspect.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -inspections: - # We ship an empty dotnet package that installs the latest SDK, but - # also a newer SDK when we have that - emptyrpm: off - # We patch upstream a lot, no need to reject patches - patches: off -badfuncs: - ignore: - # TODO This removes all badfuncs checks on libcoreclr! Use - # https://github.com/rpminspect/rpminspect/issues/573 to filter - # out the specific issues when that's available - - # inet_addr: mono/s390x uses inet_addr for some internal - # debugging. See runtime/src/mono/mono/mini/cfgdump.c - - /usr/lib*/dotnet/shared/Microsoft.NETCore.App/6.0.*/libcoreclr.so -runpath: - # Upstream explicitly sets $ORIGIN/netcoredeps as an RPATH - # See https://github.com/dotnet/core/blob/main/Documentation/self-contained-linux-apps.md - allowed_origin_paths: - - /netcoredeps diff --git a/runtime-arm64-lld-fix.patch b/runtime-arm64-lld-fix.patch deleted file mode 100644 index db6f520..0000000 --- a/runtime-arm64-lld-fix.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/eng/native/init-compiler.sh b/eng/native/init-compiler.sh -index 567d18da474..927b3071e92 100755 ---- a/eng/native/init-compiler.sh -+++ b/eng/native/init-compiler.sh -@@ -108,11 +108,8 @@ - fi - - if [[ "$compiler" == "clang" ]]; then -- if command -v "lld$desired_version" > /dev/null; then -- # Only lld version >= 9 can be considered stable -- if [[ "$majorVersion" -ge 9 ]]; then -- LDFLAGS="-fuse-ld=lld" -- fi -+ if "$CC" -fuse-ld=lld -Wl,--version >/dev/null 2>&1; then -+ LDFLAGS="-fuse-ld=lld" - fi - fi - diff --git a/runtime-fedora-40-rid.patch b/runtime-fedora-40-rid.patch deleted file mode 100644 index c80fc44..0000000 --- a/runtime-fedora-40-rid.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 8bafc61a5e0b172e030b3c354ee7a9dc1d113a3a Mon Sep 17 00:00:00 2001 -From: Omair Majid -Date: Wed, 9 Aug 2023 16:43:30 -0400 -Subject: [PATCH] Add Fedora 40 RID - ---- - .../src/runtime.compatibility.json | 32 +++++++++++++++++++ - .../src/runtime.json | 17 ++++++++++ - .../src/runtimeGroups.props | 2 +- - 3 files changed, 50 insertions(+), 1 deletion(-) - -diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json -index bf9dcefffef..79e07f75eed 100644 ---- a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json -+++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json -@@ -4432,6 +4432,38 @@ - "any", - "base" - ], -+ "fedora.40": [ -+ "fedora.40", -+ "fedora", -+ "linux", -+ "unix", -+ "any", -+ "base" -+ ], -+ "fedora.40-arm64": [ -+ "fedora.40-arm64", -+ "fedora.40", -+ "fedora-arm64", -+ "fedora", -+ "linux-arm64", -+ "linux", -+ "unix-arm64", -+ "unix", -+ "any", -+ "base" -+ ], -+ "fedora.40-x64": [ -+ "fedora.40-x64", -+ "fedora.40", -+ "fedora-x64", -+ "fedora", -+ "linux-x64", -+ "linux", -+ "unix-x64", -+ "unix", -+ "any", -+ "base" -+ ], - "freebsd": [ - "freebsd", - "unix", -diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json -index 4bc419bbfde..8fbe76a76b4 100644 ---- a/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json -+++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtime.json -@@ -1498,6 +1498,23 @@ - "fedora-x64" - ] - }, -+ "fedora.40": { -+ "#import": [ -+ "fedora" -+ ] -+ }, -+ "fedora.40-arm64": { -+ "#import": [ -+ "fedora.40", -+ "fedora-arm64" -+ ] -+ }, -+ "fedora.40-x64": { -+ "#import": [ -+ "fedora.40", -+ "fedora-x64" -+ ] -+ }, - "freebsd": { - "#import": [ - "unix" -diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props b/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props -index 5fe956f0be5..e596bf65aae 100644 ---- a/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props -+++ b/src/libraries/Microsoft.NETCore.Platforms/src/runtimeGroups.props -@@ -71,7 +71,7 @@ - - linux - x64;arm64 -- 23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39 -+ 23;24;25;26;27;28;29;30;31;32;33;34;35;36;37;38;39;40 - false - - --- -2.41.0 - diff --git a/runtime-mono-remove-ilstrip.patch b/runtime-mono-remove-ilstrip.patch deleted file mode 100644 index 9a711f8..0000000 --- a/runtime-mono-remove-ilstrip.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff --git a/src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Microsoft.NET.Runtime.MonoTargets.Sdk.pkgproj b/src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Microsoft.NET.Runtime.MonoTargets.Sdk.pkgproj -index 724b704f864..3dabdc81dae 100644 ---- a/src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Microsoft.NET.Runtime.MonoTargets.Sdk.pkgproj -+++ b/src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Microsoft.NET.Runtime.MonoTargets.Sdk.pkgproj -@@ -6,7 +6,7 @@ - - - -- -+ - - - -@@ -15,7 +15,7 @@ - - - -- -+ - - - -diff --git a/src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Sdk/Sdk.props b/src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Sdk/Sdk.props -index 8a7ede79242..cfd515eeca9 100644 ---- a/src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Sdk/Sdk.props -+++ b/src/mono/nuget/Microsoft.NET.Runtime.MonoTargets.Sdk/Sdk/Sdk.props -@@ -1,5 +1,5 @@ - -- -+ - - - diff --git a/sdk-telemetry-optout.patch b/sdk-telemetry-optout.patch deleted file mode 100644 index d6e6464..0000000 --- a/sdk-telemetry-optout.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/src/Cli/dotnet/Program.cs b/src/Cli/dotnet/Program.cs -index de1ebb9e6..6bbf479de 100644 ---- a/src/Cli/dotnet/Program.cs -+++ b/src/Cli/dotnet/Program.cs -@@ -28,6 +28,13 @@ public class Program - - public static int Main(string[] args) - { -+ // opt out of telemetry by default if the env var is unset -+ string telemetryValue = Environment.GetEnvironmentVariable("DOTNET_CLI_TELEMETRY_OPTOUT"); -+ if (String.IsNullOrEmpty(telemetryValue)) -+ { -+ Environment.SetEnvironmentVariable("DOTNET_CLI_TELEMETRY_OPTOUT", "1"); -+ } -+ - DebugHelper.HandleDebugSwitch(ref args); - - // Capture the current timestamp to calculate the host overhead. diff --git a/sources b/sources deleted file mode 100644 index b1ee76b..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -SHA512 (dotnet-v6.0.126.tar.gz) = 1bdbf63069f62ab4b243be45b00724f79af99b4e97719ec45d0a5797bdaacebd40d311af34f22d3cf047de93087ca9b888d8fc57b84833ee4d9b92716ee34d29 diff --git a/tests/.fmf/version b/tests/.fmf/version deleted file mode 100644 index 0cfbf08..0000000 --- a/tests/.fmf/version +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/tests/provision.fmf b/tests/provision.fmf deleted file mode 100644 index 87b3807..0000000 --- a/tests/provision.fmf +++ /dev/null @@ -1,6 +0,0 @@ ---- - -standard-inventory-qcow2: - qemu: - m: 5G - diff --git a/tests/tests.yml b/tests/tests.yml deleted file mode 100644 index d281142..0000000 --- a/tests/tests.yml +++ /dev/null @@ -1,47 +0,0 @@ ---- -- hosts: localhost - roles: - - role: standard-test-basic - tags: - - classic - - container - - atomic - repositories: - - repo: "https://github.com/redhat-developer/dotnet-regular-tests.git" - dest: "dotnet-regular-tests" - version: "main" - tests: - - download_test_runner: - dir: ./ - run: wget --no-verbose https://github.com/redhat-developer/dotnet-bunny/releases/latest/download/turkey.tar.gz && tar xf turkey.tar.gz - - print_test_runner_version: - dir: ./ - run: dotnet turkey/Turkey.dll --version - - regular: - dir: ./ - run: dotnet turkey/Turkey.dll -l={{ remote_artifacts }} dotnet-regular-tests --timeout=1500 - required_packages: - - aspnetcore-runtime-6.0 - - babeltrace - - bash-completion - - bc - - binutils - - dotnet-runtime-6.0 - - dotnet-sdk-6.0 - - expect - - file - - findutils - - gcc-c++ - - git - - jq - - lldb - - lttng-tools - - npm - - postgresql-odbc - - postgresql-server - - procps-ng - - python3 - - strace - - util-linux - - wget - - which diff --git a/update-release b/update-release deleted file mode 100755 index 5725315..0000000 --- a/update-release +++ /dev/null @@ -1,139 +0,0 @@ -#!/bin/bash - -# Usage: -# ./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] [--release-json release-json] [--larger-rpm-release]" -} - -user_provided_tarball_name="" - -rpm_release=1 -positional_args=() -bug_ids=() -while [[ "$#" -gt 0 ]]; do - arg="$1" - case "${arg}" in - --bug) - bug_ids+=("$2") - shift; - shift; - ;; - -h|--help) - print_usage - exit 0 - ;; - --release-json) - release_json="$2" - shift; - shift; - ;; - --tarball) - user_provided_tarball_name="$2" - shift; - shift; - ;; - --larger-rpm-release) - rpm_release="2" - shift; - ;; - *) - positional_args+=("$1") - shift - ;; - esac -done - -spec_files=( ./*.spec ) -spec_file="${spec_files[0]}" - -sdk_version=${positional_args[0]:-} -if [[ -z ${sdk_version} ]]; then - echo "error: missing sdk version" - exit 1 -fi - -runtime_version=${positional_args[1]:-} -if [[ -z ${runtime_version} ]]; then - echo "error: missing runtime version" - exit 1 -fi - -host_version="$runtime_version" - -if [[ "$runtime_version" == "6.0"* ]] || [[ "$runtime_version" == "7.0"* ]] ; then - tag=v${sdk_version} -else - tag=v${runtime_version} -fi - -set -x - -sed -i -E "s|^%global host_version [[:digit:]]\.[[:digit:]]\.[[:digit:]]+|%global host_version ${host_version}|" "$spec_file" -sed -i -E "s|^%global runtime_version [[:digit:]]\.[[:digit:]]\.[[:digit:]]+|%global runtime_version ${runtime_version}|" "$spec_file" -sed -i -E "s|^%global sdk_version [[:digit:]]\.[[:digit:]]\.[[:digit:]][[:digit:]][[:digit:]]|%global sdk_version ${sdk_version}|" "$spec_file" - - -if [[ "$runtime_version" == "6.0"* ]] || [[ "$runtime_version" == "7.0"* ]] ; then - if [[ -f "dotnet-${tag}.tar.gz" ]]; then - echo "dotnet-${tag}.tar.gz already exists, not rebuilding tarball" - else - 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 - cp -a "$user_provided_tarball_name" "dotnet-${tag}-original.tar.gz" - elif [[ -f "dotnet-${sdk_version}-SDK.tar.gz" ]]; then - cp -a "dotnet-${sdk_version}-SDK.tar.gz" "dotnet-${tag}-original.tar.gz" - elif [[ -f "dotnet-${sdk_version}.tar.gz" ]]; then - cp -a "dotnet-${sdk_version}.tar.gz" "dotnet-${tag}-original.tar.gz" - elif [[ -f "dotnet-${runtime_version}.tar.gz" ]]; then - cp -a "dotnet-${runtime_version}.tar.gz" "dotnet-${tag}-original.tar.gz" - fi - fi - - ./build-dotnet-tarball "${tag}" - fi -else - if [[ -f "dotnet-${tag}.tar.gz" ]]; then - echo "dotnet-${tag}.tar.gz already exists, not rebuilding tarball" - elif [[ -n ${user_provided_tarball_name} ]]; then - cp -a "${user_provided_tarball_name}" "dotnet-${tag}.tar.gz" - cp -a "${release_json}" release.json - else - rm -f release.json - spectool -g "$spec_file" - fi -fi - -comment="Update to .NET SDK ${sdk_version} and Runtime ${runtime_version}" -commit_message="$comment -" -for bug_id in "${bug_ids[@]}"; do - if [[ "$bug_id" =~ ^[[:digit:]]+$ ]]; then - comment="$comment -- Resolves: RHBZ#$bug_id" - commit_message="$commit_message -Resolves: RHBZ#$bug_id" - else - comment="$comment -- Resolves: $bug_id" - commit_message="$commit_message -Resolves: $bug_id" - fi -done - -echo "$commit_message" > git-commit-message - -rpmdev-bumpspec --comment="$comment" "$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:]]+$/-'"$rpm_release"'/' "$spec_file"