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