2de005f8663bef36b89d386055eb0e65b0bb479a
[platform/core/connectivity/bluetooth-frwk.git] / packaging / bluetooth-frwk.spec
1 %bcond_with bluetooth_frwk_libnotify
2 %bcond_with bluetooth_frwk_libnotification
3 %bcond_with x
4
5 Name:       bluetooth-frwk
6 Summary:    Bluetooth framework for BlueZ and Obexd
7 Version:    0.2.55
8 Release:    0
9 Group:      Network & Connectivity/Bluetooth
10 License:    Apache-2.0
11 Source0:    %{name}-%{version}.tar.gz
12 Source1001: bluetooth-frwk.manifest
13 Source1002: bt-icon.png
14 URL:        https://review.tizen.org/git/?p=platform/core/connectivity/bluetooth-frwk.git;a=summary
15 Requires: dbus
16 Requires: bluetooth-tools
17 BuildRequires:  pkgconfig(aul)
18 BuildRequires:  pkgconfig(dbus-glib-1)
19 BuildRequires:  pkgconfig(dlog)
20 BuildRequires:  pkgconfig(glib-2.0)
21 %if %{with bluetooth_frwk_libnotify}
22 BuildRequires:  pkgconfig(libnotify)
23 BuildRequires:  pkgconfig(gdk-pixbuf-2.0)
24 BuildRequires:  pkgconfig(gtk+-3.0)
25 %elif %{without bluetooth_frwk_libnotification}
26 BuildRequires:  pkgconfig(syspopup-caller)
27 Requires:       syspopup
28 %endif
29 BuildRequires:  pkgconfig(vconf)
30 BuildRequires:  pkgconfig(libxml-2.0)
31 BuildRequires:  pkgconfig(dbus-1)
32 %if %{with x}
33 BuildRequires:  pkgconfig(utilX)
34 %endif
35 BuildRequires:  pkgconfig(capi-network-tethering)
36 BuildRequires:  pkgconfig(libprivilege-control)
37 BuildRequires:  pkgconfig(status)
38 BuildRequires:  pkgconfig(alarm-service)
39 BuildRequires:  pkgconfig(notification)
40 BuildRequires:  pkgconfig(security-server)
41 BuildRequires:  cmake
42 BuildRequires:  pkgconfig(libtzplatform-config)
43
44 Requires(post): /usr/bin/vconftool
45 Requires(post): /sbin/ldconfig
46 Requires(postun): /sbin/ldconfig
47
48 %description
49 Bluetooth framework for BlueZ and Obexd. This package is Bluetooth framework based on BlueZ and Obexd stack.
50  This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
51
52
53 %package devel
54 Summary:    Bluetooth framework for BlueZ and Obexd
55 Group:      Development/Libraries
56 Requires:   %{name} = %{version}-%{release}
57
58 %description devel
59 This package is development files for Bluetooth framework based on BlueZ and Obexd stack.
60 This package contains API set for BT GAP, BT SDP, and BT RFCOMM.
61
62 %package service
63 Summary:    Bluetooth Service daemon
64 Group:      Network & Connectivity/Bluetooth
65 Requires:   %{name} = %{version}-%{release}
66
67 %description service
68 This package is Bluetooth Service daemon to manage BT services.
69
70 %package core
71 Summary:    Bluetooth Core daemon
72 Group:      Network & Connectivity/Bluetooth
73 Requires:   %{name} = %{version}-%{release}
74 Requires:   connman
75
76 %description core
77 This package is Bluetooth core daemon to manage activation / deactivation.
78
79 %prep
80 %setup -q
81 cp %{SOURCE1001} .
82
83
84 %build
85
86 %ifarch x86_64
87 export CFLAGS="${CFLAGS}   -Wall -g -fvisibility=hidden -fPIC"
88 export LDFLAGS="${LDFLAGS} -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
89 %else
90 export CFLAGS="${CFLAGS} -fpie"
91 export LDFLAGS="${LDFLAGS} -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
92 %endif
93
94 %cmake . \
95 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
96 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
97 %if %{with bluetooth_frwk_libnotify}
98  -DLIBNOTIFY_SUPPORT=On \
99 %else
100  -DLIBNOTIFY_SUPPORT=Off \
101 %endif
102 %if %{with bluetooth_frwk_libnotification}
103  -DLIBNOTIFICATION_SUPPORT=On
104 %else
105  -DLIBNOTIFICATION_SUPPORT=Off
106 %endif
107
108 %__make
109
110 %install
111 rm -rf %{buildroot}
112 %make_install
113
114 mkdir -p %{buildroot}%{_unitdir_user}
115 install -m 0644 bt-service/bluetooth-frwk-service.service %{buildroot}%{_unitdir_user}
116
117 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
118 mkdir -p %{buildroot}%{_datadir}/icons/default
119 install -m 0644 %{SOURCE1002} %{buildroot}%{_datadir}/icons/default/bt-icon.png
120 %endif
121
122 # On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
123 %if "%{profile}"=="ivi"
124 sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service
125 %endif
126
127 %post
128 /sbin/ldconfig
129 vconftool set -f -t int db/bluetooth/status "0" -g 6520
130 vconftool set -f -t int file/private/bt-service/flight_mode_deactivated "0" -g 6520 -i
131 vconftool set -f -t string memory/bluetooth/sco_headset_name "" -g 6520 -i
132 vconftool set -f -t int memory/bluetooth/device "0" -g 6520 -i
133 vconftool set -f -t int memory/bluetooth/btsco "0" -g 6520 -i
134 # set 'User' smack label to vconf keys in order to allow bt-service to access them.
135 chsmack -a 'User' %TZ_SYS_CONFIG/db/bluetooth/status
136 chsmack -a 'User' %TZ_SYS_CONFIG/file/private/bt-service/flight_mode_deactivated
137 chsmack -a 'User' %TZ_SYS_CONFIG/memory_init/memory/bluetooth/sco_headset_name
138 chsmack -a 'User' %TZ_SYS_CONFIG/memory_init/memory/bluetooth/device
139 chsmack -a 'User' %TZ_SYS_CONFIG/memory_init/memory/bluetooth/btsco
140
141 %postun -p /sbin/ldconfig
142
143 %files
144 %manifest %{name}.manifest
145 %defattr(-, root, root)
146 %{_libdir}/libbluetooth-api.so.*
147
148 %files devel
149 %manifest %{name}.manifest
150 %defattr(-, root, root)
151 %{_includedir}/bt-service/bluetooth-api.h
152 %{_includedir}/bt-service/bluetooth-hid-api.h
153 %{_includedir}/bt-service/bluetooth-audio-api.h
154 %{_includedir}/bt-service/bluetooth-telephony-api.h
155 %{_includedir}/bt-service/bluetooth-media-control.h
156 %{_libdir}/pkgconfig/bluetooth-api.pc
157 %{_libdir}/libbluetooth-api.so
158
159 %files service
160 %manifest %{name}.manifest
161 %defattr(-, root, root)
162 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
163
164 %{_bindir}/bt-service
165 %{_unitdir_user}/bluetooth-frwk-service.service
166 %attr(0666,-,-) /opt/var/lib/bluetooth/auto-pair-blacklist
167 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
168 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
169 %{_datadir}/icons/default/bt-icon.png
170 %endif
171
172 %files core
173 %manifest %{name}.manifest
174 %defattr(-, root, root)
175 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
176 %{_bindir}/bt-core
177 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf