aboutsummaryrefslogtreecommitdiffstats
path: root/kernel.spec.template
diff options
context:
space:
mode:
Diffstat (limited to 'kernel.spec.template')
-rw-r--r--kernel.spec.template128
1 files changed, 128 insertions, 0 deletions
diff --git a/kernel.spec.template b/kernel.spec.template
new file mode 100644
index 0000000..e4edb35
--- /dev/null
+++ b/kernel.spec.template
@@ -0,0 +1,128 @@
+%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: devtoolset-9-gcc
+BuildRequires: devtoolset-9-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
+source /opt/rh/devtoolset-9/enable
+gcc --version
+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
+source /opt/rh/devtoolset-9/enable
+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/*