Skip navigation.

To be built

, ,

也许我应该向大家炫耀一下Mandriva全新的Build system,在它上面工作,是一件十分愉快的事。我必须承认,对于其它发行版向contributor提供了怎样的build system,我十分不清楚。但我认为,Mandriva的Build system是Mandriva有史以来开发的最好的作品,甚至超出了DrakX。


Mandriva 的Build System整个系统运作方式是这样的:

1. 作为contributor,只有iurt一个这样一个客户端,你所需要的仅仅是在Mandriva的subversion服务器上操作你自己的package,包括source和spec。觉得可以发布到软件仓库了,用一个iurt命令,就可以把它推给build system。
2. Build system接到发布软件的命令后,从subversion服务器上取得相应的source和spec,把i586和x86-64两个二进制包的编译分派给不同的compilation robot来执行。
3. Compilation robot会从相应的仓库中(默认为最新的cooker)取得编译软件包所需的依赖关系(BuildRequires),用一个干净的root把它安装上,然后开始编译spec。
4. 在Compilation robot执行的过程中,Build system会随时加以监视,报告当前状态。比如依赖包已经全部安装,正在编译;又或者是已经编译完成之类。当两个架构都编译完成了,Build system会将这两个二进制包连同SRPM一起推入软件仓库的上传队列。
5. 软件仓库的机器人管理员会不断从队列中取得软件包,当它将软件包真的放入仓库的时候,会在subversion服务器上给相应的软件包打tag。由于subversion在这方面有独特的优势,你可以很方便的跟踪每次修改,以及每个release之间的修改。

在这一过程中,不管是哪里出了问题,就会直接报错。所谓报错,是指给contributor发出邮件,告知相应的错误,以及robot给出的记录。

这个系统的优势在于:
1. 允许多个人维护同一个软件包,而且只有当资深维护者认为合适的时候,软件包才向公众发布。但开发过程完全是透明的。
2. Contributor的所有changelog都被subversion本身所记录,而RPM的changelog直接取自subverison的日志,避免了changelog经常不知所云,大家也不知道有什么改进。
3. 软件仓库中的软件永远是可build的。因为以前经常是contributor同时上传SRPM和RPM,那么就可能造成别人无法rebuild SRPM成功。

Tiding overDifferences

Comments

Yuan Yijun 1. March 2007, 06:54

哟哟。正在准备体会 fedora 的 cvs commit 过程,应该差不多吧?~~

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies

December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31