Release version 0.22.38
[platform/core/appfw/pkgmgr-info.git] / packaging / pkgmgr-info.spec
1 Name:       pkgmgr-info
2 Summary:    Packager Manager infomation api for package
3 Version:    0.22.38
4 Release:    1
5 Group:      Application Framework/Package Management
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1:    %{name}.service
9 Source2:    %{name}.socket
10 Source1001: pkgmgr-info.manifest
11 BuildRequires: cmake
12 BuildRequires: pkgconfig(dlog)
13 BuildRequires: pkgconfig(glib-2.0)
14 BuildRequires: pkgconfig(gio-2.0)
15 BuildRequires: pkgconfig(gio-unix-2.0)
16 BuildRequires: pkgconfig(vconf)
17 BuildRequires: pkgconfig(sqlite3)
18 BuildRequires: pkgconfig(libxml-2.0)
19 BuildRequires: pkgconfig(libtzplatform-config)
20 BuildRequires: pkgconfig(libsmack)
21 BuildRequires: pkgconfig(bundle)
22 BuildRequires: pkgconfig(capi-system-info)
23 BuildRequires: pkgconfig(minizip)
24 BuildRequires: pkgconfig(libsystemd)
25 BuildRequires: pkgconfig(gmock)
26 BuildRequires: pkgconfig(parcel)
27 BuildRequires: pkgconfig(cynara-client-async)
28 BuildRequires: pkgconfig(cynara-session)
29 BuildRequires: pkgconfig(cynara-creds-socket)
30 BuildRequires: pkgconfig(capi-system-resource)
31
32 %if 0%{?gcov:1}
33 BuildRequires:  lcov
34 BuildRequires:  zip
35 %endif
36
37 %description
38 Packager Manager infomation api for packaging
39
40 %package devel
41 Summary:    Packager Manager infomation api (devel)
42 Requires:   %{name} = %{version}-%{release}
43 %description devel
44 Packager Manager infomation api (devel)
45
46 %package parser
47 Summary:    Library for manifest parser
48 Requires:   %{name} = %{version}-%{release}
49
50 %description parser
51 Library for manifest parser
52
53 %package parser-devel
54 Summary:    Dev package for libpkgmgr-parser
55 Requires:   %{name}-parser = %{version}-%{release}
56 Requires:       pkgconfig(libtzplatform-config)
57
58 %description parser-devel
59 Dev package for libpkgmgr-parser
60
61 %package common
62 Summary:    Library for pkgmgr-info-server
63 Requires:   %{name} = %{version}-%{release}
64 Requires:   pkgconfig(libsystemd)
65
66 %description common
67 Library for pkgmgr-info-server
68
69 %package common-devel
70 Summary:    Dev package for libpkgmgr_common
71 Requires:   %{name}-common = %{version}-%{release}
72
73 %description common-devel
74 Dev package for libpkgmgr_common
75
76 %if 0%{?asan} != 1
77 %package unittests
78 Summary:    %{name} unittests binary
79
80 %description unittests
81 unittest binary
82 %endif
83
84 %prep
85 %setup -q
86 cp %{SOURCE1001} .
87
88 %build
89 %if 0%{?gcov:1}
90 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
91 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
92 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
93 export LDFLAGS+=" -lgcov"
94 %endif
95
96 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
97 %cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DUNITDIR=%{_unitdir} \
98 %if 0%{?asan} != 1
99         -DASAN_ENABLED=FALSE
100 %else
101         -DASAN_ENABLED=TRUE
102 %endif
103
104 %__make %{?jobs:-j%jobs}
105
106 %check
107 export LD_LIBRARY_PATH=../../src/:../../src/server:../../parser
108 ctest -V
109 %if 0%{?gcov:1}
110 lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
111 genhtml %{name}.info -o out --legend --show-details
112 %endif
113
114 %install
115 %make_install
116
117 %if 0%{?gcov:1}
118 builddir=$(basename $PWD)
119 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
120 mkdir -p "$gcno_obj_dir"
121 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
122 %endif
123
124 %if 0%{?asan} != 1
125 cat << EOF > run-unittest.sh
126 #!/bin/sh
127
128 setup() {
129     echo "setup start"
130 }
131
132 test_main() {
133     echo "test_main start"
134     /usr/bin/pkgmgr-info-unit-test
135 }
136
137 teardown() {
138     echo "teardown start"
139 }
140
141 main() {
142     setup
143     test_main
144     teardown
145 }
146
147 main "\$*"
148 EOF
149
150 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
151 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/
152 %endif
153
154 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
155 ln -sf ../pkg-db-recovery.service %{buildroot}%{_unitdir}/basic.target.wants/pkg-db-recovery.service
156
157 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
158 mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
159 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/%{name}.service
160 install -m 0644 %SOURCE2 %{buildroot}%{_unitdir}/%{name}.socket
161 ln -s ../%{name}.service %{buildroot}%{_unitdir}/basic.target.wants/%{name}.service
162 ln -sf ../%{name}.socket %{buildroot}%{_unitdir}/sockets.target.wants/%{name}.socket
163
164 %post
165 /sbin/ldconfig
166
167 %postun -p /sbin/ldconfig
168
169 %post -n pkgmgr-info-parser -p /sbin/ldconfig
170
171 %postun  -n pkgmgr-info-parser -p /sbin/ldconfig
172
173 %files
174 %manifest %{name}.manifest
175 %license LICENSE
176 %defattr(-,root,root,-)
177 %{_libdir}/libpkgmgr-info.so.*
178 %{_libdir}/libpkgmgr-info-server.so.*
179 %{_bindir}/pkg-db-recovery
180 %{_bindir}/pkg-db-creator
181 %{_bindir}/pkginfo-server
182 %{_unitdir}/pkg-db-recovery.service
183 %{_unitdir}/basic.target.wants/pkg-db-recovery.service
184 %{_includedir}/pkgmgr-client/*.hh
185 %{_unitdir}/%{name}.service
186 %{_unitdir}/basic.target.wants/%{name}.service
187 %{_unitdir}/%{name}.socket
188 %{_unitdir}/sockets.target.wants/%{name}.socket
189
190 %files devel
191 %manifest %{name}.manifest
192 %defattr(-,root,root,-)
193 %{_includedir}/*.h
194 %{_libdir}/pkgconfig/pkgmgr-info.pc
195 %{_libdir}/pkgconfig/pkgmgr-info-server.pc
196 %{_libdir}/libpkgmgr-info.so
197 %{_libdir}/libpkgmgr-info-server.so
198 %{_includedir}/pkgmgr-client/*.hh
199 %{_includedir}/pkgmgr-common/*.hh
200 %{_includedir}/pkgmgr-server/*.h
201
202 %files parser
203 %manifest %{name}.manifest
204 %license LICENSE
205 %defattr(-,root,root,-)
206 %{_libdir}/libpkgmgr_parser.so.*
207 %config %{_sysconfdir}/package-manager/preload/manifest.xsd
208 %config %{_sysconfdir}/package-manager/preload/xml.xsd
209 %config %{_sysconfdir}/package-manager/parserlib/metadata/mdparser_list.txt
210 %config %{_sysconfdir}/package-manager/parserlib/category/category_parser_list.txt
211 %config %{_sysconfdir}/package-manager/parserlib/tag_parser_list.txt
212 %config %{_sysconfdir}/package-manager/pkg_db_version.txt
213
214 %files parser-devel
215 %manifest %{name}.manifest
216 %defattr(-,root,root,-)
217 %{_includedir}/pkgmgr/*.h
218 %{_libdir}/pkgconfig/pkgmgr-parser.pc
219 %{_libdir}/libpkgmgr_parser.so
220
221 #################################################
222 # pkgmgr-info-gcov
223 #################################################
224 %if 0%{?gcov:1}
225 %package gcov
226 Summary:    Packager Manager information api (gcov)
227 Group:      Application Framework/Testing
228
229 %description gcov
230 Packager Manager information api gcov objects
231 %endif
232
233 %if 0%{?gcov:1}
234 %files gcov
235 %defattr(-,root,root,-)
236 %{_datadir}/gcov/obj/*
237 %endif
238
239 %if 0%{?asan} != 1
240 %files unittests
241 %{_bindir}/pkgmgr-info-unit-test
242 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
243 %endif