Packaging: Use "_datadir" rpm macro instead of hardcoded paths
[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
52 %description -n security-manager-policy
53 Set of security rules that constitute security policy in the system
54
55 %prep
56 %setup -q
57 cp %{SOURCE1} .
58 cp %{SOURCE3} .
59
60 %build
61 %if 0%{?sec_build_binary_debug_enable}
62 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
63 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
64 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
65 %endif
66
67 export LDFLAGS+="-Wl,--rpath=%{_libdir}"
68
69 %cmake . -DVERSION=%{version} \
70         -DBIN_INSTALL_DIR=%{_bindir} \
71         -DDB_INSTALL_DIR=%{TZ_SYS_DB} \
72         -DSYSTEMD_INSTALL_DIR=%{_unitdir} \
73         -DCMAKE_BUILD_TYPE=%{?build_type:%build_type}%{!?build_type:RELEASE} \
74         -DCMAKE_VERBOSE_MAKEFILE=ON
75 make %{?jobs:-j%jobs}
76
77 %install
78 rm -rf %{buildroot}
79 mkdir -p %{buildroot}%{_datadir}/license
80 cp LICENSE %{buildroot}%{_datadir}/license/%{name}
81 cp LICENSE %{buildroot}%{_datadir}/license/libsecurity-manager-client
82 mkdir -p %{buildroot}/%{TZ_SYS_SMACK}
83 cp app-rules-template.smack %{buildroot}/%{TZ_SYS_SMACK}
84 mkdir -p %{buildroot}%{_datadir}/security-manager
85 cp -rf policy %{buildroot}%{_datadir}/security-manager
86 %make_install
87
88 mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
89 mkdir -p %{buildroot}/%{_unitdir}/sockets.target.wants
90 ln -s ../security-manager.service %{buildroot}/%{_unitdir}/multi-user.target.wants/security-manager.service
91 ln -s ../security-manager.socket %{buildroot}/%{_unitdir}/sockets.target.wants/security-manager.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 %files -n security-manager
129 %manifest security-manager.manifest
130 %defattr(-,root,root,-)
131 %attr(755,root,root) %{_bindir}/security-manager
132 %attr(755,root,root) %{_bindir}/security-manager-cmd
133 %attr(755,root,root) %{_sysconfdir}/gumd/useradd.d/50_security-manager-add.post
134 %attr(755,root,root) %{_sysconfdir}/gumd/userdel.d/50_security-manager-remove.pre
135
136 %{_libdir}/libsecurity-manager-commons.so.*
137 %attr(-,root,root) %{_unitdir}/multi-user.target.wants/security-manager.service
138 %attr(-,root,root) %{_unitdir}/security-manager.service
139 %attr(-,root,root) %{_unitdir}/security-manager.target
140 %attr(-,root,root) %{_unitdir}/sockets.target.wants/security-manager.socket
141 %attr(-,root,root) %{_unitdir}/security-manager.socket
142 %attr(-,root,root) %{TZ_SYS_SMACK}/app-rules-template.smack
143 %config(noreplace) %attr(0600,root,root) %{TZ_SYS_DB}/.security-manager.db
144 %config(noreplace) %attr(0600,root,root) %{TZ_SYS_DB}/.security-manager.db-journal
145 %{_datadir}/license/%{name}
146
147 %files -n libsecurity-manager-client
148 %manifest libsecurity-manager-client.manifest
149 %defattr(-,root,root,-)
150 %{_libdir}/libsecurity-manager-client.so.*
151 %{_datadir}/license/libsecurity-manager-client
152
153 %files -n libsecurity-manager-client-devel
154 %manifest %{name}.manifest
155 %defattr(-,root,root,-)
156 %{_libdir}/libsecurity-manager-client.so
157 %{_libdir}/libsecurity-manager-commons.so
158 %{_includedir}/security-manager/security-manager.h
159 %{_libdir}/pkgconfig/security-manager.pc
160
161 %files -n security-manager-policy
162 %manifest %{name}.manifest
163 %{_datadir}/security-manager/policy