# Auto-generated from csapi-tizenfx.spec.in by makespec.sh
-%define TIZEN_NET_API_VERSION 8
-%define TIZEN_NET_RPM_VERSION 8.0.0.999+nui21916
-%define TIZEN_NET_NUGET_VERSION 8.0.0.99999
+%define TIZEN_NET_API_VERSION 9
+%define TIZEN_NET_RPM_VERSION 9.0.0.999+nui22013
+%define TIZEN_NET_NUGET_VERSION 9.0.0.99999
%define DOTNET_ASSEMBLY_PATH /usr/share/dotnet.tizen/framework
%define DOTNET_ASSEMBLY_DUMMY_PATH %{DOTNET_ASSEMBLY_PATH}/ref
%define DOTNET_NUGET_SOURCE /nuget
%define TIZEN_NET_RUNTIME_IDENTIFIERS 4.0.0:5.0.0:5.5.0:6.0.0
+%define TIZEN_NET_TARGET_FRAMEWORK_MONIKERS tizen90:tizen80:tizen70:tizen60:tizen50:tizen40:netstandard2.0
+
+%define UPGRADE_SCRIPT_PATH /usr/share/upgrade/scripts
Name: csapi-tizenfx
Summary: Assemblies of Tizen .NET
Requires(post): /usr/bin/vconftool
# BuildRequires for StructValidator
+%if %{defined enable_struct_test}
BuildRequires: coregl
BuildRequires: pkgconfig(elementary)
BuildRequires: pkgconfig(efl-extension)
BuildRequires: pkgconfig(capi-appfw-service-application)
BuildRequires: pkgconfig(capi-appfw-application)
BuildRequires: pkgconfig(capi-appfw-widget-application)
-%if "%{profile}" != "tv"
-BuildRequires: pkgconfig(capi-appfw-watch-application)
-%endif
BuildRequires: pkgconfig(data-control)
BuildRequires: pkgconfig(capi-location-manager)
BuildRequires: pkgconfig(capi-media-vision)
BuildRequires: pkgconfig(capi-network-bluetooth)
BuildRequires: pkgconfig(capi-network-wifi-direct)
BuildRequires: pkgconfig(key-manager)
-%if "%{profile}" == "tv"
-BuildRequires: pkgconfig(trustzone-nwd)
-%else
-BuildRequires: pkgconfig(tef-libteec)
-%endif
BuildRequires: pkgconfig(capi-system-sensor)
BuildRequires: pkgconfig(capi-system-runtime-info)
-BuildRequires: pkgconfig(capi-telephony)
BuildRequires: pkgconfig(capi-ui-inputmethod)
BuildRequires: pkgconfig(stt-engine)
BuildRequires: pkgconfig(tts-engine)
BuildRequires: pkgconfig(chromium-efl)
-
+%if "%{profile}" == "tv"
+BuildRequires: pkgconfig(trustzone-nwd)
+%else
+BuildRequires: pkgconfig(capi-appfw-watch-application)
+BuildRequires: pkgconfig(capi-telephony)
+BuildRequires: pkgconfig(tef-libteec)
+%endif
+%endif
%description
%{summary}
%description debug
All .pdb files of Tizen .NET
-%package common
-Summary: Tizen .NET assemblies for Common profile
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-AutoReqProv: no
-
-%description common
-Tizen .NET assemblies for Common profile
-
%package mobile
Summary: Tizen .NET assemblies for Mobile profile
Group: Development/Libraries
%description mobile
Tizen .NET assemblies for Mobile profile
-%package mobile-emul
-Summary: Tizen .NET assemblies for Emulator of Mobile profile
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
-AutoReqProv: no
-
-%description mobile-emul
-Tizen .NET assemblies for Emulator of Mobile profile
-
%package tv
Summary: Tizen .NET assemblies for TV profile
Group: Development/Libraries
cp %{SOURCE1} .
%build
-%{?asan:export ASAN_OPTIONS=use_sigaltstack=false:allow_user_segv_handler=true:handle_sigfpe=false:`cat /ASAN_OPTIONS`}
-%define _tizenfx_bin_path Artifacts
+# configure for ASAN
+%{?asan:export ASAN_OPTIONS=use_sigaltstack=false:allow_user_segv_handler=true:handle_sigfpe=false:`cat /ASAN_OPTIONS`}
-rm -fr %{_tizenfx_bin_path}
+# prepare for build
export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=true
-
%define build_cmd ./tools/scripts/retry.sh ./tools/scripts/timeout.sh -t 600 ./build.sh
+
+# build full assemblies
%if %{defined profile}
%{build_cmd} --full /p:BuildProfile=%{profile}
%else
%{build_cmd} --full
%endif
+
+# pack nuget package
%{build_cmd} --pack %{TIZEN_NET_NUGET_VERSION}
-dotnet validate-struct %{_tizenfx_bin_path}/bin/public || echo "
+# check validation of struct size
+%if %{defined enable_struct_test}
+dotnet validate-struct Artifacts/bin/public || echo "
#######################################################
##################### W A R N I N G ###################
#######################################################
# It will make building errors later #
#######################################################
"
+%endif
-# Generate filelist for rpm packaging
-GetFileList() {
- PROFILE=$1
- cat packaging/PlatformFileList.txt | grep -v "\.preload" | grep -E "#$PROFILE[[:space:]]|#$PROFILE$" | cut -d# -f1 | sed "s#^#%{DOTNET_ASSEMBLY_PATH}/#"
- for f in $(cat packaging/PlatformFileList.txt | grep -v -E "#$PROFILE[[:space:]]|#$PROFILE$|\.preload" | cut -d# -f1); do
- if [ -f %{_tizenfx_bin_path}/bin/dummy/$f ]; then
- echo "%{DOTNET_ASSEMBLY_PATH}/ref/$f"
- fi
- done
- for f in $(cat packaging/PlatformFileList.txt | grep "\.preload" | grep -E "#$PROFILE[[:space:]]|#$PROFILE$" | cut -d# -f1); do
- if [ -f packaging/preload/$f ]; then
- echo "%{DOTNET_PRELOAD_PATH}/$f"
- fi
- done
-}
-
-GetFileList common > common.filelist
-GetFileList mobile > mobile.filelist
-GetFileList mobile-emul > mobile-emul.filelist
-GetFileList tv > tv.filelist
-GetFileList wearable > wearable.filelist
-
%install
mkdir -p %{buildroot}%{DOTNET_ASSEMBLY_PATH}
mkdir -p %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
mkdir -p %{buildroot}%{DOTNET_PRELOAD_PATH}
# Install Runtime Assemblies
-install -p -m 644 %{_tizenfx_bin_path}/bin/public/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
-install -p -m 644 %{_tizenfx_bin_path}/bin/internal/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/public/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/internal/*.dll %{buildroot}%{DOTNET_ASSEMBLY_PATH}
# Install Debug Symbols
-install -p -m 644 %{_tizenfx_bin_path}/bin/public/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
-install -p -m 644 %{_tizenfx_bin_path}/bin/internal/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/public/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
+install -p -m 644 Artifacts/bin/internal/*.pdb %{buildroot}%{DOTNET_ASSEMBLY_PATH}
# Install Resource files
-[ -d %{_tizenfx_bin_path}/bin/public/res ] \
- && install -p -m 644 %{_tizenfx_bin_path}/bin/public/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
-[ -d %{_tizenfx_bin_path}/bin/internal/res ] \
- && install -p -m 644 %{_tizenfx_bin_path}/bin/internal/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
+[ -d Artifacts/bin/public/res ] \
+ && cp -fr Artifacts/bin/public/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
+[ -d Artifacts/bin/internal/res ] \
+ && cp -fr Artifacts/bin/internal/res/* %{buildroot}%{DOTNET_ASSEMBLY_RES_PATH}
# Install Dummy Assemblies
-install -p -m 644 %{_tizenfx_bin_path}/bin/dummy/*.dll %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
+install -p -m 644 Artifacts/bin/dummy/*.dll %{buildroot}%{DOTNET_ASSEMBLY_DUMMY_PATH}
+
+# Install Preload
+install -p -m 644 Artifacts/preload/*.preload %{buildroot}%{DOTNET_PRELOAD_PATH}
# Install NuGet Packages
-install -p -m 644 %{_tizenfx_bin_path}/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
-install -p -m 644 packaging/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
+install -p -m 644 Artifacts/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
+install -p -m 644 packaging/depends/*.nupkg %{buildroot}%{DOTNET_NUGET_SOURCE}
# Install Tools
install -p -m 644 tools/bin/* %{buildroot}%{DOTNET_TOOLS_PATH}
-# Install Preload
-install -p -m 644 packaging/preload/*.preload %{buildroot}%{DOTNET_PRELOAD_PATH}
+
+# Install Upgrade Script
+mkdir -p %{buildroot}%{UPGRADE_SCRIPT_PATH}
+install -p -m 755 packaging/500.tizenfx_upgrade.sh %{buildroot}%{UPGRADE_SCRIPT_PATH}
%post
/usr/bin/vconftool set -t int db/dotnet/tizen_api_version %{TIZEN_NET_API_VERSION} -f
/usr/bin/vconftool set -t string db/dotnet/tizen_api_path %{DOTNET_ASSEMBLY_PATH} -f
/usr/bin/vconftool set -t string db/dotnet/tizen_rid_version %{TIZEN_NET_RUNTIME_IDENTIFIERS} -f
+/usr/bin/vconftool set -t string db/dotnet/tizen_tfm_support %{TIZEN_NET_TARGET_FRAMEWORK_MONIKERS} -f
%files
%license LICENSE
%license LICENSE.MIT
+%attr(0755,root,root) %{UPGRADE_SCRIPT_PATH}/500.tizenfx_upgrade.sh
%files nuget
%{DOTNET_NUGET_SOURCE}/*.nupkg
%files full
%manifest %{name}.manifest
-%attr(644,root,root) %{DOTNET_ASSEMBLY_PATH}/*.dll
-%attr(644,root,root) %{DOTNET_ASSEMBLY_DUMMY_PATH}/*.dll
-%attr(644,root,root) %{DOTNET_ASSEMBLY_RES_PATH}/*
+%defattr(644,root,root,755)
+%{DOTNET_ASSEMBLY_PATH}/*.dll
+%{DOTNET_ASSEMBLY_DUMMY_PATH}/*.dll
+%{DOTNET_ASSEMBLY_RES_PATH}/*
+%{DOTNET_PRELOAD_PATH}/*
%files debug
%manifest %{name}.manifest
%attr(644,root,root) %{DOTNET_ASSEMBLY_PATH}/*.pdb
-%files common -f common.filelist
-%manifest %{name}.manifest
-
-%files mobile -f mobile.filelist
-%manifest %{name}.manifest
-
-%files mobile-emul -f mobile-emul.filelist
+%files mobile -f Artifacts/mobile.filelist
%manifest %{name}.manifest
-%files tv -f tv.filelist
+%files tv -f Artifacts/tv.filelist
%manifest %{name}.manifest
-%files wearable -f wearable.filelist
+%files wearable -f Artifacts/wearable.filelist
%manifest %{name}.manifest