Personal tools
You are here: Home 开发 cc-autobuild-spec
Document Actions

cc-autobuild-spec

by 杨红 last modified 2005-11-28 16:30

词汇说明:

source 包:是指说有的 tar,bz,zip,gz 包(patch.gz 除外)
RPM 包:可安装到系统中使用的二进制包。扩展名:.rpm
SRPM 包:可用于重新生成 RPM 包的二进制包。扩展名:src.rpm

编译环境介绍:

存储服务器:192.168.28.1 (web,ftp,nfs,svn)

编译服务器:192.168.28.185 

基础版本:CoCreate Linux sp2 20051118

存储服务器编译服务器备注
Debian GNU/Lniux
(sarge)
CoCreate sp2
(20051118)
自动编译守候进程在 debian 中运行,
执行编译时,chroot 到 cocreate 中。
/data/build-queue/data/build-queuemount -t nfs
/data/ftp
/data/data-nfs-1  mount -t nfs
1. 目录说明:

存储服务器:

目录
说明
/data/build-queuebuilding  正在编译中的版本
failure   编译失败的版本
success  编译成功的版本
waiting   等待编译的版本。
log       build-queue 日志信息
.remote   远程标记文件
/data/cc-build-tools编译工具
/data/ftp/sp2存放 sp2 rpm 包,source 包,iso
/data/ftp/sp2/RPM SRPM
存放当前稳定版本的 RPM/SRPM 包
/data/ftp/sp2/YYYYMMDD/RPM /SRPM 每天生成的 rpm/srpm 包
/data/ftp/sp2/sources基础版之后更新的 source 包

编译服务器:

目录说明
/data用于存放编译过程前后的所有数据
/data/build-queue远程编译列队,192.168.28.1:/data/build-queue
通过 nfs 挂接,
.local    本地标记文件
/data/local-queue编译列队
building  正在编译中的版本
failure   编译失败的版本
success  编译成功的版本
/data/build-root连接到 /usr/src/redhat, 存放编译中间过程数据的
/data/build-source存放编译需要的 spec, source
/specs-trunk spec 主干的本地拷贝
/sp2-20051118-sources sp2 基础版本的源码,按包名存
      放,所有文件连接到编译目录下的  SOURCES 下
/sources 连接到 /data/data-nfs-1/sp2/sources
/data/data-nfs-1192.168.28.1:/data/ftp 通过 nfs 挂接。
/data/cc-build-tools编译工具
  
2. 仓库中的 specs 目录规范

目录说明
 branches/存放各种分支
 tags/存放各种主版本标记,比如:cocreate-sp2-20051118
 trunk/存放 specs 内容
 vendor/存放外部引入的库
3. trunk 中的每一个目录对应系统中的 src.rpm, 其名字由:

rpm -pq --queryformat '%{NAME}' xxx.src.rpm 获得

每一个目录中可以包含如下文件:

文件名说明
包名.spec从 src.rpm 解压出来的 spec 文件,名字与包名一致。
*.patchsrc.rpm 中附带的 patch 文件 
.patch.gz
gzip 格式的 patch
普通文件src.rpm 中附带的普通文件,如单个的源码文件,图片等
rpmbuild-options
特殊文件,用于控制 rpmbuild 参数
4. rpmbuild-options 格式说明

目前只包含一行: target=arch1 arch2..., 用于指定包的目标平台,archN 之间使用空格分隔。

比如 kernel 的目标平台必须为 i686, 则此文件的内容为:target=i686 , 参见 http://192.168.28.1/repos/specs/trunk/kernel/rpmbuild-options , kernel 的编译命令:

rpmbuild --ba kernel.spec --target=i686

glibc 必须同时编译 i368, i686 两个平台的包,则此文件的内容为:target=i386 i686,参见 http://192.168.28.1/repos/specs/trunk/glibc/rpmbuild-options , glibc 的编译命令:

rpmbuild --ba glibc.spec --target=i386

rpmbuild --ba glibc.spec --target=i686

。。。

添加新的包,log 安如下格式写:

New {atk} spec for packages:
 {atk-1.10.3}
 {atk-devel-1.10.3}

说明:

{atk} 为 src.rpm 包名除去版本号的部分,可有如下命令得到:

rpm -pq --queryformat '%{NAME}' xxx.src.rpm

或者

rpm -q --queryformat '%{NAME}' --specfile xxx.spec

后续的行为由此 src.rpm生成的 rpm 包列表,每行一个,每一行前面空一格。可有如下命令得到:

rpm -pq --queryformat '%{NAME}-%{VERSION} ' xxx.src.rpm

或者

rpm -q --queryformat '%{NAME}-%{VERSION} ' --specfile xxx.spec

Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: