%define _project Tizen:3.0:TV

### from Tizen:3.0:Base
%define _repository emulator32

Macros:
%vendor obs://build.tizen.org/Tizen:3.0:TV
%_project Tizen:3.0:TV

### from Tizen:3.0:Base

%_repository emulator32
:Macros

Substitute: python-accel-armv7l-cross-arm python-accel-armv7l
Substitute: python-accel-aarch64-cross-aarch64 python-accel-aarch64
################################################################################
# OBS Project config for Tizen:Base
#
# RE contacts:
#
#
# vim: set syntax=spec:
################################################################################

Patterntype: rpm-md comps
Release: <CI_CNT>.<B_CNT>
Support: build
Support: build-compare build-mkbaselibs
Support: rpmlint-mini rpmlint-tizen

############################# conflicts resolution #############################

Prefer: util-linux

############################# base definition ###############################
# %release_name and %tizen_full_version are used in platform/upstream/tizen-release

Macros:
%tizen_version_major 3
%tizen_version_minor 0
%tizen_version_patch 0

%tizen_version %{tizen_version_major}.%{tizen_version_minor}
%tizen_full_version %{tizen_version}.%{tizen_version_patch}
%tizen %tizen_version
%vendor tizen
%_vendor tizen
%_with_tizen 1

%check exit 0
%run_check_section 0
%opensuse_bs 1
%_default_patch_fuzz   2
:Macros


############################# build config #####################################

%define gcc_version 49
Macros:
%gcc_version 49
:Macros

########## targets ##########

%ifarch i586
Target: i686-tizen-linux
%endif

%ifarch armv7hl
Target: armv7hl-tizen-linux
%endif

%ifarch armv7l
Target: armv7l-tizen-linux
%endif

%ifarch aarch64
Target: aarch64-tizen-linux
%endif

########## cross build ##########

%ifarch %arm armv7l aarch64
Hostarch: x86_64
# cross build support for the build hosts
Preinstall: qemu-linux-user-cross
Runscripts: qemu-linux-user-cross
Keep: qemu-linux-user-cross
%endif

%ifarch armv7l
Preinstall: qemu-accel-armv7l
Runscripts: qemu-accel-armv7l
Preinstall: libmount libblkid libuuid
%endif

%ifarch aarch64
Preinstall: qemu-accel-aarch64
Runscripts: qemu-accel-aarch64
Preinstall: libmount libblkid libuuid
%endif # aarch64

%ifarch %arm armv7l aarch64
%define speedpython 1
Macros:
%speedpython 1
:Macros
%endif

%if %speedpython
%ifarch armv7l
Macros:
%en_speedpython BuildRequires: python-accel-armv7l
%no_speedpython BuildRequires: -python-accel-armv7l
:Macros
%endif

%ifarch aarch64
Macros:
%en_speedpython BuildRequires: python-accel-aarch64
%no_speedpython BuildRequires: -python-accel-aarch64
:Macros
%endif # aarch64
%endif

########## exports for different architectures ##########

ExportFilter: \.armv7l\.rpm$ armv7l
ExportFilter: \.aarch64\.rpm$ aarch64
ExportFilter: \.x86_64\.rpm$ x86_64

########## buildroot config ##########

Preinstall: setup filesystem
RunScripts: setup

Preinstall: bash bzip2 coreutils diffutils grep rpm
Preinstall: glibc libacl libattr
Preinstall: libcap
Preinstall: libgcc
Preinstall: libpopt sed tar zlib
Preinstall: libncurses libreadline
Preinstall: libelf libbz2
Preinstall: liblzma
Preinstall: nss nspr libfreebl3 libsoftokn3
Preinstall: libmagic
Preinstall: liblua
Preinstall: smack libsmack libxml2 libmagic  libmagic-data
Preinstall: libsqlite
#Preinstall: rpm-security-plugin
Preinstall: util-linux util-linux-su

VMinstall: perl libmount libblkid libext2fs libuuid  grep libpcre util-linux libsmartcols

Required: binutils gcc glibc rpm-build libtool
Required: gcc-c++

Support: glibc-locale
Support: perl
Support: hostname
Support: cpio findutils
Support: file findutils zlib bzip2
Support: gzip hostname net-tools
Support: make  patch sed  gawk tar grep coreutils pkg-config
Support: m4  tzdata
Support: util-linux
Support: less
Support: which  elfutils
Support: update-alternatives
Support: libstdc++-devel
Support: cpp
Support: libatomic
Support: libgomp
Support: libitm

Keep: libstdc++-devel
Keep: cpp gcc libstdc++
Keep: pam
Keep: binutils cpp  libmagic-data file findutils gawk gcc  gcc-c++
Keep: gdbm gzip libada libunwind  glibc-devel libpcre xz-lzma-compat
Keep: make  gmp libcap groff cpio
Keep: patch rpm-build  nss nspr elfutils python grep libgcc gcc-c++
Keep: kernel-headers  perl-libs perl
Keep: pkgconfig glib2 tizen-rpm-config
Keep: libmpc libmpfr libppl libgmp libppl_c
Keep: libcloog libppl libgmpxx
Keep: nss-softokn-freebl libmagic libmagic-data
Keep: setup
Keep: update-alternatives
Keep: cpp
Keep: gcc-c++
Keep: libatomic
Keep: libgomp
Keep: libitm

Substitute: gettext gettext-tools

%ifarch x86_64
Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
Substitute: libgcc_s1-32bit libgcc-32bit
%else
Substitute: glibc-devel-32bit
%endif

########## compilation flags ##########
%define __global_cflags -O2 -g2 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector -Wformat-security -fmessage-length=0 -Wl,--as-needed

Optflags: armv7l %{__global_cflags} --param=ssp-buffer-size=4 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -mthumb -Wp,-D__SOFTFP__ -Wl,-O1 -Wl,--hash-style=gnu -Wa,-mimplicit-it=thumb
Optflags: aarch64 %{__global_cflags} -feliminate-unused-debug-types -Wformat -march=armv8-a+fp+simd+crc+crypto -mtune=cortex-a57.cortex-a53
Optflags: i686 %{__global_cflags} -feliminate-unused-debug-types --param=ssp-buffer-size=4 -fdiagnostics-color=never -m32 -march=i686 -mtune=i686 -msse4.2 -mfpmath=sse -fasynchronous-unwind-tables -fno-omit-frame-pointer
Optflags: x86_64 %{__global_cflags} -feliminate-unused-debug-types --param=ssp-buffer-size=4 -fdiagnostics-color=never -m64 -march=corei7 -msse4.2 -mtune=corei7-avx -mfpmath=sse -fasynchronous-unwind-tables -fno-omit-frame-pointer
### from Tizen:3.0:TV
%define _repository emulator32-wayland

Macros:

%distribution Tizen:3.0:TV / emulator32-wayland
%_project Tizen:3.0:TV

### from Tizen:3.0:TV

%_repository emulator32-wayland
:Macros

################################################################################
# OBS Project config for Tizen:TV
#
# RE contacts:
# Joonsub Lee (joon-sub.lee@samsung.com)
# Hyunggi Lee (hyunggi.lee@samsung.com)
#
# vim: set syntax=spec:
################################################################################

############################# conflicts resolution #############################

FileProvides: /usr/sbin/groupadd shadow-utils
Prefer: libtapi-devel
Prefer: libpci-devel
Prefer: bluetooth-tools-no-firmware

############################# profile definition ###############################

%define profile tv
%define _with_tizen 1

# For classifying debug/release mode
Macros:
%tizen_build_devel_mode 1
:Macros

# %release_name and %tizen_full_version are used in platform/upstream/tizen-release

Macros:
%profile tv
%release_name Tizen3/TV

%tizen_version_major 3
%tizen_version_minor 0
%tizen_version_patch 0

%tizen_version %{tizen_version_major}.%{tizen_version_minor}
%tizen_full_version %{tizen_version}.%{tizen_version_patch}
%tizen %tizen_version
%vendor tizen
%_vendor tizen
%_with_tizen 1

%check exit 0
%run_check_section 0
%opensuse_bs 1
%_default_patch_fuzz   2
:Macros

############################# display system ###################################

########## display system selection ##########

# selection of the display system
# this selection is done for each repository
#
# flags combinations:
# |----------------------------------------------------
# | wayland |  x  | meaning
# |----------------------------------------------------
# |         |  1  | pure X11 platform(no wayland)
# |   1     |     | pure wayland platform (no X11)
# |   1     |  1  | wayland but X compatibility
# |         |     | no X and no wayland
# |----------------------------------------------------
#
# Owner: Stephane <stephane.desneux@open.eurogiciel.org>

########## RDP flag ##########

# enable/disable RDP (remote desktop protocol) for wayland
# flag: _with_rdp, used in repositories
# Affects: weston, freerdp
# Owner: Manuel <manuel.bachmann@open.eurogiciel.org>

########## mesa activation ##########

%define _with_mesa 1
Macros:
%_with_mesa 1
:Macros

%ifarch %arm armv7l aarch64
   Substitute: mesa-devel pkgconfig(glesv2)
   #FIXME Substitute: pkgconfig(egl)
%endif

########## coregl ##########
%ifarch %arm aarch64
Prefer: coregl coregl-devel
Prefer: libwayland-egl libwayland-egl-devel
Substitute: mesa-libGLESv2 coregl
Substitute: mesa-libEGL coregl
%endif

###################### Activate KDBUS ######################
# This configuration flag enables the support of KDBUS and Cynara-based Dbus Policy

%if "%_repository" == "arm-wayland"

%define _with_kdbus 1
%define _with_dbuspolicy 1

Macros:
%_with_kdbus 1
%_with_dbuspolicy 1
:Macros

%endif

############################# wayland repositories #############################

%if "%_repository" == "ia32-wayland" || "%_repository" == "x86_64-wayland" || "%_repository" == "arm-wayland"

Substitute: pkgconfig(gles20)  pkgconfig(egl) pkgconfig(glesv2)
Substitute: pkgconfig(gles11)  pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)

%define _with_wayland 1
%define _with_rdp 1

Macros:
%_with_wayland 1
%_with_rdp 1
:Macros

%endif

############################# emulator repositories ############################

%if "%_repository" == "emulator32-wayland" || "%_repository" == "emulator64-wayland"

Substitute: mesa-devel pkgconfig(glesv2)

Substitute: pkgconfig(gles20)  pkgconfig(egl) pkgconfig(glesv2)
Substitute: pkgconfig(gles11)  pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)

Prefer: libgbm
Prefer: coregl coregl-devel
Prefer: emulator-yagl emulator-yagl-devel

%define _with_wayland 1
%define _with_emulator 1

Macros:
%_with_wayland 1
%_with_emulator 1
:Macros

%endif

############################# misc config flags ################################

# Activate introspection
# This is needed on GuPNP to build Rygel correctly in IVI
# Impacts potentially packages that use gobject-introspection
# Owner: Mikko <mikko.ylinen@intel.com>
Macros:
%_with_introspection 1
:Macros

############################# build config #####################################
# derived from Tizen:Base
################################################################################

########## compilation flags ##########
# derived from Tizen:Base
#######################################