I've installed Ruby 1.9.3 through pkgin and Puppet with $ gem install puppet.
(pkgsrc has a puppet port under sysutils/puppet but is very very outdated... version 0.25)
After generate and configure puppet.conf with $ puppet master --genconfig > puppet.conf
(I've symlinked /etc/puppet to /etc/pkg/etc/puppet for NetBSD compliance)
then I got this
$ puppet master --no-daemonize -v -d -o --trace
Debug: Failed to load library 'selinux' for feature 'selinux'
Debug: Using settings: adding file resource 'confdir': 'File[/usr/pkg/etc/puppet]{:path=>"/usr/pkg/etc/puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'vardir': 'File[/var/lib/puppet]{:path=>"/var/lib/puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Failed to load library 'shadow' for feature 'libshadow'
Debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dsimport does not exist
Debug: Puppet::Type::User::ProviderUseradd: file chage does not exist
Debug: Failed to load library 'ldap' for feature 'ldap'
Debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
Debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist
Debug: Puppet::Type::User::ProviderPw: file pw does not exist
Debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dsimport does not exist
Debug: Puppet::Type::User::ProviderUseradd: file chage does not exist
Debug: Failed to load library 'ldap' for feature 'ldap'
Debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
Debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist
Debug: Puppet::Type::User::ProviderPw: file pw does not exist
Error: Could not create resources for managing Puppet's files and directories in sections [:main, :master, :ssl, :metrics]: undefined method `exists?' for nil:NilClass
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/type/user.rb:367:in `exists?'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:713:in `service_user_available?'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings/file_setting.rb:54:in `safe_to_use_settings_value?'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings/file_setting.rb:45:in `value'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings/file_setting.rb:108:in `owner'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings/file_setting.rb:156:in `to_resource'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:847:in `block in to_catalog'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:844:in `each'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:844:in `to_catalog'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:906:in `block in use'
/usr/pkg/lib/ruby/1.9.3/sync.rb:227:in `sync_synchronize'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:900:in `use'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application/master.rb:269:in `setup'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application.rb:362:in `block (2 levels) in run'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application.rb:456:in `plugin_hook'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application.rb:362:in `block in run'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/util.rb:504:in `exit_on_fail'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application.rb:362:in `run'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/util/command_line.rb:132:in `run'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/util/command_line.rb:86:in `execute'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/bin/puppet:4:in `<top (required)>'
/usr/pkg/bin/puppet:23:in `load'
/usr/pkg/bin/puppet:23:in `<main>'
Error: Could not prepare for execution: Could not create resources for managing Puppet's files and directories in sections [:main, :master, :ssl, :metrics]: undefined method `exists?' for nil:NilClass
undefined method `exists?' for nil:NilClass
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/type/user.rb:367:in `exists?'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:713:in `service_user_available?'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings/file_setting.rb:54:in `safe_to_use_settings_value?'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings/file_setting.rb:45:in `value'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings/file_setting.rb:108:in `owner'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings/file_setting.rb:156:in `to_resource'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:847:in `block in to_catalog'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:844:in `each'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:844:in `to_catalog'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:906:in `block in use'
/usr/pkg/lib/ruby/1.9.3/sync.rb:227:in `sync_synchronize'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/settings.rb:900:in `use'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application/master.rb:269:in `setup'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application.rb:362:in `block (2 levels) in run'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application.rb:456:in `plugin_hook'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application.rb:362:in `block in run'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/util.rb:504:in `exit_on_fail'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/application.rb:362:in `run'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/util/command_line.rb:132:in `run'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/lib/puppet/util/command_line.rb:86:in `execute'
/usr/pkg/lib/ruby/gems/1.9.3/gems/puppet-3.1.1/bin/puppet:4:in `<top (required)>'
/usr/pkg/bin/puppet:23:in `load'
/usr/pkg/bin/puppet:23:in `<main>'