Several package definitions like:
package { 'bash':
ensure => 'present',
source => 'ftp://mirror.switch.ch/pub/OpenBSD/4.2/packages/i386/bash-3.2.17.tgz',
require => Package[gettext],
}
work perfectly. They get installed once and it's ok. However the definition:
package { 'vim':
name => $operatingsystem ? {
centos => vim-enhanced,
default => vim,
},
category => $operatingsystem ? {
gentoo => 'app-editors',
default => '',
},
ensure => present,
source => $operatingsystem ? {
openbsd => 'ftp://mirror.switch.ch/pub/OpenBSD/4.2/packages/i386/vim-7.1.33-no_x11.tgz',
default => undef,
},
}
works as well, but it gets reinstalled and reinstalled over and over again, by every puppetd run on an openbsd machine. All other systems (linux distros) work perfectly.
I think it's due to the second dash "-" in the package-name. As "pkg_info -a"-output parsing in the parser won't match with the package name, as well the "/usr/sbin/pkg_info vim" won't match.
$ pkg_info -a
bash-3.2.17 GNU Bourne Again Shell
gettext-0.14.6p0 GNU gettext
libiconv-1.9.2p3 character set conversion library
ntp-4.2.0ap3 network time protocol implementation
ruby-1.8.5p7 object oriented script language with threads
screen-4.0.3p0 multi-screen window manager
vim-7.1.33-no_x11 vi clone, many additional features
Debug output from a run:
debug: package provider openbsd: Executing '/usr/sbin/pkg_info vim'
debug: //default/immerda_default/base/vim/Package[vim]: Changing ensure
debug: //default/immerda_default/base/vim/Package[vim]: 1 change(s)
debug: //default/immerda_default/base/vim/Package[vim]/ensure: setting present (currently absent)
debug: package provider openbsd: Executing '/usr/sbin/pkg_add ftp://mirror.switch.ch/pub/OpenBSD/4.2/packages/i386/vim-7.1.33-no_x11.tgz'
notice: //default/immerda_default/base/vim/Package[vim]/ensure: created