06147370d51e3ccbd07c16ebe543c7be3c5f25c4
[platform/core/appfw/slp-pkgmgr.git] / packaging / pkgmgr.spec
1 Name:       pkgmgr
2 Summary:    Packager Manager client library package
3 Version:    0.20.6
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(aul)
24 BuildRequires:  pkgconfig(glib-2.0)
25 BuildRequires:  pkgconfig(gio-2.0)
26 BuildRequires:  pkgconfig(dlog)
27 BuildRequires:  pkgconfig(bundle)
28 BuildRequires:  pkgconfig(pkgmgr-info)
29 BuildRequires:  pkgconfig(iniparser)
30 BuildRequires:  pkgconfig(libtzplatform-config)
31 BuildRequires:  pkgconfig(xdgmime)
32 BuildRequires:  pkgconfig(db-util)
33 BuildRequires:  pkgconfig(libsmack)
34 BuildRequires:  pkgconfig(libsystemd)
35 BuildRequires:  pkgconfig(minizip)
36 BuildRequires:  pkgconfig(rpc-port)
37 BuildRequires:  pkgconfig(capi-appfw-event)
38 BuildRequires:  pkgconfig(gmock)
39 BuildRequires:  pkgmgr-info-parser-devel
40 BuildRequires:  pkgmgr-info-parser
41 BuildRequires:  fdupes
42
43 %description
44 Packager Manager client library package for packaging
45
46 %package client
47 Summary:    Package Manager client library develpoment package
48 Requires:   %{name} = %{version}-%{release}
49 Requires: shared-mime-info
50 Requires(post): pkgmgr
51
52 %description client
53 Package Manager client library develpoment package for packaging
54
55
56 %package client-devel
57 Summary:    Package Manager client library develpoment package
58 Requires:   %{name} = %{version}-%{release}
59 Requires: pkgmgr-client
60
61 %description client-devel
62 Package Manager client library develpoment package for packaging
63
64
65 %package installer
66 Summary:    Library for installer frontend/backend
67 Requires:   %{name} = %{version}-%{release}
68
69 %description installer
70 Library for installer frontend/backend for packaging.
71
72
73 %package installer-devel
74 Summary:    Dev package for libpkgmgr-installer
75 Requires:   %{name} = %{version}-%{release}
76 Requires:   pkgmgr-installer = %{version}-%{release}
77
78 %description installer-devel
79 Dev package for libpkgmgr-installer for packaging.
80
81
82 %package types-devel
83 Summary:    Package Manager manifest parser develpoment package
84 Requires:   %{name} = %{version}-%{release}
85
86 %description types-devel
87 Package Manager client types develpoment package for packaging
88
89 %prep
90 %setup -q
91 cp %{SOURCE1001} %{SOURCE1002} %{SOURCE1003} %{SOURCE1004} %{SOURCE1005} %{SOURCE1006} .
92
93 %build
94 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
95 %cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
96
97 %__make %{?_smp_mflags}
98
99 %install
100 %make_install
101
102 rm -f  %{buildroot}%{_bindir}/pkgmgr_backend_sample
103 rm -f %{buildroot}%{_libdir}/libpkgmgr_backend_lib_sample.so
104 rm -f %{buildroot}%{_libdir}/libpkgmgr_parser_lib_sample.so
105
106 mkdir -p %{buildroot}%{_tmpfilesdir}/
107 install -m 0644 %{SOURCE1007} %{buildroot}%{_tmpfilesdir}/pkgmgr.conf
108
109 mkdir -p %{buildroot}%{_unitdir_user}/sockets.target.wants
110 install -m 0644 %{SOURCE1008} %{buildroot}%{_unitdir_user}/pkgmgr-installer-signal-agent.service
111 install -m 0644 %{SOURCE1009} %{buildroot}%{_unitdir_user}/pkgmgr-installer-signal-agent.socket
112 ln -sf ../pkgmgr-installer-signal-agent.socket %{buildroot}%{_unitdir_user}/sockets.target.wants/pkgmgr-installer-signal-agent.socket
113
114 mkdir -p %{buildroot}%{_sysconfdir}/package-manager/backend
115 mkdir -p %{buildroot}%{_sysconfdir}/package-manager/backendlib
116 mkdir -p %{buildroot}%{_sysconfdir}/opt/upgrade
117
118 touch  %{buildroot}%{_sysconfdir}/package-manager/backend/default
119 chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/default
120 touch  %{buildroot}%{_sysconfdir}/package-manager/backend/pkgmgr
121 chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/pkgmgr
122 touch  %{buildroot}%{_sysconfdir}/package-manager/backend/pkgtool
123 chmod 755 %{buildroot}%{_sysconfdir}/package-manager/backend/pkgtool
124
125 %check
126 export LD_LIBRARY_PATH=../../client
127 ctest -V
128
129 %fdupes %{buildroot}
130
131 %post
132 /sbin/ldconfig
133
134 # Create tizenglobalapp user needed for global installation
135 useradd %TZ_SYS_GLOBALAPP_USER -r -c "system user for common applications" -g root -u 201
136
137 # change owner of TZ_USER_APP (/etc/skel/apps_rw) to tizenglobalapp
138 saveHOME="$HOME"
139 HOME="%{_sysconfdir}/skel"
140 . "%{_sysconfdir}/tizen-platform.conf"
141
142 chown %TZ_SYS_GLOBALAPP_USER:root $TZ_USER_APP
143
144 # add .shared and .shared_tmp at skel
145 mkdir -p $TZ_USER_APP/.shared
146 mkdir -p $TZ_USER_APP/.shared_tmp
147 chsmack -a User::Home $TZ_USER_APP/.shared
148 chsmack -a User::Home $TZ_USER_APP/.shared_tmp
149 chmod 755 $TZ_USER_APP/.shared
150 chmod 755 $TZ_USER_APP/.shared_tmp
151
152 HOME="$saveHOME"
153
154 %post -n pkgmgr-client -p /sbin/ldconfig
155
156 %postun -n pkgmgr-client -p /sbin/ldconfig
157
158 %post -n pkgmgr-installer -p /sbin/ldconfig
159
160 %postun -n pkgmgr-installer -p /sbin/ldconfig
161
162 %posttrans
163 if [ ! -f %{TZ_SYS_DB}/.pkgmgr_parser.db ]; then
164   pkg_initdb --ro
165   install_preload_pkg
166   if [ -f /tmp/.preload_install_error ]; then
167     if [ ! -d /tmp/.postscript/error ]; then
168       mkdir -p /tmp/.postscript/error
169     fi
170     echo "preload install failed" > /tmp/.postscript/error/%{name}_error
171   else
172     pkgcmd -l --global 1>&2
173   fi
174   %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
175 fi
176 rm -rf %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
177
178 %files
179 %manifest %{name}.manifest
180 %defattr(-,root,root,-)
181 %dir %{_sysconfdir}/package-manager/backend
182 %dir %{_sysconfdir}/package-manager/backendlib
183 %{_sysconfdir}/package-manager/backend/*
184 %{_tmpfilesdir}/pkgmgr.conf
185
186 %files client
187 %manifest %{name}-client.manifest
188 %license LICENSE
189 %defattr(-,root,root,-)
190 %dir %{_sysconfdir}/package-manager
191 %config %{_sysconfdir}/package-manager/pkg_path.conf
192 %{_libdir}/libpkgmgr-client.so.*
193
194 %files client-devel
195 %manifest %{name}-client-devel.manifest
196 %defattr(-,root,root,-)
197 %{_includedir}/*.h
198 %{_libdir}/pkgconfig/pkgmgr.pc
199 %{_libdir}/libpkgmgr-client.so
200
201 %files installer
202 %manifest %{name}-installer.manifest
203 %license LICENSE
204 %defattr(-,root,root,-)
205 %{_libdir}/libpkgmgr_installer.so.*
206 %{_bindir}/pkgmgr-installer-signal-agent
207 %{_unitdir_user}/pkgmgr-installer-signal-agent.service
208 %{_unitdir_user}/pkgmgr-installer-signal-agent.socket
209 %{_unitdir_user}/sockets.target.wants/pkgmgr-installer-signal-agent.socket
210
211 %files installer-devel
212 %manifest %{name}-installer-devel.manifest
213 %defattr(-,root,root,-)
214 %dir %{_includedir}/pkgmgr
215 %{_includedir}/package-manager.h
216 %{_includedir}/pkgmgr/*.h
217 %{_libdir}/pkgconfig/pkgmgr-installer.pc
218 %{_libdir}/libpkgmgr_installer.so
219
220 %files types-devel
221 %manifest %{name}-types-devel.manifest
222 %defattr(-,root,root,-)
223 %{_includedir}/package-manager-*.h
224 %{_libdir}/pkgconfig/pkgmgr-types.pc