FreeBSD ports 分 latest,release 和 quarterly。latest 是 main 分支,持续开发,quarterly 分支在每个季度初创建,随后三个月只接受修正,而随着每个 FreeBSD release 创建的 ports release tag 比如 release/13.0.0 是冻结了不再修改。

所以对于 FreeBSD ports 来说,latest 相当于 Debian unstable,quarterly 相当于 Debian stable,而 release 就是通常意义某个时点的 point release。

注意 pkg 默认使用 quarterly, portsnap 默认下载 latest ports,另外由于 pkg package set 是每天 1:00am GMT 编译需要花两三天,再加上传输到镜像服务器的时间,所以 pkg 比 ports 对应分支晚一周左右,参考 http://pkg.freebsd.org/FreeBSD:13:amd64/https://pkg-status.freebsd.org/builds?jailname=130amd64&type=package&all=1

另外补充下 FreeBSD base system 分为 current, stable, release(releng)三类版本,这里的 current 相当于 Debian unstable,而 stable 实际上近似于 Debian testing, 依然是个开发分支,stable 指 ABI stable。releng 分支才是 Debian stable。

NetBSD 的 pkgsrc 不打 tag,它每个季度中期开始冻结,修正问题,在季度末(可能拖到下个季度初)时创建 quarterly 分支,并继续维护一个季度。

对于 pkgsrc,由于它是个跨操作系统共用的,所以没有跟随 NetBSD release 对应的 release tag。

Pkgsrc 的 latest(or trunk)相当于 Debian unstable,quarterly 分支相当于 Debian stable,没有 point release。

举例,pkgsrc-2022Q1 是 2022-3-30 创建的,继续维护三个月,而 FreeBSD ports 的 2022Q1 是 2022-1-1 创建的,继续维护三个月。

NetBSD base system 的分支策略遵循主干开发模型,current 是开发用的主分支,stable 是发布分支,跟 FreeBSD 相比,NetBSD 的开发流程更主流,更传统。

参考:

  1. https://wiki.freebsd.org/Ports/QuarterlyBranch
  2. https://docs.freebsd.org/en/books/handbook/ports/#ports-using
  3. https://docs.freebsd.org/en/books/handbook/cutting-edge/#current-stable
  4. https://www.pkgsrc.org/quarterly/
  5. https://www.netbsd.org/releases/release-map.html