class mumble::ecdhforce { vcsrepo { "/var/lib/mumble-server/ecdhforce": ensure => present, provider => git, source => 'https://github.com/ultramancool/ecdhforce.git', revision => '7b0d6564c21a1bc619307258b773da547842ebca', owner => root, group => mumble-server, require => Package[ 'mumble-server' ], } package { [ 'gcc', 'libssl-dev' ]: ensure => present, } exec { 'ecdhforce-compile': cwd => '/var/lib/mumble-server/ecdhforce', command => 'gcc -Wall -fPIC -DPIC -c ecdhforce.c', require => [ Vcsrepo['/var/lib/mumble-server/ecdhforce'], Package['gcc'], Package['libssl-dev'] ], creates => '/var/lib/mumble-server/ecdhforce/ecdhforce.o', user => root, group => root, } exec { 'ecdhforce-link': cwd => '/var/lib/mumble-server/ecdhforce', command => 'ld -shared -o ecdhforce.so ecdhforce.o -ldl', require => Exec['ecdhforce-compile'], creates => '/var/lib/mumble-server/ecdhforce/ecdhforce.so', user => root, group => root, } file { '/etc/default/mumble-server': ensure => present, owner => root, group => root, mode => '0644', source => "puppet:///modules/mumble/ecdhforce/mumble-server.${::operatingsystem}", require => Exec['ecdhforce-link'], notify => Service['mumble-server'], } }