Note: 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
Note: 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/${arch}), and move the new set into place. (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.