1 ################################################################################
2 # OBS Project config for Tizen:Mobile
5 # Joonsub Lee <joon-sub.lee@samsung.com>
7 # vim: set syntax=spec:
8 ################################################################################
10 Patterntype: rpm-md comps
11 Release: <CI_CNT>.<B_CNT>
13 Support: build-compare build-mkbaselibs
14 Support: rpmlint-mini rpmlint-tizen
16 ############################# conflicts resolution #############################
18 FileProvides: /usr/sbin/groupadd pwdutils
23 ############################# profile definition ###############################
25 %define profile mobile
28 # For classifying debug/release mode
30 %tizen_build_devel_mode 1
33 # %release_name and %tizen_full_version are used in platform/upstream/tizen-release
37 %release_name Tizen3/Mobile
39 %tizen_version_major 3
40 %tizen_version_minor 0
41 %tizen_version_patch 0
43 %tizen_version %{tizen_version_major}.%{tizen_version_minor}
44 %tizen_full_version %{tizen_version}.%{tizen_version_patch}
53 %_default_patch_fuzz 2
56 ############################# display system ###################################
58 ########## display system selection ##########
60 # selection of the display system
61 # this selection is done for each repository
64 # |----------------------------------------------------
65 # | wayland | x | meaning
66 # |----------------------------------------------------
67 # | | 1 | pure X11 platform(no wayland)
68 # | 1 | | pure wayland platform (no X11)
69 # | 1 | 1 | wayland but X compatibility
70 # | | | no X and no wayland
71 # |----------------------------------------------------
73 # Owner: Stephane <stephane.desneux@open.eurogiciel.org>
75 ########## RDP flag ##########
77 # enable/disable RDP (remote desktop protocol) for wayland
78 # flag: _with_rdp, used in repositories
79 # Affects: weston, freerdp
80 # Owner: Manuel <manuel.bachmann@open.eurogiciel.org>
82 ########## mesa activation ##########
89 %ifarch %arm armv7l aarch64
90 Substitute: mesa-devel pkgconfig(glesv2)
91 #FIXME Substitute: pkgconfig(egl)
94 ########## coregl ##########
96 Prefer: coregl coregl-devel
97 Prefer: libwayland-egl libwayland-egl-devel
98 Substitute: mesa-libGLESv2 coregl
99 Substitute: mesa-libEGL coregl
102 ###################### Activate KDBUS ######################
103 # This configuration flag enables the support of KDBUS
105 #%if "%_repository" == "arm64-wayland"
107 #%define _with_kdbus 1
115 ############################# wayland repositories #############################
117 %if "%_repository" == "atom-wayland" || "%_repository" == "x86_64-wayland" || "%_repository" == "arm-wayland" || "%_repository" == "arm64-wayland" || "%_repository" == "target-TM1"
119 Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2)
120 Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
122 %define _with_wayland 1
132 ############################# X11 repositories #################################
134 %if "%_repository" == "atom-x11" || "%_repository" == "x86_64-x11" || "%_repository" == "arm-x11" || "%_repository" == "arm64-x11"
135 Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2) pkgconfig(gl)
136 Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1_cm) pkgconfig(gl)
146 ############################# emulator repositories ############################
148 %if "%_repository" == "emulator32-wayland" || "%_repository" == "emulator64-wayland"
150 Substitute: mesa-libGLESv2 coregl
151 Substitute: mesa-libEGL coregl
152 Substitute: mesa-devel pkgconfig(glesv2)
154 Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2)
155 Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
158 Prefer: libwayland-egl
159 Prefer: libwayland-egl-devel
160 Prefer: emulator-yagl emulator-yagl-devel
163 %define _with_wayland 1
164 %define _with_emulator 1
173 %if "%_repository" == "target-TM1"
176 %tizen_target_name TM1
181 ############################# misc config flags ################################
183 # This build macro controls the libdlog output. If enabled,
184 # libdlog writes to Systemd Journal. If disabled, libdlog writes to kernel Android
185 # logger FIFO. Affects: dlog.
186 # Owner: Mikko <mikko.ylinen@intel.com>
188 %_with_dlog_to_systemd_journal 1
191 # Macro used to handle bluetooth popups without syspopup/bt-syspopup which needs OSP .
192 # In IVI, this macro permits to address bluetooth notifications (using C API) to notification-service daemon.
193 # Then homescreen is supposed to deal with those notifications and display relevant popups.
194 # Affects: bluetooth-frwk
195 # Owner: Corentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
197 %_with_bluetooth_frwk_libnotification 1
200 # This build macro controls whether the OS uses
201 # legacy nfc-manager or neard enabled nfc-manager-neard. If enabled,
202 # nfc-manager-neard is used. Affects: nfc CAPI, emulator-plugin-nfc
203 # Owner: Arron Wang <arron.wang@intel.com>
208 # Uses mobile-specific Samsung patches for PulseAudio. Tizen Mobile needs
209 # this -> Tizen Mobile is compiled with this option.
210 # Owner: Ismo Puustinen <ismo.puustinen@intel.com>
211 # FIXME: Why this extra define in the obs config ?
212 %define _with_pulseaudio_samsung_policy 1
214 %_with_pulseaudio_samsung_policy 1
217 # Activate introspection
218 # This is needed on GuPNP to build Rygel correctly in IVI
219 # Impacts potentially packages that use gobject-introspection
220 # Owner: Mikko <mikko.ylinen@intel.com>
222 %_with_introspection 1
225 ############################# build config #####################################
227 %define gcc_version 49
232 ########## targets ##########
235 Target: i686-tizen-linux
239 Target: armv7hl-tizen-linux
243 Target: armv7l-tizen-linux
247 Target: aarch64-tizen-linux
250 ########## cross build ##########/ex
254 # cross build support for the build hosts
255 Preinstall: qemu-linux-user-cross-arm
256 Keep: qemu-linux-user-cross-arm
260 Preinstall: qemu-accel-armv7hl
261 Runscripts: qemu-accel-armv7hl
262 Preinstall: libmount libblkid libuuid
266 Preinstall: qemu-accel-armv7l-cross-arm
267 Runscripts: qemu-accel-armv7l-cross-arm
268 Preinstall: libmount libblkid libuuid
273 Preinstall: qemu-linux-user-cross-arm
274 Keep: qemu-linux-user-cross-arm
275 Preinstall: qemu-accel-aarch64-cross-aarch64
276 Runscripts: qemu-accel-aarch64-cross-aarch64
277 Preinstall: libmount libblkid libuuid
280 ########## exports for different architectures ##########
282 ExportFilter: \.armv7l\.rpm$ armv7l
283 ExportFilter: \.aarch64\.rpm$ aarch64
284 ExportFilter: \.x86_64\.rpm$ x86_64
286 ########## buildroot config ##########
288 Preinstall: setup filesystem
291 Preinstall: bash bzip2 coreutils diffutils grep rpm
292 Preinstall: glibc libacl libattr
294 Preinstall: libgcc_s1
295 Preinstall: libpopt sed tar zlib
296 Preinstall: libncurses libreadline
297 Preinstall: libelf libbz2
299 Preinstall: nss nspr libfreebl3 libsoftokn3
302 Preinstall: smack libsmack libxml2 libmagic libmagic-data
303 Preinstall: libsqlite
304 #Preinstall: rpm-security-plugin
305 Preinstall: util-linux
307 VMinstall: perl libmount libblkid libext2fs libuuid grep libpcre util-linux libsmartcols
309 Required: binutils gcc glibc rpm-build libtool
311 Support: glibc-locale
314 Support: cpio findutils
315 Support: file findutils zlib bzip2
316 Support: gzip hostname net-tools
317 Support: make patch sed gawk tar grep coreutils pkg-config
321 Support: which elfutils
322 Support: update-alternatives
325 # Support: python-accel-armv7l-cross-arm
328 # Support: python-accel-aarch64-cross-aarch64
331 # FIXME: TO REMOVE (? comes from IVI)
334 Keep: cpp%{gcc_version} gcc%{gcc_version} gcc%{gcc_version}-ada libstdc++%{gcc_version}
335 Keep: libstdc++%{gcc_version}-devel gcc%{gcc_version}-c++
336 Keep: cpp gcc libstdc++
338 Keep: binutils cpp libmagic-data file findutils gawk gcc gcc-c++
339 Keep: gdbm gzip libada libunwind glibc-devel libpcre xz-lzma-compat
340 Keep: make gmp libcap groff cpio
341 Keep: patch rpm-build nss nspr elfutils python grep libgcc gcc-c++
342 Keep: kernel-headers perl-libs perl
343 Keep: pkgconfig glib2 tizen-rpm-config
344 Keep: libmpc libmpfr libppl libgmp libppl_c
345 Keep: libcloog libppl libgmpxx
346 Keep: nss-softokn-freebl libmagic libmagic-data
348 Keep: update-alternatives
349 Prefer: libstdc++%{gcc_version} libgcc%{gcc_version}
350 Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit
352 Substitute: gettext gettext-tools
355 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
357 Substitute: glibc-devel-32bit
360 ########## compilation flags ##########
361 Optflags: armv7l -O2 -g2 -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -fmessage-length=0 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -Wp,-D__SOFTFP__
362 Optflags: aarch64 -O2 -g2 -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector -Wformat -Wformat-security -fmessage-length=0 -march=armv8-a+fp+simd+crc+crypto
363 Optflags: i686 -O2 -g2 -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -fmessage-length=0 -m32 -march=i686 -mtune=i686 -msse4.2 -mfpmath=sse -fasynchronous-unwind-tables -fno-omit-frame-pointer
364 Optflags: x86_64 -O2 -g2 -feliminate-unused-debug-types -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=32 -Wformat -Wformat-security -fmessage-length=0 -m64 -march=corei7 -msse4.2 -mtune=corei7-avx -mfpmath=sse -fasynchronous-unwind-tables -fno-omit-frame-pointer -fipa-cp-clone