The rc script for puppetserver6 sets the default locale to C.UTF-8 in the absence of any inherited environment variable. There is no such locale in FreeBSD 11.x. While the puppetserver doesn't complain, any Perl scripts invoked via a "generate()" call will do, generating warnings that pollute the output: pm% setenv LC_ALL C.UTF-8 pm% perl -e exit perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LC_ALL = "C.UTF-8", LANG = (unset) are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). For now my only work around has been to symlink /usr/share/locale/en-us.UTF-8 directory to C.UTF-8. If there's a better way to set the global locale as used by system daemons I've been unable to find it. All searches point at login.conf but AFAIK that's only used for interactive processes.
Oops, looks like I missed that one! C.UTF-8 was introduced and is the default in 13.0+ https://reviews.freebsd.org/D17835 https://reviews.freebsd.org/D26973 Maybe the default should be en_US.UTF-8 when __FreeBSD_version < 1300130 (the last commit that change the default was between 1300129 and 1300130). I'll need to setup a 12.4 jail to test this thoroughly.
Both Puppet 6 and FreeBSD 11 are end-of-life, and the puppet6 ports expired today, so closing this PR.