[tizen v3.0] Improving build time with optional rpmlint
authorYoungsoo Choi <kenshin.choi@samsung.com>
Thu, 26 Feb 2015 11:07:40 +0000 (20:07 +0900)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 10 Jul 2018 06:57:09 +0000 (06:57 +0000)
The rpmlint, verifying syntax of spec file, has been
supported from tizen v3.0.

GBS build always runs rpmlint at the end of the build,
and it takes too much time.

To improve the build time for developers,
this patch provides a option for enabling or disabling rpmlint.

To enable the rpmlint, following command can be used.
>> ./build/build_tv.sh -P tztv_v3.0 --define '_rpmlint 1'

By default, the rpmlint is disabled.

Bug: http://web.sec.samsung.net/bugzilla/show_bug.cgi?id=12968

Change-Id: I687582583b8eb8b0747a7f1355f2e9d32075e120
Signed-off-by: Youngsoo Choi <kenshin.choi@samsung.com>
tizen_src/build/common.sh
tizen_src/build/tzmb_v3.0_arm-wayland.conf [new file with mode: 0644]
tizen_src/build/tzmb_v3.0_arm-x11.conf [new file with mode: 0644]
tizen_src/build/tztv_v3.0_arm-wayland.conf [new file with mode: 0644]
tizen_src/build/tztv_v3.0_arm-x11.conf [new file with mode: 0644]

index 5227876..a899ad8 100755 (executable)
@@ -209,6 +209,10 @@ function setupAndExecuteTargetBuild() {
     EXTRA_PACK_OPTS="--extra-packs python-base-x86-arm,python-x86-arm,python-xml-x86-arm"
   fi
 
+  if [ "$(echo "${PROFILE_NAME}" | grep -Po "v3.0")" != "" ]; then
+    prepareTizen3Build $PROFILE_NAME
+  fi
+
   local count=0
   while [[ $# > 0 ]]; do
     count=$(( $count + 1 ))
@@ -242,5 +246,51 @@ function setupAndExecuteTargetBuild() {
   rm -f packaging
   ln -sf tizen_src/packaging packaging
 
-  gbs $CONF_FLAG build $PROFILE_FLAG --include-all -A $ARCHITECTURE --incremental "${ARGS[@]}"
+  gbs $CONF_FLAG build $PROFILE_FLAG --include-all -A $ARCHITECTURE --incremental "${ARGS[@]}" $BUILD_CONF_OPTS $EXTRA_PACK_OPTS
+}
+
+function prepareTizen3Build() {
+  local PROFILE_NAME=$1
+  BUILD_CONF_OPTS=""
+
+  # In case of '_rpmlint 1', build.conf of gbs repo will be used, enabling rpmlint.
+  # Otherwise, locally prepared build.conf will be used, disabling rpmlint.
+  local PREVIOUS_BUILD_CONF_PATH=""
+  local LOCAL_BUILD_CONF_PATH=""
+
+  if [ "$PROFILE_NAME" == "tztv_v3.0" ]; then
+    PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tztv_v3.0_arm-x11.conf"
+    LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tztv_v3.0_arm-x11.conf"
+  elif [ "$PROFILE_NAME" == "tzmb_v3.0" ]; then
+    PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tzmb_v3.0_arm-x11.conf"
+    LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tzmb_v3.0_arm-x11.conf"
+  elif [ "$PROFILE_NAME" == "tztv_v3.0_arm-wayland" ]; then
+    PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tztv_v3.0_arm-walynad.conf"
+    LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tztv_v3.0_arm-wayland.conf"
+  elif [ "$PROFILE_NAME" == "tzmb_v3.0_arm-wayland" ]; then
+    PREVIOUS_BUILD_CONF_PATH="/var/tmp/$USER-gbs/tzmb_v3.0_arm-walynad.conf"
+    LOCAL_BUILD_CONF_PATH="$TOPDIR/tizen_src/build/tzmb_v3.0_arm-wayland.conf"
+  fi
+
+  local PREVIOUS_RPMLINT="!rpmlint"
+  if [ ! -f "$PREVIOUS_BUILD_CONF_PATH" ]; then
+    PREVIOUS_RPMLINT=""
+  elif [ "$(grep -Po "\!rpmlint" "$PREVIOUS_BUILD_CONF_PATH" | uniq -d)" != "!rpmlint" ]; then
+    PREVIOUS_RPMLINT="rpmlint"
+  fi
+
+  if [ "$LOCAL_BUILD_CONF_PATH" != "" ]; then
+    BUILD_CONF_OPTS="-D $LOCAL_BUILD_CONF_PATH"
+  fi
+
+  if [ "$(echo "$@" | grep -Po "_rpmlint\ 1")" == "" ]; then
+    if [ "$PREVIOUS_RPMLINT" == "rpmlint" ]; then
+      BUILD_CONF_OPTS+=" --clean"
+    fi
+  else
+    BUILD_CONF_OPTS=""
+    if [ "$PREVIOUS_RPMLINT" == "!rpmlint" ]; then
+      BUILD_CONF_OPTS="--clean"
+    fi
+  fi
 }
diff --git a/tizen_src/build/tzmb_v3.0_arm-wayland.conf b/tizen_src/build/tzmb_v3.0_arm-wayland.conf
new file mode 100644 (file)
index 0000000..4ba03d2
--- /dev/null
@@ -0,0 +1,337 @@
+%define _project Tizen:Mobile
+
+### from Tizen:Mobile
+%define _repository arm-wayland
+
+Macros:
+%vendor obs://build.tizen.org/Tizen:Mobile
+%_project Tizen:Mobile
+
+%distribution Tizen:Mobile / arm-wayland
+%_project Tizen:Mobile
+
+### from Tizen:Mobile
+
+%_repository arm-wayland
+:Macros
+
+################################################################################
+# OBS Project config for Tizen:Mobile
+#
+# RE contacts:
+# Joonsub Lee <joon-sub.lee@samsung.com>
+#
+# 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 #############################
+
+FileProvides: /usr/sbin/groupadd pwdutils
+Prefer: util-linux
+Prefer: libtapi-devel
+Prefer: libpci-devel
+
+############################# profile definition ###############################
+
+%define profile mobile
+%define _with_tizen 1
+
+# %release_name and %tizen_full_version are used in platform/upstream/tizen-release
+
+Macros:
+%profile mobile
+%release_name Tizen3/Mobile
+
+%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
+
+############################# wayland repositories #############################
+
+%if "%_repository" == "atom-wayland" || "%_repository" == "x86_64-wayland" || "%_repository" == "arm-wayland" || "%_repository" == "arm64-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
+
+############################# X11 repositories #################################
+
+%if "%_repository" == "atom-x11" || "%_repository" == "x86_64-x11" || "%_repository" == "arm-x11" || "%_repository" == "arm64-x11"
+Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2) pkgconfig(gl)
+Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1_cm) pkgconfig(gl)
+
+%define _with_x 1
+
+Macros:
+%_with_x 1
+:Macros
+
+%endif
+
+############################# emulator repositories ############################
+
+%if "%_repository" == "emulator32-wayland"
+
+Prefer: mesa-libGLESv2
+Prefer: libwayland-egl
+Prefer: libgbm
+Prefer: mesa-libGL
+Prefer: mesa-libEGL
+Prefer: emulator-yagl
+
+Substitute: pkgconfig(gles20)  pkgconfig(egl) pkgconfig(glesv2)
+Substitute: pkgconfig(gles11)  pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
+
+%define _with_wayland 1
+%define _with_emulator 1
+
+Macros:
+%_with_wayland 1
+%_with_emulator 1
+:Macros
+
+%endif
+
+############################# misc config flags ################################
+
+# This build macro controls the libdlog output. If enabled,
+# libdlog writes to Systemd Journal. If disabled, libdlog writes to kernel Android
+# logger FIFO. Affects: dlog.
+# Owner: Mikko <mikko.ylinen@intel.com>
+Macros:
+%_with_dlog_to_systemd_journal 1
+:Macros
+
+# Macro used to handle bluetooth popups without syspopup/bt-syspopup which needs OSP .
+# In IVI, this macro permits to address bluetooth notifications (using C API) to notification-service daemon.
+# Then homescreen is supposed to deal with those notifications and display relevant popups.
+# Affects: bluetooth-frwk
+# Owner: Corentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
+Macros:
+%_with_bluetooth_frwk_libnotification 1
+:Macros
+
+# This build macro controls whether the OS uses
+# legacy nfc-manager or neard enabled nfc-manager-neard. If enabled,
+# nfc-manager-neard is used. Affects: nfc CAPI, emulator-plugin-nfc
+# Owner: Arron Wang <arron.wang@intel.com>
+Macros:
+%_with_neard_nfc 1
+:Macros
+
+# Uses mobile-specific Samsung patches for PulseAudio. Tizen Mobile needs
+# this -> Tizen Mobile is compiled with this option.
+# Owner: Ismo Puustinen <ismo.puustinen@intel.com>
+# FIXME: Why this extra define in the obs config ?
+%define _with_pulseaudio_samsung_policy 1
+Macros:
+%_with_pulseaudio_samsung_policy 1
+:Macros
+
+# 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 #####################################
+
+%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 ##########/ex
+
+%ifarch %arm armv7l
+Hostarch: x86_64
+# cross build support for the build hosts
+Preinstall: qemu-linux-user-cross-arm
+Keep: qemu-linux-user-cross-arm
+%endif
+
+%ifarch armv7hl
+Preinstall: qemu-accel-armv7hl
+Runscripts: qemu-accel-armv7hl
+Preinstall: libmount libblkid libuuid
+%endif
+
+%ifarch armv7l
+Preinstall: qemu-accel-armv7l-cross-arm
+Runscripts: qemu-accel-armv7l-cross-arm
+Preinstall: libmount libblkid libuuid
+%endif
+
+%ifarch aarch64
+Hostarch: x86_64
+Preinstall: qemu-linux-user-cross-arm
+Keep: qemu-linux-user-cross-arm
+Preinstall: qemu-accel-aarch64-cross-aarch64
+Runscripts: qemu-accel-aarch64-cross-aarch64
+Preinstall: libmount libblkid libuuid
+%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_s1
+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
+
+VMinstall: perl libmount libblkid libext2fs libuuid  grep libpcre util-linux
+
+Required: binutils gcc glibc rpm-build libtool
+
+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
+
+# FIXME: TO REMOVE (? comes from IVI)
+Support: gcc-c++
+
+Keep: cpp%{gcc_version} gcc%{gcc_version} gcc%{gcc_version}-ada libstdc++%{gcc_version}
+Keep: libstdc++%{gcc_version}-devel gcc%{gcc_version}-c++
+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
+Prefer: libstdc++%{gcc_version} libgcc%{gcc_version}
+Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit
+
+Substitute: gettext gettext-tools
+
+%ifarch x86_64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+Substitute: glibc-devel-32bit
+%endif
+
+########## compilation flags ##########
+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__
+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
+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
+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
diff --git a/tizen_src/build/tzmb_v3.0_arm-x11.conf b/tizen_src/build/tzmb_v3.0_arm-x11.conf
new file mode 100644 (file)
index 0000000..1fdf0f2
--- /dev/null
@@ -0,0 +1,337 @@
+%define _project Tizen:Mobile
+
+### from Tizen:Mobile
+%define _repository arm-x11
+
+Macros:
+%vendor obs://build.tizen.org/Tizen:Mobile
+%_project Tizen:Mobile
+
+%distribution Tizen:Mobile / arm-x11
+%_project Tizen:Mobile
+
+### from Tizen:Mobile
+
+%_repository arm-x11
+:Macros
+
+################################################################################
+# OBS Project config for Tizen:Mobile
+#
+# RE contacts:
+# Joonsub Lee <joon-sub.lee@samsung.com>
+#
+# 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 #############################
+
+FileProvides: /usr/sbin/groupadd pwdutils
+Prefer: util-linux
+Prefer: libtapi-devel
+Prefer: libpci-devel
+
+############################# profile definition ###############################
+
+%define profile mobile
+%define _with_tizen 1
+
+# %release_name and %tizen_full_version are used in platform/upstream/tizen-release
+
+Macros:
+%profile mobile
+%release_name Tizen3/Mobile
+
+%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
+
+############################# wayland repositories #############################
+
+%if "%_repository" == "atom-wayland" || "%_repository" == "x86_64-wayland" || "%_repository" == "arm-wayland" || "%_repository" == "arm64-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
+
+############################# X11 repositories #################################
+
+%if "%_repository" == "atom-x11" || "%_repository" == "x86_64-x11" || "%_repository" == "arm-x11" || "%_repository" == "arm64-x11"
+Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2) pkgconfig(gl)
+Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1_cm) pkgconfig(gl)
+
+%define _with_x 1
+
+Macros:
+%_with_x 1
+:Macros
+
+%endif
+
+############################# emulator repositories ############################
+
+%if "%_repository" == "emulator32-wayland"
+
+Prefer: mesa-libGLESv2
+Prefer: libwayland-egl
+Prefer: libgbm
+Prefer: mesa-libGL
+Prefer: mesa-libEGL
+Prefer: emulator-yagl
+
+Substitute: pkgconfig(gles20)  pkgconfig(egl) pkgconfig(glesv2)
+Substitute: pkgconfig(gles11)  pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
+
+%define _with_wayland 1
+%define _with_emulator 1
+
+Macros:
+%_with_wayland 1
+%_with_emulator 1
+:Macros
+
+%endif
+
+############################# misc config flags ################################
+
+# This build macro controls the libdlog output. If enabled,
+# libdlog writes to Systemd Journal. If disabled, libdlog writes to kernel Android
+# logger FIFO. Affects: dlog.
+# Owner: Mikko <mikko.ylinen@intel.com>
+Macros:
+%_with_dlog_to_systemd_journal 1
+:Macros
+
+# Macro used to handle bluetooth popups without syspopup/bt-syspopup which needs OSP .
+# In IVI, this macro permits to address bluetooth notifications (using C API) to notification-service daemon.
+# Then homescreen is supposed to deal with those notifications and display relevant popups.
+# Affects: bluetooth-frwk
+# Owner: Corentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
+Macros:
+%_with_bluetooth_frwk_libnotification 1
+:Macros
+
+# This build macro controls whether the OS uses
+# legacy nfc-manager or neard enabled nfc-manager-neard. If enabled,
+# nfc-manager-neard is used. Affects: nfc CAPI, emulator-plugin-nfc
+# Owner: Arron Wang <arron.wang@intel.com>
+Macros:
+%_with_neard_nfc 1
+:Macros
+
+# Uses mobile-specific Samsung patches for PulseAudio. Tizen Mobile needs
+# this -> Tizen Mobile is compiled with this option.
+# Owner: Ismo Puustinen <ismo.puustinen@intel.com>
+# FIXME: Why this extra define in the obs config ?
+%define _with_pulseaudio_samsung_policy 1
+Macros:
+%_with_pulseaudio_samsung_policy 1
+:Macros
+
+# 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 #####################################
+
+%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 ##########/ex
+
+%ifarch %arm armv7l
+Hostarch: x86_64
+# cross build support for the build hosts
+Preinstall: qemu-linux-user-cross-arm
+Keep: qemu-linux-user-cross-arm
+%endif
+
+%ifarch armv7hl
+Preinstall: qemu-accel-armv7hl
+Runscripts: qemu-accel-armv7hl
+Preinstall: libmount libblkid libuuid
+%endif
+
+%ifarch armv7l
+Preinstall: qemu-accel-armv7l-cross-arm
+Runscripts: qemu-accel-armv7l-cross-arm
+Preinstall: libmount libblkid libuuid
+%endif
+
+%ifarch aarch64
+Hostarch: x86_64
+Preinstall: qemu-linux-user-cross-arm
+Keep: qemu-linux-user-cross-arm
+Preinstall: qemu-accel-aarch64-cross-aarch64
+Runscripts: qemu-accel-aarch64-cross-aarch64
+Preinstall: libmount libblkid libuuid
+%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_s1
+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
+
+VMinstall: perl libmount libblkid libext2fs libuuid  grep libpcre util-linux
+
+Required: binutils gcc glibc rpm-build libtool
+
+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
+
+# FIXME: TO REMOVE (? comes from IVI)
+Support: gcc-c++
+
+Keep: cpp%{gcc_version} gcc%{gcc_version} gcc%{gcc_version}-ada libstdc++%{gcc_version}
+Keep: libstdc++%{gcc_version}-devel gcc%{gcc_version}-c++
+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
+Prefer: libstdc++%{gcc_version} libgcc%{gcc_version}
+Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit
+
+Substitute: gettext gettext-tools
+
+%ifarch x86_64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+Substitute: glibc-devel-32bit
+%endif
+
+########## compilation flags ##########
+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__
+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
+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
+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
diff --git a/tizen_src/build/tztv_v3.0_arm-wayland.conf b/tizen_src/build/tztv_v3.0_arm-wayland.conf
new file mode 100644 (file)
index 0000000..fcf61ee
--- /dev/null
@@ -0,0 +1,384 @@
+%define _project Tizen:TV
+
+### from Tizen:TV
+%define _repository arm-wayland
+
+Macros:
+%vendor obs://build.tizen.org/Tizen:TV
+%_project Tizen:TV
+
+%distribution Tizen:TV / arm-wayland
+%_project Tizen:TV
+
+### from Tizen:TV
+
+%_repository arm-wayland
+:Macros
+
+################################################################################
+# OBS Project config for Tizen:TV
+#
+# RE contacts:
+# Joonsub Lee (joon-sub.lee@samsung.com)
+# Yooduck Seo (yooduck.seo@samsung.com)
+#
+# 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 #############################
+
+FileProvides: /usr/sbin/groupadd pwdutils
+Prefer: util-linux
+Prefer: libtapi-devel
+Prefer: libpci-devel
+
+############################# profile definition ###############################
+
+%define profile tv
+%define _with_tizen 1
+
+# %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
+
+############################# wayland repositories #############################
+
+%if "%_repository" == "ia32-wayland" || "%_repository" == "x86_64-wayland" || "%_repository" == "arm-wayland" || "%_repository" == "arm64-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
+
+############################# X11 repositories #################################
+
+%if "%_repository" == "ia32-x11" || "%_repository" == "x86_64-x11" || "%_repository" == "arm-x11" || "%_repository" == "arm64-x11" || "%_repository" == "x11"
+
+Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2) pkgconfig(gl)
+Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1_cm) pkgconfig(gl)
+
+%define _with_x 1
+
+Macros:
+%_with_x 1
+:Macros
+
+%endif
+
+############################# X+Wayland repositories ###########################
+
+%if "%_repository" == "ia32-xwayland" || "%_repository" == "x86_64-xwayland" || "%_repository" == "arm-xwayland" || "%_repository" == "arm64-xwayland" || "%_repository" == "xwayland"
+
+Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2) pkgconfig(gl)
+Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1_cm) pkgconfig(gl)
+
+%define _with_wayland 1
+%define _with_x 1
+
+Macros:
+%_with_wayland 1
+%_with_x 1
+:Macros
+
+%endif
+
+############################# emulator repositories ############################
+
+%if "%_repository" == "emulator32-x11"
+
+Prefer: mesa-libGLESv2
+Prefer: mesa-libGL
+Prefer: mesa-libEGL
+
+Substitute: pkgconfig(gles20)  pkgconfig(egl) pkgconfig(glesv2)
+Substitute: pkgconfig(gles11)  pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
+
+%define _with_x 1
+%define _with_emulator 1
+
+Macros:
+%_with_x 1
+%_with_emulator 1
+:Macros
+
+%endif
+
+%if "%_repository" == "emulator32-wayland"
+
+Prefer: mesa-libGLESv2
+Prefer: libwayland-egl
+Prefer: libgbm
+Prefer: mesa-libGL
+Prefer: mesa-libEGL
+Prefer: emulator-yagl
+
+Substitute: pkgconfig(gles20)  pkgconfig(egl) pkgconfig(glesv2)
+Substitute: pkgconfig(gles11)  pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
+
+%define _with_wayland 1
+%define _with_emulator 1
+
+Macros:
+%_with_wayland 1
+%_with_emulator 1
+:Macros
+
+%endif
+
+############################# misc config flags ################################
+
+# This build macro controls the libdlog output. If enabled,
+# libdlog writes to Systemd Journal. If disabled, libdlog writes to kernel Android
+# logger FIFO. Affects: dlog.
+# Owner: Mikko <mikko.ylinen@intel.com>
+Macros:
+%_with_dlog_to_systemd_journal 1
+:Macros
+
+# Macro used to handle bluetooth popups without syspopup/bt-syspopup which needs OSP .
+# In IVI, this macro permits to address bluetooth notifications (using C API) to notification-service daemon.
+# Then homescreen is supposed to deal with those notifications and display relevant popups.
+# Affects: bluetooth-frwk
+# Owner: Corentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
+Macros:
+%_with_bluetooth_frwk_libnotification 1
+:Macros
+
+# This build macro controls whether the OS uses
+# legacy nfc-manager or neard enabled nfc-manager-neard. If enabled,
+# nfc-manager-neard is used. Affects: nfc CAPI, emulator-plugin-nfc
+# Owner: Arron Wang <arron.wang@intel.com>
+Macros:
+%_with_neard_nfc 1
+:Macros
+
+# Uses mobile-specific Samsung patches for PulseAudio. Tizen Mobile needs
+# this -> Tizen Mobile is compiled with this option.
+# Owner: Ismo Puustinen <ismo.puustinen@intel.com>
+# FIXME: Why this extra define in the obs config ?
+%define _with_pulseaudio_samsung_policy 1
+Macros:
+%_with_pulseaudio_samsung_policy 1
+:Macros
+
+# 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 #####################################
+
+%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
+Hostarch: x86_64
+# cross build support for the build hosts
+Preinstall: qemu-linux-user-cross-arm
+Keep: qemu-linux-user-cross-arm
+%endif
+
+%ifarch armv7hl
+Preinstall: qemu-accel-armv7hl
+Runscripts: qemu-accel-armv7hl
+Preinstall: libmount libblkid libuuid
+%endif
+
+%ifarch armv7l
+Preinstall: qemu-accel-armv7l-cross-arm
+Runscripts: qemu-accel-armv7l-cross-arm
+Preinstall: libmount libblkid libuuid
+%endif
+
+%ifarch aarch64
+Hostarch: x86_64
+Preinstall: qemu-linux-user-cross-arm
+Keep: qemu-linux-user-cross-arm
+Preinstall: qemu-accel-aarch64-cross-aarch64
+Runscripts: qemu-accel-aarch64-cross-aarch64
+Preinstall: libmount libblkid libuuid
+%endif # aarch64
+
+########## 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_s1
+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
+
+VMinstall: perl libmount libblkid libext2fs libuuid  grep libpcre util-linux
+
+Required: binutils gcc glibc rpm-build libtool
+
+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
+
+# FIXME: TO REMOVE (? comes from IVI)
+Support: gcc-c++
+
+Keep: cpp%{gcc_version} gcc%{gcc_version} gcc%{gcc_version}-ada libstdc++%{gcc_version}
+Keep: libstdc++%{gcc_version}-devel gcc%{gcc_version}-c++
+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
+Prefer: libstdc++%{gcc_version} libgcc%{gcc_version}
+Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit
+
+Substitute: gettext gettext-tools
+
+%ifarch x86_64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+Substitute: glibc-devel-32bit
+%endif
+
+########## compilation flags ##########
+
+#%__global_cflags -O2 -g2 -feliminate-unused-debug-types -pipe -Wall  -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector  --param=ssp-buffer-size=32 -Wformat -Wformat-security
+
+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
+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
+
+#generic arm platform
+#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=vfpv3 -mfloat-abi=softfp -Wp,-D__SOFTFP__
+
+#activate neon FPU instructions set (crosswalk build)
+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__
+
+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
diff --git a/tizen_src/build/tztv_v3.0_arm-x11.conf b/tizen_src/build/tztv_v3.0_arm-x11.conf
new file mode 100644 (file)
index 0000000..eb99478
--- /dev/null
@@ -0,0 +1,361 @@
+%define _project Tizen:TV
+
+### from Tizen:TV
+%define _repository arm-x11
+
+Macros:
+%vendor obs://build.tizen.org/Tizen:TV
+%_project Tizen:TV
+
+%distribution Tizen:TV / arm-x11
+%_project Tizen:TV
+
+### from Tizen:TV
+
+%_repository arm-x11
+:Macros
+
+################################################################################
+# OBS Project config for Tizen:TV
+#
+# RE contacts:
+# Joonsub Lee (joon-sub.lee@samsung.com)
+# Yooduck Seo (yooduck.seo@samsung.com)
+#
+# 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 #############################
+
+FileProvides: /usr/sbin/groupadd pwdutils
+Prefer: util-linux
+Prefer: libtapi-devel
+Prefer: libpci-devel
+
+############################# profile definition ###############################
+
+%define profile tv
+%define _with_tizen 1
+
+# %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
+
+############################# wayland repositories #############################
+
+%if "%_repository" == "ia32-wayland" || "%_repository" == "x86_64-wayland" || "%_repository" == "arm-wayland"|| "%_repository" == "arm"|| "%_repository" == "arm64" || "%_repository" == "arm64-wayland" || "%_repository" == "wayland" || "%_repository" == "standard"
+
+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
+
+############################# X11 repositories #################################
+
+%if "%_repository" == "ia32-x11" || "%_repository" == "x86_64-x11" || "%_repository" == "arm-x11" || "%_repository" == "arm64-x11" || "%_repository" == "x11"
+
+Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2) pkgconfig(gl)
+Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1_cm) pkgconfig(gl)
+
+%define _with_x 1
+
+Macros:
+%_with_x 1
+:Macros
+
+%endif
+
+############################# X+Wayland repositories ###########################
+
+%if "%_repository" == "ia32-xwayland" || "%_repository" == "x86_64-xwayland" || "%_repository" == "arm-xwayland" || "%_repository" == "arm64-xwayland" || "%_repository" == "xwayland"
+
+Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2) pkgconfig(gl)
+Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1_cm) pkgconfig(gl)
+
+%define _with_wayland 1
+%define _with_x 1
+
+Macros:
+%_with_wayland 1
+%_with_x 1
+:Macros
+
+%endif
+
+############################# emulator repositories ############################
+
+%if "%_repository" == "emulator32-x11"
+
+Prefer: mesa-libGLESv2
+Prefer: mesa-libGL
+Prefer: mesa-libEGL
+
+Substitute: pkgconfig(gles20)  pkgconfig(egl) pkgconfig(glesv2)
+Substitute: pkgconfig(gles11)  pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
+
+%define _with_x 1
+%define _with_emulator 1
+
+Macros:
+%_with_x 1
+%_with_emulator 1
+:Macros
+
+%endif
+
+############################# misc config flags ################################
+
+# This build macro controls the libdlog output. If enabled,
+# libdlog writes to Systemd Journal. If disabled, libdlog writes to kernel Android
+# logger FIFO. Affects: dlog.
+# Owner: Mikko <mikko.ylinen@intel.com>
+Macros:
+%_with_dlog_to_systemd_journal 1
+:Macros
+
+# Macro used to handle bluetooth popups without syspopup/bt-syspopup which needs OSP .
+# In IVI, this macro permits to address bluetooth notifications (using C API) to notification-service daemon.
+# Then homescreen is supposed to deal with those notifications and display relevant popups.
+# Affects: bluetooth-frwk
+# Owner: Corentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
+Macros:
+%_with_bluetooth_frwk_libnotification 1
+:Macros
+
+# This build macro controls whether the OS uses
+# legacy nfc-manager or neard enabled nfc-manager-neard. If enabled,
+# nfc-manager-neard is used. Affects: nfc CAPI, emulator-plugin-nfc
+# Owner: Arron Wang <arron.wang@intel.com>
+Macros:
+%_with_neard_nfc 1
+:Macros
+
+# Uses mobile-specific Samsung patches for PulseAudio. Tizen Mobile needs
+# this -> Tizen Mobile is compiled with this option.
+# Owner: Ismo Puustinen <ismo.puustinen@intel.com>
+# FIXME: Why this extra define in the obs config ?
+%define _with_pulseaudio_samsung_policy 1
+Macros:
+%_with_pulseaudio_samsung_policy 1
+:Macros
+
+# 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 #####################################
+
+%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
+Hostarch: x86_64
+# cross build support for the build hosts
+Preinstall: qemu-linux-user-cross-arm
+Keep: qemu-linux-user-cross-arm
+%endif
+
+%ifarch armv7hl
+Preinstall: qemu-accel-armv7hl
+Runscripts: qemu-accel-armv7hl
+Preinstall: libmount libblkid libuuid
+%endif
+
+%ifarch armv7l
+Preinstall: qemu-accel-armv7l-cross-arm
+Runscripts: qemu-accel-armv7l-cross-arm
+Preinstall: libmount libblkid libuuid
+%endif
+
+%ifarch aarch64
+Hostarch: x86_64
+Preinstall: qemu-linux-user-cross-arm
+Keep: qemu-linux-user-cross-arm
+Preinstall: qemu-accel-aarch64-cross-aarch64
+Runscripts: qemu-accel-aarch64-cross-aarch64
+Preinstall: libmount libblkid libuuid
+%endif # aarch64
+
+########## 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_s1
+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
+
+VMinstall: perl libmount libblkid libext2fs libuuid  grep libpcre util-linux
+
+Required: binutils gcc glibc rpm-build libtool
+
+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
+
+# FIXME: TO REMOVE (? comes from IVI)
+Support: gcc-c++
+
+Keep: cpp%{gcc_version} gcc%{gcc_version} gcc%{gcc_version}-ada libstdc++%{gcc_version}
+Keep: libstdc++%{gcc_version}-devel gcc%{gcc_version}-c++
+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
+Prefer: libstdc++%{gcc_version} libgcc%{gcc_version}
+Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit
+
+Substitute: gettext gettext-tools
+
+%ifarch x86_64
+Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
+%else
+Substitute: glibc-devel-32bit
+%endif
+
+########## compilation flags ##########
+
+#%__global_cflags -O2 -g2 -feliminate-unused-debug-types -pipe -Wall  -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector  --param=ssp-buffer-size=32 -Wformat -Wformat-security
+
+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
+
+#generic arm platform
+#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=vfpv3 -mfloat-abi=softfp -Wp,-D__SOFTFP__
+
+#activate neon FPU instructions set (crosswalk build)
+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__
+
+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
\ No newline at end of file