I want to put the versioned controller puppet configuration in /srv/puppet and then symlink /etc/puppet/manifests to /srv/puppet/manifests. The problem is that when puppetmasterd starts it removes the symlinks and creates an /etc/puppet/manifests directory. I can see it doing this when running "puppetmasterd --debug". The interesting thing is that it loads all the manifest files before doing this. My guess the problem is the autorequire of /etc/puppet/manifests as a directory.
debug: /puppetconfig/puppetmasterd/File[/etc/puppet/manifests/site.pp]: Autorequiring File[/etc/puppet/manifests]
debug: /puppetconfig/puppetmasterd/File[/etc/puppet/modules:/usr/share/puppet/modules]: File does not exist
debug: /puppetconfig/puppetmasterd/File[/etc/puppet/manifests]: Changing ensure
debug: /puppetconfig/puppetmasterd/File[/etc/puppet/manifests]: 1 change(s)
debug: /puppetconfig/puppetmasterd/File[/etc/puppet/manifests]: Removing existing link for replacement with directory
debug: /puppetconfig/puppetmasterd/File[/etc/puppet/manifests]/ensure: setting directory (currently absent)
debug: /puppetconfig/puppetmasterd/File[/etc/puppet/manifests]/ensure: ensure changed 'link' to 'directory'
debug: /puppetconfig/puppetmasterd/File[/etc/puppet/manifests/site.pp]: File does not exist