On 2/5/23 17:20, Michael wrote: > On Sun, Feb 05, 2023 at 04:58:58PM -0500, A Tammy wrote: >> On 2/5/23 06:05, Michael wrote: >>> Ping. >>> >>> On Fri, Jan 20, 2023 at 11:26:12AM +0100, Michael wrote: >>>> Ping. >>>> >>>> On Fri, Jan 13, 2023 at 11:42:33AM +0100, Michael wrote: >>>>> Ping. >>>>> >>>>> On Fri, Jan 06, 2023 at 02:40:35PM +0100, Michael wrote: >>>>>> On Fri, Jan 06, 2023 at 01:22:23PM +0000, Stuart Henderson wrote: >>>>>>> On 2023/01/06 14:02, Michael wrote: >>>>>>>> Hi ports@, >>>>>>>> >>>>>>>> a few people have asked me off list to enable IDENT support for >>>>>>>> ngircd. >>>>>>>> As this is not something everybody will need I added a FLAVOR "ident" >>>>>>>> for this. >>>>>>> Seems that ident support is disabled by default and you need to enable >>>>>>> it >>>>>>> in config; if that's the case then I would recommend just building with >>>>>>> it enabled anyway, it's not a big dependency, and adding flavours means >>>>>>> extra work when testing updates. >>>>>>> >>>>>>> (If that's not the case, then please add a note to pkg/DESCR describing >>>>>>> the flavour). >>>>>>> [...] >>>>>> Hi Sturart, >>>>>> >>>>>> Thanks for the feedback. >>>>>> >>>>>> From ngircd.conf(5): >>>>>> >>>>>> Ident (boolean) >>>>>> If ngIRCd is compiled with IDENT support this can be used to >>>>>> disable IDENT lookups at run time. Users identified using IDENT >>>>>> are registered without the "~" character prepended to their user >>>>>> name. Default: yes. >>>>>> >>>>>> So ident is enabled by default if compiled in. Updated patch below. >> To re-iterate what Stuart said about enabling ident by default, in >> general we would want to add flavors if (a) the dependencies are really >> heavy (like mysql vs postgresql) or (b) adding this flavor increases the >> attack surface (like adding a new authentication module). >> I am not a huge/current user of ngircd so I am unable to comment on the >> usefulness of this feature but it does not seem like a security risk. Am >> I correct in this assumption? If so just enable it by default. >> >> Aisha > Hi Aisha, > > libident is ancient and has not been updated for years (decades?). It > still does its job but I personally would not want to have it enabled by > default (which would be the case if compiled in) in my ngircd > installation. It also should not be relevant for most ngircd users but > IDENT support is still in use with IRC in general and as I said, people > have asked me off list about it more than once. > > So given those two choices I would still go with the security reason to > have it as an extra flavor.
Thank you for explaining, I agree with your reasoning now. Committed thank you :) > >>>>>> Index: Makefile >>>>>> =================================================================== >>>>>> RCS file: /cvs/ports/net/ngircd/Makefile,v >>>>>> retrieving revision 1.23 >>>>>> diff -u -p -r1.23 Makefile >>>>>> --- Makefile 8 Nov 2022 11:16:58 -0000 1.23 >>>>>> +++ Makefile 6 Jan 2023 13:37:33 -0000 >>>>>> @@ -1,7 +1,7 @@ >>>>>> COMMENT = lightweight irc server >>>>>> >>>>>> DISTNAME = ngircd-26.1 >>>>>> -REVISION = 0 >>>>>> +REVISION = 1 >>>>>> >>>>>> CATEGORIES = net >>>>>> >>>>>> @@ -15,8 +15,11 @@ PERMIT_PACKAGE = Yes >>>>>> # use pledge() >>>>>> WANTLIB = c crypto iconv ssl z >>>>>> >>>>>> +FLAVORS = ident >>>>>> +FLAVOR ?= >>>>>> + >>>>>> MASTER_SITES = https://ngircd.barton.de/pub/ngircd/ \ >>>>>> - https://ngircd.mirror.3rz.org/pub/ngircd/ \ >>>>>> + https://ngircd.mirror.3rz.de/pub/ngircd/ \ >>>>>> https://ngircd.sourceforge.io/pub/ngircd/ >>>>>> >>>>>> LIB_DEPENDS = converters/libiconv >>>>>> @@ -29,5 +32,11 @@ CONFIGURE_STYLE = gnu >>>>>> CONFIGURE_ARGS += --with-iconv=${LOCALBASE} \ >>>>>> --with-openssl \ >>>>>> --enable-ipv6 >>>>>> + >>>>>> +.if ${FLAVOR:Mident} >>>>>> +LIB_DEPENDS += security/libident >>>>>> +WANTLIB += ident >>>>>> +CONFIGURE_ARGS += --with-ident=${LOCALBASE} >>>>>> +.endif >>>>>> >>>>>> .include <bsd.port.mk> >>>>>> Index: patches/patch-doc_Makefile_in >>>>>> =================================================================== >>>>>> RCS file: /cvs/ports/net/ngircd/patches/patch-doc_Makefile_in,v >>>>>> retrieving revision 1.7 >>>>>> diff -u -p -r1.7 patch-doc_Makefile_in >>>>>> --- patches/patch-doc_Makefile_in 11 Mar 2022 19:46:30 -0000 >>>>>> 1.7 >>>>>> +++ patches/patch-doc_Makefile_in 6 Jan 2023 13:37:33 -0000 >>>>>> @@ -1,7 +1,7 @@ >>>>>> Index: doc/Makefile.in >>>>>> --- doc/Makefile.in.orig >>>>>> +++ doc/Makefile.in >>>>>> -@@ -648,16 +648,13 @@ maintainer-clean-local: >>>>>> +@@ -617,16 +617,13 @@ maintainer-clean-local: >>>>>> all: $(generated_docs) >>>>>> >>>>>> install-data-hook: $(static_docs) $(toplevel_docs) $(generated_docs) >>>>>> Index: patches/patch-src_ngircd_ngircd_c >>>>>> =================================================================== >>>>>> RCS file: /cvs/ports/net/ngircd/patches/patch-src_ngircd_ngircd_c,v >>>>>> retrieving revision 1.7 >>>>>> diff -u -p -r1.7 patch-src_ngircd_ngircd_c >>>>>> --- patches/patch-src_ngircd_ngircd_c 11 Mar 2022 19:46:30 -0000 >>>>>> 1.7 >>>>>> +++ patches/patch-src_ngircd_ngircd_c 6 Jan 2023 13:37:33 -0000 >>>>>> @@ -1,7 +1,15 @@ >>>>>> Index: src/ngircd/ngircd.c >>>>>> --- src/ngircd/ngircd.c.orig >>>>>> +++ src/ngircd/ngircd.c >>>>>> -@@ -261,6 +261,16 @@ main(int argc, const char *argv[]) >>>>>> +@@ -30,6 +30,7 @@ >>>>>> + #include <fcntl.h> >>>>>> + #include <pwd.h> >>>>>> + #include <grp.h> >>>>>> ++#include <err.h> >>>>>> + >>>>>> + #if defined(DEBUG) && defined(HAVE_MTRACE) >>>>>> + #include <mcheck.h> >>>>>> +@@ -261,6 +262,16 @@ main(int argc, const char *argv[]) >>>>>> exit(1); >>>>>> } >>>>>> >>>>>> @@ -18,7 +26,7 @@ Index: src/ngircd/ngircd.c >>>>>> if (!io_library_init(CONNECTION_POOL)) { >>>>>> Log(LOG_ALERT, >>>>>> "Fatal: Could not initialize IO routines: >>>>>> %s", >>>>>> -@@ -563,7 +573,7 @@ Setup_FDStreams(int fd) >>>>>> +@@ -563,7 +574,7 @@ Setup_FDStreams(int fd) >>>>>> #if !defined(SINGLE_USER_OS) >>>>>> >>>>>> /** >>>>>> @@ -27,7 +35,7 @@ Index: src/ngircd/ngircd.c >>>>>> * >>>>>> * @param uid User ID >>>>>> * @param gid Group ID >>>>>> -@@ -587,7 +597,7 @@ NGIRCd_getNobodyID(uid_t *uid, gid_t *gid ) >>>>>> +@@ -587,7 +598,7 @@ NGIRCd_getNobodyID(uid_t *uid, gid_t *gid ) >>>>>> } >>>>>> #endif >>>>>> >>>>>> @@ -36,7 +44,7 @@ Index: src/ngircd/ngircd.c >>>>>> if (!pwd) >>>>>> return false; >>>>>> >>>>>> -@@ -703,11 +713,11 @@ NGIRCd_Init(bool NGIRCd_NoDaemon) >>>>>> +@@ -703,11 +714,11 @@ NGIRCd_Init(bool NGIRCd_NoDaemon) >>>>>> if (Conf_UID == 0) { >>>>>> pwd = getpwuid(0); >>>>>> Log(LOG_INFO, >>>>>> Index: patches/patch-src_ngircd_proc_c >>>>>> =================================================================== >>>>>> RCS file: /cvs/ports/net/ngircd/patches/patch-src_ngircd_proc_c,v >>>>>> retrieving revision 1.2 >>>>>> diff -u -p -r1.2 patch-src_ngircd_proc_c >>>>>> --- patches/patch-src_ngircd_proc_c 11 Mar 2022 19:46:30 -0000 >>>>>> 1.2 >>>>>> +++ patches/patch-src_ngircd_proc_c 6 Jan 2023 13:37:33 -0000 >>>>>> @@ -1,7 +1,15 @@ >>>>>> Index: src/ngircd/proc.c >>>>>> --- src/ngircd/proc.c.orig >>>>>> +++ src/ngircd/proc.c >>>>>> -@@ -76,6 +76,9 @@ Proc_Fork(PROC_STAT *proc, int *pipefds, void (*cbfunc >>>>>> +@@ -24,6 +24,7 @@ >>>>>> + #include <sys/types.h> >>>>>> + #include <unistd.h> >>>>>> + #include <time.h> >>>>>> ++#include <err.h> >>>>>> + >>>>>> + #include "log.h" >>>>>> + #include "io.h" >>>>>> +@@ -76,6 +77,9 @@ Proc_Fork(PROC_STAT *proc, int *pipefds, void (*cbfunc >>>>>> return -1; >>>>>> case 0: >>>>>> /* New child process: */ >>>>>> Index: pkg/DESCR >>>>>> =================================================================== >>>>>> RCS file: /cvs/ports/net/ngircd/pkg/DESCR,v >>>>>> retrieving revision 1.1.1.1 >>>>>> diff -u -p -r1.1.1.1 DESCR >>>>>> --- pkg/DESCR 29 Sep 2012 12:32:01 -0000 1.1.1.1 >>>>>> +++ pkg/DESCR 6 Jan 2023 13:37:33 -0000 >>>>>> @@ -3,3 +3,6 @@ server for small or private networks, de >>>>>> Public License (GPL). It is simple to configure, can cope with >>>>>> dynamic IP addresses, and supports IPv6 as well as SSL. It is written >>>>>> from scratch and not based on the original IRCd. >>>>>> + >>>>>> +Flavors: >>>>>> +ident - Enable IDENT support. >>>>>>