1 ################################################################################
2 # OBS Project config for Tizen:Base:Toolchain
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 # new cycle handling (gbs version >= 0.25.29)
17 BuildFlags: genmetaalgo:1
19 ############################# conflicts resolution #############################
29 Prefer: mono-data-sqlite
31 # Set a preference for ambiguous libs to use *-64bit libs
32 # *-64bit libs on 32bit build environment are required for .Net build (e.g., coreclr, corefx)
33 # But when building 64bit target, they could make 'have choice' error with original libs in 64bit repository.
34 # e.g., libstdc++ and libstdc++-64bit provides same libs. It's ambiguous to choose appropriate one.
35 # Owner : Jiyoung Yun (jy910.yun@samsung.com)
36 # libopenssl* : Dongsun Lee (ds73.lee@samsung.com), Dariusz Michaluk (d.michaluk@samsung.com)
37 Prefer: libgcc libstdc++ libunwind libuuid zlib libopenssl libopenssl11 libopenssl3
40 ############################# base definition ###############################
42 # %release_name and %tizen_full_version are used in platform/upstream/tizen-release
45 %release_name Tizen9.0/Unified
47 %tizen_version_major 9
48 %tizen_version_minor 0
49 %tizen_version_patch 0
51 %tizen_version %{tizen_version_major}.%{tizen_version_minor}
52 %tizen_full_version %{tizen_version}.%{tizen_version_patch}
59 %_default_patch_fuzz 2
61 %_binary_payload w5T.xzdio
64 #### %%__spec_check_pre exit 0
65 #### %%run_check_section 0
67 # skip %%check section
70 %_skip_check_packages autogen bison boost expat findutils flex fribidi glibc \\\
71 gmp gn golang grep libgc libgcrypt libogg libsigc++ libvorbis libxml2 libzio \\\
72 m4 nspr openssl openssl1.1 perl-Devel-Symdump perl-gettext perl-Pod-Coverage \\\
73 perl-Test-Pod perl-Test-Pod-Coverage perl-TimeDate procps-ng python3-mako \\\
74 python3-mock python3-ply python-funcsigs python-mako python-mock python-ply \\\
75 setup zlib openssl3 autoconf
78 for name in %_skip_check_packages \
80 if [ "$name" = "%{name}" ]; then \
89 ############################# build config #####################################
91 ########## targets ##########
94 Target: i686-tizen-linux
98 Target: armv7hl-tizen-linux
102 Target: armv7l-tizen-linux
106 Target: aarch64-tizen-linux
110 Target: riscv64-tizen-linux
116 %define dump_configure 1
123 ########## cross build ##########
125 %define build_hostarch x86_64
127 %build_hostarch x86_64
130 %ifarch riscv64 %arm armv7l armv7hl aarch64
132 # cross build support for the build hosts
133 Preinstall: qemu-linux-user-%{build_hostarch}-cross
134 Runscripts: qemu-linux-user-%{build_hostarch}-cross
135 Keep: qemu-linux-user-%{build_hostarch}-cross
137 %qemu_user_space_build 1
142 Preinstall: qemu-accel-%{build_hostarch}-armv7l
143 Runscripts: qemu-accel-%{build_hostarch}-armv7l
144 Preinstall: libmount libblkid libuuid
148 Preinstall: qemu-accel-%{build_hostarch}-armv7hl
149 Runscripts: qemu-accel-%{build_hostarch}-armv7hl
150 Preinstall: libmount libblkid libuuid
154 Preinstall: qemu-accel-%{build_hostarch}-aarch64
155 Runscripts: qemu-accel-%{build_hostarch}-aarch64
156 Preinstall: libmount libblkid libuuid
160 Preinstall: qemu-accel-%{build_hostarch}-riscv64
161 Runscripts: qemu-accel-%{build_hostarch}-riscv64
162 Preinstall: libmount libblkid libuuid
164 Substitute: python-accel-armv7l-cross-arm python-accel-%{build_hostarch}-armv7l
165 Substitute: python-accel-armv7hl-cross-arm python-accel-%{build_hostarch}-armv7hl
166 Substitute: python-accel-aarch64-cross-aarch64 python-accel-%{build_hostarch}-aarch64
167 Substitute: python-accel-riscv64-cross-riscv64 python-accel-%{build_hostarch}-riscv64
169 Substitute: clang-accel-armv7l-cross-arm clang-accel-%{build_hostarch}-armv7l
170 Substitute: clang-accel-armv7hl-cross-arm clang-accel-%{build_hostarch}-armv7hl
171 Substitute: clang-accel-aarch64-cross-aarch64 clang-accel-%{build_hostarch}-aarch64
172 Substitute: clang-accel-riscv64-cross-riscv64 clang-accel-%{build_hostarch}-riscv64
174 ########## exports for different architectures ##########
176 ExportFilter: \.armv7l\.rpm$ armv7l
177 ExportFilter: \.armv7hl\.rpm$ armv7hl
178 ExportFilter: \.aarch64\.rpm$ aarch64
179 ExportFilter: \.i586\.rpm$ i586
180 ExportFilter: \.x86_64\.rpm$ x86_64
181 ExportFilter: \.riscv64\.rpm$ riscv64
183 ########## buildroot config ##########
185 Preinstall: setup filesystem
188 Preinstall: bash bzip2 coreutils diffutils grep rpm
189 Preinstall: glibc libacl libattr libxcrypt
192 Preinstall: libpopt sed tar zlib
193 Preinstall: libncurses libreadline
194 Preinstall: libelf libbz2
196 Preinstall: nss nspr libfreebl3 libsoftokn3
199 Preinstall: smack libsmack libxml2 libmagic libmagic-data
200 Preinstall: libsqlite
201 #Preinstall: rpm-security-plugin
202 Preinstall: util-linux util-linux-su
205 VMinstall: perl libmount libblkid libext2fs libuuid grep libpcre util-linux libsmartcols procps-ng
207 Required: binutils gcc glibc rpm-build libtool
210 Support: glibc-locale
213 Support: cpio findutils
214 Support: file findutils zlib bzip2
215 Support: gzip hostname net-tools
216 Support: make patch sed gawk tar grep coreutils pkg-config
220 Support: which elfutils
221 Support: update-alternatives
222 Support: libstdc++-devel
228 Keep: libstdc++-devel
229 Keep: cpp gcc libstdc++
231 Keep: binutils cpp libmagic-data file findutils gawk gcc gcc-c++
232 Keep: gdbm gzip libada libunwind glibc-devel libpcre xz-lzma-compat
233 Keep: make gmp libcap groff cpio
234 Keep: patch rpm-build nss nspr elfutils python grep libgcc gcc-c++
235 Keep: kernel-headers perl-libs perl
236 Keep: pkgconfig glib2 tizen-rpm-config
237 Keep: libmpc libmpfr libppl libgmp libppl_c
238 Keep: libcloog libppl libgmpxx
239 Keep: nss-softokn-freebl libmagic libmagic-data
241 Keep: update-alternatives
248 Substitute: gettext gettext-tools
251 Substitute: glibc-devel-32bit glibc-devel-32bit glibc-32bit
252 Substitute: libgcc_s1-32bit libgcc-32bit
254 Substitute: glibc-devel-32bit
257 ########## compilation flags ##########
258 %define __global_cflags -O2 -g2 -gdwarf-4 -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong -Wformat-security -fmessage-length=0 -frecord-gcc-switches -Wl,-z,relro,--as-needed
260 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 -D_FILE_OFFSET_BITS=64 -fdiagnostics-column-unit=byte
261 Optflags: armv7hl %{__global_cflags} --param=ssp-buffer-size=4 -march=armv7-a -mtune=cortex-a8 -mlittle-endian -mfpu=neon -mfloat-abi=hard -mthumb -Wl,-O1 -Wl,--hash-style=gnu -Wa,-mimplicit-it=thumb -D_FILE_OFFSET_BITS=64
262 Optflags: aarch64 %{__global_cflags} -feliminate-unused-debug-types -Wformat -march=armv8-a+fp+simd+crc+crypto -mtune=cortex-a57.cortex-a53
263 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 -mstackrealign -Wl,-z,noseparate-code
264 Optflags: x86_64 %{__global_cflags} -feliminate-unused-debug-types --param=ssp-buffer-size=4 -fdiagnostics-color=never -m64 -march=nehalem -msse4.2 -mfpmath=sse -fasynchronous-unwind-tables -fno-omit-frame-pointer
265 Optflags: riscv64 %{__global_cflags} -feliminate-unused-debug-types -Wformat -mabi=lp64d -march=rv64gc -fdiagnostics-column-unit=byte