* [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
* [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/
@ 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/
@ 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/
@ 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/
@ 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
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-11-17 6:51 [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-10-11 12:19 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