1 ################################################################################
2 # OBS Project config for Tizen:Common
5 # Maciej Wereski <m.wereski@partner.samsung.com>
6 # Pawel Wieczorek <p.wieczorek2@samsung.com>
8 # Git mirror for OBS config: review.tizen.org:scm/meta/build-config / branch tizen_common
10 # vim: set syntax=spec:
11 ################################################################################
13 Patterntype: rpm-md comps
14 Release: <CI_CNT>.<B_CNT>
16 Support: build-compare build-mkbaselibs
17 Support: rpmlint-mini rpmlint-tizen
19 ############################# conflicts resolution #############################
21 FileProvides: /usr/sbin/groupadd pwdutils
27 Prefer: vconf-buxton-devel
28 Prefer: vconf-buxton-keys-devel
30 ############################# profile definition ###############################
32 %define profile common
35 # %release_name and %tizen_full_version are used in platform/upstream/tizen-release
39 %release_name Tizen3/Common
41 %tizen_version_major 3
42 %tizen_version_minor 0
43 %tizen_version_patch 0
45 %tizen_version %{tizen_version_major}.%{tizen_version_minor}
46 %tizen_full_version %{tizen_version}.%{tizen_version_patch}
55 %_default_patch_fuzz 2
58 ########## RDP flag ##########
60 # enable/disable RDP (remote desktop protocol) for wayland
61 # flag: _with_rdp, used in repositories
62 # Affects: weston, freerdp
63 # Owner: Manuel <manuel.bachmann@open.eurogiciel.org>
65 ########## mesa activation ##########
72 %ifarch %arm armv7l aarch64
73 Substitute: mesa-devel pkgconfig(glesv2)
74 #FIXME Substitute: pkgconfig(egl)
77 ############################# wayland repositories #############################
79 %if "%_repository" == "ia32-wayland" || "%_repository" == "x86_64-wayland" || "%_repository" == "arm-wayland"|| "%_repository" == "arm"|| "%_repository" == "arm64" || "%_repository" == "arm64-wayland" || "%_repository" == "wayland" || "%_repository" == "standard"
81 Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2)
82 Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
84 %define _with_wayland 1
94 ############################# emulator repositories ############################
96 %if "%_repository" == "emulator32-wayland"
98 Prefer: mesa-libGLESv2
99 Prefer: libwayland-egl
103 Prefer: emulator-yagl
105 Substitute: pkgconfig(gles20) pkgconfig(egl) pkgconfig(glesv2)
106 Substitute: pkgconfig(gles11) pkgconfig(egl) pkgconfig(glesv1) pkgconfig(gl)
108 %define _with_wayland 1
109 %define _with_emulator 1
119 ############################# misc config flags ################################
121 ########## USAGE ##########
123 # IMPORTANT: please follow the following rules when playing with flags
124 # ********************************************************************
126 # In spec file, call %bcond_with macro at the beginning and test with %with:
127 # -------------------------
128 # | %bcond_with myfeature
130 # | %if %{with myfeature}
134 # -------------------------
136 # To activate an option, use:
137 # -------------------------
138 # | %define _with_myfeature 1
140 # | %_with_myfeature 1
142 # -------------------------
144 # To disable an option, DON'T set the values to 0, as the option would still be defined
145 # but simply comment the lines: this will undefine the option.
146 # -------------------------
147 # | #%define _with_myfeature 1
149 # | #%_with_myfeature 1
151 # -------------------------
153 # More information here:
154 # https://en.opensuse.org/openSUSE:Build_Service_prjconf#.25bcond
157 ########## flags ##########
159 # This build macro controls the libdlog output. If enabled,
160 # libdlog writes to Systemd Journal. If disabled, libdlog writes to kernel Android
161 # logger FIFO. Affects: dlog.
162 # Owner: Mikko <mikko.ylinen@intel.com>
164 %_with_dlog_to_systemd_journal 1
167 # Macro used to handle bluetooth popups without syspopup/bt-syspopup which needs OSP .
168 # In IVI, this macro permits to address bluetooth notifications (using C API) to notification-service daemon.
169 # Then homescreen is supposed to deal with those notifications and display relevant popups.
170 # Affects: bluetooth-frwk
171 # Owner: Corentin Lecouvey <corentin.lecouvey@open.eurogiciel.org>
173 %_with_bluetooth_frwk_libnotification 1
176 # Macro used for testing gstreamer 1.X API
178 # Owner: Philippe Coval <philippe.coval@open.eurogiciel.org>
179 %define _with_gstreamer1 1
184 # Macro used for testing libva availability
186 # Owner: Philippe Coval <philippe.coval@open.eurogiciel.org>
188 %define _with_libva 1
194 # Macro used for testing Input methods
196 # Owner: Philippe Coval <philippe.coval@open.eurogiciel.org>
197 #%define _with_tizenscim 1
202 # This build macro controls whether the OS uses
203 # legacy nfc-manager or neard enabled nfc-manager-neard. If enabled,
204 # nfc-manager-neard is used. Affects: nfc CAPI, emulator-plugin-nfc
205 # Owner: Arron Wang <arron.wang@intel.com>
210 # Uses mobile-specific Samsung patches for PulseAudio. Tizen Mobile needs
211 # this -> Tizen Mobile is compiled with this option.
212 # Owner: Ismo Puustinen <ismo.puustinen@intel.com>
213 # FIXME: Why this extra define in the obs config ?
214 %define _with_pulseaudio_samsung_policy 1
216 %_with_pulseaudio_samsung_policy 1
219 # Activate introspection
220 # This is needed on GuPNP to build Rygel correctly in IVI
221 # Impacts potentially packages that use gobject-introspection
222 # Owner: Mikko <mikko.ylinen@intel.com>
224 %_with_introspection 1
228 # This configuration flag enables the support of KDBUS
229 # Used: platform/upstream/setup
230 # Owner: Stephane Desneux <stephane.desneux@open.eurogiciel.org>
231 #%define _with_kdbus 1
236 ############################# build config #####################################
238 %define gcc_version 49
243 ########## targets ##########
246 Target: i686-tizen-linux
250 Target: armv7hl-tizen-linux
254 Target: armv7l-tizen-linux
258 Target: aarch64-tizen-linux
261 ########## cross build ##########
265 # cross build support for the build hosts
266 Preinstall: qemu-linux-user-cross-arm
267 Keep: qemu-linux-user-cross-arm
271 Preinstall: qemu-accel-armv7hl
272 Runscripts: qemu-accel-armv7hl
273 Preinstall: libmount libblkid libuuid
277 Preinstall: qemu-accel-armv7l-cross-arm
278 Runscripts: qemu-accel-armv7l-cross-arm
279 Preinstall: libmount libblkid libuuid
284 Preinstall: qemu-linux-user-cross-arm
285 Keep: qemu-linux-user-cross-arm
286 Preinstall: qemu-accel-aarch64-cross-aarch64
287 Runscripts: qemu-accel-aarch64-cross-aarch64
288 Preinstall: libmount libblkid libuuid
291 ########## exports for different architectures ##########
293 ExportFilter: \.armv7l\.rpm$ armv7l
294 ExportFilter: \.aarch64\.rpm$ aarch64
295 ExportFilter: \.x86_64\.rpm$ x86_64
297 ########## buildroot config ##########
299 Preinstall: setup filesystem
302 Preinstall: bash bzip2 coreutils diffutils grep rpm
303 Preinstall: glibc libacl libattr
305 Preinstall: libgcc_s1
306 Preinstall: libpopt sed tar zlib
307 Preinstall: libncurses libreadline
308 Preinstall: libelf libbz2
310 Preinstall: nss nspr libfreebl3 libsoftokn3
313 Preinstall: smack libsmack libxml2 libmagic libmagic-data
314 Preinstall: libsqlite
315 Preinstall: util-linux
317 VMinstall: perl libmount libblkid libext2fs libuuid grep libpcre util-linux libsmartcols
320 Required: binutils gcc glibc rpm-build libtool
322 Support: glibc-locale
325 Support: cpio findutils
326 Support: file findutils zlib bzip2
327 Support: gzip hostname net-tools
328 Support: make patch sed gawk tar grep coreutils pkg-config
332 Support: which elfutils
333 Support: update-alternatives
335 # FIXME: TO REMOVE (? comes from IVI)
338 Keep: cpp%{gcc_version} gcc%{gcc_version} gcc%{gcc_version}-ada libstdc++%{gcc_version}
339 Keep: libstdc++%{gcc_version}-devel gcc%{gcc_version}-c++
340 Keep: cpp gcc libstdc++
342 Keep: binutils cpp libmagic-data file findutils gawk gcc gcc-c++
343 Keep: gdbm gzip libada libunwind glibc-devel libpcre xz-lzma-compat
344 Keep: make gmp libcap groff cpio
345 Keep: patch rpm-build nss nspr elfutils python grep libgcc gcc-c++
346 Keep: kernel-headers perl-libs perl
347 Keep: pkgconfig glib2 tizen-rpm-config
348 Keep: libmpc libmpfr libppl libgmp libppl_c
349 Keep: libcloog libppl libgmpxx
350 Keep: nss-softokn-freebl libmagic libmagic-data
352 Keep: update-alternatives
353 Prefer: libstdc++%{gcc_version} libgcc%{gcc_version}
354 Prefer: libstdc++%{gcc_version}-32bit libstdc++%{gcc_version}-64bit
356 Substitute: gettext gettext-tools
359 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
361 Substitute: glibc-devel-32bit
364 ########## compilation flags ##########
366 %define __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 -fmessage-length=0 -fdiagnostics-color=never
368 Optflags: i686 %{__global_cflags} -m32 -march=i686 -mtune=i686 -msse4.2 -mfpmath=sse -fasynchronous-unwind-tables -fno-omit-frame-pointer
370 Optflags: x86_64 %{__global_cflags} -m64 -march=corei7 -mtune=corei7-avx -msse4.2 -mfpmath=sse -fasynchronous-unwind-tables -fno-omit-frame-pointer
372 #generic arm platform
373 #Optflags: armv7l %{__global_cflags} -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=vfpv3 -mfloat-abi=softfp -Wp,-D__SOFTFP__
374 #activate neon FPU instructions set (crosswalk build)
375 Optflags: armv7l %{__global_cflags} -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=softfp -Wp,-D__SOFTFP__
377 Optflags: aarch64 %{__global_cflags} -march=armv8-a+fp+simd+crc+crypto