Release version 0.5.6
[platform/core/security/askuser.git] / packaging / askuser-notification.spec
1 %if !%{defined with_systemd_daemon}
2 %define with_systemd_daemon 1
3 %endif
4
5 Name:       askuser-notification
6 Summary:    User daemon which shows popup with privilege request
7 Version:    0.5.6
8 Release:    1
9 Group:      Security/Access Control
10 License:    Apache-2.0
11 Source0:    %{name}-%{version}.tar.gz
12 Source1001:    default.manifest
13 Source1002:    libaskuser-notification-common.manifest
14 BuildRequires: cmake
15 BuildRequires: libwayland-egl
16 BuildRequires: gettext-tools
17 BuildRequires: pkgconfig(elementary)
18 %if %{with_systemd_daemon}
19 BuildRequires: pkgconfig(libsystemd)
20 %endif
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)
34
35 %if !%{defined build_type}
36 %define build_type RELEASE
37 %endif
38
39 %description
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".
43
44 %package -n libaskuser-notification-common
45 Summary:    Askuser common library
46
47 %description -n libaskuser-notification-common
48 Askuser common library with common functionalities
49
50 %package devel
51 Requires: askuser-notification-client
52 Requires: capi-privacy-privilege-manager
53 Summary: Askuser notification protocol library development files
54
55 %description devel
56 Askuser notification protocol library development files
57
58 %package test
59 Summary: Tools for testing askuser-notification client and C API
60
61 %description test
62 Provides tests for checking the API provided by capi-privacy-privilege-manager
63 and askuser-notification-client
64
65 %package client
66 Summary: Askuser notification client library
67 Requires(post):   /sbin/ldconfig
68 Requires(postun): /sbin/ldconfig
69
70 %description client
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.
75
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
81
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.
87
88
89 %prep
90 %setup -q
91
92 %build
93 %if 0%{?sec_build_binary_debug_enable}
94 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
95 %endif
96
97 %if %{?build_type} == "DEBUG"
98 export CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
99 %endif
100
101 export CXXFLAGS="$CXXFLAGS -Wno-implicit-fallthrough"
102 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
103
104 %cmake . \
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}
110
111 %install
112 rm -rf %{buildroot}
113 %make_install
114 %find_lang %{name}
115
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
119 %endif
120
121 cp -a %{SOURCE1001} %{SOURCE1002} %{buildroot}%{_datadir}/
122
123 %post
124 %if %{with_systemd_daemon}
125 systemctl daemon-reload
126 %endif
127
128 systemctl restart cynara.service
129 if [ $1 = 2 ]; then
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"
132 fi
133
134 %preun
135
136 %postun
137 systemctl restart cynara.service
138
139 %post -n libaskuser-notification-common -p /sbin/ldconfig
140
141 %postun -n libaskuser-notification-common -p /sbin/ldconfig
142
143 %post client -p /sbin/ldconfig
144
145 %postun client -p /sbin/ldconfig
146
147 %post -n capi-privacy-privilege-manager -p /sbin/ldconfig
148
149 %postun -n capi-privacy-privilege-manager -p /sbin/ldconfig
150
151 %files -f %{name}.lang
152 %manifest %{_datadir}/default.manifest
153 %license LICENSE
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
159 %endif
160 %{_datadir}/askuser-notification/res
161 %{_libdir}/cynara/plugin/service/*.so
162
163 %files -n libaskuser-notification-common
164 %manifest %{_datadir}/libaskuser-notification-common.manifest
165 %license LICENSE
166 %{_libdir}/libaskuser-notification-common.so*
167 %{_libdir}/libaskuser-notification.so.*
168
169 %files devel
170 %{_libdir}/pkgconfig/*.pc
171 %{_includedir}/askuser-notification-client/*.h
172 %{_includedir}/privacy-privilege-manager/*.h
173 %{_libdir}/*.so
174
175 %files test
176 %manifest %{_datadir}/default.manifest
177 %license LICENSE
178 %attr(755,root,root) %{_bindir}/askuser-notification-test
179 %attr(755,root,root) %{_bindir}/capi-privacy-privilege-manager-test
180
181 %files client
182 %manifest %{_datadir}/default.manifest
183 %license LICENSE
184 %attr(644,-,-) %{_libdir}/libaskuser-notification-client.so.*
185
186 %files -n capi-privacy-privilege-manager
187 %manifest %{_datadir}/default.manifest
188 %license LICENSE
189 %attr(644,-,-) %{_libdir}/libcapi-privacy-privilege-manager.so.*
190