PUBLISHED
2 Profile导向风格的配置
本节提供在GBS的配置文件中有关profile导向样式的信息。
2.1 基本结构
一个配置文件的基本结构是属性和区段组成。
2.1.1 属性
包含在一个配置文件中的基本要素是属性。 每个属性都有一个名称和一个值,以等号(=)分隔。 名称出现在等号的左边。
2.1.2 区段
根据第2.2节规定的命名习惯,属性可以被分组成为不同的区段。 区段名称出现在方括号中的一行([ ]). 所有区段声明后的属性与该区段联系在一起。 需要不明确的“区段结束”定界符。 区段结束于下一节声明或该文件的末尾。 可能的区段包括:
-
常规区段
常规区段定义了默认profile,它在一个一般的基础上对GBS的行为产生影响。 也就是说,因常规区段的修改,所有的GBS的行为也将随之改变。
支持的属性包括以下内容:
- tmpdir
- upstream_branch
- upstreamtag
- buildroot
- packaging_dir
-
Profile区段
建议您在profile层次设置通用的验证信息,而不是重复地在各个区段里设置验证信息。 这些设置会被自动传递到OBS和仓库区段。
只有当验证信息对对应的OBS或仓储库是唯一的,才添加身份验证信息到特定的存储库或OBS的区段。 此外,多个profile区段可以在一个配置文件存在,在一个主要的配置文件可以使GBS行为针对不同设备进行操作(例如,移动电话,IVI)。 欲了解更多信息,请参见第3.2节。
支持的属性包括以下内容:
-
user
-
passwd
-
repos
-
obs
-
buildconf
构建gbs build的配置来构建所有profiles
-
exclude_packages
不参与构建的软件包列表。 该属性也可以被用来打破依赖循环。
-
-
OBS 区段
OBS区段指定远程构建服务器的配置,用来进行远程构建。 支持的属性包括URL,用户和密码。
-
存储库区段
与profile区段一起,多存储库的区段可以在一个配置文件中存在,因此,不同的存储库可以被“批处理”地操作。 支持的属性包括URL,用户和密码。 如果相应的库中并不需要验证信息,用户名和密码可以省略。
2.2 命名约定
本节名称必须遵循这些命名约定:
- 常规部分的命名精确为“[general]".
- 以"profile."开始profile区段的命名。 例如,[profile.tizen],[profile.IVI]。
- 以“OBS”开始OBS区段的命名。 例如,[obs.tizen]。
- 以"repo."开始存储库的命名。
下面是配置文件的例子:
[general] #Current profile name which should match a profile section name tmpdir = /var/tmp editor = packaging_branch = master upstream_branch = upstream upstream_tag = upstream/${upstreamversion} packaging_dir = packaging profile = profile.tizen buildroot = ~/GBS-ROOT/ work_dir = . [profile.tizen] obs = obs.tizen repos = repo.tizen_latest # If no buildroot for profile, the buildroot in general section will be used buildroot = ~/GBS-ROOT-profile.tizen/ # Specify build conf for a specific profile by using shell-style variable references buildconf = ${work_dir}/tizen-conf/build.conf # Specify a list of packages that don't participate in the building, which # can also be used to break dependency circle. exclude_packages=filesystem,aul,libmm-sound,libtool # Common authentication information user = xxxxx passwd = xxxxxx [obs.tizen] url = https://api.tizen.org user = xxxx passwd = xxxx # set default base_prj for this obs #base_prj=Tizen:Main # set default target prj for this obs, default is home:<user>:gbs:<base_prj> #target_prj=<specify target project> [repo.tizen_latest] url = http://download.tizen.org/releases/trunk/daily/ivi/latest/ #Optional user and password, set if differ from profile's user and password #user = #passwd =
3 配置规范
本节提供有关配置规格信息。
3.1 配置通用属性
典型的共同特性包括buildroot,user和password。 覆盖默认值“〜/ GBS-ROOT”配置buildroot,使用此分配公式:
buildroot=<New_Build_Root>
我们需要配置“passwd”属性是因为在运行GBS后密码行将自动转换为一个已编码的版本,如本例所示:
passwdx = QlpoOTFBWSZTWVyCeo8AAAKIAHJAIAAhhoGaAlNOLuSKcKEguQT1
要重设密码,删除上述的“passwdx”行,并添加此分配公式:
passwd=<New_Password>
3.2 配置多个配置文件
通过添加多个配置文件,旨在在一个配置文件中配置各种设备,面向各种设备的GBS行为可以通过一个中央配置文件进行操作。 下面是配置多个profiles的一个例子:
[general] profile = profile.ivi [profile.mobile] ... [profile.ivi] ...
当使用P(--profile)选项指定profile部分,GBS会应用指定的profile配置。 这里是指定多个profiles之间一个配置文件的例子:
$ gbs build --profile=profile.mobile -A i586 $ gbs remotebuild --profile=mobile
3.3 配置存储库
本节将介绍如何配置存储库,以适应GBS构建。 存储库配置规范开始于一个名为"[repo.<customized_name>]"的区段声明,后面带有以下一些属性:
-
url
url属性指定远程存储库的URL,或者本地或远程存储库的完整路径。 即支持下列两种类型的远程存储库:
- 一个标准的RPM资源库,在/repos/目录下有repodata/子目录。
- Tizen存储库有一个builddata/子目录,例如,http://download.tizen.org/releases/daily/2.0alpha/common/latest/
注:为了保证GBS构建的质量,release文件夹必须使用,而不是snapshot文件夹。
-
user
-
passwd
这里的存储库配置规范的示例:
[repo.tizen_latest] url = http://download.tizen.org/releases/trunk/daily/ivi/latest/ user = xxx passwd = xxx [repo.my_local] #local repo must be an absolute path url = <Full_Path_of_Local_Repository>
3.4 shell风格的变量引用
定义属性 [general] 区段可以通过使用GBS 0.17及更高版本的shell风格的变量引用直接用在其他区段。
如下所示:
[general] tmpdir=/var/tmp work_dir=~/test [profile.tizen] buildconf=${work_dir}/tizen.conf buildroot=${tmpdir}/profile.tizen/