summaryrefslogtreecommitdiff
path: root/sysutils/openvox-agent8/Makefile
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>