blob: 3534a5ac87653ae879b94e0d5b758fd61750f83b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI="5"
USE_RUBY="ruby20 ruby21"
RUBY_FAKEGEM_RECIPE_TEST="rspec"
inherit elisp-common xemacs-elisp-common eutils user ruby-fakegem versionator
DESCRIPTION="A system automation and configuration management software"
HOMEPAGE="http://puppetlabs.com/"
SRC_URI="http://downloads.puppetlabs.com/puppet/${P}.tar.gz"
LICENSE="Apache-2.0 GPL-2"
SLOT="0"
KEYWORDS="amd64 hppa ~ppc ~sparc ~x86"
IUSE="augeas diff doc emacs ldap minimal rrdtool selinux shadow sqlite vim-syntax xemacs"
ruby_add_rdepend "
dev-ruby/hiera
>=dev-ruby/rgen-0.7.0
>=dev-ruby/facter-1.6.2 <dev-ruby/facter-3
dev-ruby/json
augeas? ( dev-ruby/ruby-augeas )
diff? ( dev-ruby/diff-lcs )
doc? ( dev-ruby/rdoc )
ldap? ( dev-ruby/ruby-ldap )
shadow? ( dev-ruby/ruby-shadow )
sqlite? ( dev-ruby/sqlite3 )
virtual/ruby-ssl"
ruby_add_bdepend "test? ( dev-ruby/mocha )"
DEPEND="${DEPEND}
emacs? ( virtual/emacs )
xemacs? ( app-editors/xemacs )"
RDEPEND="${RDEPEND}
rrdtool? ( >=net-analyzer/rrdtool-1.2.23[ruby] )
selinux? (
sys-libs/libselinux[ruby]
sec-policy/selinux-puppet
)
vim-syntax? ( >=app-vim/puppet-syntax-3.0.1 )
>=app-portage/eix-0.18.0"
SITEFILE="50${PN}-mode-gentoo.el"
pkg_setup() {
enewgroup puppet
enewuser puppet -1 -1 /var/lib/puppet puppet
}
all_ruby_prepare() {
# Avoid spec that require unpackaged json-schema.
rm spec/lib/matchers/json.rb $( grep -Rl matchers/json spec) || die
# Avoid Rails specs to avoid this dependency and because they
# currently fail against Rails 4.1.
find spec -type f -name '*rails*' -o -name '*active_record*' | xargs rm || die
rm -r spec/unit/rails || die
rm spec/unit/parser/collector_spec.rb || die
# Avoid specs that can only run in the puppet.git repository. This
# should be narrowed down to the specific specs.
rm spec/integration/parser/compiler_spec.rb spec/integration/parser/future_compiler_spec.rb || die
# Avoid failing spec that need further investigation.
rm spec/unit/module_tool/metadata_spec.rb || die
}
all_ruby_compile() {
if use emacs ; then
elisp-compile ext/emacs/puppet-mode.el
fi
if use xemacs ; then
# Create a separate version for xemacs to be able to install
# emacs and xemacs in parallel.
mkdir ext/xemacs
cp ext/emacs/* ext/xemacs/
xemacs-elisp-compile ext/xemacs/puppet-mode.el
fi
}
each_ruby_install() {
each_fakegem_install
#${RUBY} install.rb --destdir="${D}" install || die
}
all_ruby_install() {
all_fakegem_install
#systemd stuffs
insinto /usr/lib/systemd/system
doins "${WORKDIR}/all/${P}/ext/systemd/puppet.service"
insinto /usr/lib/tmpfiles.d
newins "${FILESDIR}/tmpfiles.d" "puppet.conf"
newinitd "${FILESDIR}"/puppet.init-r1 puppet
# Initial configuration files
insinto /etc/puppet
# Location of log and data files
keepdir /var/log/puppet
fowners -R puppet:puppet /var/log/puppet
if use minimal ; then
rm "${ED}/etc/puppet/auth.conf"
else
insinto /usr/lib/systemd/system
doins "${WORKDIR}/all/${P}/ext/systemd/puppetmaster.service"
newinitd "${FILESDIR}"/puppetmaster.init-r1 puppetmaster
newconfd "${FILESDIR}"/puppetmaster.confd puppetmaster
insinto /etc/puppet
keepdir /etc/puppet/manifests
keepdir /etc/puppet/modules
keepdir /var/lib/puppet/ssl
keepdir /var/lib/puppet/facts
keepdir /var/lib/puppet/files
fowners -R puppet:puppet /var/lib/puppet
fperms 0750 /var/lib/puppet
fi
fperms 0750 /etc/puppet
fowners :puppet /etc/puppet
if use emacs ; then
elisp-install ${PN} ext/emacs/puppet-mode.el*
elisp-site-file-install "${FILESDIR}/${SITEFILE}"
fi
if use xemacs ; then
xemacs-elisp-install ${PN} ext/xemacs/puppet-mode.el*
xemacs-elisp-site-file-install "${FILESDIR}/${SITEFILE}"
fi
if use ldap ; then
insinto /etc/openldap/schema; doins ext/ldap/puppet.schema
fi
# ext and examples files
for f in $(find ext examples -type f) ; do
docinto "$(dirname ${f})"; dodoc "${f}"
done
}
pkg_postinst() {
elog
elog "Please, *don't* include the --ask option in EMERGE_EXTRA_OPTS as this could"
elog "cause puppet to hang while installing packages."
elog
elog "Portage Puppet module with Gentoo-specific resources:"
elog "http://forge.puppetlabs.com/gentoo/portage"
elog
if [ \
-f "${EPREFIX}/etc/puppet/puppetd.conf" -o \
-f "${EPREFIX}/etc/puppet/puppetmaster.conf" -o \
-f "${EPREFIX}/etc/puppet/puppetca.conf" \
] ; then
elog
elog "Please remove deprecated config files."
elog " /etc/puppet/puppetca.conf"
elog " /etc/puppet/puppetd.conf"
elog " /etc/puppet/puppetmasterd.conf"
elog
fi
if [ "$(get_major_version $REPLACING_VERSIONS)" = "2" ]; then
elog
elog "If you're upgrading from 2.x then we strongly suggest you to read:"
elog "http://docs.puppetlabs.com/guides/upgrading.html"
elog
fi
use emacs && elisp-site-regen
use xemacs && xemacs-elisp-site-regen
}
pkg_postrm() {
use emacs && elisp-site-regen
use xemacs && xemacs-elisp-site-regen
}
|