public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: net-irc/unrealircd/, net-irc/unrealircd/files/
@ 2018-10-11 12:19 Michael Palimaka
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Palimaka @ 2018-10-11 12:19 UTC (permalink / raw
  To: gentoo-commits

commit:     73e4184262bdb92c08fe83d2b9cd06f6a12ccb73
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 11 12:18:35 2018 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Thu Oct 11 12:18:54 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73e41842

net-irc/unrealircd: revision bump to resolve CVE-2017-13649

Bug: https://bugs.gentoo.org/628434
Signed-off-by: Michael Palimaka <kensington <AT> gentoo.org>
Package-Manager: Portage-2.3.49, Repoman-2.3.11

 net-irc/unrealircd/files/unrealircd.confd-r3   |  32 +++++
 net-irc/unrealircd/files/unrealircd.initd-r2   |  38 +++++
 net-irc/unrealircd/unrealircd-4.0.18-r1.ebuild | 184 +++++++++++++++++++++++++
 3 files changed, 254 insertions(+)

diff --git a/net-irc/unrealircd/files/unrealircd.confd-r3 b/net-irc/unrealircd/files/unrealircd.confd-r3
new file mode 100644
index 00000000000..66d9878f014
--- /dev/null
+++ b/net-irc/unrealircd/files/unrealircd.confd-r3
@@ -0,0 +1,32 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Which configuration file to load instead of unrealircd.conf. If you
+# want to run multiple instances of unrealircd, you must edit
+# files::pidfile to match UNREALIRCD_PIDFILE. You should also ensure
+# that files::tunefile is different for each unrealircd instance. See
+# https://www.unrealircd.org/docs/Configuration#Files_block
+#
+# To support multiple instances of unrealircd, you may create symlinks
+# in /etc/init.d pointing to /etc/init.d/unrealircd. It is recommended
+# that the scheme unrealircd.${instance_name} be used. For each
+# instance, you may make a copy of this file with the appropriate name
+# to override default options specific to that instance.
+UNREALIRCD_CONF="/etc/unrealircd/${SVCNAME}.conf"
+
+# The path where unrealircd is configured to create its pidfile.
+UNREALIRCD_PIDFILE="/run/unrealircd/${SVCNAME#unreal}.pid"
+
+# extra options to pass to unrealircd ...
+# You should not specify the -f option here; use
+# UNREALIRCD_CONF instead.
+#
+# [-h servername]
+# [-p portnumber]
+# [-x loglevel]
+# [-t] (to enable debug output)
+UNREALIRCD_OPTS=""
+
+# Extra flags to pass to start-stop-daemon. When initially
+# debugging, removing --quiet may help.
+UNREALIRCD_SSD_OPTS="--quiet"

diff --git a/net-irc/unrealircd/files/unrealircd.initd-r2 b/net-irc/unrealircd/files/unrealircd.initd-r2
new file mode 100644
index 00000000000..7d733a6e185
--- /dev/null
+++ b/net-irc/unrealircd/files/unrealircd.initd-r2
@@ -0,0 +1,38 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Defaults
+: ${UNREALIRCD_CONF:=/etc/unrealircd/${SVCNAME}.conf}
+: ${UNREALIRCD_PIDFILE:=/run/unrealircd/${SVCNAME#unreal}.pid}
+
+command="/usr/bin/unrealircd"
+# Run the daemon in the foreground and let OpenRC background it.
+# This way the PID file is created securely, as root.
+command_args="-F -f ${UNREALIRCD_CONF} ${UNREALIRCD_OPTS}"
+command_user=unrealircd
+command_background=true
+pidfile="${UNREALIRCD_PIDFILE}"
+start_stop_daemon_args="${UNREALIRCD_SSD_OPTS}"
+extra_started_commands="reload"
+
+depend() {
+	use dns net
+	provide ircd
+}
+
+# It is unsafe for the unrealircd user to be able to write to its own
+# PID file, since root will be sending e.g. kill signals to the PID
+# listed in that file. Ensure that we overwrite the ownership and
+# permissions on /run/unrealircd from previous init scripts.
+start_pre() {
+	checkpath --directory --owner root:root --mode 0700 /run/unrealircd
+}
+
+reload() {
+	ebegin "Reloading ${RC_SVCNAME}"
+	start-stop-daemon --signal HUP \
+			  --pidfile "${pidfile}" \
+			  ${UNREALIRCD_SSD_OPTS}
+	eend $?
+}

diff --git a/net-irc/unrealircd/unrealircd-4.0.18-r1.ebuild b/net-irc/unrealircd/unrealircd-4.0.18-r1.ebuild
new file mode 100644
index 00000000000..5c496d96d30
--- /dev/null
+++ b/net-irc/unrealircd/unrealircd-4.0.18-r1.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+SSL_CERT_MANDATORY=1
+inherit ssl-cert user versionator
+
+DESCRIPTION="An advanced Internet Relay Chat daemon"
+HOMEPAGE="https://www.unrealircd.org/"
+SRC_URI="https://www.unrealircd.org/${PN}$(get_version_component_range 1)/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd ~amd64-linux"
+IUSE="class-nofakelag curl +extban-stacking +operoverride operoverride-verify +prefixaq
+	showlistmodes shunnotices topicisnuhost +usermod"
+
+RDEPEND="
+	dev-libs/openssl:0=
+	dev-libs/libpcre2
+	dev-libs/tre
+	>=net-dns/c-ares-1.7:=
+	sys-libs/zlib
+	curl? ( net-misc/curl[adns] )
+"
+DEPEND="${RDEPEND}
+	virtual/pkgconfig
+"
+
+DOCS=( doc/{Authors,Donation,RELEASE-NOTES{,.old},tao.of.irc,technical/,translations.txt} )
+
+pkg_pretend() {
+	local v
+	for v in ${REPLACING_VERSIONS}; do
+		version_is_at_least 4 "${v}" && continue
+		ewarn "The configuration file format has changed since ${v}."
+		ewarn "Please be prepared to manually update them and visit:"
+		ewarn "https://www.unrealircd.org/docs/Upgrading_from_3.2.x"
+		break
+	done
+}
+
+pkg_setup() {
+	enewuser unrealircd
+}
+
+src_prepare() {
+	# QA check against bundled pkgs
+	rm -r extras || die
+
+	if use class-nofakelag; then
+		sed -i -e 's:#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
+	fi
+
+	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
+	# that to look for ca-certificates-provided file instead. %s is
+	# CONFDIR. #618066
+	sed -i -e 's:%s/ssl/curl-ca-bundle.crt:%s/../ssl/certs/ca-certificates.crt:' src/s_conf.c || die
+
+	eapply_user
+}
+
+src_configure() {
+	# Default value for privatelibdir adds a build path to -Wl,-rpath.
+	econf \
+		--with-bindir="${EPREFIX}"/usr/bin \
+		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
+		--with-confdir="${EPREFIX}"/etc/${PN} \
+		--with-datadir="${EPREFIX}"/var/lib/${PN} \
+		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
+		--with-logdir="${EPREFIX}"/var/log/${PN} \
+		--with-modulesdir="${EPREFIX}"/usr/"$(get_libdir)"/${PN}/modules \
+		--without-privatelibdir \
+		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
+		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
+		--with-nick-history=2000 \
+		--with-sendq=3000000 \
+		--with-permissions=0640 \
+		--with-fd-setsize=1024 \
+		--with-system-cares \
+		--with-system-pcre2 \
+		--with-system-tre \
+		--enable-dynamic-linking \
+		--enable-ssl="${EPREFIX}"/usr \
+		$(use_enable curl libcurl "${EPREFIX}"/usr) \
+		$(use_enable prefixaq) \
+		$(use_with showlistmodes) \
+		$(use_with topicisnuhost) \
+		$(use_with shunnotices) \
+		$(use_with !operoverride no-operoverride) \
+		$(use_with operoverride-verify) \
+		$(use_with !usermod disableusermod) \
+		$(use_with !extban-stacking disable-extendedban-stacking)
+}
+
+src_install() {
+	keepdir /var/log/${PN}
+	keepdir /var/lib/${PN}/tmp
+
+	newbin src/ircd ${PN}
+
+	(
+		cd src/modules || die
+		for subdir in $(find . -type d -print); do
+			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
+				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
+				doexe "${subdir}"/*.so
+			fi
+		done
+	)
+
+	insinto /etc/${PN}
+	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
+	# is redundant with app-misc/ca-certificates and examples will all
+	# be in docs anyway.
+	doins -r doc/conf/{aliases,help}
+	doins doc/conf/*.conf
+	newins doc/conf/examples/example.conf ${PN}.conf
+	keepdir /etc/${PN}/ssl
+
+	einstalldocs
+
+	newinitd "${FILESDIR}"/${PN}.initd-r2 ${PN}
+	newconfd "${FILESDIR}"/${PN}.confd-r3 ${PN}
+
+	# config should be read-only
+	fperms -R 0640 /etc/${PN}
+	fperms 0750 /etc/${PN}{,/aliases,/help}
+	fperms 0750 /etc/${PN}/ssl
+	# state is editable but not owned by unrealircd directly
+	fperms 0770 /var/log/${PN}
+	fperms 0770 /var/lib/${PN}{,/tmp}
+	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
+}
+
+pkg_postinst() {
+	# Move docert call from src_install() to install_cert in pkg_postinst for
+	# bug #201682
+	if [[ ! -f "${EROOT}"etc/${PN}/ssl/server.cert.key ]]; then
+		if [[ -f "${EROOT}"etc/${PN}/server.cert.key ]]; then
+			ewarn "The location ${PN} looks for SSL certificates has changed"
+			ewarn "from ${EROOT}etc/${PN} to ${EROOT}etc/${PN}/ssl."
+			ewarn "Please move your existing certificates."
+		else
+			(
+				umask 0037
+				install_cert /etc/${PN}/ssl/server.cert
+				chown unrealircd "${EROOT}"etc/${PN}/ssl/server.cert.*
+				ln -snf server.cert.key "${EROOT}"etc/${PN}/ssl/server.key.pem
+			)
+		fi
+	fi
+
+	local unrealircd_conf="${EROOT}"etc/${PN}/${PN}.conf
+	# Fix up the default cloak keys.
+	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";$' "${unrealircd_conf}"; then
+		ebegin "Generating cloak-keys"
+		local keys=(
+			$(su ${PN} -s /bin/sh -c "${PN} -k 2>&1 | tail -n 3")
+		)
+		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
+		eend $?
+
+		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
+		sed -i \
+			-e '/cloak-keys/ {
+n
+s/"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";/"'"${keys[0]}"'";/
+n
+s/"and another one";/"'"${keys[1]}"'";/
+n
+s/"and another one";/"'"${keys[2]}"'";/
+}' \
+			"${unrealircd_conf}"
+		eend $?
+	fi
+
+	elog "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
+	elog
+	elog "You can also configure ${PN} start at boot with rc-update(1)."
+	elog "It is recommended to run unrealircd as an unprivileged user."
+	elog "The provided init.d script does this for you."
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-irc/unrealircd/, net-irc/unrealircd/files/
@ 2022-12-18  6:30 Sam James
  0 siblings, 0 replies; 6+ messages in thread
From: Sam James @ 2022-12-18  6:30 UTC (permalink / raw
  To: gentoo-commits

commit:     9442449150fd9f0a061dbf632df3c1adcccd6211
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 18 06:22:06 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Dec 18 06:22:21 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=94424491

net-irc/unrealircd: add 6.0.4.2

Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-irc/unrealircd/Manifest                        |   2 +
 .../unrealircd-6.0.4.2-configure-clang16.patch     |  64 +++++++
 net-irc/unrealircd/unrealircd-6.0.4.2.ebuild       | 195 +++++++++++++++++++++
 3 files changed, 261 insertions(+)

diff --git a/net-irc/unrealircd/Manifest b/net-irc/unrealircd/Manifest
index 3c494d94f4b9..6b3d222fc2da 100644
--- a/net-irc/unrealircd/Manifest
+++ b/net-irc/unrealircd/Manifest
@@ -2,3 +2,5 @@ DIST unrealircd-5.2.4.tar.gz 7201203 BLAKE2B 06afc8b5e28bbd56971b2ce21da3e000e39
 DIST unrealircd-5.2.4.tar.gz.asc 866 BLAKE2B 9fc520e93f80a548650b016690036c4e9957e81095f75c34489eb0b83d28548a891196469199cf354207c44b22aaeecfc696995842e9b278ab10fdf5bdb8d7f6 SHA512 0d85a668e2cc3f3d736f3a321e282ecb1fd94d5f605e0e40e8c84a17a6486f8e0d299ec673fe7688fca3ead847f432144ff077547cc90321534406fbe084804b
 DIST unrealircd-6.0.4.1.tar.gz 8696975 BLAKE2B 2ca38b2eed09747f419cb9c7e338e10687541c981cce6425e266a1e0597c3a3eb36882a0d1da43a9b829aa855289887d28206b7e7298cf310e84703b1d4e7d5c SHA512 c2da78e785ddd7dd1567dd4cbc6bf44d8013c84334ee2ed836bb2b265bb79cf2db620570e3e626d77389ea820365dec3cd84d27f219df0a38d6d0e364e99a3cc
 DIST unrealircd-6.0.4.1.tar.gz.asc 866 BLAKE2B 018dd63bd02261fb390e98ebafaf9d712d30984a2034f8e4ee3c4125cf67b0dba4113f84f62e2b4ef3a42e10123f61e985ed5da42a234fe5fef30184af48520b SHA512 50d98bcff738307f866ff838944bf574613fb99fa8f3a7cd34272245924f70c0c56eea6376c704c56c920f6411870f259f89155b811d6bab2d34f770fcb6e0f8
+DIST unrealircd-6.0.4.2.tar.gz 8698501 BLAKE2B e5252dc3e4b332adbbd5a2d435d5be14a7745777dd53b8fa72b79d4cba2c1c92c0f9381b62b9c3031f48347f2ce7086d44f619cb4ec1b4f3a4cd2020f391643b SHA512 2677834660f9e6123ddf5121d9a46908f6071070cc9da085884d6c6ccec9fefc5429effa2890527a1e162984f1c5cd57bcd9cd488e8713613af84fb6d507207d
+DIST unrealircd-6.0.4.2.tar.gz.asc 866 BLAKE2B cdfee99a09479d6099ef42e4caa05024b682f35a7d6302b1baa2ac4697b2b430856d9cbd00f0361360050ce5f2a0478dd9c6e1dbb86ec5714de24e5edcfeaeb7 SHA512 3bbad079c486bd072694f246306094a5cdfc7648f49a9ec40743453bec78173454667243a05870a8a19320b31843dfcd15d962d04758cf97cccd8854dbfdfea4

diff --git a/net-irc/unrealircd/files/unrealircd-6.0.4.2-configure-clang16.patch b/net-irc/unrealircd/files/unrealircd-6.0.4.2-configure-clang16.patch
new file mode 100644
index 000000000000..d884a1000b52
--- /dev/null
+++ b/net-irc/unrealircd/files/unrealircd-6.0.4.2-configure-clang16.patch
@@ -0,0 +1,64 @@
+https://github.com/unrealircd/unrealircd/pull/242
+
+From 3246e472842237ac9e655e254380c4dd8fea7abc Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sun, 18 Dec 2022 06:18:51 +0000
+Subject: [PATCH] configure.ac: fix -Wimplicit-function-declaration
+
+Clang 16 makes -Wimplicit-function-declaration error by default.
+
+Unfortunately, this can lead to misconfiguration or miscompilation of software as configure
+tests may then return the wrong result.
+
+We also fix -Wstrict-prototypes while here as it's easy to do and it prepares
+us for C23.
+
+Fixes the following:
+```
+configure:6250: checking if your system has IPv6 support
+configure:6275: x86_64-pc-linux-gnu-gcc -o conftest -O2 -pipe -march=native -fdiagnostics-color=always -frecord-gcc-switches -Wreturn-type      -ggdb3 -Werror=implicit-function-declaration -Werror=implicit-int -fno-strict-aliasing -fno-common -funsigned-char -Wall -Wextra -Waggregate-return -Wformat-nonliteral -Wduplicated-cond -Wduplicated-branches -Wparentheses -Wno-pointer-sign -Wno-format-zero-length -Wno-format-truncation -Wno-format-overflow -Wno-unused -Wno-unused-parameter -Wno-unused-but-set-parameter -Wno-char-subscripts -Wno-sign-compare -Wno-empty-body -Wno-pragmas  -Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -Wl,-z,pack-relative-relocs conftest.c  >&5
+conftest.c: In function 'main':
+conftest.c:30:1: error: implicit declaration of function 'exit' [-Werror=implicit-function-declaration]
+   30 | exit(0); /* We only check if the code compiles, that's enough. We can deal with missing runtime IPv6 */
+      | ^~~~
+conftest.c:28:1: note: include '<stdlib.h>' or provide a declaration of 'exit'
+   27 | #include <sys/socket.h>
+  +++ |+#include <stdlib.h>
+   28 | int main() {
+conftest.c:30:1: warning: incompatible implicit declaration of built-in function 'exit' [-Wbuiltin-declaration-mismatch]
+   30 | exit(0); /* We only check if the code compiles, that's enough. We can deal with missing runtime IPv6 */
+      | ^~~~
+conftest.c:30:1: note: include '<stdlib.h>' or provide a declaration of 'exit'
+cc1: some warnings being treated as errors
+configure:6275: $? = 1
+```
+
+For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2],
+or the (new) c-std-porting mailing list [3].
+
+[0] https://lwn.net/Articles/913505/
+[1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213
+[2] https://wiki.gentoo.org/wiki/Modern_C_porting
+[3] hosted at lists.linux.dev.
+--- a/configure.ac
++++ b/configure.ac
+@@ -326,7 +326,7 @@ fi
+ ])
+ AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[
+ cat >uscore.c << __EOF__
+-int main() {
++int main(void) {
+ 	return 0;
+ }
+ __EOF__
+@@ -354,7 +354,8 @@ AC_CACHE_CHECK([if your system has IPv6 support], [ac_cv_ip6], [
+ AC_TRY_RUN([
+ #include <sys/types.h>
+ #include <sys/socket.h>
+-int main() {
++#include <stdlib.h>
++int main(void) {
+ int s = socket(AF_INET6, SOCK_STREAM, 0);
+ exit(0); /* We only check if the code compiles, that's enough. We can deal with missing runtime IPv6 */
+ }
+

diff --git a/net-irc/unrealircd/unrealircd-6.0.4.2.ebuild b/net-irc/unrealircd/unrealircd-6.0.4.2.ebuild
new file mode 100644
index 000000000000..17d16a6be9ce
--- /dev/null
+++ b/net-irc/unrealircd/unrealircd-6.0.4.2.ebuild
@@ -0,0 +1,195 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+SSL_CERT_MANDATORY=1
+VERIFY_SIG_OPENPGP_KEY_PATH="${BROOT}"/usr/share/openpgp-keys/unrealircd.asc
+inherit autotools ssl-cert systemd tmpfiles verify-sig
+
+DESCRIPTION="An advanced Internet Relay Chat daemon"
+HOMEPAGE="https://www.unrealircd.org/"
+SRC_URI="https://www.unrealircd.org/downloads/${P}.tar.gz"
+SRC_URI+=" verify-sig? ( https://www.unrealircd.org/downloads/${P}.tar.gz.asc )"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~amd64-linux"
+IUSE="class-nofakelag curl geoip +operoverride operoverride-verify"
+
+RDEPEND="
+	acct-group/unrealircd
+	acct-user/unrealircd
+	>=app-crypt/argon2-20171227-r1:=
+	dev-libs/libpcre2
+	dev-libs/libsodium:=
+	dev-libs/openssl:=
+	dev-libs/jansson:=
+	>=net-dns/c-ares-1.7:=
+	virtual/libcrypt:=
+	curl? ( net-misc/curl[adns] )
+	geoip? ( dev-libs/libmaxminddb )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+	virtual/pkgconfig
+	verify-sig? ( sec-keys/openpgp-keys-unrealircd )
+"
+
+DOCS=( doc/{Authors,Donation,RELEASE-NOTES.md,tao.of.irc,technical/,translations.txt} )
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.0.4.2-configure-clang16.patch
+)
+
+src_prepare() {
+	# QA check against bundled pkgs
+	rm -r extras || die
+
+	# building third-party modules (which we don't do) cause a sandbox violation
+	# bug 704444
+	echo "" > src/buildmod || die
+
+	sed -e 's/$(MODULEFLAGS)/$(LDFLAGS) &/' -i src/modules/{,*/}Makefile.in || die
+
+	if use class-nofakelag; then
+		sed -i -e 's:^//#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
+	fi
+
+	# File is missing from the 5.0.9.1 tarball
+	sed -i -e '/unrealircd-upgrade-script/d' configure.ac || die
+
+	default
+	eautoreconf
+}
+
+src_configure() {
+	# Default value for privatelibdir adds a build path to -Wl,-rpath.
+	econf \
+		--with-bindir="${EPREFIX}"/usr/bin \
+		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
+		--with-confdir="${EPREFIX}"/etc/${PN} \
+		--with-datadir="${EPREFIX}"/var/lib/${PN} \
+		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
+		--with-logdir="${EPREFIX}"/var/log/${PN} \
+		--with-modulesdir="${EPREFIX}/usr/$(get_libdir)"/${PN}/modules \
+		--without-privatelibdir \
+		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
+		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
+		--with-maxconnections=1024 \
+		--with-nick-history=2000 \
+		--with-permissions=0640 \
+		--with-system-argon2 \
+		--with-system-cares \
+		--with-system-pcre2 \
+		--with-system-sodium \
+		--with-system-jansson \
+		--enable-dynamic-linking \
+		--with-controlfile="${EPREFIX}"/run/${PN}/unrealircd.ctl \
+		--enable-ssl="${EPREFIX}"/usr \
+		$(use_enable curl libcurl "${EPREFIX}"/usr) \
+		$(use_with !operoverride no-operoverride) \
+		$(use_with operoverride-verify) \
+		$(use_enable geoip libmaxminddb)
+}
+
+src_install() {
+	keepdir /var/log/${PN}
+	keepdir /var/lib/${PN}/tmp
+
+	newbin src/ircd ${PN}
+	dobin src/unrealircdctl
+
+	newtmpfiles "${FILESDIR}"/unrealircd.tmpfiles unrealircd.conf
+
+	(
+		cd src/modules || die
+		for subdir in $(find . -type d -print); do
+			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
+				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
+				doexe "${subdir}"/*.so
+			fi
+		done
+	)
+
+	insinto /etc/${PN}
+	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
+	# is redundant with app-misc/ca-certificates and examples will all
+	# be in docs anyway.
+	doins -r doc/conf/{aliases,help}
+	doins doc/conf/*.conf
+	newins doc/conf/examples/example.conf ${PN}.conf
+	keepdir /etc/${PN}/tls
+
+	einstalldocs
+
+	newinitd "${FILESDIR}"/${PN}.initd-r3 ${PN}
+	newconfd "${FILESDIR}"/${PN}.confd-r4 ${PN}
+
+	# config should be read-only
+	fperms -R 0640 /etc/${PN}
+	fperms 0750 /etc/${PN}{,/aliases,/help}
+	fperms 0750 /etc/${PN}/tls
+	# state is editable but not owned by unrealircd directly
+	fperms 0770 /var/log/${PN}
+	fperms 0770 /var/lib/${PN}{,/tmp}
+	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
+
+	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
+	# that to look for ca-certificates-provided file instead. %s is
+	# CONFDIR. #618066
+	dosym ../../ssl/certs/ca-certificates.crt /etc/${PN}/tls/curl-ca-bundle.crt
+
+	systemd_dounit "${FILESDIR}"/${PN}.service
+}
+
+pkg_postinst() {
+	tmpfiles_process unrealircd.conf
+
+	# Move docert call from src_install() to install_cert in pkg_postinst for
+	# bug #201682
+	if [[ ! -f "${EROOT}"/etc/${PN}/tls/server.cert.key ]]; then
+		if [[ -f "${EROOT}"/etc/${PN}/ssl/server.cert.key ]]; then
+			ewarn "The location ${PN} looks for SSL certificates has changed"
+			ewarn "from ${EROOT}/etc/${PN}/ssl to ${EROOT}/etc/${PN}/tls."
+			ewarn "Please move your existing certificates."
+		else
+			(
+				umask 0037
+				install_cert /etc/${PN}/tls/server.cert
+				chown unrealircd "${EROOT}"/etc/${PN}/tls/server.cert.*
+				ln -snf server.cert.key "${EROOT}"/etc/${PN}/tls/server.key.pem
+			)
+		fi
+	fi
+
+	local unrealircd_conf="${EROOT}"/etc/${PN}/${PN}.conf
+	# Fix up the default cloak keys.
+	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi";$' "${unrealircd_conf}"; then
+		ebegin "Generating cloak-keys"
+		local keys=(
+			$(su ${PN} -s "${EPREFIX}"/bin/sh -c "${PN} -k 2>&1 | tail -n 6 | head -n 3")
+		)
+		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
+		eend $?
+
+		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
+		sed -i \
+			-e '/cloak-keys/ {
+n
+s/"Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi";/'${keys[0]}'/
+n
+s/"and another one";/'${keys[1]}'/
+n
+s/"and another one";/'${keys[2]}'/
+}' \
+			"${unrealircd_conf}"
+		eend $?
+	fi
+
+	elog "UnrealIRCd will not run until you've set up ${EROOT}/etc/unrealircd/unrealircd.conf"
+	elog
+	elog "You can also configure ${PN} start at boot with rc-update(1)."
+	elog "It is recommended to run unrealircd as an unprivileged user."
+	elog "The provided init.d script does this for you."
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-irc/unrealircd/, net-irc/unrealircd/files/
@ 2022-01-29  7:02 Sam James
  0 siblings, 0 replies; 6+ messages in thread
From: Sam James @ 2022-01-29  7:02 UTC (permalink / raw
  To: gentoo-commits

commit:     c7a608d77cd26f4bee0362c7af21df67c4fe3a88
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 29 07:02:39 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sat Jan 29 07:02:46 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c7a608d7

net-irc/unrealircd: add 5.2.4, 6.0.2

Bug: https://bugs.gentoo.org/832272
Signed-off-by: Sam James <sam <AT> gentoo.org>

 net-irc/unrealircd/Manifest                  |   2 +
 net-irc/unrealircd/files/unrealircd.tmpfiles |   2 +
 net-irc/unrealircd/unrealircd-5.2.4.ebuild   | 175 +++++++++++++++++++++++++
 net-irc/unrealircd/unrealircd-6.0.2.ebuild   | 184 +++++++++++++++++++++++++++
 4 files changed, 363 insertions(+)

diff --git a/net-irc/unrealircd/Manifest b/net-irc/unrealircd/Manifest
index 44a768ff3f4a..0b7548eca211 100644
--- a/net-irc/unrealircd/Manifest
+++ b/net-irc/unrealircd/Manifest
@@ -1,3 +1,5 @@
 DIST unrealircd-5.2.2.tar.gz 7192024 BLAKE2B aa700c943cbab1dcc751e32c6cc0608cd27936b0910bbc62987dd2fe87ee5261e7a5eb2aa67dd77ed5ecb39d1d4f149c8810159e2c6f752ee65ce34e46548f60 SHA512 9d36eb1567431bc4a5420bc830bfc8dc89daa08ed1746efd6102e5ef161f67baf52e75e373454df7df6a443c4f575fb300d3c289d4dd99239a6de7d2b2a555a0
 DIST unrealircd-5.2.3.tar.gz 7200834 BLAKE2B af15b97219d5552a8fe6ecd77b4d0d0b8bcbe8c2f65ab531a7322471c05af3001000cc3799db68291b9abe8c3a5ea7d04559f858774d1b12a764a20fb4ab2bd0 SHA512 c92c631340cb81b030006646a047fde4ee738edc8362870ba4eb979133d851806c7d4764848a35cbd48c787708eab9f051f257008798a494673d9986d16b2405
+DIST unrealircd-5.2.4.tar.gz 7201203 BLAKE2B 06afc8b5e28bbd56971b2ce21da3e000e39366444472786891bfe000754f5fed37b59850f9539b4f01914d6b33c1f9f17a15fe69569620ba5213f39fce1cfcad SHA512 b6784d011bc56b0b8253d61fb1edddb2133e791e9ce4ae978f90059563d11f3f7b3ebca1cf13765b4077ebc39f0699e101bdfc71cbb0c5cf51d508c5a5fdacb3
 DIST unrealircd-6.0.1.1.tar.gz 8616313 BLAKE2B 9b8462523d7605ce7bf17ccc6aed3455a9f100826ee6a1554b3576654d611e8a0a68594f5fb8a6b3d9d929c0b52ca8cf33ece9bf6898453789b70cdea36b6df0 SHA512 44bf9358d6159c298f8a3e97e16aa6e7364e06c4e59bb9e12bc34610414bbabb9cd8049c164260ee78fcdcafc669716eb03390aa8f4f8b097b65298d074f9ab0
+DIST unrealircd-6.0.2.tar.gz 8672255 BLAKE2B d52f2984f32331c489528b429f4671189713e4e308a7a7fd2f70933bfd606a938a9b6a6e581170b41fa9a948d1cc04c0cd8bb90c595c01c39b473cf341494a27 SHA512 041f97ad82d89222ad49bdc7db83869fc5133a049dd5354c34759c33c16307b9d60c25d3ef4e19a549059e3a0030699d061bd03fa8118428ded1f1e79d483398

diff --git a/net-irc/unrealircd/files/unrealircd.tmpfiles b/net-irc/unrealircd/files/unrealircd.tmpfiles
new file mode 100644
index 000000000000..37afe71d1d30
--- /dev/null
+++ b/net-irc/unrealircd/files/unrealircd.tmpfiles
@@ -0,0 +1,2 @@
+d /run/unrealircd 755 unrealircd unrealircd
+

diff --git a/net-irc/unrealircd/unrealircd-5.2.4.ebuild b/net-irc/unrealircd/unrealircd-5.2.4.ebuild
new file mode 100644
index 000000000000..8c1dd56eddc6
--- /dev/null
+++ b/net-irc/unrealircd/unrealircd-5.2.4.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+SSL_CERT_MANDATORY=1
+inherit autotools ssl-cert systemd
+
+DESCRIPTION="An advanced Internet Relay Chat daemon"
+HOMEPAGE="https://www.unrealircd.org/"
+SRC_URI="https://www.unrealircd.org/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+IUSE="class-nofakelag curl +operoverride operoverride-verify +prefixaq showlistmodes"
+
+RDEPEND="acct-group/unrealircd
+	acct-user/unrealircd
+	>=app-crypt/argon2-20171227-r1:=
+	dev-libs/libpcre2
+	dev-libs/libsodium:=
+	dev-libs/openssl:0=
+	>=net-dns/c-ares-1.7:=
+	virtual/libcrypt:=
+	curl? ( net-misc/curl[adns] )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( doc/{Authors,Donation,RELEASE-NOTES.md,tao.of.irc,technical/,translations.txt} )
+
+src_prepare() {
+	# QA check against bundled pkgs
+	rm -r extras || die
+
+	# building third-party modules (which we don't do) cause a sandbox violation
+	# bug 704444
+	echo "" > src/buildmod || die
+
+	sed -e 's/$(MODULEFLAGS)/$(LDFLAGS) &/' -i src/modules/{,*/}Makefile.in || die
+
+	if use class-nofakelag; then
+		sed -i -e 's:^//#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
+	fi
+
+	# File is missing from the 5.0.9.1 tarball
+	sed -i -e '/unrealircd-upgrade-script/d' configure.ac || die
+
+	default
+	eautoreconf
+}
+
+src_configure() {
+	# Default value for privatelibdir adds a build path to -Wl,-rpath.
+	econf \
+		--with-bindir="${EPREFIX}"/usr/bin \
+		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
+		--with-confdir="${EPREFIX}"/etc/${PN} \
+		--with-datadir="${EPREFIX}"/var/lib/${PN} \
+		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
+		--with-logdir="${EPREFIX}"/var/log/${PN} \
+		--with-modulesdir="${EPREFIX}/usr/$(get_libdir)"/${PN}/modules \
+		--without-privatelibdir \
+		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
+		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
+		--with-maxconnections=1024 \
+		--with-nick-history=2000 \
+		--with-permissions=0640 \
+		--with-system-argon2 \
+		--with-system-cares \
+		--with-system-pcre2 \
+		--enable-dynamic-linking \
+		--enable-ssl="${EPREFIX}"/usr \
+		$(use_enable curl libcurl "${EPREFIX}"/usr) \
+		$(use_enable prefixaq) \
+		$(use_with showlistmodes) \
+		$(use_with !operoverride no-operoverride) \
+		$(use_with operoverride-verify)
+}
+
+src_install() {
+	keepdir /var/log/${PN}
+	keepdir /var/lib/${PN}/tmp
+
+	newbin src/ircd ${PN}
+
+	(
+		cd src/modules || die
+		for subdir in $(find . -type d -print); do
+			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
+				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
+				doexe "${subdir}"/*.so
+			fi
+		done
+	)
+
+	insinto /etc/${PN}
+	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
+	# is redundant with app-misc/ca-certificates and examples will all
+	# be in docs anyway.
+	doins -r doc/conf/{aliases,help}
+	doins doc/conf/*.conf
+	newins doc/conf/examples/example.conf ${PN}.conf
+	keepdir /etc/${PN}/tls
+
+	einstalldocs
+
+	newinitd "${FILESDIR}"/${PN}.initd-r3 ${PN}
+	newconfd "${FILESDIR}"/${PN}.confd-r4 ${PN}
+
+	# config should be read-only
+	fperms -R 0640 /etc/${PN}
+	fperms 0750 /etc/${PN}{,/aliases,/help}
+	fperms 0750 /etc/${PN}/tls
+	# state is editable but not owned by unrealircd directly
+	fperms 0770 /var/log/${PN}
+	fperms 0770 /var/lib/${PN}{,/tmp}
+	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
+
+	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
+	# that to look for ca-certificates-provided file instead. %s is
+	# CONFDIR. #618066
+	dosym ../../ssl/certs/ca-certificates.crt /etc/${PN}/tls/curl-ca-bundle.crt
+
+	systemd_dounit "${FILESDIR}"/${PN}.service
+}
+
+pkg_postinst() {
+	# Move docert call from src_install() to install_cert in pkg_postinst for
+	# bug #201682
+	if [[ ! -f "${EROOT}"/etc/${PN}/tls/server.cert.key ]]; then
+		if [[ -f "${EROOT}"/etc/${PN}/ssl/server.cert.key ]]; then
+			ewarn "The location ${PN} looks for SSL certificates has changed"
+			ewarn "from ${EROOT}/etc/${PN}/ssl to ${EROOT}/etc/${PN}/tls."
+			ewarn "Please move your existing certificates."
+		else
+			(
+				umask 0037
+				install_cert /etc/${PN}/tls/server.cert
+				chown unrealircd "${EROOT}"/etc/${PN}/tls/server.cert.*
+				ln -snf server.cert.key "${EROOT}"/etc/${PN}/tls/server.key.pem
+			)
+		fi
+	fi
+
+	local unrealircd_conf="${EROOT}"/etc/${PN}/${PN}.conf
+	# Fix up the default cloak keys.
+	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";$' "${unrealircd_conf}"; then
+		ebegin "Generating cloak-keys"
+		local keys=(
+			$(su ${PN} -s /bin/sh -c "${PN} -k 2>&1 | tail -n 3")
+		)
+		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
+		eend $?
+
+		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
+		sed -i \
+			-e '/cloak-keys/ {
+n
+s/"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";/"'"${keys[0]}"'";/
+n
+s/"and another one";/"'"${keys[1]}"'";/
+n
+s/"and another one";/"'"${keys[2]}"'";/
+}' \
+			"${unrealircd_conf}"
+		eend $?
+	fi
+
+	elog "UnrealIRCd will not run until you've set up ${EROOT}/etc/unrealircd/unrealircd.conf"
+	elog
+	elog "You can also configure ${PN} start at boot with rc-update(1)."
+	elog "It is recommended to run unrealircd as an unprivileged user."
+	elog "The provided init.d script does this for you."
+}

diff --git a/net-irc/unrealircd/unrealircd-6.0.2.ebuild b/net-irc/unrealircd/unrealircd-6.0.2.ebuild
new file mode 100644
index 000000000000..275c8a7ffa4b
--- /dev/null
+++ b/net-irc/unrealircd/unrealircd-6.0.2.ebuild
@@ -0,0 +1,184 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+SSL_CERT_MANDATORY=1
+inherit autotools ssl-cert systemd tmpfiles
+
+DESCRIPTION="An advanced Internet Relay Chat daemon"
+HOMEPAGE="https://www.unrealircd.org/"
+SRC_URI="https://www.unrealircd.org/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux"
+IUSE="class-nofakelag curl geoip +operoverride operoverride-verify"
+
+RDEPEND="acct-group/unrealircd
+	acct-user/unrealircd
+	>=app-crypt/argon2-20171227-r1:=
+	dev-libs/libpcre2
+	dev-libs/libsodium:=
+	dev-libs/openssl:=
+	dev-libs/jansson:=
+	>=net-dns/c-ares-1.7:=
+	virtual/libcrypt:=
+	curl? ( net-misc/curl[adns] )
+	geoip? ( dev-libs/libmaxminddb )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( doc/{Authors,Donation,RELEASE-NOTES.md,tao.of.irc,technical/,translations.txt} )
+
+src_prepare() {
+	# QA check against bundled pkgs
+	rm -r extras || die
+
+	# building third-party modules (which we don't do) cause a sandbox violation
+	# bug 704444
+	echo "" > src/buildmod || die
+
+	sed -e 's/$(MODULEFLAGS)/$(LDFLAGS) &/' -i src/modules/{,*/}Makefile.in || die
+
+	if use class-nofakelag; then
+		sed -i -e 's:^//#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
+	fi
+
+	# File is missing from the 5.0.9.1 tarball
+	sed -i -e '/unrealircd-upgrade-script/d' configure.ac || die
+
+	default
+	eautoreconf
+}
+
+src_configure() {
+	# Default value for privatelibdir adds a build path to -Wl,-rpath.
+	econf \
+		--with-bindir="${EPREFIX}"/usr/bin \
+		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
+		--with-confdir="${EPREFIX}"/etc/${PN} \
+		--with-datadir="${EPREFIX}"/var/lib/${PN} \
+		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
+		--with-logdir="${EPREFIX}"/var/log/${PN} \
+		--with-modulesdir="${EPREFIX}/usr/$(get_libdir)"/${PN}/modules \
+		--without-privatelibdir \
+		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
+		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
+		--with-maxconnections=1024 \
+		--with-nick-history=2000 \
+		--with-permissions=0640 \
+		--with-system-argon2 \
+		--with-system-cares \
+		--with-system-pcre2 \
+		--with-system-sodium \
+		--with-system-jansson \
+		--enable-dynamic-linking \
+		--with-controlfile="${EPREFIX}"/run/${PN}/unrealircd.ctl \
+		--enable-ssl="${EPREFIX}"/usr \
+		$(use_enable curl libcurl "${EPREFIX}"/usr) \
+		$(use_with !operoverride no-operoverride) \
+		$(use_with operoverride-verify) \
+		$(use_enable geoip libmaxminddb)
+}
+
+src_install() {
+	keepdir /var/log/${PN}
+	keepdir /var/lib/${PN}/tmp
+
+	newbin src/ircd ${PN}
+	dobin src/unrealircdctl
+
+	newtmpfiles "${FILESDIR}"/unrealircd.tmpfiles unrealircd.conf
+
+	(
+		cd src/modules || die
+		for subdir in $(find . -type d -print); do
+			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
+				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
+				doexe "${subdir}"/*.so
+			fi
+		done
+	)
+
+	insinto /etc/${PN}
+	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
+	# is redundant with app-misc/ca-certificates and examples will all
+	# be in docs anyway.
+	doins -r doc/conf/{aliases,help}
+	doins doc/conf/*.conf
+	newins doc/conf/examples/example.conf ${PN}.conf
+	keepdir /etc/${PN}/tls
+
+	einstalldocs
+
+	newinitd "${FILESDIR}"/${PN}.initd-r3 ${PN}
+	newconfd "${FILESDIR}"/${PN}.confd-r4 ${PN}
+
+	# config should be read-only
+	fperms -R 0640 /etc/${PN}
+	fperms 0750 /etc/${PN}{,/aliases,/help}
+	fperms 0750 /etc/${PN}/tls
+	# state is editable but not owned by unrealircd directly
+	fperms 0770 /var/log/${PN}
+	fperms 0770 /var/lib/${PN}{,/tmp}
+	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
+
+	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
+	# that to look for ca-certificates-provided file instead. %s is
+	# CONFDIR. #618066
+	dosym ../../ssl/certs/ca-certificates.crt /etc/${PN}/tls/curl-ca-bundle.crt
+
+	systemd_dounit "${FILESDIR}"/${PN}.service
+}
+
+pkg_postinst() {
+	tmpfiles_process unrealircd.conf
+
+	# Move docert call from src_install() to install_cert in pkg_postinst for
+	# bug #201682
+	if [[ ! -f "${EROOT}"/etc/${PN}/tls/server.cert.key ]]; then
+		if [[ -f "${EROOT}"/etc/${PN}/ssl/server.cert.key ]]; then
+			ewarn "The location ${PN} looks for SSL certificates has changed"
+			ewarn "from ${EROOT}/etc/${PN}/ssl to ${EROOT}/etc/${PN}/tls."
+			ewarn "Please move your existing certificates."
+		else
+			(
+				umask 0037
+				install_cert /etc/${PN}/tls/server.cert
+				chown unrealircd "${EROOT}"/etc/${PN}/tls/server.cert.*
+				ln -snf server.cert.key "${EROOT}"/etc/${PN}/tls/server.key.pem
+			)
+		fi
+	fi
+
+	local unrealircd_conf="${EROOT}"/etc/${PN}/${PN}.conf
+	# Fix up the default cloak keys.
+	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi";$' "${unrealircd_conf}"; then
+		ebegin "Generating cloak-keys"
+		local keys=(
+			$(su ${PN} -s /bin/sh -c "${PN} -k 2>&1 | tail -n 6 | head -n 3")
+		)
+		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
+		eend $?
+
+		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
+		sed -i \
+			-e '/cloak-keys/ {
+n
+s/"Oozahho1raezoh0iMee4ohvegaifahv5xaepeitaich9tahdiquaid0geecipahdauVaij3zieph4ahi";/'${keys[0]}'/
+n
+s/"and another one";/'${keys[1]}'/
+n
+s/"and another one";/'${keys[2]}'/
+}' \
+			"${unrealircd_conf}"
+		eend $?
+	fi
+
+	elog "UnrealIRCd will not run until you've set up ${EROOT}/etc/unrealircd/unrealircd.conf"
+	elog
+	elog "You can also configure ${PN} start at boot with rc-update(1)."
+	elog "It is recommended to run unrealircd as an unprivileged user."
+	elog "The provided init.d script does this for you."
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-irc/unrealircd/, net-irc/unrealircd/files/
@ 2020-04-20  8:25 Michael Palimaka
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Palimaka @ 2020-04-20  8:25 UTC (permalink / raw
  To: gentoo-commits

commit:     8bac76937d788fbb4b170f1114ab1cf294abc3df
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Mon Apr 20 08:24:03 2020 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Mon Apr 20 08:25:18 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8bac7693

net-irc/unrealircd: version bump 5.0.4

Includes a systemd unit file

Thanks-to: John Helmert III <jchelmertt3 <AT> gmail.com>
Closes: https://bugs.gentoo.org/718382
Package-Manager: Portage-2.3.89, Repoman-2.3.22
Signed-off-by: Michael Palimaka <kensington <AT> gentoo.org>

 net-irc/unrealircd/Manifest                 |   1 +
 net-irc/unrealircd/files/unrealircd.service |  11 ++
 net-irc/unrealircd/unrealircd-5.0.4.ebuild  | 171 ++++++++++++++++++++++++++++
 3 files changed, 183 insertions(+)

diff --git a/net-irc/unrealircd/Manifest b/net-irc/unrealircd/Manifest
index 25676ead628..3210cf1e4f1 100644
--- a/net-irc/unrealircd/Manifest
+++ b/net-irc/unrealircd/Manifest
@@ -1,2 +1,3 @@
 DIST unrealircd-4.2.4.1.tar.gz 6090725 BLAKE2B 817a7c2a13a495944676d08ed90b36f6795fe43ee171efc6661980e6da9a8cc8d98c4fb0eb8221ac6af85ab1a9b5578a2e992d7b41696434430e58918bc30145 SHA512 752573c4af1f92a10739bb2b0cdaade1948207b46d28ae5177e1dfd6b0663044bc22dce5ffe8549882cd70325e3ef7e3296182fffbb84e08d59dbbdd6551a686
 DIST unrealircd-5.0.3.1.tar.gz 4902967 BLAKE2B d3c2e2399091b3aa9906583231d5ba42534234c4c40ce7412609fe8866438848bb69a4fc3cd378e0ed9ab13970ba2a7b27ba9fccdaaaea3585ec0a05aa5f89c2 SHA512 1bf3e2aab2f14d68a02ae6925d9e91135a92cf08886f703be0cd203c8b4b323bfc3930254d2bda381e60b3991f379115c954fa1fd262e28d7a27172a25bb172a
+DIST unrealircd-5.0.4.tar.gz 4907069 BLAKE2B 223c45dbd060cf13afabafd13325bb76889fa64f663fff1be753de703df50265c6a05658edfe7300e97cf1431f54992b7e37801ef4773b02add9d5edca80237c SHA512 cdd83fa55bdf1960499fff48ba656b66cf5a1c43a360658bc37add217af36933f00280f7eaddcbbd39720058a401650b944a5f0ce79ae3ca6749bd58c9cd5241

diff --git a/net-irc/unrealircd/files/unrealircd.service b/net-irc/unrealircd/files/unrealircd.service
new file mode 100644
index 00000000000..5382670ef0a
--- /dev/null
+++ b/net-irc/unrealircd/files/unrealircd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Unrealircd IRC Server Daemon
+After=network.target
+
+[Service]
+Type=forking
+User=unrealircd
+ExecStart=/usr/bin/unrealircd
+
+[Install]
+WantedBy=multi-user.target

diff --git a/net-irc/unrealircd/unrealircd-5.0.4.ebuild b/net-irc/unrealircd/unrealircd-5.0.4.ebuild
new file mode 100644
index 00000000000..d2f7a8a96ec
--- /dev/null
+++ b/net-irc/unrealircd/unrealircd-5.0.4.ebuild
@@ -0,0 +1,171 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+SSL_CERT_MANDATORY=1
+inherit ssl-cert systemd
+
+DESCRIPTION="An advanced Internet Relay Chat daemon"
+HOMEPAGE="https://www.unrealircd.org/"
+SRC_URI="https://www.unrealircd.org/downloads/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux"
+IUSE="class-nofakelag curl libressl +operoverride operoverride-verify +prefixaq showlistmodes"
+
+RDEPEND="
+	acct-group/unrealircd
+	acct-user/unrealircd
+	>=app-crypt/argon2-20171227-r1:=
+	dev-libs/libpcre2
+	>=net-dns/c-ares-1.7:=
+	!libressl? ( dev-libs/openssl:0= )
+	libressl? ( dev-libs/libressl:= )
+	curl? ( net-misc/curl[adns] )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( doc/{Authors,Donation,RELEASE-NOTES.md,tao.of.irc,technical/,translations.txt} )
+
+src_prepare() {
+	# QA check against bundled pkgs
+	rm -r extras || die
+
+	# building third-party modules (which we don't do) cause a sandbox violation
+	# bug 704444
+	echo "" > src/buildmod || die
+
+	if use class-nofakelag; then
+		sed -i -e 's:#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
+	fi
+
+	eapply_user
+}
+
+src_configure() {
+	# Default value for privatelibdir adds a build path to -Wl,-rpath.
+	econf \
+		--with-bindir="${EPREFIX}"/usr/bin \
+		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
+		--with-confdir="${EPREFIX}"/etc/${PN} \
+		--with-datadir="${EPREFIX}"/var/lib/${PN} \
+		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
+		--with-logdir="${EPREFIX}"/var/log/${PN} \
+		--with-modulesdir="${EPREFIX}"/usr/"$(get_libdir)"/${PN}/modules \
+		--without-privatelibdir \
+		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
+		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
+		--with-maxconnections=1024 \
+		--with-nick-history=2000 \
+		--with-permissions=0640 \
+		--with-system-argon2 \
+		--with-system-cares \
+		--with-system-pcre2 \
+		--enable-dynamic-linking \
+		--enable-ssl="${EPREFIX}"/usr \
+		$(use_enable curl libcurl "${EPREFIX}"/usr) \
+		$(use_enable prefixaq) \
+		$(use_with showlistmodes) \
+		$(use_with !operoverride no-operoverride) \
+		$(use_with operoverride-verify)
+}
+
+src_install() {
+	keepdir /var/log/${PN}
+	keepdir /var/lib/${PN}/tmp
+
+	newbin src/ircd ${PN}
+
+	(
+		cd src/modules || die
+		for subdir in $(find . -type d -print); do
+			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
+				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
+				doexe "${subdir}"/*.so
+			fi
+		done
+	)
+
+	insinto /etc/${PN}
+	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
+	# is redundant with app-misc/ca-certificates and examples will all
+	# be in docs anyway.
+	doins -r doc/conf/{aliases,help}
+	doins doc/conf/*.conf
+	newins doc/conf/examples/example.conf ${PN}.conf
+	keepdir /etc/${PN}/tls
+
+	einstalldocs
+
+	newinitd "${FILESDIR}"/${PN}.initd-r2 ${PN}
+	newconfd "${FILESDIR}"/${PN}.confd-r3 ${PN}
+
+	# config should be read-only
+	fperms -R 0640 /etc/${PN}
+	fperms 0750 /etc/${PN}{,/aliases,/help}
+	fperms 0750 /etc/${PN}/tls
+	# state is editable but not owned by unrealircd directly
+	fperms 0770 /var/log/${PN}
+	fperms 0770 /var/lib/${PN}{,/tmp}
+	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
+
+	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
+	# that to look for ca-certificates-provided file instead. %s is
+	# CONFDIR. #618066
+	dosym ../../ssl/certs/ca-certificates.crt /etc/${PN}/tls/curl-ca-bundle.crt
+
+	insinto $(systemd_get_systemunitdir)
+	doins "${FILESDIR}"/${PN}.service
+}
+
+pkg_postinst() {
+	# Move docert call from src_install() to install_cert in pkg_postinst for
+	# bug #201682
+	if [[ ! -f "${EROOT}"/etc/${PN}/tls/server.cert.key ]]; then
+		if [[ -f "${EROOT}"/etc/${PN}/ssl/server.cert.key ]]; then
+			ewarn "The location ${PN} looks for SSL certificates has changed"
+			ewarn "from ${EROOT}/etc/${PN}/ssl to ${EROOT}/etc/${PN}/tls."
+			ewarn "Please move your existing certificates."
+		else
+			(
+				umask 0037
+				install_cert /etc/${PN}/tls/server.cert
+				chown unrealircd "${EROOT}"/etc/${PN}/tls/server.cert.*
+				ln -snf server.cert.key "${EROOT}"/etc/${PN}/tls/server.key.pem
+			)
+		fi
+	fi
+
+	local unrealircd_conf="${EROOT}"/etc/${PN}/${PN}.conf
+	# Fix up the default cloak keys.
+	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";$' "${unrealircd_conf}"; then
+		ebegin "Generating cloak-keys"
+		local keys=(
+			$(su ${PN} -s /bin/sh -c "${PN} -k 2>&1 | tail -n 3")
+		)
+		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
+		eend $?
+
+		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
+		sed -i \
+			-e '/cloak-keys/ {
+n
+s/"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";/"'"${keys[0]}"'";/
+n
+s/"and another one";/"'"${keys[1]}"'";/
+n
+s/"and another one";/"'"${keys[2]}"'";/
+}' \
+			"${unrealircd_conf}"
+		eend $?
+	fi
+
+	elog "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
+	elog
+	elog "You can also configure ${PN} start at boot with rc-update(1)."
+	elog "It is recommended to run unrealircd as an unprivileged user."
+	elog "The provided init.d script does this for you."
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-irc/unrealircd/, net-irc/unrealircd/files/
@ 2018-11-17  6:51 Michael Palimaka
  0 siblings, 0 replies; 6+ messages in thread
From: Michael Palimaka @ 2018-11-17  6:51 UTC (permalink / raw
  To: gentoo-commits

commit:     1742110b170945178f7b34179efddb315ed76e2d
Author:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 17 06:50:29 2018 +0000
Commit:     Michael Palimaka <kensington <AT> gentoo <DOT> org>
CommitDate: Sat Nov 17 06:50:57 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1742110b

net-irc/unrealircd: remove old

Package-Manager: Portage-2.3.51, Repoman-2.3.12
Signed-off-by: Michael Palimaka <kensington <AT> gentoo.org>

 net-irc/unrealircd/Manifest                        |   3 -
 .../unrealircd-4.0.12-without-privatelibdir.patch  |  70 ------
 net-irc/unrealircd/files/unrealircd.confd-r1       |  31 ---
 net-irc/unrealircd/files/unrealircd.confd-r2       |  35 ---
 net-irc/unrealircd/files/unrealircd.initd          |  43 ----
 net-irc/unrealircd/files/unrealircd.initd-r1       |  43 ----
 net-irc/unrealircd/unrealircd-3.2.10.7.ebuild      | 212 -----------------
 net-irc/unrealircd/unrealircd-4.0.12.ebuild        | 249 --------------------
 net-irc/unrealircd/unrealircd-4.0.17.ebuild        | 250 ---------------------
 net-irc/unrealircd/unrealircd-4.0.18.ebuild        | 184 ---------------
 10 files changed, 1120 deletions(-)

diff --git a/net-irc/unrealircd/Manifest b/net-irc/unrealircd/Manifest
index dc9f107acb1..79557586c05 100644
--- a/net-irc/unrealircd/Manifest
+++ b/net-irc/unrealircd/Manifest
@@ -1,4 +1 @@
-DIST Unreal3.2.10.7.tar.gz 3539026 BLAKE2B a61fcd7cd4329c6b0991219a331482ca84aecfa37638762aa1c20166ab2ce0d4facb2a51b2010a9dd2fbc32278de91acaf8fd209ce5b8a2d4232dce154880904 SHA512 7d5fd4729fdde56c6b3e38a93bc365857b5b4faf58cb39e844b43e87872623abc7527025247eeda8c8535576e2b1b8ef14d482c964ce940cafb5de77cc9e1667
-DIST unrealircd-4.0.12.tar.gz 5521686 BLAKE2B d55973387f58cabd80156e1113491adec623a56d83e0043dcd89457b00cc6519ab37459eb2c0a10176b5d5bb1518a81fa288bdea43f0e4b9303f629103c5ea1d SHA512 3df18e07226673d76977771f91f0f6c2129955523f1330519e5cada7989c8987382d78770c95837d520737796cf4fa84f1de3eb0f08ef017c5c56f775cf45420
-DIST unrealircd-4.0.17.tar.gz 5325068 BLAKE2B d6d1c05234ee5921e65e0a7a4223152bd729878a5d8b40dfb4b1b2d066a891564b8cd66097e03a8a47f84878aeeadb7356ff222dd4d8efece69a9f1df5fe3542 SHA512 e02684ba7b61747f6d0edb8105c3d9cb1f383c79b9ff563b374fefe1ed5224c168d8f9e3e482a122acd7a2af12ee8595812e4c46654e651cde7115656fb3d36e
 DIST unrealircd-4.0.18.tar.gz 5317767 BLAKE2B cb71144ce0fce7f719b3081f2da9f85c997dbc372492dfa57354eb51aee122f0e42fdba9e0aca997cd118ed9c75fb6f197ca13e371931fe45709d6b64651336d SHA512 b9541ea83c24963187931938eadbba746175ec1d9449631e799df038bb062625e4b508c2d0d4e9e69a6401158cc23a855cbfbda3d28a4b971fbb249f074d26d3

diff --git a/net-irc/unrealircd/files/unrealircd-4.0.12-without-privatelibdir.patch b/net-irc/unrealircd/files/unrealircd-4.0.12-without-privatelibdir.patch
deleted file mode 100644
index 03b7a7a0eb2..00000000000
--- a/net-irc/unrealircd/files/unrealircd-4.0.12-without-privatelibdir.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 2b94733cbe0161b58084a2e7a26985e6d321e1c8 Mon Sep 17 00:00:00 2001
-From: Nathan Phillip Brink <binki@gentoo.org>
-Date: Thu, 6 Jul 2017 06:04:18 +0000
-Subject: [PATCH] Support --without-privatelibdir for packagers.
-
----
- configure.ac | 22 +++++++++++++---------
- 1 file changed, 13 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 78360df..aa49df5 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -586,15 +586,19 @@ AC_ARG_WITH(pidfile, [AS_HELP_STRING([--with-pidfile=path],[Specify the path of
- 	[AC_DEFINE_UNQUOTED([PIDFILE], ["$HOME/unrealircd/data/unrealircd.pid"], [Define the path of the pid file])
- 		PIDFILE="$HOME/unrealircd/data/unrealircd.pid"])
- 
--LDFLAGS_PRIVATELIBS=""
--AC_ARG_WITH(privatelibdir, [AS_HELP_STRING([--with-privatelibdir=path],[Specify the directory where private libraries are stored])],
--	[AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$withval"], [Define the location of private libraries])
--		PRIVATELIBDIR="$withval"
--		LDFLAGS_PRIVATELIBS="-Wl,-rpath=$PRIVATELIBDIR"
--		LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS"
--		export LDFLAGS],
--	[AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$HOME/unrealircd/lib"], [Define the location of private libraries])
--		PRIVATELIBDIR="$HOME/unrealircd/lib"
-+dnl Ensure that this “feature” can be disabled as it makes it harder to package unrealircd.
-+dnl Users have always been able to specify “./configure LDFLAGS=-Wl,-rpath,/path/to/blah”—binki
-+AC_ARG_WITH(privatelibdir, [AS_HELP_STRING([--with-privatelibdir=path],[Specify the directory where private libraries are stored. Disable when building a package for a distro])],
-+	[],
-+	[with_privatelibdir="yes"])
-+AS_IF([test "x$with_privatelibdir" = "xno"],
-+	[PRIVATELIBDIR=],
-+	[test "x$with_privatelibdir" = "xyes"],
-+	[PRIVATELIBDIR="$HOME/unrealircd/lib"],
-+	[PRIVATELIBDIR="$with_privatelibdir"])
-+AS_IF([test "x$PRIVATELIBDIR" = "x"],
-+	[LDFLAGS_PRIVATELIBS=""],
-+	[AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$PRIVATELIBDIR"], [Define the location of private libraries])
- 		LDFLAGS_PRIVATELIBS="-Wl,-rpath=$PRIVATELIBDIR"
- 		LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS"
- 		export LDFLAGS])
--- 
-2.4.6
-
-From 6591e6bcee0858b7cddf6fcfee7dbe04ae511169 Mon Sep 17 00:00:00 2001
-From: Nathan Phillip Brink <binki@gentoo.org>
-Date: Thu, 6 Jul 2017 06:43:20 +0000
-Subject: [PATCH] Do not try to delete libcares when not using PRIVATELIBDIR.
-
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index aa49df5..874d58f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -786,7 +786,7 @@ dnl Use system c-ares when available, unless --without-system-cares.
- has_system_cares="no"
- AS_IF([test "x$with_system_cares" = "xyes"],[
- PKG_CHECK_MODULES([CARES], libcares >= 1.6.0,[has_system_cares=yes
--rm -f "$PRIVATELIBDIR/"libcares*],[has_system_cares=no])])
-+AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libcares*])],[has_system_cares=no])])
- 
- AS_IF([test "$has_system_cares" = "no"], [
- dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
--- 
-2.4.6
-

diff --git a/net-irc/unrealircd/files/unrealircd.confd-r1 b/net-irc/unrealircd/files/unrealircd.confd-r1
deleted file mode 100644
index 9b4f7b632c2..00000000000
--- a/net-irc/unrealircd/files/unrealircd.confd-r1
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-# user to run unrealircd as
-UNREALIRCD_USER="unrealircd"
-
-# Which configuration file to load instead of unrealircd.conf. If you
-# want to run multiple instances of unrealircd, you must edit
-# files::pidfile to match UNREALIRCD_PIDFILE. You should also ensure
-# that files::tunefile is different for each unrealircd instance. See
-# http://unrealircd.org/docs.php#filesblock.
-#
-# To support multiple instances of unrealircd, you may create symlinks
-# in /etc/init.d pointing to /etc/init.d/unrealircd. It is recommended
-# that the scheme unrealircd.${instance_name} be used. For each
-# instance, you may make a copy of this file with the appropriate name
-# to override default options specific to that instance.
-UNREALIRCD_CONF="/etc/unrealircd/${SVCNAME}.conf"
-
-# The path where unrealircd is configured to create its pidfile.
-UNREALIRCD_PIDFILE="/var/run/unrealircd/${SVCNAME#unreal}.pid"
-
-# extra options to pass to unrealircd ...
-# You should not specify the -f option here; use
-# UNREALIRCD_CONF instead.
-#
-# [-h servername]
-# [-p portnumber]
-# [-x loglevel]
-# [-t] (to enable debug output)
-UNREALIRCD_OPTS=""

diff --git a/net-irc/unrealircd/files/unrealircd.confd-r2 b/net-irc/unrealircd/files/unrealircd.confd-r2
deleted file mode 100644
index ac7db3dbf00..00000000000
--- a/net-irc/unrealircd/files/unrealircd.confd-r2
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-# user to run unrealircd as
-UNREALIRCD_USER="unrealircd"
-
-# Which configuration file to load instead of unrealircd.conf. If you
-# want to run multiple instances of unrealircd, you must edit
-# files::pidfile to match UNREALIRCD_PIDFILE. You should also ensure
-# that files::tunefile is different for each unrealircd instance. See
-# https://www.unrealircd.org/docs/Configuration#Files_block
-#
-# To support multiple instances of unrealircd, you may create symlinks
-# in /etc/init.d pointing to /etc/init.d/unrealircd. It is recommended
-# that the scheme unrealircd.${instance_name} be used. For each
-# instance, you may make a copy of this file with the appropriate name
-# to override default options specific to that instance.
-UNREALIRCD_CONF="/etc/unrealircd/${SVCNAME}.conf"
-
-# The path where unrealircd is configured to create its pidfile.
-UNREALIRCD_PIDFILE="/var/run/unrealircd/${SVCNAME#unreal}.pid"
-
-# extra options to pass to unrealircd ...
-# You should not specify the -f option here; use
-# UNREALIRCD_CONF instead.
-#
-# [-h servername]
-# [-p portnumber]
-# [-x loglevel]
-# [-t] (to enable debug output)
-UNREALIRCD_OPTS=""
-
-# Extra flags to pass to start-stop-daemon. When initially
-# debugging, removing --quiet may help.
-UNREALIRCD_SSD_OPTS="--quiet"

diff --git a/net-irc/unrealircd/files/unrealircd.initd b/net-irc/unrealircd/files/unrealircd.initd
deleted file mode 100644
index cc4cd50e49d..00000000000
--- a/net-irc/unrealircd/files/unrealircd.initd
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-extra_started_commands="reload"
-
-# Defaults
-: ${UNREALIRCD_USER:=unrealircd}
-: ${UNREALIRCD_CONF:=/etc/unrealircd/${SVCNAME}.conf}
-: ${UNREALIRCD_PIDFILE:=/var/run/unrealircd/${SVCNAME#unreal}.pid}
-
-depend() {
-	use dns net
-	provide ircd
-}
-
-start() {
-	UNREALIRCD_PIDFILEDIR=${UNREALIRCD_PIDFILE%/*}
-	if ! [ -d "${UNREALIRCD_PIDFILEDIR}" ]; then
-		ebegin "Creating ${UNREALIRCD_PIDFILEDIR} for ${SVCNAME}"
-		mkdir "${UNREALIRCD_PIDFILEDIR}" \
-			&& chown :unrealircd "${UNREALIRCD_PIDFILEDIR}" \
-			&& chmod 770 "${UNREALIRCD_PIDFILEDIR}"
-		eend $?
-	fi
-
-	ebegin "Starting ${SVCNAME}"
-	start-stop-daemon --start --quiet --exec /usr/bin/unrealircd \
-		--user ${UNREALIRCD_USER} --pidfile "${UNREALIRCD_PIDFILE}" -- -f "${UNREALIRCD_CONF}" ${UNREALIRCD_OPTS}
-	eend $?
-}
-
-stop() {
-	ebegin "Stopping ${SVCNAME}"
-	start-stop-daemon --stop --quiet --pidfile "${UNREALIRCD_PIDFILE}"
-	eend $?
-}
-
-reload() {
-	ebegin "Reloading ${SVCNAME}"
-	start-stop-daemon --signal HUP --quiet --pidfile "${UNREALIRCD_PIDFILE}"
-	eend $?
-}

diff --git a/net-irc/unrealircd/files/unrealircd.initd-r1 b/net-irc/unrealircd/files/unrealircd.initd-r1
deleted file mode 100644
index 0c54752779f..00000000000
--- a/net-irc/unrealircd/files/unrealircd.initd-r1
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-extra_started_commands="reload"
-
-# Defaults
-: ${UNREALIRCD_USER:=unrealircd}
-: ${UNREALIRCD_CONF:=/etc/unrealircd/${SVCNAME}.conf}
-: ${UNREALIRCD_PIDFILE:=/run/unrealircd/${SVCNAME#unreal}.pid}
-
-depend() {
-	use dns net
-	provide ircd
-}
-
-start() {
-	UNREALIRCD_PIDFILEDIR=${UNREALIRCD_PIDFILE%/*}
-	if ! [ -d "${UNREALIRCD_PIDFILEDIR}" ]; then
-		ebegin "Creating ${UNREALIRCD_PIDFILEDIR} for ${SVCNAME}"
-		mkdir "${UNREALIRCD_PIDFILEDIR}" \
-			&& chown :unrealircd "${UNREALIRCD_PIDFILEDIR}" \
-			&& chmod 770 "${UNREALIRCD_PIDFILEDIR}"
-		eend $?
-	fi
-
-	ebegin "Starting ${SVCNAME}"
-	start-stop-daemon --start ${UNREALIRCD_SSD_OPTS} --exec /usr/bin/unrealircd \
-		--user ${UNREALIRCD_USER} --pidfile "${UNREALIRCD_PIDFILE}" -- -f "${UNREALIRCD_CONF}" ${UNREALIRCD_OPTS}
-	eend $?
-}
-
-stop() {
-	ebegin "Stopping ${SVCNAME}"
-	start-stop-daemon --stop ${UNREALIRCD_SSD_OPTS} --pidfile "${UNREALIRCD_PIDFILE}"
-	eend $?
-}
-
-reload() {
-	ebegin "Reloading ${SVCNAME}"
-	start-stop-daemon --signal HUP ${UNREALIRCD_SSD_OPTS} --pidfile "${UNREALIRCD_PIDFILE}"
-	eend $?
-}

diff --git a/net-irc/unrealircd/unrealircd-3.2.10.7.ebuild b/net-irc/unrealircd/unrealircd-3.2.10.7.ebuild
deleted file mode 100644
index e63246f588c..00000000000
--- a/net-irc/unrealircd/unrealircd-3.2.10.7.ebuild
+++ /dev/null
@@ -1,212 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=4
-
-inherit eutils ssl-cert versionator multilib user
-
-MY_P=Unreal${PV/_/-}
-
-DESCRIPTION="An advanced Internet Relay Chat daemon"
-HOMEPAGE="http://www.unrealircd.com/"
-SRC_URI="http://www.unrealircd.com/downloads/${MY_P}.tar.gz"
-
-SLOT="0"
-LICENSE="GPL-2"
-KEYWORDS="amd64 ppc x86 ~x86-fbsd ~amd64-linux"
-IUSE="class-nofakelag curl ipv6 +extban-stacking +operoverride operoverride-verify +prefixaq
-	showlistmodes shunnotices ssl topicisnuhost +usermod zlib"
-
-RDEPEND="ssl? ( dev-libs/openssl )
-	zlib? ( sys-libs/zlib )
-	curl? ( net-misc/curl[adns] )
-	dev-libs/tre
-	>=net-dns/c-ares-1.7"
-DEPEND="${RDEPEND}
-	>=sys-apps/sed-4
-	virtual/pkgconfig"
-
-S=${WORKDIR}/Unreal${PV}
-
-pkg_setup() {
-	enewuser unrealircd
-}
-
-src_prepare() {
-	# QA check against bundled pkgs
-	rm extras/*.gz || die
-
-	sed -i \
-		-e "s:ircd\.pid:${EPREFIX}/var/run/unrealircd/ircd.pid:" \
-		-e "s:ircd\.log:${EPREFIX}/var/log/unrealircd/ircd.log:" \
-		-e "s:debug\.log:${EPREFIX}/var/log/unrealircd/debug.log:" \
-		-e "s:ircd\.tune:${EPREFIX}/var/lib/unrealircd/ircd.tune:" \
-		include/config.h \
-		|| die "sed failed"
-
-	if use class-nofakelag; then
-		sed -i -e 's:#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
-	fi
-}
-
-src_configure() {
-	econf \
-		--with-listen=5 \
-		--with-dpath="${EPREFIX}"/etc/unrealircd \
-		--with-spath="${EPREFIX}"/usr/bin/unrealircd \
-		--with-nick-history=2000 \
-		--with-sendq=3000000 \
-		--with-bufferpool=18 \
-		--with-permissions=0600 \
-		--with-fd-setsize=1024 \
-		--with-system-cares \
-		--with-system-tre \
-		--enable-dynamic-linking \
-		$(use_enable curl libcurl "${EPREFIX}"/usr) \
-		$(use_enable ipv6 inet6) \
-		$(use_enable prefixaq) \
-		$(use_enable ssl ssl "${EPREFIX}"/usr) \
-		$(use_enable zlib ziplinks "${EPREFIX}"/usr) \
-		$(use_with showlistmodes) \
-		$(use_with topicisnuhost) \
-		$(use_with shunnotices) \
-		$(use_with !operoverride no-operoverride) \
-		$(use_with operoverride-verify) \
-		$(use_with !usermod disableusermod) \
-		$(use_with !extban-stacking disable-extendedban-stacking)
-}
-
-src_install() {
-	keepdir /var/{lib,log}/unrealircd
-
-	newbin src/ircd unrealircd
-
-	exeinto /usr/$(get_libdir)/unrealircd/modules
-	doexe src/modules/*.so
-
-	dodir /etc/unrealircd
-	dosym /var/lib/unrealircd /etc/unrealircd/tmp
-
-	insinto /etc/unrealircd
-	doins {badwords.*,help,spamfilter,dccallow}.conf
-	newins doc/example.conf unrealircd.conf
-
-	insinto /etc/unrealircd/aliases
-	doins aliases/*.conf
-
-	local so_suffix=so
-	[[ ${CHOST} == -*mingw* ]] && so_suffix=dll
-	sed -i \
-		-e s:src/modules:"${EPREFIX}"/usr/$(get_libdir)/unrealircd/modules: \
-		-e '/loadmodule.*\.'${so_suffix}'/s;^//;;' \
-		-e s:ircd\\.log:"${EPREFIX}"/var/log/unrealircd/ircd.log: \
-		"${ED}"/etc/unrealircd/unrealircd.conf \
-		|| die
-
-	dodoc \
-		Changes Donation Unreal.nfo \
-		ircdcron/{ircd.cron,ircdchk} \
-		|| die "dodoc failed"
-	dohtml doc/*.html
-
-	newinitd "${FILESDIR}"/unrealircd.initd unrealircd
-	newconfd "${FILESDIR}"/unrealircd.confd-r1 unrealircd
-
-	# config should be read-only
-	fperms -R 0640 /etc/unrealircd{,/aliases}
-	fperms 0750 /etc/unrealircd{,/aliases}
-	# state is editable but not owned by unrealircd directly
-	fperms 0770 /var/{lib,log}/unrealircd
-	fowners -R root:unrealircd /{etc,var/{lib,log}}/unrealircd
-}
-
-pkg_preinst() {
-	# Must pre-create directories; otherwise their permissions are lost
-	# on installation.
-
-	# Usage: _unrealircd_dir_permissions <user> <group> <mode> <dir>[, <dir>…]
-	#
-	# Ensure that directories are created with the correct permissions
-	# before portage tries to merge them to the filesystem because,
-	# otherwise, those directories are installed world-readable.
-	#
-	# If this is a first-time install, create those directories with
-	# correct permissions before installing. Otherwise, update
-	# permissions—but only if we are replacing an unrealircd ebuild at
-	# least as old as net-irc/unrealircd-3.2.10. Portage handles normal
-	# file permissions correctly, so no need for recursive
-	# chmoding/chowning.
-	_unrealircd_dir_permissions() {
-		local user=${1} group=${2} mode=${3} dir v
-		shift 3
-		while dir=${1} && shift; do
-			if [[ ! -d "${EROOT}${dir}" ]]; then
-				ebegin "Creating ${EROOT}${dir} with correct permissions"
-				install -d -m "${mode}" -o "${user}" -g "${group}" "${EROOT}${dir}" || die
-				eend ${?}
-			elif ! [[ ${REPLACING_VERSIONS} ]] || for v in ${REPLACING_VERSIONS}; do
-					# If 3.2.10 ≤ ${REPLACING_VERSIONS}, then we update
-					# existing permissions.
-					version_is_at_least "${v}" 3.2.10 && break
-				done; then
-				ebegin "Correcting permissions of ${EROOT}${dir} left by ${CATEGORY}/${PN}-${v}"
-				chmod "${mode}" "${EROOT}${dir}" \
-					&& chown ${user}:${group} "${EROOT}${dir}" \
-					|| die "Unable to correct permissions of ${EROOT}${dir}"
-				eend ${?}
-			fi
-		done
-	}
-
-	# unrealircd only needs to be able to read files in /etc/unrealircd.
-	_unrealircd_dir_permissions root unrealircd 0750 etc/unrealircd{,/aliases}
-
-	# unrealircd needs to be able to create files in /var/lib/unrealircd
-	# and /var/log/unrealircd.
-	_unrealircd_dir_permissions root unrealircd 0770 var/{lib,log}/unrealircd
-}
-
-pkg_postinst() {
-	# Move docert call from scr_install() to install_cert in pkg_postinst for
-	# bug #201682
-	if use ssl ; then
-		if [[ ! -f "${EROOT}"/etc/unrealircd/server.cert.key ]]; then
-			install_cert /etc/unrealircd/server.cert
-			chown unrealircd "${EROOT}"/etc/unrealircd/server.cert.*
-			chmod 0640 "${EROOT}"/etc/unrealircd/server.cert.*
-			ln -snf server.cert.key "${EROOT}"/etc/unrealircd/server.key.pem
-		fi
-	fi
-
-	local unrealircd_conf="${EROOT}"/etc/unrealircd/unrealircd.conf
-	# Fix up the default cloak keys.
-	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";$' "${unrealircd_conf}"; then
-		ebegin "Generating cloak-keys"
-		local keys=(
-			$(unrealircd -k 2>&1 | tail -n 3)
-		)
-		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
-		eend $?
-
-		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
-		sed -i \
-			-e '/cloak-keys/ {
-n
-s/"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";/"'"${keys[0]}"'";/
-n
-s/"and another one";/"'"${keys[1]}"'";/
-n
-s/"and another one";/"'"${keys[2]}"'";/
-}' \
-			"${unrealircd_conf}"
-		eend $?
-	fi
-
-	elog "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
-	elog
-	elog "You can find example cron scripts here:"
-	elog "   /usr/share/doc/${PF}/ircd.cron.gz"
-	elog "   /usr/share/doc/${PF}/ircdchk.gz"
-	elog
-	elog "You can also use /etc/init.d/unrealircd to start at boot"
-}

diff --git a/net-irc/unrealircd/unrealircd-4.0.12.ebuild b/net-irc/unrealircd/unrealircd-4.0.12.ebuild
deleted file mode 100644
index d5cab32b8f7..00000000000
--- a/net-irc/unrealircd/unrealircd-4.0.12.ebuild
+++ /dev/null
@@ -1,249 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-SSL_CERT_MANDATORY=1
-inherit autotools eutils ssl-cert versionator multilib user
-
-DESCRIPTION="An advanced Internet Relay Chat daemon"
-HOMEPAGE="https://www.unrealircd.org/"
-SRC_URI="https://www.unrealircd.org/${PN}$(get_version_component_range 1)/${P}.tar.gz"
-
-SLOT="0"
-LICENSE="GPL-2"
-KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd ~amd64-linux"
-IUSE="class-nofakelag curl +extban-stacking +operoverride operoverride-verify +prefixaq
-	showlistmodes shunnotices topicisnuhost +usermod"
-
-RDEPEND="dev-libs/openssl:=
-	curl? ( net-misc/curl[adns] )
-	dev-libs/libpcre2
-	dev-libs/tre
-	>=net-dns/c-ares-1.7"
-DEPEND="${RDEPEND}
-	virtual/pkgconfig"
-
-pkg_pretend() {
-	local v
-	for v in ${REPLACING_VERSIONS}; do
-		version_is_at_least 4 "${v}" && continue
-		ewarn "The configuration file format has changed since ${v}."
-		ewarn "Please be prepared to manually update them and visit:"
-		ewarn "https://www.unrealircd.org/docs/Upgrading_from_3.2.x"
-		break
-	done
-}
-
-pkg_setup() {
-	enewuser unrealircd
-}
-
-src_prepare() {
-	# QA check against bundled pkgs
-	rm -r extras || die
-
-	if use class-nofakelag; then
-		sed -i -e 's:#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
-	fi
-
-	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
-	# that to look for ca-certificates-provided file instead. %s is
-	# CONFDIR. #618066
-	sed -i -e 's:%s/ssl/curl-ca-bundle.crt:%s/../ssl/certs/ca-certificates.crt:' src/s_conf.c || die
-
-	epatch "${FILESDIR}"/${P}-without-privatelibdir.patch
-	eautoreconf -I autoconf/m4
-
-	eapply_user
-}
-
-src_configure() {
-	# Default value for privatelibdir adds a build path to -Wl,-rpath.
-	econf \
-		--with-bindir="${EPREFIX}"/usr/bin \
-		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
-		--with-confdir="${EPREFIX}"/etc/${PN} \
-		--with-datadir="${EPREFIX}"/var/lib/${PN} \
-		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
-		--with-logdir="${EPREFIX}"/var/log/${PN} \
-		--with-modulesdir="${EPREFIX}"/usr/"$(get_libdir)"/${PN}/modules \
-		--without-privatelibdir \
-		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
-		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
-		--with-nick-history=2000 \
-		--with-sendq=3000000 \
-		--with-permissions=0640 \
-		--with-fd-setsize=1024 \
-		--with-system-cares \
-		--with-system-pcre2 \
-		--with-system-tre \
-		--enable-dynamic-linking \
-		--enable-ssl="${EPREFIX}"/usr \
-		$(use_enable curl libcurl "${EPREFIX}"/usr) \
-		$(use_enable prefixaq) \
-		$(use_with showlistmodes) \
-		$(use_with topicisnuhost) \
-		$(use_with shunnotices) \
-		$(use_with !operoverride no-operoverride) \
-		$(use_with operoverride-verify) \
-		$(use_with !usermod disableusermod) \
-		$(use_with !extban-stacking disable-extendedban-stacking)
-}
-
-src_install() {
-	keepdir /var/log/${PN}
-	keepdir /var/lib/${PN}/tmp
-
-	newbin src/ircd ${PN}
-
-	(
-		cd src/modules || die
-		for subdir in $(find . -type d -print); do
-			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
-				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
-				doexe "${subdir}"/*.so
-			fi
-		done
-	)
-
-	insinto /etc/${PN}
-	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
-	# is redundant with app-misc/ca-certificates and examples will all
-	# be in docs anyway.
-	doins -r doc/conf/{aliases,help}
-	doins doc/conf/*.conf
-	newins doc/conf/examples/example.conf ${PN}.conf
-	keepdir /etc/${PN}/ssl
-
-	dodoc \
-		doc/{Changes.old,Changes.older,RELEASE-NOTES} \
-		doc/{Donation,translations.txt}
-
-	newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
-	newconfd "${FILESDIR}"/${PN}.confd-r2 ${PN}
-
-	# config should be read-only
-	fperms -R 0640 /etc/${PN}
-	fperms 0750 /etc/${PN}{,/aliases,/help}
-	fperms 0750 /etc/${PN}/ssl
-	# state is editable but not owned by unrealircd directly
-	fperms 0770 /var/log/${PN}
-	fperms 0770 /var/lib/${PN}{,/tmp}
-	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
-}
-
-pkg_preinst() {
-	# Must pre-create directories; otherwise their permissions are lost
-	# on installation.
-
-	# Usage: _unrealircd_dir_permissions <user> <group> <mode> <dir>[, <dir>…]
-	#
-	# Ensure that directories are created with the correct permissions
-	# before portage tries to merge them to the filesystem because,
-	# otherwise, those directories are installed world-readable.
-	#
-	# If this is a first-time install, create those directories with
-	# correct permissions before installing. Otherwise, update
-	# permissions—but only if we are replacing an unrealircd ebuild at
-	# least as old as net-irc/unrealircd-3.2.10. Portage handles normal
-	# file permissions correctly, so no need for recursive
-	# chmoding/chowning.
-	_unrealircd_dir_permissions() {
-		local user=${1} group=${2} mode=${3} dir v
-		shift 3
-		while dir=${1} && shift; do
-			if [[ ! -d "${EROOT}${dir}" ]]; then
-				ebegin "Creating ""${EROOT}${dir}"" with correct permissions"
-				install -d -m "${mode}" -o "${user}" -g "${group}" "${EROOT}${dir}" || die
-				eend ${?}
-			elif ! [[ ${REPLACING_VERSIONS} ]] || for v in ${REPLACING_VERSIONS}; do
-					# If 3.2.10 ≤ ${REPLACING_VERSIONS}, then we update
-					# existing permissions.
-					version_is_at_least "${v}" 3.2.10 && break
-				done; then
-				ebegin "Correcting permissions of ""${EROOT}${dir}"" left by ${CATEGORY}/${PN}-${v}"
-				chmod "${mode}" "${EROOT}${dir}" \
-					&& chown ${user}:${group} "${EROOT}${dir}" \
-					|| die "Unable to correct permissions of ${EROOT}${dir}"
-				eend ${?}
-			fi
-		done
-	}
-
-	# unrealircd only needs to be able to read files in /etc/unrealircd.
-	_unrealircd_dir_permissions root unrealircd 0750 etc/${PN}{,/aliases}
-
-	# unrealircd needs to be able to create files in /var/lib/unrealircd
-	# and /var/log/unrealircd.
-	_unrealircd_dir_permissions root unrealircd 0770 var/{lib,log}/${PN}
-}
-
-pkg_postinst() {
-	# Move docert call from src_install() to install_cert in pkg_postinst for
-	# bug #201682
-	if [[ ! -f "${EROOT}"etc/${PN}/ssl/server.cert.key ]]; then
-		if [[ -f "${EROOT}"etc/${PN}/server.cert.key ]]; then
-			ewarn "The location ${PN} looks for SSL certificates has changed"
-			ewarn "from ${EROOT}etc/${PN} to ${EROOT}etc/${PN}/ssl."
-			ewarn "Please move your existing certificates."
-		else
-			(
-				umask 0037
-				install_cert /etc/${PN}/ssl/server.cert
-				chown unrealircd "${EROOT}"etc/${PN}/ssl/server.cert.*
-				ln -snf server.cert.key "${EROOT}"etc/${PN}/ssl/server.key.pem
-			)
-		fi
-	fi
-
-	local unrealircd_conf="${EROOT}"etc/${PN}/${PN}.conf
-	# Fix up the default cloak keys.
-	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";$' "${unrealircd_conf}"; then
-		ebegin "Generating cloak-keys"
-		local keys=(
-			$(${PN} -k 2>&1 | tail -n 3)
-		)
-		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
-		eend $?
-
-		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
-		sed -i \
-			-e '/cloak-keys/ {
-n
-s/"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";/"'"${keys[0]}"'";/
-n
-s/"and another one";/"'"${keys[1]}"'";/
-n
-s/"and another one";/"'"${keys[2]}"'";/
-}' \
-			"${unrealircd_conf}"
-		eend $?
-	fi
-
-	# Precreate ircd.tune and ircd.log with the correct ownership to
-	# protect people from themselves when they run unrealircd as root
-	# before trying the initscripts. #560790
-	local f
-	for f in "${EROOT}"var/{lib/${PN}/ircd.tune,log/${PN}/ircd.log}; do
-		[[ -e ${f} ]] && continue
-		ebegin "Precreating ${f} to set ownership"
-		(
-			umask 0037
-			# ircd.tune must be seeded with content instead of being empty.
-			if [[ ${f} == *ircd.tune ]]; then
-				echo 0 > "${f}"
-				echo 0 >> "${f}"
-			fi
-			touch "${f}"
-		)
-		chown unrealircd "${f}"
-		eend $?
-	done
-
-	elog "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
-	elog
-	elog "You can also configure ${PN} start at boot with rc-update(1)."
-	elog "It is recommended to run unrealircd as an unprivileged user."
-	elog "The provided init.d script does this for you."
-}

diff --git a/net-irc/unrealircd/unrealircd-4.0.17.ebuild b/net-irc/unrealircd/unrealircd-4.0.17.ebuild
deleted file mode 100644
index fd9b43877ff..00000000000
--- a/net-irc/unrealircd/unrealircd-4.0.17.ebuild
+++ /dev/null
@@ -1,250 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-SSL_CERT_MANDATORY=1
-inherit ssl-cert versionator user
-
-DESCRIPTION="An advanced Internet Relay Chat daemon"
-HOMEPAGE="https://www.unrealircd.org/"
-SRC_URI="https://www.unrealircd.org/${PN}$(get_version_component_range 1)/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd ~amd64-linux"
-IUSE="class-nofakelag curl +extban-stacking +operoverride operoverride-verify +prefixaq
-	showlistmodes shunnotices topicisnuhost +usermod"
-
-RDEPEND="
-	dev-libs/openssl:0=
-	dev-libs/libpcre2
-	dev-libs/tre
-	>=net-dns/c-ares-1.7:=
-	sys-libs/zlib
-	curl? ( net-misc/curl[adns] )
-"
-DEPEND="${RDEPEND}
-	virtual/pkgconfig
-"
-
-DOCS=( doc/{Authors,Donation,RELEASE-NOTES{,.old},tao.of.irc,technical/,translations.txt} )
-
-pkg_pretend() {
-	local v
-	for v in ${REPLACING_VERSIONS}; do
-		version_is_at_least 4 "${v}" && continue
-		ewarn "The configuration file format has changed since ${v}."
-		ewarn "Please be prepared to manually update them and visit:"
-		ewarn "https://www.unrealircd.org/docs/Upgrading_from_3.2.x"
-		break
-	done
-}
-
-pkg_setup() {
-	enewuser unrealircd
-}
-
-src_prepare() {
-	# QA check against bundled pkgs
-	rm -r extras || die
-
-	if use class-nofakelag; then
-		sed -i -e 's:#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
-	fi
-
-	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
-	# that to look for ca-certificates-provided file instead. %s is
-	# CONFDIR. #618066
-	sed -i -e 's:%s/ssl/curl-ca-bundle.crt:%s/../ssl/certs/ca-certificates.crt:' src/s_conf.c || die
-
-	eapply_user
-}
-
-src_configure() {
-	# Default value for privatelibdir adds a build path to -Wl,-rpath.
-	econf \
-		--with-bindir="${EPREFIX}"/usr/bin \
-		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
-		--with-confdir="${EPREFIX}"/etc/${PN} \
-		--with-datadir="${EPREFIX}"/var/lib/${PN} \
-		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
-		--with-logdir="${EPREFIX}"/var/log/${PN} \
-		--with-modulesdir="${EPREFIX}"/usr/"$(get_libdir)"/${PN}/modules \
-		--without-privatelibdir \
-		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
-		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
-		--with-nick-history=2000 \
-		--with-sendq=3000000 \
-		--with-permissions=0640 \
-		--with-fd-setsize=1024 \
-		--with-system-cares \
-		--with-system-pcre2 \
-		--with-system-tre \
-		--enable-dynamic-linking \
-		--enable-ssl="${EPREFIX}"/usr \
-		$(use_enable curl libcurl "${EPREFIX}"/usr) \
-		$(use_enable prefixaq) \
-		$(use_with showlistmodes) \
-		$(use_with topicisnuhost) \
-		$(use_with shunnotices) \
-		$(use_with !operoverride no-operoverride) \
-		$(use_with operoverride-verify) \
-		$(use_with !usermod disableusermod) \
-		$(use_with !extban-stacking disable-extendedban-stacking)
-}
-
-src_install() {
-	keepdir /var/log/${PN}
-	keepdir /var/lib/${PN}/tmp
-
-	newbin src/ircd ${PN}
-
-	(
-		cd src/modules || die
-		for subdir in $(find . -type d -print); do
-			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
-				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
-				doexe "${subdir}"/*.so
-			fi
-		done
-	)
-
-	insinto /etc/${PN}
-	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
-	# is redundant with app-misc/ca-certificates and examples will all
-	# be in docs anyway.
-	doins -r doc/conf/{aliases,help}
-	doins doc/conf/*.conf
-	newins doc/conf/examples/example.conf ${PN}.conf
-	keepdir /etc/${PN}/ssl
-
-	einstalldocs
-
-	newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
-	newconfd "${FILESDIR}"/${PN}.confd-r2 ${PN}
-
-	# config should be read-only
-	fperms -R 0640 /etc/${PN}
-	fperms 0750 /etc/${PN}{,/aliases,/help}
-	fperms 0750 /etc/${PN}/ssl
-	# state is editable but not owned by unrealircd directly
-	fperms 0770 /var/log/${PN}
-	fperms 0770 /var/lib/${PN}{,/tmp}
-	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
-}
-
-pkg_preinst() {
-	# Must pre-create directories; otherwise their permissions are lost
-	# on installation.
-
-	# Usage: _unrealircd_dir_permissions <user> <group> <mode> <dir>[, <dir>…]
-	#
-	# Ensure that directories are created with the correct permissions
-	# before portage tries to merge them to the filesystem because,
-	# otherwise, those directories are installed world-readable.
-	#
-	# If this is a first-time install, create those directories with
-	# correct permissions before installing. Otherwise, update
-	# permissions—but only if we are replacing an unrealircd ebuild at
-	# least as old as net-irc/unrealircd-3.2.10. Portage handles normal
-	# file permissions correctly, so no need for recursive
-	# chmoding/chowning.
-	_unrealircd_dir_permissions() {
-		local user=${1} group=${2} mode=${3} dir v
-		shift 3
-		while dir=${1} && shift; do
-			if [[ ! -d "${EROOT}${dir}" ]]; then
-				ebegin "Creating ""${EROOT}${dir}"" with correct permissions"
-				install -d -m "${mode}" -o "${user}" -g "${group}" "${EROOT}${dir}" || die
-				eend ${?}
-			elif ! [[ ${REPLACING_VERSIONS} ]] || for v in ${REPLACING_VERSIONS}; do
-					# If 3.2.10 ≤ ${REPLACING_VERSIONS}, then we update
-					# existing permissions.
-					version_is_at_least "${v}" 3.2.10 && break
-				done; then
-				ebegin "Correcting permissions of ""${EROOT}${dir}"" left by ${CATEGORY}/${PN}-${v}"
-				chmod "${mode}" "${EROOT}${dir}" \
-					&& chown ${user}:${group} "${EROOT}${dir}" \
-					|| die "Unable to correct permissions of ${EROOT}${dir}"
-				eend ${?}
-			fi
-		done
-	}
-
-	# unrealircd only needs to be able to read files in /etc/unrealircd.
-	_unrealircd_dir_permissions root unrealircd 0750 etc/${PN}{,/aliases}
-
-	# unrealircd needs to be able to create files in /var/lib/unrealircd
-	# and /var/log/unrealircd.
-	_unrealircd_dir_permissions root unrealircd 0770 var/{lib,log}/${PN}
-}
-
-pkg_postinst() {
-	# Move docert call from src_install() to install_cert in pkg_postinst for
-	# bug #201682
-	if [[ ! -f "${EROOT}"etc/${PN}/ssl/server.cert.key ]]; then
-		if [[ -f "${EROOT}"etc/${PN}/server.cert.key ]]; then
-			ewarn "The location ${PN} looks for SSL certificates has changed"
-			ewarn "from ${EROOT}etc/${PN} to ${EROOT}etc/${PN}/ssl."
-			ewarn "Please move your existing certificates."
-		else
-			(
-				umask 0037
-				install_cert /etc/${PN}/ssl/server.cert
-				chown unrealircd "${EROOT}"etc/${PN}/ssl/server.cert.*
-				ln -snf server.cert.key "${EROOT}"etc/${PN}/ssl/server.key.pem
-			)
-		fi
-	fi
-
-	local unrealircd_conf="${EROOT}"etc/${PN}/${PN}.conf
-	# Fix up the default cloak keys.
-	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";$' "${unrealircd_conf}"; then
-		ebegin "Generating cloak-keys"
-		local keys=(
-			$(${PN} -k 2>&1 | tail -n 3)
-		)
-		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
-		eend $?
-
-		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
-		sed -i \
-			-e '/cloak-keys/ {
-n
-s/"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";/"'"${keys[0]}"'";/
-n
-s/"and another one";/"'"${keys[1]}"'";/
-n
-s/"and another one";/"'"${keys[2]}"'";/
-}' \
-			"${unrealircd_conf}"
-		eend $?
-	fi
-
-	# Precreate ircd.tune and ircd.log with the correct ownership to
-	# protect people from themselves when they run unrealircd as root
-	# before trying the initscripts. #560790
-	local f
-	for f in "${EROOT}"var/{lib/${PN}/ircd.tune,log/${PN}/ircd.log}; do
-		[[ -e ${f} ]] && continue
-		ebegin "Precreating ${f} to set ownership"
-		(
-			umask 0037
-			# ircd.tune must be seeded with content instead of being empty.
-			if [[ ${f} == *ircd.tune ]]; then
-				echo 0 > "${f}"
-				echo 0 >> "${f}"
-			fi
-			touch "${f}"
-		)
-		chown unrealircd "${f}"
-		eend $?
-	done
-
-	elog "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
-	elog
-	elog "You can also configure ${PN} start at boot with rc-update(1)."
-	elog "It is recommended to run unrealircd as an unprivileged user."
-	elog "The provided init.d script does this for you."
-}

diff --git a/net-irc/unrealircd/unrealircd-4.0.18.ebuild b/net-irc/unrealircd/unrealircd-4.0.18.ebuild
deleted file mode 100644
index e2003270220..00000000000
--- a/net-irc/unrealircd/unrealircd-4.0.18.ebuild
+++ /dev/null
@@ -1,184 +0,0 @@
-# Copyright 1999-2018 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-SSL_CERT_MANDATORY=1
-inherit ssl-cert user versionator
-
-DESCRIPTION="An advanced Internet Relay Chat daemon"
-HOMEPAGE="https://www.unrealircd.org/"
-SRC_URI="https://www.unrealircd.org/${PN}$(get_version_component_range 1)/${P}.tar.gz"
-
-LICENSE="GPL-2"
-SLOT="0"
-KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd ~amd64-linux"
-IUSE="class-nofakelag curl +extban-stacking +operoverride operoverride-verify +prefixaq
-	showlistmodes shunnotices topicisnuhost +usermod"
-
-RDEPEND="
-	dev-libs/openssl:0=
-	dev-libs/libpcre2
-	dev-libs/tre
-	>=net-dns/c-ares-1.7:=
-	sys-libs/zlib
-	curl? ( net-misc/curl[adns] )
-"
-DEPEND="${RDEPEND}
-	virtual/pkgconfig
-"
-
-DOCS=( doc/{Authors,Donation,RELEASE-NOTES{,.old},tao.of.irc,technical/,translations.txt} )
-
-pkg_pretend() {
-	local v
-	for v in ${REPLACING_VERSIONS}; do
-		version_is_at_least 4 "${v}" && continue
-		ewarn "The configuration file format has changed since ${v}."
-		ewarn "Please be prepared to manually update them and visit:"
-		ewarn "https://www.unrealircd.org/docs/Upgrading_from_3.2.x"
-		break
-	done
-}
-
-pkg_setup() {
-	enewuser unrealircd
-}
-
-src_prepare() {
-	# QA check against bundled pkgs
-	rm -r extras || die
-
-	if use class-nofakelag; then
-		sed -i -e 's:#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
-	fi
-
-	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
-	# that to look for ca-certificates-provided file instead. %s is
-	# CONFDIR. #618066
-	sed -i -e 's:%s/ssl/curl-ca-bundle.crt:%s/../ssl/certs/ca-certificates.crt:' src/s_conf.c || die
-
-	eapply_user
-}
-
-src_configure() {
-	# Default value for privatelibdir adds a build path to -Wl,-rpath.
-	econf \
-		--with-bindir="${EPREFIX}"/usr/bin \
-		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
-		--with-confdir="${EPREFIX}"/etc/${PN} \
-		--with-datadir="${EPREFIX}"/var/lib/${PN} \
-		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
-		--with-logdir="${EPREFIX}"/var/log/${PN} \
-		--with-modulesdir="${EPREFIX}"/usr/"$(get_libdir)"/${PN}/modules \
-		--without-privatelibdir \
-		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
-		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
-		--with-nick-history=2000 \
-		--with-sendq=3000000 \
-		--with-permissions=0640 \
-		--with-fd-setsize=1024 \
-		--with-system-cares \
-		--with-system-pcre2 \
-		--with-system-tre \
-		--enable-dynamic-linking \
-		--enable-ssl="${EPREFIX}"/usr \
-		$(use_enable curl libcurl "${EPREFIX}"/usr) \
-		$(use_enable prefixaq) \
-		$(use_with showlistmodes) \
-		$(use_with topicisnuhost) \
-		$(use_with shunnotices) \
-		$(use_with !operoverride no-operoverride) \
-		$(use_with operoverride-verify) \
-		$(use_with !usermod disableusermod) \
-		$(use_with !extban-stacking disable-extendedban-stacking)
-}
-
-src_install() {
-	keepdir /var/log/${PN}
-	keepdir /var/lib/${PN}/tmp
-
-	newbin src/ircd ${PN}
-
-	(
-		cd src/modules || die
-		for subdir in $(find . -type d -print); do
-			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
-				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
-				doexe "${subdir}"/*.so
-			fi
-		done
-	)
-
-	insinto /etc/${PN}
-	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
-	# is redundant with app-misc/ca-certificates and examples will all
-	# be in docs anyway.
-	doins -r doc/conf/{aliases,help}
-	doins doc/conf/*.conf
-	newins doc/conf/examples/example.conf ${PN}.conf
-	keepdir /etc/${PN}/ssl
-
-	einstalldocs
-
-	newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
-	newconfd "${FILESDIR}"/${PN}.confd-r2 ${PN}
-
-	# config should be read-only
-	fperms -R 0640 /etc/${PN}
-	fperms 0750 /etc/${PN}{,/aliases,/help}
-	fperms 0750 /etc/${PN}/ssl
-	# state is editable but not owned by unrealircd directly
-	fperms 0770 /var/log/${PN}
-	fperms 0770 /var/lib/${PN}{,/tmp}
-	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
-}
-
-pkg_postinst() {
-	# Move docert call from src_install() to install_cert in pkg_postinst for
-	# bug #201682
-	if [[ ! -f "${EROOT}"etc/${PN}/ssl/server.cert.key ]]; then
-		if [[ -f "${EROOT}"etc/${PN}/server.cert.key ]]; then
-			ewarn "The location ${PN} looks for SSL certificates has changed"
-			ewarn "from ${EROOT}etc/${PN} to ${EROOT}etc/${PN}/ssl."
-			ewarn "Please move your existing certificates."
-		else
-			(
-				umask 0037
-				install_cert /etc/${PN}/ssl/server.cert
-				chown unrealircd "${EROOT}"etc/${PN}/ssl/server.cert.*
-				ln -snf server.cert.key "${EROOT}"etc/${PN}/ssl/server.key.pem
-			)
-		fi
-	fi
-
-	local unrealircd_conf="${EROOT}"etc/${PN}/${PN}.conf
-	# Fix up the default cloak keys.
-	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";$' "${unrealircd_conf}"; then
-		ebegin "Generating cloak-keys"
-		local keys=(
-			$(su ${PN} -s /bin/sh -c "${PN} -k 2>&1 | tail -n 3")
-		)
-		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
-		eend $?
-
-		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
-		sed -i \
-			-e '/cloak-keys/ {
-n
-s/"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";/"'"${keys[0]}"'";/
-n
-s/"and another one";/"'"${keys[1]}"'";/
-n
-s/"and another one";/"'"${keys[2]}"'";/
-}' \
-			"${unrealircd_conf}"
-		eend $?
-	fi
-
-	elog "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
-	elog
-	elog "You can also configure ${PN} start at boot with rc-update(1)."
-	elog "It is recommended to run unrealircd as an unprivileged user."
-	elog "The provided init.d script does this for you."
-}


^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [gentoo-commits] repo/gentoo:master commit in: net-irc/unrealircd/, net-irc/unrealircd/files/
@ 2017-07-11  6:27 Nathan Phillip Brink
  0 siblings, 0 replies; 6+ messages in thread
From: Nathan Phillip Brink @ 2017-07-11  6:27 UTC (permalink / raw
  To: gentoo-commits

commit:     b8449dedf758fb5eb8f67c76b3d6adb5bfb968da
Author:     Nathan Phillip Brink <binki <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 11 06:27:20 2017 +0000
Commit:     Nathan Phillip Brink <binki <AT> gentoo <DOT> org>
CommitDate: Tue Jul 11 06:27:20 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8449ded

net-irc/unrealircd: Bump to 4.0.12.

Requires upstream-accepted patch to fix QA warning about extraneous
-Wl,-rpath.

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 net-irc/unrealircd/Manifest                        |   1 +
 .../unrealircd-4.0.12-without-privatelibdir.patch  |  70 ++++++
 net-irc/unrealircd/unrealircd-4.0.12.ebuild        | 249 +++++++++++++++++++++
 3 files changed, 320 insertions(+)

diff --git a/net-irc/unrealircd/Manifest b/net-irc/unrealircd/Manifest
index 29e75969913..e7a3d82915a 100644
--- a/net-irc/unrealircd/Manifest
+++ b/net-irc/unrealircd/Manifest
@@ -1,2 +1,3 @@
 DIST Unreal3.2.10.7.tar.gz 3539026 SHA256 472e12cd42d2e725a1795e2bead4786062775782bd015a07697c2edf400d4047 SHA512 7d5fd4729fdde56c6b3e38a93bc365857b5b4faf58cb39e844b43e87872623abc7527025247eeda8c8535576e2b1b8ef14d482c964ce940cafb5de77cc9e1667 WHIRLPOOL 48c578ba12a36ab8078b5569d5de05134699218a6265591aa9ce80614015d96c76624eda17c42b7301379ebbd48e1ea1a62360b624e1d482cbdae562905a95a2
+DIST unrealircd-4.0.12.tar.gz 5521686 SHA256 db82848fef9ccc2e97ee4decf0167118554d7d5ce396c8e2c902229e6b19ffe8 SHA512 3df18e07226673d76977771f91f0f6c2129955523f1330519e5cada7989c8987382d78770c95837d520737796cf4fa84f1de3eb0f08ef017c5c56f775cf45420 WHIRLPOOL 75a8a6a93dd82fdf3da5ff35b6c8554f1ec47b445714197b96ba49d3a3b09f2f995acb2c380e51434d84c681f92699d8227ebacfe6f6cdf72dc667c2ae612324
 DIST unrealircd-4.0.6.tar.gz 4877399 SHA256 0193754212e01eba96aed7c2fb2f1d022408f424d251e8b0db870e714c752f09 SHA512 3cf70334966b87902e4a94e391545549df96885ebec26f7d2ec3f2620e18c829c3f7f566b4c1a22c8bcf16d19fdcb35ed10e37d4ce981fe2decd3b90ff204486 WHIRLPOOL f415f846da32de33cc19e16c66af465e058b29184dfdb4624bc78b06e901bc4d5a98a15761fd2dc773715e39c272435de4bc24007db1c06291b15f0edff2d7ba

diff --git a/net-irc/unrealircd/files/unrealircd-4.0.12-without-privatelibdir.patch b/net-irc/unrealircd/files/unrealircd-4.0.12-without-privatelibdir.patch
new file mode 100644
index 00000000000..03b7a7a0eb2
--- /dev/null
+++ b/net-irc/unrealircd/files/unrealircd-4.0.12-without-privatelibdir.patch
@@ -0,0 +1,70 @@
+From 2b94733cbe0161b58084a2e7a26985e6d321e1c8 Mon Sep 17 00:00:00 2001
+From: Nathan Phillip Brink <binki@gentoo.org>
+Date: Thu, 6 Jul 2017 06:04:18 +0000
+Subject: [PATCH] Support --without-privatelibdir for packagers.
+
+---
+ configure.ac | 22 +++++++++++++---------
+ 1 file changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 78360df..aa49df5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -586,15 +586,19 @@ AC_ARG_WITH(pidfile, [AS_HELP_STRING([--with-pidfile=path],[Specify the path of
+ 	[AC_DEFINE_UNQUOTED([PIDFILE], ["$HOME/unrealircd/data/unrealircd.pid"], [Define the path of the pid file])
+ 		PIDFILE="$HOME/unrealircd/data/unrealircd.pid"])
+ 
+-LDFLAGS_PRIVATELIBS=""
+-AC_ARG_WITH(privatelibdir, [AS_HELP_STRING([--with-privatelibdir=path],[Specify the directory where private libraries are stored])],
+-	[AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$withval"], [Define the location of private libraries])
+-		PRIVATELIBDIR="$withval"
+-		LDFLAGS_PRIVATELIBS="-Wl,-rpath=$PRIVATELIBDIR"
+-		LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS"
+-		export LDFLAGS],
+-	[AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$HOME/unrealircd/lib"], [Define the location of private libraries])
+-		PRIVATELIBDIR="$HOME/unrealircd/lib"
++dnl Ensure that this “feature” can be disabled as it makes it harder to package unrealircd.
++dnl Users have always been able to specify “./configure LDFLAGS=-Wl,-rpath,/path/to/blah”—binki
++AC_ARG_WITH(privatelibdir, [AS_HELP_STRING([--with-privatelibdir=path],[Specify the directory where private libraries are stored. Disable when building a package for a distro])],
++	[],
++	[with_privatelibdir="yes"])
++AS_IF([test "x$with_privatelibdir" = "xno"],
++	[PRIVATELIBDIR=],
++	[test "x$with_privatelibdir" = "xyes"],
++	[PRIVATELIBDIR="$HOME/unrealircd/lib"],
++	[PRIVATELIBDIR="$with_privatelibdir"])
++AS_IF([test "x$PRIVATELIBDIR" = "x"],
++	[LDFLAGS_PRIVATELIBS=""],
++	[AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$PRIVATELIBDIR"], [Define the location of private libraries])
+ 		LDFLAGS_PRIVATELIBS="-Wl,-rpath=$PRIVATELIBDIR"
+ 		LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS"
+ 		export LDFLAGS])
+-- 
+2.4.6
+
+From 6591e6bcee0858b7cddf6fcfee7dbe04ae511169 Mon Sep 17 00:00:00 2001
+From: Nathan Phillip Brink <binki@gentoo.org>
+Date: Thu, 6 Jul 2017 06:43:20 +0000
+Subject: [PATCH] Do not try to delete libcares when not using PRIVATELIBDIR.
+
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index aa49df5..874d58f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -786,7 +786,7 @@ dnl Use system c-ares when available, unless --without-system-cares.
+ has_system_cares="no"
+ AS_IF([test "x$with_system_cares" = "xyes"],[
+ PKG_CHECK_MODULES([CARES], libcares >= 1.6.0,[has_system_cares=yes
+-rm -f "$PRIVATELIBDIR/"libcares*],[has_system_cares=no])])
++AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libcares*])],[has_system_cares=no])])
+ 
+ AS_IF([test "$has_system_cares" = "no"], [
+ dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE!
+-- 
+2.4.6
+

diff --git a/net-irc/unrealircd/unrealircd-4.0.12.ebuild b/net-irc/unrealircd/unrealircd-4.0.12.ebuild
new file mode 100644
index 00000000000..d5cab32b8f7
--- /dev/null
+++ b/net-irc/unrealircd/unrealircd-4.0.12.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+SSL_CERT_MANDATORY=1
+inherit autotools eutils ssl-cert versionator multilib user
+
+DESCRIPTION="An advanced Internet Relay Chat daemon"
+HOMEPAGE="https://www.unrealircd.org/"
+SRC_URI="https://www.unrealircd.org/${PN}$(get_version_component_range 1)/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~x86 ~x86-fbsd ~amd64-linux"
+IUSE="class-nofakelag curl +extban-stacking +operoverride operoverride-verify +prefixaq
+	showlistmodes shunnotices topicisnuhost +usermod"
+
+RDEPEND="dev-libs/openssl:=
+	curl? ( net-misc/curl[adns] )
+	dev-libs/libpcre2
+	dev-libs/tre
+	>=net-dns/c-ares-1.7"
+DEPEND="${RDEPEND}
+	virtual/pkgconfig"
+
+pkg_pretend() {
+	local v
+	for v in ${REPLACING_VERSIONS}; do
+		version_is_at_least 4 "${v}" && continue
+		ewarn "The configuration file format has changed since ${v}."
+		ewarn "Please be prepared to manually update them and visit:"
+		ewarn "https://www.unrealircd.org/docs/Upgrading_from_3.2.x"
+		break
+	done
+}
+
+pkg_setup() {
+	enewuser unrealircd
+}
+
+src_prepare() {
+	# QA check against bundled pkgs
+	rm -r extras || die
+
+	if use class-nofakelag; then
+		sed -i -e 's:#undef\( FAKELAG_CONFIGURABLE\):#define\1:' include/config.h || die
+	fi
+
+	# By default looks in /etc/unrealircd/ssl/curl-ca-bundle.crt. Fix
+	# that to look for ca-certificates-provided file instead. %s is
+	# CONFDIR. #618066
+	sed -i -e 's:%s/ssl/curl-ca-bundle.crt:%s/../ssl/certs/ca-certificates.crt:' src/s_conf.c || die
+
+	epatch "${FILESDIR}"/${P}-without-privatelibdir.patch
+	eautoreconf -I autoconf/m4
+
+	eapply_user
+}
+
+src_configure() {
+	# Default value for privatelibdir adds a build path to -Wl,-rpath.
+	econf \
+		--with-bindir="${EPREFIX}"/usr/bin \
+		--with-cachedir="${EPREFIX}"/var/lib/${PN} \
+		--with-confdir="${EPREFIX}"/etc/${PN} \
+		--with-datadir="${EPREFIX}"/var/lib/${PN} \
+		--with-docdir="${EPREFIX}"/usr/share/doc/${PF} \
+		--with-logdir="${EPREFIX}"/var/log/${PN} \
+		--with-modulesdir="${EPREFIX}"/usr/"$(get_libdir)"/${PN}/modules \
+		--without-privatelibdir \
+		--with-pidfile="${EPREFIX}"/run/${PN}/ircd.pid \
+		--with-tmpdir="${EPREFIX}"/var/lib/${PN}/tmp \
+		--with-nick-history=2000 \
+		--with-sendq=3000000 \
+		--with-permissions=0640 \
+		--with-fd-setsize=1024 \
+		--with-system-cares \
+		--with-system-pcre2 \
+		--with-system-tre \
+		--enable-dynamic-linking \
+		--enable-ssl="${EPREFIX}"/usr \
+		$(use_enable curl libcurl "${EPREFIX}"/usr) \
+		$(use_enable prefixaq) \
+		$(use_with showlistmodes) \
+		$(use_with topicisnuhost) \
+		$(use_with shunnotices) \
+		$(use_with !operoverride no-operoverride) \
+		$(use_with operoverride-verify) \
+		$(use_with !usermod disableusermod) \
+		$(use_with !extban-stacking disable-extendedban-stacking)
+}
+
+src_install() {
+	keepdir /var/log/${PN}
+	keepdir /var/lib/${PN}/tmp
+
+	newbin src/ircd ${PN}
+
+	(
+		cd src/modules || die
+		for subdir in $(find . -type d -print); do
+			if [[ -n $(shopt -s nullglob; echo ${subdir}/*.so) ]]; then
+				exeinto /usr/$(get_libdir)/${PN}/modules/"${subdir}"
+				doexe "${subdir}"/*.so
+			fi
+		done
+	)
+
+	insinto /etc/${PN}
+	# Purposefully omitting the examples/ and ssl/ subdirectories. ssl
+	# is redundant with app-misc/ca-certificates and examples will all
+	# be in docs anyway.
+	doins -r doc/conf/{aliases,help}
+	doins doc/conf/*.conf
+	newins doc/conf/examples/example.conf ${PN}.conf
+	keepdir /etc/${PN}/ssl
+
+	dodoc \
+		doc/{Changes.old,Changes.older,RELEASE-NOTES} \
+		doc/{Donation,translations.txt}
+
+	newinitd "${FILESDIR}"/${PN}.initd-r1 ${PN}
+	newconfd "${FILESDIR}"/${PN}.confd-r2 ${PN}
+
+	# config should be read-only
+	fperms -R 0640 /etc/${PN}
+	fperms 0750 /etc/${PN}{,/aliases,/help}
+	fperms 0750 /etc/${PN}/ssl
+	# state is editable but not owned by unrealircd directly
+	fperms 0770 /var/log/${PN}
+	fperms 0770 /var/lib/${PN}{,/tmp}
+	fowners -R root:unrealircd /{etc,var/{lib,log}}/${PN}
+}
+
+pkg_preinst() {
+	# Must pre-create directories; otherwise their permissions are lost
+	# on installation.
+
+	# Usage: _unrealircd_dir_permissions <user> <group> <mode> <dir>[, <dir>…]
+	#
+	# Ensure that directories are created with the correct permissions
+	# before portage tries to merge them to the filesystem because,
+	# otherwise, those directories are installed world-readable.
+	#
+	# If this is a first-time install, create those directories with
+	# correct permissions before installing. Otherwise, update
+	# permissions—but only if we are replacing an unrealircd ebuild at
+	# least as old as net-irc/unrealircd-3.2.10. Portage handles normal
+	# file permissions correctly, so no need for recursive
+	# chmoding/chowning.
+	_unrealircd_dir_permissions() {
+		local user=${1} group=${2} mode=${3} dir v
+		shift 3
+		while dir=${1} && shift; do
+			if [[ ! -d "${EROOT}${dir}" ]]; then
+				ebegin "Creating ""${EROOT}${dir}"" with correct permissions"
+				install -d -m "${mode}" -o "${user}" -g "${group}" "${EROOT}${dir}" || die
+				eend ${?}
+			elif ! [[ ${REPLACING_VERSIONS} ]] || for v in ${REPLACING_VERSIONS}; do
+					# If 3.2.10 ≤ ${REPLACING_VERSIONS}, then we update
+					# existing permissions.
+					version_is_at_least "${v}" 3.2.10 && break
+				done; then
+				ebegin "Correcting permissions of ""${EROOT}${dir}"" left by ${CATEGORY}/${PN}-${v}"
+				chmod "${mode}" "${EROOT}${dir}" \
+					&& chown ${user}:${group} "${EROOT}${dir}" \
+					|| die "Unable to correct permissions of ${EROOT}${dir}"
+				eend ${?}
+			fi
+		done
+	}
+
+	# unrealircd only needs to be able to read files in /etc/unrealircd.
+	_unrealircd_dir_permissions root unrealircd 0750 etc/${PN}{,/aliases}
+
+	# unrealircd needs to be able to create files in /var/lib/unrealircd
+	# and /var/log/unrealircd.
+	_unrealircd_dir_permissions root unrealircd 0770 var/{lib,log}/${PN}
+}
+
+pkg_postinst() {
+	# Move docert call from src_install() to install_cert in pkg_postinst for
+	# bug #201682
+	if [[ ! -f "${EROOT}"etc/${PN}/ssl/server.cert.key ]]; then
+		if [[ -f "${EROOT}"etc/${PN}/server.cert.key ]]; then
+			ewarn "The location ${PN} looks for SSL certificates has changed"
+			ewarn "from ${EROOT}etc/${PN} to ${EROOT}etc/${PN}/ssl."
+			ewarn "Please move your existing certificates."
+		else
+			(
+				umask 0037
+				install_cert /etc/${PN}/ssl/server.cert
+				chown unrealircd "${EROOT}"etc/${PN}/ssl/server.cert.*
+				ln -snf server.cert.key "${EROOT}"etc/${PN}/ssl/server.key.pem
+			)
+		fi
+	fi
+
+	local unrealircd_conf="${EROOT}"etc/${PN}/${PN}.conf
+	# Fix up the default cloak keys.
+	if grep -qe '"and another one";$' "${unrealircd_conf}" && grep -qe '"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";$' "${unrealircd_conf}"; then
+		ebegin "Generating cloak-keys"
+		local keys=(
+			$(${PN} -k 2>&1 | tail -n 3)
+		)
+		[[ -n ${keys[0]} || -n ${keys[1]} || -n ${keys[2]} ]]
+		eend $?
+
+		ebegin "Substituting cloak-keys into ${unrealircd_conf}"
+		sed -i \
+			-e '/cloak-keys/ {
+n
+s/"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";/"'"${keys[0]}"'";/
+n
+s/"and another one";/"'"${keys[1]}"'";/
+n
+s/"and another one";/"'"${keys[2]}"'";/
+}' \
+			"${unrealircd_conf}"
+		eend $?
+	fi
+
+	# Precreate ircd.tune and ircd.log with the correct ownership to
+	# protect people from themselves when they run unrealircd as root
+	# before trying the initscripts. #560790
+	local f
+	for f in "${EROOT}"var/{lib/${PN}/ircd.tune,log/${PN}/ircd.log}; do
+		[[ -e ${f} ]] && continue
+		ebegin "Precreating ${f} to set ownership"
+		(
+			umask 0037
+			# ircd.tune must be seeded with content instead of being empty.
+			if [[ ${f} == *ircd.tune ]]; then
+				echo 0 > "${f}"
+				echo 0 >> "${f}"
+			fi
+			touch "${f}"
+		)
+		chown unrealircd "${f}"
+		eend $?
+	done
+
+	elog "UnrealIRCd will not run until you've set up /etc/unrealircd/unrealircd.conf"
+	elog
+	elog "You can also configure ${PN} start at boot with rc-update(1)."
+	elog "It is recommended to run unrealircd as an unprivileged user."
+	elog "The provided init.d script does this for you."
+}


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2022-12-18  6:30 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-11 12:19 [gentoo-commits] repo/gentoo:master commit in: net-irc/unrealircd/, net-irc/unrealircd/files/ Michael Palimaka
  -- strict thread matches above, loose matches on Subject: below --
2022-12-18  6:30 Sam James
2022-01-29  7:02 Sam James
2020-04-20  8:25 Michael Palimaka
2018-11-17  6:51 Michael Palimaka
2017-07-11  6:27 Nathan Phillip Brink

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox