media: gspca_kinect: cast sizeof to int for comparison
[linux-2.6-block.git] / scripts / package / mkspec
CommitLineData
1da177e4
LT
1#!/bin/sh
2#
2174d292
MM
3# Output a simple RPM spec file.
4# This version assumes a minimum of RPM 4.0.3.
1da177e4
LT
5#
6# The only gothic bit here is redefining install_post to avoid
7# stripping the symbols from files in the kernel which we want
8#
9# Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
10#
11
12# how we were called determines which rpms we build and how we build them
5289c322 13if [ "$1" = prebuilt ]; then
8c5d4b64 14 S=DEL
1da177e4 15else
8c5d4b64 16 S=
1da177e4
LT
17fi
18
0b7f12f5
MY
19if grep -q CONFIG_MODULES=y .config; then
20 M=
21else
22 M=DEL
23fi
24
5289c322 25if grep -q CONFIG_DRM=y .config; then
1da177e4
LT
26 PROVIDES=kernel-drm
27fi
28
29PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
5289c322
MY
30__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
31EXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \
32--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
33--exclude=.config.old --exclude=.missing-syscalls.d"
1da177e4 34
8c5d4b64
MY
35# We can label the here-doc lines for conditional output to the spec file
36#
37# Labels:
38# $S: this line is enabled only when building source package
0b7f12f5 39# $M: this line is enabled only when CONFIG_MODULES is enabled
8c5d4b64
MY
40sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
41 Name: kernel
42 Summary: The Linux Kernel
43 Version: $__KERNELRELEASE
44 Release: $(cat .version 2>/dev/null || echo 1)
45 License: GPL
46 Group: System Environment/Kernel
47 Vendor: The Linux Community
48 URL: http://www.kernel.org
49$S Source: kernel-$__KERNELRELEASE.tar.gz
50 Provides: $PROVIDES
51 %define __spec_install_post /usr/lib/rpm/brp-compress || :
52 %define debug_package %{nil}
1da177e4 53
8c5d4b64
MY
54 %description
55 The Linux Kernel, the operating system core itself
1da177e4 56
8c5d4b64
MY
57 %package headers
58 Summary: Header files for the Linux kernel for use by glibc
59 Group: Development/System
60 Obsoletes: kernel-headers
61 Provides: kernel-headers = %{version}
62 %description headers
63 Kernel-headers includes the C header files that specify the interface
64 between the Linux kernel and userspace libraries and programs. The
65 header files define structures and constants that are needed for
66 building most standard programs and are also needed for rebuilding the
67 glibc package.
5289c322 68
0b7f12f5
MY
69$S$M %package devel
70$S$M Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
71$S$M Group: System Environment/Kernel
72$S$M AutoReqProv: no
73$S$M %description -n kernel-devel
74$S$M This package provides kernel headers and makefiles sufficient to build modules
75$S$M against the $__KERNELRELEASE kernel package.
76$S$M
8c5d4b64
MY
77$S %prep
78$S %setup -q
79$S
80$S %build
81$S make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
82$S
83 %install
002494d8 84 mkdir -p %{buildroot}/boot
8c5d4b64 85 %ifarch ia64
002494d8
MY
86 mkdir -p %{buildroot}/boot/efi
87 cp \$(make image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE
88 ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/
8c5d4b64 89 %else
002494d8 90 cp \$(make image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
8c5d4b64 91 %endif
002494d8
MY
92$M make %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} KBUILD_SRC= modules_install
93 make %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr KBUILD_SRC= headers_install
94 cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
95 cp .config %{buildroot}/boot/config-$KERNELRELEASE
8c5d4b64 96 bzip2 -9 --keep vmlinux
002494d8
MY
97 mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2
98$S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
99$S$M rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
100$S$M mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
8a6105c4 101$S$M tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
002494d8 102$S$M cd %{buildroot}/lib/modules/$KERNELRELEASE
0b7f12f5
MY
103$S$M ln -sf /usr/src/kernels/$KERNELRELEASE build
104$S$M ln -sf /usr/src/kernels/$KERNELRELEASE source
1da177e4 105
8c5d4b64 106 %clean
002494d8 107 rm -rf %{buildroot}
fc370ecf 108
8c5d4b64
MY
109 %post
110 if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then
111 cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm
112 cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm
113 rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE
114 /sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
115 rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
116 fi
2174d292 117
8c5d4b64
MY
118 %preun
119 if [ -x /sbin/new-kernel-pkg ]; then
120 new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img
eea6f62b
JMC
121 elif [ -x /usr/bin/kernel-install ]; then
122 kernel-install remove $KERNELRELEASE
8c5d4b64
MY
123 fi
124
125 %postun
126 if [ -x /sbin/update-bootloader ]; then
127 /sbin/update-bootloader --remove $KERNELRELEASE
128 fi
129
130 %files
131 %defattr (-, root, root)
0b7f12f5
MY
132$M /lib/modules/$KERNELRELEASE
133$M %exclude /lib/modules/$KERNELRELEASE/build
134$M %exclude /lib/modules/$KERNELRELEASE/source
8c5d4b64
MY
135 /boot/*
136
137 %files headers
138 %defattr (-, root, root)
139 /usr/include
0b7f12f5
MY
140$S$M
141$S$M %files devel
142$S$M %defattr (-, root, root)
143$S$M /usr/src/kernels/$KERNELRELEASE
144$S$M /lib/modules/$KERNELRELEASE/build
145$S$M /lib/modules/$KERNELRELEASE/source
8c5d4b64 146EOF