.NET Core CLI tools and runtime
CentOS Sources
2019-01-09 ae1e3a88b4210bae6dabdc3a94bf5a4d87d62545
commit | author | age
beadc4 1 # Do *NOT* try and build this locally (using rhpkg or any other tool) if one of
CS 2 # the parent directories is a git repository. This build uses git-apply during
3 # the upstream build process. git-apply will simply skip all patches since none
4 # of the patches affect the build subdirectory.
5 #
6 # Use `rhpkg local --builddir ../dotnet-build` or something similar to work
7 # around this.
8
6b77c8 9 %{?scl:%scl_package dotnet}
CS 10 %{!?scl:%global pkg_name %{name}}
11
12 # lldb doesn't like our nice debug information
13 %undefine _include_minidebuginfo
14 %global _find_debuginfo_dwz_opts %{nil}
15
16 # Avoid provides/requires from private libraries
17 %global privlibs             libhostfxr
18 %global privlibs %{privlibs}|libclrjit
19 %global privlibs %{privlibs}|libcoreclr
20 %global privlibs %{privlibs}|libcoreclrtraceptprovider
21 %global privlibs %{privlibs}|libdbgshim
22 %global privlibs %{privlibs}|libhostpolicy
23 %global privlibs %{privlibs}|libmscordaccore
24 %global privlibs %{privlibs}|libmscordbi
25 %global privlibs %{privlibs}|libsos
26 %global privlibs %{privlibs}|libsosplugin
27 %global __provides_exclude ^(%{privlibs})\\.so
28
29 # Remove private libraries and the automatically generated dependency
30 # on system libcurl package. We require the %%{?scl_prefix}libcurl package
31 %global __requires_exclude ^(%{privlibs}|libcurl)\\.so
32
ae1e3a 33 %global sdk_version 2.1.503
CS 34 %global runtime_version 2.1.7
6b77c8 35
CS 36 Name:           %{?scl_prefix}dotnet
37 Version:        %{sdk_version}
ae1e3a 38 Release:        1%{?dist}
6b77c8 39 Group:          Development/Languages
CS 40 Summary:        .NET Core CLI tools and runtime
41 License:        MIT and ASL 2.0 and BSD
42 URL:            https://github.com/dotnet/
43
44 # The source is generated on a RHEL box via:
45 # - git clone https://github.com/dotnet/source-build
ed07d0 46 # - git checkout v%%{sdk_version}
6b77c8 47 # - set environment variables + tweak sources to build
ed07d0 48 # - ./build-source-tarball.sh dotnet-%%{sdk_version}
CS 49 # - tar cvzf dotnet-%%{sdk_version}.tar.gz dotnet-%%{sdk_version}
50
ae1e3a 51 Source0:        dotnet-%{runtime_version}.tar.gz
6b77c8 52 Source1:        check-debug-symbols.py
62dc5f 53
6a5430 54 Patch100:       corefx-32956-alpn.patch
CS 55
56 Patch300:       core-setup-4510-commit-id.patch
6b77c8 57
CS 58 ExclusiveArch:  x86_64
59
60 BuildRequires:  llvm-toolset-7-clang
61 BuildRequires:  cmake
ed07d0 62 BuildRequires:  git
6b77c8 63 BuildRequires:  hostname
CS 64 BuildRequires:  krb5-devel
65 BuildRequires:  %{?scl_prefix}libcurl-devel
66 BuildRequires:  libicu-devel
67 BuildRequires:  libunwind-devel
68 BuildRequires:  llvm-toolset-7-lldb-devel
69 BuildRequires:  llvm-toolset-7-llvm
70 BuildRequires:  %{?scl_prefix}lttng-ust-devel
71 BuildRequires:  openssl-devel
72 BuildRequires:  python2
73 BuildRequires:  zlib-devel
74
75 Requires:       %{name}-sdk-2.1%{?_isa}
76
77 %description
78 .NET Core is a fast, lightweight and modular platform for creating
79 cross platform applications that work on Linux, macOS and Windows.
80
81 It particularly focuses on creating console applications, web
82 applications and micro-services.
83
84 .NET Core contains a runtime conforming to .NET Standards a set of
85 framework libraries, an SDK containing compilers and a 'dotnet'
86 application to drive everything.
87
88 %package host
89
ed07d0 90 Version:        %{runtime_version}
6b77c8 91 Summary:        .NET command line launcher
CS 92
93 %description host
94 The .NET Core host is a command line program that runs a standalone
95 .NET core application or launches the SDK.
96
97 .NET Core is a fast, lightweight and modular platform for creating
98 cross platform applications that work on Linux, Mac and Windows.
99
100 It particularly focuses on creating console applications, web
101 applications and micro-services.
102
103 %package runtime-2.1
104
ed07d0 105 Version:        %{runtime_version}
CS 106 Summary:        NET Core 2.1 runtime
107
6b77c8 108 # Theoretically any version of the host should work
ed07d0 109 Requires:       %{name}-host%{?_isa}
6b77c8 110
CS 111 # libicu is dlopen()ed
112 Requires:       libicu
113 # libcurl is dlopen()ed
114 Requires:       %{?scl_prefix}libcurl
115
116 %description runtime-2.1
117 The .NET Core runtime contains everything needed to run .NET Core applications.
118 It includes a high performance Virtual Machine as well as the framework
119 libraries used by .NET Core applications.
120
121 .NET Core is a fast, lightweight and modular platform for creating
122 cross platform applications that work on Linux, Mac and Windows.
123
124 It particularly focuses on creating console applications, web
125 applications and micro-services.
126
127 %package sdk-2.1
128
129 Version:        %{sdk_version}
130 Summary:        .NET Core 2.1 Software Development Kit
131
62dc5f 132 Requires:       %{name}-sdk-2.1.5xx%{?_isa}
6b77c8 133
CS 134 %description sdk-2.1
135 The .NET Core SDK is a collection of command line applications to
136 create, build, publish and run .NET Core applications.
137
138 .NET Core is a fast, lightweight and modular platform for creating
139 cross platform applications that work on Linux, Mac and Windows.
140
141 It particularly focuses on creating console applications, web
142 applications and micro-services.
143
62dc5f 144 %package sdk-2.1.5xx
ed07d0 145
CS 146 Version:        %{sdk_version}
62dc5f 147 Summary:        .NET Core 2.1.5xx Software Development Kit
ed07d0 148
CS 149 Requires:       %{name}-runtime-2.1%{?_isa}
150
62dc5f 151 %description sdk-2.1.5xx
ed07d0 152 The .NET Core SDK is a collection of command line applications to
CS 153 create, build, publish and run .NET Core applications.
154
155 .NET Core is a fast, lightweight and modular platform for creating
156 cross platform applications that work on Linux, Mac and Windows.
157
158 It particularly focuses on creating console applications, web
159 applications and micro-services.
160
6b77c8 161 %prep
ae1e3a 162 %setup -q -n %{pkg_name}-%{runtime_version}
6b77c8 163
8e2aee 164 # See https://github.com/dotnet/source-build/pull/669
CS 165 rm -rf Tools/configuration/configuration.props
166
6b77c8 167 # Disable warnings
CS 168 sed -i 's|skiptests|skiptests ignorewarnings|' repos/coreclr.proj
169
170 # Fix bad hardcoded path in build
171 sed -i 's|/usr/share/dotnet|%{_libdir}/%{pkg_name}|' src/core-setup/src/corehost/common/pal.unix.cpp
62dc5f 172
CS 173 pushd src/corefx
174 %patch100 -p1
175 popd
176
177 pushd src/core-setup
178 %patch300 -p1
179 popd
6b77c8 180
CS 181 %build
182 %{?scl:scl enable %scl llvm-toolset-7 - << \EOF}
183 set -xe
184
185 export LIBRARY_PATH="%{_libdir}"
186 export LLVM_HOME=/opt/rh/llvm-toolset-7/root/usr 
187 export CMAKE_PREFIX_PATH="%{_prefix}"
188
4ba3cf 189 VERBOSE=1 ./build.sh \
CS 190   /v:diag \
191   /p:MinimalConsoleLogOutput=false \
192   /p:ContinueOnPrebuiltBaselineError=true
6b77c8 193
CS 194 %{?scl:EOF}
195
196 %install
197 install -d -m 0755 %{buildroot}%{_libdir}/%{pkg_name}/
198 ls bin/x64/Release
199 tar xf bin/x64/Release/dotnet-sdk-%{sdk_version}-*.tar.gz -C %{buildroot}%{_libdir}/%{pkg_name}/
200
201 # Fix permissions on files
202 find %{buildroot}%{_libdir}/%{pkg_name}/ -type f -name '*.props' -exec chmod -x {} \;
203 find %{buildroot}%{_libdir}/%{pkg_name}/ -type f -name '*.targets' -exec chmod -x {} \;
204 find %{buildroot}%{_libdir}/%{pkg_name}/ -type f -name '*.dll' -exec chmod -x {} \;
205 find %{buildroot}%{_libdir}/%{pkg_name}/ -type f -name '*.pubxml' -exec chmod -x {} \;
206
207 install -dm 755 %{buildroot}/%{_root_datadir}/bash-completion/completions
208 # dynamic completion needs the file to be named the same as the base command
209 install src/cli/scripts/register-completions.bash %{buildroot}/%{_root_datadir}/bash-completion/completions/dotnet
210
211 # TODO: the zsh completion script needs to be ported to use #compdef
212 #install -dm 755 %%{buildroot}/%%{_datadir}/zsh/site-functions
213 #install src/cli/scripts/register-completions.zsh %%{buildroot}/%%{_datadir}/zsh/site-functions/_dotnet
214
215 install -d -m 0755 %{buildroot}%{_bindir}
216 ln -s %{_libdir}/%{pkg_name}/dotnet %{buildroot}%{_bindir}/
217
218 install -d -m 0755 %{buildroot}%{_mandir}/man1/
219 find -iname 'dotnet*.1' -type f -exec cp {} %{buildroot}%{_mandir}/man1/ \;
220
221 # Check debug symbols in all elf objects. This is not in %%check
222 # because native binaries are stripped by rpm-build after %%install.
223 # So we need to do this check earlier.
224 echo "Testing build results for debug symbols..."
225 %{SOURCE1} -v %{buildroot}%{_libdir}/%{pkg_name}/
226
227 %check
228 %{buildroot}%{_libdir}/%{pkg_name}/dotnet --info
229
230 %files
231 # empty package useful for dependencies
232
233 %files host
234 %dir %{_libdir}/%{pkg_name}
235 %{_libdir}/%{pkg_name}/dotnet
236 %{_libdir}/%{pkg_name}/host
237 %{_bindir}/dotnet
238 %doc %{_libdir}/%{pkg_name}/LICENSE.txt
239 %doc %{_libdir}/%{pkg_name}/ThirdPartyNotices.txt
ed07d0 240 %doc %{_mandir}/man1/dotnet*.1.gz
CS 241 # shell completions are currently only picked up from %%{_root_datadir}
242 %dir %{_root_datadir}/bash-completion
243 %dir %{_root_datadir}/bash-completion/completions
244 %{_root_datadir}/bash-completion/completions/dotnet
6b77c8 245
CS 246 %files runtime-2.1
247 %dir %{_libdir}/%{pkg_name}/shared
248 %dir %{_libdir}/%{pkg_name}/shared/Microsoft.NETCore.App
249 %{_libdir}/%{pkg_name}/shared/Microsoft.NETCore.App/%{runtime_version}
250
251 %files sdk-2.1
ed07d0 252 # empty package useful for dependencies
CS 253
62dc5f 254 %files sdk-2.1.5xx
6b77c8 255 %dir %{_libdir}/%{pkg_name}/sdk
CS 256 %{_libdir}/%{pkg_name}/sdk/%{sdk_version}
257
258 %changelog
ae1e3a 259 * Thu Dec 13 2018 Omair Majid <omajid@redhat.com> - 2.1.503-1
CS 260 - Update to .NET Core Runtime 2.1.7 and SDK 2.1.503
261 - Resolves: RHBZ#1659216
262
6a5430 263 * Wed Nov 14 2018 Omair Majid <omajid@redhat.com> - 2.1.500-5
CS 264 - Fix extract out of directory
265 - Resolves: CVE-2018-8416
266 - Resolves: rhbz#1649693
267
62dc5f 268 * Fri Nov 09 2018 Omair Majid <omajid@redhat.com> - 2.1.500-3
CS 269 - Fix linking alpn support by linking to OpenSSL correctly
270 - Fix commit ids in dotnet --info
271 - Resolves: rhbz#1643978
272 - Resolves: rhbz#1648425
273
274 * Thu Nov 08 2018 Omair Majid <omajid@redhat.com> - 2.1.500-2
275 - Update to rebuild of .NET Core Runtime 2.1.5 and SDK 2.1.500
276 - Resolves: rhbz#1646697
277
278 * Mon Nov 05 2018 Omair Majid <omajid@redhat.com> - 2.1.500-1
279 - Update to .NET Core Runtime 2.1.5 and SDK 2.1.500
280 - Resolves: rhbz#1646697
281
4ba3cf 282 * Mon Oct 01 2018 Omair Majid <omajid@redhat.com> - 2.1.403-1
CS 283 - Update to .NET Core Runtime 2.1.5 and SDK 2.1.403
284 - Resolves: rhbz#1634169
285
9fb373 286 * Fri Sep 07 2018 Omair Majid <omajid@redhat.com> - 2.1.402-2
CS 287 - Update to new build of .NET Core Runtime 2.1.4 and SDK 2.1.402
288 - Resolves: RHBZ#1625403
289
290 * Tue Sep 04 2018 Omair Majid <omajid@redhat.com> - 2.1.402-1
291 - Update to .NET Core Runtime 2.1.4 and SDK 2.1.402
292 - Fix OOM error in containers
293 - Resolves: RHBZ#1621889
294
8e2aee 295 * Wed Aug 08 2018 Omair Majid <omajid@redhat.com> - 2.1.401-1
CS 296 - Update to .NET Core Runtime 2.1.3 and SDK 2.1.401
297
beadc4 298 * Wed Jul 4 2018 Omair Majid <omajid@redhat.com> - 2.1.302-1
CS 299 - Update to .NET Core Runtime 2.1.2 and SDK 2.1.302
300
ed07d0 301 * Wed Jun 20 2018 Omair Majid <omajid@redhat.com> - 2.1.301-5
CS 302 - Add sdk-2.1.3xx subpackage
303
304 * Tue Jun 19 2018 Omair Majid <omajid@redhat.com> - 2.1.301-4
305 - Rebuild to pick up new lttng-ust
306
307 * Tue Jun 19 2018 Omair Majid <omajid@redhat.com> - 2.1.301-3
308 - Add workaround for unreadable system certificates
309 - Resolves: rhbz#1588099
310
311 * Tue Jun 19 2018 Omair Majid <omajid@redhat.com> - 2.1.301-2
312 - Add updated man pages
313 - Resolves: rhbz#1584790
314
315 * Thu Jun 14 2018 Omair Majid <omajid@redhat.com> - 2.1.301-1
316 - Update to .NET Core SDK 2.1.301
317
6b77c8 318 * Wed May 30 2018 Omair Majid <omajid@redhat.com> - 2.1.300-7
CS 319 - Explicitly require a modified libcurl
320
321 * Tue May 29 2018 Omair Majid <omajid@redhat.com> - 2.1.300-6
322 - Install bash completions in %%{_root_datadir}
323
324 * Mon May 28 2018 Omair Majid <omajid@redhat.com> - 2.1.300-5
325 - Add provides for dotnet-sdk-2.1.3xx
326
327 * Mon May 28 2018 Omair Majid <omajid@redhat.com> - 2.1.300-4
328 - Remove patch for ASP.NET Core templates. No longer needed for 2.1.
329
330 * Fri May 25 2018 Omair Majid <omajid@redhat.com> - 2.1.300-3
331 - Remove net46 symlink
332
333 * Thu May 24 2018 Omair Majid <omajid@redhat.com> - 2.1.300-2
334 - Rebuild to pick up updated dependencies
335
336 * Thu May 24 2018 Omair Majid <omajid@redhat.com> - 2.1.300-1
337 - New package. Import from Fedora (DotNet SIG package).