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
75 %if "%{_vd_cfg_product_type}" != "LFD" && "%{_vd_cfg_product_type}" != "IWB" && "%{?_with_emulator}" != "1" && "%{_vd_cfg_licensing}" == "n" && %{tizen_version} > 60
76 %define _tizen_atmos_decoder_enable 1
79 %{?_use_system_icu: %define __use_system_icu %{_use_system_icu}}
80 # Product tv can't utilize system icu due to nacl dependency.
81 %if "%{?profile}" != "tv" && %{tizen_version} == 60 && %{?_use_system_icu: 0}%{!?_use_system_icu: 1}
82 # Disabling system icu temporarily as it needs to be upgraded to version >= 67
83 %define __use_system_icu 0
86 Requires: /usr/bin/systemctl
87 Requires(post): /sbin/ldconfig
88 Requires(post): xkeyboard-config
89 Requires(postun): /sbin/ldconfig
92 BuildRequires: binutils-gold
94 BuildRequires: at-spi2-atk-devel, bison, edje-tools, expat-devel, flex, gettext, gperf, libatk-bridge-2_0-0, libcap-devel, libcurl, libatomic
95 BuildRequires: libjpeg-turbo-devel, ninja, perl, python3, python3-xml, which
96 BuildRequires: pkgconfig(atk)
97 BuildRequires: pkgconfig(capi-appfw-application)
98 BuildRequires: pkgconfig(capi-appfw-app-manager)
99 BuildRequires: pkgconfig(capi-location-manager)
100 BuildRequires: pkgconfig(capi-media-audio-io)
101 BuildRequires: pkgconfig(capi-media-camera)
102 BuildRequires: pkgconfig(capi-media-player)
103 BuildRequires: pkgconfig(capi-media-tool)
104 BuildRequires: pkgconfig(capi-system-device)
105 BuildRequires: pkgconfig(capi-system-info)
106 BuildRequires: pkgconfig(capi-system-sensor)
107 BuildRequires: pkgconfig(capi-system-system-settings)
108 BuildRequires: pkgconfig(capi-ui-autofill)
109 BuildRequires: pkgconfig(capi-ui-autofill-common)
110 BuildRequires: pkgconfig(capi-ui-autofill-service)
111 BuildRequires: pkgconfig(dlog)
112 BuildRequires: pkgconfig(ecore)
113 BuildRequires: pkgconfig(ecore-evas)
114 BuildRequires: pkgconfig(ecore-imf)
115 BuildRequires: pkgconfig(ecore-imf-evas)
116 BuildRequires: pkgconfig(ecore-input)
117 BuildRequires: pkgconfig(efl-extension)
118 BuildRequires: pkgconfig(eldbus)
119 BuildRequires: pkgconfig(elementary)
120 BuildRequires: pkgconfig(esplusplayer)
121 BuildRequires: pkgconfig(evas)
122 BuildRequires: pkgconfig(feedback)
123 BuildRequires: pkgconfig(fontconfig)
124 BuildRequires: pkgconfig(freetype2)
125 BuildRequires: pkgconfig(gles20)
126 BuildRequires: pkgconfig(glib-2.0)
127 BuildRequires: pkgconfig(gstreamer-1.0)
128 BuildRequires: pkgconfig(gstreamer-app-1.0)
129 BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
130 BuildRequires: pkgconfig(harfbuzz)
131 BuildRequires: pkgconfig(icu-i18n)
132 BuildRequires: pkgconfig(libdrm)
133 BuildRequires: pkgconfig(libcurl)
134 BuildRequires: pkgconfig(libexif)
135 BuildRequires: pkgconfig(libffi)
136 BuildRequires: pkgconfig(libpng)
137 BuildRequires: pkgconfig(libtbm)
138 BuildRequires: pkgconfig(libtzplatform-config)
139 BuildRequires: pkgconfig(libudev)
140 BuildRequires: pkgconfig(libusb-1.0)
141 BuildRequires: pkgconfig(libxml-2.0)
142 BuildRequires: pkgconfig(libxslt)
143 BuildRequires: pkgconfig(minizip)
144 BuildRequires: pkgconfig(mm-player)
145 BuildRequires: pkgconfig(notification)
146 BuildRequires: pkgconfig(nspr)
147 BuildRequires: pkgconfig(nss)
148 BuildRequires: pkgconfig(pkgmgr-info)
149 BuildRequires: pkgconfig(scim)
150 BuildRequires: pkgconfig(security-manager)
151 BuildRequires: pkgconfig(sqlite3)
152 BuildRequires: pkgconfig(stt)
153 BuildRequires: pkgconfig(ttrace)
154 BuildRequires: pkgconfig(tts)
155 BuildRequires: pkgconfig(ui-gadget-1)
156 BuildRequires: pkgconfig(vconf)
157 BuildRequires: pkgconfig(zlib)
159 # Applied python acceleration for generating gyp files.
161 BuildRequires: python-accel-armv7l-cross-arm
164 BuildRequires: python-accel-armv7hl-cross-arm
167 BuildRequires: python-accel-aarch64-cross-aarch64
170 BuildRequires: python-accel-riscv64-cross-riscv64
173 %if "%{?_with_wayland}" == "1"
174 %if %{tizen_version} >= 50
175 BuildRequires: pkgconfig(ecore-wl2)
177 BuildRequires: pkgconfig(ecore-wayland)
179 BuildRequires: pkgconfig(wayland-egl)
181 BuildRequires: pkgconfig(ecore-x)
182 BuildRequires: pkgconfig(libdri2)
183 BuildRequires: pkgconfig(x11)
184 BuildRequires: pkgconfig(xcomposite)
185 BuildRequires: pkgconfig(xcursor)
186 BuildRequires: pkgconfig(xext)
187 BuildRequires: pkgconfig(xi)
188 BuildRequires: pkgconfig(xrandr)
189 BuildRequires: pkgconfig(xt)
190 BuildRequires: pkgconfig(xfixes)
191 BuildRequires: pkgconfig(xtst)
194 %if "%{?tizen_profile_name}" == "tv"
195 BuildRequires: pkgconfig(aul-extension)
196 BuildRequires: pkgconfig(capi-media-sound-manager)
197 BuildRequires: pkgconfig(capi-stt-wrapper-tv)
198 BuildRequires: pkgconfig(capi-system-display-rotator)
199 BuildRequires: pkgconfig(capi-appfw-app-manager)
200 BuildRequires: pkgconfig(cynara-client)
201 BuildRequires: pkgconfig(security-privilege-manager)
202 BuildRequires: pkgconfig(drmdecrypt)
203 BuildRequires: pkgconfig(efl-assist)
204 BuildRequires: pkgconfig(hdmicec-api)
205 BuildRequires: pkgconfig(lwipc)
206 BuildRequires: pkgconfig(privileged-service)
207 BuildRequires: pkgconfig(tv-resource-manager)
208 BuildRequires: pkgconfig(tv-resource-information)
209 BuildRequires: pkgconfig(vd-win-util)
210 BuildRequires: pkgconfig(WebProduct)
211 %if "%{_tizen_atmos_decoder_enable}" == "1"
212 BuildRequires: pkgconfig(ais-control-settings)
214 %if %{tizen_version} >= 60
215 BuildRequires: pkgconfig(resource-center-api)
219 %if "%{__enable_capi_thread_booster}" == "1"
220 BuildRequires: pkgconfig(capi-boost-tv)
223 # TODO(youngsoo): The binutils-gold crashes mini_browser on the Tizen v3.0 ARM 64 bit images.
224 # Once fixed, use binutils-gold for all targets on Tizen v3.0.
225 %ifnarch aarch64 %{arm} # [M48_2564] Temporary excluding arm architecture for fixing memory issue
226 # FIXME: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=15383
227 #BuildRequires: binutils-gold
231 %define ARCHITECTURE armv7l
234 %define ARCHITECTURE armv7hl
237 %define ARCHITECTURE aarch64
240 %define ARCHITECTURE ix86
243 %define ARCHITECTURE x86_64
246 %define ARCHITECTURE riscv64
249 %{!?_clang: %define _clang 1}
251 %if "%{?gcov}" == "1"
252 %define __enable_gcov 1
254 %define __enable_gcov 0
257 %if "%{?_clang}" == "1" && "%{ARCHITECTURE}" == "armv7l"
258 %define __use_clang 1
260 %define __use_clang 0
263 %define __enable_wrt_js 1
264 %if 0%{?_disable_wrt_js}
265 %define __enable_wrt_js 0
268 %if 0%{?__enable_wrt_js}
269 BuildRequires: pkgconfig(appcore-agent)
270 BuildRequires: pkgconfig(appsvc)
271 BuildRequires: pkgconfig(aul)
272 BuildRequires: pkgconfig(capi-appfw-package-manager)
273 BuildRequires: pkgconfig(capi-appfw-service-application)
274 BuildRequires: pkgconfig(cynara-client)
275 BuildRequires: pkgconfig(launchpad)
276 BuildRequires: pkgconfig(libwebappenc)
277 BuildRequires: pkgconfig(message-port)
278 BuildRequires: pkgconfig(wgt-manifest-handlers)
279 %if "%{?profile}" == "tv"
280 BuildRequires: app-signer
282 BuildRequires: pkgmgr-extension-devel
283 BuildRequires: pkgconfig(autoinput)
284 BuildRequires: pkgconfig(capi-media-player)
285 BuildRequires: pkgconfig(capi-screensaver)
286 BuildRequires: pkgconfig(settings-api)
287 BuildRequires: pkgconfig(tvs-api)
289 BuildRequires: pkgconfig(capi-appfw-watch-application)
290 BuildRequires: pkgconfig(capi-ui-inputmethod)
293 %define __xwalk_extension_path %{_libdir}/tizen-extensions-crosswalk
294 %define __xwalk_extension_service_path %{_libdir}/tizen-extensions-crosswalk-service
297 # node module is required for nmt and category public features.
298 %if "%{?profile}" != "tv" && "%{?profile}" != "wearable" && "%{?_with_da_profile}" != "1"
299 %define _support_node_module 1
302 %define __enable_ewk_interface 1
304 # Enable to support squashfs RPM and image by default
305 %define __enable_squashfs_image 1
306 %if "%{?profile}" == "tv" && "%{_vd_cfg_chip_vendor}" == "EMUL"
307 %define __package_signing 0
309 %define __package_signing %{?__enable_squashfs_image}
312 # squashfs rpm isn't generated on local build by default.
313 %define __make_squashfs_rpm %{?_make_squashfs_rpm}%{!?_make_squashfs_rpm:%{?__enable_squashfs_image}}
314 %define __generate_tpk %{?__make_squashfs_rpm}
316 %if "%{?profile}" == "tv"
318 %define __generate_tpk 1
320 %define __generate_tpk 0
323 %define __generate_tpk %{?__make_squashfs_rpm}
326 %if 0%{?__enable_squashfs_image}
327 BuildRequires: squashfs
330 %if "%{?tizen_profile_name}" == "tv" && "%{_vd_cfg_product_type}" != "AUDIO" && "%{_vd_cfg_product_type}" != "AV" && %{__build_chrome} != 1
331 BuildRequires: pkgconfig(accessory)
334 %if 0%{?__generate_tpk} || 0%{?__package_signing}
335 BuildRequires: hash-signer, zip
338 %if 0%{?__make_squashfs_rpm}
340 Summary: Chromium EFL SquashFS Image
341 Requires: %{name} = %{version}-%{release}
342 %description squashfs
343 Browser Engine based on Chromium EFL (SquashFS Image)
346 %if 0%{?__generate_tpk}
348 Summary: Chromium EFL TPK
350 Browser Engine based on Chromium EFL (TPK)
354 Browser Engine based on Chromium EFL (Shared Library)
357 Summary: Chromium EFL
358 Group: Development/Libraries
359 Requires: %{name} = %{version}-%{release}
361 Browser Engine dev library based on Chromium EFL (development files)
363 %if 0%{?_enable_unittests}
365 Summary: Chromium unittests
366 Group: Development/Libraries
367 Requires: %{name} = %{version}-%{release}
368 %description unittests
372 %if 0%{?build_ewk_unittests}
374 Summary: Chromium EWK unittests
375 Group: Development/UnitTests
376 Requires: %{name} = %{version}-%{release}
378 Chromium EFL unit test utilities
381 %if 0%{?build_tizen_ppapi_extension_unittests}
382 %package tizen_ppapi_extension_unittests
383 Summary: Chromium tizen ppapi extension unittests
384 Group: Development/UnitTests
385 Requires: %{name} = %{version}-%{release}
386 %description tizen_ppapi_extension_unittests
387 Chromium tizen ppapi extension unit test utilities
390 # The macros '%TZ_' are valid from tizen v3.0
391 %define _pkgid org.tizen.%{name}
392 %define _xmldir %TZ_SYS_RO_PACKAGES
394 # Directory for chromium-efl tizen application package
395 %global CHROMIUM_APP_DIR %{TZ_SYS_RO_APP}/%{_pkgid}
396 # Directory for chromium-efl shared library
397 %global CHROMIUM_LIB_DIR %{_datadir}/%{name}
399 # Chromium unit tests install directory
400 %global CHROMIUM_UNITTESTS_DIR /opt/usr/chromium-unittests/
401 # Directory containing localization files
402 %global CHROMIUM_LOCALE_DIR %{_datadir}/%{name}/locale
404 # Chromium-EFL TPK install directory
405 %global CHROMIUM_TPK_DIR /tmp
407 # The tv profile has a different tpk generation policy.
408 # 2 types(update, upgrade) of tpk can be generated and used simultaneously.
409 # If tpktype is not defined and tizen version is less than 6.0, upgrade type is generated by default.
410 %if "%{?profile}" == "tv"
411 %global CHROMIUM_LIB_UPGRADE_DIR %{_datadir}/%{name}/upgrade
412 %define _pkgid_upgrade %{_pkgid}-upgrade
413 %if "%{?tpktype}" == "upgrade" || (0%{!?tpktype:1} && %{tizen_version} < 60)
414 %define _tpkid %{_pkgid_upgrade}
418 %define _tpkid %{_pkgid}
425 # architecture related configuration + neon temporary workaround
426 %if %{?_skip_ninja:0}%{!?_skip_ninja:1}
428 %ifarch %{arm} aarch64
429 export ADDITION_OPTION=" -finline-limit=64 -foptimize-sibling-calls -fno-unwind-tables -fno-exceptions -Os "
431 export CFLAGS="$CFLAGS $ADDITION_OPTION"
432 export CXXFLAGS="$CXXFLAGS $ADDITION_OPTION"
433 export FFLAGS="$FFLAGS $ADDITION_OPTION"
435 export CFLAGS="$(echo $CFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
436 export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
437 export FFLAGS="$(echo $FFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
439 export CFLAGS="$(echo $CFLAGS | sed 's/-Wl,--as-needed//g')"
440 export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-Wl,--as-needed//g')"
444 CFLAGS="$(echo $CFLAGS | sed -E 's/-g[0-9] /-g0 /g')"
445 CXXFLAGS="$(echo $CXXFLAGS | sed -E 's/-g[0-9] /-g0 /g')"
447 %if %{__use_clang} == 0
451 %if 0%{?__enable_wrt_js}
452 CFLAGS="$(echo $CFLAGS | sed -E 's/-O2/-Os/g')"
453 CXXFLAGS="$(echo $CXXFLAGS | sed -E 's/-O2/-Os/g')"
454 PATH="$PATH:$(cd third_party/node/tizen; pwd)"
455 export PYTHONIOENCODING=utf-8
458 # The "_repository" flag was changed to "_vd_cfg_target_repository" in tizen 4.0 product tv.
459 %if "%{?tizen_profile_name}" == "tv"
460 #TO DO, onemain branch haven't defined _vd_cfg_target_repository, so add this hijack code
461 # to set repo_name to "MuseM" if not define _vd_cfg_target_repository, need to delete this
462 # code when defined _vd_cfg_target_repository in onemain.
463 %if "%{?_vd_cfg_target_repository}"
464 %define repo_name %{_vd_cfg_target_repository}
466 %define repo_name MuseM
469 %define repo_name %{_repository}
472 %if %{__build_chrome} == 1
473 %define OUTPUT_BASE_FOLDER out.chrome.tz_v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
475 %define OUTPUT_BASE_FOLDER out.tz_v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
478 export GN_GENERATOR_OUTPUT=$PWD/%{OUTPUT_BASE_FOLDER}
480 export BUILD_ARCH=%{ARCHITECTURE}
483 %global OUTPUT_FOLDER %{OUTPUT_BASE_FOLDER}
485 if type ccache &> /dev/null; then
486 source tizen_src/build/ccache_env.sh tizen
490 %define macro_to_bool() %(if [ %{expand:%%{?%{1}}%%{!?%{1}:0}} -gt 0 ]; then echo true; else echo false; fi)
493 # Touch the ewk generator script file to rerun in every build, so that
494 # changes in ewk api public headers will reflect in generated .cc file.
495 # FIXME: Check if there is a way to do inside the respective .gn file itself.
496 touch ./tizen_src/downloadable/ewk_api_wrapper_generator.py
498 #run standard gn_chromiumefl wrapper
499 ./tizen_src/build/gn_chromiumefl.sh \
501 "lib_ro_root_dir=\"%{CHROMIUM_LIB_DIR}\"" \
502 "app_ro_root_dir=\"%{TZ_SYS_RO_APP}/%{_pkgid}\"" \
503 "app_rw_root_dir=\"%{TZ_SYS_RW_APP}/%{_pkgid}\"" \
504 %if "%{?profile}" == "tv"
505 "lib_upgrade_root_dir=\"%{CHROMIUM_LIB_UPGRADE_DIR}\"" \
506 "app_upgrade_root_dir=\"%{TZ_SYS_RW_APP}/%{_pkgid_upgrade}\"" \
508 "package_id=\"%{_pkgid}\"" \
509 "tizen_version=%{tizen_version}" \
510 "tizen_version_major=%{tizen_version_major}" \
511 "tizen_version_minor=%{tizen_version_minor}" \
512 "tizen_version_patch=%{tizen_version_patch}" \
514 "arm_float_abi=\"hard\"" \
516 %if 0%{?_remove_webcore_debug_symbols:1}
517 "remove_webcore_debug_symbols=true" \
519 %if "%{?_with_wayland}" == "1"
522 %if "%{?_repository}" == "emulator" || "%{?_repository}" == "emulator32-x11"
523 "tizen_emulator_support=true" \
525 %if "%{?tizen_profile_name}" == "tv"
526 "tizen_product_tv=true" \
528 %if "%{?tizen_profile_name}" == "tv" && "%{_vd_cfg_product_type}" != "AUDIO" && "%{_vd_cfg_product_type}" != "AV" && %{__build_chrome} != 1
529 "tizen_vd_accessory=true" \
531 %if 0%{?component_build}
532 "component=\"shared_library\"" \
534 %if %{__use_clang} == 1
539 %if "%{?__use_system_icu}" == "1"
540 "use_system_icu=true" \
542 "use_system_icu=false" \
544 %if %{__build_chrome} == 1
545 "build_chrome=true" \
547 "build_chrome=false" \
549 %if "%{?tizen_profile_name}" == "tv"
550 "lib_dir_path=\"%{_libdir}\"" \
552 %if "%{?_ttrace}" == "1"
555 %if 0%{?__enable_ewk_interface}
556 "enable_ewk_interface=true" \
558 "ozone_auto_platforms=false" \
559 "enable_wrt_js=%{macro_to_bool __enable_wrt_js}" \
560 "tizen_atmos_decoder_enable=%{macro_to_bool _tizen_atmos_decoder_enable}" \
561 %if 0%{?__enable_wrt_js}
562 "xwalk_extension_path=\"%{__xwalk_extension_path}\"" \
563 "xwalk_extension_service_path=\"%{__xwalk_extension_service_path}\"" \
565 %if %{__enable_network_camera}
566 "enable_network_camera=true" \
568 %if %{__enable_gamepad_latency_test}
569 "enable_gamepad_latency_test=true" \
571 %if %{__drm_mapi_aarch_64} && "%{?tizen_profile_name}" == "tv" && %{tizen_version} >= 80
572 "drm_mapi_aarch_64=true" \
576 ninja %{_smp_mflags} -C "%{OUTPUT_FOLDER}" \
577 %if 0%{?build_ewk_unittests}
580 %if 0%{?build_tizen_ppapi_extension_unittests}
581 efl_integration_unittests \
584 %if 0%{?__enable_wrt_js}
585 wrt wrt-service wrt-service-launcher \
587 %if 0%{?__enable_ewk_interface}
590 %if 0%{?__enable_squashfs_image} && "%{?tizen_profile_name}" == "tv"
591 chromium-efl-install \
593 %if 0%{?__build_chrome}
596 efl_webprocess chromium-ewk efl_webview_app mini_browser ubrowser
598 %if 0%{?_enable_unittests}
599 ninja %{_smp_mflags} -C"%{OUTPUT_FOLDER}" angle_unittests env_chromium_unittests cacheinvalidation_unittests \
600 angle_unittests env_chromium_unittests cacheinvalidation_unittests \
601 url_unittests sandbox_linux_unittests crypto_unittests sql_unittests accessibility_unittests \
602 gfx_unittests printing_unittests events_unittests ppapi_unittests jingle_unittests \
603 flip_in_mem_edsm_server_unittests breakpad_unittests dbus_unittests libphonenumber_unittests \
604 base_unittests ffmpeg_unittests gin_unittests net_unittests snapshot_unittests \
605 google_apis_unittests
606 # TODO: Fix compilation of the following tests content_unittests cc_unittests shell_dialogs_unittests
607 # gpu_unittests compos9itor_unittests media_unittests
612 #XXX icudtl.dat is not copied by gyp. Do that manually
613 cp third_party/icu/android/icudtl.dat "%{OUTPUT_FOLDER}"
615 # XXX Workaround for using rpmlint with emulator build on Tizen_TV 3.0
617 # When using this repo http://download.tizen.org/snapshots/tizen/tv/latest/repos/emulator32-x11/packages/
618 # rpmlint-tizen-1.0-6.1 is installed in GBS-ROOT. So, after rpms are built
619 # gbs build script runs rpmlint to test created packages. There is some BUG in
620 # this script and directory /home/abuild/rpmbuild/OTHER/ isn't created. This
621 # directory is required for rpmlint's log file and its lack causes build error.
622 if [ ! -d %{buildroot}/../../OTHER/ -a -f /opt/testing/bin/rpmlint ]; then
623 mkdir -p %{buildroot}/../../OTHER/
626 %if 0%{?run_unittests_in_gbs}
627 %if 0%{?build_tizen_ppapi_extension_unittests}
628 %{OUTPUT_FOLDER}/efl_integration_unittests
629 %{OUTPUT_FOLDER}/ppapi_unittests
633 echo %{version} > "%{OUTPUT_FOLDER}"/version
635 # Prepare Tizen App Manifest
636 %if "%{?profile}" == "tv"
637 %define _manifestname %{_pkgid}-vd
639 %define _manifestname %{_pkgid}
641 sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
642 -e 's#@CHROMIUM_VERSION@#%{version}#g' \
643 -e 's#@PACKAGE_ID@#%{_pkgid}#g' \
644 packaging/%{_manifestname}.xml.in \
645 > "%{OUTPUT_FOLDER}"/tizen-manifest.xml
646 %if 0%{?__generate_tpk}
647 sed -e 's#@TIZEN_VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
648 -e 's#@CHROMIUM_VERSION@#%{version}#g' \
649 -e 's#@PACKAGE_ID@#%{_tpkid}#g' \
650 packaging/%{_manifestname}.xml.in \
651 > "%{OUTPUT_FOLDER}"/tizen-manifest-tpk.xml
654 %if 0%{?__generate_tpk} && "%{?profile}" == "tv"
655 # add build_id to tizen-manifest
656 python3 %{TZ_SYS_BIN}/set_build_info.py "%{OUTPUT_FOLDER}"/tizen-manifest-tpk.xml %{COSMOS_BUILD_ID}
659 # Generate pkg-confg file
660 mkdir -p "%{OUTPUT_FOLDER}"/pkgconfig/
661 > "%{OUTPUT_FOLDER}"/pkgconfig/chromium-efl.pc
662 sed -e 's#@CHROMIUM_VERSION@#%{version}#' \
663 tizen_src/build/pkgconfig/chromium-efl.pc.in \
664 > "%{OUTPUT_FOLDER}"/pkgconfig/chromium-efl.pc
666 %if 0%{?__enable_squashfs_image} && "%{?tizen_profile_name}" != "tv"
667 sed -e 's#@RO_APP_PATH@#%{TZ_SYS_RO_APP}/%{_pkgid}#g' \
668 -e 's#@RW_APP_PATH@#%{TZ_SYS_RW_APP}/%{_pkgid}#g' \
669 -e 's#@MOUNT_POINT@#%{CHROMIUM_LIB_DIR}#g' \
670 tizen_src/downloadable/systemd/chromium-efl.service.in \
671 > "%{OUTPUT_FOLDER}"/chromium-efl.service
673 sed -e 's#@RW_APP_PATH@#%{TZ_SYS_RW_APP}/%{_pkgid}#g' \
674 -e 's#@MOUNT_POINT@#%{CHROMIUM_LIB_DIR}#g' \
675 tizen_src/downloadable/systemd/chromium-efl-update.service.in \
676 > "%{OUTPUT_FOLDER}"/chromium-efl-update.service
681 # Make directory strucure for chromium-efl filesystem image
682 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/locales
683 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib
684 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/images
685 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/locale
686 install -d "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/themes
687 %if "%{?profile}" == "tv"
688 install -d "%{buildroot}"%{CHROMIUM_LIB_UPGRADE_DIR}
691 install -m 0644 "%{OUTPUT_FOLDER}"/version "%{buildroot}"%{CHROMIUM_LIB_DIR}/
692 install -m 0644 "%{OUTPUT_FOLDER}"/snapshot_blob.bin "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
693 install -m 0644 "%{OUTPUT_FOLDER}"/content_shell.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
695 install -d "%{buildroot}"%{_bindir}
696 install -d "%{buildroot}"%{_libdir}
697 install -d "%{buildroot}"%{CHROMIUM_APP_DIR}/bin
699 install -d "%{buildroot}"%{_libdir}/../local/lib/
700 %if %{__use_clang} == 1
701 install -m 0644 %{_libdir}/libatomic.so* "%{buildroot}"%{_libdir}/../local/lib/
704 install -d "%{buildroot}"%{_includedir}/v8/cppgc
705 install -m 0644 v8/include/cppgc/common.h "%{buildroot}"%{_includedir}/v8/cppgc/
707 %if 0%{?_support_node_module}
708 install -d "%{buildroot}"%{_includedir}/node
709 install -m 0644 third_party/electron_node/src/*.h "%{buildroot}"%{_includedir}/node/
712 %if "%{?tizen_profile_name}" != "tv"
713 install -m 0644 %{_libdir}/libscl-common.so "%{buildroot}"%{_libdir}
716 %if %{__build_chrome} == 1
717 install -m 0755 "%{OUTPUT_FOLDER}"/chrome_tizen "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/chrome_tizen
718 sed 's#@binary@#%{CHROMIUM_LIB_DIR}/bin/chrome_tizen#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome_tizen
719 install -m 0755 "%{OUTPUT_FOLDER}"/chrome_crashpad_handler "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/chrome_crashpad_handler
720 sed 's#@binary@#%{CHROMIUM_LIB_DIR}/bin/chrome_crashpad_handler#' %{SOURCE1} > "%{buildroot}"%{_bindir}/chrome_crashpad_handler
721 install -m 0644 "%{OUTPUT_FOLDER}"/locales/*.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/locales
722 install -m 0644 "%{OUTPUT_FOLDER}"/chrome_100_percent.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
723 install -m 0644 "%{OUTPUT_FOLDER}"/resources.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
725 install -m 0644 "%{OUTPUT_FOLDER}"/locales/efl/*.pak "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/locales/
728 install -m 0755 "%{OUTPUT_FOLDER}"/libtest_trace_processor.so "%{buildroot}"%{_libdir}
729 install -m 0755 "%{OUTPUT_FOLDER}"/efl_webprocess "%{buildroot}"%{_bindir}/
730 %if "%{?profile}" == "tv"
731 ln -s efl_webprocess "%{buildroot}"%{_bindir}/efl_pluginprocess
733 %if 0%{?__enable_ewk_interface}
734 install -m 0644 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{_libdir}/
736 ln -s %{CHROMIUM_LIB_DIR}/lib/libchromium-ewk.so "%{buildroot}"%{_libdir}/libchromium-ewk.so
738 %if 0%{?__enable_squashfs_image}
739 # mount service for chromium-efl.img
740 install -d "%{buildroot}"%{_unitdir}/multi-user.target.wants
741 install -d "%{buildroot}"%{_unitdir_user}/default.target.wants
743 %if "%{?tizen_profile_name}" == "tv"
744 install -m 0755 "%{OUTPUT_FOLDER}"/chromium-efl-install "%{buildroot}"%{_bindir}/
745 install -m 0644 tizen_src/downloadable/systemd/chromium-efl-vd.service "%{buildroot}"%{_unitdir_user}/
746 ln -s ../chromium-efl-vd.service "%{buildroot}"%{_unitdir_user}/default.target.wants/
748 install -m 0644 "%{OUTPUT_FOLDER}"/chromium-efl.service "%{buildroot}"%{_unitdir}
749 ln -s ../chromium-efl.service "%{buildroot}"%{_unitdir}/multi-user.target.wants/
751 install -m 0644 "%{OUTPUT_FOLDER}"/chromium-efl-update.service "%{buildroot}"%{_unitdir}
752 ln -s ../chromium-efl-update.service "%{buildroot}"%{_unitdir}/multi-user.target.wants/
756 # org.tizen.chromium-efl Tizen App package
757 install -m 0755 "%{OUTPUT_FOLDER}"/efl_webview_app "%{buildroot}"%{CHROMIUM_APP_DIR}/bin/
758 install -m 0755 "%{OUTPUT_FOLDER}"/mini_browser "%{buildroot}"%{CHROMIUM_APP_DIR}/bin/
759 install -m 0755 "%{OUTPUT_FOLDER}"/ubrowser "%{buildroot}"%{CHROMIUM_APP_DIR}/bin/
761 %if 0%{?__enable_ewk_interface}
762 install -m 0644 "%{OUTPUT_FOLDER}"/libchromium-impl.so "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib/
764 install -m 0644 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib/
767 install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/themes/
769 %if %{__build_chrome} != 1
770 cp -r "%{OUTPUT_FOLDER}"/locale/* "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/locale/
771 chmod -R a=r,u+w,a+X "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/locale/*
774 %if "%{?__use_system_icu}" != "1"
775 install -m 0644 "%{OUTPUT_FOLDER}"/icudtl.dat "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
778 install -d "%{buildroot}"%{_xmldir}
779 install -m 0644 "%{OUTPUT_FOLDER}"/tizen-manifest.xml "%{buildroot}"%{_xmldir}/%{_pkgid}.xml
781 %if 0%{?__package_signing} && "%{?tizen_profile_name}" != "tv"
783 %define tizen_sign_base %{CHROMIUM_APP_DIR}
784 %define tizen_sign_level platform
785 %define tizen_author_sign 1
786 %define tizen_dist_sign 1
789 install -m 0644 "%{OUTPUT_FOLDER}"/images/*.png "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/images/
790 install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/themes/
792 %if "%{?__use_system_icu}" != "1"
793 install -m 0644 "%{OUTPUT_FOLDER}"/icudtl.dat "%{buildroot}"%{CHROMIUM_LIB_DIR}/bin/
796 install -d "%{buildroot}"%{_xmldir}
797 install -m 0644 "%{OUTPUT_FOLDER}"/tizen-manifest.xml "%{buildroot}"%{_xmldir}/%{_pkgid}.xml
799 %if 0%{?__package_signing} && "%{?tizen_profile_name}" != "tv"
801 %define tizen_sign_base %{CHROMIUM_APP_DIR}
802 %define tizen_sign_level platform
803 %define tizen_author_sign 1
804 %define tizen_dist_sign 1
807 %if 0%{?__package_signing} && "%{?tizen_profile_name}" == "tv"
808 install -m 0644 tizen_src/downloadable/vd_sign/author-signature.xml "%{buildroot}"%{CHROMIUM_APP_DIR}
809 install -m 0644 tizen_src/downloadable/vd_sign/signature1.xml "%{buildroot}"%{CHROMIUM_APP_DIR}
812 install -d "%{buildroot}"%{_libdir}/pkgconfig
813 install -m 0644 "%{OUTPUT_FOLDER}"/pkgconfig/chromium-efl.pc "%{buildroot}"%{_libdir}/pkgconfig/
815 install -d "%{buildroot}"%{_includedir}/chromium-ewk
816 install -m 0644 tizen_src/ewk/efl_integration/public/*.h "%{buildroot}"%{_includedir}/chromium-ewk/
818 install -d "%{buildroot}"%{_includedir}/v8
819 install -m 0644 v8/include/*.h "%{buildroot}"%{_includedir}/v8/
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
826 %if 0%{?__make_squashfs_rpm}
827 install -d "%{buildroot}"%{CHROMIUM_APP_DIR}/res
828 # Make squashfs image of chromium-efl after extracting debuginfo
829 %if 0%{?__generate_tpk}
830 %define _tpk_file_name %{_tpkid}-%{version}-v%{tizen_version_major}.%{tizen_version_minor}.%{repo_name}.%{ARCHITECTURE}
831 %define __tpk_install_post \
832 tizen_src/build/build_tpk.sh "%{buildroot}"%{CHROMIUM_APP_DIR} %{OUTPUT_FOLDER} %{_tpk_file_name} %{_tpkid} %{?profile} \
833 install -d %{buildroot}%{CHROMIUM_TPK_DIR}/ \
834 install -m 644 %{OUTPUT_FOLDER}/%{_tpk_file_name}.tpk %{buildroot}%{CHROMIUM_TPK_DIR}
836 %define __tpk_install_post echo "No TPK generation"
838 %define __squashfs_rpm_install_post \
839 %{?__sandbox_chmod_cmd} \
840 mksquashfs "%{buildroot}"%{CHROMIUM_LIB_DIR} "%{buildroot}"%{CHROMIUM_APP_DIR}/res/%{name}.img -all-root \
841 %{__tpk_install_post} \
844 # Force stripping all symbols
845 %if "%{?profile}" == "tv"
846 # Clear %{_rpm_strip_option} macro to strip all symbols.
847 echo "Clear _rpm_strip_option=%{?_rpm_strip_option} to strip all symbols."
848 %define _rpm_strip_option %{nil}
849 echo "_find_debuginfo_strip_opts=%{?_find_debuginfo_strip_opts}"
853 %define __spec_install_post \
854 %{?__debug_package:%{__debug_install_post}} \
855 %{__arch_install_post} \
856 %{__os_install_post} \
857 %{?__squashfs_rpm_install_post} \
860 %if 0%{?_enable_unittests}
861 install -d "%{INSTALL_ROOT}%{CHROMIUM_UNITTESTS_DIR}"
862 for test in "%{OUTPUT_FOLDER}/*_unittests"; do
863 install -m 0755 ${test} "%{INSTALL_ROOT}%{CHROMIUM_UNITTESTS_DIR}"
867 %if 0%{?build_ewk_unittests}
868 mkdir -p %{buildroot}/opt/usr/resources/
869 mkdir -p %{buildroot}/opt/usr/utc_exec/
870 cp -r tizen_src/ewk/unittest/resources/* %{buildroot}/opt/usr/resources/
871 install -m 0644 "%{OUTPUT_FOLDER}"/ewk_unittests %{buildroot}/opt/usr/utc_exec/
872 install -m 0755 tizen_src/ewk/utc_gtest_run.sh %{buildroot}/opt/usr/utc_exec/
875 %if 0%{?build_tizen_ppapi_extension_unittests}
876 mkdir -p %{buildroot}/opt/usr/utc_exec/
877 install -m 0755 -p -D %{OUTPUT_FOLDER}/efl_integration_unittests %{buildroot}/opt/usr/utc_exec/
878 install -m 0755 -p -D %{OUTPUT_FOLDER}/ppapi_unittests %{buildroot}/opt/usr/utc_exec/
881 %if 0%{?__enable_wrt_js}
882 %define __wrt_resourcedir %{CHROMIUM_LIB_DIR}/wrt
883 %if "%{?tizen_profile_name}" != "tv"
884 %define __wrt_localedir %{OUTPUT_FOLDER}/gen/wrt/resources/locales/
886 %define __wrt_localedir %{OUTPUT_FOLDER}/gen/wrt/resources/tv_locales/
889 install -d %{buildroot}%{_bindir}
890 install -d %{buildroot}%{_sysconfdir}/profile.d
891 install -d %{buildroot}%{_unitdir_user}
892 install -d %{buildroot}%{__wrt_resourcedir}
893 install -d %{buildroot}%{__xwalk_extension_path}
894 install -d %{buildroot}%{_datadir}/locale
895 install -d %{buildroot}%{_datadir}/edje/wrtjs
896 %if "%{?profile}" == "wearable"
897 install -d %{buildroot}%{_datadir}/icons/wrtjs
900 install -m 0755 %{OUTPUT_FOLDER}/wrt %{buildroot}%{_bindir}
901 ln -s %{_bindir}/wrt %{buildroot}%{_bindir}/wrt-client
902 install -m 0755 wrt/wrt_env.sh %{buildroot}%{_sysconfdir}/profile.d/
903 %if %{__build_chrome} != 1
904 install -m 0644 %{OUTPUT_FOLDER}/wrt_resources.pak %{buildroot}%{CHROMIUM_LIB_DIR}/bin/
905 install -m 0644 %{OUTPUT_FOLDER}/liboffload_js_plugin.so %{buildroot}%{__xwalk_extension_path}
906 install -m 0644 %{OUTPUT_FOLDER}/libsplash_screen_plugin.so %{buildroot}%{__xwalk_extension_path}
907 install -m 0644 %{OUTPUT_FOLDER}/libwidget_plugin.so %{buildroot}%{__xwalk_extension_path}
908 install -m 0644 %{OUTPUT_FOLDER}/libwrt-service-override.so %{buildroot}%{__xwalk_extension_path}
909 install -m 0644 %{OUTPUT_FOLDER}/gen/tizen_src/chromium_impl/components/xwalk_extensions/offload_js_plugin/offload_js.json \
910 %{buildroot}%{__xwalk_extension_path}
911 install -m 0644 %{OUTPUT_FOLDER}/gen/tizen_src/chromium_impl/components/xwalk_extensions/splash_screen_plugin/splash_screen.json \
912 %{buildroot}%{__xwalk_extension_path}
913 install -m 0644 %{OUTPUT_FOLDER}/gen/tizen_src/chromium_impl/components/xwalk_extensions/widget_plugin/widget.json \
914 %{buildroot}%{__xwalk_extension_path}
915 install -m 0644 %{OUTPUT_FOLDER}/gen/wrt/resources/*.edj %{buildroot}%{CHROMIUM_LIB_DIR}/res/themes/
917 %if "%{?profile}" == "wearable"
919 cp wrt/resources/icons/*.png %{buildroot}%{_datadir}/icons/wrtjs/
921 %if "%{?profile}" != "tv"
922 for file in $(find %{__wrt_localedir} -type f -name *.mo); do
923 install -m 644 -D $file %{buildroot}%{_datadir}/locale/${file#%{__wrt_localedir}}
926 install -m 0644 %{OUTPUT_FOLDER}/gen/wrt/resources/*.edj %{buildroot}%{_datadir}/edje/wrtjs
929 install -d %{buildroot}%{_datadir}/dbus-1/services
930 install -m 0755 %{OUTPUT_FOLDER}/wrt-service %{buildroot}%{_bindir}
931 install -m 0755 %{OUTPUT_FOLDER}/wrt-service %{buildroot}%{_bindir}/wrt-service-standalone
932 install -m 0755 %{OUTPUT_FOLDER}/wrt-service-launcher %{buildroot}%{_bindir}
934 %if "%{?profile}" == "tv"
935 for file in $(find %{__wrt_localedir} -type f -name *.mo); do
936 install -m 644 -D $file %{buildroot}%{CHROMIUM_LIB_DIR}/res/locale/${file#%{__wrt_localedir}}
939 install -m 0644 %{OUTPUT_FOLDER}/gen/wrt/resources/*.edj %{buildroot}%{CHROMIUM_LIB_DIR}/res/themes/
941 install -d %{buildroot}/etc/notstrip/
942 install -m 644 packaging/wrt.notstrip %{buildroot}/etc/notstrip/wrt.notstrip
943 %if 0%{?__generate_tpk}
944 echo "start to get wrtjs package"
945 install -d %{buildroot}%{__wrt_resourcedir}/app
946 cd tizen_src/downloadable/wrtjs
947 rpm2cpio wrtjs-1.1.1-1.armv7l.rpm | cpio -divm
948 cp -rf usr/share/wrt/app/* %{buildroot}%{__wrt_resourcedir}/app/
951 mkdir -p %{buildroot}/etc/spolicy/
952 %if 0%{?__generate_tpk}
953 echo "start to get wrtjs package"
954 install -d %{buildroot}%{__wrt_resourcedir}/app
955 cd tizen_src/downloadable/wrtjs
956 rpm2cpio wrtjs-1.1.1-1.armv7l.rpm | cpio -divm
957 cp -rf usr/share/wrt/app/* %{buildroot}%{__wrt_resourcedir}/app/
962 install -d "%{buildroot}"%{_includedir}/wrt
963 install -m 0644 wrt/electron.d.ts "%{buildroot}"%{_includedir}/wrt/
964 install -m 0644 wrt/native_wrtjs.d.ts "%{buildroot}"%{_includedir}/wrt/
968 if (( $(rpm -qa | grep 'wrtjs-[[:digit:]]' | wc -l) > 1 )); then
969 echo -e "\033[31m*****************************************************"
970 echo -e "Please remove wrtjs rpm(s) except for one:\n"
971 rpm -qa | grep 'wrtjs-[[:digit:]]'
972 echo -e "*****************************************************\033[m"
976 export CHROMIUM_REVISION=$(echo %{version} | awk -F. '{print $2}')
977 export WRTJS_REVISION=$(rpm -qa | grep wrtjs | awk -F. '{print $2}')
978 if [[ "${WRTJS_REVISION}" == "" ]]; then
979 WRTJS_REVISION="not installed"
982 echo -e "\033[32m*****************************************************"
983 echo -e "* chromium-efl revision : ${CHROMIUM_REVISION}"
984 echo -e "* wrtjs revision : ${WRTJS_REVISION}"
986 if [[ "${WRTJS_REVISION}" == "not installed" ]] || \
987 (( ${CHROMIUM_REVISION} == ${WRTJS_REVISION} )); then
988 echo -e "* Succeeded to check rpm versions"
990 if (( ${CHROMIUM_REVISION} < ${WRTJS_REVISION} )); then
991 echo -e "\033[31m* You're trying to install too old chromium-efl."
992 echo -e "* Please install chromium-efl as revision ${WRTJS_REVISION}"
995 echo -e "\033[31m* You have too old wrtjs."
997 echo -e "* please re-install wrtjs as revision ${CHROMIUM_REVISION} first."
999 echo -e "*****************************************************\033[m"
1002 %if 0%{?__enable_wrt_js}
1003 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/alarm -t ALLOW
1004 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/application.info -t ALLOW
1005 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/application.launch -t ALLOW
1006 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/appmanager.certificate -t ALLOW
1007 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/appmanager.kill -t ALLOW
1008 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/filesystem.read -t ALLOW
1009 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/filesystem.write -t ALLOW
1010 cyad -s -k MANIFESTS_GLOBAL -c User::Pkg::org.tizen.chromium-efl -u '*' -p http://tizen.org/privilege/packagemanager.install -t ALLOW
1011 # Prevent executing wrt-service by third party apps
1012 chsmack -a "User::Pkg::org.tizen.chromium-efl" %{_bindir}/wrt-service
1013 # It's essential to drop thread privilege of service app
1014 chsmack -e "System::Privileged" %{_bindir}/wrt-service
1015 %if "%{?_local_build}" == "1"
1016 setcap cap_mac_admin=eip %{_bindir}/wrt-service
1020 %if "%{?profile}" == "tv"
1021 chsmack -a "*" opt/usr/home/owner/.pki/nssdb/cert9.db
1024 if [ -f %{CHROMIUM_APP_DIR}/res/%{name}.img ]; then
1025 echo "chromium-efl-squasfs image will be mounted on boot by chromium-efl-squasfs rpm."
1026 echo "If you want to use chromium-efl without squashfs, please uninstall chromium-efl-squashfs rpm."
1030 # Stop chromium-efl mount systemd unit if script called from target.
1031 # "id -G" - helps to determine the current environment:
1032 # 0 - called from image creation process
1033 # other - called form target
1034 if [[ "$(id -G)" != "0" ]]; then
1035 if [ -f %{_unitdir}/chromium-efl.service ]; then
1036 echo "systemctl stop chromium-efl.service"
1037 systemctl stop chromium-efl.service
1039 if [ -f %{_unitdir_user}/default.target.wants/chromium-efl-vd.service ]; then
1040 echo "su - owner -c 'systemctl --user stop chromium-efl-vd.service'"
1041 su - owner -c 'systemctl --user stop chromium-efl-vd.service'
1046 %if 0%{?__make_squashfs_rpm}
1048 # Stop chromium-efl mount systemd unit if script called from target.
1049 # "id -G" - helps to determine the current environment:
1050 # 0 - called from image creation process
1051 # other - called form target
1052 if [[ "$(id -G)" != "0" ]]; then
1053 if [ -f %{_unitdir}/chromium-efl.service ]; then
1054 echo "systemctl stop chromium-efl.service"
1055 systemctl stop chromium-efl.service
1057 if [ -f %{_unitdir_user}/default.target.wants/chromium-efl-vd.service ]; then
1058 echo "su - owner -c 'systemctl --user stop chromium-efl-vd.service'"
1059 su - owner -c 'systemctl --user stop chromium-efl-vd.service'
1066 rm -rf %{CHROMIUM_LIB_DIR}/*
1067 echo "All regular files in /usr/share/chromium-efl have been removed."
1068 echo "Note: It requries to reboot the device for mounting squashfs image!"
1071 %if 0%{?__generate_tpk}
1073 pkgcmd -un %{_tpkid}
1076 pkgcmd -i -t tpk -p %{CHROMIUM_TPK_DIR}/%{_tpk_file_name}.tpk
1077 rm -rf %{CHROMIUM_TPK_DIR}/%{_tpk_file_name}.tpk
1081 %manifest packaging/chromium-efl.manifest
1082 %if 0%{?__package_signing}
1083 %{CHROMIUM_APP_DIR}/author-signature.xml
1084 %{CHROMIUM_APP_DIR}/signature1.xml
1086 %{_xmldir}/%{_pkgid}.xml
1087 %defattr(-,root,root,-)
1088 %if "%{?tizen_profile_name}" != "tv"
1089 %{_libdir}/libscl-common.so
1091 %if %{__use_clang} == 1
1092 %{_libdir}/../local/lib/libatomic.so*
1095 %{CHROMIUM_LIB_DIR}/version
1096 %{CHROMIUM_LIB_DIR}/bin/snapshot_blob.bin
1097 %{CHROMIUM_LIB_DIR}/bin/content_shell.pak
1098 %{CHROMIUM_LIB_DIR}/bin/locales/*.pak
1099 %{CHROMIUM_LIB_DIR}/res/themes/*.edj
1101 %if %{__build_chrome} == 1
1102 %{CHROMIUM_LIB_DIR}/bin/chrome_100_percent.pak
1103 %{CHROMIUM_LIB_DIR}/bin/resources.pak
1104 %{CHROMIUM_LIB_DIR}/bin/chrome_tizen
1105 %{_bindir}/chrome_tizen
1106 %{CHROMIUM_LIB_DIR}/bin/chrome_crashpad_handler
1107 %{_bindir}/chrome_crashpad_handler
1109 %{CHROMIUM_LIB_DIR}/res/locale/*
1110 %{_libdir}/libchromium-ewk.so
1111 %{_libdir}/libtest_trace_processor.so
1112 %{_libdir}/libewebkit2.so*
1113 %if 0%{?__enable_squashfs_image}
1114 %if "%{?tizen_profile_name}" == "tv"
1115 %{_bindir}/chromium-efl-install
1116 %{_unitdir_user}/chromium-efl-vd.service
1117 %{_unitdir_user}/default.target.wants/chromium-efl-vd.service
1118 %dir %{CHROMIUM_LIB_UPGRADE_DIR}
1120 %{_unitdir}/chromium-efl.service
1121 %{_unitdir}/multi-user.target.wants/chromium-efl.service
1122 %{_unitdir}/chromium-efl-update.service
1123 %{_unitdir}/multi-user.target.wants/chromium-efl-update.service
1126 %{CHROMIUM_APP_DIR}/bin/efl_webview_app
1127 %{CHROMIUM_APP_DIR}/bin/mini_browser
1128 %{CHROMIUM_APP_DIR}/bin/ubrowser
1130 %if "%{?tizen_profile_name}" == "tv"
1131 %caps(cap_mac_admin,cap_mac_override,cap_setgid=ei) %{_bindir}/efl_webprocess
1132 %{_bindir}/efl_pluginprocess
1134 %{_bindir}/efl_webprocess
1137 %if 0%{?__enable_ewk_interface}
1138 %{CHROMIUM_LIB_DIR}/lib/libchromium-impl.so
1140 %{CHROMIUM_LIB_DIR}/lib/libchromium-ewk.so
1143 %{CHROMIUM_LIB_DIR}/res/images/*.png
1145 %{CHROMIUM_LIB_DIR}/res/themes/*.edj
1146 %{CHROMIUM_LIB_DIR}/res/locale
1148 %if "%{?__use_system_icu}" != "1"
1149 %{CHROMIUM_LIB_DIR}/bin/icudtl.dat
1152 %if 0%{?__enable_wrt_js}
1153 %if "%{?profile}" == "tv"
1154 %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
1155 /etc/notstrip/wrt.notstrip
1156 %if 0%{?__generate_tpk}
1157 %{__wrt_resourcedir}/app/*
1162 %{_bindir}/wrt-client
1163 %{_sysconfdir}/profile.d/wrt_env.sh
1164 %if %{__build_chrome} != 1
1165 %{CHROMIUM_LIB_DIR}/bin/wrt_resources.pak
1166 %{__xwalk_extension_path}/liboffload_js_plugin.so
1167 %{__xwalk_extension_path}/libsplash_screen_plugin.so
1168 %{__xwalk_extension_path}/libwidget_plugin.so
1169 %{__xwalk_extension_path}/libwrt-service-override.so
1170 %{__xwalk_extension_path}/offload_js.json
1171 %{__xwalk_extension_path}/splash_screen.json
1172 %{__xwalk_extension_path}/widget.json
1174 %if "%{?profile}" != "tv"
1175 %{_datadir}/edje/wrtjs/*.edj
1176 %{_datadir}/locale/*
1178 %if "%{?profile}" == "wearable"
1179 %{_datadir}/icons/wrtjs/*
1182 %{_bindir}/wrt-service
1183 %{_bindir}/wrt-service-standalone
1184 %{_bindir}/wrt-service-launcher
1187 %if 0%{?__make_squashfs_rpm}
1189 %defattr(-,root,root,-)
1190 %{CHROMIUM_APP_DIR}/res/%{name}.img
1193 %if 0%{?__generate_tpk}
1195 %defattr(-,root,root,-)
1196 %{CHROMIUM_TPK_DIR}/*
1200 %defattr(-,root,root,-)
1201 %{_includedir}/chromium-ewk/*.h
1202 %{_libdir}/pkgconfig/chromium-efl.pc
1203 %{_libdir}/pkgconfig/*.pc
1206 %if 0%{?_support_node_module}
1207 %{_includedir}/node/*
1210 %if 0%{?__enable_wrt_js}
1211 %{_includedir}/wrt/*
1214 %if 0%{?_enable_unittests}
1216 %defattr(-,root,root,-)
1217 %{CHROMIUM_UNITTESTS_DIR}/*
1220 %if 0%{?build_ewk_unittests}
1222 %defattr(-,root,root,-)
1223 %manifest ./packaging/chromium-ewktest.manifest
1225 /opt/usr/resources/*
1228 %if "%{chromium_efl_tizen_profile}" == "tv"
1229 ln -s %{CHROMIUM_EXE_DIR}/efl_webprocess %{buildroot}%{CHROMIUM_EXE_DIR}/efl_pluginprocess
1232 %if 0%{?build_tizen_ppapi_extension_unittests}
1233 %files tizen_ppapi_extension_unittests
1234 %defattr(-,root,root,-)
1235 %manifest ./packaging/chromium-tizen_ppapi_extension_unittests.manifest