| |
@@ -19,13 +19,21 @@
|
| |
%global dotnet_cflags %(echo %optflags | sed -e 's/-fcf-protection//' | sed -e 's/-fstack-clash-protection//' | sed -re 's/-specs=[^ ]*//g')
|
| |
%global dotnet_ldflags %(echo %{__global_ldflags} | sed -re 's/-specs=[^ ]*//g')
|
| |
|
| |
+ %if 0%{?fedora}
|
| |
+ %global use_bundled_libunwind 0
|
| |
+ %else
|
| |
+ %global use_bundled_libunwind 1
|
| |
+ %endif
|
| |
+
|
| |
+ %global simple_name dotnet
|
| |
+
|
| |
%global host_version 2.1.7
|
| |
%global sdk_version 2.1.503
|
| |
%global runtime_version 2.1.7
|
| |
|
| |
- Name: dotnet
|
| |
+ Name: %{simple_name}2.1
|
| |
Version: %{sdk_version}
|
| |
- Release: 4%{?dist}
|
| |
+ Release: 5%{?dist}
|
| |
Summary: .NET Core CLI tools and runtime
|
| |
License: MIT and ASL 2.0 and BSD
|
| |
URL: https://github.com/dotnet/
|
| |
@@ -52,36 +60,44 @@
|
| |
|
| |
Patch10: corefx-optflags-support.patch
|
| |
Patch11: corefx-32956-alpn.patch
|
| |
+ Patch12: corefx-rhel-runtime-ids.patch
|
| |
+
|
| |
+ Patch100: coreclr-build-python3.patch
|
| |
+ Patch101: coreclr-cmake-python3.patch
|
| |
+ Patch102: coreclr-mscorlib.patch
|
| |
+ Patch103: coreclr-pie.patch
|
| |
|
| |
Patch300: core-setup-4510-commit-id.patch
|
| |
+ Patch301: core-setup-pie.patch
|
| |
+
|
| |
Patch400: cli-telemetry-optout.patch
|
| |
|
| |
ExclusiveArch: x86_64
|
| |
|
| |
BuildRequires: clang
|
| |
BuildRequires: cmake
|
| |
+ # Bootstrap SDK needs OpenSSL 1.0 to run, but we can build and then
|
| |
+ # run with either OpenSSL 1.0 or 1.1
|
| |
+ %if 0%{?fedora} >= 26 || 0%{?rhel} >= 8
|
| |
+ BuildRequires: compat-openssl10
|
| |
+ %endif
|
| |
BuildRequires: git
|
| |
BuildRequires: glibc-langpack-en
|
| |
BuildRequires: hostname
|
| |
BuildRequires: krb5-devel
|
| |
BuildRequires: libcurl-devel
|
| |
BuildRequires: libicu-devel
|
| |
+ %if ! %{use_bundled_libunwind}
|
| |
BuildRequires: libunwind-devel
|
| |
+ %endif
|
| |
BuildRequires: libuuid-devel
|
| |
BuildRequires: lldb-devel
|
| |
BuildRequires: llvm
|
| |
BuildRequires: lttng-ust-devel
|
| |
- BuildRequires: python
|
| |
+ BuildRequires: openssl-devel
|
| |
+ BuildRequires: python3
|
| |
BuildRequires: strace
|
| |
BuildRequires: zlib-devel
|
| |
- BuildRequires: openssl-devel
|
| |
- %if 0%{fedora} >= 26
|
| |
- # Bootstrap SDK needs OpenSSL 1.0 to run, but we can build and then
|
| |
- # run with either OpenSSL 1.0 or 1.1
|
| |
- BuildRequires: compat-openssl10
|
| |
- %endif
|
| |
-
|
| |
- Requires: %{name}-sdk-2.1%{?_isa} >= %{sdk_version}-%{release}
|
| |
|
| |
%description
|
| |
.NET Core is a fast, lightweight and modular platform for creating
|
| |
@@ -94,12 +110,32 @@
|
| |
framework libraries, an SDK containing compilers and a 'dotnet'
|
| |
application to drive everything.
|
| |
|
| |
- %package host
|
| |
+
|
| |
+ %package -n %{simple_name}
|
| |
+
|
| |
+ Version: %{sdk_version}
|
| |
+ Summary: .NET CLI tools and runtime
|
| |
+
|
| |
+ Requires: %{simple_name}-sdk-2.1%{?_isa} >= %{sdk_version}-%{release}
|
| |
+
|
| |
+ %description -n %{simple_name}
|
| |
+ .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 -n %{simple_name}-host
|
| |
|
| |
Version: %{host_version}
|
| |
Summary: .NET command line launcher
|
| |
|
| |
- %description host
|
| |
+ %description -n %{simple_name}-host
|
| |
The .NET Core host is a command line program that runs a standalone
|
| |
.NET core application or launches the SDK.
|
| |
|
| |
@@ -109,16 +145,17 @@
|
| |
It particularly focuses on creating console applications, web
|
| |
applications and micro-services.
|
| |
|
| |
- %package host-fxr-2.1
|
| |
+
|
| |
+ %package -n %{simple_name}-host-fxr-2.1
|
| |
|
| |
Version: %{host_version}
|
| |
Summary: .NET Core 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 Core
|
| |
- Requires: %{name}-host%{?_isa} >= %{host_version}-%{release}
|
| |
+ Requires: %{simple_name}-host%{?_isa} >= %{host_version}-%{release}
|
| |
|
| |
- %description host-fxr-2.1
|
| |
+ %description -n %{simple_name}-host-fxr-2.1
|
| |
The .NET Core host resolver contains the logic to resolve and select
|
| |
the right version of the .NET Core SDK or runtime to use.
|
| |
|
| |
@@ -129,18 +166,17 @@
|
| |
applications and micro-services.
|
| |
|
| |
|
| |
- %package runtime-2.1
|
| |
+ %package -n %{simple_name}-runtime-2.1
|
| |
|
| |
Version: %{runtime_version}
|
| |
Summary: NET Core 2.1 runtime
|
| |
|
| |
- Requires: %{name}-host-fxr-2.1%{?_isa} >= %{host_version}-%{release}
|
| |
+ Requires: %{simple_name}-host-fxr-2.1%{?_isa} >= %{host_version}-%{release}
|
| |
|
| |
# libicu is dlopen()ed
|
| |
Requires: libicu
|
| |
|
| |
-
|
| |
- %description runtime-2.1
|
| |
+ %description -n %{simple_name}-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.
|
| |
@@ -151,14 +187,15 @@
|
| |
It particularly focuses on creating console applications, web
|
| |
applications and micro-services.
|
| |
|
| |
- %package sdk-2.1
|
| |
+
|
| |
+ %package -n %{simple_name}-sdk-2.1
|
| |
|
| |
Version: %{sdk_version}
|
| |
Summary: .NET Core 2.1 Software Development Kit
|
| |
|
| |
- Requires: %{name}-sdk-2.1.5xx%{?_isa} >= %{sdk_version}-%{release}
|
| |
+ Requires: %{simple_name}-sdk-2.1.5xx%{?_isa} >= %{sdk_version}-%{release}
|
| |
|
| |
- %description sdk-2.1
|
| |
+ %description -n %{simple_name}-sdk-2.1
|
| |
The .NET Core SDK is a collection of command line applications to
|
| |
create, build, publish and run .NET Core applications.
|
| |
|
| |
@@ -168,14 +205,15 @@
|
| |
It particularly focuses on creating console applications, web
|
| |
applications and micro-services.
|
| |
|
| |
- %package sdk-2.1.5xx
|
| |
+
|
| |
+ %package -n %{simple_name}-sdk-2.1.5xx
|
| |
|
| |
Version: %{sdk_version}
|
| |
Summary: .NET Core 2.1.5xx Software Development Kit
|
| |
|
| |
- Requires: %{name}-runtime-2.1%{?_isa} >= %{runtime_version}-%{release}
|
| |
+ Requires: %{simple_name}-runtime-2.1%{?_isa} >= %{runtime_version}-%{release}
|
| |
|
| |
- %description sdk-2.1.5xx
|
| |
+ %description -n %{simple_name}-sdk-2.1.5xx
|
| |
The .NET Core SDK is a collection of command line applications to
|
| |
create, build, publish and run .NET Core applications.
|
| |
|
| |
@@ -186,10 +224,10 @@
|
| |
applications and micro-services.
|
| |
|
| |
%prep
|
| |
- %setup -q -n %{name}-v%{runtime_version}
|
| |
+ %setup -q -n %{simple_name}-v%{runtime_version}
|
| |
|
| |
# Fix bad hardcoded path in build
|
| |
- sed -i 's|/usr/share/dotnet|%{_libdir}/%{name}|' src/core-setup/src/corehost/common/pal.unix.cpp
|
| |
+ sed -i 's|/usr/share/dotnet|%{_libdir}/%{simple_name}|' src/core-setup/src/corehost/common/pal.unix.cpp
|
| |
|
| |
pushd src/corefx
|
| |
%patch1 -p1
|
| |
@@ -202,36 +240,54 @@
|
| |
|
| |
%patch10 -p1
|
| |
%patch11 -p1
|
| |
+ %patch12 -p1
|
| |
+ popd
|
| |
+
|
| |
+ pushd src/coreclr
|
| |
+ %patch100 -p1
|
| |
+ %patch101 -p1
|
| |
+ %patch102 -p1
|
| |
+ %patch103 -p1
|
| |
popd
|
| |
|
| |
pushd src/core-setup
|
| |
%patch300 -p1
|
| |
+ %patch301 -p1
|
| |
popd
|
| |
|
| |
pushd src/cli
|
| |
%patch400 -p1
|
| |
popd
|
| |
|
| |
- %build
|
| |
+ %if %{use_bundled_libunwind}
|
| |
+ # Use bundled libunwind
|
| |
+ sed -i 's|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=TRUE|-DCLR_CMAKE_USE_SYSTEM_LIBUNWIND=FALSE|' repos/coreclr.proj
|
| |
+ %endif
|
| |
|
| |
+ # disable -Werror
|
| |
+ sed -i '/add_compile_options(-Werror)/d' src/coreclr/compileoptions.cmake
|
| |
+
|
| |
+
|
| |
+ %build
|
| |
export CFLAGS="%{dotnet_cflags}"
|
| |
export CXXFLAGS="%{dotnet_cflags}"
|
| |
export LDFLAGS="%{dotnet_ldflags}"
|
| |
|
| |
VERBOSE=1 ./build.sh \
|
| |
- /v:diag \
|
| |
- /p:MinimalConsoleLogOutput=false
|
| |
+ /v:n \
|
| |
+ /p:MinimalConsoleLogOutput=false \
|
| |
+
|
| |
|
| |
%install
|
| |
- install -d -m 0755 %{buildroot}%{_libdir}/%{name}/
|
| |
+ install -d -m 0755 %{buildroot}%{_libdir}/%{simple_name}/
|
| |
ls bin/x64/Release
|
| |
- tar xf bin/x64/Release/dotnet-sdk-%{sdk_version}-*.tar.gz -C %{buildroot}%{_libdir}/%{name}/
|
| |
+ tar xf bin/x64/Release/dotnet-sdk-%{sdk_version}-*.tar.gz -C %{buildroot}%{_libdir}/%{simple_name}/
|
| |
|
| |
# Fix permissions on files
|
| |
- find %{buildroot}%{_libdir}/%{name}/ -type f -name '*.props' -exec chmod -x {} \;
|
| |
- find %{buildroot}%{_libdir}/%{name}/ -type f -name '*.targets' -exec chmod -x {} \;
|
| |
- find %{buildroot}%{_libdir}/%{name}/ -type f -name '*.dll' -exec chmod -x {} \;
|
| |
- find %{buildroot}%{_libdir}/%{name}/ -type f -name '*.pubxml' -exec chmod -x {} \;
|
| |
+ find %{buildroot}%{_libdir}/%{simple_name}/ -type f -name '*.props' -exec chmod -x {} \;
|
| |
+ find %{buildroot}%{_libdir}/%{simple_name}/ -type f -name '*.targets' -exec chmod -x {} \;
|
| |
+ find %{buildroot}%{_libdir}/%{simple_name}/ -type f -name '*.dll' -exec chmod -x {} \;
|
| |
+ find %{buildroot}%{_libdir}/%{simple_name}/ -type f -name '*.pubxml' -exec chmod -x {} \;
|
| |
|
| |
# Add ~/.dotnet/tools to $PATH for all users
|
| |
install -dm 0755 %{buildroot}%{_sysconfdir}/profile.d/
|
| |
@@ -246,7 +302,7 @@
|
| |
#install src/cli/scripts/register-completions.zsh %%{buildroot}/%%{_datadir}/zsh/site-functions/_dotnet
|
| |
|
| |
install -d -m 0755 %{buildroot}%{_bindir}
|
| |
- ln -s %{_libdir}/%{name}/dotnet %{buildroot}%{_bindir}/
|
| |
+ ln -s %{_libdir}/%{simple_name}/dotnet %{buildroot}%{_bindir}/
|
| |
|
| |
install -d -m 0755 %{buildroot}%{_mandir}/man1/
|
| |
find -iname 'dotnet*.1' -type f -exec cp {} %{buildroot}%{_mandir}/man1/ \;
|
| |
@@ -255,45 +311,52 @@
|
| |
# 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}/%{name}/
|
| |
+ %{SOURCE1} -v %{buildroot}%{_libdir}/%{simple_name}/
|
| |
|
| |
%check
|
| |
- %{buildroot}%{_libdir}/%{name}/dotnet --info
|
| |
+ %{buildroot}%{_libdir}/%{simple_name}/dotnet --info
|
| |
|
| |
- %files
|
| |
+ %files -n %{simple_name}
|
| |
# empty package useful for dependencies
|
| |
|
| |
- %files host
|
| |
- %dir %{_libdir}/%{name}
|
| |
- %{_libdir}/%{name}/dotnet
|
| |
- %dir %{_libdir}/%{name}/host
|
| |
- %dir %{_libdir}/%{name}/host/fxr
|
| |
+ %files -n %{simple_name}-host
|
| |
+ %dir %{_libdir}/%{simple_name}
|
| |
+ %{_libdir}/%{simple_name}/dotnet
|
| |
+ %dir %{_libdir}/%{simple_name}/host
|
| |
+ %dir %{_libdir}/%{simple_name}/host/fxr
|
| |
%{_bindir}/dotnet
|
| |
- %license %{_libdir}/%{name}/LICENSE.txt
|
| |
- %license %{_libdir}/%{name}/ThirdPartyNotices.txt
|
| |
+ %license %{_libdir}/%{simple_name}/LICENSE.txt
|
| |
+ %license %{_libdir}/%{simple_name}/ThirdPartyNotices.txt
|
| |
%doc %{_mandir}/man1/dotnet*.1.gz
|
| |
%{_sysconfdir}/profile.d/dotnet.sh
|
| |
%dir %{_datadir}/bash-completion
|
| |
%dir %{_datadir}/bash-completion/completions
|
| |
%{_datadir}/bash-completion/completions/dotnet
|
| |
|
| |
- %files host-fxr-2.1
|
| |
- %dir %{_libdir}/%{name}/host/fxr
|
| |
- %{_libdir}/%{name}/host/fxr/%{host_version}
|
| |
+ %files -n %{simple_name}-host-fxr-2.1
|
| |
+ %dir %{_libdir}/%{simple_name}/host/fxr
|
| |
+ %{_libdir}/%{simple_name}/host/fxr/%{host_version}
|
| |
|
| |
- %files runtime-2.1
|
| |
- %dir %{_libdir}/%{name}/shared
|
| |
- %dir %{_libdir}/%{name}/shared/Microsoft.NETCore.App
|
| |
- %{_libdir}/%{name}/shared/Microsoft.NETCore.App/%{runtime_version}
|
| |
+ %files -n %{simple_name}-runtime-2.1
|
| |
+ %dir %{_libdir}/%{simple_name}/shared
|
| |
+ %dir %{_libdir}/%{simple_name}/shared/Microsoft.NETCore.App
|
| |
+ %{_libdir}/%{simple_name}/shared/Microsoft.NETCore.App/%{runtime_version}
|
| |
|
| |
- %files sdk-2.1
|
| |
+ %files -n %{simple_name}-sdk-2.1
|
| |
# empty package useful for dependencies
|
| |
|
| |
- %files sdk-2.1.5xx
|
| |
- %dir %{_libdir}/%{name}/sdk
|
| |
- %{_libdir}/%{name}/sdk/%{sdk_version}
|
| |
+ %files -n %{simple_name}-sdk-2.1.5xx
|
| |
+ %dir %{_libdir}/%{simple_name}/sdk
|
| |
+ %{_libdir}/%{simple_name}/sdk/%{sdk_version}
|
| |
|
| |
%changelog
|
| |
+ * Wed Feb 13 2019 Omair Majid <omajid@redhat.com> - 2.1.503-4
|
| |
+ - Rename spec file to dotnet2.1
|
| |
+ - Link executibles with -pie
|
| |
+ - Build using python3
|
| |
+ - Add RHEL 8 runtime ids
|
| |
+ - Conditionalize build to support bundled/system libunwind
|
| |
+
|
| |
* Mon Jan 21 2019 Omair Majid <omajid@redhat.com> - 2.1.503-4
|
| |
- Backport support for OpenSSL 1.1
|
| |
|
| |
This message should probably be updated as well.