KERNEL-2.ECLASS

章节: eclass-manpages (5)
更新: 2024年11月
索引 返回主内容

名称

kernel-2.eclass - 内核软件包的 Eclass

描述

这是 kernel.eclass 的重写版本,为 2.6 系列内核提供了一个干净的基础,并向后兼容 2.4。请将您的错误报告给当前的 eclass 维护者 :) 添加的功能:unipatch - 一种灵活、单一的方法来提取、添加和删除补丁。

支持的 EAPI

7 8

函数

debug-print-kernel2-variables
此函数仅用于调试 kernel-2.eclass,如果您正在添加新功能,请在 src_unpack 的开头或 SRC_URI/dep 生成期间调用它。
handle_genpatches [--set-unipatch-list]
如果需要,将 genpatches 添加到要应用的补丁列表中。
detect_version
此函数将检测并设置 - OKV:原始内核版本 (2.6.0/2.6.0-test11) - KV:内核版本 (2.6.0-gentoo/2.6.0-test11-gentoo-r1) - EXTRAVERSION:附加到 OKV 的额外版本 (-gentoo/-gentoo-r1)
kernel_is <条件版本 | 版本>
用于比较内核版本或仅识别版本,例如 kernel_is 2 4,例如 kernel_is ge 4.8.11 注意:在 linux-info.eclass 中重复。
kernel_header_destdir
返回头文件目标目录。
cross_pre_c_headers
如有必要,设置 use 以支持交叉编译。
env_setup_kernel_makeopts
设置工具链变量,以及交叉编译时的 ARCH 和 CROSS_COMPILE。
universal_unpack
解压内核源代码。
unpack_set_extraversion
处理 EXTRAVERSION。
unpack_fix_install_path
应在应用补丁后完成,否则修改 Makefile 相同区域的补丁将失败。
install_universal
修复压缩包中的权限。
install_headers
安装头文件。
install_sources
安装源代码。
preinst_headers
头文件预安装步骤。
postinst_sources
源代码安装后函数。参见内联注释。
setup_headers
确定 ${PN} 是否支持 arch。
unipatch <要应用的补丁列表>
将补丁应用于源代码的通用函数。
getfilevar <变量> <配置文件>
来自 linux-info。
detect_arch
此函数使用必要的 arch 特定兼容性补丁集信息设置 ARCH_URI 和 ARCH_PATCH。
headers___fix
修复损坏的上游头文件的变通方法。注意:不要将内联/asm/volatile 放在一起(会破坏“内联 asm volatile”)。
kernel-2_src_unpack
解压源代码,处理 genpatches,去除二进制文件。
kernel-2_src_prepare
应用任何用户补丁。
kernel-2_src_compile
编译头文件或运行去除二进制文件脚本。
kernel-2_src_test
如果您将其保留为默认的 src_test,它将运行 make 以查找是否存在 test/check 目标;由于“make test”实际上会生成一些支持文件,因此即使软件包是 binchecks-restricted,它们也会被安装。

通过使函数无效来完全避免这种情况。

kernel-2_pkg_preinst
如果 ETYPE = headers,则调用 preinst_headers。
kernel-2_src_install
根据 ETYPE 安装头文件或源代码。
kernel-2_pkg_postinst
对于 ETYPE = sources,调用 postinst_sources。
kernel-2_pkg_setup
检查支持的内核版本,如果 ETYPE 未知则退出,如有必要,调用 setup_headers。
kernel-2_pkg_postrm
通知用户,在 depclean 后,可能存在需要手动清理的源代码。

Eclass 变量

CKV
用作比较内核版本,当 PV 不反映真实的内核版本时使用。这被设置为 portage 风格的版本。即:CKV=2.6.11_rc4。
EXTRAVERSION
附加到 OKV 的额外版本 (-gentoo/-gentoo-r1)
H_SUPPORTEDARCH
这应该是一个以空格分隔的 ARCH 列表,头文件 ebuild 可以支持这些 ARCH。
K_BASE_VER
对于 git 源代码,声明此补丁所基于的基本版本。
K_DEBLOB_AVAILABLE
值为“0”将禁用所有可选的去除二进制文件代码。如果为空,如果可以去除二进制文件,则设置为“1”。仅测试“1”。
K_DEBLOB_TAG
这将是去除二进制文件脚本的版本。它是一个上游 SVN 标签,例如 -gnu 或 -gnu1。
K_DEFCONFIG
允许指定不同的 defconfig 目标。如果长度为零,则默认为“defconfig”。
K_EXP_GENPATCHES_PULL
如果设置,我们将无论 USE 标志如何都拉取“实验性”补丁,但预期 ebuild 维护者使用 K_EXP_GENPATCHES_LIST。
K_EXP_GENPATCHES_NOUSE
如果设置,将不会为“实验性”补丁提供 USE 标志;因此,用户无法选择应用这些补丁。
K_EXP_GENPATCHES_LIST
当 USE 标志未设置且 K_EXP_GENPATCHES_PULL 设置时,从“实验性”中选择要应用的补丁列表。
K_EXTRAEINFO
这是一个以换行符分隔的 einfo 显示列表,在 postinst 中使用,可用于传递其他 postinst 消息。
K_EXTRAELOG
与 K_EXTRAEINFO 相同,但使用 elog 而不是 einfo。
K_EXTRAEWARN
与 K_EXTRAEINFO 相同,但使用 ewarn 而不是 einfo。
K_FROM_GIT
如果设置,此变量表示内核源代码来自 git 树,并将应用特殊处理,以便应用的任何补丁都能实际应用。
K_GENPATCHES_VER
要应用的 genpatches 压缩包的版本。值为“5”会将 genpatches-2.6.12-5 应用于 my-sources-2.6.12.ebuild。
K_LONGTERM
如果设置,eclass 将在上游服务器上的长期目录中搜索内核源代码,因为位置已由上游更改。
K_NODRYRUN
如果设置,则不会运行 patch --dry-run。某些补丁将在此参数下失败,请参阅错误 #507656。
K_NOSETEXTRAVERSION
如果设置,则不会在内核 Makefile 中自动设置 EXTRAVERSION。
K_NOUSENAME
如果设置,则 EXTRAVERSION 将不包含 ${PN} 的第一部分。
K_NOUSEPR
如果设置,则 EXTRAVERSION 将不包含任何基于 ${PR} 的内容。
K_PREDEBLOBBED
此内核已在其他地方去除了二进制文件。如果为假,则可选的去除二进制文件将可用,或者许可证将记录 linux-firmware 代码的包含。
K_PREPATCHED
如果补丁集是预先修补的(即:pf-sources、zen-sources 等),它将使用 PR(即:-r5)作为补丁集版本,而不是将其用作真正的软件包修订版。
K_SECURITY_UNSUPPORTED
如果设置,则此内核不受 Gentoo 安全团队支持,请联系当前的 eclass 维护者 :)
K_SYMLINK
如果设置,则强制创建符号链接。
K_USEPV
设置 EXTRAVERSION 变量时,应在末尾添加 PV。这对于像 wolk 这样的东西很有用。即:EXTRAVERSION 将类似于:-wolk-4.19-r1。
K_WANT_GENPATCHES
将 genpatches 应用于内核源代码。提供“base”、“extras”或“experimental”的任何组合。
KERNEL_URI
上游内核源代码 URI。
KV (由 Eclass 生成)
内核版本 (2.6.0-gentoo/2.6.0-test11-gentoo-r1)
KV_FULL (由 Eclass 生成)
内核完整版本。
KV_MAJOR (由 Eclass 生成)
来自 <KV_MAJOR>.<KV_MINOR>.<KV_PATCH 的内核主版本。
KV_MINOR (由 Eclass 生成)
来自 <KV_MAJOR>.<KV_MINOR>.<KV_PATCH 的内核次版本。
KV_PATCH (由 Eclass 生成)
来自 <KV_MAJOR>.<KV_MINOR>.<KV_PATCH 的内核修订版本。
LINUX_HOSTCFLAGS
如果未设置,则为默认的 cflags。
OKV
原始内核版本 (2.6.0/2.6.0-test11)
RELEASE
代表内核发布标签 (-rc3/-git3)。
RELEASETYPE
与 RELEASE 相同,但去除了数字 (-rc/-git)。
UNIPATCH_DOCS
要安装到 doc 目录中的以空格分隔的文档列表。
UNIPATCH_EXCLUDE
一个附加变量,用于支持完全基于“<传递字符串> *”而不是“<传递编号>_*”的排除,不应从 ebuild 中使用,因为这是为最终用户从 cli 传递排除保留的。
UNIPATCH_LIST
要应用于内核的以空格分隔的补丁列表。
UNIPATCH_STRICTORDER
如果设置,则将补丁放入顺序目录中,以便按传递的顺序应用它们。更改此 eclass 中的任何其他变量都不受支持;您可以通过联系当前维护者来请求添加其他变量。如果您确实更改了它们,则我们可能不会修复由此产生的错误;当然,这并不意味着我们不愿意提供帮助。

作者

John Mylchreest <[email protected]>
Mike Pagano <[email protected]>
<还有很多其他人,请添加你自己>

维护者

Gentoo 内核项目 <[email protected]>

报告错误

请通过 https://bugs.gentoo.org/ 报告错误。

文件

kernel-2.eclass

另请参阅

ebuild(5)
https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/kernel-2.eclass


索引

名称
描述
支持的 EAPI
函数
Eclass 变量
作者
维护者
报告错误
文件
另请参阅

此文档由 man2html 使用手册页创建。
时间:2024年11月12日,格林威治标准时间03:27:01