packaging: Change the kernel version of the spec files
[platform/kernel/linux-rpi.git] / packaging / linux-rpi3.spec
1 %ifarch aarch64
2 %define config_name tizen_bcmrpi3_defconfig
3 %define buildarch arm64
4 %else
5 %define config_name tizen_bcm2709_defconfig
6 %define buildarch arm
7 %endif
8 %define target_board rpi3
9 %define variant %{buildarch}-%{target_board}
10
11 Name: %{target_board}-linux-kernel
12 Summary: The Linux Kernel for Raspberry Pi3
13 Version: 4.19.40
14 Release: 0
15 License: GPL-2.0
16 ExclusiveArch: %{arm} aarch64
17 Group: System/Kernel
18 Vendor: The Linux Community
19 URL: https://www.kernel.org
20 Source0:   linux-kernel-%{version}.tar.xz
21 BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
22
23 %define fullVersion %{version}-%{variant}
24
25 BuildRequires: bc
26 BuildRequires: module-init-tools
27 BuildRequires: u-boot-tools >= 2016.03
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 %prep
62 %setup -q -n linux-kernel-%{version}
63
64 %build
65 %{?asan:/usr/bin/gcc-unforce-options}
66 %{?ubsan:/usr/bin/gcc-unforce-options}
67
68 # Make sure EXTRAVERSION says what we want it to say
69 sed -i "s/^EXTRAVERSION.*/EXTRAVERSION = -%{variant}/" Makefile
70
71 # 1-1. Set config file
72 make %{config_name}
73
74 # 1-2. Build Image/Image.gz
75 make %{?_smp_mflags}
76
77 # 1-3. Build dtbs
78 make dtbs %{?_smp_mflags}
79
80 # 1-4. Build modules
81 make modules %{?_smp_mflags}
82
83 %install
84 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
85
86 # 2-1. Destination directories
87 mkdir -p %{buildroot}/boot
88 mkdir -p %{buildroot}/lib/modules
89
90 # 2-2. Install kernel binary and DTB
91 %ifarch aarch64
92 install -m 644 arch/%{buildarch}/boot/Image %{buildroot}/boot/
93 install -m 644 arch/%{buildarch}/boot/dts/broadcom/bcm*.dtb %{buildroot}/boot/
94 %else
95 install -m 644 arch/%{buildarch}/boot/zImage %{buildroot}/boot/
96 install -m 644 arch/%{buildarch}/boot/dts/bcm*.dtb %{buildroot}/boot/
97 %endif
98
99 # 2-3. Install modules
100 make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install
101
102 # 2-4. Install boot binary files
103 %ifarch aarch64
104 install -m 644 rpi3/boot/config_64bit.txt %{buildroot}/boot/config.txt
105 %else
106 install -m 644 rpi3/boot/config_32bit.txt %{buildroot}/boot/config.txt
107 %endif
108 install -m 644 rpi3/boot/LICENCE.broadcom %{buildroot}/boot/
109 install -m 644 rpi3/boot/bootcode.bin %{buildroot}/boot/
110 install -m 644 rpi3/boot/start*.elf %{buildroot}/boot/
111 install -m 644 rpi3/boot/fixup*.dat %{buildroot}/boot/
112
113 # 3-1. remove unnecessary files to prepare for devel package
114 find %{_builddir}/linux-kernel-%{version} -name ".tmp_vmlinux*" -delete
115 find %{_builddir}/linux-kernel-%{version} -name ".gitignore" -delete
116 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb*tmp" -delete
117 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb" -delete
118 find %{_builddir}/linux-kernel-%{version} -name "*\.*tmp" -delete
119 find %{_builddir}/linux-kernel-%{version} -name "vmlinux" -delete
120 find %{_builddir}/linux-kernel-%{version} -name "Image" -delete
121 find %{_builddir}/linux-kernel-%{version} -name "zImage" -delete
122 find %{_builddir}/linux-kernel-%{version} -name "Image.gz" -delete
123 find %{_builddir}/linux-kernel-%{version} -name "*.cmd" -delete
124 find %{_builddir}/linux-kernel-%{version} -name "*\.ko" -delete
125 find %{_builddir}/linux-kernel-%{version} -name "*\.o" -delete
126 find %{_builddir}/linux-kernel-%{version} -name "*\.S" -delete
127 find %{_builddir}/linux-kernel-%{version} -name "*\.HEX" -type f -delete
128 find %{_builddir}/linux-kernel-%{version} -name "*\.c" -not -path "%{_builddir}/linux-kernel-%{version}/scripts/*" -delete
129
130 # 3-2. move files for devel package
131 cp -r  %{_builddir}/linux-kernel-%{version}/ %{_builddir}/kernel-devel-%{variant}/
132
133 # 4. Move files for each package
134 mkdir -p %{buildroot}/boot/kernel/devel
135 mv %{_builddir}/kernel-devel-%{variant} %{buildroot}/boot/kernel/devel/
136
137
138 %clean
139 rm -rf %{buildroot}
140
141 %files -n %{variant}-linux-kernel-modules
142 /lib/modules/*
143
144 %files -n %{variant}-linux-kernel-devel
145 /boot/kernel/devel/*
146
147 %files -n %{variant}-linux-kernel
148 %license COPYING
149 %ifarch aarch64
150 /boot/Image
151 %else
152 /boot/zImage
153 %endif
154 /boot/bcm*.dtb
155 /boot/config.txt
156 /boot/LICENCE.broadcom
157 /boot/bootcode.bin
158 /boot/start*.elf
159 /boot/fixup*.dat