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