A few questions about using Poudriere

From: Pat <cli_junkie_at_protonmail.com>
Date: Thu, 15 Feb 2024 00:57:34 UTC
Hello, and please let me know if this is not the best place to ask some
questions about Poudriere.

I am learning about Pouderiere, and started with what I thought would be a
simple package. But I have run into something somewhat surprising. I ran:

poudriere options -j 01amd64 -p default ftp/curl

expecting to have to configure a few options for curl and be done. But
from there I was also presented with options for many other packages. I
am assuming this is some sort of dependency tree, but I also see packages
that should have nothing to do with curl, at least in my mind. Examples
of packages that I had to set the options for are: xorgproto; freetype2;
png; many Python39-*; sqlite; etc. Altogether there were ~192 packages
that I ended up having to set options for.

My first question is, did I do something unusual or incorrect to end up
having to do this amount of work for just one (what I thought would be a)
small package? If not then that prompts a few other questions:

How can I get a list of all of the packages that I will be prompted to
set the options for, before starting this process? I would like to work
my way up, not start with a package and have to work my way down through
a large list such as this. That way I can tackle the full option selection
process one, or few, at a time. I imagine when I get to Dovecot, or Exim,
that there are going to be a lot more packages to go through and I would
like to have an idea of how long just configuring the options will take.

The reason I was so surprised is that when I use pkg to install curl
on a fresh install I do not end up with sqlite, nor xorgproto, or any
of the other packages I had to configure here. So why are these options
required to be set when using Pouderiere?

If I really do have to work my way down from curl through everything else,
then rather than have to set options for a whole slew of packages, is
there a way to set options for just the package I targeted, and indicate
all of the defaults for everything else are acceptable, don't prompt me
for them? Just working through all 192 options took well over an hour
today, and I only de-selected the docs option of a handful. The rest
I just reviewed and hit OK, so just leaving everything at the default
would have been acceptable to me.

In addition to the above questions, what, if any, is the proper way to
interrupt this process and continue from where I left off later?

Also, can I get a list of all of packages for which I just set the
options?

BTW, I did see in POUDRIERE(8) this hint:

As a starter, you may want to copy an existing /var/db/ports/ to
/usr/local/etc/poudriere.d/options.

but that was afterwards. Would that have saved me some of this work?

Finally, if I now build curl, is it really going to build 192 additional
packages? That seems awful heavy for something that is supposed to be
a simple tool for transferring data.

Appreciate any pointers, and thanks for reading.

Regards,
Pat