[Bug 292552] [NEW PORT] irc/senpai: Add new port (Terminal IRC client written in Go)

From: <bugzilla-noreply_at_freebsd.org>
Date: Sat, 17 Jan 2026 22:58:26 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=292552

            Bug ID: 292552
           Summary: [NEW PORT] irc/senpai: Add new port (Terminal IRC
                    client written in Go)
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: freebsd@bendo.org

Created attachment 267252
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=267252&action=edit
[PATCH] irc/senpai: Add new port

Attached is my attempt to package https://sr.ht/~delthas/senpai for FreeBSD.

This is my first contribution to FreeBSD and I've tried to follow the Porter's
Handbook and other Makefiles packaging Go software as best I can, but some
questions remain:

1. Did I use the combination of
DISTVERSIONPREFIX/DISTVERSION/MASTER_SITES/DISTNAME/USES=go correctly?
Unfortunately there does not seem to be a shorthand to download distfiles from
repos at https://sourcehut.org, even though quite a few ports originate there
according to my ripgrep through the ports tree. I am unsure whether this way of
getting the build system to download the distfiles is *correct* or just works
by accident. It also works if I remove the MASTER_SITES and DISTNAME options
and the USES=go downloads the distfiles via the Go module proxy, but the
Handbook states that MASTER_SITES must not be empty so I figured the two lines
should stay
(https://docs.freebsd.org/en/books/porters-handbook/makefiles/#makefile-master_sites).

2. I've split the installation of the .desktop file and application icons into
it's own build option and only added the desktop-file-utils hook for that
option. I am not sure whether this is the correct way to do it though. Are
there policies whether .desktop files/icons etc. should always be their own
build option? My intuition told me that on a machine accessed via SSH without a
display there would probably be no use for them, even though the space savings
are quite small.

3. I also split off the man pages and only then depend on gmake and
textproc/scdoc to generate the man pages. Is this the correct way to do it?
Should these two options be enabled by default? I do not remember seeing any
specific instructions what options should typically be enabled/disabled by
default.
https://docs.freebsd.org/en/books/porters-handbook/makefiles/#makefile-options-default
mentions neither man pages nor .desktop/icon-related things.

4. do-build-MANPAGES-on uses "${SETENV} ${MAKE_ENV} ${MAKE_CMD}" as does the
databases/influxdb Makefile. Is this the recommended way to do it? Or are the
first two unnecessary? It works without them on my machine, but maybe they are
necessary in some situation?

4.1 Alternatively, I could also remove the gmake dependency entirely by copying
the two man page generation commands from the project Makefile, would that be
better?

5. Is there a policy what commands in do-build and do-install hooks should be
silenced with the "@"? This is also something I came across in other Makefiles
I looked at for reference.

6. Is there a hard line/column limit for the pkg-descr? A link in the pkg-descr
triggers a portlint warning because of a long URL but I'm not sure how severe
of a problem it is. The description is adapted from the README and I think it's
the main thing to say about this software, if your IRC server does not
implement the extensions listed in the pkg-descr, this port is probably not
relevant for you.

The Makefile was tested on my machine with poudriere testport both with no
options enabled and all options enabled, the poudriere logs are attached.

-- 
You are receiving this mail because:
You are the assignee for the bug.