Blame view

scripts/package/mkspec 5.52 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
13
14
15
16
17
18
19
20
21
22
23
24
  #
  #	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
  if [ "$1" = "prebuilt" ]; then
  	PREBUILT=true
  else
  	PREBUILT=false
  fi
  
  # starting to output the spec
  if [ "`grep CONFIG_DRM=y .config | cut -f2 -d\=`" = "y" ]; then
  	PROVIDES=kernel-drm
  fi
  
  PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
e1287eb89   Arun Sharma   Replace '-' in ke...
25
  __KERNELRELEASE=`echo $KERNELRELEASE | sed -e "s/-/_/g"`
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
26
27
28
29
  
  echo "Name: kernel"
  echo "Summary: The Linux Kernel"
  echo "Version: $__KERNELRELEASE"
25b080bd5   Masahiro Yamada   kbuild: rpm-pkg: ...
30
  echo "Release: $(cat .version 2>/dev/null || echo 1)"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
31
32
33
34
35
36
37
38
  echo "License: GPL"
  echo "Group: System Environment/Kernel"
  echo "Vendor: The Linux Community"
  echo "URL: http://www.kernel.org"
  
  if ! $PREBUILT; then
  echo "Source: kernel-$__KERNELRELEASE.tar.gz"
  fi
880df92fa   John Saalwaechter   scripts: use %_tm...
39
  echo "BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
40
41
42
43
44
45
46
  echo "Provides: $PROVIDES"
  echo "%define __spec_install_post /usr/lib/rpm/brp-compress || :"
  echo "%define debug_package %{nil}"
  echo ""
  echo "%description"
  echo "The Linux Kernel, the operating system core itself"
  echo ""
0bd41dfc9   Arun Sharma   kbuild: Create a ...
47
48
49
50
51
52
53
54
55
56
57
58
  echo "%package headers"
  echo "Summary: Header files for the Linux kernel for use by glibc"
  echo "Group: Development/System"
  echo "Obsoletes: kernel-headers"
  echo "Provides: kernel-headers = %{version}"
  echo "%description headers"
  echo "Kernel-headers includes the C header files that specify the interface"
  echo "between the Linux kernel and userspace libraries and programs.  The"
  echo "header files define structures and constants that are needed for"
  echo "building most standard programs and are also needed for rebuilding the"
  echo "glibc package."
  echo ""
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
59
60
61
62
63
64
65
66
  echo "%package devel"
  echo "Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel"
  echo "Group: System Environment/Kernel"
  echo "AutoReqProv: no"
  echo "%description -n kernel-devel"
  echo "This package provides kernel headers and makefiles sufficient to build modules"
  echo "against the $__KERNELRELEASE kernel package."
  echo ""
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
67
68
69
70
71
72
73
74
75
76
  
  if ! $PREBUILT; then
  echo "%prep"
  echo "%setup -q"
  echo ""
  fi
  
  echo "%build"
  
  if ! $PREBUILT; then
25b080bd5   Masahiro Yamada   kbuild: rpm-pkg: ...
77
  echo "make clean && make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
78
79
80
81
  echo ""
  fi
  
  echo "%install"
c398ff00f   Mike Marciniszyn   kbuild: fix error...
82
  echo 'KBUILD_IMAGE=$(make image_name)'
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
83
  echo "%ifarch ia64"
a5fa393b5   Rolf Eike Beer   kbuild: fix "mkdi...
84
  echo 'mkdir -p $RPM_BUILD_ROOT/boot/efi $RPM_BUILD_ROOT/lib/modules'
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
85
  echo "%else"
a5fa393b5   Rolf Eike Beer   kbuild: fix "mkdi...
86
  echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib/modules'
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
87
  echo "%endif"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
88

9e0900748   Masahiro Yamada   kbuild: rpm-pkg: ...
89
  echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{?_smp_mflags} KBUILD_SRC= modules_install'
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
90
91
92
93
  echo "%ifarch ia64"
  echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/efi/vmlinuz-$KERNELRELEASE"
  echo 'ln -s '"efi/vmlinuz-$KERNELRELEASE" '$RPM_BUILD_ROOT'"/boot/"
  echo "%else"
1a0f3d422   Mike Wolf   kbuild: fix make ...
94
95
96
97
  echo "%ifarch ppc64"
  echo "cp vmlinux arch/powerpc/boot"
  echo "cp arch/powerpc/boot/"'$KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
  echo "%else"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
98
  echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
99
  echo "%endif"
1a0f3d422   Mike Wolf   kbuild: fix make ...
100
  echo "%endif"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
101

e0367a615   David R. Bild   kbuild: clear KBU...
102
  echo 'make %{?_smp_mflags} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install'
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
103
104
105
  echo 'cp System.map $RPM_BUILD_ROOT'"/boot/System.map-$KERNELRELEASE"
  
  echo 'cp .config $RPM_BUILD_ROOT'"/boot/config-$KERNELRELEASE"
fc370ecfd   Josh Hunt   kbuild: add vmlin...
106
107
  
  echo "%ifnarch ppc64"
92f43c452   Borislav Petkov   kbuild/mkspec: Si...
108
  echo 'bzip2 -9 --keep vmlinux'
fc370ecfd   Josh Hunt   kbuild: add vmlin...
109
  echo 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
fc370ecfd   Josh Hunt   kbuild: add vmlin...
110
  echo "%endif"
b9a544240   Jérôme Glisse   scripts/package: ...
111
  if ! $PREBUILT; then
51a5f8107   Anton Tikhomirov   kbuild/mkspec: av...
112
113
  echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/build"
  echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/source"
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
114
  echo "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
9e0900748   Masahiro Yamada   kbuild: rpm-pkg: ...
115
  echo "EXCLUDES=\"$RCS_TAR_IGNORE --exclude .tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude .config.old --exclude .missing-syscalls.d\""
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
116
117
118
119
  echo "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)"
  echo 'cd $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE"
  echo "ln -sf /usr/src/kernels/$KERNELRELEASE build"
  echo "ln -sf /usr/src/kernels/$KERNELRELEASE source"
b9a544240   Jérôme Glisse   scripts/package: ...
120
  fi
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
121

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
122
123
  echo ""
  echo "%clean"
a2ebcc7a8   Josh Hunt   kbuild: fix mkspe...
124
  echo 'rm -rf $RPM_BUILD_ROOT'
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
125
  echo ""
3c9c7a14b   Mike Marciniszyn   rpm-pkg: add %pos...
126
127
  echo "%post"
  echo "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then"
c8b08ca55   Jiri Kosina   kbuild/mkspec: fi...
128
129
  echo "cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm"
  echo "cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm"
3c9c7a14b   Mike Marciniszyn   rpm-pkg: add %pos...
130
  echo "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
c8b08ca55   Jiri Kosina   kbuild/mkspec: fi...
131
132
  echo "/sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm"
  echo "rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm"
3c9c7a14b   Mike Marciniszyn   rpm-pkg: add %pos...
133
134
  echo "fi"
  echo ""
6ef41e22a   Paolo Abeni   kbuild/mkspec: cl...
135
136
137
138
139
  echo "%preun"
  echo "if [ -x /sbin/new-kernel-pkg ]; then"
  echo "new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img"
  echo "fi"
  echo ""
27c3bffd2   Jiri Kosina   kbuild/mkspec: su...
140
141
142
143
144
  echo "%postun"
  echo "if [ -x /sbin/update-bootloader ]; then"
  echo "/sbin/update-bootloader --remove $KERNELRELEASE"
  echo "fi"
  echo ""
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
145
146
  echo "%files"
  echo '%defattr (-, root, root)'
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
147
  echo "/lib/modules/$KERNELRELEASE"
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
148
149
  echo "%exclude /lib/modules/$KERNELRELEASE/build"
  echo "%exclude /lib/modules/$KERNELRELEASE/source"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
150
151
  echo "/boot/*"
  echo ""
0bd41dfc9   Arun Sharma   kbuild: Create a ...
152
153
154
155
  echo "%files headers"
  echo '%defattr (-, root, root)'
  echo "/usr/include"
  echo ""
b9a544240   Jérôme Glisse   scripts/package: ...
156
  if ! $PREBUILT; then
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
157
158
159
160
161
162
  echo "%files devel"
  echo '%defattr (-, root, root)'
  echo "/usr/src/kernels/$KERNELRELEASE"
  echo "/lib/modules/$KERNELRELEASE/build"
  echo "/lib/modules/$KERNELRELEASE/source"
  echo ""
b9a544240   Jérôme Glisse   scripts/package: ...
163
  fi