adeef48969fb3bfbea9e798c2b37695d1783264e
[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.19.0
4 Release:    1
5 Group:      Application Framework/Package Management
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1001: pkgmgr-info.manifest
9 BuildRequires: cmake
10 BuildRequires: pkgconfig(dlog)
11 BuildRequires: pkgconfig(glib-2.0)
12 BuildRequires: pkgconfig(gio-2.0)
13 BuildRequires: pkgconfig(vconf)
14 BuildRequires: pkgconfig(sqlite3)
15 BuildRequires: pkgconfig(libxml-2.0)
16 BuildRequires: pkgconfig(libtzplatform-config)
17 BuildRequires: pkgconfig(libsmack)
18 BuildRequires: pkgconfig(bundle)
19 BuildRequires: pkgconfig(capi-system-info)
20 BuildRequires: pkgconfig(minizip)
21 BuildRequires: pkgconfig(libsystemd)
22 BuildRequires: pkgconfig(gmock)
23
24 %if 0%{?gcov:1}
25 BuildRequires:  lcov
26 BuildRequires:  zip
27 %endif
28
29 %description
30 Packager Manager infomation api for packaging
31
32 %package devel
33 Summary:    Packager Manager infomation api (devel)
34 Requires:   %{name} = %{version}-%{release}
35 %description devel
36 Packager Manager infomation api (devel)
37
38 %package parser
39 Summary:    Library for manifest parser
40 Requires:   %{name} = %{version}-%{release}
41
42 %description parser
43 Library for manifest parser
44
45 %package parser-devel
46 Summary:    Dev package for libpkgmgr-parser
47 Requires:   %{name}-parser = %{version}-%{release}
48 Requires:       pkgconfig(libtzplatform-config)
49
50 %description parser-devel
51 Dev package for libpkgmgr-parser
52
53 %package common
54 Summary:    Library for pkgmgr-info-server
55 Requires:   %{name} = %{version}-%{release}
56 Requires:   pkgconfig(libsystemd)
57
58 %description common
59 Library for pkgmgr-info-server
60
61 %package common-devel
62 Summary:    Dev package for libpkgmgr_common
63 Requires:   %{name}-common = %{version}-%{release}
64
65 %description common-devel
66 Dev package for libpkgmgr_common
67
68 %prep
69 %setup -q
70 cp %{SOURCE1001} .
71
72 %build
73 %if 0%{?gcov:1}
74 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
75 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
76 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
77 export LDFLAGS+=" -lgcov"
78 %endif
79
80 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
81 %cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DUNITDIR=%{_unitdir}
82
83 %__make %{?jobs:-j%jobs}
84
85 %if 0%{?gcov:1}
86 mkdir -p gcov-obj
87 find . -name '*.gcno' ! -path './gcov-obj/*' -exec cp '{}' gcov-obj ';'
88 %endif
89
90 %check
91 export LD_LIBRARY_PATH=../../src/:../../src/client:../../src/common:../../src/server
92 ctest -V
93 %if 0%{?gcov:1}
94 lcov -c --ignore-errors graph --no-external -q -d . -o tizen-theme-manager.info
95 genhtml tizen-theme-manager.info -o tizen-theme-manager.out
96 zip -r tizen-theme-manager.zip tizen-theme-manager.out
97 install -m 0644 tizen-theme-manager.zip %{buildroot}%{_datadir}/gcov/
98 %endif
99
100 %install
101 %make_install
102
103 mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
104 ln -sf ../pkg-db-recovery.service %{buildroot}%{_unitdir}/basic.target.wants/pkg-db-recovery.service
105
106 %if 0%{?gcov:1}
107 mkdir -p %{buildroot}%{_datadir}/gcov/obj
108 install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
109 %endif
110
111 %post
112 /sbin/ldconfig
113
114 %postun -p /sbin/ldconfig
115
116 %post -n pkgmgr-info-parser -p /sbin/ldconfig
117
118 %postun  -n pkgmgr-info-parser -p /sbin/ldconfig
119
120 %files
121 %manifest %{name}.manifest
122 %license LICENSE
123 %defattr(-,root,root,-)
124 %{_libdir}/libpkgmgr-info.so.*
125 %{_bindir}/pkg-db-recovery
126 %{_bindir}/pkg-db-creator
127 %{_bindir}/pkginfo-server
128 %{_unitdir}/pkg-db-recovery.service
129 %{_unitdir}/basic.target.wants/pkg-db-recovery.service
130 %{_includedir}/pkgmgr-client/*.hh
131
132 %files devel
133 %manifest %{name}.manifest
134 %defattr(-,root,root,-)
135 %{_includedir}/*.h
136 %{_libdir}/pkgconfig/pkgmgr-info.pc
137 %{_libdir}/libpkgmgr-info.so
138
139 %files parser
140 %manifest %{name}.manifest
141 %license LICENSE
142 %defattr(-,root,root,-)
143 %{_libdir}/libpkgmgr_parser.so.*
144 %config %{_sysconfdir}/package-manager/preload/manifest.xsd
145 %config %{_sysconfdir}/package-manager/preload/xml.xsd
146 %config %{_sysconfdir}/package-manager/parserlib/metadata/mdparser_list.txt
147 %config %{_sysconfdir}/package-manager/parserlib/category/category_parser_list.txt
148 %config %{_sysconfdir}/package-manager/parserlib/tag_parser_list.txt
149 %config %{_sysconfdir}/package-manager/pkg_db_version.txt
150
151 %files parser-devel
152 %manifest %{name}.manifest
153 %defattr(-,root,root,-)
154 %{_includedir}/pkgmgr/*.h
155 %{_libdir}/pkgconfig/pkgmgr-parser.pc
156 %{_libdir}/libpkgmgr_parser.so
157
158 %files common
159 %manifest %{name}.manifest
160 %license LICENSE
161 %defattr(-,root,root,-)
162 %{_libdir}/libpkgmgr_common.so*
163
164 %files common-devel
165 %manifest %{name}.manifest
166 %defattr(-,root,root,-)
167 %{_libdir}/pkgconfig/pkgmgr-common.pc
168 %{_libdir}/libpkgmgr_common.so
169 %{_includedir}/pkgmgr-common/*.hh
170 %{_includedir}/pkgmgr-common/*.h
171
172 #################################################
173 # pkgmgr-info-gcov
174 #################################################
175 %if 0%{?gcov:1}
176 %package gcov
177 Summary:    Packager Manager information api (gcov)
178 Group:      Application Framework/Testing
179
180 %description gcov
181 Packager Manager information api gcov objects
182 %endif
183
184 %if 0%{?gcov:1}
185 %files gcov
186 %defattr(-,root,root,-)
187 %{_datadir}/gcov/*
188 %endif