Index: user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml =================================================================== --- user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml (revision 50103) +++ user/gjb/releng-rewrite/en_US.ISO8859-1/articles/freebsd-releng/releng-mirrors.xml (revision 50104) @@ -1,39 +1,113 @@ Publishing &os; Installation Media to Project Mirrors This section describes the procedure to publish &os; development snapshots and releases to the Project mirrors. Staging &os; Installation Media Images Staging &os; snapshots and releases is a two part process: Creating the directory structure to match the hierarchy on ftp-master + + If EVERYTHINGISFINE is defined in the + build configuration files, main.conf in + the case of the build scripts referenced above, this happens + automatically in the &man.chroot.8; after the build is + complete, creating the directory structure in ${DESTDIR}/R/ftp-stage + with a path structure matching what is expected on + ftp-master. This is equivalent to + running the following in the &man.chroot.8; directly: + + &prompt.root; make -C /usr/src/release -f Makefile.mirrors EVERYTHINGISFINE=1 ftp-stage + + After each architecture is built, + thermite.sh will + rsync the ${DESTDIR}/R/ftp-stage + from the build &man.chroot.8; to /snap/ftp/snapshots or + /snap/ftp/releases on + the build host, respectively. Copying the files to a staging directory on ftp-master before moving the files into pub/ to begin propagation to the Project mirrors + + Once all builds have finished, /snap/ftp/snapshots, or + /snap/ftp/releases + for a release, is polled by + ftp-master using + rsync to /archive/tmp/snapshots or + /snap/ftp/releases, + respectively. + + + On ftp-master in the &os; + Project infrastructure, this step requires + root level access, as this step must + be executed as the archive user. + Publishing &os; Installation Media -   + Once the images are staged in /archive/tmp/, they are ready to + be made public by putting them in /archive/pub/FreeBSD. In order + to reduce propagation time, &man.pax.1; is used to create hard + links from /archive/tmp + to /archive/pub/FreeBSD. + + + In order for this to be effective, both /archive/tmp and /archive/pub must reside on the + same logical filesystem. + + + There is a caveat, however, where + rsync must be used after &man.pax.1; + in order to correct the symbolic links in pub/FreeBSD/snapshotsISO-IMAGES + which &man.pax.1; will replace with a hard link, increasing the + propagation time. + + + As with the staging steps, this requires + root level access, as this step must be + executed as the archive user. + + + As the archive user: + + &prompt.user; cd /archive/tmp/snapshots +&prompt.user; pax -r -w -l . /archive/pub/FreeBSD/snapshots +&prompt.user; /usr/local/bin/rsync -avH /archive/tmp/snapshots/* /archive/pub/FreeBSD/snapshots/ + + Replace snapshots with + releases as appropriate.