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