# Do *NOT* try and build this locally (using rhpkg or any other tool) if one of # the parent directories is a git repository. This build uses git-apply during # the upstream build process. git-apply will simply skip all patches since none # of the patches affect the build subdirectory. # # Use `rhpkg local --builddir ../dotnet-build` or something similar to work # around this. %{?scl:%scl_package dotnet} %{!?scl:%global pkg_name %{name}} # lldb doesn't like our nice debug information %undefine _include_minidebuginfo %global _find_debuginfo_dwz_opts %{nil} # 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 # Remove private libraries and the automatically generated dependency # on system libcurl package. We require the %%{?scl_prefix}libcurl package %global __requires_exclude ^(%{privlibs}|libcurl)\\.so %global runtime_version 2.1.29 %global sdk_version 2.1.525 Name: %{?scl_prefix}dotnet Version: %{sdk_version} Release: 1%{?dist} Group: Development/Languages Summary: .NET Core CLI tools and runtime License: MIT and ASL 2.0 and BSD URL: https://github.com/dotnet/ # The source is generated on a RHEL box via: # ./build-dotnet-tarball v%%{sdk_version} Source0: dotnet-v%{sdk_version}-SDK.tar.gz Source1: check-debug-symbols.py Source2: https://raw.githubusercontent.com/dotnet/cli/53f485c23cc467c62f80252696b8ec51ce8b4564/scripts/register-completions.bash Patch100: corefx-32956-alpn.patch Patch300: core-setup-4510-commit-id.patch ExclusiveArch: x86_64 BuildRequires: llvm-toolset-7-clang BuildRequires: cmake BuildRequires: git BuildRequires: hostname BuildRequires: krb5-devel BuildRequires: %{?scl_prefix}libcurl-devel BuildRequires: libicu-devel BuildRequires: libunwind-devel BuildRequires: llvm-toolset-7-lldb-devel BuildRequires: llvm-toolset-7-llvm BuildRequires: %{?scl_prefix}lttng-ust-devel BuildRequires: openssl-devel BuildRequires: python2 BuildRequires: zlib-devel Requires: %{name}-sdk-2.1%{?_isa} %description .NET Core 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 Core contains a runtime conforming to .NET Standards a set of framework libraries, an SDK containing compilers and a 'dotnet' application to drive everything. %package host Version: %{runtime_version} Summary: .NET command line launcher %description host The .NET Core host is a command line program that runs a standalone .NET core application or launches the SDK. .NET Core 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 runtime-2.1 Version: %{runtime_version} Summary: NET Core 2.1 runtime # Theoretically any version of the host should work Requires: %{name}-host%{?_isa} # libicu is dlopen()ed Requires: libicu # libcurl is dlopen()ed Requires: %{?scl_prefix}libcurl %description runtime-2.1 The .NET Core runtime contains everything needed to run .NET Core applications. It includes a high performance Virtual Machine as well as the framework libraries used by .NET Core applications. .NET Core 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 sdk-2.1 Version: %{sdk_version} Summary: .NET Core 2.1 Software Development Kit Requires: %{name}-sdk-2.1.5xx%{?_isa} %description sdk-2.1 The .NET Core SDK is a collection of command line applications to create, build, publish and run .NET Core applications. .NET Core 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 sdk-2.1.5xx Version: %{sdk_version} Summary: .NET Core 2.1.5xx Software Development Kit Requires: %{name}-runtime-2.1%{?_isa} %description sdk-2.1.5xx The .NET Core SDK is a collection of command line applications to create, build, publish and run .NET Core applications. .NET Core 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. %prep %setup -q -n %{pkg_name}-v%{sdk_version}-SDK # See https://github.com/dotnet/source-build/pull/669 rm -rf Tools/configuration/configuration.props # Disable warnings sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.proj # Fix bad hardcoded path in build sed -i 's|/usr/share/dotnet|%{_libdir}/%{pkg_name}|' src/core-setup/src/corehost/common/pal.unix.cpp pushd src/corefx %patch100 -p1 popd pushd src/core-setup %patch300 -p1 popd %build %{?scl:scl enable %scl llvm-toolset-7 - << \EOF} set -xe export LIBRARY_PATH="%{_libdir}" export LLVM_HOME=/opt/rh/llvm-toolset-7/root/usr export CMAKE_PREFIX_PATH="%{_prefix}" VERBOSE=1 ./build.sh \ /v:diag \ /p:MinimalConsoleLogOutput=false \ /p:ContinueOnPrebuiltBaselineError=true %{?scl:EOF} %install install -d -m 0755 %{buildroot}%{_libdir}/%{pkg_name}/ ls bin/x64/Release tar xf bin/x64/Release/dotnet-sdk-%{sdk_version}-*.tar.gz -C %{buildroot}%{_libdir}/%{pkg_name}/ # Fix permissions on files find %{buildroot}%{_libdir}/%{pkg_name}/ -type f -name '*.props' -exec chmod -x {} \; find %{buildroot}%{_libdir}/%{pkg_name}/ -type f -name '*.targets' -exec chmod -x {} \; find %{buildroot}%{_libdir}/%{pkg_name}/ -type f -name '*.dll' -exec chmod -x {} \; find %{buildroot}%{_libdir}/%{pkg_name}/ -type f -name '*.pubxml' -exec chmod -x {} \; install -dm 755 %{buildroot}/%{_root_datadir}/bash-completion/completions # dynamic completion needs the file to be named the same as the base command install %{SOURCE2} %{buildroot}/%{_root_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 -d -m 0755 %{buildroot}%{_bindir} ln -s %{_libdir}/%{pkg_name}/dotnet %{buildroot}%{_bindir}/ install -d -m 0755 %{buildroot}%{_mandir}/man1/ find -iname 'dotnet*.1' -type f -exec cp {} %{buildroot}%{_mandir}/man1/ \; # 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..." %{SOURCE1} -v %{buildroot}%{_libdir}/%{pkg_name}/ %check %{buildroot}%{_libdir}/%{pkg_name}/dotnet --info %files # empty package useful for dependencies %files host %dir %{_libdir}/%{pkg_name} %{_libdir}/%{pkg_name}/dotnet %{_libdir}/%{pkg_name}/host %{_bindir}/dotnet %doc %{_libdir}/%{pkg_name}/LICENSE.txt %doc %{_libdir}/%{pkg_name}/ThirdPartyNotices.txt %doc %{_mandir}/man1/dotnet*.1.gz # shell completions are currently only picked up from %%{_root_datadir} %dir %{_root_datadir}/bash-completion %dir %{_root_datadir}/bash-completion/completions %{_root_datadir}/bash-completion/completions/dotnet %files runtime-2.1 %dir %{_libdir}/%{pkg_name}/shared %dir %{_libdir}/%{pkg_name}/shared/Microsoft.NETCore.App %{_libdir}/%{pkg_name}/shared/Microsoft.NETCore.App/%{runtime_version} %files sdk-2.1 # empty package useful for dependencies %files sdk-2.1.5xx %dir %{_libdir}/%{pkg_name}/sdk %{_libdir}/%{pkg_name}/sdk/%{sdk_version} %changelog * Wed Aug 04 2021 Omair Majid - 2.1.525-1 - Update to .NET SDK 2.1.525 and Runtime 2.1.29 - Resolves: RHBZ#1988579 * Mon Apr 26 2021 Omair Majid - 2.1.524-1 - Update to .NET SDK 2.1.524 and Runtime 2.1.28 - Resolves: RHBZ#1953762 * Tue Apr 06 2021 Omair Majid - 2.1.523-1 - Update to .NET Core SDK 2.1.523 and Runtime 2.1.27 - Resolves: RHBZ#1946717 * Mon Mar 01 2021 Omair Majid - 2.1.522-1 - Update to .NET Core SDK 2.1.522 and Runtime 2.1.26 - Resolves: RHBZ#1933333 * Thu Jan 28 2021 Omair Majid - 2.1.521-1 - Update to .NET Core SDK 2.1.521 and Runtime 2.1.25 - Resolves: RHBZ#1921938 * Fri Dec 11 2020 Omair Majid - 2.1.520-1 - Update to .NET Core SDK 2.1.520 and Runtime 2.1.24 - Resolves: RHBZ#1905574 * Fri Oct 02 2020 Omair Majid - 2.1.519-1 - Update to .NET Core SDK 2.1.519 and Runtime 2.1.23 - Resolves: RHBZ#1884079 * Mon Aug 31 2020 Omair Majid - 2.1.518-1 - Update to .NET Core SDK 2.1.518 and Runtime 2.1.22 - Resolves: RHBZ#1874063 * Wed Aug 05 2020 Omair Majid - 2.1.517-1 - Update to .NET Core SDK 2.1.517 and Runtime 2.1.21 - Resolves: RHBZ#1866118 * Mon Jun 29 2020 Omair Majid - 2.1.516-2 - Rebuild against updated rh-dotnet21-curl packages - Resolves: RHBZ#1858926 * Mon Jun 29 2020 Omair Majid - 2.1.516-1 - Update to .NET Core SDK 2.1.516 and Runtime 2.1.20 - Resolves: RHBZ#1851970 * Thu Jun 04 2020 Omair Majid - 2.1.515-1 - Update to .NET Core SDK 2.1.515 and Runtime 2.1.19 - Resolves: RHBZ#1843671 * Wed May 06 2020 Omair Majid - 2.1.514-2 - Update to new release tarball - Resolves: RHBZ#1828391 * Mon Apr 27 2020 Omair Majid - 2.1.514-1 - Update to .NET Core SDK 2.1.514 and Runtime 2.1.18 - Resolves: RHBZ#1828391 * Tue Mar 24 2020 Omair Majid - 2.1.513-1 - Update to .NET Core SDK 2.1.513 and Runtime 2.1.17 - Resolves: RHBZ#1815639 * Tue Mar 10 2020 Omair Majid - 2.1.512-1 - Update to .NET Core SDK 2.1.512 and Runtime 2.1.16 - Resolves: RHBZ#1799067 * Mon Dec 23 2019 Omair Majid - 2.1.511-1 - Update to .NET Core Runtime 2.1.15 and SDK 2.1.511 - Resolves: RHBZ#1786178 * Thu Nov 07 2019 Radka Janekova - 2.1.510-2 - Update to rebuild .NET Core Runtime 2.1.14 and SDK 2.1.510 - Resolves: RHBZ#1767628 * Thu Oct 31 2019 Omair Majid - 2.1.510-1 - Update to .NET Core Runtime 2.1.14 and SDK 2.1.510 - Resolves: RHBZ#1767628 * Thu Aug 29 2019 Omair Majid - 2.1.509-1 - Update to .NET Core Runtime 2.1.13 and SDK 2.1.509 - Resolves: RHBZ#1743290 * Wed Jul 10 2019 Omair Majid - 2.1.508-1 - Update to .NET Core Runtime 2.1.12 and SDK 2.1.508 - Resolves: RHBZ#1728839 * Wed May 01 2019 Omair Majid - 2.1.507-2 - Use the latest upstream completion file for bash completion - Resolves: RHBZ#1705259 * Wed May 01 2019 Omair Majid - 2.1.507-1 - Update to .NET Core Runtime 2.1.11 and SDK 2.1.507 - Resolves: RHBZ#1705147 * Tue Apr 02 2019 Omair Majid - 2.1.506-1 - Update to .NET Core Runtime 2.1.10 and SDK 2.1.506 * Wed Mar 06 2019 Omair Majid - 2.1.505-1 - Update to .NET Core Runtime 2.1.9 and SDK 2.1.505 - Resolves: RHBZ#1685720 * Tue Jan 29 2019 Omair Majid - 2.1.504-1 - Update to .NET Core Runtime 2.1.8 and SDK 2.1.504 - Resolves: RHBZ#1670648 * Thu Dec 13 2018 Omair Majid - 2.1.503-1 - Update to .NET Core Runtime 2.1.7 and SDK 2.1.503 - Resolves: RHBZ#1659216 * Wed Nov 14 2018 Omair Majid - 2.1.500-5 - Fix extract out of directory - Resolves: CVE-2018-8416 - Resolves: rhbz#1649693 * Fri Nov 09 2018 Omair Majid - 2.1.500-3 - Fix linking alpn support by linking to OpenSSL correctly - Fix commit ids in dotnet --info - Resolves: rhbz#1643978 - Resolves: rhbz#1648425 * Thu Nov 08 2018 Omair Majid - 2.1.500-2 - Update to rebuild of .NET Core Runtime 2.1.5 and SDK 2.1.500 - Resolves: rhbz#1646697 * Mon Nov 05 2018 Omair Majid - 2.1.500-1 - Update to .NET Core Runtime 2.1.5 and SDK 2.1.500 - Resolves: rhbz#1646697 * Mon Oct 01 2018 Omair Majid - 2.1.403-1 - Update to .NET Core Runtime 2.1.5 and SDK 2.1.403 - Resolves: rhbz#1634169 * Fri Sep 07 2018 Omair Majid - 2.1.402-2 - Update to new build of .NET Core Runtime 2.1.4 and SDK 2.1.402 - Resolves: RHBZ#1625403 * Tue Sep 04 2018 Omair Majid - 2.1.402-1 - Update to .NET Core Runtime 2.1.4 and SDK 2.1.402 - Fix OOM error in containers - Resolves: RHBZ#1621889 * Wed Aug 08 2018 Omair Majid - 2.1.401-1 - Update to .NET Core Runtime 2.1.3 and SDK 2.1.401 * Wed Jul 4 2018 Omair Majid - 2.1.302-1 - Update to .NET Core Runtime 2.1.2 and SDK 2.1.302 * Wed Jun 20 2018 Omair Majid - 2.1.301-5 - Add sdk-2.1.3xx subpackage * Tue Jun 19 2018 Omair Majid - 2.1.301-4 - Rebuild to pick up new lttng-ust * Tue Jun 19 2018 Omair Majid - 2.1.301-3 - Add workaround for unreadable system certificates - Resolves: rhbz#1588099 * Tue Jun 19 2018 Omair Majid - 2.1.301-2 - Add updated man pages - Resolves: rhbz#1584790 * Thu Jun 14 2018 Omair Majid - 2.1.301-1 - Update to .NET Core SDK 2.1.301 * Wed May 30 2018 Omair Majid - 2.1.300-7 - Explicitly require a modified libcurl * Tue May 29 2018 Omair Majid - 2.1.300-6 - Install bash completions in %%{_root_datadir} * Mon May 28 2018 Omair Majid - 2.1.300-5 - Add provides for dotnet-sdk-2.1.3xx * Mon May 28 2018 Omair Majid - 2.1.300-4 - Remove patch for ASP.NET Core templates. No longer needed for 2.1. * Fri May 25 2018 Omair Majid - 2.1.300-3 - Remove net46 symlink * Thu May 24 2018 Omair Majid - 2.1.300-2 - Rebuild to pick up updated dependencies * Thu May 24 2018 Omair Majid - 2.1.300-1 - New package. Import from Fedora (DotNet SIG package).