Add API stub for setting policies
[platform/core/security/security-manager.git] / packaging / security-manager.spec
1 Name:       security-manager
2 Summary:    Security manager and utilities
3 Version:    0.2.0
4 Release:    1
5 Group:      Security/Service
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1:    security-manager.manifest
9 Source3:    libsecurity-manager-client.manifest
10 Requires(post): smack
11 BuildRequires: cmake
12 BuildRequires: zip
13 BuildRequires: libattr-devel
14 BuildRequires: pkgconfig(libsmack)
15 BuildRequires: pkgconfig(libcap)
16 BuildRequires: pkgconfig(libsystemd-daemon)
17 BuildRequires: pkgconfig(libsystemd-journal)
18 BuildRequires: pkgconfig(libtzplatform-config)
19 BuildRequires: pkgconfig(sqlite3)
20 BuildRequires: pkgconfig(db-util)
21 BuildRequires: pkgconfig(cynara-admin)
22 BuildRequires: pkgconfig(cynara-client)
23 BuildRequires: boost-devel
24 %{?systemd_requires}
25
26 %description
27 Tizen security manager and utilities
28
29 %package -n libsecurity-manager-client
30 Summary:    Security manager (client)
31 Group:      Security/Libraries
32 Requires:   security-manager = %{version}-%{release}
33 Requires(post): /sbin/ldconfig
34 Requires(postun): /sbin/ldconfig
35
36 %description -n libsecurity-manager-client
37 Tizen Security manager client library
38
39 %package -n libsecurity-manager-client-devel
40 Summary:    Security manager (client-devel)
41 Group:      Security/Development
42 Requires:   libsecurity-manager-client = %{version}-%{release}
43
44 %description -n libsecurity-manager-client-devel
45 Development files needed for using the security manager client
46
47 %package -n security-manager-policy
48 Summary:    Security manager policy
49 Group:      Security/Development
50 Requires:   security-manager = %{version}-%{release}
51 Requires:   cyad
52
53 %description -n security-manager-policy
54 Set of security rules that constitute security policy in the system
55
56 %prep
57 %setup -q
58 cp %{SOURCE1} .
59 cp %{SOURCE3} .
60
61 %build
62 %if 0%{?sec_build_binary_debug_enable}
63 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
64 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
65 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
66 %endif
67
68 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
69
70 %cmake . -DVERSION=%{version} \
71         -DBIN_INSTALL_DIR=%{_bindir} \
72         -DDB_INSTALL_DIR=%{TZ_SYS_DB} \
73         -DSYSTEMD_INSTALL_DIR=%{_unitdir} \
74         -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
75         -DCMAKE_VERBOSE_MAKEFILE=ON
76 make %{?jobs:-j%jobs}
77
78 %install
79 rm -rf %{buildroot}
80 mkdir -p %{buildroot}%{_datadir}/license
81 cp LICENSE %{buildroot}%{_datadir}/license/%{name}
82 cp LICENSE %{buildroot}%{_datadir}/license/libsecurity-manager-client
83 mkdir -p %{buildroot}/%{TZ_SYS_SMACK}
84 cp app-rules-template.smack %{buildroot}/%{TZ_SYS_SMACK}
85 %make_install
86
87 mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
88 mkdir -p %{buildroot}/%{_unitdir}/sockets.target.wants
89 ln -s ../security-manager.service %{buildroot}/%{_unitdir}/multi-user.target.wants/security-manager.service
90 ln -s ../security-manager.socket %{buildroot}/%{_unitdir}/sockets.target.wants/security-manager.socket
91
92 %clean
93 rm -rf %{buildroot}
94
95 %post
96 /sbin/ldconfig
97 systemctl daemon-reload
98 if [ $1 = 1 ]; then
99     # installation
100     systemctl start security-manager.service
101 fi
102
103 if [ $1 = 2 ]; then
104     # update
105     systemctl restart security-manager.service
106 fi
107 chsmack -a System %{TZ_SYS_DB}/.security-manager.db
108 chsmack -a System %{TZ_SYS_DB}/.security-manager.db-journal
109
110 %preun
111 if [ $1 = 0 ]; then
112     # unistall
113     systemctl stop security-manager.service
114 fi
115
116 %postun
117 /sbin/ldconfig
118 if [ $1 = 0 ]; then
119     # unistall
120     systemctl daemon-reload
121 fi
122
123 %post -n libsecurity-manager-client -p /sbin/ldconfig
124
125 %postun -n libsecurity-manager-client -p /sbin/ldconfig
126
127 %post policy
128 %{_bindir}/security-manager-policy-reload
129
130 %files -n security-manager
131 %manifest security-manager.manifest
132 %defattr(-,root,root,-)
133 %attr(755,root,root) %{_bindir}/security-manager
134 %attr(755,root,root) %{_bindir}/security-manager-cmd
135 %attr(755,root,root) %{_sysconfdir}/gumd/useradd.d/50_security-manager-add.post
136 %attr(755,root,root) %{_sysconfdir}/gumd/userdel.d/50_security-manager-remove.pre
137
138 %{_libdir}/libsecurity-manager-commons.so.*
139 %attr(-,root,root) %{_unitdir}/multi-user.target.wants/security-manager.service
140 %attr(-,root,root) %{_unitdir}/security-manager.service
141 %attr(-,root,root) %{_unitdir}/security-manager.target
142 %attr(-,root,root) %{_unitdir}/sockets.target.wants/security-manager.socket
143 %attr(-,root,root) %{_unitdir}/security-manager.socket
144 %attr(-,root,root) %{TZ_SYS_SMACK}/app-rules-template.smack
145 %config(noreplace) %attr(0600,root,root) %{TZ_SYS_DB}/.security-manager.db
146 %config(noreplace) %attr(0600,root,root) %{TZ_SYS_DB}/.security-manager.db-journal
147 %{_datadir}/license/%{name}
148
149 %files -n libsecurity-manager-client
150 %manifest libsecurity-manager-client.manifest
151 %defattr(-,root,root,-)
152 %{_libdir}/libsecurity-manager-client.so.*
153 %{_datadir}/license/libsecurity-manager-client
154
155 %files -n libsecurity-manager-client-devel
156 %manifest %{name}.manifest
157 %defattr(-,root,root,-)
158 %{_libdir}/libsecurity-manager-client.so
159 %{_libdir}/libsecurity-manager-commons.so
160 %{_includedir}/security-manager/security-manager.h
161 %{_libdir}/pkgconfig/security-manager.pc
162
163 %files -n security-manager-policy
164 %manifest %{name}.manifest
165 %{_datadir}/security-manager/policy
166 %attr(755,root,root) %{_bindir}/security-manager-policy-reload