Remove app event dependency
[platform/core/appfw/slp-pkgmgr.git] / packaging / pkgmgr.spec
1 Name:       pkgmgr
2 Summary:    Packager Manager client library package
3 Version:    0.20.1
4 Release:    0
5 Group:      Application Framework/Package Management
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1001: %{name}.manifest
9 Source1002: %{name}-client.manifest
10 Source1003: %{name}-client-devel.manifest
11 Source1004: %{name}-installer.manifest
12 Source1005: %{name}-installer-devel.manifest
13 Source1006: %{name}-types-devel.manifest
14 Source1007: %{name}.conf
15 Source1008: %{name}-installer-signal-agent.service
16 Source1009: %{name}-installer-signal-agent.socket
17 Requires(post): /usr/sbin/useradd
18 Requires(post): capi-system-info
19
20 BuildRequires:  cmake
21 BuildRequires:  unzip
22 BuildRequires:  gettext-tools
23 BuildRequires:  pkgconfig(glib-2.0)
24 BuildRequires:  pkgconfig(gio-2.0)
25 BuildRequires:  pkgconfig(dlog)
26 BuildRequires:  pkgconfig(bundle)
27 BuildRequires:  pkgconfig(pkgmgr-info)
28 BuildRequires:  pkgconfig(iniparser)
29 BuildRequires:  pkgconfig(libtzplatform-config)
30 BuildRequires:  pkgconfig(xdgmime)
31 BuildRequires:  pkgconfig(db-util)
32 BuildRequires:  pkgconfig(libsmack)
33 BuildRequires:  pkgconfig(libsystemd)
34 BuildRequires:  pkgconfig(minizip)
35 BuildRequires:  pkgconfig(rpc-port)
36 BuildRequires:  pkgconfig(gmock)
37 BuildRequires:  pkgmgr-info-parser-devel
38 BuildRequires:  pkgmgr-info-parser
39 BuildRequires:  fdupes
40
41 %if 0%{?gcov:1}
42 BuildRequires:  lcov
43 %endif
44
45 %description
46 Packager Manager client library package for packaging
47
48 %if 0%{?gcov:1}
49 %package gcov
50 Summary:    Packager Manager library (gcov)
51 Group:      Application Framework/Testing
52
53 %description gcov
54 Packager Manager library gcov objects
55 %endif
56
57 %package client
58 Summary:    Package Manager client library develpoment package
59 Requires:   %{name} = %{version}-%{release}
60 Requires: shared-mime-info
61 Requires(post): pkgmgr
62
63 %description client
64 Package Manager client library develpoment package for packaging
65
66
67 %package client-devel
68 Summary:    Package Manager client library develpoment package
69 Requires:   %{name} = %{version}-%{release}
70 Requires: pkgmgr-client
71
72 %description client-devel
73 Package Manager client library develpoment package for packaging
74
75
76 %package installer
77 Summary:    Library for installer frontend/backend
78 Requires:   %{name} = %{version}-%{release}
79
80 %description installer
81 Library for installer frontend/backend for packaging.
82
83
84 %package installer-devel
85 Summary:    Dev package for libpkgmgr-installer
86 Requires:   %{name} = %{version}-%{release}
87 Requires:   pkgmgr-installer = %{version}-%{release}
88
89 %description installer-devel
90 Dev package for libpkgmgr-installer for packaging.
91
92
93 %package types-devel
94 Summary:    Package Manager manifest parser develpoment package
95 Requires:   %{name} = %{version}-%{release}
96
97 %description types-devel
98 Package Manager client types develpoment package for packaging
99
100 %prep
101 %setup -q
102 cp %{SOURCE1001} %{SOURCE1002} %{SOURCE1003} %{SOURCE1004} %{SOURCE1005} %{SOURCE1006} .
103
104 %build
105 %if 0%{?gcov:1}
106 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
107 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
108 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
109 export LDFLAGS+=" -lgcov"
110 %endif
111 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
112 %cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
113
114 %__make %{?_smp_mflags}
115
116 %if 0%{?gcov:1}
117 mkdir -p gcov-obj
118 find . -name '*.gcno' -exec cp '{}' gcov-obj ';'
119 %endif
120
121 %install
122 %make_install
123
124 %if 0%{?gcov:1}
125 mkdir -p %{buildroot}%{_datadir}/gcov/obj/%{name}
126 install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj/%{name}
127 %endif
128
129 rm -f  %{buildroot}%{_bindir}/pkgmgr_backend_sample
130 rm -f %{buildroot}%{_libdir}/libpkgmgr_backend_lib_sample.so
131 rm -f %{buildroot}%{_libdir}/libpkgmgr_parser_lib_sample.so
132
133 mkdir -p %{buildroot}%{_tmpfilesdir}/
134 install -m 0644 %{SOURCE1007} %{buildroot}%{_tmpfilesdir}/pkgmgr.conf
135
136 mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
137 install -m 0644 %{SOURCE1008} %{buildroot}%{_unitdir_user}/pkgmgr-installer-signal-agent.service
138 install -m 0644 %{SOURCE1009} %{buildroot}%{_unitdir_user}/pkgmgr-installer-signal-agent.socket
139 ln -sf ../pkgmgr-installer-signal-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/pkgmgr-installer-signal-agent.socket
140
141 mkdir -p %{buildroot}%{_sysconfdir}/package-manager/backend
142 mkdir -p %{buildroot}%{_sysconfdir}/package-manager/backendlib
143 mkdir -p %{buildroot}%{_sysconfdir}/opt/upgrade
144
145 touch  %{buildroot}%{_sysconfdir}/package-manager/backend/default
146 chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/default
147 touch  %{buildroot}%{_sysconfdir}/package-manager/backend/pkgmgr
148 chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/pkgmgr
149 touch  %{buildroot}%{_sysconfdir}/package-manager/backend/pkgtool
150 chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/pkgtool
151
152 %check
153 export LD_LIBRARY_PATH=../../client
154 ##ctest -V
155
156 %if 0%{?gcov:1}
157 lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
158 genhtml %{name}.info -o out --legend --show-details
159 %endif
160
161 %fdupes %{buildroot}
162
163 %post
164 /sbin/ldconfig
165
166 # Create tizenglobalapp user needed for global installation
167 useradd %TZ_SYS_GLOBALAPP_USER -r -c "system user for common applications" -g root -u 201
168
169 # change owner of TZ_USER_APP (/etc/skel/apps_rw) to tizenglobalapp
170 saveHOME="$HOME"
171 HOME="%{_sysconfdir}/skel"
172 . "%{_sysconfdir}/tizen-platform.conf"
173
174 chown %TZ_SYS_GLOBALAPP_USER:root $TZ_USER_APP
175
176 # add .shared and .shared_tmp at skel
177 mkdir -p $TZ_USER_APP/.shared
178 mkdir -p $TZ_USER_APP/.shared_tmp
179 chsmack -a User::Home $TZ_USER_APP/.shared
180 chsmack -a User::Home $TZ_USER_APP/.shared_tmp
181 chmod 755 $TZ_USER_APP/.shared
182 chmod 755 $TZ_USER_APP/.shared_tmp
183
184 HOME="$saveHOME"
185
186 %post -n pkgmgr-client -p /sbin/ldconfig
187
188 %postun -n pkgmgr-client -p /sbin/ldconfig
189
190 %post -n pkgmgr-installer -p /sbin/ldconfig
191
192 %postun -n pkgmgr-installer -p /sbin/ldconfig
193
194 %posttrans
195 if [ ! -f %{TZ_SYS_DB}/.pkgmgr_parser.db ]; then
196   pkg_initdb --ro
197   install_preload_pkg
198   if [ -f /tmp/.preload_install_error ]; then
199     if [ ! -d /tmp/.postscript/error ]; then
200       mkdir -p /tmp/.postscript/error
201     fi
202     echo "preload install failed" > /tmp/.postscript/error/%{name}_error
203   else
204     pkgcmd -l --global 1>&2
205   fi
206   %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
207 fi
208 rm -rf %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
209
210 %files
211 %manifest %{name}.manifest
212 %defattr(-,root,root,-)
213 %dir %{_sysconfdir}/package-manager/backend
214 %dir %{_sysconfdir}/package-manager/backendlib
215 %{_sysconfdir}/package-manager/backend/*
216 %{_tmpfilesdir}/pkgmgr.conf
217
218 %files client
219 %manifest %{name}-client.manifest
220 %license LICENSE
221 %defattr(-,root,root,-)
222 %dir %{_sysconfdir}/package-manager
223 %config %{_sysconfdir}/package-manager/pkg_path.conf
224 %{_libdir}/libpkgmgr-client.so.*
225
226 %files client-devel
227 %manifest %{name}-client-devel.manifest
228 %defattr(-,root,root,-)
229 %{_includedir}/*.h
230 %{_libdir}/pkgconfig/pkgmgr.pc
231 %{_libdir}/libpkgmgr-client.so
232
233 %files installer
234 %manifest %{name}-installer.manifest
235 %license LICENSE
236 %defattr(-,root,root,-)
237 %{_libdir}/libpkgmgr_installer.so.*
238 %{_bindir}/pkgmgr-installer-signal-agent
239 %{_unitdir_user}/pkgmgr-installer-signal-agent.service
240 %{_unitdir_user}/pkgmgr-installer-signal-agent.socket
241 %{_unitdir_user}/sockets.target.wants/pkgmgr-installer-signal-agent.socket
242
243 %files installer-devel
244 %manifest %{name}-installer-devel.manifest
245 %defattr(-,root,root,-)
246 %dir %{_includedir}/pkgmgr
247 %{_includedir}/package-manager.h
248 %{_includedir}/pkgmgr/*.h
249 %{_libdir}/pkgconfig/pkgmgr-installer.pc
250 %{_libdir}/libpkgmgr_installer.so
251
252 %files types-devel
253 %manifest %{name}-types-devel.manifest
254 %defattr(-,root,root,-)
255 %{_includedir}/package-manager-*.h
256 %{_libdir}/pkgconfig/pkgmgr-types.pc
257
258 %if 0%{?gcov:1}
259 %files gcov
260 %{_datadir}/gcov/*
261 %endif