launch bt-service as 'guest' user instead of 'app'
[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:    2
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): vconf
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
75 %description core
76 This package is Bluetooth core daemon to manage activation / deactivation.
77
78 %prep
79 %setup -q
80 cp %{SOURCE1001} .
81
82
83 %build
84
85 %ifarch x86_64
86 export CFLAGS+="   -Wall -g -fvisibility=hidden -fPIC"
87 export LDFLAGS+=" -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs"
88 %else
89 export CFLAGS+=" -fpie"
90 export LDFLAGS+=" -Wl,--rpath=%{_libdir} -Wl,--as-needed -Wl,--unresolved-symbols=ignore-in-shared-libs -pie"
91 %endif
92
93 %cmake . \
94 -DTZ_SYS_USER_GROUP=%TZ_SYS_USER_GROUP \
95 -DTZ_SYS_DEFAULT_USER=%TZ_SYS_DEFAULT_USER \
96 %if %{with bluetooth_frwk_libnotify}
97  -DLIBNOTIFY_SUPPORT=On \
98 %else
99  -DLIBNOTIFY_SUPPORT=Off \
100 %endif
101 %if %{with bluetooth_frwk_libnotification}
102  -DLIBNOTIFICATION_SUPPORT=On
103 %else
104  -DLIBNOTIFICATION_SUPPORT=Off
105 %endif
106
107 make
108
109 %install
110 rm -rf %{buildroot}
111 %make_install
112 mkdir -p %{buildroot}%{_sysconfdir}/rc.d/rc3.d/
113 mkdir -p %{buildroot}%{_sysconfdir}/rc.d/rc5.d/
114 ln -s %{_sysconfdir}/rc.d/init.d/bluetooth-frwk-service %{buildroot}%{_sysconfdir}/rc.d/rc3.d/S80bluetooth-frwk-service
115 ln -s %{_sysconfdir}/rc.d/init.d/bluetooth-frwk-service %{buildroot}%{_sysconfdir}/rc.d/rc5.d/S80bluetooth-frwk-service
116
117 mkdir -p %{buildroot}%{_unitdir_user}
118 mkdir -p %{buildroot}%{_unitdir_user}/tizen-middleware.target.wants
119 install -m 0644 bt-service/bluetooth-frwk-service.service %{buildroot}%{_unitdir_user}
120 ln -s ../bluetooth-frwk-service.service %{buildroot}%{_unitdir_user}/tizen-middleware.target.wants/bluetooth-frwk-service.service
121
122 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
123 mkdir -p %{buildroot}%{_datadir}/icons/default
124 install -m 0644 %{SOURCE1002} %{buildroot}%{_datadir}/icons/default/bt-icon.png
125 %endif
126
127 # On IVI bt-service needs to be run as 'app' even if there is a 'guest' user.
128 %if "%{profile}"=="ivi"
129 sed -i 's/%TZ_SYS_DEFAULT_USER/app/' %{buildroot}%{_datadir}/dbus-1/system-services/org.projectx.bt.service
130 %endif
131
132 %post
133 /sbin/ldconfig
134 vconftool set -tf int db/bluetooth/status "0" -g 6520
135 vconftool set -tf int file/private/bt-service/flight_mode_deactivated "0" -g 6520 -i
136 vconftool set -tf string memory/bluetooth/sco_headset_name "" -g 6520 -i
137 vconftool set -tf int memory/bluetooth/device "0" -g 6520 -i
138 vconftool set -tf int memory/bluetooth/btsco "0" -g 6520 -i
139
140 %postun -p /sbin/ldconfig
141
142 %files
143 %manifest %{name}.manifest
144 %defattr(-, root, root)
145 %{_libdir}/libbluetooth-api.so.*
146
147 %files devel
148 %manifest %{name}.manifest
149 %defattr(-, root, root)
150 %{_includedir}/bt-service/bluetooth-api.h
151 %{_includedir}/bt-service/bluetooth-hid-api.h
152 %{_includedir}/bt-service/bluetooth-audio-api.h
153 %{_includedir}/bt-service/bluetooth-telephony-api.h
154 %{_includedir}/bt-service/bluetooth-media-control.h
155 %{_libdir}/pkgconfig/bluetooth-api.pc
156 %{_libdir}/libbluetooth-api.so
157
158 %files service
159 %manifest %{name}.manifest
160 %defattr(-, root, root)
161 %{_datadir}/dbus-1/system-services/org.projectx.bt.service
162 %{_sysconfdir}/rc.d/init.d/bluetooth-frwk-service
163 %{_sysconfdir}/rc.d/rc3.d/S80bluetooth-frwk-service
164 %{_sysconfdir}/rc.d/rc5.d/S80bluetooth-frwk-service
165
166 %{_bindir}/bt-service
167 %{_unitdir_user}/tizen-middleware.target.wants/bluetooth-frwk-service.service
168 %{_unitdir_user}/bluetooth-frwk-service.service
169 %attr(0666,-,-) /opt/var/lib/bluetooth/auto-pair-blacklist
170 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-service.conf
171 %if %{with bluetooth_frwk_libnotify} || %{with bluetooth_frwk_libnotification}
172 %{_datadir}/icons/default/bt-icon.png
173 %endif
174
175 %files core
176 %manifest %{name}.manifest
177 %defattr(-, root, root)
178 %{_datadir}/dbus-1/system-services/org.projectx.bt_core.service
179 %{_bindir}/bt-core
180 %{_sysconfdir}/dbus-1/system.d/bluetooth-frwk-core.conf