ea6ba8d5b8dfd4ddb97e99b67169b76e5d28abf9
[platform/framework/web/wrt.git] / packaging / wrt.spec
1 %bcond_with mesa
2 %bcond_with wayland
3 %bcond_with decrypt
4 %bcond_with multi_user
5
6 Name:       wrt
7 Summary:    web runtime
8 Version:    0.8.277
9 Release:    1
10 Group:      Development/Libraries
11 License:    Apache-2.0
12 URL:        N/A
13 Source0:    %{name}-%{version}.tar.gz
14 ## wrt-launchpad-daemon #######################################################
15 ### systemd service for multi-user mode
16 Source102:  wrt_launchpad_daemon_user.service
17 Source1001:     wrt.manifest
18 ###############################################################################
19
20 BuildRequires:  cmake
21 BuildRequires:  gettext
22 BuildRequires:  edje-tools
23 BuildRequires:  pkgconfig(aul)
24 BuildRequires:  pkgconfig(glib-2.0)
25 BuildRequires:  pkgconfig(ewebkit2)
26 BuildRequires:  pkgconfig(appcore-efl)
27 BuildRequires:  pkgconfig(openssl)
28 BuildRequires:  pkgconfig(dpl-efl)
29 BuildRequires:  pkgconfig(libpcrecpp)
30 BuildRequires:  pkgconfig(ecore)
31 BuildRequires:  pkgconfig(eina)
32 BuildRequires:  pkgconfig(ui-gadget-1)
33 BuildRequires:  pkgconfig(utilX)
34 BuildRequires:  pkgconfig(secure-storage)
35 BuildRequires:  pkgconfig(pkgmgr)
36 BuildRequires:  pkgconfig(libiri)
37 BuildRequires:  pkgconfig(appsvc)
38 BuildRequires:  pkgconfig(cert-svc)
39 BuildRequires:  pkgconfig(cert-svc-vcore)
40 BuildRequires:  pkgconfig(libsoup-2.4)
41 BuildRequires:  pkgconfig(security-core)
42 BuildRequires:  pkgconfig(security-client)
43 BuildRequires:  pkgconfig(notification)
44 BuildRequires:  pkgconfig(libprivilege-control)
45 BuildRequires:  pkgconfig(capi-appfw-app-manager)
46 BuildRequires:  pkgconfig(capi-appfw-application)
47 BuildRequires:  pkgconfig(haptic)
48 BuildRequires:  pkgconfig(capi-web-url-download)
49 BuildRequires:  pkgconfig(wrt-plugin-loading)
50 BuildRequires:  pkgconfig(wrt-plugin-js-overlay)
51 BuildRequires:  pkgconfig(wrt-plugins-ipc-message)
52 BuildRequires:  pkgconfig(wrt-popup-wrt-runner)
53 BuildRequires:  pkgconfig(wrt-popup-ace-runner)
54 BuildRequires:  pkgconfig(sysman)
55 BuildRequires:  pkgconfig(app2sd)
56 BuildRequires:  pkgconfig(capi-system-system-settings)
57 %if %{with mesa}
58 BuildRequires: pkgconfig(gl)
59 BuildRequires: pkgconfig(glesv2)
60 %else
61 BuildRequires: pkgconfig(gles20)
62 %endif
63 Requires(post): /sbin/ldconfig
64 Requires(postun): /sbin/ldconfig
65 BuildRequires:  pkgconfig(libsmack)
66 BuildRequires:  pkgconfig(efl-assist)
67 BuildRequires:  libss-client-devel
68 BuildRequires:  gettext
69 BuildRequires:  edje-tools
70 Requires: libss-client
71
72 ## wrt-launchpad-daemon #######################################################
73 BuildRequires:  pkgconfig(app-checker)
74 BuildRequires:  pkgconfig(bundle)
75 BuildRequires:  pkgconfig(dlog)
76 BuildRequires:  pkgconfig(dbus-glib-1)
77 BuildRequires:  pkgconfig(libsmack)
78 BuildRequires:  pkgconfig(sqlite3)
79 BuildRequires:  pkgconfig(x11)
80 BuildRequires:  pkgconfig(aul)
81 BuildRequires:  pkgconfig(libsystemd-daemon)
82 %{?systemd_requires}
83
84 #Use these macro to avoid hard-coded path
85 #After upgrading systemd to v204 or higher macro can be deleted
86 %define _unitdir /usr/lib/systemd/system
87 ###############################################################################
88
89 %description
90 web runtime
91
92 %package devel
93 Summary:    Wrt header files for external modules
94 Group:      Development/Libraries
95 Requires:   %{name} = %{version}
96
97 %description devel
98 wrt library development headers
99
100 %prep
101 %setup -q
102 cp %{SOURCE1001} .
103
104 %define with_tests 0
105 %if "%{WITH_TESTS}" == "ON" || "%{WITH_TESTS}" == "Y" || "%{WITH_TESTS}" == "YES" || "%{WITH_TESTS}" == "TRUE" || "%{WITH_TESTS}" == "1"
106     %define with_tests 1
107 %endif
108
109 %build
110 %if 0%{?tizen_build_binary_release_type_eng}
111 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
112 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
113 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
114 %endif
115
116 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
117
118 %cmake . -DDPL_LOG="ON"       \
119          -DPROJECT_VERSION=%{version} \
120          -DCMAKE_BUILD_TYPE=%{?build_type:%build_type} \
121 %if %{with mesa}
122         -DUSE_MESA=On \
123 %endif
124 %if %{with wayland}
125          -DX11_SUPPORT=Off \
126 %else
127          -DX11_SUPPORT=On \
128 %endif
129 %if %{with decrypt}
130          -DDECRYPT_SUPPORT=On \
131 %else
132          -DDECRYPT_SUPPORT=Off \
133 %endif
134 %if %{with multi_user}
135          -DMULTI_USER_SUPPORT=On \
136 %else
137          -DMULTI_USER_SUPPORT=Off \
138 %endif
139
140         %{?WITH_TESTS:-DWITH_TESTS=%WITH_TESTS}
141
142 make %{?jobs:-j%jobs}
143
144 %install
145 mkdir -p %{buildroot}/usr/share/license
146 cp LICENSE.APLv2 %{buildroot}/usr/share/license/%{name}
147 cp LICENSE.Flora %{buildroot}/usr/share/license/%{name}
148 %make_install
149
150 ## wrt-launchpad-daemon #######################################################
151
152 #systemd
153
154 %if %{with multi_user}
155 mkdir -p %{buildroot}%{_unitdir_user}/tizen-middleware.target.wants/
156 install -m 0644 %SOURCE102 %{buildroot}%{_unitdir_user}/wrt_launchpad_daemon.service
157 ln -s ../wrt_launchpad_daemon.service %{buildroot}%{_unitdir_user}/tizen-middleware.target.wants/wrt_launchpad_daemon.service
158 %else
159 mkdir -p %{buildroot}%{_unitdir}/graphical.target.wants
160 mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
161 ln -s %{_unitdir}/wrt_launchpad_daemon@.service %{buildroot}%{_unitdir}/graphical.target.wants/wrt_launchpad_daemon@app.service
162 ln -s %{_unitdir}/wrt_launchpad_daemon_1.socket %{buildroot}%{_unitdir}/sockets.target.wants/wrt_launchpad_daemon_1.socket
163 ln -s %{_unitdir}/wrt_launchpad_daemon_2.socket %{buildroot}%{_unitdir}/sockets.target.wants/wrt_launchpad_daemon_2.socket
164 %endif
165
166 %preun
167 if [ $1 == 0 ]; then
168 %if %{with multi_user}
169         systemctl --user stop wrt_launchpad_daemon.service
170 %else
171         systemctl stop wrt_launchpad_daemon@app.service
172 %endif
173
174 fi
175
176
177
178
179 ###############################################################################
180
181
182
183
184 %clean
185 rm -rf %{buildroot}
186
187 %post
188 /sbin/ldconfig
189 chmod +s /usr/bin/wrt-launcher
190
191 ## wrt-launchpad-daemon #######################################################
192 #systemd
193 /sbin/ldconfig
194 systemctl daemon-reload
195 if [ $1 == 1 ]; then
196 %if %{with multi_user}
197     systemctl --user restart wrt_launchpad_daemon.service
198 %else
199     systemctl restart wrt_launchpad_daemon@app.service
200 %endif
201
202
203 fi
204 ###############################################################################
205
206 echo "[WRT] wrt postinst done ..."
207
208 ## wrt-launchpad-daemon #######################################################
209 #systemd
210 %postun -p /sbin/ldconfig
211 systemctl daemon-reload
212 ###############################################################################
213
214 %files
215 %manifest %{name}.manifest
216 %{_libdir}/*.so
217 %{_libdir}/*.so.*
218 %attr(755,root,root) %{_bindir}/wrt-client
219 %attr(755,root,root) %{_bindir}/wrt-launcher
220 %attr(755,root,root) %{_bindir}/wrt_reset_all.sh
221 %attr(755,root,root) %{_bindir}/wrt_reset_db.sh
222 %{_datadir}/wrt-engine/*
223 %{_datadir}/license/%{name}
224 %attr(644,root,root) %{_datadir}/edje/wrt/*
225 %attr(644,root,root) %{_datadir}/edje/ace/*
226 %if %{with_tests}
227     %attr(755,root,root) %{_bindir}/wrt-tests-general
228     /opt/share/widget/tests/general/*
229 %endif
230 %attr(755,root,root) %{_sysconfdir}/profile.d/wrt_env.sh
231
232 ## wrt-launchpad-daemon #######################################################
233 %attr(755,root,root) %{_bindir}/wrt_launchpad_daemon
234 /usr/share/aul/preload_list_wrt.txt
235 /etc/smack/accesses2.d/wrt_launchpad_daemon.rule
236 /opt/etc/smack/accesses.d/wrt_launchpad_daemon.rule
237 #systemd
238 %if %{with multi_user}
239 %{_unitdir_user}/tizen-middleware.target.wants/wrt_launchpad_daemon.service
240 %{_unitdir_user}/wrt_launchpad_daemon.service
241 %else
242 %{_unitdir}/graphical.target.wants/wrt_launchpad_daemon@app.service
243 %{_unitdir}/wrt_launchpad_daemon@.service
244 %{_unitdir}/sockets.target.wants/wrt_launchpad_daemon_1.socket
245 %{_unitdir}/wrt_launchpad_daemon_1.socket
246 %{_unitdir}/sockets.target.wants/wrt_launchpad_daemon_2.socket
247 %{_unitdir}/wrt_launchpad_daemon_2.socket
248 %endif
249 ###############################################################################
250
251 %files devel
252 %manifest %{name}.manifest
253 %{_includedir}/*
254 %{_libdir}/pkgconfig/*
255