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 14*8c5d4b64SMasahiro Yamada S=DEL 151da177e4SLinus Torvaldselse 16*8c5d4b64SMasahiro Yamada S= 171da177e4SLinus Torvaldsfi 181da177e4SLinus Torvalds 195289c322SMasahiro Yamadaif grep -q CONFIG_DRM=y .config; then 201da177e4SLinus Torvalds PROVIDES=kernel-drm 211da177e4SLinus Torvaldsfi 221da177e4SLinus Torvalds 231da177e4SLinus TorvaldsPROVIDES="$PROVIDES kernel-$KERNELRELEASE" 245289c322SMasahiro Yamada__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g") 255289c322SMasahiro YamadaEXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \ 265289c322SMasahiro Yamada--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \ 275289c322SMasahiro Yamada--exclude=.config.old --exclude=.missing-syscalls.d" 281da177e4SLinus Torvalds 29*8c5d4b64SMasahiro Yamada# We can label the here-doc lines for conditional output to the spec file 30*8c5d4b64SMasahiro Yamada# 31*8c5d4b64SMasahiro Yamada# Labels: 32*8c5d4b64SMasahiro Yamada# $S: this line is enabled only when building source package 33*8c5d4b64SMasahiro Yamadased -e '/^DEL/d' -e 's/^\t*//' <<EOF 34*8c5d4b64SMasahiro Yamada Name: kernel 35*8c5d4b64SMasahiro Yamada Summary: The Linux Kernel 36*8c5d4b64SMasahiro Yamada Version: $__KERNELRELEASE 37*8c5d4b64SMasahiro Yamada Release: $(cat .version 2>/dev/null || echo 1) 38*8c5d4b64SMasahiro Yamada License: GPL 39*8c5d4b64SMasahiro Yamada Group: System Environment/Kernel 40*8c5d4b64SMasahiro Yamada Vendor: The Linux Community 41*8c5d4b64SMasahiro Yamada URL: http://www.kernel.org 42*8c5d4b64SMasahiro Yamada$S Source: kernel-$__KERNELRELEASE.tar.gz 43*8c5d4b64SMasahiro Yamada Provides: $PROVIDES 44*8c5d4b64SMasahiro Yamada %define __spec_install_post /usr/lib/rpm/brp-compress || : 45*8c5d4b64SMasahiro Yamada %define debug_package %{nil} 461da177e4SLinus Torvalds 47*8c5d4b64SMasahiro Yamada %description 48*8c5d4b64SMasahiro Yamada The Linux Kernel, the operating system core itself 49*8c5d4b64SMasahiro Yamada 50*8c5d4b64SMasahiro Yamada %package headers 51*8c5d4b64SMasahiro Yamada Summary: Header files for the Linux kernel for use by glibc 52*8c5d4b64SMasahiro Yamada Group: Development/System 53*8c5d4b64SMasahiro Yamada Obsoletes: kernel-headers 54*8c5d4b64SMasahiro Yamada Provides: kernel-headers = %{version} 55*8c5d4b64SMasahiro Yamada %description headers 56*8c5d4b64SMasahiro Yamada Kernel-headers includes the C header files that specify the interface 57*8c5d4b64SMasahiro Yamada between the Linux kernel and userspace libraries and programs. The 58*8c5d4b64SMasahiro Yamada header files define structures and constants that are needed for 59*8c5d4b64SMasahiro Yamada building most standard programs and are also needed for rebuilding the 60*8c5d4b64SMasahiro Yamada glibc package. 61*8c5d4b64SMasahiro Yamada 62*8c5d4b64SMasahiro Yamada$S %package devel 63*8c5d4b64SMasahiro Yamada$S Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel 64*8c5d4b64SMasahiro Yamada$S Group: System Environment/Kernel 65*8c5d4b64SMasahiro Yamada$S AutoReqProv: no 66*8c5d4b64SMasahiro Yamada$S %description -n kernel-devel 67*8c5d4b64SMasahiro Yamada$S This package provides kernel headers and makefiles sufficient to build modules 68*8c5d4b64SMasahiro Yamada$S against the $__KERNELRELEASE kernel package. 69*8c5d4b64SMasahiro Yamada$S 70*8c5d4b64SMasahiro Yamada$S %prep 71*8c5d4b64SMasahiro Yamada$S %setup -q 72*8c5d4b64SMasahiro Yamada$S 73*8c5d4b64SMasahiro Yamada$S %build 74*8c5d4b64SMasahiro Yamada$S make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release} 75*8c5d4b64SMasahiro Yamada$S 76*8c5d4b64SMasahiro Yamada %install 77*8c5d4b64SMasahiro Yamada mkdir -p \$RPM_BUILD_ROOT/boot 78*8c5d4b64SMasahiro Yamada %ifarch ia64 79*8c5d4b64SMasahiro Yamada mkdir -p \$RPM_BUILD_ROOT/boot/efi 80*8c5d4b64SMasahiro Yamada cp \$(make image_name) \$RPM_BUILD_ROOT/boot/efi/vmlinuz-$KERNELRELEASE 81*8c5d4b64SMasahiro Yamada ln -s efi/vmlinuz-$KERNELRELEASE \$RPM_BUILD_ROOT/boot/ 82*8c5d4b64SMasahiro Yamada %else 83*8c5d4b64SMasahiro Yamada cp \$(make image_name) \$RPM_BUILD_ROOT/boot/vmlinuz-$KERNELRELEASE 84*8c5d4b64SMasahiro Yamada %endif 85*8c5d4b64SMasahiro Yamada make %{?_smp_mflags} INSTALL_MOD_PATH=\$RPM_BUILD_ROOT KBUILD_SRC= modules_install 86*8c5d4b64SMasahiro Yamada make %{?_smp_mflags} INSTALL_HDR_PATH=\$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install 87*8c5d4b64SMasahiro Yamada cp System.map \$RPM_BUILD_ROOT/boot/System.map-$KERNELRELEASE 88*8c5d4b64SMasahiro Yamada cp .config \$RPM_BUILD_ROOT/boot/config-$KERNELRELEASE 89*8c5d4b64SMasahiro Yamada bzip2 -9 --keep vmlinux 90*8c5d4b64SMasahiro Yamada mv vmlinux.bz2 \$RPM_BUILD_ROOT/boot/vmlinux-$KERNELRELEASE.bz2 91*8c5d4b64SMasahiro Yamada$S rm -f \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE/build 92*8c5d4b64SMasahiro Yamada$S rm -f \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE/source 93*8c5d4b64SMasahiro Yamada$S mkdir -p \$RPM_BUILD_ROOT/usr/src/kernels/$KERNELRELEASE 94*8c5d4b64SMasahiro Yamada$S tar cf - . $EXCLUDES | tar xf - -C \$RPM_BUILD_ROOT/usr/src/kernels/$KERNELRELEASE 95*8c5d4b64SMasahiro Yamada$S cd \$RPM_BUILD_ROOT/lib/modules/$KERNELRELEASE 96*8c5d4b64SMasahiro Yamada$S ln -sf /usr/src/kernels/$KERNELRELEASE build 97*8c5d4b64SMasahiro Yamada$S ln -sf /usr/src/kernels/$KERNELRELEASE source 98*8c5d4b64SMasahiro Yamada 99*8c5d4b64SMasahiro Yamada %clean 100*8c5d4b64SMasahiro Yamada rm -rf \$RPM_BUILD_ROOT 101*8c5d4b64SMasahiro Yamada 102*8c5d4b64SMasahiro Yamada %post 103*8c5d4b64SMasahiro Yamada if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then 104*8c5d4b64SMasahiro Yamada cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm 105*8c5d4b64SMasahiro Yamada cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm 106*8c5d4b64SMasahiro Yamada rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE 107*8c5d4b64SMasahiro Yamada /sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm 108*8c5d4b64SMasahiro Yamada rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm 1091da177e4SLinus Torvalds fi 1101da177e4SLinus Torvalds 111*8c5d4b64SMasahiro Yamada %preun 112*8c5d4b64SMasahiro Yamada if [ -x /sbin/new-kernel-pkg ]; then 113*8c5d4b64SMasahiro Yamada new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img 1141da177e4SLinus Torvalds fi 1151da177e4SLinus Torvalds 116*8c5d4b64SMasahiro Yamada %postun 117*8c5d4b64SMasahiro Yamada if [ -x /sbin/update-bootloader ]; then 118*8c5d4b64SMasahiro Yamada /sbin/update-bootloader --remove $KERNELRELEASE 119b9a54424SJérôme Glisse fi 1202174d292SMike Marciniszyn 121*8c5d4b64SMasahiro Yamada %files 122*8c5d4b64SMasahiro Yamada %defattr (-, root, root) 123*8c5d4b64SMasahiro Yamada /lib/modules/$KERNELRELEASE 124*8c5d4b64SMasahiro Yamada %exclude /lib/modules/$KERNELRELEASE/build 125*8c5d4b64SMasahiro Yamada %exclude /lib/modules/$KERNELRELEASE/source 126*8c5d4b64SMasahiro Yamada /boot/* 127*8c5d4b64SMasahiro Yamada 128*8c5d4b64SMasahiro Yamada %files headers 129*8c5d4b64SMasahiro Yamada %defattr (-, root, root) 130*8c5d4b64SMasahiro Yamada /usr/include 131*8c5d4b64SMasahiro Yamada$S 132*8c5d4b64SMasahiro Yamada$S %files devel 133*8c5d4b64SMasahiro Yamada$S %defattr (-, root, root) 134*8c5d4b64SMasahiro Yamada$S /usr/src/kernels/$KERNELRELEASE 135*8c5d4b64SMasahiro Yamada$S /lib/modules/$KERNELRELEASE/build 136*8c5d4b64SMasahiro Yamada$S /lib/modules/$KERNELRELEASE/source 137*8c5d4b64SMasahiro YamadaEOF 138