aboutsummaryrefslogtreecommitdiffstats
path: root/kernel.spec.template
blob: 4fabe3e4cad2e0d273d1b81ea54f154eb906d1bc (plain)
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
%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 %{?_smp_mflags}

%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      -print | xargs rm
find %{buildroot}/usr -name ..install.cmd -print | xargs 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
echo "# new-kernel-pkg install %{name}-%{KNLVERS}"
/usr/sbin/new-kernel-pkg --package %{name} \
	--install "%{KNLVERS}"

%preun
echo "# new-kernel-pkg remove %{name}-%{KNLVERS}"
/usr/sbin/new-kernel-pkg \
	--rminitrd --rmmoddep --remove "%{KNLVERS}"

%posttrans
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}"

%files
/boot/config-%{KNLVERS}
/boot/vmlinuz-%{KNLVERS}
/boot/System.map-%{KNLVERS}
/lib/modules/%{KNLVERS}
%ghost /boot/initramfs-%{KNLVERS}.img

%files headers
/usr/include/*