diff --git a/irc/Makefile b/irc/Makefile index 358c39ad6c5d..5a5a863fb5fc 100644 --- a/irc/Makefile +++ b/irc/Makefile @@ -1,118 +1,119 @@ COMMENT = Internet Relay Chat utilities SUBDIR += anope SUBDIR += atheme-services SUBDIR += bip SUBDIR += birch SUBDIR += bitchx SUBDIR += bitlbee SUBDIR += bitlbee-discord SUBDIR += bitlbee-facebook SUBDIR += bitlbee-mastodon SUBDIR += bitlbee-steam SUBDIR += bnc SUBDIR += bopm SUBDIR += catgirl SUBDIR += cgiirc SUBDIR += ctrlproxy SUBDIR += cwirc SUBDIR += dancer SUBDIR += darkbot SUBDIR += dircproxy SUBDIR += dxirc SUBDIR += eggdrop SUBDIR += eggdrop-devel SUBDIR += epic4 SUBDIR += epic5 SUBDIR += evangeline SUBDIR += ezbounce SUBDIR += gruftistats SUBDIR += hexchat SUBDIR += hexchat-fish SUBDIR += icbirc SUBDIR += ii SUBDIR += infobot SUBDIR += inspircd SUBDIR += insub SUBDIR += irc SUBDIR += irc2dc SUBDIR += ircII SUBDIR += ircd-hybrid SUBDIR += ircd-ratbox SUBDIR += ircd-ratbox-devel SUBDIR += ircproxy SUBDIR += iroffer-dinoex SUBDIR += irssi SUBDIR += irssi-dcc_send_limiter SUBDIR += irssi-fish SUBDIR += irssi-icb SUBDIR += irssi-scripts SUBDIR += irssi-xmpp SUBDIR += irssistats SUBDIR += keitairc2 SUBDIR += komanda-cli SUBDIR += konversation SUBDIR += kvirc SUBDIR += libircclient SUBDIR += lostirc SUBDIR += miau SUBDIR += muh SUBDIR += ngircd SUBDIR += ninja SUBDIR += onis SUBDIR += oragono SUBDIR += p5-AnyEvent-IRC SUBDIR += p5-Bot-BasicBot SUBDIR += p5-IRC-Bot-Hangman SUBDIR += p5-IRC-Utils SUBDIR += p5-POE-Component-IRC SUBDIR += p5-POE-Component-IRC-Object SUBDIR += p5-POE-Component-IRC-Plugin-Blowfish SUBDIR += p5-POE-Component-IRC-Plugin-Bollocks SUBDIR += p5-POE-Component-IRC-Plugin-CoreList SUBDIR += p5-POE-Component-IRC-Plugin-Hailo SUBDIR += p5-POE-Component-IRC-Plugin-Karma SUBDIR += p5-POE-Component-IRC-Plugin-POE-Knee SUBDIR += p5-POE-Component-IRC-Plugin-QueryDNS SUBDIR += p5-POE-Component-IRC-Plugin-QueryDNSBL SUBDIR += p5-POE-Component-IRC-Plugin-RSS-Headlines SUBDIR += p5-POE-Component-Server-IRC SUBDIR += p5-POE-Filter-IRCD SUBDIR += p5-POE-Session-Irssi SUBDIR += p5-Parse-IRC SUBDIR += pear-Net_SmartIRC SUBDIR += pircbot SUBDIR += pisg SUBDIR += polari + SUBDIR += pounce SUBDIR += py-fishcrypt SUBDIR += py-irc SUBDIR += py-limnoria SUBDIR += quassel SUBDIR += quassel-core SUBDIR += quirc SUBDIR += ratbox-respond SUBDIR += rbot SUBDIR += riece SUBDIR += rubygem-cinch SUBDIR += rubygem-cogbot SUBDIR += rubygem-lita-irc SUBDIR += rubygem-net-irc SUBDIR += scrollz SUBDIR += sic SUBDIR += simpleirc SUBDIR += sirc SUBDIR += smartirc4net SUBDIR += smuxi SUBDIR += soju SUBDIR += srain SUBDIR += srvx SUBDIR += thales SUBDIR += tircproxy SUBDIR += undernet-ircu SUBDIR += unreal SUBDIR += weechat SUBDIR += weechat-otr SUBDIR += znc SUBDIR += znc-push .include 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 + +.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 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