1 %if !%{defined with_systemd_daemon}
2 %define with_systemd_daemon 1
5 Name: askuser-notification
6 Summary: User daemon which shows popup with privilege request
9 Group: Security/Access Control
11 Source0: %{name}-%{version}.tar.gz
12 Source1001: default.manifest
13 Source1002: libaskuser-notification-common.manifest
15 BuildRequires: libwayland-egl
16 BuildRequires: gettext-tools
17 BuildRequires: pkgconfig(elementary)
18 %if %{with_systemd_daemon}
19 BuildRequires: pkgconfig(libsystemd)
21 BuildRequires: pkgconfig(cynara-plugin)
22 BuildRequires: pkgconfig(pkgmgr-info)
23 BuildRequires: pkgconfig(security-privilege-manager)
24 BuildRequires: pkgconfig(security-manager)
25 BuildRequires: pkgconfig(glib-2.0)
26 BuildRequires: pkgconfig(vconf)
27 BuildRequires: pkgconfig(capi-base-common)
28 BuildRequires: pkgconfig(capi-ui-efl-util)
29 BuildRequires: pkgconfig(capi-system-info)
30 BuildRequires: pkgconfig(libsmack)
31 BuildRequires: pkgconfig(aul)
32 BuildRequires: edje-bin
33 BuildRequires: pkgconfig(efl-extension)
35 %if !%{defined build_type}
36 %define build_type RELEASE
40 Provides daemon allowing user to grant or deny access to given privilege
41 for a client application, and a plugin for supporting custom
42 Cynara policy type "Ask user".
44 %package -n libaskuser-notification-common
45 Summary: Askuser common library
47 %description -n libaskuser-notification-common
48 Askuser common library with common functionalities
51 Requires: askuser-notification-client
52 Requires: capi-privacy-privilege-manager
53 Summary: Askuser notification protocol library development files
56 Askuser notification protocol library development files
59 Summary: Tools for testing askuser-notification client and C API
62 Provides tests for checking the API provided by capi-privacy-privilege-manager
63 and askuser-notification-client
66 Summary: Askuser notification client library
67 Requires(post): /sbin/ldconfig
68 Requires(postun): /sbin/ldconfig
71 Askuser notification client library allows to check if an application
72 has a particular privilege. It also allows an application to determine privacy
73 privileges. It communicates with the askuser-notification service. It is an
74 asynchronous API, therefore it can be integrated with any event loop mechanism.
76 %package -n capi-privacy-privilege-manager
77 Summary: Privacy Privilege Manager in TIZEN C API
78 Requires: askuser-notification-client
79 Requires(post): /sbin/ldconfig
80 Requires(postun): /sbin/ldconfig
82 %description -n capi-privacy-privilege-manager
83 This CAPI allows an application to check if it has a given privilege.
84 Additionally, for privacy privileges, it provides an ability to determine
85 their statuses by displaying an appropriate pop-up dialog box. A user
86 can make a decision whether to give a privilege to an application or not.
93 %if 0%{?sec_build_binary_debug_enable}
94 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
97 %if %{?build_type} == "DEBUG"
98 export CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
101 export CXXFLAGS="$CXXFLAGS -Wno-implicit-fallthrough"
102 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
105 -DCMAKE_BUILD_TYPE=%{?build_type} \
106 -DBUILD_WITH_SYSTEMD_DAEMON=%{?with_systemd_daemon} \
107 -DCMAKE_VERBOSE_MAKEFILE=ON \
108 -DRES_DIR="/usr/share/askuser-notification/res"
109 make %{?jobs:-j%jobs}
116 %if %{with_systemd_daemon}
117 mkdir -p %{buildroot}/%{_unitdir_user}/sockets.target.wants
118 ln -s ../askuser-notification-stream.socket %{buildroot}/%{_unitdir_user}/sockets.target.wants/askuser-notification-stream.socket
121 cp -a %{SOURCE1001} %{SOURCE1002} %{buildroot}%{_datadir}/
124 %if %{with_systemd_daemon}
125 systemctl daemon-reload
128 systemctl restart cynara.service
130 # update - workaround for ditry user-session service restart, only for platform development case
131 echo "WARNING: askuser-notification updated; to ensure system stability & proper operation, reboot your device"
137 systemctl restart cynara.service
139 %post -n libaskuser-notification-common -p /sbin/ldconfig
141 %postun -n libaskuser-notification-common -p /sbin/ldconfig
143 %post client -p /sbin/ldconfig
145 %postun client -p /sbin/ldconfig
147 %post -n capi-privacy-privilege-manager -p /sbin/ldconfig
149 %postun -n capi-privacy-privilege-manager -p /sbin/ldconfig
151 %files -f %{name}.lang
152 %manifest %{_datadir}/default.manifest
154 %attr(755,root,root) /usr/bin/askuser-notification
155 %if %{with_systemd_daemon}
156 %{_unitdir_user}/askuser-notification.service
157 %{_unitdir_user}/askuser-notification-stream.socket
158 %{_unitdir_user}/sockets.target.wants
160 %{_datadir}/askuser-notification/res
161 %{_libdir}/cynara/plugin/service/*.so
163 %files -n libaskuser-notification-common
164 %manifest %{_datadir}/libaskuser-notification-common.manifest
166 %{_libdir}/libaskuser-notification-common.so*
167 %{_libdir}/libaskuser-notification.so.*
170 %{_libdir}/pkgconfig/*.pc
171 %{_includedir}/askuser-notification-client/*.h
172 %{_includedir}/privacy-privilege-manager/*.h
176 %manifest %{_datadir}/default.manifest
178 %attr(755,root,root) %{_bindir}/askuser-notification-test
179 %attr(755,root,root) %{_bindir}/capi-privacy-privilege-manager-test
182 %manifest %{_datadir}/default.manifest
184 %attr(644,-,-) %{_libdir}/libaskuser-notification-client.so.*
186 %files -n capi-privacy-privilege-manager
187 %manifest %{_datadir}/default.manifest
189 %attr(644,-,-) %{_libdir}/libcapi-privacy-privilege-manager.so.*