UNPACKER.ECLASS

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

名称

unpacker.eclass - 针对额外文件格式和跨 EAPI 的一致行为的辅助函数

描述

一些额外文件格式不是 PMS 的一部分,或者仅存在于某些 EAPI 中。与其担心这个问题,不如在这里和所有 EAPI 版本中都支持这些奇怪的东西。

支持的 EAPI

7 8

函数

unpack_pdv <要解压的文件> <off_t 的大小>
解压那些讨厌的 pdv 生成的文件...它们是自解压程序,二进制包塞在归档文件的中间。Valve 似乎经常使用它...可惜它似乎很喜欢段错误 :(。所以让我们自己把它拆开。

您必须指定 off_t 的大小...我不知道如何从二进制可执行文件中提取该信息。基本上,您传递构建 pdv 归档文件的机器上 off_t 类型的大小(以字节为单位)。

确定此大小的一种方法是运行以下命令

        strings <pdv archive> | grep lseek
        strace -elseek <pdv archive>

基本上查找第一个 lseek 命令(我们使用 strings/grep 因为有时函数调用是 _llseek 或其他什么),并获取第二个参数。以下是一个示例

        $ strings hldsupdatetool.bin | grep lseek
        lseek
        $ strace -elseek ./hldsupdatetool.bin
        lseek(3, -4, SEEK_END)                                  = 2981250

因此,我们将 '4' 的值作为第二个参数传递。

unpack_makeself [要解压的文件] [偏移量] [tail|dd]
解压那些讨厌的 makeself 生成的文件...它们是 shell 脚本,二进制包附加在归档文件的末尾。Loki 使用这种格式,许多其他游戏公司也使用。

如果未指定文件,则使用 ${A}。如果未指定偏移量,我们将尝试从脚本本身提取正确的偏移量。

unpack_deb <要解压的一个 deb 文件>
以样式化的方式解压 Debian .deb 归档文件。
unpack_cpio <要解压的一个 cpio 文件>
解压 cpio 归档文件,文件 "-" 表示标准输入。
unpack_zip <zip 文件>
解压 zip 归档文件。此函数忽略所有非致命错误(即警告)。这对于附加了额外内容的 zip 归档文件(例如自解压归档文件)很有用。
unpack_7z <7z 文件>
解压 7z 归档文件。
unpack_rar <rar 文件>
解压 RAR 归档文件。
unpack_lha <lha 文件>
解压 LHA/LZH 归档文件。
unpack_gpkg <gpkg 文件>
动态解压 GPKG 包的 image 子归档文件,保留原始目录结构(即到 <gpkg-dir>/image)。
unpacker [要解压的归档文件]
这与 `unpack` 的工作方式相同。如果您未指定任何文件,它将默认为 ${A}。
unpacker_src_unpack
运行 `unpacker` 以解压所有内容。
unpacker_src_uri_depends [我们将解压的归档文件]
遍历所有指定的文件(默认为 $SRC_URI)并找出解压所需依赖项。

注意:USE 标记尚未处理。

返回值:解压所有归档文件所需的依赖项

Eclass 变量

UNPACKER_BZ2 (用户变量)
用于解压 bzip2 文件的实用程序。将在 `lbzip2`、`pbzip2` 和 `bzip2` 之间动态选择。确保您的选择接受 "-dc" 选项。注意:这是供用户设置的,而不是 ebuild。
UNPACKER_LZIP (用户变量)
用于解压 lzip 文件的实用程序。将在 `xz`、`plzip`、`pdlzip` 和 `lzip` 之间动态选择。确保您的选择接受 "-dc" 选项。注意:这是供用户设置的,而不是 ebuild。

维护者

[email protected]

报告 Bug

请通过 https://bugs.gentoo.org/ 报告 Bug

文件

unpacker.eclass

参见

ebuild(5)
https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/unpacker.eclass


索引

名称
描述
支持的 EAPI
函数
Eclass 变量
维护者
报告 Bug
文件
参见

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