make pepper-tests package
[platform/core/uifw/pepper.git] / packaging / pepper.spec
1 Name:           pepper
2 Version:        2.0.3
3 Release:        0
4 Summary:        Library for developing wayland compositor
5 License:        MIT
6 Group:          Graphics & UI Framework/Wayland Window System
7
8 Source:         %{name}-%{version}.tar.gz
9 source1001:     %name.manifest
10
11 %define ENABLE_TDM      1
12 %define ENABLE_DRM  0
13
14 BuildRequires:  autoconf > 2.64
15 BuildRequires:  automake >= 1.11
16 BuildRequires:  libtool >= 2.2
17 BuildRequires:  pkgconfig
18 BuildRequires:  pkgconfig(wayland-server)
19 BuildRequires:  pkgconfig(wayland-client)
20 BuildRequires:  pkgconfig(pixman-1)
21 BuildRequires:  pkgconfig(libinput)
22 BuildRequires:  pkgconfig(libdrm)
23 BuildRequires:  pkgconfig(libudev)
24 %if "%{ENABLE_DRM}" == "1"
25 BuildRequires:  pkgconfig(gbm)
26 %endif
27 BuildRequires:  pkgconfig(egl)
28 BuildRequires:  pkgconfig(glesv2)
29 BuildRequires:  pkgconfig(xkbcommon)
30 BuildRequires:  doxygen
31 BuildRequires:  pkgconfig(wayland-tbm-server)
32 BuildRequires:  pkgconfig(tizen-extension-server)
33 BuildRequires:  pkgconfig(tizen-extension-client)
34 %if "%{ENABLE_TDM}" == "1"
35 BuildRequires:  pkgconfig(libtdm)
36 %endif
37 BuildRequires:  pkgconfig(dlog)
38 BuildRequires:  pkgconfig(cynara-client)
39 BuildRequires:  pkgconfig(cynara-creds-socket)
40 BuildRequires:  pkgconfig(libsmack)
41 BuildRequires:  pkgconfig(gmock)
42
43 %{!?TZ_SYS_RO_SHARE: %global TZ_SYS_RO_SHARE /usr/share}
44
45 %description
46 Pepper is a lightweight and flexible library for developing various types of wayland compositors.
47
48 ###### pepper-devel
49 %package devel
50 Summary: Development module for pepper package
51 Requires: %{name} = %{version}-%{release}
52
53 %description devel
54 This package includes developer files common to all packages.
55
56 ###### pepper-inotify
57 %package inotify
58 Summary: inotify module for pepper package
59
60 %description inotify
61 This package includes inotify module files.
62
63 ###### inotify-devel
64 %package inotify-devel
65 Summary: Inotify development module for pepper package
66 Requires: pepper-inotify = %{version}-%{release}
67
68 %description inotify-devel
69 This package includes inotify development module files.
70
71 ###### keyrouter
72 %package keyrouter
73 Summary: Keyrouter module for pepper package
74
75 %description keyrouter
76 This package includes keyrouter module files.
77
78 ###### keyrouter-devel
79 %package keyrouter-devel
80 Summary: Keyrouter development module for pepper package
81 Requires: pepper-keyrouter = %{version}-%{release}
82
83 %description keyrouter-devel
84 This package includes keyrouter development module files.
85
86 ###### devicemgr
87 %package devicemgr
88 Summary: Keyrouter module for pepper package
89
90 %description devicemgr
91 This package includes devicemgr module files.
92
93 ###### devicemgr-devel
94 %package devicemgr-devel
95 Summary: Devicemgr development module for pepper package
96 Requires: pepper-devicemgr = %{version}-%{release}
97
98 %description devicemgr-devel
99 This package includes devicemgr development module files.
100
101 ###### evdev
102 %package evdev
103 Summary: evdev module for pepper package
104
105 %description evdev
106 This package includes evdev module files.
107
108 ###### evdev-devel
109 %package evdev-devel
110 Summary: Evdev development module for pepper package
111 Requires: pepper-evdev = %{version}-%{release}
112
113 %description evdev-devel
114 This package includes evdev development module files.
115
116 ###### xkb
117 %package xkb
118 Summary: xkb module for pepper package
119 Requires: xkeyboard-config
120
121 %description xkb
122 This package includes xkb module files.
123
124 ###### xkb-devel
125 %package xkb-devel
126 Summary: XKB development module for pepper package
127 Requires: pepper-xkb = %{version}-%{release}
128 Requires: pkgconfig(xkbcommon)
129
130 %description xkb-devel
131 This package includes xkb development module files.
132
133 ###### libinput
134 %package libinput
135 Summary: Libinput module for pepper package
136
137 %description libinput
138 This package includes libinput module files.
139
140 ###### libinput-devel
141 %package libinput-devel
142 Summary: Libinput development module for pepper package
143 Requires: pepper-libinput = %{version}-%{release}
144
145 %description libinput-devel
146 This package includes libinput development module files.
147
148 ###### desktop-shell
149 %package desktop-shell
150 Summary: Desktop-shell module for pepper package
151
152 %description desktop-shell
153 This package includes desktop-shell module files.
154
155 ###### desktop-shell-devel
156 %package desktop-shell-devel
157 Summary: Desktop-shell development module for pepper package
158 Requires: pepper-desktop-shell = %{version}-%{release}
159 Requires: pepper-xkb = %{version}-%{release}
160
161 %description desktop-shell-devel
162 This package includes desktop-shell development module files.
163
164 ###### render
165 %package render
166 Summary: Render module for pepper package
167
168 %description render
169 This package includes render module files.
170
171 ###### render-devel
172 %package render-devel
173 Summary: Render development module for pepper package
174 Requires: pepper-render = %{version}-%{release}
175
176 %description render-devel
177 This package includes render development module files.
178
179 %if "%{ENABLE_DRM}" == "1"
180 ###### drm backend
181 %package drm
182 Summary: Drm backend module for pepper package
183
184 %description drm
185 This package includes drm backend module files.
186
187 ###### drm backend devel
188 %package drm-devel
189 Summary: Drm backend development module for pepper package
190 Requires: pepper-drm = %{version}-%{release}
191
192 %description drm-devel
193 This package includes drm backend development module files.
194 %endif
195
196 %if "%{ENABLE_TDM}" == "1"
197 ###### tdm backend
198 %package tdm
199 Summary: TDM backend module for pepper package
200
201 %description tdm
202 This package includes tdm backend module files.
203
204 ###### tdm backend devel
205 %package tdm-devel
206 Summary: TDM backend development module for pepper package
207 Requires: pepper-tdm = %{version}-%{release}
208
209 %description tdm-devel
210 This package includes drm backend development module files.
211 %endif
212
213 ###### fbdev backend
214 %package fbdev
215 Summary: Fbdev backend module for pepper package
216
217 %description fbdev
218 This package includes fbdev backend module files.
219
220 ###### fbdev backend devel
221 %package fbdev-devel
222 Summary: Fbdev backend development module for pepper package
223 Requires: pepper-fbdev = %{version}-%{release}
224
225 %description fbdev-devel
226 This package includes fbdev backend development module files.
227
228 ###### wayland backend
229 %package wayland
230 Summary: Wayland backend module for pepper package
231
232 %description wayland
233 This package includes wayland backend module files.
234
235 ###### wayland backend devel
236 %package wayland-devel
237 Summary: Wayland backend development module for pepper package
238 Requires: pepper-wayland = %{version}-%{release}
239
240 %description wayland-devel
241 This package includes wayland backend development module files.
242
243 ###### doctor server
244 %package doctor
245 Summary: Doctor server for pepper package
246 Requires: pepper pepper-keyrouter pepper-devicemgr pepper-evdev
247 Requires: libtbm
248
249 %description doctor
250 This package includes doctor server files.
251
252 ###### samples
253 %package samples
254 Summary: samples for pepper package
255 %if "%{ENABLE_DRM}" == "1"
256 Requires: pepper-drm
257 %endif
258 Requires: pepper-desktop-shell
259 Requires: pepper-fbdev
260 %if "%{ENABLE_TDM}" == "1"
261 Requires: pepper-tdm
262 %endif
263 Requires: pepper-wayland pepper-x11
264 Requires: pepper-libinput
265 Requires: pepper-keyrouter pepper-evdev pepper-devicemgr pepper-inotify
266 Requires: pepper-xkb
267
268 %description samples
269 This package includes samples files.
270
271 ###### tests
272 %package tests
273 Summary: Pepper unit tests package
274
275 %description tests
276 gtest test cases for pepper
277
278 ###### executing
279
280 %prep
281 %setup -q
282 cp %{SOURCE1001} .
283
284 %build
285 export CFLAGS+=" -fPIE "
286 export LDFLAGS+=" -pie "
287 %autogen \
288         --disable-x11 \
289 %if "%{ENABLE_DRM}" == "0"
290         --disable-drm \
291 %endif
292 %if "%{ENABLE_TDM}" == "0"
293         --disable-tdm \
294 %endif
295         --enable-socket-fd=yes \
296         --disable-document \
297         --with-keylayout-dir=%{TZ_SYS_RO_SHARE}/X11/xkb/tizen_key_layout.txt
298
299 make %{?_smp_mflags}
300
301 %install
302 %make_install
303
304 %define display_user display
305 %define display_group display
306
307 # install system session services
308 %__mkdir_p %{buildroot}%{_unitdir}
309 install -m 644 data/units/display-manager.service %{buildroot}%{_unitdir}
310 install -m 644 data/units/display-manager-ready.path %{buildroot}%{_unitdir}
311 install -m 644 data/units/display-manager-ready.service %{buildroot}%{_unitdir}
312
313 # install user session service
314 %__mkdir_p %{buildroot}%{_unitdir_user}
315 install -m 644 data/units/display-user.service %{buildroot}%{_unitdir_user}
316
317 # install env file and scripts for service
318 %__mkdir_p %{buildroot}%{_sysconfdir}/sysconfig
319 install -m 0644 data/units/display-manager.env %{buildroot}%{_sysconfdir}/sysconfig
320 %__mkdir_p %{buildroot}%{_sysconfdir}/profile.d
321 install -m 0644 data/units/display_env.sh %{buildroot}%{_sysconfdir}/profile.d
322
323 %post -n %{name} -p /sbin/ldconfig
324 %postun -n %{name} -p /sbin/ldconfig
325
326 %post inotify -p /sbin/ldconfig
327 %postun inotify -p /sbin/ldconfig
328
329 %post keyrouter -p /sbin/ldconfig
330 %postun keyrouter -p /sbin/ldconfig
331
332 %post devicemgr -p /sbin/ldconfig
333 %postun devicemgr -p /sbin/ldconfig
334
335 %post evdev -p /sbin/ldconfig
336 %postun evdev -p /sbin/ldconfig
337
338 %post libinput -p /sbin/ldconfig
339 %postun libinput -p /sbin/ldconfig
340
341 %post desktop-shell -p /sbin/ldconfig
342 %postun desktop-shell -p /sbin/ldconfig
343
344 %post render -p /sbin/ldconfig
345 %postun render -p /sbin/ldconfig
346
347 %if "%{ENABLE_DRM}" == "1"
348 %post drm -p /sbin/ldconfig
349 %postun drm -p /sbin/ldconfig
350 %endif
351
352 %if "%{ENABLE_TDM}" == "1"
353 %post tdm -p /sbin/ldconfig
354 %postun tdm -p /sbin/ldconfig
355 %endif
356
357 %post fbdev -p /sbin/ldconfig
358 %postun fbdev -p /sbin/ldconfig
359
360 %post wayland -p /sbin/ldconfig
361 %postun wayland -p /sbin/ldconfig
362
363 %pre doctor
364 # create groups 'display'
365 getent group %{display_group} >/dev/null || %{_sbindir}/groupadd -r -o %{display_group}
366 # create user 'display'
367 getent passwd %{display_user} >/dev/null || %{_sbindir}/useradd -r -g %{display_group} -d /run/display -s /bin/false -c "Display" %{display_user}
368
369 # create links within systemd's target(s)
370 %__mkdir_p %{_unitdir}/graphical.target.wants/
371 %__mkdir_p %{_unitdir_user}/basic.target.wants/
372 ln -sf ../display-manager.service %{_unitdir}/graphical.target.wants/
373 ln -sf ../display-manager-ready.service %{_unitdir}/graphical.target.wants/
374 ln -sf ../display-user.service %{_unitdir_user}/basic.target.wants/
375
376 %postun doctor
377 rm -f %{_unitdir}/graphical.target.wants/display-manager.service
378 rm -f %{_unitdir}/graphical.target.wants/display-manager-ready.service
379 rm -f %{_unitdir_user}/basic.target.wants/display-user.service
380
381 %files -n %{name}
382 %manifest %{name}.manifest
383 %defattr(-,root,root,-)
384 %license COPYING
385 %{_libdir}/libpepper.so.*
386
387 %files devel
388 %manifest %{name}.manifest
389 %defattr(-,root,root,-)
390 %{_includedir}/pepper/pepper.h
391 %{_includedir}/pepper/pepper-utils.h
392 %{_includedir}/pepper/pepper-utils-pixman.h
393 %{_includedir}/pepper/pepper-output-backend.h
394 %{_includedir}/pepper/pepper-input-backend.h
395 %{_libdir}/pkgconfig/pepper.pc
396 %{_libdir}/libpepper.so
397
398 %files inotify
399 %manifest %{name}.manifest
400 %defattr(-,root,root,-)
401 %license COPYING
402 %{_libdir}/libpepper-inotify.so.*
403
404 %files inotify-devel
405 %manifest %{name}.manifest
406 %defattr(-,root,root,-)
407 %{_includedir}/pepper/pepper-inotify.h
408 %{_libdir}/pkgconfig/pepper-inotify.pc
409 %{_libdir}/libpepper-inotify.so
410
411 %files keyrouter
412 %manifest %{name}.manifest
413 %defattr(-,root,root,-)
414 %license COPYING
415 %{_libdir}/libpepper-keyrouter.so.*
416
417 %files keyrouter-devel
418 %manifest %{name}.manifest
419 %defattr(-,root,root,-)
420 %{_includedir}/pepper/keyrouter.h
421 %{_includedir}/pepper/pepper-keyrouter.h
422 %{_libdir}/pkgconfig/pepper-keyrouter.pc
423 %{_libdir}/libpepper-keyrouter.so
424
425 %files devicemgr
426 %manifest %{name}.manifest
427 %defattr(-,root,root,-)
428 %license COPYING
429 %{_libdir}/libpepper-devicemgr.so.*
430
431 %files devicemgr-devel
432 %manifest %{name}.manifest
433 %defattr(-,root,root,-)
434 %{_includedir}/pepper/devicemgr.h
435 %{_includedir}/pepper/pepper-devicemgr.h
436 %{_libdir}/pkgconfig/pepper-devicemgr.pc
437 %{_libdir}/libpepper-devicemgr.so
438
439 %files evdev
440 %manifest %{name}.manifest
441 %defattr(-,root,root,-)
442 %license COPYING
443 %{_libdir}/libpepper-evdev.so.*
444
445 %files evdev-devel
446 %manifest %{name}.manifest
447 %defattr(-,root,root,-)
448 %{_includedir}/pepper/pepper-evdev.h
449 %{_libdir}/pkgconfig/pepper-evdev.pc
450 %{_libdir}/libpepper-evdev.so
451
452 %files xkb
453 %manifest %{name}.manifest
454 %defattr(-,root,root,-)
455 %license COPYING
456 %{_libdir}/libpepper-xkb.so.*
457
458 %files xkb-devel
459 %manifest %{name}.manifest
460 %defattr(-,root,root,-)
461 %{_includedir}/pepper/pepper-xkb.h
462 %{_libdir}/pkgconfig/pepper-xkb.pc
463 %{_libdir}/libpepper-xkb.so
464
465 %files libinput
466 %manifest %{name}.manifest
467 %defattr(-,root,root,-)
468 %license COPYING
469 %{_libdir}/libpepper-libinput.so.*
470
471 %files libinput-devel
472 %manifest %{name}.manifest
473 %defattr(-,root,root,-)
474 %{_includedir}/pepper/pepper-libinput.h
475 %{_libdir}/pkgconfig/pepper-libinput.pc
476 %{_libdir}/libpepper-libinput.so
477
478 %files desktop-shell
479 %manifest %{name}.manifest
480 %defattr(-,root,root,-)
481 %license COPYING
482 %{_libdir}/libpepper-desktop-shell.so.*
483 %{_bindir}/shell-client
484
485 %files desktop-shell-devel
486 %manifest %{name}.manifest
487 %defattr(-,root,root,-)
488 %{_includedir}/pepper/pepper-desktop-shell.h
489 %{_includedir}/pepper/pepper-shell-client-protocol.h
490 %{_includedir}/pepper/xdg-shell-client-protocol.h
491 %{_libdir}/pkgconfig/pepper-desktop-shell.pc
492 %{_libdir}/libpepper-desktop-shell.so
493
494 %files render
495 %manifest %{name}.manifest
496 %defattr(-,root,root,-)
497 %license COPYING
498 %{_libdir}/libpepper-render.so.*
499
500 %files render-devel
501 %manifest %{name}.manifest
502 %defattr(-,root,root,-)
503 %{_includedir}/pepper/pepper-render.h
504 %{_includedir}/pepper/pepper-*-renderer.h
505 %{_libdir}/pkgconfig/pepper-render.pc
506 %{_libdir}/libpepper-render.so
507
508 %if "%{ENABLE_DRM}" == "1"
509 %files drm
510 %manifest %{name}.manifest
511 %defattr(-,root,root,-)
512 %license COPYING
513 %{_libdir}/libpepper-drm.so.*
514
515 %files drm-devel
516 %manifest %{name}.manifest
517 %defattr(-,root,root,-)
518 %{_includedir}/pepper/pepper-drm.h
519 %{_libdir}/pkgconfig/pepper-drm.pc
520 %{_libdir}/libpepper-drm.so
521 %endif
522
523 %if "%{ENABLE_TDM}" == "1"
524 %files tdm
525 %manifest %{name}.manifest
526 %defattr(-,root,root,-)
527 %license COPYING
528 %{_libdir}/libpepper-tdm.so.*
529
530 %files tdm-devel
531 %manifest %{name}.manifest
532 %defattr(-,root,root,-)
533 %{_includedir}/pepper/pepper-tdm.h
534 %{_libdir}/pkgconfig/pepper-tdm.pc
535 %{_libdir}/libpepper-tdm.so
536 %endif
537
538 %files fbdev
539 %manifest %{name}.manifest
540 %defattr(-,root,root,-)
541 %license COPYING
542 %{_libdir}/libpepper-fbdev.so.*
543
544 %files fbdev-devel
545 %manifest %{name}.manifest
546 %defattr(-,root,root,-)
547 %{_includedir}/pepper/pepper-fbdev.h
548 %{_libdir}/pkgconfig/pepper-fbdev.pc
549 %{_libdir}/libpepper-fbdev.so
550
551 %files wayland
552 %manifest %{name}.manifest
553 %defattr(-,root,root,-)
554 %license COPYING
555 %{_libdir}/libpepper-wayland.so.*
556
557 %files wayland-devel
558 %manifest %{name}.manifest
559 %defattr(-,root,root,-)
560 %{_includedir}/pepper/pepper-wayland.h
561 %{_libdir}/pkgconfig/pepper-wayland.pc
562 %{_libdir}/libpepper-wayland.so
563
564 %files doctor
565 %manifest %{name}.manifest
566 %defattr(-,root,root,-)
567 %license COPYING
568 %{_bindir}/doctor*
569 %{_unitdir}/display-manager-ready.path
570 %{_unitdir}/display-manager-ready.service
571 %{_unitdir}/display-manager.service
572 %{_unitdir_user}/display-user.service
573 %config %{_sysconfdir}/sysconfig/display-manager.env
574 %config %{_sysconfdir}/profile.d/display_env.sh
575
576 %files samples
577 %manifest %{name}.manifest
578 %defattr(-,root,root,-)
579 %{_bindir}/*-backend
580 %{_bindir}/sample-*
581
582 %files tests
583 %defattr(-,root,root,-)
584 %{_bindir}/*-tests