Initialize Tizen 2.3
[framework/web/webkit-efl.git] / packaging / webkit2-efl.spec
1 Name: webkit2-efl
2 Summary: Webkit2 EFL
3 Version: 152340_0.10.192.0
4 Release: 1
5 Group: Applications/Internet
6 License: LGPLv2.1 or BSD
7 Source0: %{name}-%{version}.tar.gz
8
9 %{?wearable_build:%define _repository wearable}
10 %{?mobile_build:%define _repository mobile}
11
12 Requires(post): /sbin/ldconfig
13 Requires(post): xkeyboard-config
14 Requires(postun): /sbin/ldconfig
15
16 BuildRequires: cmake, edje-bin, embryo-bin, python, bison, flex, gperf, libjpeg-turbo-devel, perl, gettext, ruby
17
18 BuildRequires: pkgconfig(cairo)
19 BuildRequires: pkgconfig(dlog)
20 BuildRequires: pkgconfig(ecore)
21 BuildRequires: pkgconfig(ecore-evas)
22 BuildRequires: pkgconfig(ecore-file)
23 BuildRequires: pkgconfig(edbus)
24 BuildRequires: pkgconfig(edje)
25 BuildRequires: pkgconfig(eina)
26 BuildRequires: pkgconfig(elementary)
27 BuildRequires: pkgconfig(evas)
28 BuildRequires: pkgconfig(feedback)
29 BuildRequires: pkgconfig(fontconfig)
30 BuildRequires: pkgconfig(freetype2)
31 BuildRequires: pkgconfig(glib-2.0)
32 BuildRequires: pkgconfig(gstreamer-0.10)
33 BuildRequires: pkgconfig(gstreamer-plugins-base-0.10)
34 BuildRequires: pkgconfig(harfbuzz)
35 BuildRequires: pkgconfig(icu-i18n)
36 BuildRequires: pkgconfig(libmedia-utils)
37 BuildRequires: pkgconfig(libsoup-2.4)
38 BuildRequires: pkgconfig(openssl)
39 BuildRequires: pkgconfig(libxml-2.0)
40 BuildRequires: pkgconfig(libxslt)
41 BuildRequires: pkgconfig(mmutil-imgp)
42 BuildRequires: pkgconfig(mmutil-jpeg)
43 BuildRequires: pkgconfig(mm-session)
44 BuildRequires: pkgconfig(mm-sound)
45 BuildRequires: pkgconfig(sqlite3)
46 BuildRequires: pkgconfig(utilX)
47 BuildRequires: pkgconfig(vconf)
48 BuildRequires: pkgconfig(capi-appfw-application)
49 BuildRequires: pkgconfig(leveldb)
50 BuildRequires: pkgconfig(capi-system-sensor)
51 BuildRequires: pkgconfig(capi-system-device)
52 BuildRequires: pkgconfig(xext)
53 BuildRequires: pkgconfig(libavcodec)
54 BuildRequires: pkgconfig(gles20)
55 BuildRequires: pkgconfig(capi-system-power)
56 BuildRequires: pkgconfig(capi-system-info)
57
58 %if "%{_repository}" == "wearable"
59 BuildRequires: pkgconfig(deviced)
60 BuildRequires: pkgconfig(libdri2)
61 BuildRequires: pkgconfig(libtbm)
62 BuildRequires: pkgconfig(x11)
63 BuildRequires: pkgconfig(xfixes)
64 BuildRequires: pkgconfig(efl-assist)
65 #%if "%{_profile}" == "MOBILE"
66 #BuildRequires: pkgconfig(capi-location-manager)
67 #BuildRequires: pkgconfig(capi-network-connection)
68 #BuildRequires: pkgconfig(capi-telephony-network-info)
69 #BuildRequires: pkgconfig(location)
70 #BuildRequires: pkgconfig(tts)
71 #BuildRequires: pkgconfig(xt)
72 #%endif
73 %endif
74
75 %if "%{_repository}" == "mobile"
76 BuildRequires: pkgconfig(capi-network-connection)
77 BuildRequires: pkgconfig(capi-telephony-network-info)
78 BuildRequires: pkgconfig(efl-assist)
79 BuildRequires: pkgconfig(xt)
80 BuildRequires: pkgconfig(location)
81 BuildRequires: pkgconfig(leveldb)
82 BuildRequires: pkgconfig(ui-gadget-1)
83 BuildRequires: pkgconfig(capi-location-manager)
84 BuildRequires: pkgconfig(tts)
85 BuildRequires: pkgconfig(libsmack)
86 BuildRequires: libcap, libcap-devel
87 %endif
88
89 %description
90 Browser Engine based on Webkit2 EFL (Shared Library)
91
92 %package devel
93 Summary: Webkit2 EFL
94 Group: Development/Libraries
95 Requires: %{name} = %{version}-%{release}
96
97 %description devel
98 Browser Engine dev library based on Webkit EFL (Developement files)
99
100 %prep
101 %setup -q
102
103 %build
104 %if "%{_repository}" == "wearable"
105     %define _build_type Release
106     %define _profile MICRO
107
108     %ifarch %{arm}
109         %define _build_target arm
110         %define _emulator OFF
111     %else
112         export CFLAGS="$(echo $CFLAGS | sed 's/-Wl,--as-needed//g')"
113         export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-Wl,--as-needed//g')"
114
115         %if 0%{?simulator}
116             %define _build_target emulator
117             %define _emulator ON
118         %else
119             %define _build_target i386
120             %define _emulator OFF
121         %endif
122     %endif
123
124     %if 0%{?nodebug}
125         export CFLAGS=$(echo $CFLAGS | sed 's/ -g / /')
126         export CXXFLAGS=$(echo $CXXFLAGS | sed 's/ -g / /')
127     %endif
128
129     export SOURCE_DIR="$PWD"
130
131     %if 0%{?_webkit_build_dir}
132         %define _build_dir %{_webkit_build_dir}
133     %else
134         %define _build_dir BuildWK2-%{_build_target}
135     %endif
136
137     mkdir -p %{_build_dir}
138     cd %{_build_dir}
139
140     cmake $SOURCE_DIR \
141         -DPORT=Efl \
142         -DPROJECT_VERSION=152340_0.10.192.0 \
143         -DCMAKE_INSTALL_PREFIX=%{_prefix} \
144         -DCMAKE_BUILD_TYPE=%{?_build_type:%_build_type} \
145         -DENABLE_TIZEN_SUPPORT=ON \
146         -DENABLE_WEBKIT=OFF \
147         -DENABLE_WEBKIT2=ON \
148         -DENABLE_TIZEN_ALL_IN_ONE=ON \
149         -DENABLE_EGL=ON \
150         -DENABLE_GLES2=ON \
151         -DTIZEN_PROFILE=%{_profile} \
152         -DENABLE_TIZEN_EMULATOR=%{_emulator} \
153         %{?_webkit_cmake_options:%_webkit_cmake_options}
154     make %{?_make_option:%_make_option} %{?jobs:-j%jobs}
155 %endif
156
157 %if "%{_repository}" == "mobile"
158     # Temporary workaround
159     %ifarch %{arm}
160     export CFLAGS="$(echo $CFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
161     export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
162     export FFLAGS="$(echo $FFLAGS | sed 's/-mfpu=[a-zA-Z0-9-]*/-mfpu=neon/g')"
163     %else
164     export CFLAGS="$(echo $CFLAGS | sed 's/-Wl,--as-needed//g')"
165     export CXXFLAGS="$(echo $CXXFLAGS | sed 's/-Wl,--as-needed//g')"
166     %endif
167
168     %if 0%{?nodebug}
169     CFLAGS=$(echo $CFLAGS " " | sed 's/ -g / /g')
170     CXXFLAGS=$(echo $CXXFLAGS " " | sed 's/ -g / /g')
171     %endif
172
173     %ifarch %{arm}
174     %define EFL_TARGET arm
175     %else
176     %if 0%{?simulator}
177     %define EFL_TARGET emulator
178     %else
179     %define EFL_TARGET i386
180     %endif
181     %endif
182
183     export SOURCE_DIR="$PWD/mobile"
184     export WEBKIT_BUILD_DIR=%{WEBKIT_BUILD_DIR}
185     if [ -z "$WEBKIT_BUILD_DIR" -o "{WEBKIT_BUILD_DIR}" == "${WEBKIT_BUILD_DIR#%}" ]
186     then
187         export WEBKIT_BUILD_DIR="BuildWK2-%{EFL_TARGET}"
188     fi
189     export TIZEN_WEBKIT_EXTRA_OPTIONS=%{TIZEN_WEBKIT_EXTRA_OPTIONS}
190     if [ "{TIZEN_WEBKIT_EXTRA_OPTIONS}" == "${TIZEN_WEBKIT_EXTRA_OPTIONS#%}" ]
191     then
192         export TIZEN_WEBKIT_EXTRA_OPTIONS=
193     fi
194
195     mkdir -p $WEBKIT_BUILD_DIR
196     cd $WEBKIT_BUILD_DIR
197
198     export MAKE_OPTION=%{MAKE_OPTION}
199     if [ "{MAKE_OPTION}" == "${MAKE_OPTION#%}" ]
200     then
201         cmake $SOURCE_DIR -DPORT=Efl -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_WEBKIT=Off -DENABLE_WEBKIT2=On -DENABLE_ALLINONE=On -DEFL_TARGET=%{EFL_TARGET} -DDefaultTheme_RESOURCE_NAME=webkit.edj $TIZEN_WEBKIT_EXTRA_OPTIONS
202         make %{?jobs:-j%jobs}
203     else
204         make %{MAKE_OPTION} %{?jobs:-j%jobs}
205     fi
206 %endif
207
208 %install
209 rm -rf %{buildroot}
210 mkdir -p %{buildroot}/usr/share/license
211 cp LICENSE %{buildroot}/usr/share/license/%{name}
212
213 %if "%{_repository}" == "wearable"
214     cd %{_build_dir}
215 %endif
216 %if "%{_repository}" == "mobile"
217     export WEBKIT_BUILD_DIR=%{WEBKIT_BUILD_DIR}
218     if [ -z "$WEBKIT_BUILD_DIR" -o "{WEBKIT_BUILD_DIR}" == "${WEBKIT_BUILD_DIR#%}" ]
219     then
220         export WEBKIT_BUILD_DIR="BuildWK2-%{EFL_TARGET}"
221     fi
222
223     cd $WEBKIT_BUILD_DIR
224 %endif
225
226 %make_install
227 mkdir -p %{buildroot}/usr/share/edje
228
229 %post
230 #!/bin/sh
231 #change file permissions
232 # 1. libraries
233 chmod 644 %{_libdir}/libewebkit2.so
234 # 2. Resources
235 %if "%{_repository}" == "wearable"
236     chmod 644 %{_datadir}/edje/webkit.edj
237 %endif
238
239 %if "%{_repository}" == "mobile"
240     chmod 644 /usr/share/edje/webkit.edj
241     # 3. executables
242     setfattr -n security.capability -v 0sAQAAAgAAAAAAAAAAAAAAAAIAAAA= %{_bindir}/WebProcess
243     setfattr -n security.capability -v 0sAQAAAgAAAAAAAAAAAAAAAAIAAAA= %{_bindir}/PluginProcess
244 %endif
245
246 %postun
247
248 %files
249 %manifest %{name}.manifest
250 %defattr(-,root,root,-)
251 %{_libdir}/*.so*
252 %{_bindir}/*
253 %if "%{_repository}" == "wearable"
254     /usr/share/license/%{name}
255     %{_datadir}/*
256 %endif
257
258 %if "%{_repository}" == "mobile"
259     /usr/share/*
260     /usr/share/license/%{name}
261 %endif
262
263 %files devel
264 %defattr(-,root,root,-)
265 %{_includedir}/*
266 %{_libdir}/pkgconfig/*