Spec URL: https://pagure.io/dotnet-sig/dotnet8.0/raw/main/f/dotnet8.0.spec SRPM URL: https://download.copr.fedorainfracloud.org/results/@dotnet-sig/dotnet-preview/fedora-rawhide-x86_64/06469054-dotnet8.0/dotnet8.0-debugsource-8.0.100~rc.1-0.2.fc40.x86_64.rpm 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. Fedora Account System Username: omajid
This is not an upgrade or replacement of the existing 6.0 or dotnet7.0 packages, but an entirely new package. The packages can all be installed side-by-side. Here's a diff of the dotnet7.0 and this new dotnet8.0 spec file: https://gist.github.com/omajid/c8124bd9d1b25696803253b0516c5098 This package needs to be bootstrapped. Which can be done by changing the %bcond_without. We have a blanket bootstrap exception from the fedora packaging committee: https://pagure.io/packaging-committee/issue/989.
Taking this review.
Initial spec review: > Release: 0.1%{?dist} This should be "0%{?dist}.1" > %if 0%{?fedora} || 0%{?rhel} >= 8 > ExclusiveArch: aarch64 ppc64le s390x x86_64 > %else > ExclusiveArch: x86_64 > %endif Can we flip this like so? %if 0%{?rhel} && 0%{?rhel} < 8 ExclusiveArch: x86_64 %else ExclusiveArch: aarch64 ppc64le s390x x86_64 %endif Or if RHEL 7 doesn't matter anymore, can we just simplify to: ExclusiveArch: aarch64 ppc64le s390x x86_64 > %if 0%{?fedora} || 0%{?rhel} > 7 > BuildRequires: glibc-langpack-en > %endif Another question about RHEL 7 here. If we don't care anymore, can we drop the conditionals? > %if 0%{?fedora} || 0%{?rhel} >= 9 > # 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 Can you please flip this conditional too? > %if 0%{?fedora} > 35 > # lttng in Fedora > 35 is incompatible with .NET > export COMPlus_LTTng=0 > %endif Doesn't this also affect RHEL 9+ (or at least RHEL 10+)?
Thanks for taking up the review! (In reply to Neal Gompa from comment #3) > Initial spec review: > > > Release: 0.1%{?dist} > > This should be "0%{?dist}.1" Done, but I am not sure I understand the change. I looked at https://fedoraproject.org/wiki/Package_Versioning_Examples and that still seems to suggest putting 0.1 before %{?dist}. > ExclusiveArch: aarch64 ppc64le s390x x86_64 > ... > > Another question about RHEL 7 here. If we don't care anymore, can we drop > the conditionals? Done. > > %if 0%{?fedora} || 0%{?rhel} >= 9 > > # 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 > > Can you please flip this conditional too? I would be happy to. Can you help me understand why, though? The previous conditional suggestions were about putting the future/happy path first, and dealing with legacy/fall-back in the "else" clause. This is already set up that way. In the future, we can simplify to just the the "then" clause: # Setting this macro ensures that only clang supported options will be # added to ldflags and cflags. %global toolchain clang %set_build_flags > > %if 0%{?fedora} > 35 > > # lttng in Fedora > 35 is incompatible with .NET > > export COMPlus_LTTng=0 > > %endif > > Doesn't this also affect RHEL 9+ (or at least RHEL 10+)? It doesn't affect RHEL 9 (which has lttng-ust 2.12, just like Fedora 35). I don't know what happens in a RHEL 10 context, which might inherit lttng-ust 2.13.x from Fedora.
Hey Neal, what are the next steps here? Any thoughts on my previous comments?
Just chiming in to note that there's a small amount of pressure building from the community (myself included) to see this resolved: https://github.com/dotnet/docs/issues/38366
(In reply to Omair Majid from comment #5) > Hey Neal, what are the next steps here? Any thoughts on my previous comments? Okay, I agree with your comments here. But, I can also say that we can pretty much be guaranteed that RHEL 10 is going to inherit Fedora's lttng-ust.
Spec URL: https://pagure.io/dotnet-sig/dotnet8.0/raw/main/f/dotnet8.0.spec SRPM URL: https://download.copr.fedorainfracloud.org/results/@dotnet-sig/dotnet-preview/fedora-rawhide-x86_64/06729827-dotnet8.0/dotnet8.0-8.0.100~rc.1-0.fc40~bootstrap.1.src.rpm
Copr build: https://copr.fedorainfracloud.org/coprs/build/6731562 (succeeded) Review template: https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2244633-dotnet8.0/fedora-rawhide-x86_64/06731562-dotnet8.0/fedora-review/review.txt Found issues: - dotnet-apphost-pack-8.0 : /usr/lib64/dotnet/packs/Microsoft.NETCore.App.Host.fedora.40-x64/8.0.0-rc.1.23419.4/runtimes/fedora.40-x64/native/coreclr_delegates.h dotnet-apphost-pack-8.0 : /usr/lib64/dotnet/packs/Microsoft.NETCore.App.Host.fedora.40-x64/8.0.0-rc.1.23419.4/runtimes/fedora.40-x64/native/hostfxr.h dotnet-apphost-pack-8.0 : /usr/lib64/dotnet/packs/Microsoft.NETCore.App.Host.fedora.40-x64/8.0.0-rc.1.23419.4/runtimes/fedora.40-x64/native/nethost.h Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_devel_packages - Not a valid SPDX expression '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'. Read more: https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1 - Package has .a files: dotnet-apphost-pack-8.0. Illegal package name: dotnet-apphost-pack-8.0. Does not provide -static: dotnet-apphost-pack-8.0. Read more: https://docs.fedoraproject.org/en-US/packaging-guidelines/#packaging-static-libraries Please know that there can be false-positives. --- This comment was created by the fedora-review-service https://github.com/FrostyX/fedora-review-service If you want to trigger a new Copr build, add a comment containing new Spec and SRPM URLs or [fedora-review-service-build] string.
Review notes: * Package follows Fedora Packaging Guidelines * Package builds and installs * Package licensing is correctly handled * No serious issues from rpmlint At this point, this is pretty good (all things considered), so... PACKAGE APPROVED.
The Pagure repository was created at https://src.fedoraproject.org/rpms/dotnet8.0
Thanks for the review, Neal! I have built .NET 8 for all current versions of Fedora: Rawhide: https://bodhi.fedoraproject.org/updates/FEDORA-2023-0b799a957f Fedora 39: https://bodhi.fedoraproject.org/updates/FEDORA-2023-ada4de53b1 Fedora 38: https://bodhi.fedoraproject.org/updates/FEDORA-2023-eefadf07e8