Bug#983843: xrdp FTBFS on several architectures
The kfreebsd variant fails are down to FUSE_USE_VERSION not being
defined for a header file that uses types from fuse_lowlevel.h
I've put together a patch to fix this which moves the definition of
FUSE_USE_VERSION from a C file to Makefile.am:-
diff --git a/sesman/chansrv/Makefile.am b/sesman/chansrv/Makefile.am
index 767ac27b..1a57a563 100644
--- a/sesman/chansrv/Makefile.am
+++ b/sesman/chansrv/Makefile.am
@@ -18,7 +18,7 @@ endif
CHANSRV_EXTRA_LIBS =
if XRDP_FUSE
-AM_CPPFLAGS += -DXRDP_FUSE $(FUSE_CFLAGS)
+AM_CPPFLAGS += -DXRDP_FUSE $(FUSE_CFLAGS) -DFUSE_USE_VERSION=26
CHANSRV_EXTRA_LIBS += $(FUSE_LIBS)
endif
diff --git a/sesman/chansrv/chansrv_fuse.c b/sesman/chansrv/chansrv_fuse.c
index f29ea0ed..74ac06d1 100644
--- a/sesman/chansrv/chansrv_fuse.c
+++ b/sesman/chansrv/chansrv_fuse.c
@@ -130,7 +130,12 @@ void xfuse_devredir_cb_file_close(struct
state_close *fip)
** **
******************************************************************************/
-#define FUSE_USE_VERSION 26
+/* FUSE_USE_VERSION must be defined globally for other parts of
+ * xrdp-chansrv which include <fuse_lowlevel.h> for definitions. Check
+ * it's actually defined here */
+#ifndef FUSE_USE_VERSION
+#error Define FUSE_USE_VERSION in the make system and recompile
+#endif
#include <fuse_lowlevel.h>
#include <stdio.h>
I can propose this for upstream if you like (I'm a project maintainer),
but we haven't tested the FUSE stuff against a FreeBSD kernel.
Reply to: