跳到主要内容

命名规则

这个文档讲述了 openRuyi 软件包的命名策略。

通用命名规则

软件包名称应该为小写,并且优先使用短横线 (-) 而非下划线 (_)。您可以从上游源码包 (tarball) 的名称、该软件来源的项目名称,以及过去其他发行版/打包者用于此软件包的名称中获取一些线索。

同时请记得检查您正在打包的软件包类型是否已有特定的命名规则。例如 Perl 和字体包。

打包的过程中,亦不需要把 ABI (SONAME major) 或上游主版本号编码进包名。例如,若上游版本名为 foo v2.3.4,则不应命名为 libfoolibfoo2

分隔符

在打包时,必须使用短横线 (-) 作为名称各部分的分隔符。但有以下少数例外:

  • 上游名称中自然包含下划线的软件包,例如 nss_wrapper 等。

  • 基础软件包名称以数字结尾的兼容软件包。

  • httpdpamSDL 扩展软件包。

Provide

如果最终软件包的名称跟上游命名不一致,则可以使用 Provide 字段提供原本的名称,但这不是必须的。

名称冲突

冲突的软件包名称是绝对不允许的,这包括了大小写不同的情况。

具有相同名称的多个软件包

出于多种原因,openRuyi 有时会提供一个软件包的多个版本,此时软件包名称必须准确的反应出这种情况。其中一个软件包应该有一个基本名称 (不含软件信息),而所有其它派生自它的软件包必须包含这个基本名称,并且附加一个短横线 (-) 后跟一个描述性后缀 (例如 stable) 或者版本号 (例如 21)。

大小写

虽然大小写敏感性不是强制性要求,但大小写应该仅在必要时使用。

如果上游维护者将其应用程序称为 "RapidCopy",那么在打包时应该使用 "RapidCopy" 作为软件包名称,而不是 "rapidcopy"。但是,如果他们没有任何大小写偏好的话,那默认应该使用小写命名。

perl 模块是一个例外,CPAN 组和类型在名称中应该大写。

文档

大型文档文件应该放入一个子软件包中。该子软件包必须以 %{name}-doc 的格式命名。 “大型”的定义留给打包者自行判断,但并不仅限于大小。"大型"可以指文件的大小或数量。

字体软件包

包含字体的软件包必须以小写形式命名为 fonts-[fontname]

模块包

如果一个软件包增强了现有 openRuyi 软件包的功能,但其凭本身并不能工作的,则这类子软件包应该在其名称中以父软件包作为前缀。格式为: %{parent}-%{child}

例如:

  • php-imagemagick

  • python-setuptools

pam 和 SDL

pamSDL 插件使用 %parent_%child 格式,并使用下划线 (_) 作为分隔符。

Perl 模块

Perl 模块应该命名为 perl-CPANDIST,其中 CPANDIST 是所打包的 CPAN 模块的名称。当一个 CPAN 模块需要被拆分成更小的子软件包时,额外的子软件包应该命名为 perl-CPANDIST-Something

Python 模块

主要包含 Python 库的源码包必须以 python- 前缀命名。