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
This commit is contained in:
committed by
Romain Tartière
parent
6caf958c1f
commit
bca23673cb
@@ -84,6 +84,7 @@
|
||||
SUBDIR += pircbot
|
||||
SUBDIR += pisg
|
||||
SUBDIR += polari
|
||||
SUBDIR += pounce
|
||||
SUBDIR += py-fishcrypt
|
||||
SUBDIR += py-irc
|
||||
SUBDIR += py-limnoria
|
||||
|
||||
37
irc/pounce/Makefile
Normal file
37
irc/pounce/Makefile
Normal file
@@ -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>
|
||||
3
irc/pounce/distinfo
Normal file
3
irc/pounce/distinfo
Normal file
@@ -0,0 +1,3 @@
|
||||
TIMESTAMP = 1622139837
|
||||
SHA256 (pounce-2.4.tar.gz) = 0fe406700a80798eb669db90bef73cc4a644a29a2a36ea7178fed73623050a21
|
||||
SIZE (pounce-2.4.tar.gz) = 51453
|
||||
37
irc/pounce/files/calico.in
Normal file
37
irc/pounce/files/calico.in
Normal file
@@ -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"
|
||||
78
irc/pounce/files/pounce.in
Normal file
78
irc/pounce/files/pounce.in
Normal file
@@ -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"
|
||||
5
irc/pounce/pkg-descr
Normal file
5
irc/pounce/pkg-descr
Normal file
@@ -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/
|
||||
5
irc/pounce/pkg-plist
Normal file
5
irc/pounce/pkg-plist
Normal file
@@ -0,0 +1,5 @@
|
||||
bin/calico
|
||||
bin/pounce
|
||||
man/man1/calico.1.gz
|
||||
man/man1/pounce.1.gz
|
||||
@dir /var/run/calico
|
||||
Reference in New Issue
Block a user