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