This section describes the procedure to publish FreeBSD development snapshots and releases to the Project mirrors.
Staging FreeBSD 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 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 chroot(8) directly:
#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 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
/archive/tmp/releases,
respectively.
On ftp-master in the FreeBSD
Project infrastructure, this step requires
root level access, as this step must
be executed as the archive user.
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, 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 pax(1)
in order to correct the symbolic links in pub/FreeBSD/
which pax(1) will replace with a hard link, increasing the
propagation time.snapshots/ISO-IMAGES
As with the staging steps, this requires
root level access, as this step must be
executed as the archive user.
As the archive user:
%cd /archive/tmp/snapshots%pax -r -w -l . /archive/pub/FreeBSD/snapshots%/usr/local/bin/rsync -avH /archive/tmp/snapshots/* /archive/pub/FreeBSD/snapshots/
Replace snapshots with
releases as appropriate.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.