Something went wrong. Try again.
(I'm so sorry!) Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227# _arch is undefined if /usr/lib/rpm/platform/*/macros was not included.%{!?_arch: %define _arch dummy}%{!?make: %define make make}%define makeflags %{?_smp_mflags} ARCH=%{ARCH}
Name: kernelSummary: The Linux KernelVersion: %(echo %{KERNELRELEASE} | sed -e 's/-/_/g')Release: %{pkg_release}%{?dist}License: GPLGroup: System Environment/KernelVendor: The Linux CommunityURL: https://www.kernel.orgSource0: linux.tar.gzSource1: configSource2: diff.patchProvides: kernel-%{KERNELRELEASE}BuildRequires: bc binutils bison dwarvesBuildRequires: (elfutils-devel or libdw-devel)BuildRequires: (elfutils-libelf-devel or libelf-devel) flexBuildRequires: gcc make openssl openssl-devel perl python3 rsync
%descriptionThe Linux Kernel, the operating system core itself
%package headersSummary: Header files for the Linux kernel for use by glibcGroup: Development/SystemObsoletes: kernel-headers < %{version}Provides: kernel-headers = %{version}%description headersKernel-headers includes the C header files that specify the interfacebetween the Linux kernel and userspace libraries and programs. Theheader files define structures and constants that are needed forbuilding most standard programs and are also needed for rebuilding theglibc package.
%if %{with_devel}%package develSummary: Development package for building kernel modules to match the %{version} kernelGroup: System Environment/KernelAutoReqProv: no%description -n kernel-develThis package provides kernel headers and makefiles sufficient to build modulesagainst the %{version} kernel package.%endif
%if %{with_debuginfo_manual}%package debuginfoSummary: Debug information package for the Linux kernelGroup: Development/DebugAutoReq: 0AutoProv: 1%description debuginfoThis package provides debug information for the kernel image and modules from the%{version} package.%define install_mod_strip 1%endif
%if %{with_debuginfo_rpm}# list of debuginfo-related options taken from distribution kernel.spec# files%undefine _include_minidebuginfo%undefine _find_debuginfo_dwz_opts%undefine _unique_build_ids%undefine _unique_debug_names%undefine _unique_debug_srcs%undefine _debugsource_packages%undefine _debuginfo_subpackages
# Preserve .BTF and .BTF.base sections in kernel modules during debuginfo# stripping. find-debuginfo.sh uses eu-strip which removes non-allocated ELF# sections like .BTF by default. .BTF.base is required for BTF distillation# support; without it, module BTF validation fails.%global with_keep_section %(%{__find_debuginfo} --help 2>&1 | grep -c keep-section)%if %{with_keep_section}%global _find_debuginfo_opts -r --keep-section .BTF --keep-section .BTF.base%else%global _find_debuginfo_opts -r%endif
%global _missing_build_ids_terminate_build 1%global _no_recompute_build_ids 1%{debug_package}
# later, we make all modules executable so that find-debuginfo.sh strips# them up. but they don't actually need to be executable, so remove the# executable bit, taking care to do it _after_ find-debuginfo.sh has run%define __spec_install_post \ %{?__debug_package:%{__debug_install_post}} \ %{__arch_install_post} \ %{__os_install_post} \ find %{buildroot}/lib/modules/%{KERNELRELEASE} -name "*.ko" -type f \\\ | xargs --no-run-if-empty chmod u-x%else%define __spec_install_post /usr/lib/rpm/brp-compress || :%endif# some (but not all) versions of rpmbuild emit %%debug_package with# %%install. since we've already emitted it manually, that would cause# a package redefinition error. ensure that doesn't happen%define debug_package %{nil}
%prep%setup -q -n linuxcp %{SOURCE1} .configpatch -p1 < %{SOURCE2}
%build%{make} %{makeflags} KERNELRELEASE=%{KERNELRELEASE} KBUILD_BUILD_VERSION=%{release}
%installmkdir -p %{buildroot}/lib/modules/%{KERNELRELEASE}cp $(%{make} %{makeflags} -s image_name) %{buildroot}/lib/modules/%{KERNELRELEASE}/vmlinuz# DEPMOD=true makes depmod no-op. We do not package depmod-generated files.%{make} %{makeflags} INSTALL_MOD_PATH=%{buildroot} %{?install_mod_strip:INSTALL_MOD_STRIP=1} DEPMOD=true modules_install%{make} %{makeflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_installcp System.map %{buildroot}/lib/modules/%{KERNELRELEASE}cp .config %{buildroot}/lib/modules/%{KERNELRELEASE}/configif %{make} %{makeflags} run-command KBUILD_RUN_COMMAND='test -d ${srctree}/arch/${SRCARCH}/boot/dts' 2>/dev/null; then %{make} %{makeflags} INSTALL_DTBS_PATH=%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb dtbs_installfiln -fns /usr/src/kernels/%{KERNELRELEASE} %{buildroot}/lib/modules/%{KERNELRELEASE}/build%if %{with_devel}%{make} %{makeflags} run-command KBUILD_RUN_COMMAND='${srctree}/scripts/package/install-extmod-build %{buildroot}/usr/src/kernels/%{KERNELRELEASE}'%endif
{ echo "/lib/modules/%{KERNELRELEASE}"
for x in alias alias.bin builtin.alias.bin builtin.bin dep dep.bin \ devname softdep symbols symbols.bin weakdep; do echo "%ghost /lib/modules/%{KERNELRELEASE}/modules.${x}" done
for x in System.map config vmlinuz; do echo "%ghost /boot/${x}-%{KERNELRELEASE}" done
if [ -d "%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb" ];then find "%{buildroot}/lib/modules/%{KERNELRELEASE}/dtb" -printf "%%%ghost /boot/dtb-%{KERNELRELEASE}/%%P\n" fi
echo "%exclude /lib/modules/%{KERNELRELEASE}/build"} > %{buildroot}/kernel.list
%if 0%{with_debuginfo_manual}%{with_debuginfo_rpm} > 0# copying vmlinux directly to the debug directory means it will not get# stripped (but its source paths will still be collected + fixed up)mkdir -p %{buildroot}/usr/lib/debug/lib/modules/%{KERNELRELEASE}cp vmlinux %{buildroot}/usr/lib/debug/lib/modules/%{KERNELRELEASE}%endif
%if %{with_debuginfo_rpm}# make modules executable so that find-debuginfo.sh strips them. this# will be undone later in %%__spec_install_postfind %{buildroot}/lib/modules/%{KERNELRELEASE} -name "*.ko" -type f \ | xargs --no-run-if-empty chmod u+x%endif
%if %{with_debuginfo_manual}echo /usr/lib/debug/lib/modules/%{KERNELRELEASE}/vmlinux > %{buildroot}/debuginfo.listwhile read -r mod; do mod="${mod%.o}.ko" dbg="%{buildroot}/usr/lib/debug/lib/modules/%{KERNELRELEASE}/kernel/${mod}" buildid=$("${READELF:-readelf}" -n "${mod}" | sed -n 's@^.*Build ID: \(..\)\(.*\)@\1/\2@p') link="%{buildroot}/usr/lib/debug/.build-id/${buildid}.debug"
mkdir -p "${dbg%/*}" "${link%/*}" "${OBJCOPY:-objcopy}" --only-keep-debug "${mod}" "${dbg}" ln -sf --relative "${dbg}" "${link}"
echo "${dbg#%{buildroot}}" >> %{buildroot}/debuginfo.list echo "${link#%{buildroot}}" >> %{buildroot}/debuginfo.listdone < modules.order%endif
%cleanrm -rf %{buildroot}%if %{with_debuginfo_rpm}rm -f debugfiles.list debuglinks.list debugsourcefiles.list debugsources.list \ elfbins.list%endif
%postif [ -x /usr/bin/kernel-install ]; then /usr/bin/kernel-install add %{KERNELRELEASE} /lib/modules/%{KERNELRELEASE}/vmlinuzfifor file in vmlinuz System.map config; do if ! cmp --silent "/lib/modules/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}"; then cp "/lib/modules/%{KERNELRELEASE}/${file}" "/boot/${file}-%{KERNELRELEASE}" fidoneif [ -d "/lib/modules/%{KERNELRELEASE}/dtb" ] && \ ! diff -rq "/lib/modules/%{KERNELRELEASE}/dtb" "/boot/dtb-%{KERNELRELEASE}" >/dev/null 2>&1; then rm -rf "/boot/dtb-%{KERNELRELEASE}" cp -r "/lib/modules/%{KERNELRELEASE}/dtb" "/boot/dtb-%{KERNELRELEASE}"fiif [ ! -e "/lib/modules/%{KERNELRELEASE}/modules.dep" ]; then /usr/sbin/depmod %{KERNELRELEASE}fi
%preunif [ -x /usr/bin/kernel-install ]; thenkernel-install remove %{KERNELRELEASE}fi
%files -f %{buildroot}/kernel.list%defattr (-, root, root)%exclude /kernel.list
%files headers%defattr (-, root, root)/usr/include
%if %{with_devel}%files devel%defattr (-, root, root)/usr/src/kernels/%{KERNELRELEASE}/lib/modules/%{KERNELRELEASE}/build%endif
%if %{with_debuginfo_manual}%files -f %{buildroot}/debuginfo.list debuginfo%defattr (-, root, root)%exclude /debuginfo.list%endif