Release version 0.21.12
[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.21.12
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 %prep
76 %setup -q
77 cp %{SOURCE1001} .
78
79 %build
80 %if 0%{?gcov:1}
81 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
82 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
83 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
84 export LDFLAGS+=" -lgcov"
85 %endif
86
87 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
88 %cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DUNITDIR=%{_unitdir}
89
90 %__make %{?jobs:-j%jobs}
91
92 %if 0%{?gcov:1}
93 mkdir -p gcov-obj
94 find . -name '*.gcno' ! -path './gcov-obj/*' -exec cp '{}' gcov-obj ';'
95 %endif
96
97 %check
98 export LD_LIBRARY_PATH=../../src/:../../src/server:../../parser
99 ctest -V
100 %if 0%{?gcov:1}
101 lcov -c --ignore-errors graph --no-external -q -d . -o pkgmgr-info.info
102 genhtml pkgmgr-info.info -o pkgmgr-info.out
103 zip -r pkgmgr-info.zip pkgmgr-info.out
104 install -m 0644 pkgmgr-info.zip %{buildroot}%{_datadir}/gcov/
105 %endif
106
107 %install
108 %make_install
109
110 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
111 ln -sf ../pkg-db-recovery.service %{buildroot}%{_unitdir}/basic.target.wants/pkg-db-recovery.service
112
113 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
114 mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
115 install -m 0644 %SOURCE1 %{buildroot}%{_unitdir}/%{name}.service
116 install -m 0644 %SOURCE2 %{buildroot}%{_unitdir}/%{name}.socket
117 ln -s ../%{name}.service %{buildroot}%{_unitdir}/basic.target.wants/%{name}.service
118 ln -sf ../%{name}.socket %{buildroot}%{_unitdir}/sockets.target.wants/%{name}.socket
119
120 %if 0%{?gcov:1}
121 mkdir -p %{buildroot}%{_datadir}/gcov/obj
122 install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
123 %endif
124
125 %post
126 /sbin/ldconfig
127
128 %postun -p /sbin/ldconfig
129
130 %post -n pkgmgr-info-parser -p /sbin/ldconfig
131
132 %postun  -n pkgmgr-info-parser -p /sbin/ldconfig
133
134 %files
135 %manifest %{name}.manifest
136 %license LICENSE
137 %defattr(-,root,root,-)
138 %{_libdir}/libpkgmgr-info.so.*
139 %{_libdir}/libpkgmgr-info-server.so.*
140 %{_bindir}/pkg-db-recovery
141 %{_bindir}/pkg-db-creator
142 %{_bindir}/pkginfo-server
143 %{_unitdir}/pkg-db-recovery.service
144 %{_unitdir}/basic.target.wants/pkg-db-recovery.service
145 %{_includedir}/pkgmgr-client/*.hh
146 %{_unitdir}/%{name}.service
147 %{_unitdir}/basic.target.wants/%{name}.service
148 %{_unitdir}/%{name}.socket
149 %{_unitdir}/sockets.target.wants/%{name}.socket
150
151 %files devel
152 %manifest %{name}.manifest
153 %defattr(-,root,root,-)
154 %{_includedir}/*.h
155 %{_libdir}/pkgconfig/pkgmgr-info.pc
156 %{_libdir}/pkgconfig/pkgmgr-info-server.pc
157 %{_libdir}/libpkgmgr-info.so
158 %{_libdir}/libpkgmgr-info-server.so
159 %{_includedir}/pkgmgr-client/*.hh
160 %{_includedir}/pkgmgr-common/*.hh
161 %{_includedir}/pkgmgr-server/*.h
162
163 %files parser
164 %manifest %{name}.manifest
165 %license LICENSE
166 %defattr(-,root,root,-)
167 %{_libdir}/libpkgmgr_parser.so.*
168 %config %{_sysconfdir}/package-manager/preload/manifest.xsd
169 %config %{_sysconfdir}/package-manager/preload/xml.xsd
170 %config %{_sysconfdir}/package-manager/parserlib/metadata/mdparser_list.txt
171 %config %{_sysconfdir}/package-manager/parserlib/category/category_parser_list.txt
172 %config %{_sysconfdir}/package-manager/parserlib/tag_parser_list.txt
173 %config %{_sysconfdir}/package-manager/pkg_db_version.txt
174
175 %files parser-devel
176 %manifest %{name}.manifest
177 %defattr(-,root,root,-)
178 %{_includedir}/pkgmgr/*.h
179 %{_libdir}/pkgconfig/pkgmgr-parser.pc
180 %{_libdir}/libpkgmgr_parser.so
181
182 #################################################
183 # pkgmgr-info-gcov
184 #################################################
185 %if 0%{?gcov:1}
186 %package gcov
187 Summary:    Packager Manager information api (gcov)
188 Group:      Application Framework/Testing
189
190 %description gcov
191 Packager Manager information api gcov objects
192 %endif
193
194 %if 0%{?gcov:1}
195 %files gcov
196 %defattr(-,root,root,-)
197 %{_datadir}/gcov/*
198 %endif