packaging: make headers for user tools
[platform/kernel/linux-exynos.git] / packaging / odroid-linux-kernel.spec
1 # Ignore double dash in version for rpmbuild
2 %define _wrong_version_format_terminate_build 0
3
4 %define config_name tizen_odroid_defconfig
5 %define buildarch arm
6 %define target_board odroidxu3
7 %define variant %{buildarch}-%{target_board}
8
9 Name: odroid-linux-kernel
10 Summary: The Linux Kernel for ODROID XU3
11 Version: 4.14.99
12 Release: 0
13 License: GPL-2.0
14 ExclusiveArch: %{arm}
15 Group: System/Kernel
16 Vendor: The Linux Community
17 URL: http://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: module-init-tools
24 BuildRequires: bc
25
26 %description
27 The Linux Kernel, the operating system core itself
28
29 %package -n %{variant}-linux-kernel
30 Summary: Tizen kernel for %{target_board}
31 Group: System/Kernel
32 Provides: %{variant}-odroid-kernel-profile_common = %{version}-%{release}
33 Provides: %{variant}-odroid-kernel-profile_mobile = %{version}-%{release}
34 Provides: %{variant}-odroid-kernel-profile_tv = %{version}-%{release}
35 Provides: %{variant}-odroid-kernel-profile_ivi = %{version}-%{release}
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 (common/mobile/tv/ivi profile, 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 for odroid kernel.
60
61 %package -n kdbus-tests
62 License:       Apache-2.0
63 Summary:       Kdbus tests
64 Group:         Base/IPC
65 BuildRequires: libcap-devel rsync
66
67 %description -n kdbus-tests
68 A single binary that tests kdbus operation.
69
70 %prep
71 %setup -q -n linux-kernel-%{version}
72
73 %build
74 %{?asan:/usr/bin/gcc-unforce-options}
75 %{?ubsan:/usr/bin/gcc-unforce-options}
76
77 # Make sure EXTRAVERSION says what we want it to say
78 sed -i "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}-%{variant}/" Makefile
79
80 # 1. Compile sources
81 make %{config_name}
82 make %{?_smp_mflags}
83
84 # 2. Build zImage
85 make zImage %{?_smp_mflags}
86 make dtbs %{?_smp_mflags}
87
88 # 3. Build modules
89 make modules %{?_smp_mflags}
90
91 # Additionally, build kdbus tests
92 # extract uapi headers first for user tools
93 make headers_check
94 make headers_install
95 make -C tools/testing/selftests/kdbus
96
97 %install
98 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
99
100 # 1. Destynation directories
101 mkdir -p %{buildroot}/boot/
102 mkdir -p %{buildroot}/lib/modules/%{fullVersion}
103
104 # 2. Install zImage, System.map, ...
105 install -m 755 arch/arm/boot/zImage %{buildroot}/boot/
106 install -m 644 arch/arm/boot/dts/*odroid*.dtb %{buildroot}/boot/
107
108 install -m 644 System.map %{buildroot}/boot/System.map-%{fullVersion}
109 install -m 644 .config %{buildroot}/boot/config-%{fullVersion}
110
111 # 3. Install modules
112 make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install KERNELRELEASE=%{fullVersion}
113
114 rm -rf %{buildroot}/boot/vmlinux*
115 rm -rf %{buildroot}/System.map*
116 rm -rf %{buildroot}/vmlinux*
117
118 # 7. Update file permisions
119 find %{buildroot}/lib/modules/ -name "*.ko" -type f -print0 | xargs -0 chmod 755
120
121 # 8. Create symbolic links
122 rm -f %{buildroot}/lib/modules/%{fullVersion}/build
123 rm -f %{buildroot}/lib/modules/%{fullVersion}/source
124
125 # install kdbus tests
126 %define _test_runner_dir /usr/lib/dbus-tests/runner
127 mkdir -p %{buildroot}%{_test_runner_dir}
128 make -C tools/testing/selftests/kdbus INSTALL_PATH=%{buildroot}%{_test_runner_dir} TEST_PROGS=kdbus-test install
129 make -C tools/testing/selftests/kdbus clean
130
131 # 9-1. remove unnecessary files to prepare for devel package
132 rm -f tools/mkimage*
133 find %{_builddir}/linux-kernel-%{version} -name "*\.HEX" -type f -delete
134 find %{_builddir}/linux-kernel-%{version} -name "vdso.so.raw" -type f -delete
135 find %{_builddir}/linux-kernel-%{version} -name ".tmp_vmlinux*" -delete
136 find %{_builddir}/linux-kernel-%{version} -name ".gitignore" -delete
137 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb*tmp" -delete
138 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb" -delete
139 find %{_builddir}/linux-kernel-%{version} -name "*\.*tmp" -delete
140 find %{_builddir}/linux-kernel-%{version} -name "vmlinux" -delete
141 find %{_builddir}/linux-kernel-%{version} -name "zImage" -delete
142 find %{_builddir}/linux-kernel-%{version} -name "*.cmd" -delete
143 find %{_builddir}/linux-kernel-%{version} -name "*\.ko" -delete
144 find %{_builddir}/linux-kernel-%{version} -name "*\.o" -delete
145 find %{_builddir}/linux-kernel-%{version} -name "*\.S" -delete
146 find %{_builddir}/linux-kernel-%{version} -name "*\.c" -not -path "%{_builddir}/linux-kernel-%{version}/scripts/*" -delete
147
148 # 9-2. copy devel package
149 mkdir -p %{buildroot}/boot/kernel/devel
150 cp -r %{_builddir}/linux-kernel-%{version} %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
151
152 %clean
153 rm -rf %{buildroot}
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/*.dtb
165 /boot/System.map*
166 /boot/config*
167
168 %files -n kdbus-tests
169 %defattr(-,root,root)
170 %{_test_runner_dir}/kdbus-test