Managing ports

Thread 49694 really is a great thread. I started using FreeBSD for my primary workstation on a 9.x release and ports/packages were by far the highest learning curve. It was probably worsened by pkgng being available but not the default and several different port management tools being recommended here and there.

That said, having upgraded to FreeBSD 11 a few months ago, I moved from latest packages and ports to the situation where packages are quarterly and ports are latest/current/HEAD. I absolutely LOVE the idea of a more stable and consistent quarterly package branch, but I'm sure most people still have to build a few ports from source. The fact that the labels/names are different between packages (latest/quarterly) and ports (HEAD/2017Q1) likely makes it more confusing than it needs to be.

A few questions: If I switch from HEAD to a quarterly ports branch, should I rm -r /usr/ports/* before checking out the quarterly branch from SVN? If so, should I do the same every time I migrate to a newer branch (e.g., moving from 2017Q1 to 2017Q2)? Any other directories that should be cleaned for a first-time change to quarterly ports or subsequent quarterly migrations?

Since you have to request ports by specifying the quarter to prevent getting "latest", I wonder if there is an easy way to test what the latest quarter available is, so the command to fetch the ports for latest quarter can be automatically amended to pickup the latest quarter in order to remain in-sync with the packages?

Would it be possible to "simply" create a symlink at that always points to whatever the current quarterly branch is? That way, everyone who wants to use quarterly packages/ports wouldn't have to worry about constantly switching the ports branch on every system they manage. A side benefit would be that packages and ports can share the terminology and meaning for their quarterly branch. Bonus points: change pkg and ports to have a CURRENT symlink pointed to HEAD and a STABLE symlink pointed to the latest quarterly branch so the names are more in sync with the base system's branch names.

If the symlink is possible and easy enough to manage, it would be a great portsnap default in the base system. The icing on the cake would be a persistent local setting to tell portsnap what branch to use so the commands to fetch/update the ports tree are consistent whether using HEAD or a branch.
Last edited: