Index | Thread | Search

From:
James Turner <james@calminferno.net>
Subject:
Re: [update] libfuse header reorg
To:
Helg <helg-openbsd@gmx.de>
Cc:
ports@openbsd.org, bket@openbsd.org
Date:
Sun, 23 Nov 2025 19:04:46 +0100

Download raw body.

Thread
On Sun, Nov 23, 2025 at 06:10:57PM +0100, Helg wrote:
> Hi ports@
> 
> I've reorganised the libfuse header files as a preperatory patch for
> supporting the low-level FUSE API:
> 
> It introduces the following new files.
> 
> - /usr/include/fuse/fuse_common.h
> - /usr/include/fuse/fuse_lowlevel.h
> - /usr/src/lib/libfuse/fuse_chan.c
> 
> Additionally, it relocates all libfuse header files to the
> /usr/include/fuse directory so that it now contains.
> 
> - /usr/include/fuse/fuse.h
> - /usr/include/fuse/fuse_opt.h
> - /usr/include/fuse/fuse_common.h
> - /usr/include/fuse/fuse_lowlevel.h
> 
> This change avoids FUSE header clutter in /usr/include and aligns with
> how Linux organises FUSE related headers.
> 
> Before I commit this patch to the source tree, I need to ensure that all
> FUSE filesystems in ports still compile. I've run the following to
> compile them all.
> 
> env SUBDIRLIST=/home/helg/fuse-ports.txt make FETCH_PACKAGES=
> 
> fuse-ports.txt contains:
> 
> archivers/fuse-zip
> devel/fossil
> security/encfs
> security/libbde
> security/libewf
> #security/veracrypt
> sysutils/curlftpfs
> sysutils/libfsapfs
> sysutils/libfsntfs
> sysutils/libfvde
> sysutils/libluksde
> sysutils/libolecf
> sysutils/libqcow
> sysutils/libregf
> sysutils/libsmraw
> sysutils/libvhdi
> sysutils/libvmdk
> sysutils/libvshadow
> sysutils/libvslvm
> sysutils/ntfs-3g
> sysutils/simple-mtpfs
> sysutils/sshfs-fuse
> sysutils/unionfs-fuse
> sysutils/usmb
> 
> All except 3 compiled without problems. The below is a diff for fossil
> and unionfs-fuse. veracrypt failed with a bunch of dependenciEs on my
> system via make and pkg_add. Maybe someone else can test this.
> 
> Fossil successfully knows to add -lfuse to LIBS as port of configure
> but doesn't also add -I/usr/include/fuse to CFLAGS. My understanding of
> autoconfig is not good enough to know why.
> 
> Either way, by using pkg-config everything should work before and after
> I commit my fuse headers patch.
> 
> ok?
> 

ok fossil

> 
> 
> Index: devel/fossil/patches/patch-auto_def
> ===================================================================
> RCS file: /cvs/ports/devel/fossil/patches/patch-auto_def,v
> diff -u -p -r1.20 patch-auto_def
> --- devel/fossil/patches/patch-auto_def	6 May 2025 21:58:23 -0000	1.20
> +++ devel/fossil/patches/patch-auto_def	23 Nov 2025 16:04:05 -0000
> @@ -10,3 +10,13 @@ Index: auto.def
>    msg-result "Trying to link statically"
>  } else {
>    define-append EXTRA_CFLAGS -DFOSSIL_DYNAMIC_BUILD=1
> +@@ -814,7 +814,8 @@ if {[opt-bool fusefs]} {
> +   if {[opt-bool static]} {
> +     msg-result "FuseFS support disabled due to -static"
> +   } elseif {[cc-check-function-in-lib fuse_mount fuse]} {
> +-    define-append EXTRA_CFLAGS -DFOSSIL_HAVE_FUSEFS
> ++    set cflags [exec pkg-config fuse --cflags-only-I]
> ++    define-append EXTRA_CFLAGS -DFOSSIL_HAVE_FUSEFS $cflags
> +     define FOSSIL_HAVE_FUSEFS 1
> +     msg-result "FuseFS support enabled"
> +   }
> Index: sysutils/unionfs-fuse/Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/unionfs-fuse/Makefile,v
> diff -u -p -r1.10 Makefile
> --- sysutils/unionfs-fuse/Makefile	26 Sep 2025 04:51:46 -0000	1.10
> +++ sysutils/unionfs-fuse/Makefile	23 Nov 2025 16:04:59 -0000
> @@ -11,7 +11,8 @@ PERMIT_PACKAGE =	Yes
> 
> WANTLIB =	c fuse pthread
> 
> -MAKE_FLAGS =	CPPFLAGS="-DFUSE_USE_VERSION=29 -DDISABLE_XATTR" \
> +MAKE_FLAGS =	CPPFLAGS="-DFUSE_USE_VERSION=29 -DDISABLE_XATTR \
> +		`pkg-config --cflags fuse`" \
> 		LIB="-lfuse -lpthread"
> 
> ALL_TARGET =	build