Compare commits

..

2 Commits

13 changed files with 35 additions and 628 deletions

View File

@ -1 +0,0 @@
1

55
.gitignore vendored
View File

@ -1,54 +1 @@
/dotnet-prebuilts-9.0.100-preview.7.24380.1-ppc64le.tar.gz dotnet-9.0.2.tar.gz
/dotnet-prebuilts-9.0.100-preview.7.24380.1-s390x.tar.gz
/dotnet-sdk-9.0.100-preview.7.24380.2-linux-arm64.tar.gz
/dotnet-v9.0.0-preview.7.24405.7-x64-bootstrap.tar.gz
/dotnet-9.0.0-preview.7.24405.7.tar.gz
/dotnet-9.0.0-preview.7.24405.7.tar.gz.sig
/dotnet-9.0.0-rc.1.24431.7.tar.gz
/dotnet-9.0.0-rc.1.24431.7.tar.gz.sig
/dotnet-9.0.0-rc.2.24473.5.tar.gz
/dotnet-9.0.0-rc.2.24473.5.tar.gz.sig
/dotnet-v9.0.0-rc.2.24473.5-x64-bootstrap.tar.gz
/dotnet-sdk-9.0.100-rc.1.24452.12-linux-arm64.tar.gz
/dotnet-prebuilts-9.0.100-rc.1.24452.1-ppc64le.tar.gz
/dotnet-prebuilts-9.0.100-rc.1.24452.1-s390x.tar.gz
/dotnet-9.0.1.tar.gz
/dotnet-9.0.1.tar.gz.sig
/dotnet-v9.0.1-x64-bootstrap.tar.gz
/dotnet-sdk-9.0.101-linux-arm64.tar.gz
/dotnet-prebuilts-9.0.101-ppc64le.tar.gz
/dotnet-prebuilts-9.0.101-s390x.tar.gz
/dotnet-9.0.2.tar.gz
/dotnet-9.0.2.tar.gz.sig
/dotnet-9.0.3.tar.gz
/dotnet-9.0.3.tar.gz.sig
/dotnet-9.0.4.tar.gz
/dotnet-9.0.4.tar.gz.sig
/dotnet-9.0.5.tar.gz
/dotnet-9.0.5.tar.gz.sig
/dotnet-9.0.6.tar.gz
/dotnet-9.0.6.tar.gz.sig
/dotnet-9.0.7.tar.gz
/dotnet-9.0.7.tar.gz.sig
/dotnet-9.0.109.tar.gz
/dotnet-9.0.109.tar.gz.sig
/dotnet-9.0.110.tar.gz
/dotnet-9.0.110.tar.gz.sig
/dotnet-9.0.111.tar.gz
/dotnet-9.0.111.tar.gz.sig
/dotnet-9.0.112.tar.gz
/dotnet-9.0.112.tar.gz.sig
/dotnet-9.0.113.tar.gz
/dotnet-9.0.113.tar.gz.sig
/dotnet-9.0.114.tar.gz
/dotnet-9.0.114.tar.gz.sig
/dotnet-9.0.115.tar.gz
/dotnet-9.0.115.tar.gz.sig
/dotnet-9.0.116.tar.gz
/dotnet-9.0.116.tar.gz.sig
/dotnet-9.0.117.tar.gz
/dotnet-9.0.117.tar.gz.sig
/dotnet-9.0.118.tar.gz
/dotnet-9.0.118.tar.gz.sig
/dotnet-9.0.119.tar.gz
/dotnet-9.0.119.tar.gz.sig

View File

@ -1,74 +0,0 @@
# dotnet9.0
This is the .NET 9.0 package for RHEL.
Please report any issues [using Jira](https://issues.redhat.com/).
# 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
1. Fork the repo.
2. Checkout the forked repository.
- `git clone git@gitlab.com:$USER/centos_rpms_dotnet9.0.git dotnet9.0`
- `cd dotnet9.0`
3. Make your changes. Don't forget to add a changelog.
If you are updating to a new upstream release: Get the new upstream source
tarball and the detached signature. Update the versions in the spec file.
Add a changelog. This is generally automated by the following.
- `./update-release <sdk-version> <runtime-version>`
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.
- `centpkg 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.
- `centpkg scratch-build --srpm`
7. If this is a new release, upload the source archive and detached signature to
the look-aside cache.
- `centpkg new-sources dotnet-source-tarball.tar.gz dotnet-source-tarball.tar.gz.sig`
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, merge the
pull request and do a real build.
- `centpkg build`
# Testing
This package uses CI tests as defined in `tests/ci.yml`. You can run them using
[tmt](https://tmt.readthedocs.io/en/stable/overview.html). Creating a
pull-request or running an official 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/

View File

@ -1,171 +0,0 @@
#!/bin/bash
# Usage:
# build-dotnet-bootstrap-tarball <tag-or-commit-from-dotnet>
#
# Creates a source archive suitable for bootstrapping from a tag (or commit) at
# https://github.com/dotnet/dotnet
#
# Clone dotnet/dotnet, check out the tag, and build a source-tarball.
# Can also use a full git commit identifier instead of tag (not an
# abbreviated 8 character commit identifier though).
set -euo pipefail
IFS=$'\n\t'
function print_usage {
echo "Usage:"
echo "$0 <tag-from-dotnet>"
echo
echo "Creates a $arch bootstrap source archive from a tag at https://github.com/dotnet/dotnet"
}
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*
rm -rf ~/.npm/
}
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"
["i386"]="x86"
["i686"]="x86"
["ppc64le"]="ppc64le"
["s390x"]="s390x"
["x86_64"]="x64"
)
arch=${archmap["$(uname -m)"]}
positional_args=()
while [[ "$#" -gt 0 ]]; do
arg="${1}"
case "${arg}" in
-h|--help)
print_usage
exit 0
;;
*)
positional_args+=("$1")
shift
;;
esac
done
check_bootstrap_environment
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}"
unmodified_tarball_name="${unmodified_tarball_name}-${arch}-bootstrap"
tarball_name="${tarball_name}-${arch}-bootstrap"
tarball_suffix=.tar.gz
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
if [[ $tag =~ ^[0-9a-fA-F]+$ ]]; then
if [ ! -f $tag.zip ]; then
wget https://github.com/dotnet/dotnet/archive/$tag.zip
fi
dir=$(mktemp -d -p $(pwd))
pushd $dir
unzip -q ../$tag.zip
if [[ $(ls -1q | wc -l) -gt 3 ]]; then
echo "error: tarball doesn't have a single main directory"
exit 1
fi
tar czf ../${unmodified_tarball_name}.tar.gz dotnet-$tag
popd
else
wget https://github.com/dotnet/dotnet/archive/refs/tags/${tag}.tar.gz
mv "${tag}.tar.gz" "${unmodified_tarball_name}.tar.gz"
fi
fi
tar tf "${unmodified_tarball_name}".tar.gz > .tarball_file_list
extracted_tarball_root=$(head -1 .tarball_file_list | cut -d/ -f 1)
if [[ "$extracted_tarball_root" == "."* ]]; then
echo "error: can't find main directory in the dotnet tarball"
exit 1
fi
if [[ $(grep -cv "^${extracted_tarball_root}/" .tarball_file_list) -gt 0 ]]; then
echo "error: tarball doesn't have a single main directory"
exit 1
fi
rm .tarball_file_list
rm -rf "${tarball_name}"
rm -rf "${extracted_tarball_root}"
tar xf "${unmodified_tarball_name}.tar.gz"
mv "${extracted_tarball_root}" "${tarball_name}"
pushd "${tarball_name}"
./prep-source-build.sh --bootstrap
# Remove files with funny licenses and crypto implementations and
# other not-very-useful artifacts. We MUST NOT ship any files that
# have unapproved licenses and unexpected cryptographic
# implementations.
#
# We use rm -r (no -f) to make sure the operation fails if the files
# are not at the expected locations. If the files are not at the
# expected location, we need to find the new location of the files and
# delete them, or verify that upstream has already removed the files.
# rm -r $FILE_TO_REMOVE
popd
echo "Bootstrap .NET SDK: $(jq .tools.dotnet "${tarball_name}"/global.json)"
time tar -czf "${tarball_name}${tarball_suffix}" "${tarball_name}"

View File

@ -1,63 +0,0 @@
#!/bin/bash
# Usage:
# build-prebuilt-archive architecture vmr-directory
#
# Creates an archive containing necessary bootstrapping binaries for ppc64le or
# s390x architectures from a VMR build.
#
# You need to have cloned the VMR (https://github.com/dotnet/dotnet) and
# cross-compiled it for the target architecture already.
set -euo pipefail
IFS=$'\n\t'
set -x
function print_usage {
echo "Usage:"
echo "$0 <architecture> <vmr directory>"
echo
echo "Creates a ppc64le or s390x bootstrap archive from a VMR build."
echo
echo "You need to have cloned the VMR (https://github.com/dotnet/dotnet) and"
echo "cross-compiled it for the target architecture already."
}
positional_args=()
while [[ "$#" -gt 0 ]]; do
arg="${1}"
case "${arg}" in
-h|--help)
print_usage
exit 0
;;
*)
positional_args+=("$1")
shift
;;
esac
done
arch=${positional_args[0]} # Name of the architecture. Eg, s390x or ppc64le
dir=${positional_args[1]} # Checkout of the VMR with the cross-build for the target architecture
dir=$(readlink -f "$dir")
sdk_tarball=$(readlink -f $(find "$dir" -iname 'dotnet-sdk*'"$arch"'*tar.gz' | head -1))
# SDK is at VMR/artifacts/assets/Release/dotnet-sdk-9.0.100-preview.3.24165.1-linux-$arch.tar.gz. Extract the SDK version from the name.
sdk_version=$(echo "$(basename "${sdk_tarball}")" | sed -E -e 's/dotnet-sdk-//' -e "s/-linux-$arch.tar.gz//")
echo $sdk_version
archive_name=dotnet-prebuilts-${sdk_version}-${arch}
mkdir -p $archive_name
pushd $archive_name
cp -av $sdk_tarball .
# Get all architecture-specific nuget packages
find $dir/artifacts/packages/Release/Shipping/ -iname "*linux-$arch*nupkg" -exec cp -avL {} . \;
popd
tar cvzf $archive_name.tar.gz $archive_name

17
dotnet-9.0.2.tar.gz.sig Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: BSN Pgp v1.0.0.0
iQIcBAABCAAGBQJnmX1LAAoJEP2/U8JNtIcu7eUQAM6jtQwO6Clelg420wzIBOEk
dhukzzMDjftWsy8+G2EYBZjcclBaAn8en4ifCH+/Ax/FE8kHYbHccskglzLmOXTK
RCnp393UbqfEsWpEpssUyW/wLEOnxNbxr5u8/ke8yjtUk6p/axrB6HT4TpwgxkBd
LCg+BpOFZAgLBToX5VVpvmIDZNDuRwFBq5v5z1s+chGmZUOWqmXTpvIuCk4IUUZj
uZClUOnSWK3O6BkNgiFIzgXircIgw6YNC6s6/Z2n5s3lT1sViaja6sCeyhGd2jdM
9kTChAxYu0xr55QjoU5N3WSgDVkyYNIPgydRBTzfdpkFrokuymxOuYmxQaykNAD0
RIDO1dRiQaUFQBfX3V9HAZLkoH8IWod5e1QOQWso28l6P3UdvCt43H0lpXVbfx65
UTQcetSMVDvVCK5DsNIzqKVxnVy+sk8S9Zjqi7pat2WBCj9MqjwL4zU13fLgAVJM
mlqK0ctT6PXllmJ1cobO2VYuhyxawj2GnOrAK60pB4hgYq8t/Ke44ZtgV0LzYFOb
+FVkmHmzYVD+ypw81TucWXXzQo5g5un5lV75pS5Zqb2LlWYO7W23xCCLMP+pAt/H
F0hejvAtib2GEqYhdjPH0XOOxbdXkhTGxepBnfjOPxhgwlck7ufrt5n4buODxZim
X4aq/VXU0TFLAf5xF9/t
=QwLl
-----END PGP SIGNATURE-----

View File

@ -8,19 +8,15 @@
%global dotnetver 9.0 %global dotnetver 9.0
# Only the package for the latest dotnet version should provide RPMs like
# dotnet-host
%global is_latest_dotnet 0
# upstream can produce releases with a different tag than the SDK version # upstream can produce releases with a different tag than the SDK version
#%%global upstream_tag v%%{runtime_version} #%%global upstream_tag v%%{runtime_version}
%global upstream_tag v9.0.119 %global upstream_tag v9.0.2
%global upstream_tag_without_v %(echo %{upstream_tag} | sed -e 's|^v||') %global upstream_tag_without_v %(echo %{upstream_tag} | sed -e 's|^v||')
%global hostfxr_version %{runtime_version} %global hostfxr_version %{runtime_version}
%global runtime_version 9.0.18 %global runtime_version 9.0.2
%global aspnetcore_runtime_version 9.0.18 %global aspnetcore_runtime_version 9.0.2
%global sdk_version 9.0.119 %global sdk_version 9.0.103
%global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|') %global sdk_feature_band_version %(echo %{sdk_version} | cut -d '-' -f 1 | sed -e 's|[[:digit:]][[:digit:]]$|00|')
%global templates_version %{aspnetcore_runtime_version} %global templates_version %{aspnetcore_runtime_version}
#%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }') #%%global templates_version %%(echo %%{runtime_version} | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+1 }')
@ -166,7 +162,6 @@ BuildRequires: llvm-libunwind-devel
BuildRequires: lttng-ust-devel BuildRequires: lttng-ust-devel
BuildRequires: make BuildRequires: make
BuildRequires: openssl-devel BuildRequires: openssl-devel
BuildRequires: procps-ng
BuildRequires: python3 BuildRequires: python3
%if ! %{use_bundled_rapidjson} %if ! %{use_bundled_rapidjson}
BuildRequires: rapidjson-devel BuildRequires: rapidjson-devel
@ -576,8 +571,6 @@ lscpu
%build %build
cat /proc/cpuinfo
cat /proc/meminfo
cat /etc/os-release cat /etc/os-release
%if %{without bootstrap} %if %{without bootstrap}
@ -672,8 +665,6 @@ function retry_until_success {
set +e set +e
while [[ $exit_code != 0 ]] && [[ $tries != 0 ]]; do while [[ $exit_code != 0 ]] && [[ $tries != 0 ]]; do
(( tries = tries - 1 )) (( tries = tries - 1 ))
# Clean stale build state so retries start fresh.
rm -rf .packages $(find . -name artifacts -type d)
"$@" "$@"
exit_code=$? exit_code=$?
done done
@ -681,66 +672,6 @@ function retry_until_success {
return $exit_code return $exit_code
} }
# Runs a command and kills it if it produces no output.
# Use a longer timeout on machines with fewer cores since builds are slower.
function output_timeout {
# 30m on machines with more than 4 cores, 60m on smaller machines where builds are slower.
# The aarch64 Neoverse N1 CI machines have 4 cores and need the longer timeout.
local nprocs=$(nproc)
local idle_timeout=1800
if (( nprocs <= 4 )); then
idle_timeout=3600
fi
# Create a pipe we'll read the output from for timeout detection.
local fifo=$(mktemp -u)
mkfifo "$fifo"
# Create a process group so we can kill every process including children.
# And use a long timeout (5h) in (the unlikely) case output timeout detection continues to be triggered.
setsid timeout --foreground 5h "$@" &> "$fifo" &
local cmd_pid=$!
# Read lines from the output with a timeout.
# Disable tracing to avoid 'set -x' noise from the read loop appearing in the output.
local timed_out=false
local traceflags=$-
set +x
while true; do
local rc=0
IFS= read -t $idle_timeout -r line || rc=$?
if (( rc == 0 )); then
printf '%s\n' "$line"
elif (( rc > 128 )); then
echo "output_timeout: no output for ${idle_timeout}s" >&2
timed_out=true
break
else
[[ -z $line ]] || printf '%s\n' "$line"
break
fi
done < "$fifo"
[[ $traceflags != *x* ]] || set -x
if $timed_out; then
# Hang detected: kill the process group, then collect the exit code.
kill -9 -- -$cmd_pid 2>/dev/null || true
wait $cmd_pid 2>/dev/null
local exit_code=$?
else
# Normal exit: collect the real exit code, then clean up any orphaned processes.
wait $cmd_pid 2>/dev/null
local exit_code=$?
kill -9 -- -$cmd_pid 2>/dev/null || true
fi
# Cleanup.
rm -f "$fifo"
return $exit_code
}
cat >dotnet-rpm-build.sh <<EOF cat >dotnet-rpm-build.sh <<EOF
#!/bin/bash #!/bin/bash
@ -762,25 +693,21 @@ find -depth -name 'artifacts' -type d -print -exec rm -rf {} \;
/p:UseSystemLibs=${system_libs} \ /p:UseSystemLibs=${system_libs} \
/p:TargetRid=%{runtime_id} \ /p:TargetRid=%{runtime_id} \
/p:OfficialBuilder="$vendor" \ /p:OfficialBuilder="$vendor" \
/p:MinimalConsoleLogOutput=false \
/p:ContinueOnPrebuiltBaselineError=true \ /p:ContinueOnPrebuiltBaselineError=true \
#/p:MinimalConsoleLogOutput=false \ /v:n \
#/v:n \ /p:LogVerbosity=n
#/p:LogVerbosity=n
EOF EOF
chmod +x dotnet-rpm-build.sh chmod +x dotnet-rpm-build.sh
VERBOSE=1 retry_until_success $max_attempts \ VERBOSE=1 retry_until_success $max_attempts \
output_timeout \ timeout 5h \
./dotnet-rpm-build.sh || { cat /proc/cpuinfo; cat /proc/meminfo; env; exit 1; } ./dotnet-rpm-build.sh
sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE21} > dotnet.sh sed -e 's|[@]LIBDIR[@]|%{_libdir}|g' %{SOURCE21} > dotnet.sh
env
ps aux
%install %install
@ -823,7 +750,6 @@ 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 '*.txt' -exec chmod -x {} \;
find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.xml' -exec chmod -x {} \; find %{buildroot}%{_libdir}/dotnet/ -type f -name '*.xml' -exec chmod -x {} \;
%if %{is_latest_dotnet}
install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/ install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/
install dotnet.sh %{buildroot}%{_sysconfdir}/profile.d/ install dotnet.sh %{buildroot}%{_sysconfdir}/profile.d/
@ -847,7 +773,6 @@ echo "%{_libdir}/dotnet" >> install_location
install install_location %{buildroot}%{_sysconfdir}/dotnet/ install install_location %{buildroot}%{_sysconfdir}/dotnet/
echo "%{_libdir}/dotnet" >> install_location_%{runtime_arch} echo "%{_libdir}/dotnet" >> install_location_%{runtime_arch}
install install_location_%{runtime_arch} %{buildroot}%{_sysconfdir}/dotnet/ install install_location_%{runtime_arch} %{buildroot}%{_sysconfdir}/dotnet/
%endif
install -dm 0755 %{buildroot}%{_libdir}/dotnet/source-built-artifacts install -dm 0755 %{buildroot}%{_libdir}/dotnet/source-built-artifacts
install -m 0644 artifacts/assets/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/ install -m 0644 artifacts/assets/Release/Private.SourceBuilt.Artifacts.*.tar.gz %{buildroot}/%{_libdir}/dotnet/source-built-artifacts/
@ -871,18 +796,6 @@ find %{buildroot}%{_libdir}/dotnet/sdk -type d | tail -n +2 | sed -E 's|%{buildr
find %{buildroot}%{_libdir}/dotnet/sdk -type f -and -not -name '*.pdb' | sed -E 's|%{buildroot}||' >> dotnet-sdk-non-dbg-files find %{buildroot}%{_libdir}/dotnet/sdk -type f -and -not -name '*.pdb' | sed -E 's|%{buildroot}||' >> dotnet-sdk-non-dbg-files
find %{buildroot}%{_libdir}/dotnet/sdk -type f -name '*.pdb' | sed -E 's|%{buildroot}||' > dotnet-sdk-dbg-files find %{buildroot}%{_libdir}/dotnet/sdk -type f -name '*.pdb' | sed -E 's|%{buildroot}||' > dotnet-sdk-dbg-files
%if %{is_latest_dotnet} == 0
# If this is an older version, self-test now, before we delete files. After we
# delete files, we will not have everything we need to self-test in %%check.
%{buildroot}%{_libdir}/dotnet/dotnet --info
%{buildroot}%{_libdir}/dotnet/dotnet --version
# Provided by dotnet-host from another SRPM
rm %{buildroot}%{_libdir}/dotnet/LICENSE.txt
rm %{buildroot}%{_libdir}/dotnet/ThirdPartyNotices.txt
rm %{buildroot}%{_libdir}/dotnet/dotnet
%endif
%check %check
@ -891,10 +804,8 @@ rm %{buildroot}%{_libdir}/dotnet/dotnet
export COMPlus_LTTng=0 export COMPlus_LTTng=0
%endif %endif
%if %{is_latest_dotnet}
%{buildroot}%{_libdir}/dotnet/dotnet --info %{buildroot}%{_libdir}/dotnet/dotnet --info
%{buildroot}%{_libdir}/dotnet/dotnet --version %{buildroot}%{_libdir}/dotnet/dotnet --version
%endif
@ -903,7 +814,6 @@ export COMPlus_LTTng=0
# empty package useful for dependencies # empty package useful for dependencies
%endif %endif
%if %{is_latest_dotnet}
%files -n dotnet-host %files -n dotnet-host
%dir %{_libdir}/dotnet %dir %{_libdir}/dotnet
%{_libdir}/dotnet/dotnet %{_libdir}/dotnet/dotnet
@ -922,7 +832,6 @@ export COMPlus_LTTng=0
%dir %{_datadir}/zsh %dir %{_datadir}/zsh
%dir %{zsh_completions_dir} %dir %{zsh_completions_dir}
%{_datadir}/zsh/site-functions/_dotnet %{_datadir}/zsh/site-functions/_dotnet
%endif
%files -n dotnet-hostfxr-%{dotnetver} %files -n dotnet-hostfxr-%{dotnetver}
%dir %{_libdir}/dotnet/host/fxr %dir %{_libdir}/dotnet/host/fxr
@ -977,74 +886,6 @@ export COMPlus_LTTng=0
%changelog %changelog
* Thu Jul 23 2026 Satish Mane <satmane@redhat.com> - 9.0.119-2
- Update to .NET SDK 9.0.119 and Runtime 9.0.18
- Resolves: RHEL-192471
* Thu Jul 02 2026 Tom Deseyn <tdeseyn@redhat.com> - 9.0.118-3
- Reduce time to detect hanging builds
- Resolves: RHEL-191642
* Wed Jun 10 2026 Tom Deseyn <tdeseyn@redhat.com> - 9.0.118-2
- Update to .NET SDK 9.0.118 and Runtime 9.0.17
- Resolves: RHEL-181552
* Thu May 28 2026 Omair Majid <omajid@redhat.com> - 9.0.117-2
- Update to .NET SDK 9.0.117 and Runtime 9.0.16
- Resolves: RHEL-173917
* Fri Apr 17 2026 Omair Majid <omajid@redhat.com> - 9.0.116-2
- Update to .NET SDK 9.0.116 and Runtime 9.0.15
- Resolves: RHEL-163400
* Thu Mar 26 2026 Dominik Rehák <drehak@redhat.com> - 9.0.115-2
- Update to .NET SDK 9.0.115 and Runtime 9.0.14
- Resolves: RHEL-152947
* Wed Feb 11 2026 Omair Majid <omajid@redhat.com> - 9.0.114-2
- Update to .NET SDK 9.0.114 and Runtime 9.0.13
- Resolves: RHEL-144971
* Wed Jan 14 2026 Omair Majid <omajid@redhat.com> - 9.0.113-2
- Update to .NET SDK 9.0.113 and Runtime 9.0.12
- Resolves: RHEL-138646
* Wed Nov 12 2025 Omair Majid <omajid@redhat.com> - 9.0.112-2
- Update to .NET SDK 9.0.112 and Runtime 9.0.11
- Resolves: RHEL-125744
* Tue Oct 14 2025 Omair Majid <omajid@redhat.com> - 9.0.111-2
- Update to .NET SDK 9.0.111 and Runtime 9.0.10
- Resolves: RHEL-116861
* Wed Sep 10 2025 Omair Majid <omajid@redhat.com> - 9.0.110-2
- Update to .NET SDK 9.0.110 and Runtime 9.0.9
- Resolves: RHEL-112268
* Mon Aug 11 2025 Omair Majid <omajid@redhat.com> - 9.0.109-2
- Update to .NET SDK 9.0.109 and Runtime 9.0.8
- Resolves: RHEL-106727
* Tue Jul 08 2025 Omair Majid <omajid@redhat.com> - 9.0.108-2
- Update to .NET SDK 9.0.108 and Runtime 9.0.7
- Resolves: RHEL-100597
* Wed Jun 11 2025 Omair Majid <omajid@redhat.com> - 9.0.107-2
- Update to .NET SDK 9.0.107 and Runtime 9.0.6
- Resolves: RHEL-94423
* Tue May 13 2025 Omair Majid <omajid@redhat.com> - 9.0.106-2
- Update to .NET SDK 9.0.106 and Runtime 9.0.5
- Resolves: RHEL-89452
* Wed Apr 09 2025 Omair Majid <omajid@redhat.com> - 9.0.105-2
- Update to .NET SDK 9.0.105 and Runtime 9.0.4
- Resolves: RHEL-85281
* Tue Mar 11 2025 Omair Majid <omajid@redhat.com> - 9.0.104-2
- Update to .NET SDK 9.0.104 and Runtime 9.0.3
- Resolves: RHEL-81647
* Mon Feb 17 2025 Omair Majid <omajid@redhat.com> - 9.0.103-2 * Mon Feb 17 2025 Omair Majid <omajid@redhat.com> - 9.0.103-2
- Update to .NET SDK 9.0.103 and Runtime 9.0.2 - Update to .NET SDK 9.0.103 and Runtime 9.0.2
- Resolves: RHEL-76904 - Resolves: RHEL-76904

View File

@ -1,22 +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}
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpminspect.static-analysis}
--- !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}
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpminspect.static-analysis}
--- !Policy
product_versions:
- rhel-*
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -1,10 +1,10 @@
{ {
"release": "9.0.18", "release": "9.0.2",
"channel": "9.0", "channel": "9.0",
"tag": "v9.0.119", "tag": "v9.0.2",
"sdkVersion": "9.0.119", "sdkVersion": "9.0.103",
"runtimeVersion": "9.0.18", "runtimeVersion": "9.0.2",
"aspNetCoreVersion": "9.0.18", "aspNetCoreVersion": "9.0.2",
"sourceRepository": "https://github.com/dotnet/dotnet", "sourceRepository": "https://github.com/dotnet/dotnet",
"sourceVersion": "d088fc83496a99a5785ecdf74c012f61a335c338" "sourceVersion": "c4e5fd73fe5d8c004bf46cb4f1ded77ca8124b1a"
} }

View File

@ -3,9 +3,9 @@ index 044a2aba4..b3f8f2611 100644
--- a/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj --- a/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj
+++ b/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj +++ b/src/roslyn-analyzers/src/PerformanceTests/Tests/PerformanceTests.csproj
@@ -4,6 +4,7 @@ @@ -4,6 +4,7 @@
<LangVersion>preview</LangVersion>
<Nullable>disable</Nullable> <Nullable>disable</Nullable>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<NoWarn>$(NoWarn);NETSDK1138</NoWarn>
+ <UseAppHost>false</UseAppHost> + <UseAppHost>false</UseAppHost>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>

View File

@ -1,20 +0,0 @@
---
inspections:
# We patch upstream a lot, no need to reject patches
patches: off
badfuncs:
allowed:
# The Mono runtime (used on s390x, for example), uses inet_addr for
# debugging (such as sending the control flow graph to a remote process).
# See runtime/src/mono/mono/mini/cfgdump.c. This isn't part of any
# standard networking facility; networking APIs are implemented/used in
# libSystem*so.
/usr/lib64/dotnet/shared/Microsoft.NETCore.App/*/libcoreclr.so:
- inet_addr
/usr/lib64/dotnet/packs/Microsoft.NETCore.App.Runtime.*/*/runtimes/*/native/libcoreclr.so:
- inet_addr
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

View File

@ -1,2 +1 @@
SHA512 (dotnet-9.0.119.tar.gz) = bdb5e0bd73b7edf0cc7bf72d9ef07a31691c442bf436e1e25c7d3ac5ee02768bf405a28c004df62db1bb3f0553cb47d6dbd894106667186c7187a13138e23a09 SHA512 (dotnet-9.0.2.tar.gz) = c6ba0972eb21757d70e9dff4fd7e540378fec3eb94931fbe7205234ee53efc976c682154c5224a16ff1dab223f4deea7c2b378d197039e6974b35bd8fa6f62cf
SHA512 (dotnet-9.0.119.tar.gz.sig) = c7529e07348ec4506bf930c70dede49ac16ef6cfe5d0d66a767c26275387de98c153f1adcbc8d921fccad8786cee42f8004d67dbc914a26e1dbd83df6a76f386

View File

@ -1,46 +0,0 @@
summary: Basic smoke test
provision:
hardware:
disk:
- size: ">= 20 GiB"
memory: ">= 5120 MiB"
prepare:
how: install
package:
- aspnetcore-runtime-9.0
- babeltrace
- bash-completion
- bc
- binutils
- dotnet-runtime-9.0
- dotnet-sdk-9.0
- expect
- file
- findutils
- gcc-c++
- git
- jq
- libstdc++-devel
- lldb
- npm
- postgresql-odbc
- postgresql-server
- procps-ng
- python3
- strace
- util-linux
- wget
- which
- zlib-devel
execute:
script:
- dotnet --info
- wget --no-verbose https://github.com/redhat-developer/dotnet-bunny/releases/latest/download/turkey.tar.gz
- tar xf turkey.tar.gz
- dotnet turkey/Turkey.dll --version
- git clone "https://github.com/redhat-developer/dotnet-regular-tests.git"
- dotnet turkey/Turkey.dll -l="$TMT_TEST_DATA" dotnet-regular-tests --timeout=1200
- dnf remove -yq 'dotnet*'
- set -x; if command -v dotnet ; then exit 1; fi
- set -x; if [ -d /usr/lib64/dotnet ]; then exit 1; fi
- set -x; if man dotnet; then exit 1; fi