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