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