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>.