Gentoo Archives: gentoo-commits

From: Patrick McLean <chutzpah@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-admin/rsyslog/
Date: Tue, 03 May 2022 18:13:35
Message-Id: 1651601607.4b1ff6de50ea614df8ffc1c01e7e467b3483096c.chutzpah@gentoo
1 commit: 4b1ff6de50ea614df8ffc1c01e7e467b3483096c
2 Author: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
3 AuthorDate: Tue May 3 18:13:14 2022 +0000
4 Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
5 CommitDate: Tue May 3 18:13:27 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b1ff6de
7
8 app-admin/rsyslog: add 8.2204.0
9
10 Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
11
12 app-admin/rsyslog/Manifest | 2 +
13 app-admin/rsyslog/rsyslog-8.2204.0.ebuild | 485 ++++++++++++++++++++++++++++++
14 2 files changed, 487 insertions(+)
15
16 diff --git a/app-admin/rsyslog/Manifest b/app-admin/rsyslog/Manifest
17 index e95750e49d37..69d169d4cfe7 100644
18 --- a/app-admin/rsyslog/Manifest
19 +++ b/app-admin/rsyslog/Manifest
20 @@ -4,9 +4,11 @@ DIST rsyslog-8.2106.0.tar.gz 3180745 BLAKE2B a949c36e0c5251fa3cd7748387990b66756
21 DIST rsyslog-8.2108.0.tar.gz 3204178 BLAKE2B d120f2b20521a40fbe985a4ba751edd51ed5917fcd0db5d7abb35ecada3ada31f99d34f74cd3278736356e8f09f13b79ca2166e4732676a97655c189d257e3fa SHA512 95096660bc93f7808d22c39549d7429deb340ef8d706f08dc8be35f48d1c7e3d389907fdf18ba04dd54fb59c9780fdb267eef7985184f0e5932bf11f46c5423b
22 DIST rsyslog-8.2110.0.tar.gz 3217225 BLAKE2B df239609b7a5e08d2a5b1ab5823d45868ac75e1359876e032d4de633165878310f43bfacabab2df4b5657789f77dd2d93814d2fe2aa39e18b267b9bb9234c975 SHA512 b3ec40a272e1fee3034fb24a21ae6c773878b013c04bd01279f6b3bba65a98287c3497a3c4c3e46f8c91311117b3dc491a11a7e193f7ee0347b769c4162b48aa
23 DIST rsyslog-8.2112.0.tar.gz 3230105 BLAKE2B deee27f0b1e2b9783bef4d90e396c92c772465156ae8242172548794d628edb5d1e9a95d9ee2aeb2b301ec4b691572391ea7db7b1e8fdb1d14c65e3857857799 SHA512 32ee475d4ef34a68aa43997a97472d21f45c27052c528c1904786df608977189a53e8bb88f310dc2ebe3bf11857824e4e2188c5b85591a005b6977f90a6b17c3
24 +DIST rsyslog-8.2204.0.tar.gz 3242825 BLAKE2B 1e7a75f151053c28bf8e1215f8f1da58ee2232127b4edae6c1a59ff236b2ff0aea57fb175bcdde9a3bd3ce516015422a2eda1f857fdeb56489555de27cf2deda SHA512 d26ab950788b8931b895719f7d8a42509f709b69a76e4188df16f72be050863ee402310ad9300840fed4ac089638497725d67433172778be7b2932fa82210472
25 DIST rsyslog-doc-8.2102.0.tar.gz 6419104 BLAKE2B 134c7ccde6f7435b35840fa37f5774223ac1ebd7dc10db961900a7b1600483156518433c7f70d0981e96ea750e1916ab53e346abacf58066bf141e85c719ae00 SHA512 a5dc4fb9bd8892fac693c5692b926c8d7d9fa36667d6b4c6eccba750713af88d4317f6232efc2a16de38c2e58c4a8bc4d04c9ebb2e7ebc3b0878d53eef20dd2e
26 DIST rsyslog-doc-8.2104.0.tar.gz 6451275 BLAKE2B cb8a38b28caec17babd190e463070b862071a75c4c63a7208e56f039f84ae7a5c6045112697c61635d328e56d9427f692e67a9d6fefc94b59ad28481210f1481 SHA512 6c898fa606190c5cf214822503f060b1692cd907731858736a395511b66d7b0d1cf6dfcc90c4cecbe21b099197ae2187db53d719f44f85f26a1bd34971539d36
27 DIST rsyslog-doc-8.2106.0.tar.gz 6500747 BLAKE2B d004af40dfc82577fe262993b10497cbf50142295ccfc046126e0d8cc85dd964cca7798732d2f41ef9d776096b3ec99a8c835bb037a78c9030ea6cd596d1e057 SHA512 04c205ea463f7487baedf60d0469f3752edfb60a0833954a3f208d52ed6495152c785a4a8ea47396ac85b581ced0657f7b51d313c2d4295e26d547b996ff4ca3
28 DIST rsyslog-doc-8.2108.0.tar.gz 6527584 BLAKE2B b7974d2f723603017f1c725f820e03f355af1805d77143e6ff9eeb02e54a991ba4c143fc45b48b3e1625328e68113df36d71abd0763983a8db655081c5d81abc SHA512 d4ca8c91cbdd7be458083ffec9d933e5d1e175dff93fdf9274f5ca444c9cfe8710349c16de6edfd3e12cf97fc889a9e71059ef1d0b85fda4ed335fb107b98a9f
29 DIST rsyslog-doc-8.2110.0.tar.gz 6533014 BLAKE2B 16670903ddbbc14ef5ebc726964d1fa879849294401825a4e2c65e0ca06924830c2c882b98ab6eb6c2f639dfcf683b8c7659b49965b4280d441935126364ce9c SHA512 f0081b28d7394af30d4e1873a040208ec358d45c7336c69e99e2d6d4a2aae86a25a65d3c803b6570668e24625e50e01d5af3f9fa90f1c8cc82b45b1b6bd7a7e0
30 DIST rsyslog-doc-8.2112.0.tar.gz 6545985 BLAKE2B 4f6cfbbf8062a70faa67dd7168ad35bcbe2c81f80560ddb48229a332ce8ac861efe3bdaa1baeddbdd086c3e9ac8912746ba58bc64ab62f3caba8b8cc1b0014fd SHA512 8588d5fd1a79fce785db85ba162ed2fa9e5375590ee8e6d8569e75334d36683a1b977e930c096a6b3dac15596c066b46fc3105fcc5e8232ab11cf43c6eed3a55
31 +DIST rsyslog-doc-8.2204.0.tar.gz 6553264 BLAKE2B b4691a6bba44ec37bf310c4f7b307f85bc5d30954296ad62f77ff0f5041badf5fc40fc5680b940f6f3929da8956928dea890f7f2547f7db5e1e4141ef0855b48 SHA512 361528b95c1f02cdc2b2ca8ba5252c8215996e81ef1602e08c46be4e1fd8c1c287dd7d52ae9b2b58c0ec7fe38d7079a89e10642ac3f34fe0b6c5737968999fb4
32
33 diff --git a/app-admin/rsyslog/rsyslog-8.2204.0.ebuild b/app-admin/rsyslog/rsyslog-8.2204.0.ebuild
34 new file mode 100644
35 index 000000000000..c7c024706019
36 --- /dev/null
37 +++ b/app-admin/rsyslog/rsyslog-8.2204.0.ebuild
38 @@ -0,0 +1,485 @@
39 +# Copyright 1999-2022 Gentoo Authors
40 +# Distributed under the terms of the GNU General Public License v2
41 +
42 +EAPI="8"
43 +PYTHON_COMPAT=( python3_{7..10} )
44 +
45 +inherit autotools linux-info python-any-r1 systemd
46 +
47 +DESCRIPTION="An enhanced multi-threaded syslogd with database support and more"
48 +HOMEPAGE="https://www.rsyslog.com/"
49 +
50 +if [[ ${PV} == "9999" ]]; then
51 + EGIT_REPO_URI="https://github.com/rsyslog/${PN}.git"
52 +
53 + DOC_REPO_URI="https://github.com/rsyslog/${PN}-doc.git"
54 +
55 + inherit git-r3
56 +else
57 + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~x86"
58 +
59 + SRC_URI="
60 + https://www.rsyslog.com/files/download/${PN}/${P}.tar.gz
61 + doc? ( https://www.rsyslog.com/files/download/${PN}/${PN}-doc-${PV}.tar.gz )
62 + "
63 +fi
64 +
65 +LICENSE="GPL-3 LGPL-3 Apache-2.0"
66 +SLOT="0"
67 +
68 +IUSE="clickhouse curl dbi debug doc elasticsearch +gcrypt gnutls imhttp"
69 +IUSE+=" impcap jemalloc kafka kerberos kubernetes mdblookup"
70 +IUSE+=" mongodb mysql normalize omhttp omhttpfs omudpspoof +openssl"
71 +IUSE+=" postgres rabbitmq redis relp rfc3195 rfc5424hmac snmp +ssl"
72 +IUSE+=" systemd test usertools +uuid xxhash zeromq"
73 +
74 +RESTRICT="!test? ( test )"
75 +
76 +REQUIRED_USE="
77 + kubernetes? ( normalize )
78 + ssl? ( || ( gnutls openssl ) )
79 +"
80 +
81 +BDEPEND=">=sys-devel/autoconf-archive-2015.02.24
82 + virtual/pkgconfig
83 + elibc_musl? ( sys-libs/queue-standalone )
84 + test? (
85 + jemalloc? ( <sys-libs/libfaketime-0.9.7 )
86 + !jemalloc? ( sys-libs/libfaketime )
87 + ${PYTHON_DEPS}
88 + )"
89 +
90 +RDEPEND="
91 + >=dev-libs/libfastjson-0.99.8:=
92 + >=dev-libs/libestr-0.1.9
93 + >=sys-libs/zlib-1.2.5
94 + curl? ( >=net-misc/curl-7.35.0 )
95 + dbi? ( >=dev-db/libdbi-0.8.3 )
96 + elasticsearch? ( >=net-misc/curl-7.35.0 )
97 + gcrypt? ( >=dev-libs/libgcrypt-1.5.3:= )
98 + imhttp? (
99 + dev-libs/apr-util
100 + www-servers/civetweb
101 + virtual/libcrypt:=
102 + )
103 + impcap? ( net-libs/libpcap )
104 + jemalloc? ( >=dev-libs/jemalloc-3.3.1:= )
105 + kafka? ( >=dev-libs/librdkafka-0.9.0.99:= )
106 + kerberos? ( virtual/krb5 )
107 + kubernetes? ( >=net-misc/curl-7.35.0 )
108 + mdblookup? ( dev-libs/libmaxminddb:= )
109 + mongodb? ( >=dev-libs/mongo-c-driver-1.1.10:= )
110 + mysql? ( dev-db/mysql-connector-c:= )
111 + normalize? (
112 + >=dev-libs/liblognorm-2.0.3:=
113 + )
114 + clickhouse? ( >=net-misc/curl-7.35.0 )
115 + omhttpfs? ( >=net-misc/curl-7.35.0 )
116 + omudpspoof? ( >=net-libs/libnet-1.1.6 )
117 + postgres? ( >=dev-db/postgresql-8.4.20:= )
118 + rabbitmq? ( >=net-libs/rabbitmq-c-0.3.0:= )
119 + redis? ( >=dev-libs/hiredis-0.11.0:= )
120 + relp? ( >=dev-libs/librelp-1.2.17:= )
121 + rfc3195? ( >=dev-libs/liblogging-1.0.1:=[rfc3195] )
122 + rfc5424hmac? (
123 + >=dev-libs/openssl-0.9.8y:0=
124 + )
125 + snmp? ( >=net-analyzer/net-snmp-5.7.2 )
126 + ssl? (
127 + gnutls? ( >=net-libs/gnutls-2.12.23:0= )
128 + openssl? (
129 + dev-libs/openssl:0=
130 + )
131 + )
132 + systemd? ( >=sys-apps/systemd-234 )
133 + uuid? ( sys-apps/util-linux:0= )
134 + xxhash? ( dev-libs/xxhash:= )
135 + zeromq? (
136 + >=net-libs/czmq-4:=[drafts]
137 + )"
138 +
139 +DEPEND="${RDEPEND}"
140 +
141 +if [[ ${PV} == "9999" ]]; then
142 + BDEPEND+=" doc? ( >=dev-python/sphinx-1.1.3-r7 )"
143 + BDEPEND+=" >=sys-devel/flex-2.5.39-r1"
144 + BDEPEND+=" >=sys-devel/bison-2.4.3"
145 + BDEPEND+=" >=dev-python/docutils-0.12"
146 +fi
147 +
148 +CONFIG_CHECK="~INOTIFY_USER"
149 +WARNING_INOTIFY_USER="CONFIG_INOTIFY_USER isn't set. Imfile module on this system will only support polling mode!"
150 +
151 +pkg_setup() {
152 + use test && python-any-r1_pkg_setup
153 +}
154 +
155 +src_unpack() {
156 + if [[ ${PV} == "9999" ]]; then
157 + git-r3_fetch
158 + git-r3_checkout
159 + else
160 + unpack ${P}.tar.gz
161 + fi
162 +
163 + if use doc; then
164 + if [[ ${PV} == "9999" ]]; then
165 + local _EGIT_BRANCH=
166 + if [[ -n "${EGIT_BRANCH}" ]]; then
167 + # Cannot use rsyslog commits/branches for documentation repository
168 + _EGIT_BRANCH=${EGIT_BRANCH}
169 + unset EGIT_BRANCH
170 + fi
171 +
172 + git-r3_fetch "${DOC_REPO_URI}"
173 + git-r3_checkout "${DOC_REPO_URI}" "${S}"/docs
174 +
175 + if [[ -n "${_EGIT_BRANCH}" ]]; then
176 + # Restore previous EGIT_BRANCH information
177 + EGIT_BRANCH=${_EGIT_BRANCH}
178 + fi
179 + else
180 + cd "${S}" || die "Cannot change dir into '${S}'"
181 + mkdir docs || die "Failed to create docs directory"
182 + cd docs || die "Failed to change dir into '${S}/docs'"
183 + unpack ${PN}-doc-${PV}.tar.gz
184 + fi
185 + fi
186 +}
187 +
188 +src_prepare() {
189 + default
190 +
191 + # https://github.com/rsyslog/rsyslog/issues/3626
192 + sed -i \
193 + -e '\|^#!/bin/bash$|a exit 77' \
194 + tests/mmkubernetes-cache-expir*.sh \
195 + || die "Failed to disabled known test failure mmkubernetes-cache-expir*.sh"
196 +
197 + eautoreconf
198 +}
199 +
200 +src_configure() {
201 + # Maintainer notes:
202 + # * Guardtime support is missing because libgt isn't yet available
203 + # in portage.
204 + # * Hadoop's HDFS file system output module is currently not
205 + # supported in Gentoo because nobody is able to test it
206 + # (JAVA dependency).
207 + # * dev-libs/hiredis doesn't provide pkg-config (see #504614,
208 + # upstream PR 129 and 136) so we need to export HIREDIS_*
209 + # variables because rsyslog's build system depends on pkg-config.
210 +
211 + if use redis; then
212 + export HIREDIS_LIBS="-L${EPREFIX}/usr/$(get_libdir) -lhiredis"
213 + export HIREDIS_CFLAGS="-I${EPREFIX}/usr/include"
214 + fi
215 +
216 + local myeconfargs=(
217 + --disable-debug-symbols
218 + --disable-generate-man-pages
219 + --without-valgrind-testbench
220 + --disable-liblogging-stdlog
221 + $(use_enable test testbench)
222 + $(use_enable test libfaketime)
223 + $(use_enable test extended-tests)
224 + # Input Plugins without dependencies
225 + --enable-imbatchreport
226 + --enable-imdiag
227 + --enable-imfile
228 + --enable-improg
229 + --enable-impstats
230 + --enable-imptcp
231 + # Message Modificiation Plugins without dependencies
232 + --enable-mmanon
233 + --enable-mmaudit
234 + --enable-mmcount
235 + --enable-mmfields
236 + --enable-mmjsonparse
237 + --enable-mmpstrucdata
238 + --enable-mmrm1stspace
239 + --enable-mmsequence
240 + --enable-mmtaghostname
241 + --enable-mmutf8fix
242 + # Output Modification Plugins without dependencies
243 + --enable-mail
244 + --enable-omprog
245 + --enable-omruleset
246 + --enable-omstdout
247 + --enable-omuxsock
248 + # Misc
249 + --enable-fmhash
250 + --enable-fmunflatten
251 + $(use_enable xxhash fmhash-xxhash)
252 + --enable-pmaixforwardedfrom
253 + --enable-pmciscoios
254 + --enable-pmcisconames
255 + --enable-pmdb2diag
256 + --enable-pmlastmsg
257 + $(use_enable normalize pmnormalize)
258 + --enable-pmnull
259 + --enable-pmpanngfw
260 + --enable-pmsnare
261 + # DB
262 + $(use_enable dbi libdbi)
263 + $(use_enable mongodb ommongodb)
264 + $(use_enable mysql)
265 + $(use_enable postgres pgsql)
266 + $(use_enable redis imhiredis)
267 + $(use_enable redis omhiredis)
268 + # Debug
269 + $(use_enable debug)
270 + $(use_enable debug diagtools)
271 + $(use_enable debug valgrind)
272 + # Misc
273 + $(use_enable clickhouse)
274 + $(use_enable curl fmhttp)
275 + $(use_enable elasticsearch)
276 + $(use_enable gcrypt libgcrypt)
277 + $(use_enable imhttp)
278 + $(use_enable impcap)
279 + $(use_enable jemalloc)
280 + $(use_enable kafka imkafka)
281 + $(use_enable kafka omkafka)
282 + $(use_enable kerberos gssapi-krb5)
283 + $(use_enable kubernetes mmkubernetes)
284 + $(use_enable normalize mmnormalize)
285 + $(use_enable mdblookup mmdblookup)
286 + $(use_enable omhttp)
287 + $(use_enable omhttpfs)
288 + $(use_enable omudpspoof)
289 + $(use_enable rabbitmq omrabbitmq)
290 + $(use_enable relp)
291 + $(use_enable rfc3195)
292 + $(use_enable rfc5424hmac mmrfc5424addhmac)
293 + $(use_enable snmp)
294 + $(use_enable snmp mmsnmptrapd)
295 + $(use_enable gnutls)
296 + $(use_enable openssl)
297 + $(use_enable systemd imjournal)
298 + $(use_enable systemd omjournal)
299 + $(use_enable usertools)
300 + $(use_enable uuid)
301 + $(use_enable zeromq imczmq)
302 + $(use_enable zeromq omczmq)
303 + --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
304 + )
305 +
306 + econf "${myeconfargs[@]}"
307 +}
308 +
309 +src_compile() {
310 + default
311 +
312 + if use doc && [[ "${PV}" == "9999" ]]; then
313 + einfo "Building documentation ..."
314 + local doc_dir="${S}/docs"
315 + cd "${doc_dir}" || die "Cannot chdir into \"${doc_dir}\"!"
316 + sphinx-build -b html source build || die "Building documentation failed!"
317 + fi
318 +}
319 +
320 +src_test() {
321 + local _has_increased_ulimit=
322 +
323 + # Sometimes tests aren't executable (i.e. when added via patch)
324 + einfo "Adjusting permissions of test scripts ..."
325 + find "${S}"/tests -type f -name '*.sh' \! -perm -111 -exec chmod a+x '{}' \; || \
326 + die "Failed to adjust test scripts permission"
327 +
328 + if ulimit -n 3072; then
329 + _has_increased_ulimit="true"
330 + fi
331 +
332 + if ! emake --jobs 1 check; then
333 + eerror "Test suite failed! :("
334 +
335 + if [[ -z "${_has_increased_ulimit}" ]]; then
336 + eerror "Probably because open file limit couldn't be set to 3072."
337 + fi
338 +
339 + if has userpriv ${FEATURES}; then
340 + eerror "Please try to reproduce the test suite failure with FEATURES=-userpriv " \
341 + "before you submit a bug report."
342 + fi
343 +
344 + fi
345 +}
346 +
347 +src_install() {
348 + local DOCS=(
349 + AUTHORS
350 + ChangeLog
351 + "${FILESDIR}"/README.gentoo
352 + )
353 +
354 + use doc && local HTML_DOCS=( "${S}/docs/build/." )
355 +
356 + default
357 +
358 + newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
359 + newinitd "${FILESDIR}/${PN}.initd-r1" ${PN}
360 +
361 + systemd_newunit "${FILESDIR}/${PN}.service" ${PN}.service
362 +
363 + keepdir /var/empty/dev
364 + keepdir /var/spool/${PN}
365 + keepdir /etc/ssl/${PN}
366 + keepdir /etc/${PN}.d
367 +
368 + insinto /etc
369 + newins "${FILESDIR}/${PN}.conf" ${PN}.conf
370 +
371 + insinto /etc/rsyslog.d/
372 + newins "${FILESDIR}/50-default-r1.conf" 50-default.conf
373 +
374 + insinto /etc/logrotate.d/
375 + newins "${FILESDIR}/${PN}-r1.logrotate" ${PN}
376 +
377 + if use mysql; then
378 + insinto /usr/share/${PN}/scripts/mysql
379 + doins plugins/ommysql/createDB.sql
380 + fi
381 +
382 + if use postgres; then
383 + insinto /usr/share/${PN}/scripts/pgsql
384 + doins plugins/ompgsql/createDB.sql
385 + fi
386 +
387 + find "${ED}" -name '*.la' -delete || die
388 +}
389 +
390 +pkg_postinst() {
391 + local advertise_readme=0
392 +
393 + if [[ -z "${REPLACING_VERSIONS}" ]]; then
394 + # This is a new installation
395 +
396 + advertise_readme=1
397 +
398 + if use mysql || use postgres; then
399 + echo
400 + elog "Sample SQL scripts for MySQL & PostgreSQL have been installed to:"
401 + elog " /usr/share/doc/${PF}/scripts"
402 + fi
403 +
404 + if use ssl; then
405 + echo
406 + elog "To create a default CA and certificates for your server and clients, run:"
407 + elog " emerge --config =${PF}"
408 + elog "on your logging server. You can run it several times,"
409 + elog "once for each logging client. The client certificates will be signed"
410 + elog "using the CA certificate generated during the first run."
411 + fi
412 + fi
413 +
414 + if [[ ${advertise_readme} -gt 0 ]]; then
415 + # We need to show the README file location
416 +
417 + echo ""
418 + elog "Please read"
419 + elog ""
420 + elog " ${EPREFIX}/usr/share/doc/${PF}/README.gentoo*"
421 + elog ""
422 + elog "for more details."
423 + fi
424 +}
425 +
426 +pkg_config() {
427 + if ! use ssl; then
428 + einfo "There is nothing to configure for rsyslog unless you"
429 + einfo "used USE=ssl to build it."
430 + return 0
431 + fi
432 +
433 + if ! hash certtool &>/dev/null; then
434 + die "certtool not found! Is net-libs/gnutls[tools] is installed?"
435 + fi
436 +
437 + # Make sure the certificates directory exists
438 + local CERTDIR="${EROOT}/etc/ssl/${PN}"
439 + if [[ ! -d "${CERTDIR}" ]]; then
440 + mkdir "${CERTDIR}" || die
441 + fi
442 + einfo "Your certificates will be stored in ${CERTDIR}"
443 +
444 + # Create a default CA if needed
445 + if [[ ! -f "${CERTDIR}/${PN}_ca.cert.pem" ]]; then
446 + einfo "No CA key and certificate found in ${CERTDIR}, creating them for you..."
447 + certtool --generate-privkey \
448 + --outfile "${CERTDIR}/${PN}_ca.privkey.pem" || die
449 + chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
450 +
451 + cat > "${T}/${PF}.$$" <<- _EOF
452 + cn = Portage automated CA
453 + ca
454 + cert_signing_key
455 + expiration_days = 3650
456 + _EOF
457 +
458 + certtool --generate-self-signed \
459 + --load-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
460 + --outfile "${CERTDIR}/${PN}_ca.cert.pem" \
461 + --template "${T}/${PF}.$$" || die
462 + chmod 400 "${CERTDIR}/${PN}_ca.privkey.pem"
463 +
464 + # Create the server certificate
465 + echo
466 + einfon "Please type the Common Name of the SERVER you wish to create a certificate for: "
467 + read -r CN
468 +
469 + einfo "Creating private key and certificate for server ${CN}..."
470 + certtool --generate-privkey \
471 + --outfile "${CERTDIR}/${PN}_${CN}.key.pem" || die
472 + chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
473 +
474 + cat > "${T}/${PF}.$$" <<- _EOF
475 + cn = ${CN}
476 + tls_www_server
477 + dns_name = ${CN}
478 + expiration_days = 3650
479 + _EOF
480 +
481 + certtool --generate-certificate \
482 + --outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
483 + --load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
484 + --load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
485 + --load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
486 + --template "${T}/${PF}.$$" &>/dev/null
487 + chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
488 +
489 + else
490 + einfo "Found existing ${CERTDIR}/${PN}_ca.cert.pem, skipping CA and SERVER creation."
491 + fi
492 +
493 + # Create a client certificate
494 + echo
495 + einfon "Please type the Common Name of the CLIENT you wish to create a certificate for: "
496 + read -r CN
497 +
498 + einfo "Creating private key and certificate for client ${CN}..."
499 + certtool --generate-privkey \
500 + --outfile "${CERTDIR}/${PN}_${CN}.key.pem" || die
501 + chmod 400 "${CERTDIR}/${PN}_${CN}.key.pem"
502 +
503 + cat > "${T}/${PF}.$$" <<- _EOF
504 + cn = ${CN}
505 + tls_www_client
506 + dns_name = ${CN}
507 + expiration_days = 3650
508 + _EOF
509 +
510 + certtool --generate-certificate \
511 + --outfile "${CERTDIR}/${PN}_${CN}.cert.pem" \
512 + --load-privkey "${CERTDIR}/${PN}_${CN}.key.pem" \
513 + --load-ca-certificate "${CERTDIR}/${PN}_ca.cert.pem" \
514 + --load-ca-privkey "${CERTDIR}/${PN}_ca.privkey.pem" \
515 + --template "${T}/${PF}.$$" || die
516 + chmod 400 "${CERTDIR}/${PN}_${CN}.cert.pem"
517 +
518 + rm -f "${T}/${PF}.$$"
519 +
520 + echo
521 + einfo "Here is the documentation on how to encrypt your log traffic:"
522 + einfo " https://www.rsyslog.com/doc/rsyslog_tls.html"
523 +}