From: Renaud Allard Subject: Fwd: [update] net/ocserv 1.4.0 To: ports Date: Tue, 13 Jan 2026 11:09:23 +0100 ping -------- Forwarded Message -------- Subject: [update] net/ocserv 1.4.0 Date: Tue, 6 Jan 2026 10:19:30 +0100 From: Renaud Allard To: ports Hello, Here is an update to net/ocserv 1.4.0 Tested on amd64 I changed the SITES because infradead wasn't working when I updated the port. Besides notifications for new releases point at gitlab, which is probably more resilient than some personal sites. Best Regards Index: Makefile =================================================================== RCS file: /cvs/ports/net/ocserv/Makefile,v diff -u -p -r1.62 Makefile --- Makefile 22 Oct 2025 07:04:41 -0000 1.62 +++ Makefile 6 Jan 2026 09:15:07 -0000 @@ -1,8 +1,8 @@ COMMENT= server implementing the AnyConnect SSL VPN protocol -DISTNAME= ocserv-1.3.0 -EXTRACT_SUFX= .tar.xz -REVISION= 1 +VERSION = 1.4.0 +DISTNAME= ocserv-${VERSION} +EXTRACT_SUFX= .tar.gz CATEGORIES= net @@ -16,11 +16,12 @@ PERMIT_PACKAGE= Yes WANTLIB+= c curses ev gnutls llhttp lz4 m nettle oath pam protobuf-c WANTLIB+= radcli readline talloc -SITES= https://www.infradead.org/ocserv/download/ +SITES= https://gitlab.com/openconnect/ocserv/-/archive/${VERSION}/ MODULES= lang/ruby -BUILD_DEPENDS= textproc/groff \ +BUILD_DEPENDS= devel/gperf \ + textproc/groff \ textproc/gsed \ textproc/ruby-ronn LIB_DEPENDS= archivers/lz4 \ @@ -37,7 +38,9 @@ TEST_DEPENDS= net/openconnect \ sysutils/coreutils \ textproc/gsed -CONFIGURE_STYLE= autoconf +USE_GMAKE= Yes + +CONFIGURE_STYLE= autoreconf CONFIGURE_ARGS= --disable-namespaces \ --without-docker-tests \ --without-geoip \ @@ -54,6 +57,7 @@ CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/ CONFIGURE_ENV+= IPCALC=false AUTOCONF_VERSION= 2.71 +AUTOMAKE_VERSION= 1.16 post-extract: find ${WRKSRC}/tests -type f -perm -+x -exec \ Index: distinfo =================================================================== RCS file: /cvs/ports/net/ocserv/distinfo,v diff -u -p -r1.37 distinfo --- distinfo 22 Nov 2024 15:33:04 -0000 1.37 +++ distinfo 6 Jan 2026 09:15:07 -0000 @@ -1,2 +1,2 @@ -SHA256 (ocserv-1.3.0.tar.xz) = XFYsPqEDIGXvQ9YHXlci+Uzmp6eA1qK0xtVMHOOSGWU= -SIZE (ocserv-1.3.0.tar.xz) = 770596 +SHA256 (ocserv-1.4.0.tar.gz) = aNMiF/MK9GC1M1i5naYrF0eQ2Lf/8uU+Fk3s7OkHeMI= +SIZE (ocserv-1.4.0.tar.gz) = 613326 Index: patches/patch-src_main-ban_c =================================================================== RCS file: /cvs/ports/net/ocserv/patches/patch-src_main-ban_c,v diff -u -p -r1.3 patch-src_main-ban_c --- patches/patch-src_main-ban_c 18 Mar 2024 04:15:45 -0000 1.3 +++ patches/patch-src_main-ban_c 6 Jan 2026 09:15:07 -0000 @@ -1,14 +1,18 @@ Index: src/main-ban.c --- src/main-ban.c.orig +++ src/main-ban.c -@@ -407,8 +407,8 @@ static bool test_local_ipv6(struct sockaddr_in6 * remo - unsigned index = 0; +@@ -422,8 +422,8 @@ static bool test_local_ipv6(struct sockaddr_in6 *remo + + for (index = 0; index < 4; index++) { +- uint32_t l = local->sin6_addr.s6_addr32[index] & +- network->sin6_addr.s6_addr32[index]; +- uint32_t r = remote->sin6_addr.s6_addr32[index] & +- network->sin6_addr.s6_addr32[index]; ++ uint32_t l = local->sin6_addr.__u6_addr.__u6_addr32[index] & ++ network->sin6_addr.__u6_addr.__u6_addr32[index]; ++ uint32_t r = remote->sin6_addr.__u6_addr.__u6_addr32[index] & ++ network->sin6_addr.__u6_addr.__u6_addr32[index]; - for (index = 0; index < 4; index ++) { -- uint32_t l = local->sin6_addr.s6_addr32[index] & network->sin6_addr.s6_addr32[index]; -- uint32_t r = remote->sin6_addr.s6_addr32[index] & network->sin6_addr.s6_addr32[index]; -+ uint32_t l = local->sin6_addr.__u6_addr.__u6_addr32[index] & network->sin6_addr.__u6_addr.__u6_addr32[index]; -+ uint32_t r = remote->sin6_addr.__u6_addr.__u6_addr32[index] & network->sin6_addr.__u6_addr.__u6_addr32[index]; if (l != r) return false; } Index: patches/patch-src_occtl_time_c =================================================================== RCS file: /cvs/ports/net/ocserv/patches/patch-src_occtl_time_c,v diff -u -p -r1.3 patch-src_occtl_time_c --- patches/patch-src_occtl_time_c 18 Mar 2024 04:15:45 -0000 1.3 +++ patches/patch-src_occtl_time_c 6 Jan 2026 09:15:07 -0000 @@ -13,25 +13,29 @@ Index: src/occtl/time.c /* system clock changed? */ snprintf(output, MAX_TMPSTR_SIZE, " ? "); return; -@@ -44,17 +44,17 @@ void print_time_ival7(char output[MAX_TMPSTR_SIZE], ti +@@ -44,19 +44,19 @@ void print_time_ival7(char output[MAX_TMPSTR_SIZE], ti if (t >= 48 * 60 * 60) /* 2 days or more */ -- snprintf(output, MAX_TMPSTR_SIZE, _("%2ludays"), (long)t / (24 * 60 * 60)); -+ snprintf(output, MAX_TMPSTR_SIZE, _("%2lludays"), (long long)t / (24 * 60 * 60)); +- snprintf(output, MAX_TMPSTR_SIZE, _("%2ludays"), +- (long)t / (24 * 60 * 60)); ++ snprintf(output, MAX_TMPSTR_SIZE, _("%2lludays"), ++ (unsigned long long)t / (24 * 60 * 60)); else if (t >= 60 * 60) /* 1 hour or more */ - /* Translation Hint: Hours:Minutes */ -- snprintf(output, MAX_TMPSTR_SIZE, _("%2luh:%02um"), (long)t / (60 * 60), -+ snprintf(output, MAX_TMPSTR_SIZE, _("%2lluh:%02um"), (long long)t / (60 * 60), - (unsigned)((t / 60) % 60)); + /* Translation Hint: Hours:Minutes */ +- snprintf(output, MAX_TMPSTR_SIZE, _("%2luh:%02um"), +- (long)t / (60 * 60), (unsigned int)((t / 60) % 60)); ++ snprintf(output, MAX_TMPSTR_SIZE, _("%2lluh:%02um"), ++ (unsigned long long)t / (60 * 60), (unsigned int)((t / 60) % 60)); else if (t > 60) /* 1 minute or more */ - /* Translation Hint: Minutes:Seconds */ -- snprintf(output, MAX_TMPSTR_SIZE, "%2lum:%02us", (long)t / 60, (unsigned)t % 60); -+ snprintf(output, MAX_TMPSTR_SIZE, "%2llum:%02us", (long long)t / 60, (unsigned)t % 60); + /* Translation Hint: Minutes:Seconds */ +- snprintf(output, MAX_TMPSTR_SIZE, "%2lum:%02us", (long)t / 60, ++ snprintf(output, MAX_TMPSTR_SIZE, "%2llum:%02us", (unsigned long long)t / 60, + (unsigned int)t % 60); else - /* Translation Hint: Seconds:Centiseconds */ + /* Translation Hint: Seconds:Centiseconds */ - snprintf(output, MAX_TMPSTR_SIZE, _("%5lus"), (long)t); -+ snprintf(output, MAX_TMPSTR_SIZE, _("%5llus"), (long long)t); ++ snprintf(output, MAX_TMPSTR_SIZE, _("%5llus"), (unsigned long long)t); } Index: patches/patch-src_ocpasswd_ocpasswd_c =================================================================== RCS file: /cvs/ports/net/ocserv/patches/patch-src_ocpasswd_ocpasswd_c,v diff -u -p -r1.4 patch-src_ocpasswd_ocpasswd_c --- patches/patch-src_ocpasswd_ocpasswd_c 18 Mar 2024 04:15:45 -0000 1.4 +++ patches/patch-src_ocpasswd_ocpasswd_c 6 Jan 2026 09:15:07 -0000 @@ -11,20 +11,29 @@ Index: src/ocpasswd/ocpasswd.c +#include #include #include - #include /* for random */ -@@ -46,9 +47,8 @@ static void - crypt_int(const char *fpasswd, const char *username, const char *groupname, - const char *passwd) + #include /* for random */ +@@ -38,18 +39,12 @@ + + #define DEFAULT_OCPASSWD "/etc/ocserv/ocpasswd" + +-static const char alphabet[] = +- "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ./"; +- +-#define SALT_SIZE 16 + static void crypt_int(const char *fpasswd, const char *username, + const char *groupname, const char *passwd) { - uint8_t _salt[SALT_SIZE]; -- char salt[SALT_SIZE+16]; +- char salt[SALT_SIZE + 16]; - char *p, *cr_passwd; + char cr_passwd[_PASSWORD_LEN]; + char *p; char *tmp_passwd; - unsigned i; - unsigned fpasswd_len = strlen(fpasswd); -@@ -64,36 +64,8 @@ crypt_int(const char *fpasswd, const char *username, c +- unsigned int i; + unsigned int fpasswd_len = strlen(fpasswd); + unsigned int tmp_passwd_len; + unsigned int username_len = strlen(username); +@@ -63,36 +58,9 @@ crypt_int(const char *fpasswd, const char *username, c setlocale(LC_CTYPE, "C"); setlocale(LC_COLLATE, "C"); @@ -58,7 +67,8 @@ Index: src/ocpasswd/ocpasswd.c - } - if (cr_passwd == NULL) { - fprintf(stderr, "Error in crypt().\n"); -+ if (crypt_newhash(passwd, "blowfish,a", cr_passwd, sizeof(cr_passwd)) != 0) { ++ if (crypt_newhash(passwd, "blowfish,a", cr_passwd, ++ sizeof(cr_passwd)) != 0) { + fprintf(stderr, "Error in crypt_newhash().\n"); exit(EXIT_FAILURE); }