3.0 specific patch: change the "/usr/lib" path for 64bit build
[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 -D__TIZEN_MOBILE__ -DTIZEN_TELEPHONY_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=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
134 %endif
135
136 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
137 -DCMAKE_LIB_DIR=%{_libdir} \
138 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
139 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
140 %if %{with bluetooth_frwk_libnotify}
141         -DLIBNOTIFY_SUPPORT=On \
142 %else
143         -DLIBNOTIFY_SUPPORT=Off \
144 %endif
145 %if %{with bluetooth_frwk_libnotification}
146         -DLIBNOTIFICATION_SUPPORT=On
147 %else
148         -DLIBNOTIFICATION_SUPPORT=Off
149 %endif
150
151 make
152
153 %cmake \
154 %if "%{?profile}" == "wearable"
155         -DTIZEN_WEARABLE=YES \
156 %else
157         -DTIZEN_WEARABLE=NO \
158 %endif
159 %if "%{?profile}" == "common"
160         -DTIZEN_WEARABLE=NO \
161 %endif
162
163 %install
164 rm -rf %{buildroot}
165 %make_install
166
167 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk
168 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-service
169 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-devel
170
171 mkdir -p %{buildroot}%{_libdir}/systemd/user
172 install -m 0644 bt-service/bluetooth-frwk-service.service %{buildroot}%{_libdir}/systemd/user
173
174 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
175 mkdir -p %{buildroot}%{_datadir}/icons/default
176 install -m 0644 %{SOURCE1002} %{buildroot}%{_datadir}/icons/default/bt-icon.png
177 %endif
178
179 # On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
180 %if "%{profile}"=="ivi"
181 sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service
182 %endif
183
184
185 %post
186 /sbin/ldconfig
187 %if "%{?profile}" == "wearable"
188 vconftool set -f -t int db/bluetooth/status "1" -g 6520
189 %endif
190 %if "%{?profile}" == "mobile"
191 vconftool set -f -t int db/bluetooth/status "0" -g 6520
192 %endif
193 %if "%{?profile}" == "common"
194 vconftool set -f -t int db/bluetooth/status "0" -g 6520
195 %endif
196
197 vconftool set -f -t int db/bluetooth/status "0" -s User
198 vconftool set -f -t int db/bluetooth/lestatus "0" -s User
199 vconftool set -f -t int file/private/bt-core/flight_mode_deactivated "0" -s User
200 vconftool set -f -t int file/private/bt-core/powersaving_mode_deactivated "0" -s User
201 vconftool set -f -t int file/private/bt-service/bt_off_due_to_timeout "0" -s User
202 vconftool set -f -t string memory/bluetooth/sco_headset_name "" -g 6520 -i
203 vconftool set -f -t int memory/bluetooth/device "0" -g 6520 -i
204 vconftool set -f -t bool memory/bluetooth/btsco "0" -g 6520 -i
205 vconftool set -f -t bool memory/bluetooth/dutmode "0" -g 6520 -i
206
207
208 #%post service
209 #mkdir -p %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
210 #ln -sf %{_libdir}/systemd/user/bluetooth-frwk.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
211
212 %postun -p /sbin/ldconfig
213
214 %files
215 %manifest %{name}.manifest
216 %defattr(-, root, root)
217 %{_libdir}/libbluetooth-api.so.*
218 %{_datadir}/license/bluetooth-frwk
219 #%{_libdir}/systemd/system/%{_servicedir}/bluetooth-frwk.service
220 #%{_libdir}/systemd/system/bluetooth-frwk.service
221
222 %files devel
223 %defattr(-, root, root)
224 %{_includedir}/bt-service/bluetooth-api.h
225 %{_includedir}/bt-service/bluetooth-hid-api.h
226 %{_includedir}/bt-service/bluetooth-audio-api.h
227 %{_includedir}/bt-service/bluetooth-telephony-api.h
228 %{_includedir}/bt-service/bluetooth-media-control.h
229 %{_includedir}/bt-service/bluetooth-scmst-api.h
230 %{_libdir}/pkgconfig/bluetooth-api.pc
231 %{_libdir}/libbluetooth-api.so
232 %{_datadir}/license/bluetooth-frwk-devel
233
234 %files service
235 %manifest %{name}.manifest
236 %defattr(-, root, root)
237 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
238
239 %{_bindir}/bt-service
240 %{_libdir}/systemd/user/bluetooth-frwk-service.service
241 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
242 %{_bindir}/bluetooth-frwk-test
243 #%{_bindir}/bluetooth-gatt-test
244 #%{_bindir}/bluetooth-advertising-test
245 %{_varlibdir}/bluetooth
246 %{_prefix}/etc/bluetooth
247 #%attr(0666,-,-) %{_varlibdir}/bluetooth/auto-pair-blacklist
248 #%attr(0666,-,-) %{_prefix}/etc/bluetooth/stack_info
249 #%{_dumpdir}/bluetooth_log_dump.sh
250 %{_datadir}/license/bluetooth-frwk-service
251 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
252 %{_datadir}/icons/default/bt-icon.png
253 %endif
254
255 %files core
256 %manifest %{name}.manifest
257 %defattr(-, root, root)
258 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
259 %{_bindir}/bt-core
260 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
261
262 %files test
263 %manifest %{name}.manifest
264 %defattr(-, root, root)
265 %{_bindir}/bluetooth-frwk-test
266 %{_bindir}/bluetooth-gatt-test
267 %{_bindir}/bluetooth-advertising-test