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 <opencon@rio.skydome.net> 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 151da177e4SLinus Torvaldselse 168c5d4b64SMasahiro Yamada S= 171da177e4SLinus Torvaldsfi 181da177e4SLinus Torvalds 190b7f12f5SMasahiro Yamadaif grep -q CONFIG_MODULES=y .config; then 200b7f12f5SMasahiro Yamada M= 210b7f12f5SMasahiro Yamadaelse 220b7f12f5SMasahiro Yamada M=DEL 230b7f12f5SMasahiro Yamadafi 240b7f12f5SMasahiro Yamada 255289c322SMasahiro Yamadaif grep -q CONFIG_DRM=y .config; then 261da177e4SLinus Torvalds PROVIDES=kernel-drm 271da177e4SLinus Torvaldsfi 281da177e4SLinus Torvalds 291da177e4SLinus TorvaldsPROVIDES="$PROVIDES kernel-$KERNELRELEASE" 305289c322SMasahiro Yamada__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g") 315289c322SMasahiro YamadaEXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \ 325289c322SMasahiro Yamada--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \ 335289c322SMasahiro Yamada--exclude=.config.old --exclude=.missing-syscalls.d" 341da177e4SLinus Torvalds 358c5d4b64SMasahiro Yamada# We can label the here-doc lines for conditional output to the spec file 368c5d4b64SMasahiro Yamada# 378c5d4b64SMasahiro Yamada# Labels: 388c5d4b64SMasahiro Yamada# $S: this line is enabled only when building source package 390b7f12f5SMasahiro Yamada# $M: this line is enabled only when CONFIG_MODULES is enabled 408c5d4b64SMasahiro Yamadased -e '/^DEL/d' -e 's/^\t*//' <<EOF 418c5d4b64SMasahiro Yamada Name: kernel 428c5d4b64SMasahiro Yamada Summary: The Linux Kernel 438c5d4b64SMasahiro Yamada Version: $__KERNELRELEASE 448c5d4b64SMasahiro Yamada Release: $(cat .version 2>/dev/null || echo 1) 458c5d4b64SMasahiro Yamada License: GPL 468c5d4b64SMasahiro Yamada Group: System Environment/Kernel 478c5d4b64SMasahiro Yamada Vendor: The Linux Community 488c5d4b64SMasahiro Yamada URL: http://www.kernel.org 498c5d4b64SMasahiro Yamada$S Source: kernel-$__KERNELRELEASE.tar.gz 508c5d4b64SMasahiro Yamada Provides: $PROVIDES 518c5d4b64SMasahiro Yamada %define __spec_install_post /usr/lib/rpm/brp-compress || : 528c5d4b64SMasahiro Yamada %define debug_package %{nil} 531da177e4SLinus Torvalds 548c5d4b64SMasahiro Yamada %description 558c5d4b64SMasahiro Yamada The Linux Kernel, the operating system core itself 568c5d4b64SMasahiro Yamada 578c5d4b64SMasahiro Yamada %package headers 588c5d4b64SMasahiro Yamada Summary: Header files for the Linux kernel for use by glibc 598c5d4b64SMasahiro Yamada Group: Development/System 608c5d4b64SMasahiro Yamada Obsoletes: kernel-headers 618c5d4b64SMasahiro Yamada Provides: kernel-headers = %{version} 628c5d4b64SMasahiro Yamada %description headers 638c5d4b64SMasahiro Yamada Kernel-headers includes the C header files that specify the interface 648c5d4b64SMasahiro Yamada between the Linux kernel and userspace libraries and programs. The 658c5d4b64SMasahiro Yamada header files define structures and constants that are needed for 668c5d4b64SMasahiro Yamada building most standard programs and are also needed for rebuilding the 678c5d4b64SMasahiro Yamada glibc package. 688c5d4b64SMasahiro Yamada 690b7f12f5SMasahiro Yamada$S$M %package devel 700b7f12f5SMasahiro Yamada$S$M Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel 710b7f12f5SMasahiro Yamada$S$M Group: System Environment/Kernel 720b7f12f5SMasahiro Yamada$S$M AutoReqProv: no 730b7f12f5SMasahiro Yamada$S$M %description -n kernel-devel 740b7f12f5SMasahiro Yamada$S$M This package provides kernel headers and makefiles sufficient to build modules 750b7f12f5SMasahiro Yamada$S$M against the $__KERNELRELEASE kernel package. 760b7f12f5SMasahiro Yamada$S$M 778c5d4b64SMasahiro Yamada$S %prep 788c5d4b64SMasahiro Yamada$S %setup -q 798c5d4b64SMasahiro Yamada$S 808c5d4b64SMasahiro Yamada$S %build 818c5d4b64SMasahiro Yamada$S make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release} 828c5d4b64SMasahiro Yamada$S 838c5d4b64SMasahiro Yamada %install 848c5d4b64SMasahiro Yamada mkdir -p \$RPM_BUILD_ROOT/boot 858c5d4b64SMasahiro Yamada %ifarch ia64 868c5d4b64SMasahiro Yamada mkdir -p \$RPM_BUILD_ROOT/boot/efi 878c5d4b64SMasahiro Yamada cp \$(make image_name) \$RPM_BUILD_ROOT/boot/efi/vmlinuz-$KERNELRELEASE 888c5d4b64SMasahiro Yamada ln -s efi/vmlinuz-$KERNELRELEASE \$RPM_BUILD_ROOT/boot/ 898c5d4b64SMasahiro Yamada %else 908c5d4b64SMasahiro Yamada cp \$(make image_name) \$RPM_BUILD_ROOT/boot/vmlinuz-$KERNELRELEASE 918c5d4b64SMasahiro Yamada %endif 920b7f12f5SMasahiro Yamada$M make %{?_smp_mflags} INSTALL_MOD_PATH=\$RPM_BUILD_ROOT KBUILD_SRC= modules_install 938c5d4b64SMasahiro Yamada make %{?_smp_mflags} INSTALL_HDR_PATH=\$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install 948c5d4b64SMasahiro Yamada cp System.map \$RPM_BUILD_ROOT/boot/System.map-$KERNELRELEASE 958c5d4b64SMasahiro Yamada cp .config \$RPM_BUILD_ROOT/boot/config-$KERNELRELEASE 968c5d4b64SMasahiro Yamada bzip2 -9 --keep vmlinux 978c5d4b64SMasahiro Yamada mv vmlinux.bz2 \$RPM_BUILD_ROOT/boot/vmlinux-$KERNELRELEASE.bz2 980b7f12f5SMasahiro Yamada$S$M rm -f \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE/build 990b7f12f5SMasahiro Yamada$S$M rm -f \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE/source 1000b7f12f5SMasahiro Yamada$S$M mkdir -p \$RPM_BUILD_ROOT/usr/src/kernels/$KERNELRELEASE 1010b7f12f5SMasahiro Yamada$S$M tar cf - . $EXCLUDES | tar xf - -C \$RPM_BUILD_ROOT/usr/src/kernels/$KERNELRELEASE 1020b7f12f5SMasahiro Yamada$S$M cd \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE 1030b7f12f5SMasahiro Yamada$S$M ln -sf /usr/src/kernels/$KERNELRELEASE build 1040b7f12f5SMasahiro Yamada$S$M ln -sf /usr/src/kernels/$KERNELRELEASE source 1058c5d4b64SMasahiro Yamada 1068c5d4b64SMasahiro Yamada %clean 1078c5d4b64SMasahiro Yamada rm -rf \$RPM_BUILD_ROOT 1088c5d4b64SMasahiro Yamada 1098c5d4b64SMasahiro Yamada %post 1108c5d4b64SMasahiro Yamada if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then 1118c5d4b64SMasahiro Yamada cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm 1128c5d4b64SMasahiro Yamada cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm 1138c5d4b64SMasahiro Yamada rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE 1148c5d4b64SMasahiro Yamada /sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm 1158c5d4b64SMasahiro Yamada rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm 1161da177e4SLinus Torvalds fi 1171da177e4SLinus Torvalds 1188c5d4b64SMasahiro Yamada %preun 1198c5d4b64SMasahiro Yamada if [ -x /sbin/new-kernel-pkg ]; then 1208c5d4b64SMasahiro Yamada new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img 1211da177e4SLinus Torvalds fi 1221da177e4SLinus Torvalds 1238c5d4b64SMasahiro Yamada %postun 1248c5d4b64SMasahiro Yamada if [ -x /sbin/update-bootloader ]; then 1258c5d4b64SMasahiro Yamada /sbin/update-bootloader --remove $KERNELRELEASE 126b9a54424SJérôme Glisse fi 1272174d292SMike Marciniszyn 1288c5d4b64SMasahiro Yamada %files 1298c5d4b64SMasahiro Yamada %defattr (-, root, root) 1300b7f12f5SMasahiro Yamada$M /lib/modules/$KERNELRELEASE 1310b7f12f5SMasahiro Yamada$M %exclude /lib/modules/$KERNELRELEASE/build 1320b7f12f5SMasahiro Yamada$M %exclude /lib/modules/$KERNELRELEASE/source 1338c5d4b64SMasahiro Yamada /boot/* 1348c5d4b64SMasahiro Yamada 1358c5d4b64SMasahiro Yamada %files headers 1368c5d4b64SMasahiro Yamada %defattr (-, root, root) 1378c5d4b64SMasahiro Yamada /usr/include 1380b7f12f5SMasahiro Yamada$S$M 1390b7f12f5SMasahiro Yamada$S$M %files devel 1400b7f12f5SMasahiro Yamada$S$M %defattr (-, root, root) 1410b7f12f5SMasahiro Yamada$S$M /usr/src/kernels/$KERNELRELEASE 1420b7f12f5SMasahiro Yamada$S$M /lib/modules/$KERNELRELEASE/build 1430b7f12f5SMasahiro Yamada$S$M /lib/modules/$KERNELRELEASE/source 1448c5d4b64SMasahiro YamadaEOF 145