delphij's Chaos

选择chaos这个词是因为~~实在很难找到一个更合适的词来形容这儿了……

30 Oct 2007

Migrating www.FreeBSDChina.org to RELENG_7

With several production environment installations, I am now very confident with RELENG_7’s stability and performance. After some discussion with alu@ we have reached the consensus that we should upgrade the system to RELENG_7.

Previously, www.FreeBSDChina.org runs a version used to call as “delphijfork”, which adds several stability improvements, performance enhancements from newer FreeBSD development branches. With RELENG_7, we are able to get rid of almost all these local hacks.

As usual, “delphijfork” delivers as a patched checked out tree. With “cvs -R up -PdrRELENG_7” it will pick up all changes between RELENG_6_2 and RELENG_7.

Unfortunately, “delphijfork” has diverged from the “genuine” RELENG_6_2 code, especially its highly hacked TCP/IP, NFS and VM code as well as several driver changes. Also, I have brought a lot of changes to userland contributed software and therefore, the cvs update got a lot of conflicts.

These conflicts are caused by different code style that is found in RELENG_6_2 and RELENG_7 branches. For instance, there is no message signaled interrupt support in RELENG_6_2 and delphijfork, and there was some changes against RELENG_6_2 in delphijfork which makes it possible to support some features we wanted. So far, I have committed all my wanted changes except these are considered as “not mature” against -HEAD and therefore RELENG_7, so I just used “cvs -qR up -C” on the conflicted files.

After that, I have checked the diff’s against RELENG_7 to make sure that there is no unforeseen changes that could cause problem. The diff between “our” version and “genuine” version has drawn drastically from the 2.4MB for RELENG_6_2 to only less than a hundred lines for RELENG_7.

The normal buildworld/buildkernel/mergemaster -p/installkernel/installworld/mergemaster -Ui/delete-old/delete-old-libs worked well with compat6x installed beforehand. No big bumps so far.

After that I have started a ‘portupgrade -fra’ to catch up with system libraries change. After that we will be able to exploit full power of RELENG_7.