summaryrefslogtreecommitdiff
path: root/kernel.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2026-11-07 09:37:37 +0000
committerCoprDistGit <infra@openeuler.org>2026-11-07 09:37:37 +0000
commit26ab2848acc6e07b338be8712491eff498d101b3 (patch)
treecf67913f271595ed099ffbd075c484357a7efd2f /kernel.spec
parente6ad7fa4b174d96bbd7246748116750de5acb7f5 (diff)
automatic import of kernelopeneuler24.03_LTS_SP3
Diffstat (limited to 'kernel.spec')
-rw-r--r--kernel.spec132
1 files changed, 132 insertions, 0 deletions
diff --git a/kernel.spec b/kernel.spec
new file mode 100644
index 0000000..c9a9371
--- /dev/null
+++ b/kernel.spec
@@ -0,0 +1,132 @@
+# kernel 6.18.50 (upstream: gregkh/linux tag v6.18.50)
+# topdir: linux-6.18.50 (确认方式: tar tf linux-6.18.50.tar.xz | head -1)
+#
+# 构建说明: 内核使用 Makefile/Kbuild 构建(无 CMake/meson/autotools),
+# 本 spec 以 x86_64 defconfig 为基准构建 bzImage + modules,
+# 关闭调试信息 / BTF / 模块签名以缩短构建时间并避免依赖外部密钥。
+
+%global debug_package %{nil}
+%global _build_id_links none
+%global _missing_build_ids_terminate_build 0
+# 内核模块不是普通共享库,跳过 rpm 的 strip / find-requires / find-provides 后处理
+%global __os_install_post %{nil}
+%global __find_provides %{nil}
+%global __find_requires %{nil}
+# SRPM 内的裸 tarball 已 xz 压缩,payload 用最快档,避免重复压缩耗时
+%global _source_payload w0.gzdio
+%global _binary_payload w3.zstdio
+
+# 各架构最终内核镜像路径(%build 生成的同名产物)
+%ifarch x86_64
+%global kernel_image arch/x86/boot/bzImage
+%endif
+%ifarch aarch64
+%global kernel_image arch/arm64/boot/Image
+%endif
+
+Name: kernel
+Version: 6.18.50
+Release: 1%{?dist}
+Summary: The Linux kernel
+License: GPL-2.0-only
+URL: https://github.com/gregkh/linux
+Source0: https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-%{version}.tar.xz
+
+BuildRequires: gcc
+BuildRequires: gcc-c++
+BuildRequires: binutils
+BuildRequires: make
+BuildRequires: bc
+BuildRequires: bison
+BuildRequires: flex
+BuildRequires: openssl
+BuildRequires: openssl-devel
+BuildRequires: elfutils-libelf-devel
+BuildRequires: perl
+BuildRequires: python3
+BuildRequires: rsync
+BuildRequires: tar
+BuildRequires: xz
+BuildRequires: gzip
+BuildRequires: bzip2
+BuildRequires: zstd
+BuildRequires: lz4
+BuildRequires: cpio
+BuildRequires: kmod
+BuildRequires: dwarves
+BuildRequires: hostname
+BuildRequires: diffutils
+BuildRequires: findutils
+BuildRequires: which
+BuildRequires: glibc-devel
+BuildRequires: ncurses-devel
+BuildRequires: ca-certificates
+
+Requires(post): kmod
+Requires(postun): kmod
+
+%description
+The Linux kernel, version %{version}, built from the upstream stable tree
+(gregkh/linux tag v%{version}). This package provides the kernel image
+(bzImage), the in-tree modules, the kernel configuration and System.map.
+
+%prep
+%autosetup -n linux-%{version}
+
+%build
+# 目标架构默认配置
+make defconfig
+
+# 精简构建:关闭调试信息 / BTF / 模块签名 / WERROR,避免构建期依赖外部密钥与
+# 新版 pahole,并显著缩短构建时间(gcc 12.3.1 下 -Werror 风险高)
+for opt in DEBUG_INFO DEBUG_INFO_DWARF5 DEBUG_INFO_BTF DEBUG_INFO_BTF_MODULES \
+ GDB_SCRIPTS MODULE_SIG MODULE_SIG_ALL MODULE_COMPRESS WERROR \
+ LOCALVERSION_AUTO; do
+ ./scripts/config --file .config -d "$opt" || :
+done
+./scripts/config --file .config --set-str SYSTEM_TRUSTED_KEYS "" || :
+make olddefconfig
+
+if grep -q '^CONFIG_DEBUG_INFO=y' .config; then
+ echo "ERROR: failed to disable CONFIG_DEBUG_INFO" >&2
+ exit 1
+fi
+
+echo "[kernel] kernelrelease = $(make -s kernelrelease)"
+test "$(make -s kernelrelease)" = "%{version}"
+
+%ifarch x86_64
+make %{?_smp_mflags} bzImage modules
+%endif
+%ifarch aarch64
+make %{?_smp_mflags} Image modules
+%endif
+
+%install
+make modules_install INSTALL_MOD_PATH=%{buildroot} INSTALL_MOD_STRIP=1
+
+install -D -p -m 0755 %{kernel_image} %{buildroot}/boot/vmlinuz-%{version}
+install -D -p -m 0644 System.map %{buildroot}/boot/System.map-%{version}
+install -D -p -m 0644 .config %{buildroot}/boot/config-%{version}
+
+# 源码树符号链接指向构建目录,安装包中必须去掉
+rm -f %{buildroot}/lib/modules/%{version}/build \
+ %{buildroot}/lib/modules/%{version}/source
+
+%post
+/sbin/depmod -a %{version} >/dev/null 2>&1 || :
+
+%postun
+/sbin/depmod -a %{version} >/dev/null 2>&1 || :
+
+%files
+%license COPYING
+%doc README
+/boot/vmlinuz-%{version}
+/boot/System.map-%{version}
+/boot/config-%{version}
+/lib/modules/%{version}
+
+%changelog
+* Sat Nov 07 2026 openEuler Builder <builder@openeuler.org> - 6.18.50-1
+- Initial package of the Linux kernel 6.18.50 from gregkh/linux v6.18.50