dc5152234e951ce04286ae31a3bbf76b2e15f5be
[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: 4.19.65
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: u-boot-tools >= 2016.03
26 BuildRequires: bison
27 BuildRequires: flex
28 BuildRequires: libopenssl1.1-devel
29
30 %description
31 The Linux Kernel, the operating system core itself
32
33 %package -n %{variant}-linux-kernel
34 License: GPL-2.0
35 Summary: Tizen kernel for %{target_board}
36 Group: System/Kernel
37 Provides: %{variant}-kernel-uname-r = %{fullVersion}
38 Provides: linux-kernel = %{version}-%{release}
39
40 %description -n %{variant}-linux-kernel
41 This package contains the Linux kernel for Tizen (arch %{buildarch}, target board %{target_board})
42
43 %package -n %{variant}-linux-kernel-modules
44 Summary: Kernel modules for %{target_board}
45 Group: System/Kernel
46 Provides: %{variant}-kernel-modules = %{fullVersion}
47 Provides: %{variant}-kernel-modules-uname-r = %{fullVersion}
48
49 %description -n %{variant}-linux-kernel-modules
50 Kernel-modules includes the loadable kernel modules(.ko files) for %{target_board}
51
52 %package -n %{variant}-linux-kernel-devel
53 License: GPL-2.0
54 Summary: Linux support kernel map and etc for other packages
55 Group: System/Kernel
56 Provides: %{variant}-kernel-devel = %{fullVersion}
57 Provides: %{variant}-kernel-devel-uname-r = %{fullVersion}
58
59 %description -n %{variant}-linux-kernel-devel
60 This package provides kernel map and etc information.
61
62 %prep
63 %setup -q -n linux-kernel-%{version}
64
65 %build
66 %{?asan:/usr/bin/gcc-unforce-options}
67 %{?ubsan:/usr/bin/gcc-unforce-options}
68
69 # Make sure EXTRAVERSION says what we want it to say
70 sed -i "s/^EXTRAVERSION.*/EXTRAVERSION = -%{variant}/" Makefile
71
72 # 1-1. Set config file
73 make %{config_name}
74
75 # 1-2. Build Image/Image.gz
76 make %{?_smp_mflags}
77
78 # 1-3. Build dtbs
79 make dtbs %{?_smp_mflags}
80
81 # 1-4. Build modules
82 make modules %{?_smp_mflags}
83
84 %install
85 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
86
87 # 2-1. Destination directories
88 mkdir -p %{buildroot}/boot
89 mkdir -p %{buildroot}/lib/modules
90
91 # 2-2. Install kernel binary and DTB
92 install -m 644 arch/%{buildarch}/boot/zImage %{buildroot}/boot/
93 install -m 644 arch/%{buildarch}/boot/dts/bcm*.dtb %{buildroot}/boot/
94
95 # 2-3. Install modules
96 make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
97
98 # 2-4. Install boot binary files
99 install -m 644 rpi4/boot/config.txt %{buildroot}/boot/
100 install -m 644 rpi4/boot/LICENCE.broadcom %{buildroot}/boot/
101 install -m 644 rpi4/boot/bootcode.bin %{buildroot}/boot/
102 install -m 644 rpi4/boot/start*.elf %{buildroot}/boot/
103 install -m 644 rpi4/boot/fixup*.dat %{buildroot}/boot/
104
105 # 3-1. remove unnecessary files to prepare for devel package
106 find %{_builddir}/linux-kernel-%{version} -name ".tmp_vmlinux*" -delete
107 find %{_builddir}/linux-kernel-%{version} -name ".gitignore" -delete
108 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb*tmp" -delete
109 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb" -delete
110 find %{_builddir}/linux-kernel-%{version} -name "*\.*tmp" -delete
111 find %{_builddir}/linux-kernel-%{version} -name "vmlinux" -delete
112 find %{_builddir}/linux-kernel-%{version} -name "Image" -delete
113 find %{_builddir}/linux-kernel-%{version} -name "zImage" -delete
114 find %{_builddir}/linux-kernel-%{version} -name "Image.gz" -delete
115 find %{_builddir}/linux-kernel-%{version} -name "*.cmd" -delete
116 find %{_builddir}/linux-kernel-%{version} -name "*\.ko" -delete
117 find %{_builddir}/linux-kernel-%{version} -name "*\.o" -delete
118 find %{_builddir}/linux-kernel-%{version} -name "*\.S" -delete
119 find %{_builddir}/linux-kernel-%{version} -name "*\.HEX" -type f -delete
120 find %{_builddir}/linux-kernel-%{version} -name "*\.c" -not -path "%{_builddir}/linux-kernel-%{version}/scripts/*" -delete
121
122 # 3-2. move files for devel package
123 cp -r  %{_builddir}/linux-kernel-%{version}/ %{_builddir}/kernel-devel-%{variant}/
124
125 # 4. Move files for each package
126 mkdir -p %{buildroot}/boot/kernel/devel
127 mv %{_builddir}/kernel-devel-%{variant} %{buildroot}/boot/kernel/devel/
128
129
130 %clean
131 rm -rf %{buildroot}
132
133 %files -n %{variant}-linux-kernel-modules
134 /lib/modules/*
135
136 %files -n %{variant}-linux-kernel-devel
137 /boot/kernel/devel/*
138
139 %files -n %{variant}-linux-kernel
140 %license COPYING
141 /boot/zImage
142 /boot/bcm*.dtb
143 /boot/config.txt
144 /boot/LICENCE.broadcom
145 /boot/bootcode.bin
146 /boot/start*.elf
147 /boot/fixup*.dat