Merge "Remove daemonization" into tizen
[sdk/target/sdbd.git] / packaging / sdbd.spec
1 %bcond_with emulator
2
3 Name:       sdbd
4 Summary:    SDB daemon
5 Version:    3.0.48
6 Release:    0
7 License:    Apache-2.0
8 Summary:    SDB daemon
9 Group:      System/Utilities
10 Source0:    %{name}-%{version}.tar.gz
11 Source1001:    sdbd_device.service
12 Source1002:    sdbd_emulator.service
13 Source1003:    %{name}.manifest
14 Source1004:    sdbd_tcp.service
15 Source1005:    sdbd_device_tv.service
16 Source1006:    sdbd_emulator_tv.service
17 Source1007:    sdbd.socket
18
19 BuildRequires: capi-system-info-devel >= 0.2.0
20 BuildRequires: cmake >= 2.8.3
21 BuildRequires: pkgconfig
22 BuildRequires: pkgconfig(libsystemd)
23 BuildRequires:  pkgconfig(libtzplatform-config)
24 #BuildRequires: sec-product-features
25 BuildRequires: pkgconfig(libsmack)
26 BuildRequires: pkgconfig(capi-system-info)
27 BuildRequires: pkgconfig(vconf)
28 BuildRequires: pkgconfig(glib-2.0)
29 BuildRequires: pkgconfig(gio-2.0)
30 BuildRequires: pkgconfig(dlog)
31 Requires: dbus
32 Provides:      %{name}-profile_common = %{version}-%{release}
33 Provides:      %{name}-profile_mobile = %{version}-%{release}
34 Provides:      %{name}-profile_ivi = %{version}-%{release}
35 Provides:      %{name}-profile_wearable = %{version}-%{release}
36
37 %description
38 Description: SDB daemon.
39
40 %package profile_tv
41 Summary:   SDB daemon extension for TV
42 Requires:  %{name} = %{version}-%{release}
43 %description profile_tv
44 SDB daemon extension for TV.
45 This changes the service unit files of the default SDB daemon service files.
46
47 %ifarch %{ix86} x86_64
48 %package extension-emulator
49 Summary:    SDB daemon for emulator
50 Requires:   %{name} = %{version}-%{release}
51 %description extension-emulator
52 SDB daemon for emulator
53
54 %package extension-tv-emulator
55 Summary:    SDB daemon for tv emulator
56 Requires:   %{name}-profile_tv = %{version}-%{release}
57 %description extension-tv-emulator
58 SDB daemon for tv emulator
59 %endif // ifarch %{ix86} x86_64
60
61 %package -n sdbd-devel
62 Summary:        SDBD plugin API
63 Group:          Development/Libraries
64
65 %description -n sdbd-devel
66 SDBD plugin API library
67
68 %prep
69 %setup -q
70 cp %{SOURCE1003} .
71
72 %build
73 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} %{?asan:-DCMAKE_EXE_LINKER_FLAGS="-pthread"}
74
75 make %{?jobs:-j%jobs}
76
77 %install
78 mkdir -p %{buildroot}%{_unitdir}
79
80 # extension-*-emulator
81 %ifarch %{ix86} x86_64
82 install -m 0644 %SOURCE1006 %{buildroot}%{_unitdir}/sdbd.service.tv.emulator
83 install -m 0644 %SOURCE1002 %{buildroot}%{_unitdir}/sdbd.service.emulator
84 mkdir -p %{buildroot}/%{_unitdir}/emulator_preinit.target.wants
85 ln -s %{_unitdir}/sdbd.service %{buildroot}/%{_unitdir}/emulator_preinit.target.wants/
86 %endif // ifarch %{ix86} x86_64
87
88 %make_install
89
90 install -m 0644 %SOURCE1005 %{buildroot}%{_unitdir}/sdbd.service.tv
91 install -m 0644 %SOURCE1001 %{buildroot}%{_unitdir}/sdbd.service
92 install -m 0644 %SOURCE1004 %{buildroot}%{_unitdir}/sdbd_tcp.service
93 mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
94 ln -s %{_unitdir}/sdbd.service %{buildroot}/%{_unitdir}/multi-user.target.wants/
95
96 mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
97 install -m 644 rules/99-sdbd.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
98 install -m 0644 %SOURCE1007 %{buildroot}%{_unitdir}/sdbd.socket
99
100 mkdir -p %{buildroot}%{_prefix}/sbin
101 install -m 755 script/sdk_launch %{buildroot}%{_prefix}/sbin/
102
103 mkdir -p %{buildroot}%{TZ_SYS_BIN}
104 install -m 755 script/profile_command %{buildroot}%{TZ_SYS_BIN}/
105
106 mkdir -p %{buildroot}%{_includedir}/sdb/
107 install -m 0644 src/sdbd_plugin.h %{buildroot}%{_includedir}/sdb/
108
109 mkdir -p %{buildroot}%{_libdir}/pkgconfig/
110 install -m 0644 packaging/sdbd.pc %{buildroot}%{_libdir}/pkgconfig/
111
112 %post
113 . %{_sysconfdir}/tizen-platform.conf
114 if ! getent passwd "${TZ_SDK_USER_NAME}" > /dev/null; then
115   rm -rf "${TZ_SDK_HOME}"
116   useradd -u 5100 -s /bin/false -m -d "${TZ_SDK_HOME}" "${TZ_SDK_USER_NAME}"
117   getent group developer > /dev/null || groupadd -g 5100 developer
118   for x in app_logging crash developer; do
119     usermod -A app_logging "${TZ_SDK_USER_NAME}"
120   done
121 fi
122
123 chsmack -a "_" /sbin/sdbd-user
124 chsmack -e "User::Shell" /sbin/sdbd-user
125
126 %files
127 %manifest sdbd.manifest
128 %license LICENSE
129 %defattr(-,root,root,-)
130 %{_prefix}/sbin/sdbd
131 %{_prefix}/sbin/sdbd-user
132 %{_prefix}/sbin/sdk_launch
133 %attr(0755, root, root) %{_sysconfdir}/init.d/sdbd
134 %{_unitdir}/sdbd.service
135 %{_unitdir}/sdbd.socket
136 %{_unitdir}/sdbd_tcp.service
137 %{_unitdir}/multi-user.target.wants/sdbd.service
138 %{_prefix}/lib/udev/rules.d/99-sdbd.rules
139 %{TZ_SYS_BIN}/profile_command
140 %{_sysconfdir}/sdbd/descs
141 %{_sysconfdir}/sdbd/strs
142
143 %ifarch %{ix86} x86_64
144 %post  extension-emulator
145 mv %{_unitdir}/sdbd.service.emulator %{_unitdir}/sdbd.service
146 %preun extension-emulator
147 mv %{_unitdir}/sdbd.service %{_unitdir}/sdbd.service.emulator
148 %files extension-emulator
149 %manifest sdbd.manifest
150 %{_unitdir}/sdbd.service.emulator
151 %{_unitdir}/emulator_preinit.target.wants/sdbd.service
152
153 %post  extension-tv-emulator
154 mv %{_unitdir}/sdbd.service.tv.emulator %{_unitdir}/sdbd.service
155 %preun extension-tv-emulator
156 mv %{_unitdir}/sdbd.service %{_unitdir}/sdbd.service.tv.emulator
157 %files extension-tv-emulator
158 %manifest sdbd.manifest
159 %{_unitdir}/sdbd.service.tv.emulator
160 %{_unitdir}/emulator_preinit.target.wants/sdbd.service
161 %endif // ifarch %{ix86} x86_64
162
163 %post profile_tv
164 pushd %{_unitdir}
165 mv sdbd.service.tv sdbd.service
166 popd
167 %preun profile_tv
168 pushd %{_unitdir}
169 cp sdbd.service sdbd.service.tv
170 echo For correct bahavior of %{name} after uninstalling %{name}-profile_tv, you need to reinstall %{name}
171 popd
172 %files profile_tv
173 %{_unitdir}/sdbd.service.tv
174
175 %files -n sdbd-devel
176 %{_includedir}/sdb/sdbd_plugin.h
177 %{_libdir}/pkgconfig/sdbd.pc
178
179 %changelog