Ports recompile for 13.0-RELEASE

Michael Gmelin freebsd at grem.de
Tue May 4 14:50:00 UTC 2021

On Tue, 4 May 2021 08:10:38 -0600
"@lbutlr" <kremels at kreme.com> wrote:

> With the move to FreeBSD 13.0 is there a simple (single step) way to
> reinstall all the current ports other than saving off a list of the
> ports and then stepping through that list to reinstall them?
> It was very inefficient when moving to 12.0 as many ports in the
> list, of course, were dependent on other ports, but then got
> recompiled, sometimes multiple times. I know I ended up in a make
> loop where came was compiled over and over again until I aborted,
> listed the current ports, differ on the previous ports, and picked a
> port I though would have a lot of reps to restart the compile. I then
> did this several more times to get back to where I had been on 11.x

Using a local poudriere repo fixes all of the above ;)

> And there's still no way to tell if a port was installed from pkg or
> from ports, correct? Since I use MariaDB instead of MySQLI have to be
> sure I don't try to use package for anything that will try to install
> MySQL instead.

The repository the package came from is stored in the annotation tag
named "repository".

You can see this, e.g., by using

  pkg query "%n %At %Av"


  pkg info -R <packagename>

By default this is "FreeBSD" for the official repos. If you install
locally ("make install"), it's not set.

> And finally, the release of 13.0 ends the 12.x versions, right? There
> will not be a 12.3.

See https://www.freebsd.org/security/#sup, there will be a 12.3.

> (And yes, I've tried moving to poudrerie several times and we do not
> get on. At all.)

Well, that's the recommended way of doing what you're trying to
accomplish, otherwise you'll be in dependency hell like we've all
been updating our machines in the 2000s.

Alternatively, you could create a jail or VM manually, install all
packages you need in there from ports using make install. You
can retrieve the list of what you need on your target host using

  pkg query -e "%a = 0" %o

Then run "pkg create -a" on that machine to get a set of all binary
packages. Then copy those over to your target machine and install them
using pkg add. Will be messy, but kind of work. I really would prefer
poudriere over that though.


Michael Gmelin

More information about the freebsd-ports mailing list