From: Renaud Allard Subject: Re: net/ocserv package broken To: Theo Buehler Cc: ports Date: Wed, 22 Oct 2025 09:01:15 +0200 I tested the package with included llhttp as in the below patch and it's working fine for me. So, OK for that diff keeping llhttp. On 10/22/25 8:51 AM, Theo Buehler wrote: > On Wed, Oct 22, 2025 at 08:25:04AM +0200, Renaud Allard wrote: >> Hello, >> >> I have upgraded some servers to 7.8. One of them is running ocserv. >> However ocserv package (fetched from ftp.fr and ftp.eu) seems broken. >> >> tar xvzf ocserv-1.3.0p0.tgz >> >> +CONTENTS >> +DESC >> sbin/ocserv >> sbin/ocserv-worker >> man/man8/ocserv.8 >> bin/occtl >> bin/ocpasswd >> man/man8/occtl.8 >> man/man8/ocpasswd.8 >> share/examples/ocserv/sample.config >> share/examples/ocserv/ocserv-fw >> share/examples/ocserv/profile.xml >> tar: Removing leading / from absolute path names in the archive >> etc/rc.d/ocserv >> share/examples/ocserv/sample.passwd >> >> ldd sbin/ocserv >> >> sbin/ocserv: >> ld.so: ocserv: can't load library 'libllhttp.so.0.0' >> sbin/ocserv: signal 9 > > If you haven't installed the pkglocatedb package, install it. Then > > $ pkglocate libllhttp > llhttp-9.3.0p0:www/llhttp:/usr/local/lib/libllhttp.so.0.0 > llhttp-9.3.0p0:www/llhttp:/usr/local/lib/pkgconfig/libllhttp.pc > $ doas pkg_add llhttp > > will work around this. > >> I did rebuild the package on a server running 7.8 and the package doesn't >> have the issue. Any idea how to solve that? > > This is what we call a hidden dependency. The configure script picks up > llhttp if it happens to be installed on the build machine at configure > time. This will work on that machine whether llhttp is present or not. > However, if llhttp was present, this package won't work if llhttp is > missing on the machine you want to run it on. The missing dependency can > also cause build-time failures on the bulk build machines if llhttp is > removed during the build of ocserv since its presence appears no longer > needed. > > There are two fixes for this: 1. add or 2. disable the dependency. Since > llhttp is cheap, I see no real reason to disable it. Disabling would > be by passing --without-llhttp to the CONFIGURE_ARGS. Which way we go > is your call as a maintainer. > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/net/ocserv/Makefile,v > diff -u -p -r1.61 Makefile > --- Makefile 28 Jun 2025 00:36:32 -0000 1.61 > +++ Makefile 22 Oct 2025 06:33:28 -0000 > @@ -2,7 +2,7 @@ COMMENT= server implementing the AnyConn > > DISTNAME= ocserv-1.3.0 > EXTRACT_SUFX= .tar.xz > -REVISION= 0 > +REVISION= 1 > > CATEGORIES= net > > @@ -13,7 +13,7 @@ MAINTAINER = Renaud Allard # GPLv2+ > PERMIT_PACKAGE= Yes > > -WANTLIB+= c curses ev gnutls lz4 m nettle oath pam protobuf-c > +WANTLIB+= c curses ev gnutls llhttp lz4 m nettle oath pam protobuf-c > WANTLIB+= radcli readline talloc > > SITES= https://www.infradead.org/ocserv/download/ > @@ -30,7 +30,8 @@ LIB_DEPENDS= archivers/lz4 \ > net/radcli>=1.2.5 \ > security/gnutls \ > security/oath-toolkit \ > - security/openpam > + security/openpam \ > + www/llhttp > TEST_DEPENDS= net/openconnect \ > shells/bash \ > sysutils/coreutils \ >