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