9913623a4d1e67a18e25d64bc76a68ab07d1b1a7
[platform/core/uifw/headless-server.git] / packaging / headless-server.spec
1 Name:           headless-server
2 Version:        0.0.1
3 Release:        0
4 Summary:        Display server for headless profile
5 License:        MIT
6 Group:          Graphics & UI Framework/Wayland Window System
7
8 Source:         %{name}-%{version}.tar.xz
9 source1001:     %name.manifest
10
11 BuildRequires:  autoconf > 2.64
12 BuildRequires:  automake >= 1.11
13 BuildRequires:  libtool >= 2.2
14 BuildRequires:  pkgconfig(pepper)
15 BuildRequires:  pkgconfig(pepper-inotify)
16 BuildRequires:  pkgconfig(pepper-keyrouter)
17 BuildRequires:  pkgconfig(pepper-xkb)
18 BuildRequires:  pkgconfig(pepper-devicemgr)
19 BuildRequires:  pkgconfig(pepper-evdev)
20 BuildRequires:  pkgconfig(xkbcommon)
21 BuildRequires:  pkgconfig(wayland-tbm-server)
22 BuildRequires:  pkgconfig(tizen-extension-server)
23 BuildRequires:  pkgconfig(capi-system-peripheral-io)
24 BuildRequires:  pkgconfig(xdg-shell-unstable-v6-server)
25 BuildRequires:  pkgconfig(tizen-extension-server)
26
27 Requires: pepper pepper-keyrouter pepper-devicemgr pepper-evdev
28 Requires: pepper-xkb xkeyboard-config xkb-tizen-data
29 Requires: libtbm
30 Requires: capi-system-peripheral-io
31 Conflicts: pepper-doctor
32
33 %description
34 Headless server is a display server for headless profile.
35
36 %package devel
37 Summary: Development module for headless-server package
38 Requires: %{name} = %{version}-%{release}
39
40 %description devel
41 This package includes developer files common to all packages.
42
43 %prep
44 %setup -q
45 cp %{SOURCE1001} .
46
47 %build
48 %autogen
49
50 make %{?_smp_mflags}
51
52 %install
53 %make_install
54
55 %define display_user display
56 %define display_group display
57
58 # install system session services
59 %__mkdir_p %{buildroot}%{_unitdir}
60 install -m 644 data/units/display-manager.service %{buildroot}%{_unitdir}
61 install -m 550 data/scripts/* %{buildroot}%{_bindir}
62 install -m 644 data/units/display-manager-ready.path %{buildroot}%{_unitdir}
63 install -m 644 data/units/display-manager-ready.service %{buildroot}%{_unitdir}
64
65 # install user session service
66 %__mkdir_p %{buildroot}%{_unitdir_user}
67 install -m 644 data/units/display-user.service %{buildroot}%{_unitdir_user}
68
69 # install env file and scripts for service
70 %__mkdir_p %{buildroot}%{_sysconfdir}/sysconfig
71 install -m 0644 data/units/display-manager.env %{buildroot}%{_sysconfdir}/sysconfig
72 %__mkdir_p %{buildroot}%{_sysconfdir}/profile.d
73 install -m 0644 data/units/display_env.sh %{buildroot}%{_sysconfdir}/profile.d
74
75 install -m 0755 data/units/headless_server_start.sh %{buildroot}/%{_bindir}
76
77 %post -n %{name} -p /sbin/ldconfig
78 %postun -n %{name} -p /sbin/ldconfig
79
80 %pre
81 # create groups 'display'
82 getent group %{display_group} >/dev/null || %{_sbindir}/groupadd -r -o %{display_group}
83 # create user 'display'
84 getent passwd %{display_user} >/dev/null || %{_sbindir}/useradd -r -g %{display_group} -d /run/display -s /bin/false -c "Display" %{display_user}
85
86 # create links within systemd's target(s)
87 %__mkdir_p %{_unitdir}/graphical.target.wants/
88 %__mkdir_p %{_unitdir_user}/basic.target.wants/
89 ln -sf ../display-manager.service %{_unitdir}/graphical.target.wants/
90 ln -sf ../display-manager-ready.service %{_unitdir}/graphical.target.wants/
91 ln -sf ../display-user.service %{_unitdir_user}/basic.target.wants/
92
93 %files
94 %manifest %{name}.manifest
95 %defattr(-,root,root,-)
96 %license COPYING
97 %{_bindir}/headless*
98 %{_bindir}/winfo
99 %{_unitdir}/display-manager-ready.path
100 %{_unitdir}/display-manager-ready.service
101 %{_unitdir}/display-manager.service
102 %{_unitdir_user}/display-user.service
103 %config %{_sysconfdir}/sysconfig/display-manager.env
104 %config %{_sysconfdir}/profile.d/display_env.sh
105
106 %files devel
107 %manifest %{name}.manifest
108 %defattr(-,root,root,-)
109