%define DOTNET_ASSEMBLY_RES_PATH %{DOTNET_ASSEMBLY_PATH}/res
%define DOTNET_NUGET_SOURCE /nuget
+%define DOTNET_TIZEN_API_VERSION 4
+
+%define _tizenfx_bin_path Artifacts
+
Name: csapi-tizenfx
Summary: Assemblies of Tizen .NET
-Version: 4.0.0.73
+Version: 4.0.0.253
Release: 1
Group: Development/Libraries
License: Apache-2.0
Source0: %{name}-%{version}.tar.gz
Source1: %{name}.manifest
+BuildRequires: dotnet-build-tools
+
BuildArch: noarch
+ExcludeArch: aarch64
AutoReqProv: no
+Requires(post): vconf
+
+
%description
%{summary}
%package full
Summary: All Tizen .NET assemblies
Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
AutoReqProv: no
%description full
All Tizen .NET assemblies
+%package debug
+Summary: All .pdb files of Tizen .NET
+Group: Development/Libraries
+AutoReqProv: no
+
+%description debug
+All .pdb files of Tizen .NET
+
%package common
Summary: Tizen .NET assemblies for Common profile
Group: Development/Libraries
-Requires: csapi-tizenfx-dummy
+Requires: %{name} = %{version}-%{release}
+Requires: csapi-tizenfx-dummy = %{version}-%{release}
AutoReqProv: no
%description common
%package mobile
Summary: Tizen .NET assemblies for Mobile profile
Group: Development/Libraries
-Requires: csapi-tizenfx-dummy
+Requires: %{name} = %{version}-%{release}
+Requires: csapi-tizenfx-dummy = %{version}-%{release}
AutoReqProv: no
%description mobile
%package mobile-emul
Summary: Tizen .NET assemblies for Emulator of Mobile profile
Group: Development/Libraries
-Requires: csapi-tizenfx-dummy
+Requires: %{name} = %{version}-%{release}
+Requires: csapi-tizenfx-dummy = %{version}-%{release}
AutoReqProv: no
%description mobile-emul
%package tv
Summary: Tizen .NET assemblies for TV profile
Group: Development/Libraries
-Requires: csapi-tizenfx-dummy
+Requires: %{name} = %{version}-%{release}
+Requires: csapi-tizenfx-dummy = %{version}-%{release}
AutoReqProv: no
%description tv
%package ivi
Summary: Tizen .NET assemblies for IVI profile
Group: Development/Libraries
-Requires: csapi-tizenfx-dummy
+Requires: %{name} = %{version}-%{release}
+Requires: csapi-tizenfx-dummy = %{version}-%{release}
AutoReqProv: no
%description ivi
%package wearable
Summary: Tizen .NET assemblies for Wearable profile
Group: Development/Libraries
-Requires: csapi-tizenfx-dummy
+Requires: %{name} = %{version}-%{release}
+Requires: csapi-tizenfx-dummy = %{version}-%{release}
AutoReqProv: no
%description wearable
cp %{SOURCE1} .
%build
-./scripts/filelist.sh common > common.filelist
-./scripts/filelist.sh mobile > mobile.filelist
-./scripts/filelist.sh mobile-emul > mobile-emul.filelist
-./scripts/filelist.sh tv > tv.filelist
-./scripts/filelist.sh ivi > ivi.filelist
-./scripts/filelist.sh wearable > wearable.filelist
+
+GetFileList() {
+ PROFILE=$1
+ cat pkg/PlatformFileList.txt | grep -E "#$PROFILE[[:space:]]|#$PROFILE$" | cut -d# -f1 | sed "s#^#%{DOTNET_ASSEMBLY_PATH}/#"
+}
+
+GetFileList common > common.filelist
+GetFileList mobile > mobile.filelist
+GetFileList mobile-emul > mobile-emul.filelist
+GetFileList tv > tv.filelist
+GetFileList ivi > ivi.filelist
+GetFileList wearable > wearable.filelist
+
+rm -fr %{_tizenfx_bin_path}
+export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
+./build.sh --full
+./build.sh --dummy
+./build.sh --pack 4.0.0-preview1-00253
%install
mkdir -p %{buildroot}%{DOTNET_ASSEMBLY_PATH}
mkdir -p %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
mkdir -p %{buildroot}%{DOTNET_NUGET_SOURCE}
-install -p -m 644 binaries/frameworks/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
-install -p -m 644 binaries/frameworks/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
-install -p -m 644 binaries/frameworks_dummy/*.dll %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
-install -p -m 644 binaries/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
+install -p -m 644 %{_tizenfx_bin_path}/bin/public/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 %{_tizenfx_bin_path}/bin/public/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 %{_tizenfx_bin_path}/bin/platform/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 %{_tizenfx_bin_path}/bin/platform/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 %{_tizenfx_bin_path}/bin/platform/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
+install -p -m 644 %{_tizenfx_bin_path}/bin/dummy/*.dll %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
+install -p -m 644 %{_tizenfx_bin_path}/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
+
+%post
+vconftool set -t int "db/dotnet/tizen_api_version" %{DOTNET_TIZEN_API_VERSION} -f
+
+
+%files
+%license LICENSE
%files nuget
%{DOTNET_NUGET_SOURCE}/*.nupkg
%files full
%manifest %{name}.manifest
-%license LICENSE
%attr(644,root,root) %{DOTNET_ASSEMBLY_PATH}/*.dll
%attr(644,root,root) %{DOTNET_ASSEMBLY_RES_PATH}/*
+%files debug
+%attr(644,root,root) %{DOTNET_ASSEMBLY_PATH}/*.pdb
+
%files common -f common.filelist
%manifest %{name}.manifest
-%license LICENSE
%files mobile -f mobile.filelist
%manifest %{name}.manifest
-%license LICENSE
%files mobile-emul -f mobile-emul.filelist
%manifest %{name}.manifest
-%license LICENSE
%files tv -f tv.filelist
%manifest %{name}.manifest
-%license LICENSE
%files ivi -f ivi.filelist
%manifest %{name}.manifest
-%license LICENSE
%files wearable -f wearable.filelist
%manifest %{name}.manifest
-%license LICENSE