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