rubygem-facter versus sysutils/facter

Dan Mahoney (Gushi) freebsd at
Tue Feb 6 04:13:42 UTC 2018

On Mon, 5 Feb 2018, Zach Leslie wrote:

> On Feb 5, 2018 5:51 PM, "Dan Mahoney (Gushi)" <freebsd at> wrote:
>       All,
>       I've lost the better part of an afternoon to this issue.  These questions are not just specific to the above ports, but also as to how ports are best built in general.
>       The puppet ports require rubygem-facter.  There's a knob in the port that lets you switch to sysutils/facter, which is more modern and written in C. Rubygem-facter is based on facter
>       2, which is EOL as of 2016.  The new-style puppet facts are now including more and more information that's not available in rubygem-facter, and it means that the "Fact" documentation
>       on doesn't at all match what you currently get on FreeBSD, even with a modern puppet.
>       The ruby folks have been trying to make a modern rubygem-version for years, but there's no real progress:
>       Having to build a custom port of Puppet on every machine (which would mean building ruby from scratch) is annoying as heck, and while I have my own poudriere install and build repos,
>       it's *puppet* that places those on my production machines, so I'm looking for a bootstrapping method that "just works" as simply as 'pkg install puppet4' does.
> Perhaps you have reasons not to, but sysutils/puppet5 should be the promised land you are looking for.  By default it uses sysutils/facter, and since that seems to be your underlying goal, maybe
> start there.
> I can dig closer at your questions if that ends up being insufficient.

That might in fact be the answer, but that could involve upgrading a lot 
of puppet clients, not all of whom might have a puppet5 binary available. 
Puppet's new-model-year-push is kind of annoying for those of us that run 
things long-term in prod.

It looks as though puppet5 works with a puppet4 server, but that's known 
to break in the past.

In the meantime, I am actually curious about the questions I asked, as 
they're more than this issue -- if specifying a binary name in a ports 
Makefile will survive through to pkg.  (The docs say nothing one way or 
the other), or how to get pkg to just do what I want it to (just install a 
package but don't deinstall the conflicts, I know what I'm doing. really).

Perhaps I should ask those as standalone questions on their own.



--------Dan Mahoney--------
Techie,  Sysadmin,  WebGeek
Gushi on efnet/undernet IRC
ICQ: 13735144   AIM: LarpGM

More information about the freebsd-ports mailing list