Index | Thread | Search

From:
Renaud Allard <renaud@allard.it>
Subject:
Re: net/ocserv package broken
To:
Theo Buehler <tb@theobuehler.org>
Cc:
ports <ports@openbsd.org>
Date:
Wed, 22 Oct 2025 09:01:15 +0200

Download raw body.

Thread
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 <renaud@allar
>   # 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 \
>