Add build feature for applications
[platform/core/security/krate.git] / packaging / krate.spec
1 Name:    krate
2 Version: 0.0.1
3 Release: 0
4 License: Apache-2.0
5 Source0: file://%{name}-%{version}.tar.gz
6 Summary: Tizen Krate Manager
7 Group:   Security/Other
8 BuildRequires: gcc
9 BuildRequires: cmake
10 BuildRequires: pam-devel
11 BuildRequires: gettext-tools
12 BuildRequires: pkgconfig(glib-2.0)
13 BuildRequires: pkgconfig(libxml-2.0)
14 BuildRequires: pkgconfig(bundle)
15 BuildRequires: pkgconfig(pkgmgr)
16 BuildRequires: pkgconfig(pkgmgr-info)
17 BuildRequires: pkgconfig(aul)
18 BuildRequires: pkgconfig(appsvc)
19 BuildRequires: pkgconfig(libtzplatform-config)
20 BuildRequires: pkgconfig(security-privilege-manager)
21 BuildRequires: pkgconfig(capi-base-common)
22 BuildRequires: pkgconfig(capi-system-info)
23 BuildRequires: pkgconfig(capi-system-system-settings)
24 BuildRequires: pkgconfig(notification)
25 BuildRequires: pkgconfig(key-manager)
26 BuildRequires: pkgconfig(auth-fw-admin)
27
28 %description
29 The krate package provides a daemon which is responsible for managing each of
30 krates.
31
32 %files
33 %manifest krate.manifest
34 %defattr(644,root,root,755)
35 #%attr(700,root,root) %{_sbindir}/zone-volume-manager
36 #%attr(755,root,root) %{_bindir}/krate
37 %{_unitdir}/krate.service
38 #%{_unitdir}/multi-user.target.wants/krate.service
39
40 %prep
41 %setup -q
42
43 %build
44 %{!?build_type:%define build_type "RELEASE"}
45
46 %if %{build_type} == "DEBUG" || %{build_type} == "PROFILING" || %{build_type} == "CCOV"
47         CFLAGS="$CFLAGS -Wp,-U_FORTIFY_SOURCE"
48         CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
49 %endif
50
51 %{!?profile:%define profile "mobile"}
52
53 %cmake . -DVERSION=%{version} \
54          -DCMAKE_BUILD_TYPE=%{build_type} \
55          -DTIZEN_PROFILE_NAME=%{profile} \
56          -DRUN_DIR=%{TZ_SYS_RUN} \
57          -DBIN_DIR=%{TZ_SYS_BIN} \
58          -DHOME_DIR=%{TZ_SYS_HOME} \
59          -DSYSTEMD_UNIT_DIR=%{_unitdir} \
60          -DPAMD_DIR=/etc/pam.d \
61          -DCONF_DIR=%{TZ_SYS_ETC}/krate \
62          -DAPP_INSTALL_PREFIX="%{TZ_SYS_RO_APP}" \
63          -DAPP_ICON_DIR_PREFIX="%{TZ_SYS_RO_ICONS}" \
64          -DAPP_SHARE_PACKAGES_DIR="%{TZ_SYS_RO_PACKAGES}"
65
66 make %{?jobs:-j%jobs}
67
68 %install
69 %make_install
70 #mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
71 #ln -s ../krate.service %{buildroot}/%{_unitdir}/multi-user.target.wants/krate.service
72
73 %clean
74 rm -rf %{buildroot}
75
76 %preun
77
78 %postun
79
80 %if 0
81 ## Krate Client Package ########################################################
82 %package -n libkrate
83 Summary: Tizen Krate Client library
84 Group: Development/Libraries
85 BuildRequires: pkgconfig(capi-appfw-application)
86 BuildRequires: pkgconfig(capi-appfw-package-manager)
87 BuildRequires: pkgconfig(libtzplatform-config)
88 Requires: %{name} = %{version}-%{release}
89 Requires(post): /sbin/ldconfig
90 Requires(postun): /sbin/ldconfig
91
92 %description -n libkrate
93 The libkrate package contains the libraries needed to control inside of the krate.
94
95 %post -n libkrate -p /sbin/ldconfig
96
97 %postun -n libkrate -p /sbin/ldconfig
98
99 %files -n libkrate
100 %manifest krate.manifest
101 %defattr(644,root,root,755)
102 %attr(755,root,root) %{_libdir}/libkrate.so.%{version}
103 %{_libdir}/libkrate.so.0
104
105 ## Devel Package ##############################################################
106 %package -n libkrate-devel
107 Summary: Libraries and header files for krate client development
108 Group: Development/Libraries
109 Requires: libkrate = %{version}-%{release}
110
111 %description -n libkrate-devel
112 The libkrate-devel package includes the libraries and header files necessary for
113 developing the krate client program.
114
115 %files -n libkrate-devel
116 %manifest krate.manifest
117 %defattr(644,root,root,755)
118 %{_libdir}/libkrate.so
119 %{_includedir}/krate
120 %{_libdir}/pkgconfig/krate.pc
121
122 ## PAM Plugin Package ########################################################
123 %package -n dpm-pam-krate
124 Summary: PAM Plugin for zone policy in device policy manager
125 Group: Development/Libraries
126 Requires: systemd
127
128 %description -n dpm-pam-krate
129 PAM Plugin for zone policy in device policy manager and CLI tool
130
131 %post -n dpm-pam-krate
132 mv /etc/pam.d/systemd-user /etc/pam.d/systemd-user.keep
133 cp /etc/pam.d/systemd-user-zone /etc/pam.d/systemd-user
134
135 %postun -n dpm-pam-krate
136 mv /etc/pam.d/systemd-user.keep /etc/pam.d/systemd-user
137
138 %files -n dpm-pam-krate
139 %manifest krate.manifest
140 %defattr(600,root,root,700)
141 %attr(700,root,root) %{_libdir}/security/pam_*.so
142 %attr(700,root,root) %{_sbindir}/krate-admin-cli
143 %attr(700,root,root) %dir %{TZ_SYS_ETC}/krate
144 %attr(600,root,root) %config %{TZ_SYS_ETC}/krate/owner.xml
145 %attr(700,root,root) /etc/gumd/useradd.d/20_pam-krate-add.post
146 %attr(700,root,root) /etc/gumd/userdel.d/20_pam-krate-remove.post
147 %attr(644,root,root) %{TZ_SYS_RO_ICONS}/krate/indicator_icon.png
148 %attr(644,root,root) %{TZ_SYS_RO_ICONS}/krate/noti_list_sub_icon.png
149 %config /etc/pam.d/*
150
151 %endif
152
153 ## Begin of mobile feature ###################################################
154 %if "%{profile}" == "mobile"
155
156 ## Krate Setup Wizard Package #################################################
157 %package -n org.tizen.krate-setup-wizard
158 Summary: Tizen Krate setup wizard Interface
159 Group: Security/Other
160 BuildRequires: pkgconfig(efl-extension)
161 BuildRequires: pkgconfig(elementary)
162 BuildRequires: pkgconfig(capi-appfw-application)
163 BuildRequires: pkgconfig(evas)
164 BuildRequires: pkgconfig(notification)
165 BuildRequires: pkgconfig(zone)
166
167 %description -n org.tizen.krate-setup-wizard
168 Tizen Krate setup wizard interface for zone
169
170 %define setup_home %{TZ_SYS_RO_APP}/org.tizen.krate-setup-wizard
171
172 %files -n org.tizen.krate-setup-wizard
173 %defattr(-,root,root,-)
174 %manifest tools/apps/setup-wizard/org.tizen.krate-setup-wizard.manifest
175 %{setup_home}/bin/*
176 %{setup_home}/res/*
177 %{TZ_SYS_RO_PACKAGES}/org.tizen.krate-setup-wizard.xml
178
179 ## Kaskit package #####################################################
180 %package -n org.tizen.kaskit
181 Summary: Tizen Krate launcher Interface
182 Group: Security/Other
183 BuildRequires: pkgconfig(efl-extension)
184 BuildRequires: pkgconfig(elementary)
185 BuildRequires: pkgconfig(evas)
186 BuildRequires: pkgconfig(capi-appfw-application)
187 BuildRequires: pkgconfig(capi-appfw-package-manager)
188 BuildRequires: pkgconfig(capi-appfw-app-manager)
189 BuildRequires: pkgconfig(badge)
190
191 %description -n org.tizen.kaskit
192 Tizen Krate launcher interface
193
194 %define launcher_home %{TZ_SYS_RO_APP}/org.tizen.kaskit
195
196 %files -n org.tizen.kaskit
197 %defattr(-,root,root,-)
198 %manifest tools/apps/kaskit/org.tizen.kaskit.manifest
199 %{launcher_home}/bin/*
200 %{launcher_home}/res/*
201 %{TZ_SYS_RO_PACKAGES}/org.tizen.kaskit.xml
202
203 ## Keyguard package #####################################################
204 %package -n org.tizen.keyguard
205 Summary: Tizen Krate keyguard Interface
206 Group: Security/Other
207 BuildRequires: pkgconfig(efl-extension)
208 BuildRequires: pkgconfig(elementary)
209 BuildRequires: pkgconfig(capi-appfw-application)
210 BuildRequires: pkgconfig(evas)
211 BuildRequires: pkgconfig(capi-ui-efl-util)
212 BuildRequires: pkgconfig(auth-fw)
213 BuildRequires: pkgconfig(shortcut)
214
215 %description -n org.tizen.keyguard
216 Tizen Krate keyguard interface
217
218 %define keyguard_home %{TZ_SYS_RO_APP}/org.tizen.keyguard
219
220 %files -n org.tizen.keyguard
221 %defattr(-,root,root,-)
222 %manifest tools/apps/keyguard/org.tizen.keyguard.manifest
223 %{keyguard_home}/bin/*
224 %{keyguard_home}/res/*
225 %{TZ_SYS_RO_PACKAGES}/org.tizen.keyguard.xml
226
227 %endif