ARM64: configs: tizen_bcm2711: change BLK_DEV_RAM_SIZE to 32MB
[platform/kernel/linux-rpi.git] / packaging / linux-rpi4.spec
1 # Ignore double dash in version for rpmbuild
2 %define _wrong_version_format_terminate_build 0
3
4 %define config_name tizen_bcm2711_defconfig
5 %ifarch aarch64
6 %define buildarch arm64
7 %else
8 %define buildarch arm
9 %endif
10 %define target_board rpi4
11 %define variant %{buildarch}-%{target_board}
12
13 Name: rpi4-linux-kernel
14 Summary: The Linux Kernel for Raspberry Pi4
15 Version: 5.4.40
16 Release: 0
17 License: GPL-2.0
18 ExclusiveArch: %{arm} aarch64
19 Group: System/Kernel
20 Vendor: The Linux Community
21 URL: https://www.kernel.org
22 Source0:   linux-kernel-%{version}.tar.xz
23 BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
24
25 %define fullVersion %{version}-%{variant}
26
27 BuildRequires: bc
28 BuildRequires: module-init-tools
29 BuildRequires: bison
30 BuildRequires: flex
31 BuildRequires: libopenssl1.1-devel
32 BuildRequires: rsync
33
34 %description
35 The Linux Kernel, the operating system core itself
36
37 %package -n %{variant}-linux-kernel
38 License: GPL-2.0
39 Summary: Tizen kernel for %{target_board}
40 Group: System/Kernel
41 Provides: %{variant}-kernel-uname-r = %{fullVersion}
42 Provides: linux-kernel = %{version}-%{release}
43
44 %description -n %{variant}-linux-kernel
45 This package contains the Linux kernel for Tizen (arch %{buildarch}, target board %{target_board})
46
47 %package -n %{variant}-linux-kernel-modules
48 Summary: Kernel modules for %{target_board}
49 Group: System/Kernel
50 Provides: %{variant}-kernel-modules = %{fullVersion}
51 Provides: %{variant}-kernel-modules-uname-r = %{fullVersion}
52
53 %description -n %{variant}-linux-kernel-modules
54 Kernel-modules includes the loadable kernel modules(.ko files) for %{target_board}
55
56 %package -n %{variant}-linux-kernel-devel
57 License: GPL-2.0
58 Summary: Linux support kernel map and etc for other packages
59 Group: System/Kernel
60 Provides: %{variant}-kernel-devel = %{fullVersion}
61 Provides: %{variant}-kernel-devel-uname-r = %{fullVersion}
62
63 %description -n %{variant}-linux-kernel-devel
64 This package provides kernel map and etc information.
65
66 %package -n %{variant}-linux-kernel-headers
67 License: GPL-2.0
68 Summary: Linux support headers for userspace development
69 Group: System/Kernel
70 Provides: kernel-headers-tizen-dev
71
72 %description -n %{variant}-linux-kernel-headers
73 This package provides userspaces headers from the Linux kernel. These
74 headers are used by the installed headers for GNU glibc and other system
75  libraries.
76
77 %prep
78 %setup -q -n linux-kernel-%{version}
79
80 %build
81 %{?asan:/usr/bin/gcc-unforce-options}
82 %{?ubsan:/usr/bin/gcc-unforce-options}
83
84 # Make sure EXTRAVERSION says what we want it to say
85 sed -i "s/^EXTRAVERSION.*/EXTRAVERSION = -%{variant}/" Makefile
86
87 # 0. extract uapi headers
88 mkdir -p uapi-headers/usr
89 make mrproper
90 make headers_check
91 make headers_install INSTALL_HDR_PATH=uapi-headers/usr
92
93 # 1-1. Set config file
94 make %{config_name}
95
96 # 1-2. Build Image/Image.gz
97 make %{?_smp_mflags}
98
99 # 1-3. Build dtbs
100 make dtbs %{?_smp_mflags}
101
102 # 1-4. Build modules
103 make modules %{?_smp_mflags}
104
105 %install
106 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
107
108 # 2-1. Destination directories
109 mkdir -p %{buildroot}/boot
110 mkdir -p %{buildroot}/lib/modules
111
112 # 2-2. Install kernel binary and DTB
113 %ifarch aarch64
114 install -m 644 arch/%{buildarch}/boot/Image %{buildroot}/boot/
115 install -m 644 arch/%{buildarch}/boot/dts/broadcom/bcm*.dtb %{buildroot}/boot/
116 %else
117 install -m 644 arch/%{buildarch}/boot/zImage %{buildroot}/boot/
118 install -m 644 arch/%{buildarch}/boot/dts/bcm*.dtb %{buildroot}/boot/
119 %endif
120
121 # 2-3. Install modules
122 make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
123
124 # 2-4. Install boot binary files
125 %ifarch aarch64
126 install -m 644 rpi4/boot/config_64bit.txt %{buildroot}/boot/config.txt
127 %else
128 install -m 644 rpi4/boot/config.txt %{buildroot}/boot/
129 %endif
130 install -m 644 rpi4/boot/LICENCE.broadcom %{buildroot}/boot/
131 install -m 644 rpi4/boot/start*.elf %{buildroot}/boot/
132 install -m 644 rpi4/boot/fixup*.dat %{buildroot}/boot/
133
134 # 2-5. Install uapi headers
135 find uapi-headers/usr/include -name ".install" -delete
136 find uapi-headers/usr/include -name "..install.cmd" -delete
137 mv uapi-headers/usr %{buildroot}
138
139 # 3-1. remove unnecessary files to prepare for devel package
140 rm -rf uapi-headers
141 find %{_builddir}/linux-kernel-%{version} -name ".tmp_vmlinux*" -delete
142 find %{_builddir}/linux-kernel-%{version} -name ".gitignore" -delete
143 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb*tmp" -delete
144 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb" -delete
145 find %{_builddir}/linux-kernel-%{version} -name "*\.*tmp" -delete
146 find %{_builddir}/linux-kernel-%{version} -name "vmlinux" -delete
147 find %{_builddir}/linux-kernel-%{version} -name "Image" -delete
148 find %{_builddir}/linux-kernel-%{version} -name "zImage" -delete
149 find %{_builddir}/linux-kernel-%{version} -name "Image.gz" -delete
150 find %{_builddir}/linux-kernel-%{version} -name "*.cmd" -delete
151 find %{_builddir}/linux-kernel-%{version} -name "*\.ko" -delete
152 find %{_builddir}/linux-kernel-%{version} -name "*\.o" -delete
153 find %{_builddir}/linux-kernel-%{version} -name "*\.S" -delete
154 find %{_builddir}/linux-kernel-%{version} -name "*\.HEX" -type f -delete
155 find %{_builddir}/linux-kernel-%{version} -name "*\.c" -not -path "%{_builddir}/linux-kernel-%{version}/scripts/*" -delete
156
157 # 3-2. move files for devel package
158 cp -r  %{_builddir}/linux-kernel-%{version}/ %{_builddir}/kernel-devel-%{variant}/
159
160 # 4. Move files for each package
161 mkdir -p %{buildroot}/boot/kernel/devel
162 mv %{_builddir}/kernel-devel-%{variant} %{buildroot}/boot/kernel/devel/
163
164
165 %clean
166 rm -rf %{buildroot}
167 rm -rf %{_builddir}/usr
168
169 %files -n %{variant}-linux-kernel-modules
170 /lib/modules/*
171
172 %files -n %{variant}-linux-kernel-devel
173 /boot/kernel/devel/*
174
175 %files -n %{variant}-linux-kernel
176 %license COPYING
177 %ifarch aarch64
178 /boot/Image
179 %else
180 /boot/zImage
181 %endif
182 /boot/bcm*.dtb
183 /boot/config.txt
184 /boot/LICENCE.broadcom
185 /boot/start*.elf
186 /boot/fixup*.dat
187
188 %files -n %{variant}-linux-kernel-headers
189 /usr/include/*