3.0 specific patch: change dbus_g to g_dbus
[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.148
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 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
14 Source1002: bt-icon.png
15 %endif
16
17 Requires: sys-assert
18 Requires: dbus
19 Requires: syspopup
20 %if "%{?profile}" != "mobile"
21 Requires: bluetooth-tools
22 %endif
23 BuildRequires:  pkgconfig(aul)
24 BuildRequires:  pkgconfig(dbus-glib-1)
25 BuildRequires:  pkgconfig(dlog)
26 BuildRequires:  pkgconfig(glib-2.0)
27 BuildRequires:  pkgconfig(gio-2.0)
28 BuildRequires:  pkgconfig(gio-unix-2.0)
29 %if %{with bluetooth_frwk_libnotify}
30 BuildRequires:  pkgconfig(libnotify)
31 BuildRequires:  pkgconfig(gdk-pixbuf-2.0)
32 BuildRequires:  pkgconfig(gtk+-3.0)
33 %elif %{without bluetooth_frwk_libnotification}
34 BuildRequires:  pkgconfig(syspopup-caller)
35 Requires:       syspopup
36 %else
37 BuildRequires:  pkgconfig(syspopup-caller)
38 %endif
39 BuildRequires:  pkgconfig(vconf)
40 BuildRequires:  pkgconfig(libxml-2.0)
41 BuildRequires:  pkgconfig(dbus-1)
42 %if %{with x}
43 BuildRequires:  pkgconfig(utilX)
44 %endif
45 BuildRequires:  pkgconfig(capi-network-connection)
46 BuildRequires:  pkgconfig(alarm-service)
47 BuildRequires:  pkgconfig(capi-content-mime-type)
48 BuildRequires:  pkgconfig(appcore-efl)
49 BuildRequires:  pkgconfig(pkgmgr)
50 #BuildRequires:  pkgconfig(journal)
51 #BuildRequires:  pkgconfig(eventsystem)
52 %if "%{?profile}" == "mobile"
53 BuildRequires:  pkgconfig(capi-network-tethering)
54 %endif
55 BuildRequires:  cmake
56 BuildRequires:  pkgconfig(libprivilege-control)
57 BuildRequires:  pkgconfig(cynara-client)
58 BuildRequires:  pkgconfig(cynara-creds-gdbus)
59
60 Requires(post): /usr/bin/vconftool
61 Requires(post): /sbin/ldconfig
62 Requires(postun): /sbin/ldconfig
63 Requires: psmisc
64
65 %description
66 Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
67  This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
68
69
70 %package devel
71 Summary:    Bluetooth framework for BlueZ and Obexd
72 Group:      Development/Libraries
73 Requires:   %{name} = %{version}-%{release}
74
75 %description devel
76 This package is development files for Bluetooth framework based on BlueZ and Obexd stack.
77 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
78
79 %package service
80 Summary:    Bluetooth Service daemon
81 Group:      Network & Connectivity/Bluetooth
82 Requires:   %{name} = %{version}-%{release}
83
84 %description service
85 This package is Bluetooth Service daemon to manage BT services.
86
87 %package core
88 Summary:    Bluetooth Core daemon
89 Group:      Network & Connectivity/Bluetooth
90 Requires:   %{name} = %{version}-%{release}
91
92 %description core
93 This package is Bluetooth core daemon to manage activation / deactivation.
94
95 %package test
96 Summary:    Bluetooth test application
97 Group:      Network & Connectivity/Bluetooth
98 Requires:   %{name} = %{version}-%{release}
99
100 %description test
101 This package is Bluetooth test application.
102
103 %prep
104 %setup -q
105 cp %{SOURCE1001} .
106
107
108 %build
109 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
110 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
111 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
112
113 %if "%{?profile}" == "mobile"
114 echo mobile
115 export CFLAGS="$CFLAGS -DTIZEN_NETWORK_TETHERING_ENABLE -DTIZEN_BT_FLIGHTMODE_ENABLED"
116 %endif
117
118 %if "%{?profile}" == "wearable"
119 echo wearable
120 export CFLAGS="$CFLAGS -DTIZEN_WEARABLE"
121 %endif
122
123 %if "%{?profile}" == "tv"
124 echo tv
125 export CFLAGS="$CFLAGS -DUSB_BLUETOOTH -DTIZEN_TV"
126 %endif
127
128 %ifarch x86_64
129 export CFLAGS="$CFLAGS -Wall -g -fvisibility=hidden -fPIC"
130 export LDFLAGS="$CFLAGS -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
131 %else
132 export CFLAGS="$CFLAGS -fpie -DRFCOMM_DIRECT "
133 export LDFLAGS="$CFLAGS -Wl,--rpath=/usr/lib -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
134 %endif
135
136 %ifarch aarch64
137 export CFLAGS="$CFLAGS -D__TIZEN_MOBILE__ -DTIZEN_TELEPHONY_ENABLED"
138 %endif
139
140 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
141 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
142 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
143 %if %{with bluetooth_frwk_libnotify}
144         -DLIBNOTIFY_SUPPORT=On \
145 %else
146         -DLIBNOTIFY_SUPPORT=Off \
147 %endif
148 %if %{with bluetooth_frwk_libnotification}
149         -DLIBNOTIFICATION_SUPPORT=On
150 %else
151         -DLIBNOTIFICATION_SUPPORT=Off
152 %endif
153
154 make
155
156 %cmake \
157 %if "%{?profile}" == "wearable"
158         -DTIZEN_WEARABLE=YES \
159 %else
160         -DTIZEN_WEARABLE=NO \
161 %endif
162 %if "%{?profile}" == "common"
163         -DTIZEN_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-devel
173
174 mkdir -p %{buildroot}%{_unitdir_user}
175 install -m 0644 bt-service/bluetooth-frwk-service.service %{buildroot}%{_unitdir_user}
176
177 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
178 mkdir -p %{buildroot}%{_datadir}/icons/default
179 install -m 0644 %{SOURCE1002} %{buildroot}%{_datadir}/icons/default/bt-icon.png
180 %endif
181
182 # On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
183 %if "%{profile}"=="ivi"
184 sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service
185 %endif
186
187
188 %post
189 /sbin/ldconfig
190 %if "%{?profile}" == "wearable"
191 vconftool set -f -t int db/bluetooth/status "1" -g 6520
192 %endif
193 %if "%{?profile}" == "mobile"
194 vconftool set -f -t int db/bluetooth/status "0" -g 6520
195 %endif
196 %if "%{?profile}" == "common"
197 vconftool set -f -t int db/bluetooth/status "0" -g 6520
198 %endif
199
200 vconftool set -f -t int db/bluetooth/status "0" -s User
201 vconftool set -f -t int db/bluetooth/lestatus "0" -s User
202 vconftool set -f -t int file/private/bt-core/flight_mode_deactivated "0" -s User
203 vconftool set -f -t int file/private/bt-core/powersaving_mode_deactivated "0" -s User
204 vconftool set -f -t int file/private/bt-service/bt_off_due_to_timeout "0" -s User
205 vconftool set -f -t string memory/bluetooth/sco_headset_name "" -g 6520 -i
206 vconftool set -f -t int memory/bluetooth/device "0" -g 6520 -i
207 vconftool set -f -t bool memory/bluetooth/btsco "0" -g 6520 -i
208 vconftool set -f -t bool memory/bluetooth/dutmode "0" -g 6520 -i
209
210
211 #%post service
212 #mkdir -p %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
213 #ln -sf %{_unitdir_user}/bluetooth-frwk.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
214
215 %postun -p /sbin/ldconfig
216
217 %files
218 %manifest %{name}.manifest
219 %defattr(-, root, root)
220 %{_libdir}/libbluetooth-api.so.*
221 %{_datadir}/license/bluetooth-frwk
222 #%{_libdir}/systemd/system/%{_servicedir}/bluetooth-frwk.service
223 #%{_libdir}/systemd/system/bluetooth-frwk.service
224
225 %files devel
226 %defattr(-, root, root)
227 %{_includedir}/bt-service/bluetooth-api.h
228 %{_includedir}/bt-service/bluetooth-hid-api.h
229 %{_includedir}/bt-service/bluetooth-audio-api.h
230 %{_includedir}/bt-service/bluetooth-telephony-api.h
231 %{_includedir}/bt-service/bluetooth-media-control.h
232 %{_includedir}/bt-service/bluetooth-scmst-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
242 %{_bindir}/bt-service
243 %{_unitdir_user}/bluetooth-frwk-service.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 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
255 %{_datadir}/icons/default/bt-icon.png
256 %endif
257
258 %files core
259 %manifest %{name}.manifest
260 %defattr(-, root, root)
261 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
262 %{_bindir}/bt-core
263 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
264
265 %files test
266 %manifest %{name}.manifest
267 %defattr(-, root, root)
268 %{_bindir}/bluetooth-frwk-test
269 %{_bindir}/bluetooth-gatt-test
270 %{_bindir}/bluetooth-advertising-test