diff options
Diffstat (limited to 'kernel.spec.template')
-rw-r--r-- | kernel.spec.template | 128 |
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/* |