Compare commits

...

2 Commits

Author SHA1 Message Date
59bba82f0f Bootstrap build 2024-11-14 11:45:55 +03:00
eec55923bd import UBI dotnet9.0-9.0.100-1.el8_10 2024-11-14 07:13:57 +00:00
20 changed files with 28 additions and 623 deletions

4
.dotnet9.0.metadata Normal file
View File

@ -0,0 +1,4 @@
1524c4e88cdd9e1541e6df4c1304b64c25d1fab4 SOURCES/dotnet-prebuilts-9.0.100-rc.1.24452.1-ppc64le.tar.gz
45445b61d719b9d76c72fa206f621e0d9c942687 SOURCES/dotnet-prebuilts-9.0.100-rc.1.24452.1-s390x.tar.gz
f728426f75ed9295e7d424d664e70a773782cc3f SOURCES/dotnet-sdk-9.0.100-rc.1.24452.12-linux-arm64.tar.gz
a8c2517b882a7ee1e1091c852e6ff4ab1f383f01 SOURCES/dotnet-v9.0.0-rc.2.24473.5-x64-bootstrap.tar.gz

View File

@ -1 +0,0 @@
1

18
.gitignore vendored
View File

@ -1,14 +1,4 @@
/dotnet-prebuilts-9.0.100-preview.7.24380.1-ppc64le.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
SOURCES/dotnet-prebuilts-9.0.100-rc.1.24452.1-ppc64le.tar.gz
SOURCES/dotnet-prebuilts-9.0.100-rc.1.24452.1-s390x.tar.gz
SOURCES/dotnet-sdk-9.0.100-rc.1.24452.12-linux-arm64.tar.gz
SOURCES/dotnet-v9.0.0-rc.2.24473.5-x64-bootstrap.tar.gz

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,4 +1,4 @@
%bcond_with bootstrap
%bcond_without bootstrap_dotnet
# 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
@ -70,13 +70,13 @@
Name: dotnet%{dotnetver}
Version: %{sdk_rpm_version}
Release: 0.8%{?dist}
Release: 0.6%{?dist}
Summary: .NET Runtime and SDK
License: 0BSD AND Apache-2.0 AND (Apache-2.0 WITH LLVM-exception) AND APSL-2.0 AND BSD-2-Clause AND BSD-3-Clause AND BSD-4-Clause AND BSL-1.0 AND bzip2-1.0.6 AND CC0-1.0 AND CC-BY-3.0 AND CC-BY-4.0 AND CC-PDDC AND CNRI-Python AND EPL-1.0 AND GPL-2.0-only AND (GPL-2.0-only WITH GCC-exception-2.0) AND GPL-2.0-or-later AND GPL-3.0-only AND ICU AND ISC AND LGPL-2.1-only AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND LicenseRef-ISO-8879 AND MIT AND MIT-Wu AND MS-PL AND MS-RL AND NCSA AND OFL-1.1 AND OpenSSL AND Unicode-DFS-2015 AND Unicode-DFS-2016 AND W3C-19980720 AND X11 AND Zlib
URL: https://github.com/dotnet/
%if %{with bootstrap}
%if %{with bootstrap_dotnet}
# The source is generated on a Fedora box via:
# ./build-dotnet-bootstrap-tarball %%{upstream_tag}
Source0: dotnet-%{upstream_tag}-x64-bootstrap.tar.gz
@ -132,7 +132,7 @@ BuildRequires: brotli-devel
BuildRequires: clang
BuildRequires: cmake
BuildRequires: coreutils
%if %{without bootstrap}
%if %{without bootstrap_dotnet}
BuildRequires: dotnet-sdk-%{dotnetver}
BuildRequires: dotnet-sdk-%{dotnetver}-source-built-artifacts
%endif
@ -412,14 +412,15 @@ Requires: dotnet-sdk-%{dotnetver}%{?_isa} >= %{sdk_rpm_version}-%{release}
# When installing AOT support, also install all dependencies needed to build
# NativeAOT applications. AOT invokes `clang ... -lssl -lcrypto -lbrotlienc
# -lbrotlidec -lz ...`.
Requires: brotli-devel
Requires: clang
Requires: openssl-devel
Requires: zlib-devel
Requires: brotli-devel%{?_isa}
Requires: clang%{?_isa}
Requires: openssl-devel%{?_isa}
Requires: zlib-devel%{?_isa}
%description -n dotnet-sdk-aot-%{dotnetver}
This package provides Ahead-of-time (AOT) compilation support for the .NET SDK.
%global dotnet_targeting_pack() %{expand:
%package -n %{1}
@ -458,7 +459,7 @@ These are not meant for general use.
%prep
%if %{without bootstrap}
%if %{without bootstrap_dotnet}
# check gpg signatures only for non-bootstrap builds; bootstrap "sources" are hand-crafted
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%endif
@ -469,7 +470,7 @@ if [[ ${release_json_tag} != %{upstream_tag} ]]; then
exit 1
fi
%if %{without bootstrap}
%if %{without bootstrap_dotnet}
%setup -q -n dotnet-%{upstream_tag_without_v}
# Remove all prebuilts and binaries
@ -571,7 +572,7 @@ rm -rf src/runtime/src/native/external/zlib-ng
%build
cat /etc/os-release
%if %{without bootstrap}
%if %{without bootstrap_dotnet}
# We need to create a copy because build scripts will mutate this
cp -a %{_libdir}/dotnet previously-built-dotnet
find previously-built-dotnet
@ -646,7 +647,7 @@ VERBOSE=1 timeout 5h \
./build.sh \
--source-only \
--release-manifest %{SOURCE5} \
%if %{without bootstrap}
%if %{without bootstrap_dotnet}
--with-sdk previously-built-dotnet \
%endif
%ifarch %{mono_archs}
@ -842,37 +843,29 @@ export COMPlus_LTTng=0
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 9.0.100~rc.2.24474.1-0.8
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Wed Oct 23 2024 Omair Majid <omajid@redhat.com> - 9.0.100~rc.2.24474.1-0.7
- Disable bootstrap
- Related: RHEL-62799
* Tue Oct 22 2024 Omair Majid <omajid@redhat.com> - 9.0.100~rc.2.24474.1-0.6
* Thu Oct 24 2024 Omair Majid <omajid@redhat.com> - 9.0.100~rc.2.24474.1-0.6
- Rebootstrap
- Related: RHEL-62799
- Related: RHEL-62768
* Thu Oct 17 2024 Omair Majid <omajid@redhat.com> - 9.0.100~rc.2.24474.1-0.5
- Add missing runtime dependencies to -aot- subpackage
- Related: RHEL-62799
- Related: RHEL-62768
* Tue Oct 15 2024 Omair Majid <omajid@redhat.com> - 9.0.100~rc.2.24474.1-0.4
- Update to .NET SDK 9.0.100-rc.2.24474.1 and Runtime 9.0.0-rc.2.24473.5
- Resolves: RHEL-62799
- Resolves: RHEL-62768
* Wed Sep 11 2024 Omair Majid <omajid@redhat.com> - 9.0.100~rc.1.24452.12-0.3
- Update to .NET SDK 9.0.100-rc.1.24452.12 and Runtime 9.0.0-rc.1.24431.7
- Resolves: RHEL-59011
- Resolves: RHEL-59037
* Sun Aug 18 2024 Omair Majid <omajid@redhat.com> - 9.0.100~preview.7.24407.1-0.2
- Disable bootstrap
- Related: RHEL-48619
- Related: RHEL-46701
* Thu Aug 15 2024 Omair Majid <omajid@redhat.com> - 9.0.100~preview.7.24407.1-0.1
- Update to .NET SDK 9 preview 7 and Runtime 9 preview 7
- Resolves: RHEL-48619
- Resolves: RHEL-46701
* Thu Jun 13 2024 Omair Majid <omajid@redhat.com> - 9.0.100~preview.5.24307.3-0.9
- Update to .NET SDK 9.0.100-preview.5.24307.3 and Runtime

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

View File

@ -1,23 +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}
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.other-archs.functional}

View File

@ -1,29 +0,0 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: BSN Pgp v1.1.0.0
mQINBGUKsUYBEADVCJm4EhXALr1ld42kWeh/vM0XMZ2orNT6NRLDRYjpE4mm4UqA
vpjfGCwt5fLcrT4yZng8ABkB3QwTsZzmxesAMD5AZR/gdU1G96DuDGsjp6zJvTuX
zvz3PXUYfcl9n5X32acA6N9J5Xfp10xqX3oitUODBdYy/vKW/v/y87ZxgaR6a3wp
pPJBJIVKwFJx13v4BHRsGp1fepliQcXPvmNKFNI20le5+FbLq6C9hY5wcwGHGfQr
EokH79GsmqgSImqxDOIh06J5VfWA+JwV+3vf95pD8IUrRfGQ+GK7b1/bySxtM5Qa
b/IDgvl/Qq3AzEpGarMBaqGbqMz1C7jd8Y6nyKMP/V+OCjbEdYNM8GRz6kBP3Un+
Frat5Lc2o4DF+zB3PKIJS3hku5gwlJu6IU1F23vmYFtjUcpRGmyQZDoWyBbOWlB5
4SXqVu16amUsRFYmOK8BJMjdotcVbriVIv6WRmugfhIMoRJzVGxYkdbuiuMAX69V
xDoGpxX5A8S5A79y0USUVtadQfFavMTyb/gUuUe8oDsqK9gdI3ETxLYG4gYwauVX
fCGfoLOKsq5dPzEuEA7GCRrMau+rHKFaM7BigSdnHFW7xNZ4v0YnXAagoqM2G5o5
9sak0l57vxxTVk2V3iZzkoU2J2Zlyxyh72n5vjRmb7aNwmQh4Eav6a8ssQARAQAB
tBlvbm54Y29yZWRldkBtaWNyb3NvZnQuY29tiQI4BBMBCAAiBQJlCrFGAhsDBgsJ
CAcDAgYVCAIJCgsEFgIDAQIeAQIXgAAKCRD9v1PCTbSHLtfzEADIKq15XDeQxLSo
BG1aFa9n82K1YADVcu1LeddfhDmQWLnZNgyHtQlKN2n59282CXtgymzae3uc05s2
feIJaqF4M4NnCX8Ct3K7Hq1jI7ZktlquPCCy9XHq9aQY8XTxmdtRevtclKgYTwDh
w+D/KbE8vTZ6o7JoubA3MKf4k3S8qL/0rIyaC6h0EpiWoMy1TdNMMK7BT4kl6Vz4
W6KmNgOux1Pzku5ULM4WuOzmwW+NAzpOLJowfDs1ZC2RM3+g9i1/DmwWtCHngvGD
+clA0I0agXxo05toOBTfwxd2gWYczuo/Ole16fYTzqT6n0DHqOjjcc9A7EmC72fQ
J+hHAqM+4+CbEGuMpNnTMpCZs98bcK3Rqx/bDJYtbclZzm5O/V4nVbDrJZKzpgA1
KuzNMLkr62P6/t15UsStgmrlTILmE5NG0CR1mj/46+mNbsMZCel3dcvnT1Zf4rTq
QxMC7Dd/DECKQVC339G/BRfNyhOk2S1mZR/g1uS4bznL+tiwudDh/TAi5C3ZBDMh
0muwD9caXS/QFIBWtb2ai3IcpU357R/ERPKLcWYtoYJ80RuKi6XYr1WxSPBmd5Qm
wuncye+wR2dveo2jnIXZGUSgz50ZNgBxs/cYWAQ8J6KMgIBa+JY2qalzvIGbrC5x
Sr+CkhS8vrktfnRgc8yBssJnvNfqXA==
=pKgS
-----END PGP PUBLIC KEY BLOCK-----

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 +0,0 @@
SHA512 (dotnet-9.0.0-rc.2.24473.5.tar.gz) = 517334ed2bea3cff925ce6e8a04658d792b2f72cea1e9a405686d9d3f786d9b01ce35e8f7edd927bcdc6dbda8fae20267314da771df2d9cafbb4f867182f45ac
SHA512 (dotnet-9.0.0-rc.2.24473.5.tar.gz.sig) = f46d27b0018b028f3612ec32030839305006adb3e7d818e73bd19ade6427a2fd9bf28c78df75f8b4c1eaf9e6454189d6261a5fd28b9f56ef8a04df68c4cc3810

View File

@ -1,44 +0,0 @@
summary: Basic smoke test
provision:
disk: 20
memory: 5120
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

View File

@ -1,155 +0,0 @@
#!/bin/bash
# Usage:
# ./update-release [runtime-version [--bug bug-id] [--tarball tarball-name] [--larger-rpm-release]
set -euo pipefail
IFS=$'\n\t'
print_usage() {
echo " Usage:"
echo " ./update-release [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]}"
dotnet_major_minor_version=$spec_file
dotnet_major_minor_version=${dotnet_major_minor_version#./dotnet}
dotnet_major_minor_version=${dotnet_major_minor_version%.spec}
echo "Updating .NET $dotnet_major_minor_version"
runtime_version=${positional_args[1]:-}
sdk_version=""
tag=v${runtime_version}
if [[ -z ${runtime_version} ]]; then
cat > query <<EOF
[ .[] | select(.name | contains("NET 9.0 ")) ]
| first
| { tag_name: .tag_name,
tarball: .tarball_url,
signature: .assets[].browser_download_url | select(. | endswith("tar.gz.sig")),
release_manifest: .assets[] | select(.name == "release.json") | .browser_download_url }
EOF
curl https://api.github.com/repos/dotnet/dotnet/releases \
| jq --from-file query > release.metadata.github
tag=$(jq -r .tag_name release.metadata.github)
curl -L "$(jq -r .release_manifest release.metadata.github)" -o release.json
aspnetcore_runtime_version=$(jq -r .aspNetCoreVersion release.json)
runtime_version=$(jq -r .runtimeVersion release.json)
sdk_version=$(jq -r .sdkVersion release.json)
fi
if [[ ${sdk_version:-} = "" ]]; then
# FIXME: add preview/rc parts
sdk_version=$(echo "${runtime_version}" | awk 'BEGIN { FS="."; OFS="." } {print $1, $2, $3+100 }')
fi
echo "Updating .NET $dotnet_major_minor_version to SDK ${sdk_version} and Runtime ${runtime_version}"
sed -i -E "s|^%global upstream_tag .*$|%global upstream_tag ${tag}|" "$spec_file"
sed -i -E "s|^%global runtime_version .*$|%global runtime_version ${runtime_version}|" "$spec_file"
sed -i -E "s|^%global aspnetcore_runtime_version .*$|%global aspnetcore_runtime_version ${aspnetcore_runtime_version}|" "$spec_file"
sed -i -E "s|^%global sdk_version .*$|%global sdk_version ${sdk_version}|" "$spec_file"
if [[ $runtime_version = *preview* ]] || [[ $runtime_version = *rc* ]]; then
# For Preview/RC releases, convert x.y.z-preview.a.b to x.y.z~preview.a.b (replace - with ~)
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/#_handling_non_sorting_versions_with_tilde_dot_and_caret
runtime_rpm_version=${runtime_version/-/\~}
aspnetcore_runtime_rpm_version=${aspnetcore_runtime_version/-/\~}
sdk_rpm_version=${sdk_version/-/\~}
sed -i -E "s|^(%global runtime_rpm_version) .*$|\1 ${runtime_rpm_version}|" "$spec_file"
sed -i -E "s|^(%global aspnetcore_runtime_rpm_version) .*$|\1 ${aspnetcore_runtime_rpm_version}|" "$spec_file"
sed -i -E "s|^(%global sdk_rpm_version) .*$|\1 ${sdk_rpm_version}|" "$spec_file"
else
# For GA releases replace rpm versions with rpm macros for the actual version
sed -i -E "s|^(%global runtime_rpm_version) .*$|\1 %{runtime_version}|" "$spec_file"
sed -i -E "s|^(%global aspnetcore_runtime_rpm_version) .*$|\1 %{aspnetcore_runtime_version}|" "$spec_file"
sed -i -E "s|^(%global sdk_rpm_version) .*$|\1 %{sdk_version}|" "$spec_file"
fi
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"
if spectool -l "$spec_file" | grep 'bootstrap.tar.gz' ; then
build-dotnet-bootstrap-tarball "$tag"
tar xf dotnet-"$tag"-x64-bootstrap.tar.gz "dotnet-$tag-x64-bootstrap/global.json"
bootstrap_sdk_version=$(jq -r .tools.dotnet "dotnet-$tag-x64-bootstrap/global.json")
sed -i -E "s|^(%global bootstrap_sdk_version) .*$|\1 ${bootstrap_sdk_version}|" "$spec_file"
spectool -g "$spec_file"
fi
fi
set -x
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"