Sorry, my brain is very lazy at this particular moment, so I don't fully understand the problem, but just in case I want to mention the "new" poudriere(-devel?) option: PKG_NO_VERSION_FOR_DEPS=yes. Could this be what you need?
So, the
PKG_NO_VERSION_FOR_DEPS=yes does help for some things. But, what I'm mainly looking for is that whatever the latest packages are for any dependencies are used as opposed to being built. Don't get me wrong here, this does work in the current
ports-mgmt/poudriere-devel but only if there isn't a newer port version available at the time of the Poudriere run... if that makes sense?
For instance, if I want to run a
testport in Poudriere, I can state the port to test and when it checks the dependencies it'll use packages for everything aside from the port I want to test (which is what I want.) However, when checking the dependencies, if there is a port version that is newer than what is available in the package base, it will insist on building the newer port version for the dependency instead of just using the currently available package. It's generally not a big deal because the package database isn't all that far behind the ports versions. However, with large dependencies such as
lang/rust,
lang/cmake-core, or
lang/go121, that can be a difference of a 5 minute test build or a 4 hour test build.
I understand that the port builds should be tested against the latest available port code, but this just makes it painfully resource- and time-hungry for users just trying to keep their own local repos going. 5 (very warm and loud) hours of compilation for Rust and Go to test or bulk a few ports that need updated is rough. Again, this doesn't happen all that often, but it does happen. I was just hoping for a switch that was basically "
USE_PKGS_FOR_ALL_DEPS=yes" or something. Seems like it would make things very quick and simple for users.
Of course, I also see how this could potentially cause problems if building against old packages and then new ones come out. However, if you're only using Poudriere as the repo for your system(s), I would think everything would stay in sync since the builds would all be against packages that only available to the system via Poudriere. Having some sort of priority FBSD and Poudriere repos together, I believe this would break many things with this idea. But, at the same time, I'd think that might break many things anyway? I dunno. Just my two cents.