For FreeBSD.org as of 2013, the instructions
about uploading to ftp-master
are obsolete.
In the future, ftp-master
will pull
from pointyhat
, using a mechanism yet
to be implemented. However, the instructions about
RESTRICTED
and NO_CDROM
must still be carefully followed.
Once a build has completed, packages and/or distfiles
can be transferred to ftp-master
for
propagation to the FTP mirror network. If the build was
run with -nofinish
, then make sure to
follow up with
dopackages -finish
to post-process the
packages (removes RESTRICTED
and
NO_CDROM
packages where appropriate,
prunes packages not listed in INDEX
,
removes from INDEX
references to packages not built, and generates a
CHECKSUM.MD5
summary); and distfiles (moves them from the temporary
distfiles/.pbtmp
directory into
distfiles/
and removes
RESTRICTED
and NO_CDROM
distfiles).
It is usually a good idea to run the
restricted.sh
and/or
cdrom.sh
scripts by hand after
dopackages
finishes just to be safe.
Run the restricted.sh
script before
uploading to ftp-master
, then run
cdrom.sh
before preparing
the final package set for a release.
The package subdirectories are named by whether they are for
release
, stable
, or
current
. Examples:
packages-7.2-release
packages-7-stable
packages-8-stable
packages-9-stable
packages-10-current
Some of the directories on
ftp-master
are, in fact, symlinks. Examples:
packages-stable
packages-current
Be sure you move the new packages directory over the real destination directory, and not one of the symlinks that points to it.
If you are doing a completely new package set (e.g., for
a new release), copy packages to the staging area on
ftp-master
with something like the following:
#
cd /a/portbuild/${arch}
/${branch}
#
tar cfv - packages/ | ssh portmgr@ftp-master tar xfC - w/ports/${arch}
/tmp/${subdir}
Then log into ftp-master
, verify that
the package set was transferred successfully, remove the
package set that the new package set is to replace (in
~/w/ports/
),
and move the new set into place. (${arch}
w/
is
merely a shortcut.)
For incremental builds, packages should be uploaded
using rsync
so we do not put too much
strain on the mirrors.
ALWAYS use -n
first with rsync
and check the output
to make sure it is sane. If it looks good, re-run the
rsync
without the -n
option.
Example rsync
command for incremental
package upload:
#
rsync -n -r -v -l -t -p --delete packages/ portmgr@ftp-master:w/ports/${arch}
/${subdir}
/ | tee log
Distfiles should be transferred with the
cpdistfiles
script:
#
/a/portbuild/scripts/cpdistfiles ${arch}
${branch}
${buildid}
[-yesreally] | tee log2
Doing it by hand is deprecated.
This, and other documents, can be downloaded from http://ftp.FreeBSD.org/pub/FreeBSD/doc/
For questions about FreeBSD, read the
documentation before
contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.