1bc63036bdd56b6693e299f14021c7e7faa50135
[platform/core/connectivity/bluetooth-frwk.git] / packaging / bluetooth-frwk.spec
1 %bcond_with x
2 %define _dumpdir /opt/etc/dump.d/module.d
3 %define _varlibdir /opt/var/lib
4
5 Name:       bluetooth-frwk
6 Summary:    Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
7 Version:    0.2.151
8 Release:    1
9 Group:      Network & Connectivity/Bluetooth
10 License:    Apache-2.0
11 Source0:    %{name}-%{version}.tar.gz
12 Source1001: bluetooth-frwk.manifest
13
14 Requires: dbus
15 Requires: syspopup
16 %if "%{?profile}" != "mobile"
17 Requires: bluetooth-tools
18 %endif
19 BuildRequires:  pkgconfig(aul)
20 BuildRequires:  pkgconfig(dbus-glib-1)
21 BuildRequires:  pkgconfig(dlog)
22 BuildRequires:  pkgconfig(glib-2.0)
23 BuildRequires:  pkgconfig(gio-2.0)
24 BuildRequires:  pkgconfig(gio-unix-2.0)
25 BuildRequires:  pkgconfig(syspopup-caller)
26 BuildRequires:  pkgconfig(vconf)
27 BuildRequires:  pkgconfig(libxml-2.0)
28 BuildRequires:  pkgconfig(dbus-1)
29 BuildRequires:  pkgconfig(capi-network-connection)
30 BuildRequires:  pkgconfig(alarm-service)
31 BuildRequires:  pkgconfig(capi-content-mime-type)
32 BuildRequires:  pkgconfig(appcore-efl)
33 BuildRequires:  pkgconfig(pkgmgr)
34 #BuildRequires:  pkgconfig(journal)
35 BuildRequires:  pkgconfig(eventsystem)
36 BuildRequires:  pkgconfig(libsoup-2.4)
37 %if "%{?profile}" == "mobile"
38 BuildRequires:  pkgconfig(capi-network-tethering)
39 %endif
40 BuildRequires:  cmake
41 BuildRequires:  pkgconfig(cynara-client)
42 BuildRequires:  pkgconfig(cynara-creds-gdbus)
43 BuildRequires:  pkgconfig(libtzplatform-config)
44 BuildRequires:  pkgconfig(storage)
45
46 Requires(post): /usr/bin/vconftool
47 Requires(post): /sbin/ldconfig
48 Requires(postun): /sbin/ldconfig
49 Requires: psmisc
50
51 %description
52 Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
53  This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
54
55
56 %package devel
57 Summary:    Bluetooth framework for BlueZ and Obexd
58 Group:      Development/Libraries
59 Requires:   %{name} = %{version}-%{release}
60
61 %description devel
62 This package is development files for Bluetooth framework based on BlueZ and Obexd stack.
63 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
64
65 %package service
66 Summary:    Bluetooth Service daemon
67 Group:      Network & Connectivity/Bluetooth
68 Requires:   %{name} = %{version}-%{release}
69
70 %description service
71 This package is Bluetooth Service daemon to manage BT services.
72
73 %package httpproxy
74 Summary:    Bluetooth HTTP Proxy Service daemon
75 Group:      TO_BE/FILLED
76 Requires:   %{name} = %{version}-%{release}
77
78 %description httpproxy
79 This package is Bluetooth HTTP Proxy Service daemon
80
81 %package core
82 Summary:    Bluetooth Core daemon
83 Group:      Network & Connectivity/Bluetooth
84 Requires:   %{name} = %{version}-%{release}
85
86 %description core
87 This package is Bluetooth core daemon to manage activation / deactivation.
88
89 %package test
90 Summary:    Bluetooth test application
91 Group:      Network & Connectivity/Bluetooth
92 Requires:   %{name} = %{version}-%{release}
93
94 %description test
95 This package is Bluetooth test application.
96
97 %prep
98 %setup -q
99 cp %{SOURCE1001} .
100
101
102 %build
103 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
104 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
105 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
106
107 %define _servicefile packaging/bluetooth-frwk-common.service
108 %define _servicedir starter.target.wants
109
110 %if "%{?profile}" == "mobile"
111 export CFLAGS="$CFLAGS -DTIZEN_FEATURE_NETWORK_TETHERING_ENABLE -DTIZEN_FEATURE_FLIGHTMODE_ENABLED -DTIZEN_PROFILE_MOBILE -DTIZEN_FEATURE_TELEPHONY_ENABLED"
112 %if "%{?tizen_target_name}" == "TM1"
113 %define _servicefile packaging/bluetooth-frwk-mobile-sprd.service
114 %else
115 %define _servicefile packaging/bluetooth-frwk-mobile.service
116 %endif
117 %define _servicedir multi-user.target.wants
118 %endif
119
120 %if "%{?profile}" == "wearable"
121 export CFLAGS="$CFLAGS -DTIZEN_PROFILE_WEARABLE -DTIZEN_FEATURE_FLIGHTMODE_ENABLED"
122 %define _servicefile packaging/bluetooth-frwk-wearable.service
123 %define _servicedir multi-user.target.wants
124 %endif
125
126 %if "%{?profile}" == "tv"
127 export CFLAGS="$CFLAGS -DUSB_BLUETOOTH -DTIZEN_TV -DAUTO_ACCEPT"
128 %define _servicefile packaging/bluetooth-frwk-tv.service
129 %define _servicedir multi-user.target.wants
130 %endif
131
132 %ifarch x86_64
133 export CFLAGS="$CFLAGS -Wall -g -fvisibility=hidden -fPIC"
134 %else
135 export CFLAGS="$CFLAGS -fpie"
136 export LDFLAGS="$CFLAGS -pie"
137 %endif
138
139 export CFLAGS="$CFLAGS -DRFCOMM_DIRECT"
140 export LDFLAGS="$CFLAGS -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
141
142 %if "%{?_with_emulator}" == "1"
143 export CFLAGS="$CFLAGS -DTIZEN_TEST_EMUL"
144 export CXXFLAGS="$CXXFLAGS -DTIZEN_TEST_EMUL"
145 export FFLAGS="$FFLAGS -DTIZEN_TEST_EMUL"
146 %endif
147
148 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
149 -DCMAKE_LIB_DIR=%{_libdir} \
150 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
151 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
152         -DLIBNOTIFY_SUPPORT=Off \
153         -DLIBNOTIFICATION_SUPPORT=Off
154 make
155
156 %cmake \
157 %if "%{?profile}" == "wearable"
158         -DTIZEN_PROFILE_WEARABLE=YES \
159 %else
160         -DTIZEN_PROFILE_WEARABLE=NO \
161 %endif
162 %if "%{?profile}" == "common"
163         -DTIZEN_PROFILE_WEARABLE=NO \
164 %endif
165
166 %install
167 rm -rf %{buildroot}
168 %make_install
169
170 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk
171 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-service
172 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-httpproxy
173 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-devel
174
175 #mkdir -p %{buildroot}%{_libdir}/systemd/user
176 #install -m 0644 packaging/bluetooth-frwk-tv.service %{buildroot}%{_libdir}/systemd/user
177 mkdir -p %{buildroot}%{_unitdir}/%{_servicedir}
178 install -m 0644 %{_servicefile} %{buildroot}%{_unitdir}/bluetooth-frwk.service
179 ln -s ../bluetooth-frwk.service %{buildroot}%{_unitdir}/%{_servicedir}/bluetooth-frwk.service
180
181 # On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
182 %if "%{profile}"=="ivi"
183 sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service
184 %endif
185
186
187 #%post
188 #/sbin/ldconfig
189 #%if "%{?profile}" == "wearable"
190 #vconftool set -f -t int db/bluetooth/status "1" -g 6520
191 #%endif
192 #%if "%{?profile}" == "mobile"
193 #vconftool set -f -t int db/bluetooth/status "0" -g 6520
194 #%endif
195 #%if "%{?profile}" == "common"
196 #vconftool set -f -t int db/bluetooth/status "0" -g 6520
197 #%endif
198
199 #vconftool set -f -t int db/bluetooth/status "0" -s User
200 #vconftool set -f -t int db/bluetooth/lestatus "0" -s User
201 #vconftool set -f -t int file/private/bt-core/flight_mode_deactivated "0" -s User
202 #vconftool set -f -t int file/private/bt-core/powersaving_mode_deactivated "0" -s User
203 #vconftool set -f -t int file/private/bt-service/bt_off_due_to_timeout "0" -s User
204 #vconftool set -f -t string memory/bluetooth/sco_headset_name "" -g 6520 -i
205 #vconftool set -f -t int memory/bluetooth/device "0" -g 6520 -i
206 #vconftool set -f -t bool memory/bluetooth/btsco "0" -g 6520 -i
207 #vconftool set -f -t bool memory/bluetooth/dutmode "0" -g 6520 -i
208
209
210 #%post service
211 #mkdir -p %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
212 #ln -sf %{_libdir}/systemd/user/bluetooth-frwk.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
213
214 %postun -p /sbin/ldconfig
215
216 %files
217 %manifest %{name}.manifest
218 %defattr(-, root, root)
219 %{_libdir}/libbluetooth-api.so.*
220 %{_datadir}/license/bluetooth-frwk
221 %{_unitdir}/%{_servicedir}/bluetooth-frwk.service
222 %{_unitdir}/bluetooth-frwk.service
223
224 %files devel
225 %defattr(-, root, root)
226 %{_includedir}/bt-service/bluetooth-api.h
227 %{_includedir}/bt-service/bluetooth-hid-api.h
228 %{_includedir}/bt-service/bluetooth-audio-api.h
229 %{_includedir}/bt-service/bluetooth-telephony-api.h
230 %{_includedir}/bt-service/bluetooth-media-control.h
231 %{_includedir}/bt-service/bluetooth-scmst-api.h
232 %{_includedir}/bt-service/bluetooth-ipsp-api.h
233 %{_libdir}/pkgconfig/bluetooth-api.pc
234 %{_libdir}/libbluetooth-api.so
235 %{_datadir}/license/bluetooth-frwk-devel
236
237 %files service
238 %manifest %{name}.manifest
239 %defattr(-, root, root)
240 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
241 %{_bindir}/bt-service
242 #%{_libdir}/systemd/user/bluetooth-frwk-tv.service
243 %{_unitdir}/%{_servicedir}/bluetooth-frwk.service
244 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
245 %{_bindir}/bluetooth-frwk-test
246 #%{_bindir}/bluetooth-gatt-test
247 #%{_bindir}/bluetooth-advertising-test
248 %{_varlibdir}/bluetooth
249 %{_prefix}/etc/bluetooth
250 #%attr(0666,-,-) %{_varlibdir}/bluetooth/auto-pair-blacklist
251 #%attr(0666,-,-) %{_prefix}/etc/bluetooth/stack_info
252 #%{_dumpdir}/bluetooth_log_dump.sh
253 %{_datadir}/license/bluetooth-frwk-service
254
255 %files httpproxy
256 %manifest %{name}.manifest
257 %defattr(-, root, root)
258 %{_bindir}/bt-httpproxy
259 %{_datadir}/license/bluetooth-frwk-httpproxy
260 %{_datadir}/dbus-1/system-services/org.projectx.httpproxy.service
261 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-httpproxy.conf
262
263 %files core
264 %manifest %{name}.manifest
265 %defattr(-, root, root)
266 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
267 %{_bindir}/bt-core
268 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
269
270 %files test
271 %manifest %{name}.manifest
272 %defattr(-, root, root)
273 %{_bindir}/bluetooth-frwk-test
274 %{_bindir}/bluetooth-gatt-test
275 %{_bindir}/bluetooth-advertising-test