Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 31 May 2021 18:33:36 GMT
From:      =?utf-8?B?Um9tYWluIFRhcnRpw6hyZQ==?= <romain@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: bca23673cb03 - main - irc/pounce: New port - Multi-client IRC bouncer
Message-ID:  <202105311833.14VIXaWt078483@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by romain:

URL: https://cgit.FreeBSD.org/ports/commit/?id=bca23673cb03bf1a01e798cf357579a8ce99acd5

commit bca23673cb03bf1a01e798cf357579a8ce99acd5
Author:     C. McEnroe <june@causal.agency>
AuthorDate: 2021-05-31 18:07:32 +0000
Commit:     Romain Tartière <romain@FreeBSD.org>
CommitDate: 2021-05-31 18:32:40 +0000

    irc/pounce: New port - Multi-client IRC bouncer
    
    pounce is a multi-client, TLS-only IRC bouncer. It takes a simple
    approach, using a multiple-consumer ring buffer and the IRCv3.2
    server-time extension to communicate with clients.
    
    WWW: https://git.causal.agency/pounce/
    
    PR:             246637
---
 irc/Makefile               |  1 +
 irc/pounce/Makefile        | 37 ++++++++++++++++++++++
 irc/pounce/distinfo        |  3 ++
 irc/pounce/files/calico.in | 37 ++++++++++++++++++++++
 irc/pounce/files/pounce.in | 78 ++++++++++++++++++++++++++++++++++++++++++++++
 irc/pounce/pkg-descr       |  5 +++
 irc/pounce/pkg-plist       |  5 +++
 7 files changed, 166 insertions(+)

diff --git a/irc/Makefile b/irc/Makefile
index 358c39ad6c5d..5a5a863fb5fc 100644
--- a/irc/Makefile
+++ b/irc/Makefile
@@ -84,6 +84,7 @@
     SUBDIR += pircbot
     SUBDIR += pisg
     SUBDIR += polari
+    SUBDIR += pounce
     SUBDIR += py-fishcrypt
     SUBDIR += py-irc
     SUBDIR += py-limnoria
diff --git a/irc/pounce/Makefile b/irc/pounce/Makefile
new file mode 100644
index 000000000000..e2f105502db3
--- /dev/null
+++ b/irc/pounce/Makefile
@@ -0,0 +1,37 @@
+PORTNAME=	pounce
+DISTVERSION=	2.4
+CATEGORIES=	irc
+MASTER_SITES=	https://git.causal.agency/pounce/snapshot/
+
+MAINTAINER=	june@causal.agency
+COMMENT=	Multi-client IRC bouncer
+
+LICENSE=	GPLv3+
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+USES=		localbase:ldflags ssl
+USE_RC_SUBR=	calico pounce
+
+MAKE_ENV+=	MANDIR=${MANPREFIX}/man
+CFLAGS+=	-D'OPENSSL_BIN=\"${OPENSSL_BIN}\"'
+CFLAGS+=	-D'CERTBOT_PATH=\"${LOCALBASE}/etc/letsencrypt\"'
+
+.include <bsd.port.pre.mk>
+
+.if ${SSL_DEFAULT} == base || ${SSL_DEFAULT} == openssl
+LIB_DEPENDS+=	libtls.so:security/libretls
+.endif
+
+.if ${SSL_DEFAULT} == base
+OPENSSL_BIN=/usr/bin/openssl
+.else
+OPENSSL_BIN=${LOCALBASE}/bin/openssl
+.endif
+
+post-install:
+	@${MKDIR} ${STAGEDIR}/var/run/calico
+.for b in calico pounce
+	${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${b}
+.endfor
+
+.include <bsd.port.post.mk>
diff --git a/irc/pounce/distinfo b/irc/pounce/distinfo
new file mode 100644
index 000000000000..dbf37921c3ab
--- /dev/null
+++ b/irc/pounce/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1622139837
+SHA256 (pounce-2.4.tar.gz) = 0fe406700a80798eb669db90bef73cc4a644a29a2a36ea7178fed73623050a21
+SIZE (pounce-2.4.tar.gz) = 51453
diff --git a/irc/pounce/files/calico.in b/irc/pounce/files/calico.in
new file mode 100644
index 000000000000..daf2fef81b5e
--- /dev/null
+++ b/irc/pounce/files/calico.in
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# PROVIDE: calico
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+# Add the following lines to /etc/rc.conf to enable calico:
+#
+# calico_enable="YES"
+#
+# The calico socket directory is set by the calico_path variable.
+# The default is calico_path="/var/run/calico".
+
+. /etc/rc.subr
+
+name='calico'
+rcvar='calico_enable'
+
+load_rc_config "${name}"
+
+: ${calico_enable:='NO'}
+: ${calico_path:="/var/run/${name}"}
+calico_flags="${calico_flags} ${calico_path}"
+
+command='/usr/sbin/daemon'
+procname='%%PREFIX%%/bin/calico'
+pidfile="/var/run/${name}.pid"
+required_dirs=$calico_path
+
+child_flags=$calico_flags
+child_user=$calico_user
+unset calico_flags calico_user
+command_args="\
+	-p ${pidfile} -T ${name} ${child_user:+-u ${child_user}} \
+	-- ${procname} ${child_flags}"
+
+run_rc_command "$1"
diff --git a/irc/pounce/files/pounce.in b/irc/pounce/files/pounce.in
new file mode 100644
index 000000000000..2e27ab827b4e
--- /dev/null
+++ b/irc/pounce/files/pounce.in
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+# PROVIDE: pounce
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+# Add the following lines to /etc/rc.conf to enable pounce:
+#
+# pounce_enable="YES"
+# pounce_user="example"
+# pounce_flags="example.conf"
+#
+# The pounce rc.d script supports multiple profiles. When profiles are
+# specified, the non-profile-specific parameters become defaults.
+# Example:
+#
+# pounce_enable="YES"
+# pounce_user="example"
+# pounce_profiles="server1 server2"
+# pounce_server1_flags="server1.conf"
+# pounce_server2_flags="server2.conf"
+
+. /etc/rc.subr
+
+name='pounce'
+rcvar='pounce_enable'
+extra_commands='reload'
+sig_reload='USR1'
+
+load_rc_config "${name}"
+
+: ${pounce_enable:='NO'}
+
+command='/usr/sbin/daemon'
+pidprefix="/var/run/${name}"
+pidfile="${pidprefix}.pid"
+
+child_command='%%PREFIX%%/bin/pounce'
+child_pidfile="${pidprefix}.child.pid"
+
+if [ -n "$2" ]; then
+	profile=$2
+	if [ -n "${pounce_profiles}" ]; then
+		pidfile="${pidprefix}.${profile}.pid"
+		child_pidfile="${pidprefix}.${profile}.child.pid"
+		eval pounce_enable="\${pounce_${profile}_enable:-${pounce_enable}}"
+		eval pounce_flags="\${pounce_${profile}_flags:-${pounce_flags}}"
+		eval pounce_user="\${pounce_${profile}_user:-${pounce_user}}"
+		eval pounce_env="\${pounce_${profile}_env:-${pounce_env}}"
+		export HOME="$(/usr/bin/getent passwd ${pounce_user} | /usr/bin/cut -d: -f6)"
+	else
+		echo "$0: extra argument ignored"
+	fi
+else
+	if [ -n "${pounce_profiles}" -a -n "$1" ]; then
+		for profile in ${pounce_profiles}; do
+			echo "===> ${name} profile: ${profile}"
+			%%PREFIX%%/etc/rc.d/${name} "$1" "${profile}" || exit "$?"
+		done
+		exit
+	fi
+fi
+
+child_flags=$pounce_flags
+child_user=$pounce_user
+unset pounce_flags pounce_user
+command_args="\
+	-r -P ${pidfile} -p ${child_pidfile} -T ${name}${profile:+/${profile}} \
+	${child_user:+-u ${child_user}} \
+	-- ${child_command} ${child_flags}"
+
+pounce_reload() {
+	rc_pid=$(check_pidfile "$child_pidfile" "$child_command")
+	kill "-$sig_reload" "$rc_pid"
+}
+reload_cmd='pounce_reload'
+
+run_rc_command "$1"
diff --git a/irc/pounce/pkg-descr b/irc/pounce/pkg-descr
new file mode 100644
index 000000000000..68679a245202
--- /dev/null
+++ b/irc/pounce/pkg-descr
@@ -0,0 +1,5 @@
+pounce is a multi-client, TLS-only IRC bouncer. It takes a simple
+approach, using a multiple-consumer ring buffer and the IRCv3.2
+server-time extension to communicate with clients.
+
+WWW: https://git.causal.agency/pounce/
diff --git a/irc/pounce/pkg-plist b/irc/pounce/pkg-plist
new file mode 100644
index 000000000000..a18f553886d9
--- /dev/null
+++ b/irc/pounce/pkg-plist
@@ -0,0 +1,5 @@
+bin/calico
+bin/pounce
+man/man1/calico.1.gz
+man/man1/pounce.1.gz
+@dir /var/run/calico



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202105311833.14VIXaWt078483>