1 # Ignore double dash in version for rpmbuild
2 %define _wrong_version_format_terminate_build 0
4 %define config_name tizen_bcm2711_defconfig
5 %define config_name_rt tizen_bcm2711_rt_defconfig
7 %define buildarch arm64
11 %define target_board rpi4
12 %define variant %{buildarch}-%{target_board}
14 Name: rpi4-linux-kernel
15 Summary: The Linux Kernel for Raspberry Pi4
19 ExclusiveArch: %{arm} aarch64
21 Vendor: The Linux Community
22 URL: https://www.kernel.org
23 Source0: linux-kernel-%{version}.tar.xz
24 BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
26 %define fullVersion %{version}-%{variant}
29 BuildRequires: module-init-tools
32 BuildRequires: libopenssl1.1-devel
36 The Linux Kernel, the operating system core itself
39 %package -n %{variant}-linux-kernel
41 Summary: Tizen kernel for %{target_board}
43 Provides: %{variant}-kernel-uname-r = %{fullVersion}
44 Provides: linux-kernel = %{version}-%{release}
46 %description -n %{variant}-linux-kernel
47 This package contains the Linux kernel for Tizen (arch %{buildarch}, target board %{target_board})
49 %package -n %{variant}-rt-linux-kernel
51 Summary: Tizen kernel for %{target_board}
53 Provides: %{variant}-kernel-uname-r = %{fullVersion}-rt
54 Provides: linux-kernel = %{version}-%{release}-rt
56 %description -n %{variant}-rt-linux-kernel
57 This package contains the Linux kernel for Tizen (arch %{buildarch}, target board %{target_board})
61 %package -n %{variant}-linux-kernel-modules
62 Summary: Kernel modules for %{target_board}
64 Provides: %{variant}-kernel-modules = %{fullVersion}
65 Provides: %{variant}-kernel-modules-uname-r = %{fullVersion}
67 %description -n %{variant}-linux-kernel-modules
68 Kernel-modules includes the loadable kernel modules(.ko files) for %{target_board}
70 %package -n %{variant}-rt-linux-kernel-modules
71 Summary: Kernel modules for %{target_board}
73 Provides: %{variant}-kernel-modules = %{fullVersion}-rt
74 Provides: %{variant}-kernel-modules-uname-r = %{fullVersion}-rt
76 %description -n %{variant}-rt-linux-kernel-modules
77 Kernel-modules includes the loadable kernel modules(.ko files) for %{target_board}
78 with the PREEMPT_RT patch
82 %package -n %{variant}-linux-kernel-devel
84 Summary: Linux support kernel map and etc for other packages
86 Provides: %{variant}-kernel-devel = %{fullVersion}
87 Provides: %{variant}-kernel-devel-uname-r = %{fullVersion}
89 %description -n %{variant}-linux-kernel-devel
90 This package provides kernel map and etc information.
92 %package -n %{variant}-rt-linux-kernel-devel
94 Summary: Linux support kernel map and etc for other packages
96 Provides: %{variant}-kernel-devel = %{fullVersion}-rt
97 Provides: %{variant}-kernel-devel-uname-r = %{fullVersion}-rt
99 %description -n %{variant}-rt-linux-kernel-devel
100 This package provides kernel map and etc information.
103 %package -n %{variant}-linux-kernel-headers
105 Summary: Linux support headers for userspace development
107 Provides: kernel-headers-tizen-dev
109 %description -n %{variant}-linux-kernel-headers
110 This package provides userspaces headers from the Linux kernel. These
111 headers are used by the installed headers for GNU glibc and other system
118 %{?asan:/usr/bin/gcc-unforce-options}
119 %{?ubsan:/usr/bin/gcc-unforce-options}
121 for target in %{variant} %{variant}-rt; do
122 echo "-${target}" > localversion-tizen
124 # extract uapi headers
125 make O=build/${target} headers_check %{?_smp_mflags}
126 make O=build/${target} headers_install %{?_smp_mflags}
131 make O=build/${target} %{config_name} %{?_smp_mflags}
134 cat _localversion-rt > localversion-rt
135 make O=build/${target} %{config_name_rt} %{?_smp_mflags}
139 # Build Image/Image.gz
140 make O=build/${target} %{?_smp_mflags}
143 make O=build/${target} dtbs %{?_smp_mflags}
146 make O=build/${target} modules %{?_smp_mflags}
150 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
152 # Destination directories
153 mkdir -p %{buildroot}/boot
154 mkdir -p %{buildroot}/lib/modules
156 # Install boot binary files
158 install -m 644 rpi4/boot/config_64bit.txt %{buildroot}/boot/config.txt
160 install -m 644 rpi4/boot/config.txt %{buildroot}/boot/
162 install -m 644 rpi4/boot/LICENCE.broadcom %{buildroot}/boot/
163 install -m 644 rpi4/boot/start*.elf %{buildroot}/boot/
164 install -m 644 rpi4/boot/fixup*.dat %{buildroot}/boot/
168 install -m 644 build/%{variant}/arch/%{buildarch}/boot/dts/broadcom/bcm*.dtb %{buildroot}/boot/
170 install -m 644 build/%{variant}/arch/%{buildarch}/boot/dts/bcm*.dtb %{buildroot}/boot/
172 mkdir -p %{buildroot}/boot/overlays
173 install -m 644 build/%{variant}/arch/%{buildarch}/boot/dts/overlays/*.dtbo %{buildroot}/boot/overlays/
175 # Install kernel headers
176 make O=build/%{variant} headers_install %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr
178 for target in %{variant} %{variant}-rt; do
179 # Install kernel binary
183 install -m 644 build/${target}/arch/%{buildarch}/boot/Image %{buildroot}/boot/Image
185 install -m 644 build/${target}/arch/%{buildarch}/boot/zImage %{buildroot}/boot/zImage
190 install -m 644 build/${target}/arch/%{buildarch}/boot/Image %{buildroot}/boot/Image_rt
192 install -m 644 build/${target}/arch/%{buildarch}/boot/zImage %{buildroot}/boot/zImage_rt
198 make O=build/${target} INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
200 # Copy files for devel package
201 mkdir -p %{buildroot}/boot/kernel/devel/kernel-devel-${target}
203 --include "/scripts/**.c" \
204 --exclude "/debug*.list" \
205 --exclude "/documentation.list" \
206 --exclude "/*.manifest" \
207 --exclude "/packaging/" \
208 --exclude "/.gbs.conf" \
209 --exclude "/.git**" \
210 --exclude ".gitignore" \
212 --exclude ".tmp_vmlinux*" \
213 --exclude ".*dtb*tmp" \
216 --exclude "vmlinux" \
219 --exclude "Image.gz" \
225 --exclude "/build/" \
226 ./ build/${target}/ %{buildroot}/boot/kernel/devel/kernel-devel-${target}
232 %post -n %{variant}-rt-linux-kernel
234 mv /boot/Image_rt /boot/Image
236 mv /boot/zImage_rt /boot/zImage
239 %preun -n %{variant}-rt-linux-kernel
241 mv /boot/Image /boot/Image_rt
243 mv /boot/zImage /boot/zImage_rt
246 %files -n %{variant}-linux-kernel-modules
248 /lib/modules/*%{variant}-v8/
250 /lib/modules/*%{variant}-v7l/
253 %files -n %{variant}-rt-linux-kernel-modules
255 /lib/modules/*%{variant}-rt-v8/
257 /lib/modules/*%{variant}-rt-v7l/
260 %files -n %{variant}-linux-kernel-devel
261 /boot/kernel/devel/*%{variant}/
263 %files -n %{variant}-rt-linux-kernel-devel
264 /boot/kernel/devel/*%{variant}-rt/
266 %files -n %{variant}-linux-kernel
274 /boot/overlays/*.dtbo
276 /boot/LICENCE.broadcom
280 %files -n %{variant}-rt-linux-kernel
288 /boot/overlays/*.dtbo
290 /boot/LICENCE.broadcom
294 %files -n %{variant}-linux-kernel-headers