14acb967cc806ed678879c10b1318454f5be3057
[platform/core/appfw/rpk-installer.git] / packaging / rpk-installer.spec
1 Name:       rpk-installer
2 Summary:    Resource Package Installer
3 Version:    0.1.2
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 BuildRequires:  cmake
10 BuildRequires:  boost-devel
11 BuildRequires:  pkgconfig(dlog)
12 BuildRequires:  pkgconfig(gmock)
13 BuildRequires:  pkgconfig(app-installers)
14 BuildRequires:  pkgconfig(manifest-parser)
15 BuildRequires:  pkgconfig(tpk-manifest-handlers)
16 BuildRequires:  pkgconfig(pkgmgr)
17 BuildRequires:  pkgconfig(libsystemd)
18 BuildRequires:  pkgconfig(aul)
19
20 %if 0%{?gcov:1}
21 BuildRequires:  lcov
22 %endif
23
24 %description
25 This package contains rpk-installer library
26
27 %package -n rpk-installer-devel
28 Summary:    Rpk-installer development files
29 Group:      Application Framework/Package Management
30 Requires:   %{name} = %{version}
31
32 %description devel
33 This package contains header files of rpk-installer library
34
35 %package -n rpk-installer-tests
36 Summary: Unit tests for rpk-installer
37 Requires: rpk-installer = %{version}
38
39 %description -n rpk-installer-tests
40 Unit tests for rpk-installer
41
42 %package unittests
43 Summary: %{name} unittests binary
44
45 %description unittests
46 unittests binary
47
48 %prep
49 %setup -q
50 cp %{SOURCE1001} .
51
52 %build
53 %if 0%{?gcov:1}
54 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
55 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
56 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
57 export LDFLAGS+=" -lgcov"
58 %endif
59
60 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
61 %cmake . -DCMAKE_VERBOSE_MAKEFILE:BOOL=%{?verbose_make:ON}%{!?verbose_make:OFF} \
62          -DUNITDIR=%{_unitdir} \
63          -DFULLVER=%{version} \
64          -DMAJORVER=${MAJORVER}
65
66 %__make %{?_smp_mflags}
67
68 %install
69 %make_install
70 mkdir -p %{buildroot}/etc/package-manager/backend
71 ln -s %{_bindir}/unified-backend %{buildroot}%{_sysconfdir}/package-manager/backend/rpk
72
73 %if 0%{?gcov:1}
74 builddir=$(basename $PWD)
75 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
76 mkdir -p "$gcno_obj_dir"
77 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
78 %endif
79
80 #################################################
81 # generate unittest automation script
82 #################################################
83 cat << EOF > run-unittest.sh
84 #!/bin/bash
85 setup() {
86     echo "setup start"
87 }
88
89 test_main() {
90     echo "test_main start"
91     /usr/bin/rpk-installer-unit-test
92 }
93
94 teardown() {
95     echo "teardown start"
96 }
97
98 main() {
99     setup
100     test_main
101     teardown
102 }
103
104 main "\$*"
105 EOF
106
107 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
108 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}/
109
110 %post
111 /sbin/ldconfig
112
113 %check
114 export LD_LIBRARY_PATH=../../src/rpk
115 ctest -V
116 %if 0%{?gcov:1}
117 lcov -c --ignore-errors graph --no-external -b . -d . -o %{name}.info
118 genhtml %{name}.info -o out --legend --show-details
119 %endif
120
121 %files
122 %manifest %{name}.manifest
123 %license LICENSE
124 %defattr(-,root,root,-)
125 %{_sysconfdir}/package-manager/backendlib/librpk.so
126 %{_libdir}/librpk-installer.so*
127 %{_sysconfdir}/package-manager/backend/rpk
128
129 %files devel
130 %{_includedir}/app-installers/rpk/*.h
131 %{_includedir}/app-installers/rpk/*/*/*.h
132 %{_libdir}/pkgconfig/rpk-installer.pc
133
134 %files -n rpk-installer-tests
135 %{_bindir}/rpk-installer-unit-test
136
137 #################################################
138 # rpk-installer-gcov
139 #################################################
140 %if 0%{?gcov:1}
141 %package gcov
142 Summary:    Simple string key-val dictionary ADT (gcov)
143 Group:      Application Framework/Testing
144
145 %description gcov
146 Simple string key-val dictionary ADT gcov objects
147 %endif
148
149 %if 0%{?gcov:1}
150 %files gcov
151 %{_datadir}/gcov/*
152 %endif
153
154 %files unittests
155 %{_bindir}/rpk-installer-unit-test
156 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh