3 # Version: {TPK_VERSION}.{INTERNAL_API_REVISION}.{CHROMIUM_MAJOR_VERSION}
4 # The {INTERNAL_API_REVISION} is used for compatibility check with wrtjs.
6 # Set by ./tizen_src/scripts/update_chromium_version.sh
7 %define upstream_chromium_version 120.0.6099.5
9 # The 'Group' should be specified as one of the following valid group list.
10 # https://wiki.tizen.org/wiki/Packaging/Guidelines#Group_Tag
11 Group: Web Framework/Web Engine
12 # The 'License' should be specified as some of the following known license list.
13 # http://spdx.org/licenses/
14 License: LGPL-2.1 or BSD-2-Clause
16 Source0: %{name}-%{version}.tar.gz
17 Source1: content_shell.in
24 %define __drm_mapi_aarch_64 1
26 %define __drm_mapi_aarch_64 0
30 %global __debug_install_post %{nil}
31 %global debug_package %{nil}
34 %if 0%{?_enable_unittests}
38 # Do not use the hardcoded CPU numbers such as "jobs 20" or "_smp_mflags -j20"
39 # . The below statement is compatible with RPM 4.4.2.1+.
40 # . /usr/bin/getconf depends on the libc-common (or libc-bin) base package.
41 %if "%{?_costomized_smp_mflags}" != ""
42 %define _smp_mflags %{_costomized_smp_mflags}
44 %define _smp_mflags -j%(echo $((`/usr/bin/getconf _NPROCESSORS_ONLN` / 2)))
47 %define tizen_version %{tizen_version_major}%{tizen_version_minor}
49 %if "%{?_build_chrome}" == "1"
50 %define __build_chrome 1
52 %define __build_chrome 0
55 %if "%{?tizen_profile_name}" == "tv" && %{tizen_version} >= 70
57 %define __enable_capi_thread_booster 1
59 %define __enable_capi_thread_booster 0
62 %if "%{?tizen_profile_name}" == "tv" && %{tizen_version} > 60
64 %define __enable_network_camera 1
66 %define __enable_network_camera 0
69 %if "%{enable_gamepad_latency_test}" == "1"
70 %define __enable_gamepad_latency_test 1
72 %define __enable_gamepad_latency_test 0
74 %{?_use_system_icu: %define __use_system_icu %{_use_system_icu}}
75 # Product tv can't utilize system icu due to nacl dependency.
76 %if "%{?profile}" != "tv" && %{tizen_version} == 60 && %{?_use_system_icu: 0}%{!?_use_system_icu: 1}
77 # Disabling system icu temporarily as it needs to be upgraded to version >= 67
78 %define __use_system_icu 0
81 Requires: /usr/bin/systemctl
82 Requires(post): /sbin/ldconfig
83 Requires(post): xkeyboard-config
84 Requires(postun): /sbin/ldconfig
87 BuildRequires: binutils-gold
89 BuildRequires: at-spi2-atk-devel, bison, edje-tools, expat-devel, flex, gettext, gperf, libatk-bridge-2_0-0, libcap-devel, libcurl, libatomic
90 BuildRequires: libjpeg-turbo-devel, ninja, perl, python3, python3-xml, which
91 BuildRequires: pkgconfig(atk)
92 BuildRequires: pkgconfig(capi-appfw-application)
93 BuildRequires: pkgconfig(capi-appfw-app-manager)
94 BuildRequires: pkgconfig(capi-location-manager)
95 BuildRequires: pkgconfig(capi-media-audio-io)
96 BuildRequires: pkgconfig(capi-media-camera)
97 BuildRequires: pkgconfig(capi-media-player)
98 BuildRequires: pkgconfig(capi-media-tool)
99 BuildRequires: pkgconfig(capi-system-device)
100 BuildRequires: pkgconfig(capi-system-info)
101 BuildRequires: pkgconfig(capi-system-sensor)
102 BuildRequires: pkgconfig(capi-system-system-settings)
103 BuildRequires: pkgconfig(capi-ui-autofill)
104 BuildRequires: pkgconfig(capi-ui-autofill-common)
105 BuildRequires: pkgconfig(capi-ui-autofill-service)
106 BuildRequires: pkgconfig(dlog)
107 BuildRequires: pkgconfig(ecore)
108 BuildRequires: pkgconfig(ecore-evas)
109 BuildRequires: pkgconfig(ecore-imf)
110 BuildRequires: pkgconfig(ecore-imf-evas)
111 BuildRequires: pkgconfig(ecore-input)
112 BuildRequires: pkgconfig(efl-extension)
113 BuildRequires: pkgconfig(eldbus)
114 BuildRequires: pkgconfig(elementary)
115 BuildRequires: pkgconfig(esplusplayer)
116 BuildRequires: pkgconfig(evas)
117 BuildRequires: pkgconfig(feedback)
118 BuildRequires: pkgconfig(fontconfig)
119 BuildRequires: pkgconfig(freetype2)
120 BuildRequires: pkgconfig(gles20)
121 BuildRequires: pkgconfig(glib-2.0)
122 BuildRequires: pkgconfig(gstreamer-1.0)
123 BuildRequires: pkgconfig(gstreamer-app-1.0)
124 BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
125 BuildRequires: pkgconfig(harfbuzz)
126 BuildRequires: pkgconfig(icu-i18n)
127 BuildRequires: pkgconfig(libdrm)
128 BuildRequires: pkgconfig(libcurl)
129 BuildRequires: pkgconfig(libexif)
130 BuildRequires: pkgconfig(libffi)
131 BuildRequires: pkgconfig(libpng)
132 BuildRequires: pkgconfig(libtbm)
133 BuildRequires: pkgconfig(libtzplatform-config)
134 BuildRequires: pkgconfig(libudev)
135 BuildRequires: pkgconfig(libusb-1.0)
136 BuildRequires: pkgconfig(libxml-2.0)
137 BuildRequires: pkgconfig(libxslt)
138 BuildRequires: pkgconfig(minizip)
139 BuildRequires: pkgconfig(mm-player)
140 BuildRequires: pkgconfig(notification)
141 BuildRequires: pkgconfig(nspr)
142 BuildRequires: pkgconfig(nss)
143 BuildRequires: pkgconfig(pkgmgr-info)
144 BuildRequires: pkgconfig(scim)
145 BuildRequires: pkgconfig(security-manager)
146 BuildRequires: pkgconfig(sqlite3)
147 BuildRequires: pkgconfig(stt)
148 BuildRequires: pkgconfig(ttrace)
149 BuildRequires: pkgconfig(tts)
150 BuildRequires: pkgconfig(ui-gadget-1)
151 BuildRequires: pkgconfig(vconf)
152 BuildRequires: pkgconfig(zlib)
154 # Applied python acceleration for generating gyp files.
156 BuildRequires: python-accel-armv7l-cross-arm
159 BuildRequires: python-accel-armv7hl-cross-arm
162 BuildRequires: python-accel-aarch64-cross-aarch64
165 BuildRequires: python-accel-riscv64-cross-riscv64
168 %if "%{?_with_wayland}" == "1"
169 %if %{tizen_version} >= 50
170 BuildRequires: pkgconfig(ecore-wl2)
172 BuildRequires: pkgconfig(ecore-wayland)
174 BuildRequires: pkgconfig(wayland-egl)
176 BuildRequires: pkgconfig(ecore-x)
177 BuildRequires: pkgconfig(libdri2)
178 BuildRequires: pkgconfig(x11)
179 BuildRequires: pkgconfig(xcomposite)
180 BuildRequires: pkgconfig(xcursor)
181 BuildRequires: pkgconfig(xext)
182 BuildRequires: pkgconfig(xi)
183 BuildRequires: pkgconfig(xrandr)
184 BuildRequires: pkgconfig(xt)
185 BuildRequires: pkgconfig(xfixes)
186 BuildRequires: pkgconfig(xtst)
189 %if "%{?tizen_profile_name}" == "tv"
190 BuildRequires: pkgconfig(aul-extension)
191 BuildRequires: pkgconfig(capi-media-sound-manager)
192 BuildRequires: pkgconfig(capi-stt-wrapper-tv)
193 BuildRequires: pkgconfig(capi-system-display-rotator)
194 BuildRequires: pkgconfig(capi-appfw-app-manager)
195 BuildRequires: pkgconfig(cynara-client)
196 BuildRequires: pkgconfig(security-privilege-manager)
197 BuildRequires: pkgconfig(drmdecrypt)
198 BuildRequires: pkgconfig(efl-assist)
199 BuildRequires: pkgconfig(hdmicec-api)
200 BuildRequires: pkgconfig(lwipc)
201 BuildRequires: pkgconfig(privileged-service)
202 BuildRequires: pkgconfig(tv-resource-manager)
203 BuildRequires: pkgconfig(tv-resource-information)
204 BuildRequires: pkgconfig(vd-win-util)
205 BuildRequires: pkgconfig(WebProduct)
206 %if %{tizen_version} >= 60
207 BuildRequires: pkgconfig(resource-center-api)
211 %if "%{__enable_capi_thread_booster}" == "1"
212 BuildRequires: pkgconfig(capi-boost-tv)
215 # TODO(youngsoo): The binutils-gold crashes mini_browser on the Tizen v3.0 ARM 64 bit images.
216 # Once fixed, use binutils-gold for all targets on Tizen v3.0.
217 %ifnarch aarch64 %{arm} # [M48_2564] Temporary excluding arm architecture for fixing memory issue
218 # FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15383
219 #BuildRequires: binutils-gold
223 %define ARCHITECTURE armv7l
226 %define ARCHITECTURE armv7hl
229 %define ARCHITECTURE aarch64
232 %define ARCHITECTURE ix86
235 %define ARCHITECTURE x86_64
238 %define ARCHITECTURE riscv64
241 %{!?_clang: %define _clang 1}
243 %if "%{?gcov}" == "1"
244 %define __enable_gcov 1
246 %define __enable_gcov 0
249 %if "%{?_clang}" == "1" && "%{ARCHITECTURE}" == "armv7l"
250 %define __use_clang 1
252 %define __use_clang 0
255 %define __enable_wrt_js 1
256 %if 0%{?_disable_wrt_js}
257 %define __enable_wrt_js 0
260 %if 0%{?__enable_wrt_js}
261 BuildRequires: pkgconfig(appcore-agent)
262 BuildRequires: pkgconfig(appsvc)
263 BuildRequires: pkgconfig(aul)
264 BuildRequires: pkgconfig(capi-appfw-package-manager)
265 BuildRequires: pkgconfig(capi-appfw-service-application)
266 BuildRequires: pkgconfig(cynara-client)
267 BuildRequires: pkgconfig(launchpad)
268 BuildRequires: pkgconfig(libwebappenc)
269 BuildRequires: pkgconfig(message-port)
270 BuildRequires: pkgconfig(wgt-manifest-handlers)
271 %if "%{?profile}" == "tv"
272 BuildRequires: app-signer
274 BuildRequires: pkgmgr-extension-devel
275 BuildRequires: pkgconfig(autoinput)
276 BuildRequires: pkgconfig(capi-media-player)
277 BuildRequires: pkgconfig(capi-screensaver)
278 BuildRequires: pkgconfig(settings-api)
279 BuildRequires: pkgconfig(tvs-api)
281 BuildRequires: pkgconfig(capi-appfw-watch-application)
282 BuildRequires: pkgconfig(capi-ui-inputmethod)
285 %define __xwalk_extension_path %{_libdir}/tizen-extensions-crosswalk
286 %define __xwalk_extension_service_path %{_libdir}/tizen-extensions-crosswalk-service
289 # node module is required for nmt and category public features.
290 %if "%{?profile}" != "tv" && "%{?profile}" != "wearable" && "%{?_with_da_profile}" != "1"
291 %define _support_node_module 1
294 %define __enable_ewk_interface 1
296 # Enable to support squashfs RPM and image by default
297 %define __enable_squashfs_image 1
298 %if "%{?profile}" == "tv" && "%{_vd_cfg_chip_vendor}" == "EMUL"
299 %define __package_signing 0
301 %define __package_signing %{?__enable_squashfs_image}
304 # squashfs rpm isn't generated on local build by default.
305 %define __make_squashfs_rpm %{?_make_squashfs_rpm}%{!?_make_squashfs_rpm:%{?__enable_squashfs_image}}
306 %define __generate_tpk %{?__make_squashfs_rpm}
308 %if "%{?profile}" == "tv"
310 %define __generate_tpk 1
312 %define __generate_tpk 0
315 %define __generate_tpk %{?__make_squashfs_rpm}
318 %if 0%{?__enable_squashfs_image}
319 BuildRequires: squashfs
322 %if "%{?tizen_profile_name}" == "tv" && "%{_vd_cfg_product_type}" != "AUDIO" && "%{_vd_cfg_product_type}" != "AV" && %{__build_chrome} != 1
323 BuildRequires: pkgconfig(accessory)
326 %if 0%{?__generate_tpk} || 0%{?__package_signing}
327 BuildRequires: hash-signer, zip
330 %if 0%{?__make_squashfs_rpm}
332 Summary: Chromium EFL SquashFS Image
333 Requires: %{name} = %{version}-%{release}
334 %description squashfs
335 Browser Engine based on Chromium EFL (SquashFS Image)
338 %if 0%{?__generate_tpk}
340 Summary: Chromium EFL TPK
342 Browser Engine based on Chromium EFL (TPK)
346 Browser Engine based on Chromium EFL (Shared Library)
349 Summary: Chromium EFL
350 Group: Development/Libraries
351 Requires: %{name} = %{version}-%{release}
353 Browser Engine dev library based on Chromium EFL (development files)
355 %if 0%{?_enable_unittests}
357 Summary: Chromium unittests
358 Group: Development/Libraries
359 Requires: %{name} = %{version}-%{release}
360 %description unittests
364 %if 0%{?build_ewk_unittests}
366 Summary: Chromium EWK unittests
367 Group: Development/UnitTests
368 Requires: %{name} = %{version}-%{release}
370 Chromium EFL unit test utilities
373 %if 0%{?build_tizen_ppapi_extension_unittests}
374 %package tizen_ppapi_extension_unittests
375 Summary: Chromium tizen ppapi extension unittests
376 Group: Development/UnitTests
377 Requires: %{name} = %{version}-%{release}
378 %description tizen_ppapi_extension_unittests
379 Chromium tizen ppapi extension unit test utilities
382 # The macros '%TZ_' are valid from tizen v3.0
383 %define _pkgid org.tizen.%{name}
384 %define _xmldir %TZ_SYS_RO_PACKAGES
386 # Directory for chromium-efl tizen application package
387 %global CHROMIUM_APP_DIR %{TZ_SYS_RO_APP}/%{_pkgid}
388 # Directory for chromium-efl shared library
389 %global CHROMIUM_LIB_DIR %{_datadir}/%{name}
391 # Chromium unit tests install directory
392 %global CHROMIUM_UNITTESTS_DIR /opt/usr/chromium-unittests/
393 # Directory containing localization files
394 %global CHROMIUM_LOCALE_DIR %{_datadir}/%{name}/locale
396 # Chromium-EFL TPK install directory
397 %global CHROMIUM_TPK_DIR /tmp
399 # The tv profile has a different tpk generation policy.
400 # 2 types(update, upgrade) of tpk can be generated and used simultaneously.
401 # If tpktype is not defined and tizen version is less than 6.0, upgrade type is generated by default.
402 %if "%{?profile}" == "tv"
403 %global CHROMIUM_LIB_UPGRADE_DIR %{_datadir}/%{name}/upgrade
404 %define _pkgid_upgrade %{_pkgid}-upgrade
405 %if "%{?tpktype}" == "upgrade" || (0%{!?tpktype:1} && %{tizen_version} < 60)
406 %define _tpkid %{_pkgid_upgrade}
410 %define _tpkid %{_pkgid}
417 # architecture related configuration + neon temporary workaround
418 %if %{?_skip_ninja:0}%{!?_skip_ninja:1}
420 %ifarch %{arm} aarch64
421 export ADDITION_OPTION=" -finline-limit=64 -foptimize-sibling-calls -fno-unwind-tables -fno-exceptions -Os "
423 export CFLAGS="$CFLAGS $ADDITION_OPTION"
424 export CXXFLAGS="$CXXFLAGS $ADDITION_OPTION"
425 export FFLAGS="$FFLAGS $ADDITION_OPTION"
427 export CFLAGS="$(echo $CFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
428 export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
429 export FFLAGS="$(echo $FFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
431 export CFLAGS="$(echo $CFLAGS | sed 's/-Wl,--as-needed//g')"
432 export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-Wl,--as-needed//g')"
436 CFLAGS="$(echo $CFLAGS | sed -E 's/-g[0-9] /-g0 /g')"
437 CXXFLAGS="$(echo $CXXFLAGS | sed -E 's/-g[0-9] /-g0 /g')"
439 %if %{__use_clang} == 0
443 %if 0%{?__enable_wrt_js}
444 CFLAGS="$(echo $CFLAGS | sed -E 's/-O2/-Os/g')"
445 CXXFLAGS="$(echo $CXXFLAGS | sed -E 's/-O2/-Os/g')"
446 PATH="$PATH:$(cd third_party/node/tizen; pwd)"
447 export PYTHONIOENCODING=utf-8
450 # The "_repository" flag was changed to "_vd_cfg_target_repository" in tizen 4.0 product tv.
451 %if "%{?tizen_profile_name}" == "tv"
452 #TO DO, onemain branch haven't defined _vd_cfg_target_repository, so add this hijack code
453 # to set repo_name to "MuseM" if not define _vd_cfg_target_repository, need to delete this
454 # code when defined _vd_cfg_target_repository in onemain.
455 %if "%{?_vd_cfg_target_repository}"
456 %define repo_name %{_vd_cfg_target_repository}
458 %define repo_name MuseM
461 %define repo_name %{_repository}
464 %if %{__build_chrome} == 1
465 %define OUTPUT_BASE_FOLDER out.chrome.tz_v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
467 %define OUTPUT_BASE_FOLDER out.tz_v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
470 export GN_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
472 export BUILD_ARCH=%{ARCHITECTURE}
475 %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}
477 if type ccache &> /dev/null; then
478 source tizen_src/build/ccache_env.sh tizen
482 %define macro_to_bool() %(if [ %{expand:%%{?%{1}}%%{!?%{1}:0}} -gt 0 ]; then echo true; else echo false; fi)
485 # Touch the ewk generator script file to rerun in every build, so that
486 # changes in ewk api public headers will reflect in generated .cc file.
487 # FIXME: Check if there is a way to do inside the respective .gn file itself.
488 touch ./tizen_src/downloadable/ewk_api_wrapper_generator.py
490 #run standard gn_chromiumefl wrapper
491 ./tizen_src/build/gn_chromiumefl.sh \
493 "lib_ro_root_dir=\"%{CHROMIUM_LIB_DIR}\"" \
494 "app_ro_root_dir=\"%{TZ_SYS_RO_APP}/%{_pkgid}\"" \
495 "app_rw_root_dir=\"%{TZ_SYS_RW_APP}/%{_pkgid}\"" \
496 %if "%{?profile}" == "tv"
497 "lib_upgrade_root_dir=\"%{CHROMIUM_LIB_UPGRADE_DIR}\"" \
498 "app_upgrade_root_dir=\"%{TZ_SYS_RW_APP}/%{_pkgid_upgrade}\"" \
500 "package_id=\"%{_pkgid}\"" \
501 "tizen_version=%{tizen_version}" \
502 "tizen_version_major=%{tizen_version_major}" \
503 "tizen_version_minor=%{tizen_version_minor}" \
504 "tizen_version_patch=%{tizen_version_patch}" \
506 "arm_float_abi=\"hard\"" \
508 %if 0%{?_remove_webcore_debug_symbols:1}
509 "remove_webcore_debug_symbols=true" \
511 %if "%{?_with_wayland}" == "1"
514 %if "%{?_repository}" == "emulator" || "%{?_repository}" == "emulator32-x11"
515 "tizen_emulator_support=true" \
517 %if "%{?tizen_profile_name}" == "tv"
518 "tizen_product_tv=true" \
520 %if "%{?tizen_profile_name}" == "tv" && "%{_vd_cfg_product_type}" != "AUDIO" && "%{_vd_cfg_product_type}" != "AV" && %{__build_chrome} != 1
521 "tizen_vd_accessory=true" \
523 %if 0%{?component_build}
524 "component=\"shared_library\"" \
526 %if %{__use_clang} == 1
531 %if "%{?__use_system_icu}" == "1"
532 "use_system_icu=true" \
534 "use_system_icu=false" \
536 %if %{__build_chrome} == 1
537 "build_chrome=true" \
539 "build_chrome=false" \
540 "ozone_auto_platforms=false" \
542 %if "%{?tizen_profile_name}" == "tv"
543 "lib_dir_path=\"%{_libdir}\"" \
545 %if "%{?_ttrace}" == "1"
548 %if 0%{?__enable_ewk_interface}
549 "enable_ewk_interface=true" \
551 "enable_wrt_js=%{macro_to_bool __enable_wrt_js}" \
552 "xwalk_extension_path=\"%{__xwalk_extension_path}\"" \
553 "xwalk_extension_service_path=\"%{__xwalk_extension_service_path}\"" \
554 %if %{__enable_network_camera}
555 "enable_network_camera=true" \
557 %if %{__enable_gamepad_latency_test}
558 "enable_gamepad_latency_test=true" \
560 %if %{__drm_mapi_aarch_64} && "%{?tizen_profile_name}" == "tv" && %{tizen_version} >= 80
561 "drm_mapi_aarch_64=true" \
565 ninja %{_smp_mflags} -C "%{OUTPUT_FOLDER}" \
566 %if 0%{?build_ewk_unittests}
569 %if 0%{?build_tizen_ppapi_extension_unittests}
570 efl_integration_unittests \
573 %if 0%{?__enable_wrt_js}
574 wrt wrt-service wrt-service-launcher \
576 %if 0%{?__enable_ewk_interface}
579 %if 0%{?__enable_squashfs_image} && "%{?tizen_profile_name}" == "tv"
580 chromium-efl-install \
582 %if %{__build_chrome} == 1
585 efl_webprocess chromium-ewk efl_webview_app mini_browser ubrowser
588 %if 0%{?_enable_unittests}
589 ninja %{_smp_mflags} -C"%{OUTPUT_FOLDER}" angle_unittests env_chromium_unittests cacheinvalidation_unittests \
590 angle_unittests env_chromium_unittests cacheinvalidation_unittests \
591 url_unittests sandbox_linux_unittests crypto_unittests sql_unittests accessibility_unittests \
592 gfx_unittests printing_unittests events_unittests ppapi_unittests jingle_unittests \
593 flip_in_mem_edsm_server_unittests breakpad_unittests dbus_unittests libphonenumber_unittests \
594 base_unittests ffmpeg_unittests gin_unittests net_unittests snapshot_unittests \
595 google_apis_unittests
596 # TODO: Fix compilation of the following tests content_unittests cc_unittests shell_dialogs_unittests
597 # gpu_unittests compos9itor_unittests media_unittests
602 #XXX icudtl.dat is not copied by gyp. Do that manually
603 cp third_party/icu/android/icudtl.dat "%{OUTPUT_FOLDER}"
605 # XXX Workaround for using rpmlint with emulator build on Tizen_TV 3.0
607 # When using this repo http://download.tizen.org/snapshots/tizen/tv/latest/repos/emulator32-x11/packages/
608 # rpmlint-tizen-1.0-6.1 is installed in GBS-ROOT. So, after rpms are built
609 # gbs build script runs rpmlint to test created packages. There is some BUG in
610 # this script and directory /home/abuild/rpmbuild/OTHER/ isn't created. This
611 # directory is required for rpmlint's log file and its lack causes build error.
612 if [ ! -d %{buildroot}/../../OTHER/ -a -f /opt/testing/bin/rpmlint ]; then
613 mkdir -p %{buildroot}/../../OTHER/
616 %if 0%{?run_unittests_in_gbs}
617 %if 0%{?build_tizen_ppapi_extension_unittests}
618 %{OUTPUT_FOLDER}/efl_integration_unittests
619 %{OUTPUT_FOLDER}/ppapi_unittests
623 echo %{version} > "%{OUTPUT_FOLDER}"/version
625 # Prepare Tizen App Manifest
626 %if "%{?profile}" == "tv"
627 %define _manifestname %{_pkgid}-vd
629 %define _manifestname %{_pkgid}
631 sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
632 -e 's#@CHROMIUM_VERSION@#%{version}#g' \
633 -e 's#@PACKAGE_ID@#%{_pkgid}#g' \
634 packaging/%{_manifestname}.xml.in \
635 > "%{OUTPUT_FOLDER}"/tizen-manifest.xml
636 %if 0%{?__generate_tpk}
637 sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
638 -e 's#@CHROMIUM_VERSION@#%{version}#g' \
639 -e 's#@PACKAGE_ID@#%{_tpkid}#g' \
640 packaging/%{_manifestname}.xml.in \
641 > "%{OUTPUT_FOLDER}"/tizen-manifest-tpk.xml
644 %if 0%{?__generate_tpk} && "%{?profile}" == "tv"
645 # add build_id to tizen-manifest
646 python3 %{TZ_SYS_BIN}/set_build_info.py "%{OUTPUT_FOLDER}"/tizen-manifest-tpk.xml %{COSMOS_BUILD_ID}
649 # Generate pkg-confg file
650 mkdir -p "%{OUTPUT_FOLDER}"/pkgconfig/
651 > "%{OUTPUT_FOLDER}"/pkgconfig/chromium-efl.pc
652 sed -e 's#@CHROMIUM_VERSION@#%{version}#' \
653 tizen_src/build/pkgconfig/chromium-efl.pc.in \
654 > "%{OUTPUT_FOLDER}"/pkgconfig/chromium-efl.pc
656 %if 0%{?__enable_squashfs_image} && "%{?tizen_profile_name}" != "tv"
657 sed -e 's#@RO_APP_PATH@#%{TZ_SYS_RO_APP}/%{_pkgid}#g' \
658 -e 's#@RW_APP_PATH@#%{TZ_SYS_RW_APP}/%{_pkgid}#g' \
659 -e 's#@MOUNT_POINT@#%{CHROMIUM_LIB_DIR}#g' \
660 tizen_src/downloadable/systemd/chromium-efl.service.in \
661 > "%{OUTPUT_FOLDER}"/chromium-efl.service
663 sed -e 's#@RW_APP_PATH@#%{TZ_SYS_RW_APP}/%{_pkgid}#g' \
664 -e 's#@MOUNT_POINT@#%{CHROMIUM_LIB_DIR}#g' \
665 tizen_src/downloadable/systemd/chromium-efl-update.service.in \
666 > "%{OUTPUT_FOLDER}"/chromium-efl-update.service
671 # Make directory strucure for chromium-efl filesystem image
672 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/locales
673 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib
674 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/images
675 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/locale
676 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/themes
677 %if "%{?profile}" == "tv"
678 install -d "%{buildroot}"%{CHROMIUM_LIB_UPGRADE_DIR}
681 install -m 0644 "%{OUTPUT_FOLDER}"/version "%{buildroot}"%{CHROMIUM_LIB_DIR}/
682 install -m 0644 "%{OUTPUT_FOLDER}"/snapshot_blob.bin "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
683 install -m 0644 "%{OUTPUT_FOLDER}"/content_shell.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
685 install -d "%{buildroot}"%{_bindir}
686 install -d "%{buildroot}"%{_libdir}
687 install -d "%{buildroot}"%{CHROMIUM_APP_DIR}/bin
689 install -d "%{buildroot}"%{_libdir}/../local/lib/
690 %if %{__use_clang} == 1
691 install -m 0644 %{_libdir}/libatomic.so* "%{buildroot}"%{_libdir}/../local/lib/
694 install -d "%{buildroot}"%{_includedir}/v8/cppgc
695 install -m 0644 v8/include/cppgc/common.h "%{buildroot}"%{_includedir}/v8/cppgc/
697 %if 0%{?_support_node_module}
698 install -d "%{buildroot}"%{_includedir}/node
699 install -m 0644 third_party/electron_node/src/*.h "%{buildroot}"%{_includedir}/node/
702 %if "%{?tizen_profile_name}" != "tv"
703 install -m 0644 %{_libdir}/libscl-common.so "%{buildroot}"%{_libdir}
706 %if %{__build_chrome} == 1
707 install -m 0755 "%{OUTPUT_FOLDER}"/content_shell "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
708 sed 's#@binary@#%{CHROMIUM_LIB_DIR}/bin/content_shell#' %{SOURCE1} > "%{buildroot}"%{_bindir}/content_shell
710 install -m 0755 "%{OUTPUT_FOLDER}"/chrome "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/chrome
711 sed 's#@binary@#%{CHROMIUM_LIB_DIR}/bin/chrome#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome
713 install -m 0755 "%{OUTPUT_FOLDER}"/chrome_crashpad_handler "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/chrome_crashpad_handler
714 sed 's#@binary@#%{CHROMIUM_LIB_DIR}/bin/chrome_crashpad_handler#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome_crashpad_handler
715 install -m 0644 "%{OUTPUT_FOLDER}"/ui_resources_100_percent.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
716 install -m 0644 "%{OUTPUT_FOLDER}"/locales/*.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/locales
717 install -m 0644 "%{OUTPUT_FOLDER}"/chrome_100_percent.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
718 install -m 0644 "%{OUTPUT_FOLDER}"/resources.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
720 install -m 0755 "%{OUTPUT_FOLDER}"/libminigbm.so "%{buildroot}"%{_libdir}
722 install -m 0644 "%{OUTPUT_FOLDER}"/locales/efl/*.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/locales/
723 install -m 0755 "%{OUTPUT_FOLDER}"/libtest_trace_processor.so "%{buildroot}"%{_libdir}
724 install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{buildroot}"%{_bindir}/
725 %if "%{?profile}" == "tv"
726 ln -s efl_webprocess "%{buildroot}"%{_bindir}/efl_pluginprocess
728 %if 0%{?__enable_ewk_interface}
729 install -m 0644 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{_libdir}/
731 ln -s %{CHROMIUM_LIB_DIR}/lib/libchromium-ewk.so "%{buildroot}"%{_libdir}/libchromium-ewk.so
733 %if 0%{?__enable_squashfs_image}
734 # mount service for chromium-efl.img
735 install -d "%{buildroot}"%{_unitdir}/multi-user.target.wants
736 install -d "%{buildroot}"%{_unitdir_user}/default.target.wants
738 %if "%{?tizen_profile_name}" == "tv"
739 install -m 0755 "%{OUTPUT_FOLDER}"/chromium-efl-install "%{buildroot}"%{_bindir}/
740 install -m 0644 tizen_src/downloadable/systemd/chromium-efl-vd.service "%{buildroot}"%{_unitdir_user}/
741 ln -s ../chromium-efl-vd.service "%{buildroot}"%{_unitdir_user}/default.target.wants/
743 install -m 0644 "%{OUTPUT_FOLDER}"/chromium-efl.service "%{buildroot}"%{_unitdir}
744 ln -s ../chromium-efl.service "%{buildroot}"%{_unitdir}/multi-user.target.wants/
746 install -m 0644 "%{OUTPUT_FOLDER}"/chromium-efl-update.service "%{buildroot}"%{_unitdir}
747 ln -s ../chromium-efl-update.service "%{buildroot}"%{_unitdir}/multi-user.target.wants/
751 # org.tizen.chromium-efl Tizen App package
752 install -m 0755 "%{OUTPUT_FOLDER}"/efl_webview_app "%{buildroot}"%{CHROMIUM_APP_DIR}/bin/
753 install -m 0755 "%{OUTPUT_FOLDER}"/mini_browser "%{buildroot}"%{CHROMIUM_APP_DIR}/bin/
754 install -m 0755 "%{OUTPUT_FOLDER}"/ubrowser "%{buildroot}"%{CHROMIUM_APP_DIR}/bin/
756 %if 0%{?__enable_ewk_interface}
757 install -m 0644 "%{OUTPUT_FOLDER}"/libchromium-impl.so "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib/
759 install -m 0644 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib/
763 install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/themes/
765 %if %{__build_chrome} != 1
766 cp -r "%{OUTPUT_FOLDER}"/locale/* "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/locale/
767 chmod -R a=r,u+w,a+X "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/locale/*
770 %if "%{?__use_system_icu}" != "1"
771 install -m 0644 "%{OUTPUT_FOLDER}"/icudtl.dat "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
774 install -d "%{buildroot}"%{_xmldir}
775 install -m 0644 "%{OUTPUT_FOLDER}"/tizen-manifest.xml "%{buildroot}"%{_xmldir}/%{_pkgid}.xml
777 %if 0%{?__package_signing} && "%{?tizen_profile_name}" != "tv"
779 %define tizen_sign_base %{CHROMIUM_APP_DIR}
780 %define tizen_sign_level platform
781 %define tizen_author_sign 1
782 %define tizen_dist_sign 1
785 %if %{__build_chrome} != 1
786 install -m 0644 "%{OUTPUT_FOLDER}"/images/*.png "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/images/
789 install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/themes/
791 %if "%{?__use_system_icu}" != "1"
792 install -m 0644 "%{OUTPUT_FOLDER}"/icudtl.dat "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
795 install -d "%{buildroot}"%{_xmldir}
796 install -m 0644 "%{OUTPUT_FOLDER}"/tizen-manifest.xml "%{buildroot}"%{_xmldir}/%{_pkgid}.xml
798 %if 0%{?__package_signing} && "%{?tizen_profile_name}" != "tv"
800 %define tizen_sign_base %{CHROMIUM_APP_DIR}
801 %define tizen_sign_level platform
802 %define tizen_author_sign 1
803 %define tizen_dist_sign 1
806 %if 0%{?__package_signing} && "%{?tizen_profile_name}" == "tv"
807 install -m 0644 tizen_src/downloadable/vd_sign/author-signature.xml "%{buildroot}"%{CHROMIUM_APP_DIR}
808 install -m 0644 tizen_src/downloadable/vd_sign/signature1.xml "%{buildroot}"%{CHROMIUM_APP_DIR}
811 install -d "%{buildroot}"%{_libdir}/pkgconfig
812 install -m 0644 "%{OUTPUT_FOLDER}"/pkgconfig/chromium-efl.pc "%{buildroot}"%{_libdir}/pkgconfig/
814 install -d "%{buildroot}"%{_includedir}/chromium-ewk
815 install -m 0644 tizen_src/ewk/efl_integration/public/*.h "%{buildroot}"%{_includedir}/chromium-ewk/
817 install -d "%{buildroot}"%{_includedir}/v8
818 install -m 0644 v8/include/*.h "%{buildroot}"%{_includedir}/v8/
820 %if %{__build_chrome} != 1
821 # The native applications using ewk API from Tizen 2.x have a dependency about libewebkit2.so.
822 # The chromium-efl should support the backward compatibility of the native applications.
823 ln -s %{_libdir}/libchromium-ewk.so %{buildroot}%{_libdir}/libewebkit2.so.0
824 ln -s %{_libdir}/libewebkit2.so.0 %{buildroot}%{_libdir}/libewebkit2.so
827 %if 0%{?__make_squashfs_rpm}
828 install -d "%{buildroot}"%{CHROMIUM_APP_DIR}/res
829 # Make squashfs image of chromium-efl after extracting debuginfo
830 %if 0%{?__generate_tpk}
831 %define _tpk_file_name %{_tpkid}-%{version}-v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
832 %define __tpk_install_post \
833 tizen_src/build/build_tpk.sh "%{buildroot}"%{CHROMIUM_APP_DIR} %{OUTPUT_FOLDER} %{_tpk_file_name} %{_tpkid} %{?profile} \
834 install -d %{buildroot}%{CHROMIUM_TPK_DIR}/ \
835 install -m 644 %{OUTPUT_FOLDER}/%{_tpk_file_name}.tpk %{buildroot}%{CHROMIUM_TPK_DIR}
837 %define __tpk_install_post echo "No TPK generation"
839 %define __squashfs_rpm_install_post \
840 %{?__sandbox_chmod_cmd} \
841 mksquashfs "%{buildroot}"%{CHROMIUM_LIB_DIR} "%{buildroot}"%{CHROMIUM_APP_DIR}/res/%{name}.img -all-root \
842 %{__tpk_install_post} \
845 # Force stripping all symbols
846 %if "%{?profile}" == "tv"
847 # Clear %{_rpm_strip_option} macro to strip all symbols.
848 echo "Clear _rpm_strip_option=%{?_rpm_strip_option} to strip all symbols."
849 %define _rpm_strip_option %{nil}
850 echo "_find_debuginfo_strip_opts=%{?_find_debuginfo_strip_opts}"
854 %define __spec_install_post \
855 %{?__debug_package:%{__debug_install_post}} \
856 %{__arch_install_post} \
857 %{__os_install_post} \
858 %{?__squashfs_rpm_install_post} \
861 %if 0%{?_enable_unittests}
862 install -d "%{INSTALL_ROOT}%{CHROMIUM_UNITTESTS_DIR}"
863 for test in "%{OUTPUT_FOLDER}/*_unittests"; do
864 install -m 0755 ${test} "%{INSTALL_ROOT}%{CHROMIUM_UNITTESTS_DIR}"
868 %if 0%{?build_ewk_unittests}
869 mkdir -p %{buildroot}/opt/usr/resources/
870 mkdir -p %{buildroot}/opt/usr/utc_exec/
871 cp -r tizen_src/ewk/unittest/resources/* %{buildroot}/opt/usr/resources/
872 install -m 0644 "%{OUTPUT_FOLDER}"/ewk_unittests %{buildroot}/opt/usr/utc_exec/
873 install -m 0755 tizen_src/ewk/utc_gtest_run.sh %{buildroot}/opt/usr/utc_exec/
876 %if 0%{?build_tizen_ppapi_extension_unittests}
877 mkdir -p %{buildroot}/opt/usr/utc_exec/
878 install -m 0755 -p -D %{OUTPUT_FOLDER}/efl_integration_unittests %{buildroot}/opt/usr/utc_exec/
879 install -m 0755 -p -D %{OUTPUT_FOLDER}/ppapi_unittests %{buildroot}/opt/usr/utc_exec/
882 %if 0%{?__enable_wrt_js}
883 %define __wrt_resourcedir %{CHROMIUM_LIB_DIR}/wrt
884 %if "%{?tizen_profile_name}" != "tv"
885 %define __wrt_localedir %{OUTPUT_FOLDER}/gen/wrt/resources/locales/
887 %define __wrt_localedir %{OUTPUT_FOLDER}/gen/wrt/resources/tv_locales/
890 install -d %{buildroot}%{_bindir}
891 install -d %{buildroot}%{_sysconfdir}/profile.d
892 install -d %{buildroot}%{_unitdir_user}
893 install -d %{buildroot}%{__wrt_resourcedir}
894 install -d %{buildroot}%{__xwalk_extension_path}
895 install -d %{buildroot}%{_datadir}/locale
896 install -d %{buildroot}%{_datadir}/edje/wrtjs
897 %if "%{?profile}" == "wearable"
898 install -d %{buildroot}%{_datadir}/icons/wrtjs
901 install -m 0755 %{OUTPUT_FOLDER}/wrt %{buildroot}%{_bindir}
902 ln -s %{_bindir}/wrt %{buildroot}%{_bindir}/wrt-client
903 install -m 0755 wrt/wrt_env.sh %{buildroot}%{_sysconfdir}/profile.d/
904 %if %{__build_chrome} != 1
905 install -m 0644 %{OUTPUT_FOLDER}/wrt_resources.pak %{buildroot}%{CHROMIUM_LIB_DIR}/bin/
906 install -m 0644 %{OUTPUT_FOLDER}/liboffload_js_plugin.so %{buildroot}%{__xwalk_extension_path}
907 install -m 0644 %{OUTPUT_FOLDER}/libsplash_screen_plugin.so %{buildroot}%{__xwalk_extension_path}
908 install -m 0644 %{OUTPUT_FOLDER}/libwidget_plugin.so %{buildroot}%{__xwalk_extension_path}
909 install -m 0644 %{OUTPUT_FOLDER}/libwrt-service-override.so %{buildroot}%{__xwalk_extension_path}
910 install -m 0644 %{OUTPUT_FOLDER}/gen/tizen_src/chromium_impl/components/xwalk_extensions/offload_js_plugin/offload_js.json \
911 %{buildroot}%{__xwalk_extension_path}
912 install -m 0644 %{OUTPUT_FOLDER}/gen/tizen_src/chromium_impl/components/xwalk_extensions/splash_screen_plugin/splash_screen.json \
913 %{buildroot}%{__xwalk_extension_path}
914 install -m 0644 %{OUTPUT_FOLDER}/gen/tizen_src/chromium_impl/components/xwalk_extensions/widget_plugin/widget.json \
915 %{buildroot}%{__xwalk_extension_path}
916 install -m 0644 %{OUTPUT_FOLDER}/gen/wrt/resources/*.edj %{buildroot}%{CHROMIUM_LIB_DIR}/res/themes/
918 %if "%{?profile}" == "wearable"
920 cp wrt/resources/icons/*.png %{buildroot}%{_datadir}/icons/wrtjs/
922 %if "%{?profile}" != "tv"
923 for file in $(find %{__wrt_localedir} -type f -name *.mo); do
924 install -m 644 -D $file %{buildroot}%{_datadir}/locale/${file#%{__wrt_localedir}}
927 install -m 0644 %{OUTPUT_FOLDER}/gen/wrt/resources/*.edj %{buildroot}%{_datadir}/edje/wrtjs
930 install -d %{buildroot}%{_datadir}/dbus-1/services
931 install -m 0755 %{OUTPUT_FOLDER}/wrt-service %{buildroot}%{_bindir}
932 install -m 0755 %{OUTPUT_FOLDER}/wrt-service %{buildroot}%{_bindir}/wrt-service-standalone
933 install -m 0755 %{OUTPUT_FOLDER}/wrt-service-launcher %{buildroot}%{_bindir}
935 %if "%{?profile}" == "tv"
936 for file in $(find %{__wrt_localedir} -type f -name *.mo); do
937 install -m 644 -D $file %{buildroot}%{CHROMIUM_LIB_DIR}/res/locale/${file#%{__wrt_localedir}}
940 install -d %{buildroot}/etc/notstrip/
941 install -m 644 packaging/wrt.notstrip %{buildroot}/etc/notstrip/wrt.notstrip
942 %if 0%{?__generate_tpk}
943 echo "start to get wrtjs package"
944 install -d %{buildroot}%{__wrt_resourcedir}/app
945 cd tizen_src/downloadable/wrtjs
946 rpm2cpio wrtjs-1.1.1-1.armv7l.rpm | cpio -divm
947 cp -rf usr/share/wrt/app/* %{buildroot}%{__wrt_resourcedir}/app/
950 mkdir -p %{buildroot}/etc/spolicy/
951 %if 0%{?__generate_tpk}
952 echo "start to get wrtjs package"
953 install -d %{buildroot}%{__wrt_resourcedir}/app
954 cd tizen_src/downloadable/wrtjs
955 rpm2cpio wrtjs-1.1.1-1.armv7l.rpm | cpio -divm
956 cp -rf usr/share/wrt/app/* %{buildroot}%{__wrt_resourcedir}/app/
961 install -d "%{buildroot}"%{_includedir}/wrt
962 install -m 0644 wrt/electron.d.ts "%{buildroot}"%{_includedir}/wrt/
963 install -m 0644 wrt/native_wrtjs.d.ts "%{buildroot}"%{_includedir}/wrt/
967 if (( $(rpm -qa | grep 'wrtjs-[[:digit:]]' | wc -l) > 1 )); then
968 echo -e "\033[31m*****************************************************"
969 echo -e "Please remove wrtjs rpm(s) except for one:\n"
970 rpm -qa | grep 'wrtjs-[[:digit:]]'
971 echo -e "*****************************************************\033[m"
975 export CHROMIUM_REVISION=$(echo %{version} | awk -F. '{print $2}')
976 export WRTJS_REVISION=$(rpm -qa | grep wrtjs | awk -F. '{print $2}')
977 if [[ "${WRTJS_REVISION}" == "" ]]; then
978 WRTJS_REVISION="not installed"
981 echo -e "\033[32m*****************************************************"
982 echo -e "* chromium-efl revision : ${CHROMIUM_REVISION}"
983 echo -e "* wrtjs revision : ${WRTJS_REVISION}"
985 if [[ "${WRTJS_REVISION}" == "not installed" ]] || \
986 (( ${CHROMIUM_REVISION} == ${WRTJS_REVISION} )); then
987 echo -e "* Succeeded to check rpm versions"
989 if (( ${CHROMIUM_REVISION} < ${WRTJS_REVISION} )); then
990 echo -e "\033[31m* You're trying to install too old chromium-efl."
991 echo -e "* Please install chromium-efl as revision ${WRTJS_REVISION}"
994 echo -e "\033[31m* You have too old wrtjs."
996 echo -e "* please re-install wrtjs as revision ${CHROMIUM_REVISION} first."
998 echo -e "*****************************************************\033[m"
1001 %if 0%{?__enable_wrt_js}
1002 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/alarm -t ALLOW
1003 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/application.info -t ALLOW
1004 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/application.launch -t ALLOW
1005 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/appmanager.certificate -t ALLOW
1006 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/appmanager.kill -t ALLOW
1007 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/filesystem.read -t ALLOW
1008 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/filesystem.write -t ALLOW
1009 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/packagemanager.install -t ALLOW
1010 # Prevent executing wrt-service by third party apps
1011 chsmack -a "User::Pkg::org.tizen.chromium-efl" %{_bindir}/wrt-service
1012 # It's essential to drop thread privilege of service app
1013 chsmack -e "System::Privileged" %{_bindir}/wrt-service
1014 %if "%{?_local_build}" == "1"
1015 setcap cap_mac_admin=eip %{_bindir}/wrt-service
1019 %if "%{?profile}" == "tv"
1020 chsmack -a "*" opt/usr/home/owner/.pki/nssdb/cert9.db
1023 if [ -f %{CHROMIUM_APP_DIR}/res/%{name}.img ]; then
1024 echo "chromium-efl-squasfs image will be mounted on boot by chromium-efl-squasfs rpm."
1025 echo "If you want to use chromium-efl without squashfs, please uninstall chromium-efl-squashfs rpm."
1029 # Stop chromium-efl mount systemd unit if script called from target.
1030 # "id -G" - helps to determine the current environment:
1031 # 0 - called from image creation process
1032 # other - called form target
1033 if [[ "$(id -G)" != "0" ]]; then
1034 if [ -f %{_unitdir}/chromium-efl.service ]; then
1035 echo "systemctl stop chromium-efl.service"
1036 systemctl stop chromium-efl.service
1038 if [ -f %{_unitdir_user}/default.target.wants/chromium-efl-vd.service ]; then
1039 echo "su - owner -c 'systemctl --user stop chromium-efl-vd.service'"
1040 su - owner -c 'systemctl --user stop chromium-efl-vd.service'
1045 %if 0%{?__make_squashfs_rpm}
1047 # Stop chromium-efl mount systemd unit if script called from target.
1048 # "id -G" - helps to determine the current environment:
1049 # 0 - called from image creation process
1050 # other - called form target
1051 if [[ "$(id -G)" != "0" ]]; then
1052 if [ -f %{_unitdir}/chromium-efl.service ]; then
1053 echo "systemctl stop chromium-efl.service"
1054 systemctl stop chromium-efl.service
1056 if [ -f %{_unitdir_user}/default.target.wants/chromium-efl-vd.service ]; then
1057 echo "su - owner -c 'systemctl --user stop chromium-efl-vd.service'"
1058 su - owner -c 'systemctl --user stop chromium-efl-vd.service'
1065 rm -rf %{CHROMIUM_LIB_DIR}/*
1066 echo "All regular files in /usr/share/chromium-efl have been removed."
1067 echo "Note: It requries to reboot the device for mounting squashfs image!"
1070 %if 0%{?__generate_tpk}
1072 pkgcmd -un %{_tpkid}
1075 pkgcmd -i -t tpk -p %{CHROMIUM_TPK_DIR}/%{_tpk_file_name}.tpk
1076 rm -rf %{CHROMIUM_TPK_DIR}/%{_tpk_file_name}.tpk
1080 %manifest packaging/chromium-efl.manifest
1081 %if 0%{?__package_signing}
1082 %{CHROMIUM_APP_DIR}/author-signature.xml
1083 %{CHROMIUM_APP_DIR}/signature1.xml
1085 %{_xmldir}/%{_pkgid}.xml
1086 %defattr(-,root,root,-)
1087 %if "%{?tizen_profile_name}" != "tv"
1088 %{_libdir}/libscl-common.so
1090 %if %{__use_clang} == 1
1091 %{_libdir}/../local/lib/libatomic.so*
1094 %{CHROMIUM_LIB_DIR}/version
1095 %{CHROMIUM_LIB_DIR}/bin/snapshot_blob.bin
1096 %{CHROMIUM_LIB_DIR}/bin/content_shell.pak
1097 %{CHROMIUM_LIB_DIR}/bin/locales/*.pak
1098 %{CHROMIUM_LIB_DIR}/res/themes/*.edj
1100 %if %{__build_chrome} == 1
1101 %{CHROMIUM_LIB_DIR}/bin/chrome_100_percent.pak
1102 %{CHROMIUM_LIB_DIR}/bin/resources.pak
1103 %{CHROMIUM_LIB_DIR}/bin/ui_resources_100_percent.pak
1104 %{CHROMIUM_LIB_DIR}/bin/content_shell
1105 %{_bindir}/content_shell
1106 %{CHROMIUM_LIB_DIR}/bin/chrome
1108 %{CHROMIUM_LIB_DIR}/bin/chrome_crashpad_handler
1109 %{_bindir}/chrome_crashpad_handler
1110 %{_libdir}/libminigbm.so
1112 %{CHROMIUM_LIB_DIR}/res/locale/*
1113 %{_libdir}/libchromium-ewk.so
1114 %{_libdir}/libtest_trace_processor.so
1115 %{_libdir}/libewebkit2.so*
1116 %if 0%{?__enable_squashfs_image}
1117 %if "%{?tizen_profile_name}" == "tv"
1118 %{_bindir}/chromium-efl-install
1119 %{_unitdir_user}/chromium-efl-vd.service
1120 %{_unitdir_user}/default.target.wants/chromium-efl-vd.service
1121 %dir %{CHROMIUM_LIB_UPGRADE_DIR}
1123 %{_unitdir}/chromium-efl.service
1124 %{_unitdir}/multi-user.target.wants/chromium-efl.service
1125 %{_unitdir}/chromium-efl-update.service
1126 %{_unitdir}/multi-user.target.wants/chromium-efl-update.service
1129 %{CHROMIUM_APP_DIR}/bin/efl_webview_app
1130 %{CHROMIUM_APP_DIR}/bin/mini_browser
1131 %{CHROMIUM_APP_DIR}/bin/ubrowser
1133 %if "%{?tizen_profile_name}" == "tv"
1134 %caps(cap_mac_admin,cap_mac_override,cap_setgid=ei) %{_bindir}/efl_webprocess
1135 %{_bindir}/efl_pluginprocess
1137 %{_bindir}/efl_webprocess
1139 %if 0%{?__enable_ewk_interface}
1140 %{CHROMIUM_LIB_DIR}/lib/libchromium-impl.so
1142 %{CHROMIUM_LIB_DIR}/lib/libchromium-ewk.so
1144 %{CHROMIUM_LIB_DIR}/res/images/*.png
1147 %if "%{?__use_system_icu}" != "1"
1148 %{CHROMIUM_LIB_DIR}/bin/icudtl.dat
1151 %if 0%{?__enable_wrt_js}
1152 %if "%{?profile}" == "tv"
1153 %caps(cap_mac_admin,cap_mac_override,cap_setgid,cap_setpcap,cap_setuid,cap_sys_chroot,cap_sys_ptrace,cap_sys_admin,cap_dac_override,cap_sys_nice=eip) %{_bindir}/wrt
1154 /etc/notstrip/wrt.notstrip
1155 %if 0%{?__generate_tpk}
1156 %{__wrt_resourcedir}/app/*
1161 %{_bindir}/wrt-client
1162 %{_sysconfdir}/profile.d/wrt_env.sh
1163 %if %{__build_chrome} != 1
1164 %{CHROMIUM_LIB_DIR}/bin/wrt_resources.pak
1165 %{__xwalk_extension_path}/liboffload_js_plugin.so
1166 %{__xwalk_extension_path}/libsplash_screen_plugin.so
1167 %{__xwalk_extension_path}/libwidget_plugin.so
1168 %{__xwalk_extension_path}/libwrt-service-override.so
1169 %{__xwalk_extension_path}/offload_js.json
1170 %{__xwalk_extension_path}/splash_screen.json
1171 %{__xwalk_extension_path}/widget.json
1173 %if "%{?profile}" != "tv"
1174 %{_datadir}/edje/wrtjs/*.edj
1175 %{_datadir}/locale/*
1177 %if "%{?profile}" == "wearable"
1178 %{_datadir}/icons/wrtjs/*
1181 %{_bindir}/wrt-service
1182 %{_bindir}/wrt-service-standalone
1183 %{_bindir}/wrt-service-launcher
1186 %if 0%{?__make_squashfs_rpm}
1188 %defattr(-,root,root,-)
1189 %{CHROMIUM_APP_DIR}/res/%{name}.img
1192 %if 0%{?__generate_tpk}
1194 %defattr(-,root,root,-)
1195 %{CHROMIUM_TPK_DIR}/*
1199 %defattr(-,root,root,-)
1200 %{_includedir}/chromium-ewk/*.h
1201 %{_libdir}/pkgconfig/chromium-efl.pc
1202 %{_libdir}/pkgconfig/*.pc
1205 %if 0%{?_support_node_module}
1206 %{_includedir}/node/*
1209 %if 0%{?__enable_wrt_js}
1210 %{_includedir}/wrt/*
1213 %if 0%{?_enable_unittests}
1215 %defattr(-,root,root,-)
1216 %{CHROMIUM_UNITTESTS_DIR}/*
1219 %if 0%{?build_ewk_unittests}
1221 %defattr(-,root,root,-)
1222 %manifest ./packaging/chromium-ewktest.manifest
1224 /opt/usr/resources/*
1227 %if "%{chromium_efl_tizen_profile}" == "tv"
1228 ln -s %{CHROMIUM_EXE_DIR}/efl_webprocess %{buildroot}%{CHROMIUM_EXE_DIR}/efl_pluginprocess
1231 %if 0%{?build_tizen_ppapi_extension_unittests}
1232 %files tizen_ppapi_extension_unittests
1233 %defattr(-,root,root,-)
1234 %manifest ./packaging/chromium-tizen_ppapi_extension_unittests.manifest