Fix lcov option
[platform/core/appfw/pkgmgr-tool.git] / packaging / pkgmgr-tool.spec
1 Name:       pkgmgr-tool
2 Summary:    Packager Manager Tool package
3 Version:    0.11.5
4 Release:    1
5 Group:      Application Framework/Package Management
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1001: %{name}.manifest
9
10 Requires:  unzip
11 Requires:  smack
12 Requires:  cryptsetup
13
14 BuildRequires:  cmake
15 BuildRequires:  gettext-tools
16 BuildRequires:  pkgconfig(glib-2.0)
17 BuildRequires:  pkgconfig(gio-2.0)
18 BuildRequires:  pkgconfig(dlog)
19 BuildRequires:  pkgconfig(bundle)
20 BuildRequires:  pkgconfig(pkgmgr-info)
21 BuildRequires:  pkgconfig(iniparser)
22 BuildRequires:  pkgconfig(libsmack)
23 BuildRequires:  pkgconfig(libtzplatform-config)
24 BuildRequires:  pkgconfig(xdgmime)
25 BuildRequires:  pkgconfig(pkgmgr)
26 BuildRequires:  pkgconfig(pkgmgr-installer)
27 BuildRequires:  pkgconfig(aul)
28 BuildRequires:  pkgconfig(aul-rsc-mgr)
29 BuildRequires:  pkgconfig(storage)
30 BuildRequires:  pkgconfig(sqlite3)
31 BuildRequires:  pkgconfig(gmock)
32 BuildRequires:  tizen-database-devel
33 BuildRequires:  pkgmgr-info-parser-devel
34 BuildRequires:  pkgmgr-info-parser
35 BuildRequires:  fdupes
36 %if 0%{?gcov:1}
37 BuildRequires:  lcov
38 BuildRequires:  zip
39 %endif
40 Requires(posttrans):  /usr/bin/pkg_initdb
41
42 %description
43 Packager Manager Tool for packaging
44
45 %package unittests
46 Summary:    GTest for pkgmgr-tool
47 Group:      Development/Libraries
48 Requires:   %{name}
49
50 %description unittests
51 GTest for pkgmgr-tool
52
53 %if 0%{?gcov:1}
54 %package gcov
55 Summary:  pkgmgr-tool API(gcov)
56 Group:    System/API
57
58 %description gcov
59 gcov objects of an pkgmgr-tool
60 %endif
61
62 %prep
63 %setup -q
64 cp %{SOURCE1001} .
65
66 %build
67 %if 0%{?gcov:1}
68 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
69 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
70 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
71 export LDFLAGS+=" -lgcov"
72 %endif
73
74 %cmake .
75 %__make %{?_smp_mflags}
76
77 %check
78 ctest -V
79 %if 0%{?gcov:1}
80 lcov -c --ignore-errors mismatch,graph,unused --no-external -b . -d . -o %{name}.info
81 genhtml %{name}.info -o out --legend --show-details
82 %endif
83
84 %install
85 %make_install
86 mkdir -p %{buildroot}%{_sysconfdir}/opt/upgrade
87
88 %if 0%{?gcov:1}
89 builddir=$(basename $PWD)
90 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
91 mkdir -p "$gcno_obj_dir"
92 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
93 %endif
94
95 cat << EOF > run-unittest.sh
96 #!/bin/sh
97
98 setup() {
99     echo "setup start"
100     mkdir -p /tmp/pkgmgr-tool-unittests
101     cp -r /usr/share/pkgmgr-tool_unittests/* /tmp/pkgmgr-tool-unittests/
102 }
103
104 test_main() {
105     echo "test_main start"
106     CUR_DIR=$(pwd)
107     cd /tmp/pkgmgr-tool-unittests
108     /usr/bin/pkgmgr-tool_unittests
109     cd $CUR_DIR
110 }
111
112 teardown() {
113     echo "teardown start"
114     rm -rf /tmp/pkgmgr-tool-unittests
115 }
116
117 main() {
118     setup
119     test_main
120     teardown
121 }
122
123 main "\$*"
124 EOF
125
126 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
127 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/
128
129 %fdupes %{buildroot}
130
131 %post
132 /sbin/ldconfig
133 mkdir -p %{_sysconfdir}/skel/priv_shared_res
134 chsmack -t -a User::Home %{_sysconfdir}/skel/priv_shared_res
135
136 # Update mime database to support package mime types
137 update-mime-database %{_datadir}/mime
138
139 %files
140 %manifest %{name}.manifest
141 %license LICENSE
142 %defattr(-,root,root,-)
143 %{_bindir}/pkgcmd
144 %{_bindir}/pkg_getsize
145 %{_bindir}/pkg_cleardata
146 %{_bindir}/pkginfo
147 %{_bindir}/rsc-slice
148 %{_bindir}/res-copy
149 %{_bindir}/pkg_upgrade
150 %attr(0755,root,root) %{_bindir}/install_preload_pkg
151 %{_datadir}/mime/packages/mime.wac.xml
152 %{_datadir}/mime/packages/mime.tpk.xml
153 %attr(0700,root,root) /etc/package-manager/pkgmgr-unzip-pkg.sh
154 %attr(0700,root,root) /etc/package-manager/pkgmgr-create-delta.sh
155 %attr(0700,root,root) /usr/share/upgrade/scripts/700.pkgmgr.patch.sh
156 %attr(0700,root,root) /etc/package-manager/updates/update.sh
157 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30000.sh
158 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30001.sh
159 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30002.sh
160 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30003.sh
161 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30004.sh
162 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30005.sh
163 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30006.sh
164 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30007.sh
165 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30008.sh
166 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30009.sh
167 %attr(0700,root,root) /etc/package-manager/updates/upgrade_to_30010.sh
168 %attr(0700,root,root) %{_sysconfdir}/package-manager/pkgmgr-label-initial-image.sh
169
170 %files unittests
171 %{_bindir}/pkgmgr-tool_unittests
172 %{_datadir}/pkgmgr-tool_unittests/*
173 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh
174
175 %if 0%{?gcov:1}
176 %files gcov
177 %defattr(-,root,root,-)
178 %{_datadir}/gcov/obj/*
179 %endif