GNOME 2.12 编译指南
讲述如何在 192.168.28.1 上编译 gnome 2.12 的 rpm 包
我列了一个不完整的编译顺序:
http://192.168.28.1:8080/developers/documentation/faq/gnome-build-order/
简单流程:
获取原始 sepc 文件》编辑修改》编译生成 RPM 包》安装到系统上》拷贝到 /data/gnome-2.12/rpms 目录里
目录及说明
/data/rpms 从外网下载的 rpm/srpm 包
/data/gnome-2.12/ |-- deps 做包过程中依赖的包 |-- news 咱们修改过的 GNOME rpm/srpm 包 (xxx.1.0-cocreate.1.xxx) |-- rpms 咱们做的 GNOME rpm/srpm 包 |-- sources GNOME 官方源码 (tar.bz2)
如何开始?
1。登陆到服务器
ssh root@192.168.28.1
密码: linuxissohard
说明: 服务实际运行的系统的 Debian linux, 登陆后自动 chroot 到 /mnt/rhel4,也就是说大家登陆后就在一个 Redhat EL 4 系统里了。
目录关系:
Debian Linux Redhat EL 4 /data /data /home /home ------ /usr/src/redhat -> /data/build-root/
- 如何开始做包?
我们按 platform->desktop->bindings 的顺序做,前期的依赖关系太严重,咱们 口头分派任务。
3。GNOME 官方源码包在哪儿?
/data/gnome-2.12/sources 下,也许已经被拷贝到 /usr/src/redhat/SOURCES 目录了。
3。我的到的 spec 里使用的是 tar.gz?
修改成 tar.bz2 改成使用
4。编译后的包存哪儿?
包编译完成后,
包 存放位置 rpm /data/gnome-2.12/rpms/ (以后再来分 src.rpm)
5。原始的 spec 在哪儿获取?
首先在 /data/rpms 下查找,如果没有,在到下面的网页下载
http://mirrors.kernel.org/fedora/core/development/SRPMS/
在这里下在对应的 src.rpm 到 /data/rpms/ 下, 安装,然后从 /data/build-root/SPECS/ 取得
然后删除 spec 里的所有 Changelog, 然后加上我们的第一条 Changelog, 取出有 关 redhat/fedora 的信息。
6。依赖的包到哪儿去找?
首先在 el4 光盘里找,按如下步骤找需要的包:
比如编译 libxslt 时需要 libgcrypt-devel:
root #> cd /data/el4u1 root #> find . -iname libgcr* ./2/RedHat/RPMS/libgcrypt-1.2.0-3.i386.rpm ./4/RedHat/RPMS/libgcrypt-devel-1.2.0-3.i386.rpm
安装 libgcrypt-devel:
root #> rpm -i ./4/RedHat/RPMS/libgcrypt-devel-1.2.0-3.i386.rpm
安装之后,在把相应的包拷贝到 /data/gnome-2.12/deps/ 下:
root #> cp ./4/RedHat/RPMS/libgcrypt-devel-1.2.0-3.i386.rpm /data/gnome-2.12/deps/
如果没有找到,请群发邮件大家一起找。:)
7。有什么编辑器可用?
vim
如何使用?http://vimcdoc.sourceforge.net/doc/help.html (可以先让我演示 一下)
8。你能提供一些简化操作的工具吗?
会的,我会逐渐作一些小的脚本来简化工作,比如编译并拷贝生成的 rpm/srpm 到 指定目录。
9。由什么命令行的下载工具吗?
wget
proz (这个是多线程的)
10。patch (补丁)的取舍
保留修正 bug 的补丁, 64位系统的补丁 取出修改默认配置(主题等)的补丁
11。什么时候需要为包名加上 x.coreate.x ?
当一个 rpm 包里包含了一个一上的补丁后,就应该为包名加上 cocreate 后缀,具体做法请看软件命名规范。同时要写清楚在 Changelog 中写清楚 patch 用途。