kdbus: test suite changed to common format
[platform/kernel/linux-exynos.git] / packaging / odroid-linux-kernel.spec
1 %define config_name tizen_odroid_defconfig
2 %define buildarch arm
3 %define target_board odroidxu3
4 %define variant %{buildarch}-%{target_board}
5
6 Name: odroid-linux-kernel
7 Summary: The Linux Kernel for ODROID XU3
8 Version: 4.14.99
9 Release: 0
10 License: GPL-2.0
11 ExclusiveArch: %{arm}
12 Group: System/Kernel
13 Vendor: The Linux Community
14 URL: http://www.kernel.org
15 Source0:   linux-kernel-%{version}.tar.xz
16 BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root
17
18 %define fullVersion %{version}-%{variant}
19
20 BuildRequires: module-init-tools
21 BuildRequires: u-boot-tools
22 BuildRequires: bc
23
24 %description
25 The Linux Kernel, the operating system core itself
26
27 %package -n %{variant}-linux-kernel
28 Summary: Tizen kernel for %{target_board}
29 Group: System/Kernel
30 Provides: %{variant}-odroid-kernel-profile_common = %{version}-%{release}
31 Provides: %{variant}-odroid-kernel-profile_mobile = %{version}-%{release}
32 Provides: %{variant}-odroid-kernel-profile_tv = %{version}-%{release}
33 Provides: %{variant}-odroid-kernel-profile_ivi = %{version}-%{release}
34 Provides: %{variant}-kernel-uname-r = %{fullVersion}
35 Provides: linux-kernel = %{version}-%{release}
36
37 %description -n %{variant}-linux-kernel
38 This package contains the Linux kernel for Tizen (common/mobile/tv/ivi profile, arch %{buildarch}, target board %{target_board})
39
40 %package -n %{variant}-linux-kernel-modules
41 Summary: Kernel modules for %{target_board}
42 Group: System/Kernel
43 Provides: %{variant}-kernel-modules = %{fullVersion}
44 Provides: %{variant}-kernel-modules-uname-r = %{fullVersion}
45
46 %description -n %{variant}-linux-kernel-modules
47 Kernel-modules includes the loadable kernel modules(.ko files) for %{target_board}
48
49 %package -n %{variant}-linux-kernel-devel
50 License: GPL-2.0
51 Summary: Linux support kernel map and etc for other packages
52 Group: System/Kernel
53 Provides: %{variant}-kernel-devel = %{fullVersion}
54 Provides: %{variant}-kernel-devel-uname-r = %{fullVersion}
55
56 %description -n %{variant}-linux-kernel-devel
57 This package provides kernel map and etc information for odroid kernel.
58
59 %package -n kdbus-tests
60 License:       Apache-2.0
61 Summary:       Kdbus tests
62 Group:         Base/IPC
63 BuildRequires: libcap-devel rsync
64
65 %description -n kdbus-tests
66 A single binary that tests kdbus operation.
67
68 %prep
69 %setup -q -n linux-kernel-%{version}
70
71 %build
72 %{?asan:/usr/bin/gcc-unforce-options}
73 %{?ubsan:/usr/bin/gcc-unforce-options}
74
75 # Make sure EXTRAVERSION says what we want it to say
76 sed -i "s/^EXTRAVERSION.*/EXTRAVERSION = -%{release}-%{variant}/" Makefile
77
78 # 1. Compile sources
79 make %{config_name}
80 make %{?_smp_mflags}
81
82 # 2. Build zImage
83 make zImage %{?_smp_mflags}
84 make dtbs %{?_smp_mflags}
85
86 # 3. Build modules
87 make modules %{?_smp_mflags}
88
89 # Additionally, build kdbus tests
90 make -C tools/testing/selftests/kdbus
91
92 %install
93 QA_SKIP_BUILD_ROOT="DO_NOT_WANT"; export QA_SKIP_BUILD_ROOT
94
95 # 1. Destynation directories
96 mkdir -p %{buildroot}/boot/
97 mkdir -p %{buildroot}/lib/modules/%{fullVersion}
98
99 # 2. Install zImage, System.map, ...
100 install -m 755 arch/arm/boot/zImage %{buildroot}/boot/
101 install -m 644 arch/arm/boot/dts/*odroid*.dtb %{buildroot}/boot/
102
103 install -m 644 System.map %{buildroot}/boot/System.map-%{fullVersion}
104 install -m 644 .config %{buildroot}/boot/config-%{fullVersion}
105
106 # 3. Install modules
107 make INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=%{buildroot} modules_install KERNELRELEASE=%{fullVersion}
108
109 rm -rf %{buildroot}/boot/vmlinux*
110 rm -rf %{buildroot}/System.map*
111 rm -rf %{buildroot}/vmlinux*
112
113 # 7. Update file permisions
114 find %{buildroot}/lib/modules/ -name "*.ko" -type f -print0 | xargs -0 chmod 755
115
116 # 8. Create symbolic links
117 rm -f %{buildroot}/lib/modules/%{fullVersion}/build
118 rm -f %{buildroot}/lib/modules/%{fullVersion}/source
119
120 # install kdbus tests
121 %define _test_runner_dir /usr/lib/dbus-tests/runner
122 mkdir -p %{buildroot}%{_test_runner_dir}
123 make -C tools/testing/selftests/kdbus INSTALL_PATH=%{buildroot}%{_test_runner_dir} TEST_PROGS=kdbus-test install
124 make -C tools/testing/selftests/kdbus clean
125
126 # 9-1. remove unnecessary files to prepare for devel package
127 rm -f tools/mkimage*
128 find %{_builddir}/linux-kernel-%{version} -name "*\.HEX" -type f -delete
129 find %{_builddir}/linux-kernel-%{version} -name "vdso.so.raw" -type f -delete
130 find %{_builddir}/linux-kernel-%{version} -name ".tmp_vmlinux*" -delete
131 find %{_builddir}/linux-kernel-%{version} -name ".gitignore" -delete
132 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb*tmp" -delete
133 find %{_builddir}/linux-kernel-%{version} -name "\.*dtb" -delete
134 find %{_builddir}/linux-kernel-%{version} -name "*\.*tmp" -delete
135 find %{_builddir}/linux-kernel-%{version} -name "vmlinux" -delete
136 find %{_builddir}/linux-kernel-%{version} -name "zImage" -delete
137 find %{_builddir}/linux-kernel-%{version} -name "*.cmd" -delete
138 find %{_builddir}/linux-kernel-%{version} -name "*\.ko" -delete
139 find %{_builddir}/linux-kernel-%{version} -name "*\.o" -delete
140 find %{_builddir}/linux-kernel-%{version} -name "*\.S" -delete
141 find %{_builddir}/linux-kernel-%{version} -name "*\.c" -not -path "%{_builddir}/linux-kernel-%{version}/scripts/*" -delete
142
143 # 9-2. copy devel package
144 mkdir -p %{buildroot}/boot/kernel/devel
145 cp -r %{_builddir}/linux-kernel-%{version} %{buildroot}/boot/kernel/devel/kernel-devel-%{variant}
146
147 %clean
148 rm -rf %{buildroot}
149
150 %files -n %{variant}-linux-kernel-modules
151 /lib/modules/*
152
153 %files -n %{variant}-linux-kernel-devel
154 /boot/kernel/devel/*
155
156 %files -n %{variant}-linux-kernel
157 %license COPYING
158 /boot/zImage
159 /boot/*.dtb
160 /boot/System.map*
161 /boot/config*
162
163 %files -n kdbus-tests
164 %defattr(-,root,root)
165 %{_test_runner_dir}/kdbus-test