Fix build error for x86_64
[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 %else
131 export CFLAGS="$CFLAGS -fpie"
132 export LDFLAGS="$CFLAGS -pie"
133 %endif
134
135 export CFLAGS="$CFLAGS -DRFCOMM_DIRECT"
136 export LDFLAGS="$CFLAGS -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
137
138 cmake . -DCMAKE_INSTALL_PREFIX=/usr \
139 -DCMAKE_LIB_DIR=%{_libdir} \
140 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
141 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
142 %if %{with bluetooth_frwk_libnotify}
143         -DLIBNOTIFY_SUPPORT=On \
144 %else
145         -DLIBNOTIFY_SUPPORT=Off \
146 %endif
147 %if %{with bluetooth_frwk_libnotification}
148         -DLIBNOTIFICATION_SUPPORT=On
149 %else
150         -DLIBNOTIFICATION_SUPPORT=Off
151 %endif
152
153 make
154
155 %cmake \
156 %if "%{?profile}" == "wearable"
157         -DTIZEN_WEARABLE=YES \
158 %else
159         -DTIZEN_WEARABLE=NO \
160 %endif
161 %if "%{?profile}" == "common"
162         -DTIZEN_WEARABLE=NO \
163 %endif
164
165 %install
166 rm -rf %{buildroot}
167 %make_install
168
169 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk
170 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-service
171 install -D -m 0644 LICENSE %{buildroot}%{_datadir}/license/bluetooth-frwk-devel
172
173 mkdir -p %{buildroot}%{_libdir}/systemd/user
174 install -m 0644 bt-service/bluetooth-frwk-service.service %{buildroot}%{_libdir}/systemd/user
175
176 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
177 mkdir -p %{buildroot}%{_datadir}/icons/default
178 install -m 0644 %{SOURCE1002} %{buildroot}%{_datadir}/icons/default/bt-icon.png
179 %endif
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 #%{_libdir}/systemd/system/%{_servicedir}/bluetooth-frwk.service
222 #%{_libdir}/systemd/system/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 %{_libdir}/pkgconfig/bluetooth-api.pc
233 %{_libdir}/libbluetooth-api.so
234 %{_datadir}/license/bluetooth-frwk-devel
235
236 %files service
237 %manifest %{name}.manifest
238 %defattr(-, root, root)
239 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
240
241 %{_bindir}/bt-service
242 %{_libdir}/systemd/user/bluetooth-frwk-service.service
243 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
244 %{_bindir}/bluetooth-frwk-test
245 #%{_bindir}/bluetooth-gatt-test
246 #%{_bindir}/bluetooth-advertising-test
247 %{_varlibdir}/bluetooth
248 %{_prefix}/etc/bluetooth
249 #%attr(0666,-,-) %{_varlibdir}/bluetooth/auto-pair-blacklist
250 #%attr(0666,-,-) %{_prefix}/etc/bluetooth/stack_info
251 #%{_dumpdir}/bluetooth_log_dump.sh
252 %{_datadir}/license/bluetooth-frwk-service
253 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
254 %{_datadir}/icons/default/bt-icon.png
255 %endif
256
257 %files core
258 %manifest %{name}.manifest
259 %defattr(-, root, root)
260 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
261 %{_bindir}/bt-core
262 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf
263
264 %files test
265 %manifest %{name}.manifest
266 %defattr(-, root, root)
267 %{_bindir}/bluetooth-frwk-test
268 %{_bindir}/bluetooth-gatt-test
269 %{_bindir}/bluetooth-advertising-test