Index | Thread | Search

From:
Helg <helg-openbsd@gmx.de>
Subject:
[update] libfuse header reorg
To:
ports@openbsd.org
Cc:
bket@openbsd.org, james@calminferno.net
Date:
Sun, 23 Nov 2025 18:10:57 +0100

Download raw body.

Thread
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?



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