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