1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
%global debug_package %{nil}
%define KNLVERS %{version}-%{release}.%{_target_cpu}
%define RPMVERS %{version}-%{release}
Name: kernel-@variant@
License: GPLv2
Version: @rpmvers@
Release: @release@.@variant@%{dist}
Summary: linux kernel, @variant@
Source0: linux-@version@.tar.gz
Source1: kernel.config.el75
Source9: kernel.config.tweaks
BuildRequires: gcc binutils
BuildRequires: make bc flex bison
BuildRequires: openssl-devel
BuildRequires: pkgconfig(libelf)
Requires: grubby
Provides: kernel = %{RPMVERS}
%package headers
Summary: linux kernel, @variant@, headers
#Obsoletes: kernel-headers < %{RPMVERS}
#Provides: kernel-headers = %{RPMVERS}
%description
linux kernel, @variant@
%description headers
linux kernel, @variant@, headers
%prep
%setup -q -n linux-@version@
%build
mkdir build
make O=build defconfig
cp %{SOURCE1} build/.config
cat %{SOURCE9} >> build/.config
make -C build olddefconfig
echo "CONFIG_LOCALVERSION=\"-%{release}.%{_target_cpu}\"" >> build/.config
make -C build oldconfig
make EXTRAVERSION="" \
-C build
%install
mkdir -p %{buildroot}/{boot,lib/modules}
make EXTRAVERSION="" \
INSTALL_PATH=%{buildroot}/boot \
INSTALL_MOD_PATH=%{buildroot} \
INSTALL_HDR_PATH=%{buildroot}/usr \
INSTALLKERNEL=/bin/true \
-C build \
install modules_install headers_install
# debug
ls %{buildroot}/boot
ls %{buildroot}/lib/modules
ls %{buildroot}/lib/modules/%{KNLVERS}
# rename /boot files, add config
mv %{buildroot}/boot/System.map \
%{buildroot}/boot/System.map-%{KNLVERS}
mv %{buildroot}/boot/vmlinuz \
%{buildroot}/boot/vmlinuz-%{KNLVERS}
cp build/.config %{buildroot}/boot/config-%{KNLVERS}
# cleanup
rm -rf %{buildroot}/lib/firmware
rm -f %{buildroot}/lib/modules/%{KNLVERS}/modules.*.bin
rm -f %{buildroot}/lib/modules/%{KNLVERS}/modules.{symbols,softdep,devname,dep,alias}
rm -f %{buildroot}/lib/modules/%{KNLVERS}/source
rm -f %{buildroot}/lib/modules/%{KNLVERS}/build
find %{buildroot}/usr -name .install -exec rm "{}" ";"
find %{buildroot}/usr -name ..install.cmd -exec rm "{}" ";"
# strip and compress modules
find %{buildroot}/lib/modules -name "*.ko" | xargs strip --strip-debug
find %{buildroot}/lib/modules -name "*.ko" | xargs gzip
# make systemtap happy
mkdir %{buildroot}/lib/modules/%{KNLVERS}/build
cp build/.config %{buildroot}/lib/modules/%{KNLVERS}/build
%post
if test -x /usr/sbin/new-kernel-pkg; then
echo "# new-kernel-pkg install %{name}-%{KNLVERS}"
/usr/sbin/new-kernel-pkg --package %{name} \
--install "%{KNLVERS}"
fi
%preun
if test -x /usr/sbin/new-kernel-pkg; then
echo "# new-kernel-pkg remove %{name}-%{KNLVERS}"
/usr/sbin/new-kernel-pkg \
--rminitrd --rmmoddep --remove "%{KNLVERS}"
else
echo "# kernel-install remove /boot/vmlinuz-%{KNLVERS}"
/bin/kernel-install remove "%{KNLVERS}" "/boot/vmlinuz-%{KNLVERS}"
fi
%posttrans
if test -x /usr/sbin/new-kernel-pkg; then
echo "# new-kernel-pkg update+posttrans %{name}-%{KNLVERS}"
/usr/sbin/new-kernel-pkg --package %{name} \
--mkinitrd --dracut --depmod --update "%{KNLVERS}"
/usr/sbin/new-kernel-pkg --package %{name} \
--rpmposttrans "%{KNLVERS}"
else
echo "# kernel-install add /boot/vmlinuz-%{KNLVERS}"
/bin/kernel-install add "%{KNLVERS}" "/boot/vmlinuz-%{KNLVERS}"
fi
%files
/boot/config-%{KNLVERS}
/boot/vmlinuz-%{KNLVERS}
/boot/System.map-%{KNLVERS}
/lib/modules/%{KNLVERS}
%ghost /boot/initramfs-%{KNLVERS}.img
%files headers
/usr/include/*
|