Portsnap is a system written by Colin Percival for secure distribution of compressed, digitally signed snapshots of the FreeBSD ports tree. The distribution follows the client–server model and uses the transport protocol HTTP (pipelined HTTP).

Portsnap
Developer(s)Colin Percival
Operating systemFreeBSD
LicenseBSD license

From FreeBSD 6 through 13 (as well as 5.5), portsnap was a part of the base system. In previous versions it was installed from ports. It's a standalone program which can be run manually or in a cron job.

As such, it is one of alternatives to the classic cvsup method. Its advantages include:

  • secure transfer - encrypted and signed data stream, not vulnerable to man-in-the-middle attacks
  • end-to-end connectivity (as opposed to mirrors with cvsup)
  • delta-based distribution - effective for small and frequent updates
  • HTTP is used as protocol (as opposed to custom protocol of cvsup)

Another alternative to cvsup is CVSync (used to manage the OpenBSD source tree), it shares cvsup disadvantages, though.

The portsnap package is distributed under the 2-clause BSD license. As of FreeBSD 14, portsnap is being removed. Its functions have been taken over by a migration to git.

References edit