Version up(1.0.8)
[platform/core/uifw/nlp.git] / packaging / nlp.spec
1 Name:       org.tizen.nlp.service
2
3 Summary:    NLTK
4 Version:    1.0.8
5 Release:    1
6 Group:      Graphics & UI Framework/Input
7 License:    Apache-2.0
8 Source0:    %{name}-%{version}.tar.gz
9 BuildRequires: cmake
10 BuildRequires: tidl
11 BuildRequires: pkgconfig(capi-appfw-service-application)
12 BuildRequires: pkgconfig(libtzplatform-config)
13 BuildRequires: pkgconfig(bundle)
14 BuildRequires: python3-base
15 BuildRequires: pkgconfig(python3-embed)
16 BuildRequires: pkgconfig(glib-2.0)
17 BuildRequires: pkgconfig(rpc-port)
18 BuildRequires: pkgconfig(gmock)
19 Requires: python3-numpy
20 Requires: python3-xml
21 Requires: python3-six
22 Requires: %{name}-data-en
23
24 # runtime requires
25 Requires(post): coreutils
26 Requires(post): /sbin/ldconfig
27 Requires(postun): /sbin/ldconfig
28
29 %if 0%{?gcov:1}
30 BuildRequires:  lcov
31 BuildRequires:  zip
32 %endif
33
34 %description
35 Natural Language Processing service.
36
37 %package devel
38 Summary:  NLP Client Library (Development)
39 Group:    Development/Libraries
40 Requires: %{name} = %{version}-%{release}
41
42 %description devel
43 NLP Library (Development)
44
45 %if 0%{?gcov:1}
46 %package gcov
47 Summary:  NLP Library (gcov)
48 Group:      Graphics & UI Framework/Input
49 %description gcov
50 NLP gcov objects
51 %endif
52
53 %package data-en
54 Summary:    Data files for English
55 Group:      Graphics & UI Framework/Input
56
57 %description data-en
58 NLP Data files for English
59
60 %package unittests
61 Summary:    NLP tests
62 Group:      Development/Libraries
63 Requires:   %{name} = %{version}-%{release}
64
65 %description unittests
66 GTest for NLP
67
68 %define resourced_memory_limit_path /etc/resourced/limiter.conf.d/
69
70 %prep
71 %setup -q
72
73 tidlc -p -l C -i tidl/message.tidl -o message_proxy
74 mv message_proxy.h ./client/
75 mv message_proxy.c ./client/
76
77 tidlc -s -l C -i tidl/message.tidl -o message_stub
78 mv message_stub.h ./service/src
79 mv message_stub.c ./service/src
80
81 %build
82 %if 0%{?gcov:1}
83 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
84 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
85 export FFLAGS+=" -fprofile-arcs -ftest-coverage"
86 export LDFLAGS+=" -lgcov"
87 %endif
88
89 %define _app_home_dir   %{TZ_SYS_RO_APP}/%{name}
90 %define _app_bin_dir    %{_app_home_dir}/bin
91
92 export CFLAGS+=" -DTIZEN_DEBUG_ENABLE -fvisibility=hidden -Werror"
93 export CXXFLAGS+=" -DTIZEN_DEBUG_ENABLE -fvisibility=hidden -Werror"
94 export FFLAGS+=" -DTIZEN_DEBUG_ENABLE -fvisibility=hidden"
95
96 rm -rf CMakeFiles
97 rm -rf CMakeCache.txt
98 MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
99 %cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DLIB_INSTALL_DIR:PATH=%{_libdir} -DPYTHON3_SITELIB_PATH=%{python3_sitelib}
100
101 make %{?jobs:-j%jobs}
102
103 %install
104 rm -rf %{buildroot}
105
106 %make_install
107
108 %if 0%{?gcov:1}
109 find . -name '*_proxy.c.gcno' -exec rm {} \;
110 find . -name '*_stub.c.gcno' -exec rm {} \;
111
112 builddir=$(basename $PWD)
113 gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir"
114 mkdir -p "$gcno_obj_dir"
115 find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';'
116 %endif
117
118 cat << EOF > run-unittest.sh
119 #!/bin/sh
120 setup() {
121         echo "setup start"
122 }
123
124 test_main() {
125         echo "test_main start"
126         /usr/bin/nlp-unittests
127 }
128
129 teardown() {
130         echo "teardown start"
131 }
132
133 main() {
134         setup
135         test_main
136         teardown
137 }
138
139 main "\$*"
140 EOF
141
142 mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name}
143 install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name}
144
145 %__mkdir -p %{buildroot}/%{resourced_memory_limit_path}/
146 %__cp conf/* %{buildroot}/%{resourced_memory_limit_path}/
147
148 %define tizen_sign 1
149 %define tizen_sign_base %{TZ_SYS_RO_APP}/%{name}
150 %define tizen_sign_level public
151 %define tizen_author_sign 1
152 %define tizen_dist_sign 1
153
154 %post
155 /sbin/ldconfig
156
157 %postun -p /sbin/ldconfig
158
159 %files
160 %manifest service/%{name}.manifest
161 %defattr(-,root,root,-)
162 %attr(755,root,root) %{_app_bin_dir}/%{name}
163 %{_libdir}/libcapi-ui-nlp.so.*
164 %{_libdir}/libcapi-ui-nlp.so
165 %{_app_bin_dir}/*
166 %{TZ_SYS_RO_PACKAGES}/%{name}.xml
167 %{python3_sitelib}/langdetect/*
168 %{python3_sitelib}/nltk/*
169 %{resourced_memory_limit_path}/*
170 %license LICENSE
171
172 %files devel
173 %{_includedir}/nlp.h
174 %{_libdir}/pkgconfig/capi-ui-nlp.pc
175
176 %files data-en
177 %manifest service/%{name}.manifest
178 %defattr(-,root,root,-)
179 %license LICENSE
180 /usr/local/lib/nltk_data/*
181
182 %files unittests
183 %{_bindir}/nlp-unittests
184 %{_bindir}/tizen-unittests/*
185
186 %if 0%{?gcov:1}
187 %files gcov
188 %{_datadir}/gcov/*
189 %endif