Getting application data using wrt common library.
[platform/framework/web/crosswalk-tizen.git] / packaging / electron-efl.spec
1 Name:       electron-efl
2 Summary:    Electron EFL
3 Version:    1.6.7
4 Release:    1
5 Group:      Web Framework/Web Runtime
6 License:    MIT
7 URL:        https://www.tizen.org
8 Source0:    %{name}-%{version}.tar.gz
9 Source1001: %{name}.manifest
10 Source1002: wrt.loader
11
12 BuildRequires: libcap-devel, libasound-devel, python, ninja, nodejs, nodejs-npm
13 # It's added to accelerate generating ninja files.
14 %ifarch armv7l
15 BuildRequires: python-accel-armv7l-cross-arm
16 %endif
17 %ifarch aarch64
18 BuildRequires: python-accel-aarch64-cross-aarch64
19 %endif
20 BuildRequires: pkgconfig(appsvc)
21 BuildRequires: pkgconfig(aul)
22 BuildRequires: pkgconfig(bundle)
23 BuildRequires: pkgconfig(capi-appfw-application)
24 BuildRequires: pkgconfig(capi-appfw-app-manager)
25 BuildRequires: pkgconfig(capi-appfw-package-manager)
26 BuildRequires: pkgconfig(capi-system-system-settings)
27 BuildRequires: pkgconfig(capi-system-info)
28 BuildRequires: pkgconfig(chromium-efl)
29 BuildRequires: pkgconfig(cynara-client)
30 BuildRequires: pkgconfig(dbus-glib-1)
31 BuildRequires: pkgconfig(dlog)
32 BuildRequires: pkgconfig(ecore)
33 BuildRequires: pkgconfig(ecore-evas)
34 BuildRequires: pkgconfig(ecore-wayland)
35 BuildRequires: pkgconfig(efl-extension)
36 BuildRequires: pkgconfig(elementary)
37 BuildRequires: pkgconfig(evas)
38 BuildRequires: pkgconfig(expat)
39 BuildRequires: pkgconfig(glib-2.0)
40 BuildRequires: pkgconfig(gmodule-2.0)
41 BuildRequires: pkgconfig(icu-i18n)
42 BuildRequires: pkgconfig(launchpad)
43 # It's added to use TZ_SYS_RO_PACKAGES.
44 BuildRequires: pkgconfig(libtzplatform-config)
45 BuildRequires: pkgconfig(libwebappenc)
46 BuildRequires: pkgconfig(manifest-parser)
47 BuildRequires: pkgconfig(nss)
48 BuildRequires: pkgconfig(pkgmgr-info)
49 BuildRequires: pkgconfig(sqlite3)
50 BuildRequires: pkgconfig(uuid)
51 BuildRequires: pkgconfig(ttrace)
52 %if "%{?TIZEN_PRODUCT_TV}" == "1"
53 BuildRequires: pkgconfig(vd-win-util)
54 %endif
55 BuildRequires: pkgconfig(wgt-manifest-handlers)
56
57 Requires: /usr/bin/systemctl
58
59 %description
60 Web Runtime Engine based on Electron EFL
61
62 %prep
63 %setup -q
64
65 cp %{SOURCE1001} .
66
67 %build
68 %define _icondir %TZ_SYS_RO_APP/%{_pkgid}/shared/res
69 %define _pkgid org.tizen.%{name}
70 %define _xmldir %TZ_SYS_RO_PACKAGES
71 %define _out out.tizen/out/D
72
73 export DEFINE_ARGS="
74     desktop_linux=0
75     libchromiumcontent_component=1
76     use_efl=1
77     is_tizen=1
78 "
79 %if "%{?TIZEN_PRODUCT_TV}" == "1"
80 DEFINE_ARGS+="
81     tizen_product_tv=1
82 "
83 %endif
84
85 ./script/bootstrap.py \
86     --libcc_chromium_efl_path /usr/lib \
87     --define "${DEFINE_ARGS}" \
88     --dev \
89     --disable_clang \
90     -v
91
92 ./script/build.py -c D
93
94 %install
95 install -d %{_out}/packaging
96 install -d %{buildroot}%{_xmldir}
97 sed -e 's#@VERSION@#%{tizen_version_major}.%{tizen_version_minor}#g' \
98     -e 's#@TZ_SYS_RO_APP@#%{TZ_SYS_RO_APP}#g' \
99     -e 's#@ICON_DIR@#%{_icondir}#g' \
100     packaging/%{_pkgid}.xml.in \
101     > %{_out}/packaging/%{_pkgid}.xml
102 install -m 0644 %{_out}/packaging/%{_pkgid}.xml %{buildroot}%{_xmldir}
103
104 # Loader script file
105 mkdir -p %{buildroot}%{_datadir}/aul/
106 cp %{SOURCE1002} %{buildroot}%{_datadir}/aul/
107
108 # wrt_common
109 mkdir -p %{buildroot}%{_libdir}
110 install -p -m 644 %{_out}/lib/libwrt_common.so %{buildroot}%{_libdir}
111
112 mkdir -p %{buildroot}/usr/apps/org.tizen.electron-efl/bin/
113 install -d %{buildroot}/%{_icondir}
114 install -d %{buildroot}/%{_libdir}
115 install -d %{buildroot}/%{_bindir}
116 install -m 0644 packaging/%{_pkgid}.png             %{buildroot}/%{_icondir}
117 install -m 0755 %{_out}/libnode.so                  %{buildroot}/%{_libdir}
118 install -m 0755 %{_out}/wrt-loader                  %{buildroot}/%{_bindir}
119 install -m 0755 %{_out}/electron                    %{buildroot}/%{_bindir}/
120 install -m 0755 wrt/build/script/run_was_tizen.sh   %{buildroot}/usr/apps/org.tizen.electron-efl/bin
121
122 # install resource.
123 mkdir -p %{buildroot}/opt/usr/home/owner/data/org.tizen.electron-efl/wrt_release
124 install -m 0755 %{_out}/resources/default_app.asar  %{buildroot}/opt/usr/home/owner/data/org.tizen.electron-efl
125 install -m 0755 %{_out}/resources/electron.asar     %{buildroot}/opt/usr/home/owner/data/org.tizen.electron-efl
126
127 ln -s %{_bindir}/electron %{buildroot}%{_bindir}/wrt
128 ln -s %{_bindir}/electron %{buildroot}%{_bindir}/wrt-client
129 ln -s %{_bindir}/electron %{buildroot}%{_bindir}/xwalk_runtime
130 cp -rf wrt/wrt_support                              %{buildroot}/opt/usr/home/owner/data/org.tizen.electron-efl
131 cp -rf wrt/node_modules                             %{buildroot}/opt/usr/home/owner/data/org.tizen.electron-efl
132 cp -rf wrt/package.json wrt/src/ wrt/static         %{buildroot}/opt/usr/home/owner/data/org.tizen.electron-efl/wrt_release
133
134 ./wrt/build/node_modules/grunt-electron-installer/node_modules/asar/bin/asar p \
135     %{buildroot}/opt/usr/home/owner/data/org.tizen.electron-efl/wrt_release %{_out}/resources/app.asar
136 install -m 0755 %{_out}/resources/app.asar          %{buildroot}/opt/usr/home/owner/data/org.tizen.electron-efl
137
138 %post
139 # Owner account can't write /opt/usr/home/owner/data/org.tizen.electron-efl
140 # which is created in 'install'. So we should copy resources in 'post'.
141 cp -rf /opt/usr/home/owner/data/org.tizen.electron-efl /opt/usr/home/owner/data/electron
142 chown -R owner:users /opt/usr/home/owner/data/electron
143 rm -rf /opt/usr/home/owner/data/org.tizen.electron-efl
144
145 # FIXME: Until electron-efl is released to platform,
146 #        following command is needed to set wrt-loader
147 #        as cap_setgid,cap_sys_admin+ei.
148 /usr/share/security-config/set_capability
149
150 %postun
151 rm -rf /opt/usr/home/owner/data/electron
152
153 %clean
154 rm -fr %{buildroot}
155
156 %files
157 %manifest packaging/electron-efl.manifest
158 /usr/apps/org.tizen.electron-efl/bin/run_was_tizen.sh
159 /opt/usr/home/owner/data/org.tizen.electron-efl/*
160 %{_icondir}/%{_pkgid}.png
161 %{_libdir}/libnode.so
162 %{_xmldir}/%{_pkgid}.xml
163 %attr(755,root,root) %{_bindir}/electron
164 %attr(755,root,root) %{_bindir}/wrt
165 %attr(755,root,root) %{_bindir}/wrt-client
166 %attr(755,root,root) %{_bindir}/wrt-loader
167 %attr(755,root,root) %{_bindir}/xwalk_runtime
168 %attr(644,root,root) %{_datadir}/aul/wrt.loader
169 %attr(644,root,root) %{_libdir}/libwrt_common.so