class profile::boinc (
  Optional[String] $rpc_password = undef,
  Optional[String] $rpc_host     = undef,
) {
  unless empty($rpc_host) or empty($rpc_password) {
    ensure_packages(["boinc-nox", "lib32-glibc", "lib32-glib2"], { ensure => latest })

    file { "/var/lib/boinc/gui_rpc_auth.cfg":
      ensure  => present,
      content => $rpc_password,
      owner   => "boinc",
      group   => "boinc",
      mode    => "0600",
      require => Package["boinc-nox"]
    }
    ->
    file { "/var/lib/boinc/remote_hosts.cfg":
      ensure  => present,
      content => $rpc_host,
      owner   => "boinc",
      group   => "boinc",
      mode    => "0600",
    }
    ->
    service { "boinc":
      enable => false,
      ensure => "stopped",
    } ->
    service { "boinc-client":
      enable => true,
      ensure => "running",
    }
  }
}