b584d5bfbdc0ca8b00f2c613e593cc2599a2f785
[apps/native/starter.git] / packaging / starter.spec
1 %bcond_with wayland
2 %define __usrdir /usr/lib/systemd/user
3 %define __sysdir /usr/lib/systemd/system
4
5 Name:           starter
6 Summary:        This is a core application
7 Version:        0.5.53
8 Release:        1
9 Group:          Applications/Core Applications
10 License:        Apache-2.0
11 Source0:        %{name}-%{version}.tar.gz
12 Source1:        %{name}.service
13 Source2:        %{name}_common.service
14 Source3:        %{name}.path
15 Source4:        %{name}@.service
16
17 BuildRequires:  cmake
18 BuildRequires:  pkgconfig(appcore-efl)
19 BuildRequires:  pkgconfig(aul)
20 BuildRequires:  pkgconfig(capi-appfw-application)
21 BuildRequires:  pkgconfig(capi-appfw-app-manager)
22 BuildRequires:  pkgconfig(capi-system-media-key)
23 BuildRequires:  pkgconfig(capi-network-bluetooth)
24 BuildRequires:  pkgconfig(capi-system-system-settings)
25
26 BuildRequires:  tts
27 BuildRequires:  tts-devel
28 BuildRequires:  pkgconfig(capi-message-port)
29 BuildRequires:  pkgconfig(capi-telephony)
30 BuildRequires:  pkgconfig(capi-system-info)
31 BuildRequires:  pkgconfig(efl-extension)
32 BuildRequires:  pkgconfig(libsystemd-daemon)
33 BuildRequires:  pkgconfig(ode)
34
35 BuildRequires:  pkgconfig(rua)
36 BuildRequires:  pkgconfig(feedback)
37 BuildRequires:  pkgconfig(db-util)
38 BuildRequires:  pkgconfig(dlog)
39 BuildRequires:  pkgconfig(ecore)
40 BuildRequires:  pkgconfig(ecore-wl2)
41 BuildRequires:  pkgconfig(edje)
42 BuildRequires:  pkgconfig(eina)
43 BuildRequires:  pkgconfig(elementary)
44 BuildRequires:  pkgconfig(evas)
45 BuildRequires:  pkgconfig(glib-2.0)
46 BuildRequires:  pkgconfig(syspopup-caller)
47 BuildRequires:  pkgconfig(ui-gadget-1)
48 BuildRequires:  pkgconfig(vconf)
49 BuildRequires:  pkgconfig(alarm-service)
50 BuildRequires:  pkgconfig(pkgmgr-info)
51 BuildRequires:  pkgconfig(deviced)
52 BuildRequires:  pkgconfig(edbus)
53 BuildRequires:  pkgconfig(dbus-1)
54 BuildRequires:  cmake
55 BuildRequires:  edje-bin
56 BuildRequires:  gettext
57 BuildRequires:  gettext-tools
58 Requires(post): /usr/bin/vconftool
59 Requires:       %{name}-compat = %{version}-%{release}
60 Recommends:     %{name}-profile_common = %{version}-%{release}
61
62 %if !%{with wayland}
63 BuildRequires:  pkgconfig(utilX)
64 %endif
65
66 %description
67 This is for managing life-cycle of core applications.
68
69 %package profile_common
70 Summary:        Starter binary for common profile
71 Provides:       %{name}-compat = %{version}-%{release}
72 Provides:       %{name}-profile_tv = %{version}-%{release}
73 Provides:       %{name}-profile_ivi = %{version}-%{release}
74 Conflicts:      %{name}-profile_mobile
75 Conflicts:      %{name}-profile_wearable
76 %description profile_common
77 Starter has different build options and source codes for each profile.
78 This is for common/tv/ivi.
79
80 %package profile_mobile
81 Summary:        Starter binary for mobile profile
82 Provides:       %{name}-compat = %{version}-%{release}
83 Conflicts:      %{name}-profile_common
84 Conflicts:      %{name}-profile_wearable
85 %description profile_mobile
86 Starter has different build options and source codes for each profile.
87 This is for mobile.
88
89 %package profile_wearable
90 Summary:        Starter binary for wearable profile
91 Provides:       %{name}-compat = %{version}-%{release}
92 Conflicts:      %{name}-profile_common
93 Conflicts:      %{name}-profile_mobile
94 %description profile_wearable
95 Starter has different build options and source codes for each profile.
96 This is for wearable.
97
98 %prep
99 %setup -q
100
101 %build
102 %if 0%{?sec_build_binary_debug_enable}
103 export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE"
104 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
105 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
106 %endif
107
108 %ifarch %{arm}
109 export CFLAGS="$CFLAGS -DTIZEN_ARCH_ARM"
110 export CXXFLAGS="$CXXFLAGS -DTIZEN_ARCH_ARM"
111 %else
112 # TODO: x86/64 != EMULATOR. Please fix it with consulting from SDK (changseok oh)
113 export CFLAGS="$CFLAGS -DTIZEN_ARCH_EMULATOR"
114 export CXXFLAGS="$CXXFLAGS -DTIZEN_ARHC_EMULATOR"
115 %endif
116
117 %ifarch aarch64
118 export CFLAGS="$CFLAGS -DTIZEN_ARCH_ARM64"
119 export CXXFLAGS="$CXXFLAGS -DTIZEN_ARCH_ARM64"
120 %endif
121 %if %{with wayland}
122 export WAYLAND_SUPPORT=On
123 export X11_SUPPORT=Off
124 export CFLAGS+=" -DEFL_BETA_API_SUPPORT"
125 %else
126 export WAYLAND_SUPPORT=Off
127 export X11_SUPPORT=On
128 %endif
129
130 export CFLAGS_COMMON="$CFLAGS"
131 export CXXFLAGS_COMMON="$CXXFLAGS"
132
133 # wearable
134 export CFLAGS="$CFLAGS_COMMON -DTIZEN_PROFILE_WEARABLE"
135 export CXXFLAGS="$CXXFLAGS_COMMON -DTIZEN_PROFILE_WEARABLE"
136 mkdir -p build_wearable
137 pushd build_wearable
138 cmake .. -DTIZEN_PROFILE_NAME=WEARABLE -DCMAKE_INSTALL_PREFIX=%{_prefix}/wearable/ -DWAYLAND_SUPPORT=${WAYLAND_SUPPORT} -DX11_SUPPORT=${X11_SUPPORT}
139 make
140 popd
141
142 # mobile
143 export CFLAGS="$CFLAGS_COMMON -DTIZEN_PROFILE_MOBILE"
144 export CXXFLAGS="$CXXFLAGS_COMMON -DTIZEN_PROFILE_MOBILE"
145 mkdir -p build_mobile
146 pushd build_mobile
147 cmake .. -DTIZEN_PROFILE_NAME=MOBILE -DCMAKE_INSTALL_PREFIX=%{_prefix}/mobile/ -DWAYLAND_SUPPORT=${WAYLAND_SUPPORT} -DX11_SUPPORT=${X11_SUPPORT}
148 make
149 popd
150
151 # common
152 export CFLAGS="$CFLAGS_COMMON -DTIZEN_PROFILE_COMMON"
153 export CXXFLAGS="$CXXFLAGS_COMMON -DTIZEN_PROFILE_COMMON"
154 mkdir -p build_common
155 pushd build_common
156 cmake .. -DTIZEN_PROFILE_NAME=COMMON -DCMAKE_INSTALL_PREFIX=%{_prefix} -DWAYLAND_SUPPORT=${WAYLAND_SUPPORT} -DX11_SUPPORT=${X11_SUPPORT}
157 make
158 popd
159
160 %install
161 pushd build_wearable
162 %make_install
163 popd
164
165 pushd build_mobile
166 %make_install
167 popd
168
169 pushd build_common
170 %make_install
171 popd
172
173 # Remove commonly used parts (locale)
174 rm -Rf %{buildroot}%{_prefix}/mobile/share/locale
175 rm -Rf %{buildroot}%{_prefix}/wearable/share/locale
176
177 # Rename for subpackages, resolved by post scripts
178 mv %{buildroot}%{_prefix}/mobile/bin/starter %{buildroot}%{_prefix}/bin/starter.mobile
179 mv %{buildroot}%{_prefix}/wearable/bin/starter %{buildroot}%{_prefix}/bin/starter.wearable
180
181 # Files for !(mobile or wearable)
182 mkdir -p %{buildroot}%{__usrdir}/default.target.wants
183 install -m 0644 %SOURCE2 %{buildroot}%{__usrdir}/starter.service.common
184 # .common is to be renamed by %post script.
185 install -m 0644 %SOURCE3 %{buildroot}%{__usrdir}/starter.path
186 ln -s ../starter.path %{buildroot}%{__usrdir}/default.target.wants/starter.path
187 # Files for mobile or wearable
188 mkdir -p %{buildroot}%{__usrdir}/basic.target.wants
189 install -m 0644 %SOURCE1 %{buildroot}%{__usrdir}/starter.service
190 ln -s ../starter.service %{buildroot}%{__usrdir}/basic.target.wants/starter.service
191
192 mkdir -p %{buildroot}%{__sysdir}/user-basic@.target.wants
193 install -m 0644 %SOURCE4 %{buildroot}%{__sysdir}/starter@.service
194 ln -s ../starter@.service %{buildroot}%{__sysdir}/user-basic@.target.wants/starter@.service
195
196 %find_lang %{name}
197
198 %post
199 sync
200
201 %post profile_common
202 mv %{__usrdir}/starter.service.common %{__usrdir}/starter.service
203 %preun profile_common
204 mv %{__usrdir}/starter.service %{__usrdir}/starter.service.common
205
206 %post profile_mobile
207 mv %{_bindir}/starter.mobile %{_bindir}/starter
208 %preun profile_mobile
209 mv %{_bindir}/starter %{_bindir}/starter.mobile
210
211 %post profile_wearable
212 mv %{_bindir}/starter.wearable %{_bindir}/starter
213 %preun profile_wearable
214 mv %{_bindir}/starter %{_bindir}/starter.wearable
215
216
217 %files -f %{name}.lang
218 %manifest starter.manifest
219 %defattr(-,root,root,-)
220 %license LICENSE
221
222 %files profile_common
223 %{_bindir}/starter
224 %{__usrdir}/starter.path
225 %{__usrdir}/default.target.wants/starter.path
226 %{__usrdir}/starter.service.common
227 %manifest starter.manifest
228
229 %files profile_mobile
230 %{_bindir}/starter.mobile
231 %{__usrdir}/basic.target.wants/starter.service
232 %{__usrdir}/starter.service
233 %{__sysdir}/user-basic@.target.wants/starter@.service
234 %{__sysdir}/starter@.service
235 %manifest starter.manifest
236
237 %files profile_wearable
238 %{_bindir}/starter.wearable
239 %{__usrdir}/basic.target.wants/starter.service
240 %{__usrdir}/starter.service
241 %{__sysdir}/user-basic@.target.wants/starter@.service
242 %{__sysdir}/starter@.service
243 %manifest starter.manifest