Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

kbuild: rpm-pkg: split out the body of spec file

Most of the lines in the spec file are independent of any build
condition.

Split the body of the spec file into scripts/package/kernel.spec.
scripts/package/mkspec will prepend some env-dependent variables.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

+120 -120
+117
scripts/package/kernel.spec
··· 1 + # _arch is undefined if /usr/lib/rpm/platform/*/macros was not included. 2 + %{!?_arch: %define _arch dummy} 3 + %{!?make: %define make make} 4 + %define makeflags %{?_smp_mflags} ARCH=%{ARCH} 5 + %define __spec_install_post /usr/lib/rpm/brp-compress || : 6 + %define debug_package %{nil} 7 + 8 + Name: kernel 9 + Summary: The Linux Kernel 10 + Version: %(echo %{KERNELRELEASE} | sed -e 's/-/_/g') 11 + Release: %{pkg_release} 12 + License: GPL 13 + Group: System Environment/Kernel 14 + Vendor: The Linux Community 15 + URL: https://www.kernel.org 16 + Source0: linux.tar.gz 17 + Source1: config 18 + Source2: diff.patch 19 + Provides: kernel-%{KERNELRELEASE} 20 + BuildRequires: bc binutils bison dwarves 21 + BuildRequires: (elfutils-libelf-devel or libelf-devel) flex 22 + BuildRequires: gcc make openssl openssl-devel perl python3 rsync 23 + 24 + %description 25 + The Linux Kernel, the operating system core itself 26 + 27 + %package headers 28 + Summary: Header files for the Linux kernel for use by glibc 29 + Group: Development/System 30 + Obsoletes: kernel-headers 31 + Provides: kernel-headers = %{version} 32 + %description headers 33 + Kernel-headers includes the C header files that specify the interface 34 + between the Linux kernel and userspace libraries and programs. The 35 + header files define structures and constants that are needed for 36 + building most standard programs and are also needed for rebuilding the 37 + glibc package. 38 + 39 + %if %{with_devel} 40 + %package devel 41 + Summary: Development package for building kernel modules to match the %{version} kernel 42 + Group: System Environment/Kernel 43 + AutoReqProv: no 44 + %description -n kernel-devel 45 + This package provides kernel headers and makefiles sufficient to build modules 46 + against the %{version} kernel package. 47 + %endif 48 + 49 + %prep 50 + %setup -q -n linux 51 + cp %{SOURCE1} .config 52 + patch -p1 < %{SOURCE2} 53 + 54 + %build 55 + %{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release} 56 + 57 + %install 58 + mkdir -p %{buildroot}/boot 59 + %ifarch ia64 60 + mkdir -p %{buildroot}/boot/efi 61 + cp $(%{make} %{makeflags} -s image_name) %{buildroot}/boot/efi/vmlinuz-%{KERNELRELEASE} 62 + ln -s efi/vmlinuz-%{KERNELRELEASE} %{buildroot}/boot/ 63 + %else 64 + cp $(%{make} %{makeflags} -s image_name) %{buildroot}/boot/vmlinuz-%{KERNELRELEASE} 65 + %endif 66 + %{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} modules_install 67 + %{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install 68 + cp System.map %{buildroot}/boot/System.map-%{KERNELRELEASE} 69 + cp .config %{buildroot}/boot/config-%{KERNELRELEASE} 70 + ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/build 71 + ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/source 72 + %if %{with_devel} 73 + %{make} %{makeflags} run-command KBUILD_RUN_COMMAND='${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}' 74 + %endif 75 + 76 + %clean 77 + rm -rf %{buildroot} 78 + 79 + %post 80 + if [ -x /sbin/installkernel -a -r /boot/vmlinuz-%{KERNELRELEASE} -a -r /boot/System.map-%{KERNELRELEASE} ]; then 81 + cp /boot/vmlinuz-%{KERNELRELEASE} /boot/.vmlinuz-%{KERNELRELEASE}-rpm 82 + cp /boot/System.map-%{KERNELRELEASE} /boot/.System.map-%{KERNELRELEASE}-rpm 83 + rm -f /boot/vmlinuz-%{KERNELRELEASE} /boot/System.map-%{KERNELRELEASE} 84 + /sbin/installkernel %{KERNELRELEASE} /boot/.vmlinuz-%{KERNELRELEASE}-rpm /boot/.System.map-%{KERNELRELEASE}-rpm 85 + rm -f /boot/.vmlinuz-%{KERNELRELEASE}-rpm /boot/.System.map-%{KERNELRELEASE}-rpm 86 + fi 87 + 88 + %preun 89 + if [ -x /sbin/new-kernel-pkg ]; then 90 + new-kernel-pkg --remove %{KERNELRELEASE} --rminitrd --initrdfile=/boot/initramfs-%{KERNELRELEASE}.img 91 + elif [ -x /usr/bin/kernel-install ]; then 92 + kernel-install remove %{KERNELRELEASE} 93 + fi 94 + 95 + %postun 96 + if [ -x /sbin/update-bootloader ]; then 97 + /sbin/update-bootloader --remove %{KERNELRELEASE} 98 + fi 99 + 100 + %files 101 + %defattr (-, root, root) 102 + /lib/modules/%{KERNELRELEASE} 103 + %exclude /lib/modules/%{KERNELRELEASE}/build 104 + %exclude /lib/modules/%{KERNELRELEASE}/source 105 + /boot/* 106 + 107 + %files headers 108 + %defattr (-, root, root) 109 + /usr/include 110 + 111 + %if %{with_devel} 112 + %files devel 113 + %defattr (-, root, root) 114 + /usr/src/kernels/%{KERNELRELEASE} 115 + /lib/modules/%{KERNELRELEASE}/build 116 + /lib/modules/%{KERNELRELEASE}/source 117 + %endif
+3 -120
scripts/package/mkspec
··· 23 23 echo '%define with_devel 0' 24 24 fi 25 25 26 - cat<<-EOF 26 + cat<<EOF 27 27 %define ARCH ${ARCH} 28 28 %define KERNELRELEASE ${KERNELRELEASE} 29 29 %define pkg_release $("${srctree}/init/build-version") 30 - 31 - # _arch is undefined if /usr/lib/rpm/platform/*/macros was not included. 32 - %{!?_arch: %define _arch dummy} 33 - %{!?make: %define make make} 34 - %define makeflags %{?_smp_mflags} ARCH=%{ARCH} 35 - 36 - Name: kernel 37 - Summary: The Linux Kernel 38 - Version: %(echo %{KERNELRELEASE} | sed -e 's/-/_/g') 39 - Release: %{pkg_release} 40 - License: GPL 41 - Group: System Environment/Kernel 42 - Vendor: The Linux Community 43 - URL: https://www.kernel.org 44 - Source0: linux.tar.gz 45 - Source1: config 46 - Source2: diff.patch 47 - Provides: kernel-%{KERNELRELEASE} 48 - BuildRequires: bc binutils bison dwarves 49 - BuildRequires: (elfutils-libelf-devel or libelf-devel) flex 50 - BuildRequires: gcc make openssl openssl-devel perl python3 rsync 51 - 52 - %define __spec_install_post /usr/lib/rpm/brp-compress || : 53 - %define debug_package %{nil} 54 - 55 - %description 56 - The Linux Kernel, the operating system core itself 57 - 58 - %package headers 59 - Summary: Header files for the Linux kernel for use by glibc 60 - Group: Development/System 61 - Obsoletes: kernel-headers 62 - Provides: kernel-headers = %{version} 63 - %description headers 64 - Kernel-headers includes the C header files that specify the interface 65 - between the Linux kernel and userspace libraries and programs. The 66 - header files define structures and constants that are needed for 67 - building most standard programs and are also needed for rebuilding the 68 - glibc package. 69 - 70 - %if %{with_devel} 71 - %package devel 72 - Summary: Development package for building kernel modules to match the %{version} kernel 73 - Group: System Environment/Kernel 74 - AutoReqProv: no 75 - %description -n kernel-devel 76 - This package provides kernel headers and makefiles sufficient to build modules 77 - against the %{version} kernel package. 78 - %endif 79 - 80 - %prep 81 - %setup -q -n linux 82 - cp %{SOURCE1} .config 83 - patch -p1 < %{SOURCE2} 84 - 85 - %build 86 - %{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release} 87 - 88 - %install 89 - mkdir -p %{buildroot}/boot 90 - %ifarch ia64 91 - mkdir -p %{buildroot}/boot/efi 92 - cp \$(%{make} %{makeflags} -s image_name) %{buildroot}/boot/efi/vmlinuz-%{KERNELRELEASE} 93 - ln -s efi/vmlinuz-%{KERNELRELEASE} %{buildroot}/boot/ 94 - %else 95 - cp \$(%{make} %{makeflags} -s image_name) %{buildroot}/boot/vmlinuz-%{KERNELRELEASE} 96 - %endif 97 - %{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} modules_install 98 - %{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install 99 - cp System.map %{buildroot}/boot/System.map-%{KERNELRELEASE} 100 - cp .config %{buildroot}/boot/config-%{KERNELRELEASE} 101 - ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/build 102 - ln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/source 103 - %if %{with_devel} 104 - %{make} %{makeflags} run-command KBUILD_RUN_COMMAND='\${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}' 105 - %endif 106 - 107 - %clean 108 - rm -rf %{buildroot} 109 - 110 - %post 111 - if [ -x /sbin/installkernel -a -r /boot/vmlinuz-%{KERNELRELEASE} -a -r /boot/System.map-%{KERNELRELEASE} ]; then 112 - cp /boot/vmlinuz-%{KERNELRELEASE} /boot/.vmlinuz-%{KERNELRELEASE}-rpm 113 - cp /boot/System.map-%{KERNELRELEASE} /boot/.System.map-%{KERNELRELEASE}-rpm 114 - rm -f /boot/vmlinuz-%{KERNELRELEASE} /boot/System.map-%{KERNELRELEASE} 115 - /sbin/installkernel %{KERNELRELEASE} /boot/.vmlinuz-%{KERNELRELEASE}-rpm /boot/.System.map-%{KERNELRELEASE}-rpm 116 - rm -f /boot/.vmlinuz-%{KERNELRELEASE}-rpm /boot/.System.map-%{KERNELRELEASE}-rpm 117 - fi 118 - 119 - %preun 120 - if [ -x /sbin/new-kernel-pkg ]; then 121 - new-kernel-pkg --remove %{KERNELRELEASE} --rminitrd --initrdfile=/boot/initramfs-%{KERNELRELEASE}.img 122 - elif [ -x /usr/bin/kernel-install ]; then 123 - kernel-install remove %{KERNELRELEASE} 124 - fi 125 - 126 - %postun 127 - if [ -x /sbin/update-bootloader ]; then 128 - /sbin/update-bootloader --remove %{KERNELRELEASE} 129 - fi 130 - 131 - %files 132 - %defattr (-, root, root) 133 - /lib/modules/%{KERNELRELEASE} 134 - %exclude /lib/modules/%{KERNELRELEASE}/build 135 - %exclude /lib/modules/%{KERNELRELEASE}/source 136 - /boot/* 137 - 138 - %files headers 139 - %defattr (-, root, root) 140 - /usr/include 141 - 142 - %if %{with_devel} 143 - %files devel 144 - %defattr (-, root, root) 145 - /usr/src/kernels/%{KERNELRELEASE} 146 - /lib/modules/%{KERNELRELEASE}/build 147 - /lib/modules/%{KERNELRELEASE}/source 148 - %endif 149 30 EOF 31 + 32 + cat "${srctree}/scripts/package/kernel.spec"