Ebuild 的编写规范
ebuild 的格式
ebuild 是一个在特殊环境下执行的 bash
脚本,后缀为 .ebuild
文件命名规则
一个 ebuild 应当以 名字-版本.ebuild
的方式命名.
名字部分应当只使用英文字母以及数字,下划线,连接符-
和加号.强烈不推荐使用大写字母,虽然他们是合乎规则的.
当然,名字是不能以-
和+
开头的,也不能以-
结尾.
版本号则是有一些复杂,一般来说它是一些被.
所分开的数字,例如 1.2.3
,20050108
.最后一位有可以是个字母,例如 1.2b
,当然这个字母不能用来表示 beta
,在 Portage 中,1.2b
比 1.2
和 1.2a
大(新).
在版本号后可以添加一个后缀(suffix),以用来表示发行版(Release) 状态.这里我们用一个表格来表示.
后缀 | 含义 |
---|---|
`_alpha` | Alpha 发行版(最早) |
`_beta` | Beta 发行版 |
`_pre` | 预发行版 |
`_rc` | 最终候选版 |
无 | 普通版本 |
`_p` | 补丁版本 |
这些后缀后可以追加一位非零整数.例如 _alpha3
这些后缀可以一起使用并且将被迭代(iteratively)处理,例如:
- foo-1.0.0_alpha_pre
- foo-1.0.0_alpha_rc1
- foo-1.0.0_beta_pre
- foo-1.0.0_beta_p1
所有的版本数字都不应超过 18 位.
同时,版本号中可以包含一个 Gentoo 修订(revision)版本号如 -r1
.最初的 Gentoo 版本应当没有,而第一个修订版应为 -r1
,第二个为 -r2
,依此类推.你可以看一下 Ebuild Revision
总之,最终的文件名应该类似 libfoo-1.2.5b_pre5-r2.ebuild
ebuild 文件头
所有收录入 Portage 树(Tree)中的 ebuild 都应拥有三行用来声明版权的文件头.他们必须与 $(portageq get_repo_path / gentoo)/header.txt
完全相同.注意 $id$
行并非需要手动修改,他们会在 staging 阶段自动更改.
一个例子:
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
缩进与空格
所有在 ebuild 中的缩进都应该由 Tab 缩进,每一层一个 Tab,Tab 应只在缩进中使用,永远不要在内文中使用 Tab.
避免使用一长串的空格,Repo 维护者会在你的 ebuild 内有一长串的空格时警告你(按空格而非 Tab).
尽可能避免使一行超过 80 位,在这里, ‘位’ 一般等同于一个字符,一个缩进(Tab)为 4 位,多字节字符视为一位.
编码
所有的 ebuild,包括 eclasses,metadata 文件和 ChangeLogs 必须使用 UTF-8 编码.GLEP 31 中有更多的细节.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.