Blame view

scripts/package/mkspec 5.76 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
30
31
32
33
34
35
36
37
38
39
40
  
  echo "Name: kernel"
  echo "Summary: The Linux Kernel"
  echo "Version: $__KERNELRELEASE"
  # we need to determine the NEXT version number so that uname and
  # rpm -q will agree
  echo "Release: `. $srctree/scripts/mkversion`"
  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...
41
  echo "BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
42
43
44
45
46
47
48
  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 ...
49
50
51
52
53
54
55
56
57
58
59
60
  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...
61
62
63
64
65
66
67
68
  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
69
70
71
72
73
74
75
76
77
78
  
  if ! $PREBUILT; then
  echo "%prep"
  echo "%setup -q"
  echo ""
  fi
  
  echo "%build"
  
  if ! $PREBUILT; then
13797b77d   Jeremy Kerr   scripts/package: ...
79
  echo "make clean && make %{?_smp_mflags}"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
80
81
82
83
  echo ""
  fi
  
  echo "%install"
c398ff00f   Mike Marciniszyn   kbuild: fix error...
84
  echo 'KBUILD_IMAGE=$(make image_name)'
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
85
  echo "%ifarch ia64"
a5fa393b5   Rolf Eike Beer   kbuild: fix "mkdi...
86
  echo 'mkdir -p $RPM_BUILD_ROOT/boot/efi $RPM_BUILD_ROOT/lib/modules'
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
87
  echo "%else"
a5fa393b5   Rolf Eike Beer   kbuild: fix "mkdi...
88
  echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib/modules'
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
89
  echo "%endif"
41612378d   Mike Marciniszyn   rpm-pkg: install ...
90
  echo 'mkdir -p $RPM_BUILD_ROOT'"/lib/firmware/$KERNELRELEASE"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
91

41612378d   Mike Marciniszyn   rpm-pkg: install ...
92
93
94
  echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{?_smp_mflags} KBUILD_SRC= mod-fw= modules_install'
  echo 'INSTALL_FW_PATH=$RPM_BUILD_ROOT'"/lib/firmware/$KERNELRELEASE"
  echo 'make INSTALL_FW_PATH=$INSTALL_FW_PATH' firmware_install
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
95
96
97
98
  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 ...
99
100
101
102
  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
103
  echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
d2cb1a95c   Greg Edwards   [PATCH] kbuild: a...
104
  echo "%endif"
1a0f3d422   Mike Wolf   kbuild: fix make ...
105
  echo "%endif"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
106

e0367a615   David R. Bild   kbuild: clear KBU...
107
  echo 'make %{?_smp_mflags} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install'
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
108
109
110
  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...
111
112
  
  echo "%ifnarch ppc64"
92f43c452   Borislav Petkov   kbuild/mkspec: Si...
113
  echo 'bzip2 -9 --keep vmlinux'
fc370ecfd   Josh Hunt   kbuild: add vmlin...
114
  echo 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
fc370ecfd   Josh Hunt   kbuild: add vmlin...
115
  echo "%endif"
b9a544240   Jérôme Glisse   scripts/package: ...
116
  if ! $PREBUILT; then
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
117
118
119
120
121
122
123
  echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/{build,source}"
  echo "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
  echo "EXCLUDES=\"$RCS_TAR_IGNORE --exclude .tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude=firmware --exclude .config.old --exclude .missing-syscalls.d\""
  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: ...
124
  fi
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
125

1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
126
127
  echo ""
  echo "%clean"
a2ebcc7a8   Josh Hunt   kbuild: fix mkspe...
128
  echo 'rm -rf $RPM_BUILD_ROOT'
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
129
  echo ""
3c9c7a14b   Mike Marciniszyn   rpm-pkg: add %pos...
130
131
  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...
132
133
  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...
134
  echo "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
c8b08ca55   Jiri Kosina   kbuild/mkspec: fi...
135
136
  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...
137
138
  echo "fi"
  echo ""
6ef41e22a   Paolo Abeni   kbuild/mkspec: cl...
139
140
141
142
143
  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...
144
145
146
147
148
  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
149
150
  echo "%files"
  echo '%defattr (-, root, root)'
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
151
  echo "/lib/modules/$KERNELRELEASE"
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
152
153
  echo "%exclude /lib/modules/$KERNELRELEASE/build"
  echo "%exclude /lib/modules/$KERNELRELEASE/source"
41612378d   Mike Marciniszyn   rpm-pkg: install ...
154
  echo "/lib/firmware/$KERNELRELEASE"
1da177e4c   Linus Torvalds   Linux-2.6.12-rc2
155
156
  echo "/boot/*"
  echo ""
0bd41dfc9   Arun Sharma   kbuild: Create a ...
157
158
159
160
  echo "%files headers"
  echo '%defattr (-, root, root)'
  echo "/usr/include"
  echo ""
b9a544240   Jérôme Glisse   scripts/package: ...
161
  if ! $PREBUILT; then
2174d2920   Mike Marciniszyn   rpm-pkg: add gene...
162
163
164
165
166
167
  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: ...
168
  fi