diff --git a/en_US.ISO8859-1/articles/releng/article.sgml b/en_US.ISO8859-1/articles/releng/article.sgml index 3582de9401..2dff67ef2b 100644 --- a/en_US.ISO8859-1/articles/releng/article.sgml +++ b/en_US.ISO8859-1/articles/releng/article.sgml @@ -6,6 +6,9 @@ %man; + +%freebsd; +The Release Engineering of Third Party Packages'> ]>
@@ -72,14 +75,14 @@ of very senior developers provides some level of direction over the project. - The rapid race of The rapid pace of FreeBSD development leaves little time - for polishing the development system into production quality + for polishing the development system into a production quality release. To solve this dilemma, development continues on two parallel tracks. The main development branch is the - HEAD or the trunk of our CVS tree, known as - FreeBSD-CURRENT or -CURRENT for - short. + HEAD or trunk of our CVS + tree, known as FreeBSD-CURRENT or + -CURRENT for short. A more stable branch is maintained, known as FreeBSD-STABLE or -STABLE for short. @@ -90,7 +93,7 @@ FreeBSD development where all new changes first enter the system. FreeBSD-STABLE is the development branch from which major releases are made. Changes go into this branch at a different pace, and - with general assumption that they have first been submitted to + with general assumption that they have first gone into FreeBSD-CURRENT and have been thoroughly tested by our user community. @@ -107,21 +110,21 @@ release. Bug reports and feature requests are continuously submitted by - users throughout the cycle. Problems reports are entered into our + users throughout the release cycle. Problems reports are entered into our GNATS[9] database - through email, and the &man.send-pr.1 application, or via the web - interface provided at http://www.FreeBSD.org/send-pr.html. + through email, the &man.send-pr.1 application, or via the web + interface provided at In addition to the multitude of different technical mailing lists about FreeBSD, the FreeBSD quality-assurance mailing list (freebsd-qa@FreeBSD.org) provides a forum for discussing the finer points of release-polishing. To service our most conservative users, individual release - branches were introduced with FreeBSD 4.3. + branches were introduced with FreeBSD 4.3. These release branches are created shortly before a final release - is made, and after the release goes out, only the most critical - security fixes and additions are merged into the release branch. + is made. After the release goes out, only the most critical + security fixes and additions are merged onto the release branch. In addition to source updates via CVS, binary patchkits are available to keep systems on the RELENG_4_3 and RELENG_4_4 branches updated. @@ -160,7 +163,7 @@ Thirty days before the anticipated release, the source repository enters a code slush. During this time, all commits to the -STABLE branch must be approved by the - release engineer (re@FreeBSD.org). The kinds of changes that + release engineers (re@FreeBSD.org). The kinds of changes that are allowed during this 15 day period include: @@ -197,7 +200,7 @@ ready. During the days leading to the final release, the release engineering team is in constant communication with the security-officer team, the documentation maintainers, and the - port maintainers, in-order to make sure that all of the + port maintainers, to ensure that all of the different components required for a successful release are available. @@ -212,11 +215,11 @@ Creating the Release Branch - As described in the introduction, the RELENG_X_Y release + As described in the introduction, the RELENG_X_Y release branch is a relatively new addition to our release engineering methodology. The first step in creating this branch is to ensure that you are working with the newest version of the - RELENG_X sources that you want to branch + RELENG_X sources that you want to branch from. /usr/src&prompt.root; cvs up -rRELENG_4 -P -d @@ -232,12 +235,13 @@ /usr/src&prompt.root; cvs rtag -b -rRELENG_4_4_BP RELENG_4_4 src - Access to these commands is restricted to the - CVS-meisters and release engineers. + The RELENG_* tags are + restricted for use by the CVS-meisters and release + engineers. - A tag is a CVS + A tag is CVS vernacular for a label that identifies the source at a specific point in time. By tagging the tree, we ensure that future release builders will always be able to use the same source we used to create the @@ -357,11 +361,11 @@ tagging the respective trees with the RELEASE_4_4_0 tag. - Occasionally, a lost minute fix may be required - after the final tags have been created. + Occasionally, a last minute fix may be required + after the final tags have been created. In practice this isn't a problem, since CVS allows tags to be manipulated with cvs - tag -d tagname filename . + tag -d tagname filename. It is very important that any last minute changes be tagged appropriately as part of the release. FreeBSD releases must always be reproduceable. Local hacks in the release @@ -391,16 +395,16 @@ creation of ISO images suitable for burning to CDROM, installation floppies, and an FTP install directory. This command is aptly named make - release. + release. <quote>make release</quote> To successfully build a release, you must first populate /usr/obj by running make - world or simply + world or simply make - buildworld. The release + buildworld. The release target requires several variables be set properly to build a release: @@ -470,7 +474,7 @@ Population of /etc and - /dev in the chrooted + /dev in the chrooted environment. @@ -480,8 +484,8 @@ - make world - in the chrooted environment. + make world + in the chrooted environment. @@ -499,14 +503,14 @@ Build and installation of the documentation toolchain needed to - convert the documentation source (SGML) into HTML, and text documents + convert the documentation source (SGML) into HTML and text documents that will accompany the release. Build and installation of the actual documentation (user manuals, tutorials, release notes, hardware compatibility lists, - etc...) + and so on.) @@ -543,7 +547,7 @@ This script requires that XFree86 and Tcl/Tk already be installed on the build host. After compiling the necessary X servers, the script will package all of the files into tarballs - that sysinstall expects to find in the + that &man.sysinstall.8; expects to find in the XF86336 directory of the installation media. @@ -559,66 +563,25 @@ Contributed Software (<quote>ports</quote>) The FreeBSD Ports - collection is a collection of over 6,000 third-party - software packages available for FreeBSD. The ports team - (portmgr@FreeBSD.org) responsible for maintaining a consistent - ports tree that can be used to create the binary packages that - accompany a given FreeBSD release. - - - The Ports Cluster + collection is a collection of over &os.numports; + third-party software packages available for FreeBSD. The ports + team (portmgr@FreeBSD.org) is responsible for maintaining a + consistent ports tree that can be used to create the binary + packages that accompany official FreeBSD releases. - In order to provide a consistent set of third-party - packages for FreeBSD releases, every port is built in a - separate chroot environment, starting with an empty - /usr/local and - /usr/X11R6. The requisite dependencies - are installed as packages before the build proceeds. This - enforces consistency in the package build - process. By starting the package build in a pristine - environment, we can assure that the package metadata (such as - required dependencies) is accurate, and so we will never - generate packages that might work on some systems and not on - others depending on what software was previously - installed. - - The Ports Cluster for the x86 architecture - currently consists of a master node (Dual Pentium III 733Mhz) - and 8 slave nodes (Pentium III 800Mhz) to do the actual - package builds. With this configuration, a complete package - build takes over 24 hours. These machines are co-located with - the other FreeBSD Project equipment at Yahoo's corner of - Exodus in Santa Clara, CA. - - The Ports Cluster for the Alpha - architecture consists of 7 PWS 500A machines donated by Compaq - and also co-located with Yahoo's facilities. - - - - The Package Split + The release engineering activities for our collection of + third-party packages is beyond the scope of this document. A + seperate article, &art.re.pkgs;, covers this topic + in depth. - For FreeBSD 4.4 over 4.1 gigabytes of packages were - created. This causes a problem for CDROM distributions - because we would like to ship as many packages as possible - without making the user insert another disc to satisfy - dependencies. The solution is to create - clusters of like packages with similar - dependencies onto specific discs. The package split is - performed by the portmgr team in - coordination with the wishes of the general user community - with respect to which packages get to appear on the first - CD. - - Release ISOs <emphasis>(CDROM/DVD)</emphasis> + Release ISOs Starting with FreeBSD 4.4, the FreeBSD Project decided to release all four ISO images that were previously sold on the - BSDi/Wind River Systems + BSDi/Wind River Systems/FreeBSD Mall official CDROM distributions. Each of the four discs must contain a README.TXT file that explains the contents of the disc, a @@ -640,10 +603,10 @@ make release. The only changes that should be made to the disc1 directory are the addition of - a 'tools' directory, tools directory, XFree86, and as many popular third party software packages as will fit on the disc. The - 'tools' directory contains software that allow users to create + tools directory contains software that allow users to create installation floppies from other operating systems. This disc should be made bootable so that users of modern PCs do not need to create installation floppy disks. @@ -677,8 +640,9 @@ The remaining two discs contain additional software packages for FreeBSD. The packages should be clustered so that a package and all of its dependencies are - included on the same disc. - + included on the same disc. More information about the + creation of these discs is provided in the &art.re.pkgs; + article. @@ -717,8 +681,7 @@ rm - ${CHROOTDIR}/usr/obj/usr/src/release/release.[48] - + ${CHROOTDIR}/usr/obj/usr/src/release/release.[48] @@ -727,12 +690,12 @@ - chroot ${CHROOTDIR} ./mk release.4 + chroot ${CHROOTDIR} ./mk release.4 - chroot ${CHROOTDIR} ./mk release.8 + chroot ${CHROOTDIR} ./mk release.8 @@ -742,13 +705,13 @@ Alternatively, the boot.flp make - target can be called or the filesystem + target can be called, or the filesystem creating script, - src/release/scripts/doFS.sh may be invoked + src/release/scripts/doFS.sh, may be invoked directly. Local patches may also be supplied to the release build by - defining LOCAL_PATCH variable in make + defining the LOCAL_PATCH variable in make release. @@ -775,7 +738,7 @@ RELENG_4 branch of FreeBSD had to be explicitly approved by re@FreeBSD.org. The first - release candidate for the x86 architecture was release on August + release candidate for the x86 architecture was released on August 16, followed by 4 more release candidates leading up to the final release on September 18th. The security officer was very involved in the last week of the process as several security issues were @@ -813,8 +776,8 @@ environment, then the CVS checkout of the ports and doc trees can be happening simultaneously to the make world on another disk. Using a - RAID solution (hardware and software) can - significantly decrease overall build time. + RAID solution (hardware or software) can + significantly decrease the overall build time.