Blame view

scripts/package/mkspec 4.68 KB
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
1
2
  #!/bin/sh
  #
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
3
4
  #	Output a simple RPM spec file.
  #	This version assumes a minimum of RPM 4.0.3.
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
5
6
7
8
9
10
11
12
  #
  #	The only gothic bit here is redefining install_post to avoid
  #	stripping the symbols from files in the kernel which we want
  #
  #	Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
  #
  
  # how we were called determines which rpms we build and how we build them
5289c322b   Masahiro Yamada   kbuild: rpm-pkg: ...
13
  if [ "$1" = prebuilt ]; then
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
14
  	S=DEL
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
15
  else
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
16
  	S=
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
17
  fi
0b7f12f59   Masahiro Yamada   kbuild: rpm-pkg: ...
18
19
20
21
22
  if grep -q CONFIG_MODULES=y .config; then
  	M=
  else
  	M=DEL
  fi
5289c322b   Masahiro Yamada   kbuild: rpm-pkg: ...
23
  if grep -q CONFIG_DRM=y .config; then
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
24
25
26
27
  	PROVIDES=kernel-drm
  fi
  
  PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
5289c322b   Masahiro Yamada   kbuild: rpm-pkg: ...
28
29
30
31
  __KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
  EXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \
  --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
  --exclude=.config.old --exclude=.missing-syscalls.d"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
32

8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
33
34
35
36
  # We can label the here-doc lines for conditional output to the spec file
  #
  # Labels:
  #  $S: this line is enabled only when building source package
0b7f12f59   Masahiro Yamada   kbuild: rpm-pkg: ...
37
  #  $M: this line is enabled only when CONFIG_MODULES is enabled
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
38
39
40
41
42
43
44
45
46
47
48
49
50
  sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
  	Name: kernel
  	Summary: The Linux Kernel
  	Version: $__KERNELRELEASE
  	Release: $(cat .version 2>/dev/null || echo 1)
  	License: GPL
  	Group: System Environment/Kernel
  	Vendor: The Linux Community
  	URL: http://www.kernel.org
  $S	Source: kernel-$__KERNELRELEASE.tar.gz
  	Provides: $PROVIDES
  	%define __spec_install_post /usr/lib/rpm/brp-compress || :
  	%define debug_package %{nil}
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
51

8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
52
53
  	%description
  	The Linux Kernel, the operating system core itself
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
54

8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
55
56
57
58
59
60
61
62
63
64
65
  	%package headers
  	Summary: Header files for the Linux kernel for use by glibc
  	Group: Development/System
  	Obsoletes: kernel-headers
  	Provides: kernel-headers = %{version}
  	%description headers
  	Kernel-headers includes the C header files that specify the interface
  	between the Linux kernel and userspace libraries and programs.  The
  	header files define structures and constants that are needed for
  	building most standard programs and are also needed for rebuilding the
  	glibc package.
5289c322b   Masahiro Yamada   kbuild: rpm-pkg: ...
66

0b7f12f59   Masahiro Yamada   kbuild: rpm-pkg: ...
67
68
69
70
71
72
73
74
  $S$M	%package devel
  $S$M	Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
  $S$M	Group: System Environment/Kernel
  $S$M	AutoReqProv: no
  $S$M	%description -n kernel-devel
  $S$M	This package provides kernel headers and makefiles sufficient to build modules
  $S$M	against the $__KERNELRELEASE kernel package.
  $S$M
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
75
76
77
78
79
80
81
  $S	%prep
  $S	%setup -q
  $S
  $S	%build
  $S	make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
  $S
  	%install
002494d87   Masahiro Yamada   kbuild: rpm-pkg: ...
82
  	mkdir -p %{buildroot}/boot
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
83
  	%ifarch ia64
002494d87   Masahiro Yamada   kbuild: rpm-pkg: ...
84
85
86
  	mkdir -p %{buildroot}/boot/efi
  	cp \$(make image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE
  	ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
87
  	%else
002494d87   Masahiro Yamada   kbuild: rpm-pkg: ...
88
  	cp \$(make image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
89
  	%endif
002494d87   Masahiro Yamada   kbuild: rpm-pkg: ...
90
91
92
93
  $M	make %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} KBUILD_SRC= modules_install
  	make %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr KBUILD_SRC= headers_install
  	cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
  	cp .config %{buildroot}/boot/config-$KERNELRELEASE
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
94
  	bzip2 -9 --keep vmlinux
002494d87   Masahiro Yamada   kbuild: rpm-pkg: ...
95
96
97
98
  	mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2
  $S$M	rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
  $S$M	rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
  $S$M	mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
8a6105c48   Jason Gunthorpe   kbuild: rpm-pkg: ...
99
  $S$M	tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
002494d87   Masahiro Yamada   kbuild: rpm-pkg: ...
100
  $S$M	cd %{buildroot}/lib/modules/$KERNELRELEASE
0b7f12f59   Masahiro Yamada   kbuild: rpm-pkg: ...
101
102
  $S$M	ln -sf /usr/src/kernels/$KERNELRELEASE build
  $S$M	ln -sf /usr/src/kernels/$KERNELRELEASE source
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
103

8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
104
  	%clean
002494d87   Masahiro Yamada   kbuild: rpm-pkg: ...
105
  	rm -rf %{buildroot}
fc370ecfd   Josh Hunt   kbuild: add vmlin...
106

8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
107
108
109
110
111
112
113
114
  	%post
  	if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then
  	cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm
  	cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm
  	rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE
  	/sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
  	rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
  	fi
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
115

8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
116
117
118
  	%preun
  	if [ -x /sbin/new-kernel-pkg ]; then
  	new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img
eea6f62bc   Javier Martinez Canillas   kbuild: rpm-pkg: ...
119
120
  	elif [ -x /usr/bin/kernel-install ]; then
  	kernel-install remove $KERNELRELEASE
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
121
122
123
124
125
126
127
128
129
  	fi
  
  	%postun
  	if [ -x /sbin/update-bootloader ]; then
  	/sbin/update-bootloader --remove $KERNELRELEASE
  	fi
  
  	%files
  	%defattr (-, root, root)
0b7f12f59   Masahiro Yamada   kbuild: rpm-pkg: ...
130
131
132
  $M	/lib/modules/$KERNELRELEASE
  $M	%exclude /lib/modules/$KERNELRELEASE/build
  $M	%exclude /lib/modules/$KERNELRELEASE/source
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
133
134
135
136
137
  	/boot/*
  
  	%files headers
  	%defattr (-, root, root)
  	/usr/include
0b7f12f59   Masahiro Yamada   kbuild: rpm-pkg: ...
138
139
140
141
142
143
  $S$M
  $S$M	%files devel
  $S$M	%defattr (-, root, root)
  $S$M	/usr/src/kernels/$KERNELRELEASE
  $S$M	/lib/modules/$KERNELRELEASE/build
  $S$M	/lib/modules/$KERNELRELEASE/source
8c5d4b648   Masahiro Yamada   kbuild: rpm-pkg: ...
144
  EOF