Add g_steal_pointer to avoid double-free
[platform/core/uifw/tts.git] / packaging / tts.spec
1 Name:       tts
2 Summary:    Text To Speech client library and daemon
3 Version:    1.90.5
4 Release:    1
5 Group:      Graphics & UI Framework/Voice Framework
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1001: %{name}.manifest
9 Source1002: %{name}-devel.manifest
10 Requires(post): /sbin/ldconfig
11 Requires(post): /usr/bin/buxton2ctl
12 Requires(postun): /sbin/ldconfig
13 Requires:  gawk
14 BuildRequires:  pkgconfig(aul)
15 BuildRequires:  pkgconfig(capi-appfw-app-manager)
16 BuildRequires:  pkgconfig(capi-appfw-app-common)
17 BuildRequires:  pkgconfig(buxton2)
18 BuildRequires:  pkgconfig(capi-base-common)
19 BuildRequires:  pkgconfig(capi-media-audio-io)
20 BuildRequires:  pkgconfig(capi-system-info)
21 BuildRequires:  pkgconfig(dbus-1)
22 BuildRequires:  pkgconfig(dlog)
23 BuildRequires:  pkgconfig(ecore)
24 BuildRequires:  pkgconfig(glib-2.0)
25 BuildRequires:  pkgconfig(libgum)
26 BuildRequires:  pkgconfig(libtzplatform-config)
27 BuildRequires:  pkgconfig(libxml-2.0)
28 BuildRequires:  pkgconfig(pkgmgr)
29 BuildRequires:  pkgconfig(pkgmgr-info)
30 BuildRequires:  pkgconfig(pkgmgr-installer)
31 BuildRequires:  pkgconfig(vconf)
32 BuildRequires:  pkgconfig(bundle)
33 BuildRequires:  pkgconfig(gmock)
34 BuildRequires:  pkgconfig(rpc-port)
35
36 BuildRequires:  cmake
37 BuildRequires:  tidl
38
39 %if 0%{?gcov:1}
40 BuildRequires:  lcov
41 BuildRequires:  zip
42 %endif
43
44 %description
45 Text To Speech client library and daemon.
46
47
48 %package devel
49 Summary:    Text To Speech header files for TTS development
50 Group:      libdevel
51 Requires:   %{name} = %{version}-%{release}
52
53 %package setting-devel
54 Summary:    Text To Speech setting header files for TTS development
55 Group:      libdevel
56 Requires:   %{name} = %{version}-%{release}
57
58 %package engine-devel
59 Summary:    Text To Speech engine header files for TTS development
60 Group:      libdevel
61 Requires:   %{name} = %{version}-%{release}
62
63 %description devel
64 Text To Speech header files for TTS development.
65
66 %description setting-devel
67 Text To Speech setting header files for TTS development.
68
69 %description engine-devel
70 Text To Speech engine header files for TTS development.
71
72 %if 0%{?gcov:1}
73 %package gcov
74 Summary:        Text To Speech (gcov)
75 Group:          Graphics & UI Framework/Voice Framework
76 %description gcov
77 Text To Speech gcov objects
78 %endif
79
80 %package unittests
81 Summary:    TTS tests
82 Group:      Development/Libraries
83 Requires:   %{name} = %{version}-%{release}
84
85 %description unittests
86 GTest for TTS
87
88
89 %prep
90 %setup -q -n %{name}-%{version}
91 cp %{SOURCE1001} %{SOURCE1002} .
92
93 tidlc -p -l C -i tidl/tts.tidl -o tts_proxy
94 tidlc -s -l C -i tidl/tts.tidl -o ttsd_stub
95
96 mv tts_proxy* client
97 mv ttsd_stub* server
98
99 %build
100 export CFLAGS="$CFLAGS -DTIZEN_ENGINEER_MODE"
101 export CXXFLAGS="$CXXFLAGS -DTIZEN_ENGINEER_MODE"
102 export FFLAGS="$FFLAGS -DTIZEN_ENGINEER_MODE"
103
104 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
105 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
106 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
107
108 %if 0%{?gcov:1}
109 export CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
110 export CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage -DTIZEN_TEST_GCOV"
111 export FFLAGS="$FFLAGS -fprofile-arcs -ftest-coverage"
112 export LDFLAGS="$LDFLAGS -lgcov"
113 %endif
114
115 cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIBDIR=%{_libdir} -DBINDIR=%{_bindir} -DINCLUDEDIR=%{_includedir} \
116         -DTZ_SYS_RO_SHARE=%TZ_SYS_RO_SHARE -DTZ_SYS_BIN=%TZ_SYS_BIN \
117         -DTZ_SYS_RO_PACKAGES=%TZ_SYS_RO_PACKAGES -DTZ_SYS_RO_APP=%TZ_SYS_RO_APP
118
119 make %{?jobs:-j%jobs}
120
121 %install
122 rm -rf %{buildroot}
123
124 mkdir -p %{buildroot}%{_datadir}/upgrade/vd_scripts/additional_scripts
125 install -p -m 500 script/migration/tts.sh %{buildroot}%{_datadir}/upgrade/vd_scripts/additional_scripts/tts.sh
126
127 %if "%{tizen_profile_name}" == "tv"
128 mv -f org.tizen.voice.ttsserver.tv.service org.tizen.voice.ttsserver.service
129 mv -f org.tizen.voice.ttsnotiserver.tv.service org.tizen.voice.ttsnotiserver.service
130 mv -f org.tizen.voice.ttssrserver.tv.service org.tizen.voice.ttssrserver.service
131 mv -f org.tizen.voice.ttsinterruptserver.tv.service org.tizen.voice.ttsinterruptserver.service
132 %endif
133
134 %make_install
135
136 %if 0%{?gcov:1}
137 builddir=$(basename $PWD)
138 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
139 mkdir -p "$gcno_obj_dir"
140 find ./test/ -name '*.gcno' -exec rm {} \;
141 find ./server/ -name '*.gcno' -exec rm {} \;
142 find ./tests/ -name '*.gcno' -exec rm {} \;
143 find ./engine-parser/ -name '*.gcno' -exec rm {} \;
144 find . -name '*_config*.gcno' -exec rm {} \;
145 find . -name '*_tidl*.gcno' -exec rm {} \;
146 find . -name '*_dbus*.gcno' -exec rm {} \;
147 find . -name '*_proxy*.gcno' -exec rm {} \;
148 find . -name '*_setting*.gcno' -exec rm {} \;
149 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
150 %endif
151
152 cat << EOF > run-unittest.sh
153 #!/bin/sh
154 setup() {
155     echo "setup start"
156     touch /opt/share/askuser_disable
157     mount -o remount,rw /
158     tpk-backend --preload -y org.tizen.tts-unittests
159 }
160
161 test_main() {
162     echo "test_main start"
163     launch_app org.tizen.tts-unittests __AUL_SDK__ UNIT_TEST __LAUNCH_APP_MODE__ SYNC
164 }
165
166 teardown() {
167     echo "teardown start"
168 }
169
170 main() {
171     setup
172     test_main
173     teardown
174 }
175
176 main "\$*"
177 EOF
178
179 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
180 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}
181
182 %check
183 %if "%{_ctest_enable}" == "true"
184 ctest -V --output-on-failure %{?_smp_mflags}
185 %if 0%{?gcov:1}
186 lcov -c --ignore-errors mismatch,graph,unused --no-external -q -d . -o gcov.info
187 genhtml gcov.info
188 %endif
189 %endif
190
191 %post
192 /sbin/ldconfig
193
194 mkdir -p %{_libdir}/voice
195
196 mkdir -p %{TZ_SYS_RO_SHARE}/voice/test
197
198 mkdir -p -m 0775 %{TZ_SYS_GLOBALUSER_DATA}/.voice
199 chsmack -t %{TZ_SYS_GLOBALUSER_DATA}/.voice
200 chsmack -a "User::App::Shared" %{TZ_SYS_GLOBALUSER_DATA}/.voice
201 mkdir -p %{TZ_SYS_GLOBALUSER_DATA}/.voice/tts/engine-info
202 chsmack -a "User::App::Shared" %{TZ_SYS_GLOBALUSER_DATA}/.voice/tts
203 chsmack -t %{TZ_SYS_GLOBALUSER_DATA}/.voice/tts/engine-info
204 chsmack -a "User::App::Shared" %{TZ_SYS_GLOBALUSER_DATA}/.voice/tts/engine-info
205 chown -R ui_fw:users %{TZ_SYS_GLOBALUSER_DATA}/.voice
206
207 %postun -p /sbin/ldconfig
208
209 %files
210 %manifest %{name}.manifest
211 %license LICENSE
212 %defattr(-,root,root,-)
213 %{_libdir}/lib*.so
214 %{TZ_SYS_RO_SHARE}/voice/tts/1.0/tts-config.xml
215 %{TZ_SYS_RO_SHARE}/dbus-1/system-services/org.tizen.voice.ttsserver.service
216 %{TZ_SYS_RO_SHARE}/dbus-1/system-services/org.tizen.voice.ttsnotiserver.service
217 %{TZ_SYS_RO_SHARE}/dbus-1/system-services/org.tizen.voice.ttssrserver.service
218 %{TZ_SYS_RO_SHARE}/dbus-1/system-services/org.tizen.voice.ttsinterruptserver.service
219 #%{TZ_SYS_RO_SHARE}/voice/test/tts-test
220 %{_bindir}/tts_getengine
221 %{TZ_SYS_RO_ETC}/package-manager/parserlib/metadata/libtts-engine-parser.so*
222 #%{TZ_SYS_RO_ETC}/package-manager/parserlib/metadata/libtts-engine-language-pack-parser.so*
223 /etc/dbus-1/system.d/tts-server.conf
224 %{_datadir}/upgrade/vd_scripts/additional_scripts/tts.sh
225
226 %files devel
227 %manifest %{name}-devel.manifest
228 %defattr(-,root,root,-)
229 %{_libdir}/pkgconfig/tts.pc
230 %{_includedir}/tts.h
231 %{_includedir}/tts_internal.h
232
233 %files setting-devel
234 %defattr(-,root,root,-)
235 %{_libdir}/pkgconfig/tts-setting.pc
236 %{_includedir}/tts_setting.h
237
238 %files engine-devel
239 %defattr(-,root,root,-)
240 %{_libdir}/pkgconfig/tts-engine.pc
241 %{_includedir}/ttse.h
242
243 %if 0%{?gcov:1}
244 %files gcov
245 %{_datadir}/gcov/obj/*
246 %endif
247
248 %files unittests
249 %manifest tests/org.tizen.tts-unittests.manifest
250 %defattr(-,root,root,-)
251 %{TZ_SYS_RO_PACKAGES}/org.tizen.tts-unittests.xml
252 %{TZ_SYS_RO_APP}/org.tizen.tts-unittests/res/test_pcm.dat
253 %{TZ_SYS_RO_APP}/org.tizen.tts-unittests/bin/tts-unittests
254 %{_bindir}/tizen-unittests/%{name}/run-unittest.sh