2 Summary: Javascript based Runtime for Tizen
3 # Version: {TPK_VERSION}.{INTERNAL_API_REVISION}.{WRTJS_VERSION}
4 # The {INTERNAL_API_REVISION} is used to check compatibility with chromium-efl.
7 Group: Web Framework/Web Runtime
9 URL: https://www.tizen.org
10 Source: %{name}-%{version}.tar.gz
12 %define _appdir %TZ_SYS_RO_APP
13 %define _bindir %TZ_SYS_BIN
14 %define _xmldir %TZ_SYS_RO_PACKAGES
15 %define app_dir out/gen/app
16 %define crosswalk_extensions_service tizen-extensions-crosswalk-service
17 # The d2d is public feature
18 %if "%{?tizen_profile_name}" != "tv" && "%{?profile}" != "wearable" && "%{?_with_da_profile}" != "1"
22 BuildRequires: pkgconfig(chromium-efl)
24 %if "%{?profile}" != "tv"
26 BuildRequires: pkgconfig(dlog)
29 %if 0%{?_use_tpk} || 0%{?_use_d2d}
30 %if "%{?profile}" == "tv"
31 BuildRequires: app-signer
33 BuildRequires: hash-signer, zip
35 BuildRequires: pkgconfig(libtzplatform-config)
38 Web Runtime Engine based on Electron
40 %define _tizen_version %{tizen_version_major}%{tizen_version_minor}
41 %define _pkgid org.tizen.%{name}
42 %define __pkgid %{_pkgid}
44 # The tv profile has a different tpk generation policy.
45 # 2 types(update, upgrade) of tpk can be generated and used simultaneously.
46 # If tpktype is not defined and tizen version is less than 6.0, upgrade type
47 # is generated by default.
48 %if "%{?profile}" == "tv"
49 %if "%{?tpktype}" == "upgrade" || (0%{!?tpktype:1} && %{_tizen_version} < 60)
50 %define __pkgid %{_pkgid}-upgrade
54 # Generated app directory
55 %global GENERATED_APP_DIR /tmp/%{name}
56 # Directory for WRTjs tizen application package
57 %global WRTJS_APP_DIR %{TZ_SYS_RO_APP}/%{__pkgid}
63 # The "_repository" flag was changed to "_vd_cfg_target_repository"
64 # since tizen 4.0 product tv.
65 %if "%{?profile}" == "tv"
66 %define _manifestname %{_pkgid}-vd
67 # The onemain branch haven't defined _vd_cfg_target_repository.
68 # So, this hijack code is added to set the repo_name to "MuseM".
69 # Remove this code when _vd_cfg_target_repository is defined in onemain.
70 %if "%{?_vd_cfg_target_repository}"
71 %define repo_name %{_vd_cfg_target_repository}
73 %define repo_name MuseM
76 %define _manifestname %{_pkgid}
77 %define repo_name %{_repository}
80 %if "%{?profile}" != "tv"
81 %define _outdir $PWD/out
82 ./build/tools/gn gen %{_outdir}
83 ninja -C %{_outdir} wrt-loader
86 ./build/tools/node ./node_modules/.bin/tsc
87 absolute_appdir=$PWD/%{app_dir}
88 (cd wrt_app/ && find . -type f ! -name '*.ts' -exec cp --parents {} ${absolute_appdir} \;)
91 %if "%{_vd_cfg_chip_vendor}" != "EMUL" && "%{?profile}" == "tv"
92 %define __package_signing 1
94 %define __package_signing 0
96 sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
97 -e 's#@WRTJS_VERSION@#%{version}#g' \
98 -e 's#@PACKAGE_ID@#%{__pkgid}#g' \
99 packaging/%{_manifestname}.xml.in \
100 > packaging/tizen-manifest-tpk.xml
104 %define _d2d_pkgid 9z6IujVul3
105 sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
106 -e 's#@WRTJS_VERSION@#%{version}#g' \
107 -e 's#@PACKAGE_ID@#%{_d2d_pkgid}#g' \
108 packaging/d2d_app.xml.in \
109 > packaging/%{_d2d_pkgid}.xml
114 %define ARCHITECTURE armv7l
117 %define ARCHITECTURE aarch64
120 %define ARCHITECTURE ix86
123 %define ARCHITECTURE x86_64
126 %define _resourcedir /usr/share/wrt/app
127 install -d %{GENERATED_APP_DIR}
128 install -d %{buildroot}%{_bindir}
129 install -d %{buildroot}%{_datadir}/aul
130 install -d %{buildroot}%{_resourcedir}
131 install -d %{buildroot}%{WRTJS_APP_DIR}
134 %if 0%{?__package_signing}
135 install -m 0644 tizen/downloadable/vd_sign/author-signature.xml %{buildroot}%{WRTJS_APP_DIR}
136 install -m 0644 tizen/downloadable/vd_sign/signature1.xml %{buildroot}%{WRTJS_APP_DIR}
139 %define tizen_sign_base %{WRTJS_APP_DIR}
140 %define tizen_sign_level platform
141 %define tizen_author_sign 1
142 %define tizen_dist_sign 1
146 %if "%{?profile}" == "tv"
147 ln -s %{_bindir}/wrt %{buildroot}%{_bindir}/wrt-loader
148 %if "%{_vd_cfg_product_type}" != "LFD"
149 %if "%{_vd_cfg_platform_type}" == "FULL_SMART"
150 install -m 0644 packaging/wrt_tv.loader %{buildroot}%{_datadir}/aul/wrt.loader
152 %if "%{_vd_cfg_platform_type}" == "ENTRY_SMART"
153 install -m 0644 packaging/wrt_tv_lite.loader %{buildroot}%{_datadir}/aul/wrt.loader
157 install -m 0755 %{_outdir}/wrt-loader %{buildroot}%{_bindir}
158 install -m 0644 packaging/wrt.loader %{buildroot}%{_datadir}/aul/
161 mkdir -p %{buildroot}%{_libdir}/%{crosswalk_extensions_service}
162 cp packaging/plugins.json %{buildroot}%{_libdir}/%{crosswalk_extensions_service}
163 cp -r %{app_dir}/* %{buildroot}%{_resourcedir}/
166 # The debugsources.list is needed by __spec_install_post to generate tpk file
167 # but it's missing in the build process. So, the temporary file is touched.
168 touch debugsources.list
169 %define _tpk_file_name %{__pkgid}-%{version}-v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}.tpk
170 %define __tpk_install_post \
171 tizen/build/build_app.sh %{GENERATED_APP_DIR} wrtjs_tpk_root %{_tpk_file_name} tpk %{?profile}
172 %define __spec_install_post \
173 %{?__tpk_install_post} \
176 echo "No TPK generation"
180 install -d %{buildroot}%{_appdir}/%{_d2d_pkgid}/bin
181 install -d %{buildroot}%{_appdir}/%{_d2d_pkgid}/res
182 install -d %{buildroot}%{_xmldir}
183 install -m 0644 packaging/%{_d2d_pkgid}.xml %{buildroot}%{_xmldir}/
184 cp -rf d2d_app %{buildroot}%{_appdir}/%{_d2d_pkgid}/res/wgt/
185 ln -sf %{_bindir}/wrt-service-launcher %{buildroot}%{_appdir}/%{_d2d_pkgid}/bin/%{_d2d_pkgid}.Service
189 if (( $(rpm -q chromium-efl | wc -l) > 1 )); then
190 echo -e "\033[31m*****************************************************"
191 echo -e "Please remove chromium-efl rpm(s) except for one:\n"
193 echo -e "*****************************************************\033[m"
197 export CHROMIUM_REVISION=$(rpm -q chromium-efl | awk -F. '{print $2}')
198 export WRTJS_REVISION=$(echo %{version} | awk -F. '{print $2}')
199 if [[ "${CHROMIUM_REVISION}" == "" ]]; then
200 CHROMIUM_REVISION="not installed"
203 echo -e "\033[32m*****************************************************"
204 echo -e "* chromium-efl revision : ${CHROMIUM_REVISION}"
205 echo -e "* wrtjs revision : ${WRTJS_REVISION}"
207 if [[ "${CHROMIUM_REVISION}" == "not installed" ]] || \
208 (( ${CHROMIUM_REVISION} == ${WRTJS_REVISION} )); then
209 echo -e "* Succeeded to check rpm versions"
210 echo -e "*****************************************************\033[m"
212 if (( ${CHROMIUM_REVISION} > ${WRTJS_REVISION} )); then
213 echo -e "\033[31m* You're trying to install too old wrtjs."
214 echo -e "* Please install wrtjs as revision $CHROMIUM_REVISION"
217 echo -e "\033[31m* You have too old chromium-efl."
219 echo -e "* please re-install chromium-efl as revision $WRTJS_REVISION first."
220 echo -e "*****************************************************\033[m"
232 %manifest packaging/wrtjs.manifest
235 %{_appdir}/%{_d2d_pkgid}
236 %{_xmldir}/%{_d2d_pkgid}.xml
238 %if "%{?tizen_profile_name}" != "tv"
239 %caps(cap_setgid,cap_sys_admin=ei) %{_bindir}/wrt-loader
241 %{_bindir}/wrt-loader
243 %if "%{_vd_cfg_product_type}" != "LFD"
244 %{_datadir}/aul/wrt.loader
246 %{_libdir}/%{crosswalk_extensions_service}/plugins.json
248 %if 0%{?__package_signing}
249 %{WRTJS_APP_DIR}/author-signature.xml
250 %{WRTJS_APP_DIR}/signature1.xml