ba04c02b31eac445c445a40fa74e7e3f4d9f7665
[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.3.3
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
34 %if !%{defined build_type}
35 %define build_type RELEASE
36 %endif
37
38 %description
39 Provides daemon allowing user to grant or deny access to given privilege
40 for a client application, and a plugin for supporting custom
41 Cynara policy type "Ask user".
42
43 %package -n libaskuser-notification-common
44 Summary:    Askuser common library
45
46 %description -n libaskuser-notification-common
47 Askuser common library with common functionalities
48
49 %package devel
50 Requires: askuser-notification-client
51 Requires: capi-privacy-privilege-manager
52 Summary: Askuser notification protocol library development files
53
54 %description devel
55 Askuser notification protocol library development files
56
57 %package test
58 Summary: Tools for testing askuser-notification client and C API
59
60 %description test
61 Provides tests for checking the API provided by capi-privacy-privilege-manager
62 and askuser-notification-client
63
64 %package client
65 Summary: Askuser notification client library
66 Requires(post):   /sbin/ldconfig
67 Requires(postun): /sbin/ldconfig
68
69 %description client
70 Askuser notification client library allows to check if an application
71 has a particular privilege. It also allows an application to determine privacy
72 privileges. It communicates with the askuser-notification service. It is an
73 asynchronous API, therefore it can be integrated with any event loop mechanism.
74
75 %package -n capi-privacy-privilege-manager
76 Summary: Privacy Privilege Manager in TIZEN C API
77 Requires: askuser-notification-client
78 Requires(post):   /sbin/ldconfig
79 Requires(postun): /sbin/ldconfig
80
81 %description -n capi-privacy-privilege-manager
82 This CAPI allows an application to check if it has a given privilege.
83 Additionally, for privacy privileges, it provides an ability to determine
84 their statuses by displaying an appropriate pop-up dialog box. A user
85 can make a decision whether to give a privilege to an application or not.
86
87
88 %prep
89 %setup -q
90 cp -a %{SOURCE1001} .
91 cp -a %{SOURCE1002} .
92
93 %build
94 %if 0%{?sec_build_binary_debug_enable}
95 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
96 %endif
97
98 %if %{?build_type} == "DEBUG"
99 export CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
100 %endif
101
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 %post
122 %if %{with_systemd_daemon}
123 systemctl daemon-reload
124 %endif
125
126 systemctl restart cynara.service
127 if [ $1 = 2 ]; then
128     # update - workaround for ditry user-session service restart, only for platform development case
129     echo "WARNING: askuser-notification updated; to ensure system stability & proper operation, reboot your device"
130 fi
131
132 %preun
133
134 %postun
135 systemctl restart cynara.service
136
137 %post -n libaskuser-notification-common -p /sbin/ldconfig
138
139 %postun -n libaskuser-notification-common -p /sbin/ldconfig
140
141 %post client -p /sbin/ldconfig
142
143 %postun client -p /sbin/ldconfig
144
145 %post -n capi-privacy-privilege-manager -p /sbin/ldconfig
146
147 %postun -n capi-privacy-privilege-manager -p /sbin/ldconfig
148
149 %files -f %{name}.lang
150 %manifest default.manifest
151 %license LICENSE
152 %attr(755,root,root) /usr/bin/askuser-notification
153 %if %{with_systemd_daemon}
154 %{_unitdir_user}/askuser-notification.service
155 %{_unitdir_user}/askuser-notification-stream.socket
156 %{_unitdir_user}/sockets.target.wants
157 %endif
158 %{_datadir}/askuser-notification/res
159 %{_libdir}/cynara/plugin/service/*.so
160
161 %files -n libaskuser-notification-common
162 %manifest libaskuser-notification-common.manifest
163 %license LICENSE
164 %{_libdir}/libaskuser-notification-common.so*
165 %{_libdir}/libaskuser-notification.so.*
166
167 %files devel
168 %{_libdir}/pkgconfig/*.pc
169 %{_includedir}/askuser-notification-client/*.h
170 %{_includedir}/privacy-privilege-manager/*.h
171 %{_libdir}/*.so
172
173 %files test
174 %manifest default.manifest
175 %license LICENSE
176 %attr(755,root,root) %{_bindir}/askuser-notification-test
177 %attr(755,root,root) %{_bindir}/capi-privacy-privilege-manager-test
178
179 %files client
180 %manifest default.manifest
181 %license LICENSE
182 %attr(644,-,-) %{_libdir}/libaskuser-notification-client.so.*
183
184 %files -n capi-privacy-privilege-manager
185 %manifest default.manifest
186 %license LICENSE
187 %attr(644,-,-) %{_libdir}/libcapi-privacy-privilege-manager.so.*
188