blob: b2ac6deb045f5da1f0689a9ff4f0cd63d605c463 (
plain) (
blame)
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
|
PORTNAME= openvox-agent
PORTVERSION= 8.22.0
CATEGORIES= sysutils
MASTER_SITES= https://forge.puppet.com/v3/files/:forge
PKGNAMESUFFIX= 8
MAINTAINER= puppet@FreeBSD.org
COMMENT= Configuration management framework written in Ruby
WWW= https://github.com/OpenVoxProject/openvox
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
RUN_DEPENDS= rubygem-base64>=0.1:converters/rubygem-base64 \
rubygem-benchmark>=0.1:benchmarks/rubygem-benchmark \
rubygem-concurrent-ruby>1.0:devel/rubygem-concurrent-ruby \
rubygem-deep_merge>1.0:devel/rubygem-deep_merge \
rubygem-fast_gettext>=2.1:devel/rubygem-fast_gettext \
rubygem-getoptlong>=0.2.0:devel/rubygem-getoptlong \
rubygem-locale>=2.1:devel/rubygem-locale \
rubygem-multi_json>=1.13:devel/rubygem-multi_json \
rubygem-openfact>=5.0.0:sysutils/rubygem-openfact \
rubygem-ostruct>=0.6.0:devel/rubygem-ostruct \
rubygem-puppet-resource_api>=1.5:devel/rubygem-puppet-resource_api \
rubygem-racc>=1.5:devel/rubygem-racc \
rubygem-ruby-augeas>=0:textproc/rubygem-ruby-augeas \
rubygem-scanf>=1.0:devel/rubygem-scanf \
rubygem-semantic_puppet>=1.0:devel/rubygem-semantic_puppet
# Ruby 3.4 support
RUN_DEPENDS+= rubygem-syslog>=0.3:devel/rubygem-syslog
USES= cpe ruby
USE_GITHUB= yes
GH_ACCOUNT= OpenVoxProject
GH_PROJECT= openvox
CONFLICTS_INSTALL= openvox-agent[0-9] puppet[0-9]
PLIST_SUB= PORTVERSION="${PORTVERSION}"
NO_ARCH= yes
NO_BUILD= yes
USE_RC_SUBR= puppet
PORTDOCS= LICENSE README.md
PORTEXAMPLES= *
USERS= puppet
GROUPS= puppet
SUB_FILES+= pkg-message
SUB_LIST= RUBY=${RUBY}
DATADIR= ${PREFIX}/share/puppet
ETCDIR= ${PREFIX}/etc/puppet
OPTIONS_DEFINE= DOCS EXAMPLES
# Get versions from
# https://github.com/OpenVoxProject/openvox-agent/tree/main/configs/components
# for f in configs/components/module-puppetlabs-*.json; do echo ${${f#*/module-puppetlabs-}%.json}=${${$(jq .ref $f)#*/v}%\"}; done
FORGE_MODULES= augeas_core=1.5.0 \
cron_core=1.3.0 \
host_core=1.3.0 \
mount_core=1.3.0 \
scheduled_task=3.2.0 \
selinux_core=1.4.0 \
sshkeys_core=2.5.0 \
yumrepo_core=2.1.0 \
zfs_core=1.5.0 \
zone_core=1.2.0
.for module in ${FORGE_MODULES}
DISTFILES+= puppetlabs-${module:C/=.*//}-${module:C/.*=//}.tar.gz:forge
.endfor
post-patch:
@${REINPLACE_CMD} -e "s|/etc/puppetlabs/puppet|${ETCDIR}|" \
${WRKSRC}/install.rb \
${WRKSRC}/lib/puppet/reference/configuration.rb \
${WRKSRC}/lib/puppet/util/run_mode.rb
@${REINPLACE_CMD} -e "s|/etc/puppetlabs/code|${ETCDIR}|" \
${WRKSRC}/install.rb \
${WRKSRC}/lib/puppet/reference/configuration.rb \
${WRKSRC}/lib/puppet/util/run_mode.rb
@${REINPLACE_CMD} -e "s|/opt/puppetlabs/puppet/cache|/var/puppet|" \
${WRKSRC}/install.rb \
${WRKSRC}/lib/puppet/reference/configuration.rb \
${WRKSRC}/lib/puppet/util/run_mode.rb
@${REINPLACE_CMD} -e "s|/var/run/puppetlabs|/var/run/puppet|" \
${WRKSRC}/install.rb \
${WRKSRC}/lib/puppet/util/run_mode.rb
@${REINPLACE_CMD} -e "s|/var/log/puppetlabs/puppet|/var/log/puppet|" \
${WRKSRC}/install.rb \
${WRKSRC}/lib/puppet/util/run_mode.rb
@${REINPLACE_CMD} -e "s|/opt/puppetlabs/puppet/public|/var/puppet/state|" \
-e "s|/opt/puppetlabs/puppet/modules|${ETCDIR}/vendor_modules|" \
-e "s|/opt/puppetlabs/puppet/vendor_modules|${ETCDIR}/vendor_modules|" \
${WRKSRC}/install.rb \
${WRKSRC}/lib/puppet/util/run_mode.rb
@${REINPLACE_CMD} -e "s|/opt/puppetlabs/puppet/modules|${ETCDIR}/modules|" \
-e "s|/etc/puppetlabs/puppetserver/ca|/var/puppetserver/ca|" \
${WRKSRC}/lib/puppet/defaults.rb
@${REINPLACE_CMD} -e "s|/opt/puppetlabs/puppet/bin/gem|${LOCALBASE}/bin/gem|" \
${WRKSRC}/lib/puppet/provider/package/puppet_gem.rb
@${REINPLACE_CMD} -e "s|\$$confdir/ssl|/var/puppet/ssl|" \
${WRKSRC}/lib/puppet/defaults.rb
@${REINPLACE_CMD} -e "s|\.\./\.\./\.\./locales|../locales|" \
${WRKSRC}/lib/puppet/gettext/config.rb
do-install:
@cd ${WRKSRC} && ${SETENV} PREFIX=${PREFIX} LC_ALL=C.UTF-8 ${RUBY} ${WRKSRC}/install.rb --no-configs --destdir=${STAGEDIR} \
--localedir=${RUBY_SITELIBDIR}/puppet/locales --publicdir=/var/puppet/state/
post-install:
${MKDIR} ${STAGEDIR}${ETCDIR}/manifests
${MKDIR} ${STAGEDIR}${ETCDIR}/modules
${MKDIR} ${STAGEDIR}${ETCDIR}/vendor_modules
.for module in ${FORGE_MODULES}
(cd ${WRKDIR}/puppetlabs-${module:C/=.*//}-${module:C/.*=//} && ${COPYTREE_SHARE} . ${STAGEDIR}${ETCDIR}/vendor_modules/${module:C/=.*//})
.endfor
${MKDIR} ${STAGEDIR}/var/puppet
${SETENV} LC_ALL=C.UTF-8 ${RUBY} -I ${STAGEDIR}/${RUBY_SITELIBDIR} ${STAGEDIR}${PREFIX}/bin/puppet agent --genconfig \
--confdir=${ETCDIR} \
--rundir=/var/run/puppet \
--vardir=/var/puppet \
--logdir=/var/log/puppet \
--codedir=${ETCDIR} \
> ${STAGEDIR}${ETCDIR}/puppet.conf-dist
@${ECHO} ${STAGEDIR}${RUBY_SITELIBDIR}/puppet.rb | \
${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
@${FIND} ${STAGEDIR}${RUBY_SITELIBDIR}/puppet -type f | \
${SED} 's,^${STAGEDIR}${PREFIX}/,,' >> ${TMPPLIST}
${MKDIR} ${STAGEDIR}${PREFIX}/lib/ruby/gems/${RUBY_VER}/specifications
${INSTALL_DATA} ${WRKSRC}/openvox.gemspec ${STAGEDIR}${PREFIX}/lib/ruby/gems/${RUBY_VER}/specifications/openvox-${PORTVERSION}.gemspec
post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
cd ${WRKSRC} && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
post-install-EXAMPLES-on:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
.include <bsd.port.mk>
|