Bug 246637

Summary: New port: irc/pounce multi-client IRC bouncer
Product: Ports & Packages Reporter: june
Component: Individual Port(s)Assignee: freebsd-ports-bugs (Nobody) <ports-bugs>
Status: Closed FIXED    
Severity: Affects Only Me CC: romain
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
diff
none
pounce 1.3p1 diff
none
Update to 2.3
none
Update to 2.3 with openssl path fix
none
Patch for pounce 2.3
none
pounce 2.4 june: maintainer-approval+

Description june 2020-05-21 15:53:21 UTC
Created attachment 214729 [details]
diff

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/
Comment 1 june 2020-06-14 19:46:27 UTC
Created attachment 215562 [details]
pounce 1.3p1 diff

Updated to 1.3p1.
Comment 2 Romain Tartière freebsd_committer freebsd_triage 2021-05-07 23:21:59 UTC
Take it.  I am juggling with the svn diff output to include it in git and update to the latest version, but the calico and pounce rc scripts are missing.  Do you have them at hand?
Comment 3 Romain Tartière freebsd_committer freebsd_triage 2021-05-07 23:37:35 UTC
Created attachment 224759 [details]
Update to 2.3

Port updated to the latest version, tweaks to cope with libretls / libressl as done for catgirl.  I removed the rc scripts since they do not exist.

I still need to setup all this to confirm it's working as expected. In the meantime, if you can provide the rc scripts, I will be happy to reintroduce them.

Thanks!
Comment 4 Romain Tartière freebsd_committer freebsd_triage 2021-05-08 01:00:05 UTC
Created attachment 224762 [details]
Update to 2.3 with openssl path fix

Meh, the full path to openssl depends on the version of openssl used.
Comment 5 Romain Tartière freebsd_committer freebsd_triage 2021-05-08 01:01:55 UTC
I see that the rc-scripts where probably not the easiest way to manage multiple instances of pounce, and where removed…  Do you intend to push catsit in the FreeBSD ports?

BTW: I am running this code now (without calico: single server), seems to be smooth so far :-P  Thanks!
Comment 6 june 2021-05-08 23:01:07 UTC
Yeah I removed the rc scripts since they were hacky and I had them in-repo which isn't where they belong. They could maybe be pulled out of git history: <https://git.causal.agency/pounce/tree/rc.d?id=b93f3f96845fc1fa1f1b80829f3573a11b13b907>, although I don't think they're quite accurate anymore either since pounce now wants to load configuration from ~/.config.

catsit does a better job, but I guess I'm hesitant about adding an extra port for a rather particular process supervisor and creating a soft dependency on it. On the other hand, it would be awkward to package pounce without a reasonable way to run it. I kind of feel like I'd be imposing on the ports tree by requiring some special method to run my software. Really depends on how much demand there is to run pounce on FreeBSD, I suppose.
Comment 7 Romain Tartière freebsd_committer freebsd_triage 2021-05-09 17:16:44 UTC
I have not tried the rc scripts yet: when I saw they where prune in favor of catsit I directly though that making catsit available in the ports might be something you are interested in.  In any case, that's not incompatible for pounce/calico rc scripts.

AFAIAC, I currently run a single instance of pounce in tmux, so my needs are minimal and the rc-scripts will be enough.

With the support of ~/.config, maybe we must ensure that $HOME is properly set.  I'll give it a try in the next few days.
Comment 8 Romain Tartière freebsd_committer freebsd_triage 2021-05-13 22:37:44 UTC
Created attachment 224917 [details]
Patch for pounce 2.3

Latest patch that also set $HOME to the correct value.

I am running this with the following in rc.conf:

pounce_enable="yes"
pounce_profiles="freenode"
pounce_freenode_user="romain"

And ~romain/.config/pounce/freenode has the following:

host = chat.freenode.net
nick = smortex
user = smortex
pass = secret
join = #riemann,#voxpupuli
save = freenode
local-ca = auth.pem
local-cert = freenode.irc.blogreen.org.crt
local-priv = freenode.irc.blogreen.org.key
local-host = freenode.irc.blogreen.org

Does this look reasonable for you?
Comment 9 june 2021-05-16 19:31:49 UTC
I think everything related to pounce_chdir/ETCDIR/"etc/pounce" should probably be removed, since pounce now looks in $HOME instead of CWD. I'd like to add some documentation to the rc scripts too that I used to have in the manual somewhere, I'll try to update the patch with both.
Comment 10 june 2021-05-29 21:52:50 UTC
Created attachment 225363 [details]
pounce 2.4

Removed etc/pounce, added comments to the rc scripts, and bumped version to 2.4.
Comment 11 commit-hook freebsd_committer freebsd_triage 2021-05-31 18:33:47 UTC
A commit in branch main references this bug:

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 (new)        | 37 +++++++++++++++++++
 irc/pounce/distinfo (new)        |  3 ++
 irc/pounce/files/calico.in (new) | 37 +++++++++++++++++++
 irc/pounce/files/pounce.in (new) | 78 ++++++++++++++++++++++++++++++++++++++++
 irc/pounce/pkg-descr (new)       |  5 +++
 irc/pounce/pkg-plist (new)       |  5 +++
 7 files changed, 166 insertions(+)
Comment 12 Romain Tartière freebsd_committer freebsd_triage 2021-05-31 18:35:09 UTC
Thanks!