11da177e4SLinus Torvalds#!/bin/sh 21da177e4SLinus Torvalds# 32174d292SMike Marciniszyn# Output a simple RPM spec file. 42174d292SMike Marciniszyn# This version assumes a minimum of RPM 4.0.3. 51da177e4SLinus Torvalds# 61da177e4SLinus Torvalds# The only gothic bit here is redefining install_post to avoid 71da177e4SLinus Torvalds# stripping the symbols from files in the kernel which we want 81da177e4SLinus Torvalds# 91da177e4SLinus Torvalds# Patched for non-x86 by Opencon (L) 2002 <[email protected]> 101da177e4SLinus Torvalds# 111da177e4SLinus Torvalds 121da177e4SLinus Torvalds# how we were called determines which rpms we build and how we build them 135289c322SMasahiro Yamadaif [ "$1" = prebuilt ]; then 148c5d4b64SMasahiro Yamada S=DEL 1521b42eb4SMasahiro Yamada MAKE="$MAKE -f $srctree/Makefile" 161da177e4SLinus Torvaldselse 178c5d4b64SMasahiro Yamada S= 181da177e4SLinus Torvaldsfi 191da177e4SLinus Torvalds 200b7f12f5SMasahiro Yamadaif grep -q CONFIG_MODULES=y .config; then 210b7f12f5SMasahiro Yamada M= 220b7f12f5SMasahiro Yamadaelse 230b7f12f5SMasahiro Yamada M=DEL 240b7f12f5SMasahiro Yamadafi 250b7f12f5SMasahiro Yamada 265289c322SMasahiro Yamadaif grep -q CONFIG_DRM=y .config; then 271da177e4SLinus Torvalds PROVIDES=kernel-drm 281da177e4SLinus Torvaldsfi 291da177e4SLinus Torvalds 301da177e4SLinus TorvaldsPROVIDES="$PROVIDES kernel-$KERNELRELEASE" 315289c322SMasahiro Yamada__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g") 32b7dca6ddSMasahiro YamadaEXCLUDES="$RCS_TAR_IGNORE --exclude=*vmlinux* --exclude=*.mod \ 335289c322SMasahiro Yamada--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \ 34c93a0368SMasahiro Yamada--exclude=.config.old --exclude=.missing-syscalls.d --exclude=*.s" 351da177e4SLinus Torvalds 368c5d4b64SMasahiro Yamada# We can label the here-doc lines for conditional output to the spec file 378c5d4b64SMasahiro Yamada# 388c5d4b64SMasahiro Yamada# Labels: 398c5d4b64SMasahiro Yamada# $S: this line is enabled only when building source package 400b7f12f5SMasahiro Yamada# $M: this line is enabled only when CONFIG_MODULES is enabled 418c5d4b64SMasahiro Yamadased -e '/^DEL/d' -e 's/^\t*//' <<EOF 428c5d4b64SMasahiro Yamada Name: kernel 438c5d4b64SMasahiro Yamada Summary: The Linux Kernel 448c5d4b64SMasahiro Yamada Version: $__KERNELRELEASE 458c5d4b64SMasahiro Yamada Release: $(cat .version 2>/dev/null || echo 1) 468c5d4b64SMasahiro Yamada License: GPL 478c5d4b64SMasahiro Yamada Group: System Environment/Kernel 488c5d4b64SMasahiro Yamada Vendor: The Linux Community 4916a122c7SAlexander A. Klimov URL: https://www.kernel.org 508c5d4b64SMasahiro Yamada$S Source: kernel-$__KERNELRELEASE.tar.gz 518c5d4b64SMasahiro Yamada Provides: $PROVIDES 52*3089b2beSMasahiro Yamada # $UTS_MACHINE as a fallback of _arch in case 53*3089b2beSMasahiro Yamada # /usr/lib/rpm/platform/*/macros was not included. 54*3089b2beSMasahiro Yamada %define _arch %{?_arch:$UTS_MACHINE} 558c5d4b64SMasahiro Yamada %define __spec_install_post /usr/lib/rpm/brp-compress || : 568c5d4b64SMasahiro Yamada %define debug_package %{nil} 571da177e4SLinus Torvalds 588c5d4b64SMasahiro Yamada %description 598c5d4b64SMasahiro Yamada The Linux Kernel, the operating system core itself 608c5d4b64SMasahiro Yamada 618c5d4b64SMasahiro Yamada %package headers 628c5d4b64SMasahiro Yamada Summary: Header files for the Linux kernel for use by glibc 638c5d4b64SMasahiro Yamada Group: Development/System 648c5d4b64SMasahiro Yamada Obsoletes: kernel-headers 658c5d4b64SMasahiro Yamada Provides: kernel-headers = %{version} 668c5d4b64SMasahiro Yamada %description headers 678c5d4b64SMasahiro Yamada Kernel-headers includes the C header files that specify the interface 688c5d4b64SMasahiro Yamada between the Linux kernel and userspace libraries and programs. The 698c5d4b64SMasahiro Yamada header files define structures and constants that are needed for 708c5d4b64SMasahiro Yamada building most standard programs and are also needed for rebuilding the 718c5d4b64SMasahiro Yamada glibc package. 728c5d4b64SMasahiro Yamada 730b7f12f5SMasahiro Yamada$S$M %package devel 740b7f12f5SMasahiro Yamada$S$M Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel 750b7f12f5SMasahiro Yamada$S$M Group: System Environment/Kernel 760b7f12f5SMasahiro Yamada$S$M AutoReqProv: no 770b7f12f5SMasahiro Yamada$S$M %description -n kernel-devel 780b7f12f5SMasahiro Yamada$S$M This package provides kernel headers and makefiles sufficient to build modules 790b7f12f5SMasahiro Yamada$S$M against the $__KERNELRELEASE kernel package. 800b7f12f5SMasahiro Yamada$S$M 818c5d4b64SMasahiro Yamada$S %prep 828c5d4b64SMasahiro Yamada$S %setup -q 838c5d4b64SMasahiro Yamada$S 848c5d4b64SMasahiro Yamada$S %build 8521b42eb4SMasahiro Yamada$S $MAKE %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release} 868c5d4b64SMasahiro Yamada$S 878c5d4b64SMasahiro Yamada %install 88002494d8SMasahiro Yamada mkdir -p %{buildroot}/boot 898c5d4b64SMasahiro Yamada %ifarch ia64 90002494d8SMasahiro Yamada mkdir -p %{buildroot}/boot/efi 9121b42eb4SMasahiro Yamada cp \$($MAKE image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE 92002494d8SMasahiro Yamada ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/ 938c5d4b64SMasahiro Yamada %else 9421b42eb4SMasahiro Yamada cp \$($MAKE image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE 958c5d4b64SMasahiro Yamada %endif 9621b42eb4SMasahiro Yamada$M $MAKE %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} modules_install 9721b42eb4SMasahiro Yamada $MAKE %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install 98002494d8SMasahiro Yamada cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE 99002494d8SMasahiro Yamada cp .config %{buildroot}/boot/config-$KERNELRELEASE 1008c5d4b64SMasahiro Yamada bzip2 -9 --keep vmlinux 101002494d8SMasahiro Yamada mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2 102002494d8SMasahiro Yamada$S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build 103002494d8SMasahiro Yamada$S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source 104002494d8SMasahiro Yamada$S$M mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE 1058a6105c4SJason Gunthorpe$S$M tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE 106002494d8SMasahiro Yamada$S$M cd %{buildroot}/lib/modules/$KERNELRELEASE 1070b7f12f5SMasahiro Yamada$S$M ln -sf /usr/src/kernels/$KERNELRELEASE build 1080b7f12f5SMasahiro Yamada$S$M ln -sf /usr/src/kernels/$KERNELRELEASE source 1098c5d4b64SMasahiro Yamada 1108c5d4b64SMasahiro Yamada %clean 111002494d8SMasahiro Yamada rm -rf %{buildroot} 1128c5d4b64SMasahiro Yamada 1138c5d4b64SMasahiro Yamada %post 1148c5d4b64SMasahiro Yamada if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then 1158c5d4b64SMasahiro Yamada cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm 1168c5d4b64SMasahiro Yamada cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm 1178c5d4b64SMasahiro Yamada rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE 1188c5d4b64SMasahiro Yamada /sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm 1198c5d4b64SMasahiro Yamada rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm 1201da177e4SLinus Torvalds fi 1211da177e4SLinus Torvalds 1228c5d4b64SMasahiro Yamada %preun 1238c5d4b64SMasahiro Yamada if [ -x /sbin/new-kernel-pkg ]; then 1248c5d4b64SMasahiro Yamada new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img 125eea6f62bSJavier Martinez Canillas elif [ -x /usr/bin/kernel-install ]; then 126eea6f62bSJavier Martinez Canillas kernel-install remove $KERNELRELEASE 1271da177e4SLinus Torvalds fi 1281da177e4SLinus Torvalds 1298c5d4b64SMasahiro Yamada %postun 1308c5d4b64SMasahiro Yamada if [ -x /sbin/update-bootloader ]; then 1318c5d4b64SMasahiro Yamada /sbin/update-bootloader --remove $KERNELRELEASE 132b9a54424SJérôme Glisse fi 1332174d292SMike Marciniszyn 1348c5d4b64SMasahiro Yamada %files 1358c5d4b64SMasahiro Yamada %defattr (-, root, root) 1360b7f12f5SMasahiro Yamada$M /lib/modules/$KERNELRELEASE 1370b7f12f5SMasahiro Yamada$M %exclude /lib/modules/$KERNELRELEASE/build 1380b7f12f5SMasahiro Yamada$M %exclude /lib/modules/$KERNELRELEASE/source 1398c5d4b64SMasahiro Yamada /boot/* 1408c5d4b64SMasahiro Yamada 1418c5d4b64SMasahiro Yamada %files headers 1428c5d4b64SMasahiro Yamada %defattr (-, root, root) 1438c5d4b64SMasahiro Yamada /usr/include 1440b7f12f5SMasahiro Yamada$S$M 1450b7f12f5SMasahiro Yamada$S$M %files devel 1460b7f12f5SMasahiro Yamada$S$M %defattr (-, root, root) 1470b7f12f5SMasahiro Yamada$S$M /usr/src/kernels/$KERNELRELEASE 1480b7f12f5SMasahiro Yamada$S$M /lib/modules/$KERNELRELEASE/build 1490b7f12f5SMasahiro Yamada$S$M /lib/modules/$KERNELRELEASE/source 1508c5d4b64SMasahiro YamadaEOF 151