pkg, poudriere, Different Options, Multiple Repositories -- Best Practices?

Jeff jmk at wagsky.com
Fri Nov 8 23:50:39 UTC 2013


The scenario I am trying to smooth out is that the vast majority of my 
machines all can use the same set of options on nearly all of the ports 
being built into packages. Using poudriere and pkg has made building 
within each jail a thing of the past, thankfully.

The "cut to the chase" question is, "Is there a deterministic order for 
searching for packages among multiple repositories with pkg? If so, 
where is it documented?"

The context:

The tricky part is that one port here and there needs a different set of 
options for a specific machine/jail or two. For example, postfix can be 
trimmed down for most as it is just handling submission of locally 
generated mail and sending it off somewhere. However, the mail servers 
need auth and dovecot and their dependencies.

I /could/ maintain complete repositories for each set of options, but 
when something with a lot of dependencies gets changed, it is a lot of 
rebuilding for just a couple ports that are different.

I have read that pkg can handle multiple repositories, for example 
pkg.conf(5) and <https://github.com/freebsd/pkg>, and the thought would 
be that I would be that I build a "general" repository that has vast 
majority of packages, then "special" ones with, for example, postfix 
with dovecot, X11-enabled apps,... Then, I could specify the "special" 
version of the repo to be searched first, followed perhaps by another 
special one, then by the general one. That way postfix and friends would 
be picked up first, but more germane things like perl or python would be 
pulled from the general one (assuming it wasn't a dependency of the 
stuff in the "special" repo).



The other question relates to poudriere -- "it" seems to want to build 
options files for everything under the sun, even if they are just 
"default" options (probably more the ports makefile than poudriere). I'd 
much prefer that what is in the poudriere.d/x-y-z directories are just 
the /changes/ to the default options. Is there any pre-packaged way to 
get the default options for a port and compare them to an options file's 
settings?



Thanks!

Jeff



P.S. At least for me, poudriere works much, much more easily than I 
could ever get tinderbox to behave -- thanks to all that have 
contributed to its development!


More information about the freebsd-ports mailing list