源如何映射到 RPM 规范文件中的命令?

源如何映射到 RPM 规范文件中的命令?

在 RPM 规范文件中,有时我会看到:

Source0: /some/path/or/url/file.tar.xz
Source1: /another/path/or/url/file2.tar.gz
Source2: /some/path/library.so
Source4: /other/path/icon.ico
...

有时有多达 10 个以上不同文件类型的源。然而,很多时候,我没有看到%{SOURCE1}文件后面的参考资料。在文件后面没有引用这些源的情况下,是否会解析和/或使用这些源?我读了创建 RPM 包,但这个例子非常简单,不包含这个特定问题的答案。我不理解源部分的不同用例。

例子:https://src.fedoraproject.org/rpms/libreoffice/blob/master/f/libreoffice.specSource7、Source9、Source10 和 Source11 在规范文件中的任何位置都没有被引用。

答案1

如果您查看 %build 部分,会发现有一行:

EXTSRCDIR=`dirname %{SOURCE0}`

然后,配置参数之一是:

--with-external-tar="$EXTSRCDIR" \

从那里开始,它使用 tarball 作为构建的一部分。所有源条目都作为包构建的一部分保存在同一目录中,因此规范仅查找目录名称并稍后引用该目录名称。 (我不确定为什么你在示例中放置本地路径,它们要么是普通规范文件中的文件名,要么是 URL)。

我不太熟悉 libreoffice 构建过程,但我假设您提到的所有源条目都是通过上面的配置参数引入的。

相关内容