Merge "Revert "service: Reimplement per-profile configuration using snippets"" into...
[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.socket
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 BuildRequires: pkgconfig(libsystemd)
32 Requires: dbus
33 Provides:      %{name}-profile_common = %{version}-%{release}
34 Provides:      %{name}-profile_mobile = %{version}-%{release}
35 Provides:      %{name}-profile_ivi = %{version}-%{release}
36 Provides:      %{name}-profile_wearable = %{version}-%{release}
37
38 %description
39 Description: SDB daemon.
40
41 %package profile_tv
42 Summary:   SDB daemon extension for TV
43 Requires:  %{name} = %{version}-%{release}
44 %description profile_tv
45 SDB daemon extension for TV.
46 This changes the service unit files of the default SDB daemon service files.
47
48 %ifarch %{ix86} x86_64
49 %package extension-emulator
50 Summary:    SDB daemon for emulator
51 Requires:   %{name} = %{version}-%{release}
52 %description extension-emulator
53 SDB daemon for emulator
54
55 %package extension-tv-emulator
56 Summary:    SDB daemon for tv emulator
57 Requires:   %{name}-profile_tv = %{version}-%{release}
58 %description extension-tv-emulator
59 SDB daemon for tv emulator
60 %endif // ifarch %{ix86} x86_64
61
62 %package -n sdbd-devel
63 Summary:        SDBD plugin API
64 Group:          Development/Libraries
65
66 %description -n sdbd-devel
67 SDBD plugin API library
68
69 %prep
70 %setup -q
71 cp %{SOURCE1003} .
72
73 %build
74 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} %{?asan:-DCMAKE_EXE_LINKER_FLAGS="-pthread"}
75
76 make %{?jobs:-j%jobs}
77
78 %install
79 mkdir -p %{buildroot}%{_unitdir}
80
81 # extension-*-emulator
82 %ifarch %{ix86} x86_64
83 install -m 0644 %SOURCE1006 %{buildroot}%{_unitdir}/sdbd.service.tv.emulator
84 install -m 0644 %SOURCE1002 %{buildroot}%{_unitdir}/sdbd.service.emulator
85 mkdir -p %{buildroot}/%{_unitdir}/emulator_preinit.target.wants
86 ln -s %{_unitdir}/sdbd.service %{buildroot}/%{_unitdir}/emulator_preinit.target.wants/
87 %endif // ifarch %{ix86} x86_64
88
89 %make_install
90
91 install -m 0644 %SOURCE1005 %{buildroot}%{_unitdir}/sdbd.service.tv
92 install -m 0644 %SOURCE1001 %{buildroot}%{_unitdir}/sdbd.service
93 install -m 0644 %SOURCE1004 %{buildroot}%{_unitdir}/sdbd_tcp.socket
94
95 install -m 0755 -d %{buildroot}%{_unitdir}/sockets.target.wants/
96 ln -s ../sdbd_tcp.socket %{buildroot}%{_unitdir}/sockets.target.wants/
97
98 mkdir -p %{buildroot}%{_prefix}/lib/udev/rules.d/
99 install -m 644 rules/99-sdbd.rules %{buildroot}%{_prefix}/lib/udev/rules.d/
100 install -m 0644 %SOURCE1007 %{buildroot}%{_unitdir}/sdbd.socket
101
102 mkdir -p %{buildroot}%{_prefix}/sbin
103 install -m 755 script/sdk_launch %{buildroot}%{_prefix}/sbin/
104
105 mkdir -p %{buildroot}%{TZ_SYS_BIN}
106 install -m 755 script/profile_command %{buildroot}%{TZ_SYS_BIN}/
107
108 mkdir -p %{buildroot}%{_includedir}/sdb/
109 install -m 0644 src/sdbd_plugin.h %{buildroot}%{_includedir}/sdb/
110
111 mkdir -p %{buildroot}%{_libdir}/pkgconfig/
112 install -m 0644 packaging/sdbd.pc %{buildroot}%{_libdir}/pkgconfig/
113
114 %post
115 . %{_sysconfdir}/tizen-platform.conf
116 if ! getent passwd "${TZ_SDK_USER_NAME}" > /dev/null; then
117   rm -rf "${TZ_SDK_HOME}"
118   useradd -u 5100 -s /bin/false -m -d "${TZ_SDK_HOME}" "${TZ_SDK_USER_NAME}"
119   getent group developer > /dev/null || groupadd -g 5100 developer
120   for x in app_logging crash developer; do
121     usermod -A app_logging "${TZ_SDK_USER_NAME}"
122   done
123 fi
124
125 chsmack -a "_" /sbin/sdbd-user
126 chsmack -e "User::Shell" /sbin/sdbd-user
127
128 %files
129 %manifest sdbd.manifest
130 %license LICENSE
131 %defattr(-,root,root,-)
132 %{_prefix}/sbin/sdbd
133 %{_prefix}/sbin/sdbd-user
134 %{_prefix}/sbin/sdk_launch
135 %attr(0755, root, root) %{_sysconfdir}/init.d/sdbd
136 %{_unitdir}/sdbd.service
137 %{_unitdir}/sdbd.socket
138 %{_unitdir}/sdbd_tcp.socket
139 %{_unitdir}/sockets.target.wants/sdbd_tcp.socket
140 %{_prefix}/lib/udev/rules.d/99-sdbd.rules
141 %{TZ_SYS_BIN}/profile_command
142 %{_sysconfdir}/sdbd/descs
143 %{_sysconfdir}/sdbd/strs
144
145 %ifarch %{ix86} x86_64
146 %post  extension-emulator
147 mv %{_unitdir}/sdbd.service.emulator %{_unitdir}/sdbd.service
148 %preun extension-emulator
149 mv %{_unitdir}/sdbd.service %{_unitdir}/sdbd.service.emulator
150 %files extension-emulator
151 %manifest sdbd.manifest
152 %{_unitdir}/sdbd.service.emulator
153 %{_unitdir}/emulator_preinit.target.wants/sdbd.service
154
155 %post  extension-tv-emulator
156 mv %{_unitdir}/sdbd.service.tv.emulator %{_unitdir}/sdbd.service
157 %preun extension-tv-emulator
158 mv %{_unitdir}/sdbd.service %{_unitdir}/sdbd.service.tv.emulator
159 %files extension-tv-emulator
160 %manifest sdbd.manifest
161 %{_unitdir}/sdbd.service.tv.emulator
162 %{_unitdir}/emulator_preinit.target.wants/sdbd.service
163 %endif // ifarch %{ix86} x86_64
164
165 %post profile_tv
166 pushd %{_unitdir}
167 mv sdbd.service.tv sdbd.service
168 popd
169 %preun profile_tv
170 pushd %{_unitdir}
171 cp sdbd.service sdbd.service.tv
172 echo For correct bahavior of %{name} after uninstalling %{name}-profile_tv, you need to reinstall %{name}
173 popd
174 %files profile_tv
175 %{_unitdir}/sdbd.service.tv
176
177 %files -n sdbd-devel
178 %{_includedir}/sdb/sdbd_plugin.h
179 %{_libdir}/pkgconfig/sdbd.pc
180
181 %changelog