Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[cris-mirror.git] / scripts / package / mkspec
blob280027fad991c1beeacc64fcc460eb6f6986d849
1 #!/bin/sh
3 # Output a simple RPM spec file.
4 # This version assumes a minimum of RPM 4.0.3.
6 # The only gothic bit here is redefining install_post to avoid
7 # stripping the symbols from files in the kernel which we want
9 # Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
12 # how we were called determines which rpms we build and how we build them
13 if [ "$1" = prebuilt ]; then
14 S=DEL
15 else
19 if grep -q CONFIG_MODULES=y .config; then
21 else
22 M=DEL
25 if grep -q CONFIG_DRM=y .config; then
26 PROVIDES=kernel-drm
29 PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
30 __KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
31 EXCLUDES="$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"
35 # We can label the here-doc lines for conditional output to the spec file
37 # Labels:
38 # $S: this line is enabled only when building source package
39 # $M: this line is enabled only when CONFIG_MODULES is enabled
40 sed -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}
54 %description
55 The Linux Kernel, the operating system core itself
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.
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
77 $S %prep
78 $S %setup -q
80 $S %build
81 $S make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
83 %install
84 mkdir -p %{buildroot}/boot
85 %ifarch ia64
86 mkdir -p %{buildroot}/boot/efi
87 cp \$(make image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE
88 ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/
89 %else
90 cp \$(make image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
91 %endif
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
96 bzip2 -9 --keep vmlinux
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
101 $S$M tar cf - . $EXCLUDES | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
102 $S$M cd %{buildroot}/lib/modules/$KERNELRELEASE
103 $S$M ln -sf /usr/src/kernels/$KERNELRELEASE build
104 $S$M ln -sf /usr/src/kernels/$KERNELRELEASE source
106 %clean
107 rm -rf %{buildroot}
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
118 %preun
119 if [ -x /sbin/new-kernel-pkg ]; then
120 new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img
123 %postun
124 if [ -x /sbin/update-bootloader ]; then
125 /sbin/update-bootloader --remove $KERNELRELEASE
128 %files
129 %defattr (-, root, root)
130 $M /lib/modules/$KERNELRELEASE
131 $M %exclude /lib/modules/$KERNELRELEASE/build
132 $M %exclude /lib/modules/$KERNELRELEASE/source
133 /boot/*
135 %files headers
136 %defattr (-, root, root)
137 /usr/include
138 $S$M
139 $S$M %files devel
140 $S$M %defattr (-, root, root)
141 $S$M /usr/src/kernels/$KERNELRELEASE
142 $S$M /lib/modules/$KERNELRELEASE/build
143 $S$M /lib/modules/$KERNELRELEASE/source