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