[Build] Init RISCV build
[platform/core/dotnet/build-tools.git] / packaging / dotnet-build-tools.spec
1 %global __os_install_post %{nil}
2 %define debug_package %{nil}
3
4 Name:       dotnet-build-tools
5 Summary:    Tools for building C# API projects
6 Version:    6.0.401
7 Release:    1
8 Group:      Development/Libraries
9 License:    MIT and Apache-2.0
10 URL:        https://www.tizen.org
11 Source0:    %{name}-%{version}.tar.gz
12 Source1:    macros.dotnet-build-tools
13 Source21:   dotnet-sdk-%{version}-linux-x64.tar.gz
14 Source22:   deps.tar.gz
15 Source23:   crossgen2.tar.gz
16
17 AutoReqProv: no
18
19 BuildRequires: patchelf
20 #BuildRequires: crossgen2-mic
21
22 Requires: mscorlib
23 Requires: corefx-managed
24 Requires: corefx-managed-ref
25 Requires: csapi-tizenfx-full
26 Requires: libicu
27 Requires: openssl1.1
28 Requires: make
29 Recommends: dotnet-launcher-gbs-support
30
31 %description
32 Provides dotnet-sdk for GBS environment
33
34 %define TOOLS_PATH /usr/share/dotnet-build-tools
35 %define SDK_PATH %{TOOLS_PATH}/sdk
36
37 %prep
38 %setup -q
39
40 mkdir -p dotnet/deps
41 mkdir -p dotnet/crossgen2/ref
42 tar xvfz %{SOURCE21} -C dotnet
43 tar xvfz %{SOURCE22} -C dotnet/deps
44 tar xvfz %{SOURCE23} -C dotnet/crossgen2
45 #cp -rf /opt/usr/dotnet/mic/* dotnet/crossgen2
46
47 %build
48 # Prepare dotnet-sdk
49 %ifnarch x86_64
50 for file in $( find ./dotnet -name "dotnet" -type f )
51 do
52     chmod 0755 ${file}
53     patchelf --set-interpreter %{SDK_PATH}/deps/ld-linux-x86-64.so.2 ${file}
54     patchelf --set-rpath %{SDK_PATH}/deps/ ${file}
55 done
56 for file in $( find ./dotnet -type f \( -name "*.so" -or -name "*.so.*" \) -not -name "*.dbg" -not -name "ld-*.so*" )
57 do
58     chmod 0755 ${file}
59     patchelf --set-rpath %{SDK_PATH}/deps/ ${file}
60 done
61
62 # Prepare crossgen2
63 chmod 0755 ./dotnet/crossgen2/* -R
64 patchelf --set-interpreter %{SDK_PATH}/crossgen2/ld-linux-x86-64.so.2 ./dotnet/crossgen2/crossgen2
65 patchelf --set-rpath %{SDK_PATH}/crossgen2/ ./dotnet/crossgen2/crossgen2
66 for file in $( find ./dotnet/crossgen2 -type f \( -name "*.so" -or -name "*.so.*" \) -not -name "*.dbg" -not -name "ld-*.so*" )
67 do
68     patchelf --set-rpath %{SDK_PATH}/crossgen2/ ${file}
69 done
70 %endif
71
72 # overrides
73 cp -f overrides/Microsoft.Build.Tasks.Core.dll dotnet/sdk/*/Microsoft.Build.Tasks.Core.dll
74
75 %install
76 mkdir -p %{buildroot}%{_bindir}
77 mkdir -p %{buildroot}%{SDK_PATH}
78
79 # RPM Macros
80 install -D -p -m 0644 %{S:1} %{buildroot}%{_sysconfdir}/rpm/macros.dotnet-build-tools
81
82 # .NETCore SDK
83 cp -fr ./dotnet/* %{buildroot}%{SDK_PATH}
84
85 # .NETCore Additional Packs
86 cp -fr ./packs/* %{buildroot}%{SDK_PATH}/packs
87
88 # Tizen Workload
89 cp -rf ./sdk-manifests %{buildroot}%{SDK_PATH}
90 cp -rf ./template-packs %{buildroot}%{SDK_PATH}
91 cp -rf ./metadata %{buildroot}%{SDK_PATH}
92
93 # BuildTools
94 cp -fr ./tools/* %{buildroot}%{TOOLS_PATH}
95 ln -s %{TOOLS_PATH}/dotnet-build.sh %{buildroot}%{_bindir}/dotnet-build
96 ln -s %{TOOLS_PATH}/dotnet-wrapper.sh %{buildroot}%{_bindir}/dotnet
97 ln -s %{TOOLS_PATH}/dotnet-validate-struct.sh %{buildroot}%{_bindir}/dotnet-validate-struct
98 ln -s %{SDK_PATH}/crossgen2/crossgen2 %{buildroot}%{_bindir}/crossgen2
99
100 # Tizen.Pre.Compiled.BuildTasks
101 install -p -m 644 ./targets/Tizen.Pre.Compiled.targets %{buildroot}%{SDK_PATH}/sdk/*/Current/Microsoft.Common.targets/ImportAfter
102 install -p -m 644 ./targets/Tizen.Pre.Compiled.Reference.targets %{buildroot}%{SDK_PATH}/sdk/*/Current/Microsoft.Common.targets/ImportAfter
103
104 %files
105 %config(noreplace) %{_sysconfdir}/rpm/macros.dotnet-build-tools
106 %{_bindir}/*
107 %{TOOLS_PATH}/*
108
109 %post
110 dotnet --version
111 dotnet workload list