| xj | b04a402 | 2021-11-25 15:01:52 +0800 | [diff] [blame] | 1 | #!/bin/sh | 
 | 2 | # | 
 | 3 | #	Output a simple RPM spec file. | 
 | 4 | #	This version assumes a minimum of RPM 4.0.3. | 
 | 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 | 
 | 13 | if [ "$1" = prebuilt ]; then | 
 | 14 | 	S=DEL | 
 | 15 | else | 
 | 16 | 	S= | 
 | 17 | fi | 
 | 18 |  | 
 | 19 | if grep -q CONFIG_MODULES=y .config; then | 
 | 20 | 	M= | 
 | 21 | else | 
 | 22 | 	M=DEL | 
 | 23 | fi | 
 | 24 |  | 
 | 25 | if grep -q CONFIG_DRM=y .config; then | 
 | 26 | 	PROVIDES=kernel-drm | 
 | 27 | fi | 
 | 28 |  | 
 | 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" | 
 | 34 |  | 
 | 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 | 
 | 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} | 
 | 53 |  | 
 | 54 | 	%description | 
 | 55 | 	The Linux Kernel, the operating system core itself | 
 | 56 |  | 
 | 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. | 
 | 68 |  | 
 | 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 | 
 | 79 | $S | 
 | 80 | $S	%build | 
 | 81 | $S	make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release} | 
 | 82 | $S | 
 | 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 | 
 | 105 |  | 
 | 106 | 	%clean | 
 | 107 | 	rm -rf %{buildroot} | 
 | 108 |  | 
 | 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 | 
 | 117 |  | 
 | 118 | 	%preun | 
 | 119 | 	if [ -x /sbin/new-kernel-pkg ]; then | 
 | 120 | 	new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img | 
 | 121 | 	elif [ -x /usr/bin/kernel-install ]; then | 
 | 122 | 	kernel-install remove $KERNELRELEASE | 
 | 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) | 
 | 132 | $M	/lib/modules/$KERNELRELEASE | 
 | 133 | $M	%exclude /lib/modules/$KERNELRELEASE/build | 
 | 134 | $M	%exclude /lib/modules/$KERNELRELEASE/source | 
 | 135 | 	/boot/* | 
 | 136 |  | 
 | 137 | 	%files headers | 
 | 138 | 	%defattr (-, root, root) | 
 | 139 | 	/usr/include | 
 | 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 | 
 | 146 | EOF |