From 1f8a5272eaba9b7cf764bfb1c7b643ef75d5ad87 Mon Sep 17 00:00:00 2001 From: Muhammad Moinur Rahman Date: Sun, 27 Apr 2025 13:23:35 +0200 Subject: [PATCH] Revert "irc/pounce: Remove port" This reverts commit ef56b3eef789cf0bca3df9c6bc4ab3ea8b7c51cc. --- .portsignore | 1 - irc/Makefile | 1 + irc/pounce/Makefile | 38 +++++++++++++++++++ irc/pounce/distinfo | 3 ++ irc/pounce/files/calico.in | 37 ++++++++++++++++++ irc/pounce/files/pounce.in | 78 ++++++++++++++++++++++++++++++++++++++ irc/pounce/pkg-descr | 3 ++ irc/pounce/pkg-plist | 5 +++ 8 files changed, 165 insertions(+), 1 deletion(-) create mode 100644 irc/pounce/Makefile create mode 100644 irc/pounce/distinfo create mode 100644 irc/pounce/files/calico.in create mode 100644 irc/pounce/files/pounce.in create mode 100644 irc/pounce/pkg-descr create mode 100644 irc/pounce/pkg-plist diff --git a/.portsignore b/.portsignore index a52e34f2f681..b56a860ee55a 100644 --- a/.portsignore +++ b/.portsignore @@ -3323,7 +3323,6 @@ irc/p5-POE-Component-IRC-Plugin-CoreList irc/p5-POE-Component-IRC-Plugin-Karma irc/pear-Net_SmartIRC irc/polari -irc/pounce irc/py-irc irc/quassel irc/quassel-core diff --git a/irc/Makefile b/irc/Makefile index 34f01bbe4fb0..a3b27b82cfa3 100644 --- a/irc/Makefile +++ b/irc/Makefile @@ -53,6 +53,7 @@ SUBDIR += p5-POE-Session-Irssi SUBDIR += p5-Parse-IRC SUBDIR += pisg + SUBDIR += pounce SUBDIR += py-limnoria SUBDIR += py-sopel SUBDIR += py-sopel-help diff --git a/irc/pounce/Makefile b/irc/pounce/Makefile new file mode 100644 index 000000000000..573fee4b8786 --- /dev/null +++ b/irc/pounce/Makefile @@ -0,0 +1,38 @@ +PORTNAME= pounce +DISTVERSION= 3.1 +PORTREVISION= 2 +CATEGORIES= irc +MASTER_SITES= https://git.causal.agency/pounce/snapshot/ + +MAINTAINER= june@causal.agency +COMMENT= Multi-client IRC bouncer +WWW= https://git.causal.agency/pounce/ + +LICENSE= GPLv3+ +LICENSE_FILE= ${WRKSRC}/LICENSE + +USES= compiler:c11 localbase:ldflags ssl +USE_RC_SUBR= calico pounce + +MAKE_ENV+= MANDIR=${PREFIX}/share/man +CFLAGS+= -D'OPENSSL_BIN=\"${OPENSSL_BIN}\"' + +.include + +.if ${SSL_DEFAULT} != libressl +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..ec35a30b295f --- /dev/null +++ b/irc/pounce/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1675794097 +SHA256 (pounce-3.1.tar.gz) = 97f245556b1cc940553fca18f4d7d82692e6c11a30f612415e5e391e5d96604e +SIZE (pounce-3.1.tar.gz) = 50801 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..9dbeafb19c7c --- /dev/null +++ b/irc/pounce/pkg-descr @@ -0,0 +1,3 @@ +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. diff --git a/irc/pounce/pkg-plist b/irc/pounce/pkg-plist new file mode 100644 index 000000000000..3ad0c4c8da78 --- /dev/null +++ b/irc/pounce/pkg-plist @@ -0,0 +1,5 @@ +bin/calico +bin/pounce +share/man/man1/calico.1.gz +share/man/man1/pounce.1.gz +@dir /var/run/calico