Hello, The current pkgsrc version of filesystems/fuse-ntfs-3g/ does not compile.
The problem is that some procedures used by the sources are not provided by librefuse. The solution: For mount.ntfs-3g(8), the problem is relatively light : fuse_version() used -> replaced by the macro FUSE_VERSION. A fuse_set_signal_handlers() (? How is the library taking care of these ?) is simply ignored. An auxiliary program : lowntfs-3g(8) is using various low level routines that are provided by libfuse-lite but not by librefuse. This program is simply not compiled and hence not installed. All the patches go in filesystems/libntfs. The two distinfo.diff and patch-src_Makefile.in.diff are for filesystems/libntfs too. The diff for PLIST is for filesystems/fuse-ntfs-3g (it works from filesystems/libntfs/; so this is just to not install the lowntfs-3g related bin and manpages). Disclaimer: I'm not an automake/autoconf and al. on expert; neither a pkgsrc expert. Since there is already a fuse -> refuse dance, I have found a way to modify the autoconf/automake source templates that works with what is made by the pkgsrc framework for the (NetBSD) refuse substitution. I have found a way. Probably not _the_ way. HTH -- Thierry Laronde <tlaronde +AT+ polynum +dot+ com> http://www.kergis.com/ http://www.arts-po.fr/ Key fingerprint = 0FF7 E906 FBAF FE95 FD89 250D 52B1 AE95 6006 F40C
--- src/Makefile.am.orig 2014-02-15 15:07:52.000000000 +0100 +++ src/Makefile.am 2015-06-19 22:49:38.000000000 +0200 @@ -16,7 +16,7 @@ bin_PROGRAMS = ntfs-3g.probe \ ntfs-3g.usermap \ ntfs-3g.secaudit -rootbin_PROGRAMS = ntfs-3g lowntfs-3g +rootbin_PROGRAMS = ntfs-3g rootsbin_DATA = #Create directory man_MANS = ntfs-3g.8 ntfs-3g.probe.8 \ ntfs-3g.usermap.8 \ @@ -70,12 +70,10 @@ install-exec-local: install-rootbinPROGRAMS $(MKDIR_P) "$(DESTDIR)/sbin" $(LN_S) -f "$(rootbindir)/ntfs-3g" "$(DESTDIR)/sbin/mount.ntfs-3g" - $(LN_S) -f "$(rootbindir)/lowntfs-3g" "$(DESTDIR)/sbin/mount.lowntfs-3g" endif install-data-local: install-man8 $(LN_S) -f ntfs-3g.8 "$(DESTDIR)$(man8dir)/mount.ntfs-3g.8" - $(LN_S) -f ntfs-3g.8 "$(DESTDIR)$(man8dir)/mount.lowntfs-3g.8" uninstall-local: $(RM) -f "$(DESTDIR)$(man8dir)/mount.ntfs-3g.8"
--- src/ntfs-3g_common.h 2015-06-19 21:40:28.000000000 +0200 +++ src/ntfs-3g_common.h 2015-06-19 21:44:19.000000000 +0200 @@ -25,6 +25,14 @@ #include "inode.h" +#ifdef NETBSD_LIBREFUSE +/* NetBSD librefuse, as of version 2.6, has not these fonctions. They + are implemented in libfuse-lite for reference. + */ +#define fuse_version() FUSE_VERSION +#define fuse_set_signal_handlers(session) 0 +#endif + struct ntfs_options { char *mnt_point; /* Mount point */ char *options; /* Mount options */
--- config.h.in 2015-06-19 21:36:43.000000000 +0200 +++ config.h.in 2015-06-19 21:37:44.000000000 +0200 @@ -380,6 +380,9 @@ /* Define to 1 if this is a Windows OS */ #undef WINDOWS +/* Define to 1 if using NETBSD_LIBREFUSE. */ +#undef NETBSD_LIBREFUSE + /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */ #if defined AC_APPLE_UNIVERSAL_BUILD
--- configure.ac 2014-02-15 15:07:52.000000000 +0100 +++ configure.ac 2015-06-19 21:30:40.000000000 +0200 @@ -221,9 +221,18 @@ [with_fuse="internal"] ) ;; - darwin*|netbsd*|kfreebsd*-gnu) + darwin*|kfreebsd*-gnu) with_fuse="external" ;; + netbsd*) + with_fuse="external" + NETBSD_LIBREFUSE="yes" + AC_DEFINE( + [NETBSD_LIBREFUSE], + [1], + [librefuse doesn't have some routines liker use_version()] + ) + ;; freebsd*) AC_MSG_ERROR([Please see FreeBSD support at http://www.freshports.org/sysutils/fusefs-ntfs]) ;; @@ -599,6 +608,7 @@ AM_CONDITIONAL([FUSE_INTERNAL], [test "${with_fuse}" = "internal"]) AM_CONDITIONAL([GENERATE_LDSCRIPT], [test "${enable_ldscript}" = "yes"]) AM_CONDITIONAL([WINDOWS], [test "${WINDOWS}" = "yes"]) +AM_CONDITIONAL([NETBSD_LIBREFUSE], [test "${NETBSD_LIBREFUSE}" = "yes"]) AM_CONDITIONAL([NTFS_DEVICE_DEFAULT_IO_OPS], [test "${enable_device_default_io_ops}" = "yes"]) AM_CONDITIONAL([RUN_LDCONFIG], [test "${enable_ldconfig}" = "yes"]) AM_CONDITIONAL([REALLYSTATIC], [test "${enable_really_static}" = "yes"])
--- configure 2015-06-19 21:24:49.000000000 +0200 +++ configure 2015-06-19 21:29:58.000000000 +0200 @@ -763,6 +763,8 @@ RUN_LDCONFIG_TRUE NTFS_DEVICE_DEFAULT_IO_OPS_FALSE NTFS_DEVICE_DEFAULT_IO_OPS_TRUE +NETBSD_LIBREFUSE_FALSE +NETBSD_LIBREFUSE_TRUE WINDOWS_FALSE WINDOWS_TRUE GENERATE_LDSCRIPT_FALSE @@ -11890,9 +11892,16 @@ fi ;; - darwin*|netbsd*|kfreebsd*-gnu) + darwin*|kfreebsd*-gnu) with_fuse="external" ;; + netbsd*) + with_fuse="external" + NETBSD_LIBREFUSE="yes" + +$as_echo "#define NETBSD_LIBREFUSE 1" >>confdefs.h + + ;; freebsd*) as_fn_error $? "Please see FreeBSD support at http://www.freshports.org/sysutils/fusefs-ntfs" "$LINENO" 5 ;; @@ -14020,6 +14029,14 @@ WINDOWS_FALSE= fi + if test "${NETBSD_LIBREFUSE}" = "yes"; then + NETBSD_LIBREFUSE_TRUE= + NETBSD_LIBREFUSE_FALSE='#' +else + NETBSD_LIBREFUSE_TRUE='#' + NETBSD_LIBREFUSE_FALSE= +fi + if test "${enable_device_default_io_ops}" = "yes"; then NTFS_DEVICE_DEFAULT_IO_OPS_TRUE= NTFS_DEVICE_DEFAULT_IO_OPS_FALSE='#' @@ -14238,6 +14255,10 @@ as_fn_error $? "conditional \"WINDOWS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${NETBSD_LIBREFUSE_TRUE}" && test -z "${NETBSD_LIBREFUSE_FALSE}"; then + as_fn_error $? "conditional \"NETBSD_LIBREFUSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${NTFS_DEVICE_DEFAULT_IO_OPS_TRUE}" && test -z "${NTFS_DEVICE_DEFAULT_IO_OPS_FALSE}"; then as_fn_error $? "conditional \"NTFS_DEVICE_DEFAULT_IO_OPS\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5
Index: PLIST =================================================================== RCS file: /cvsroot/pkgsrc/filesystems/fuse-ntfs-3g/PLIST,v retrieving revision 1.4 diff -u -r1.4 PLIST --- PLIST 19 May 2014 12:22:06 -0000 1.4 +++ PLIST 19 Jun 2015 21:12:33 -0000 @@ -1,14 +1,11 @@ @comment $NetBSD: PLIST,v 1.4 2014/05/19 12:22:06 adam Exp $ -bin/lowntfs-3g bin/ntfs-3g bin/ntfs-3g.probe bin/ntfs-3g.secaudit bin/ntfs-3g.usermap -man/man8/mount.lowntfs-3g.8 man/man8/mount.ntfs-3g.8 man/man8/ntfs-3g.8 man/man8/ntfs-3g.probe.8 man/man8/ntfs-3g.secaudit.8 man/man8/ntfs-3g.usermap.8 -sbin/mount.lowntfs-3g sbin/mount.ntfs-3g
Index: patches/patch-src_Makefile.in =================================================================== RCS file: /cvsroot/pkgsrc/filesystems/libntfs/patches/patch-src_Makefile.in,v retrieving revision 1.1 diff -u -r1.1 patch-src_Makefile.in --- patches/patch-src_Makefile.in 19 May 2014 12:22:06 -0000 1.1 +++ patches/patch-src_Makefile.in 19 Jun 2015 21:10:48 -0000 @@ -1,11 +1,16 @@ -$NetBSD: patch-src_Makefile.in,v 1.1 2014/05/19 12:22:06 adam Exp $ - -Link against already built and installed libntfs. -Install binaries into PREFIX, not the root directory. - ---- src/Makefile.in.orig 2014-02-15 14:08:01.000000000 +0000 -+++ src/Makefile.in -@@ -68,8 +68,7 @@ lowntfs_3g_OBJECTS = $(am_lowntfs_3g_OBJ +--- src/Makefile.in.orig 2014-02-15 15:08:01.000000000 +0100 ++++ src/Makefile.in 2015-06-19 22:50:50.000000000 +0200 +@@ -39,8 +39,7 @@ + @ENABLE_NTFS_3G_TRUE@bin_PROGRAMS = ntfs-3g.probe$(EXEEXT) \ + @ENABLE_NTFS_3G_TRUE@ ntfs-3g.usermap$(EXEEXT) \ + @ENABLE_NTFS_3G_TRUE@ ntfs-3g.secaudit$(EXEEXT) +-@ENABLE_NTFS_3G_TRUE@rootbin_PROGRAMS = ntfs-3g$(EXEEXT) \ +-@ENABLE_NTFS_3G_TRUE@ lowntfs-3g$(EXEEXT) ++@ENABLE_NTFS_3G_TRUE@rootbin_PROGRAMS = ntfs-3g$(EXEEXT) + subdir = src + DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/ntfs-3g.8.in $(srcdir)/ntfs-3g.probe.8.in \ +@@ -68,8 +67,7 @@ am__DEPENDENCIES_1 = @FUSE_INTERNAL_FALSE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) @FUSE_INTERNAL_TRUE@am__DEPENDENCIES_2 = $(top_builddir)/libfuse-lite/libfuse-lite.la @@ -15,7 +20,7 @@ lowntfs_3g_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(lowntfs_3g_CFLAGS) \ $(CFLAGS) $(lowntfs_3g_LDFLAGS) $(LDFLAGS) -o $@ -@@ -77,8 +76,7 @@ am__ntfs_3g_SOURCES_DIST = ntfs-3g.c ntf +@@ -77,8 +75,7 @@ @ENABLE_NTFS_3G_TRUE@am_ntfs_3g_OBJECTS = ntfs_3g-ntfs-3g.$(OBJEXT) \ @ENABLE_NTFS_3G_TRUE@ ntfs_3g-ntfs-3g_common.$(OBJEXT) ntfs_3g_OBJECTS = $(am_ntfs_3g_OBJECTS) @@ -25,7 +30,7 @@ ntfs_3g_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ --mode=link $(CCLD) $(ntfs_3g_CFLAGS) $(CFLAGS) \ $(ntfs_3g_LDFLAGS) $(LDFLAGS) -o $@ -@@ -86,8 +84,7 @@ am__ntfs_3g_probe_SOURCES_DIST = ntfs-3g +@@ -86,8 +83,7 @@ @ENABLE_NTFS_3G_TRUE@am_ntfs_3g_probe_OBJECTS = \ @ENABLE_NTFS_3G_TRUE@ ntfs_3g_probe-ntfs-3g.probe.$(OBJEXT) ntfs_3g_probe_OBJECTS = $(am_ntfs_3g_probe_OBJECTS) @@ -35,7 +40,7 @@ ntfs_3g_probe_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ntfs_3g_probe_CFLAGS) \ $(CFLAGS) $(ntfs_3g_probe_LDFLAGS) $(LDFLAGS) -o $@ -@@ -95,8 +92,7 @@ am__ntfs_3g_secaudit_SOURCES_DIST = seca +@@ -95,8 +91,7 @@ @ENABLE_NTFS_3G_TRUE@am_ntfs_3g_secaudit_OBJECTS = \ @ENABLE_NTFS_3G_TRUE@ ntfs_3g_secaudit-secaudit.$(OBJEXT) ntfs_3g_secaudit_OBJECTS = $(am_ntfs_3g_secaudit_OBJECTS) @@ -45,7 +50,7 @@ ntfs_3g_secaudit_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ntfs_3g_secaudit_CFLAGS) \ $(CFLAGS) $(ntfs_3g_secaudit_LDFLAGS) $(LDFLAGS) -o $@ -@@ -104,8 +100,7 @@ am__ntfs_3g_usermap_SOURCES_DIST = userm +@@ -104,8 +99,7 @@ @ENABLE_NTFS_3G_TRUE@am_ntfs_3g_usermap_OBJECTS = \ @ENABLE_NTFS_3G_TRUE@ ntfs_3g_usermap-usermap.$(OBJEXT) ntfs_3g_usermap_OBJECTS = $(am_ntfs_3g_usermap_OBJECTS) @@ -55,7 +60,7 @@ ntfs_3g_usermap_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ntfs_3g_usermap_CFLAGS) \ $(CFLAGS) $(ntfs_3g_usermap_LDFLAGS) $(LDFLAGS) -o $@ -@@ -287,9 +282,9 @@ pkgconfigdir = @pkgconfigdir@ +@@ -287,9 +281,9 @@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ @@ -68,7 +73,7 @@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ -@@ -313,7 +308,7 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefil +@@ -313,7 +307,7 @@ @ENABLE_NTFS_3G_TRUE@ ntfs-3g.usermap.8 \ @ENABLE_NTFS_3G_TRUE@ ntfs-3g.secaudit.8 @@ -77,7 +82,7 @@ @ENABLE_NTFS_3G_TRUE@@REALLYSTATIC_TRUE@ntfs_3g_LDFLAGS = $(AM_LDFLAGS) -all-static @ENABLE_NTFS_3G_TRUE@ntfs_3g_CFLAGS = \ @ENABLE_NTFS_3G_TRUE@ $(AM_CFLAGS) \ -@@ -322,7 +317,7 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefil +@@ -322,7 +316,7 @@ @ENABLE_NTFS_3G_TRUE@ -I$(top_srcdir)/include/ntfs-3g @ENABLE_NTFS_3G_TRUE@ntfs_3g_SOURCES = ntfs-3g.c ntfs-3g_common.c @@ -86,7 +91,7 @@ @ENABLE_NTFS_3G_TRUE@@REALLYSTATIC_TRUE@lowntfs_3g_LDFLAGS = $(AM_LDFLAGS) -all-static @ENABLE_NTFS_3G_TRUE@lowntfs_3g_CFLAGS = \ @ENABLE_NTFS_3G_TRUE@ $(AM_CFLAGS) \ -@@ -331,9 +326,9 @@ MAINTAINERCLEANFILES = $(srcdir)/Makefil +@@ -331,9 +325,9 @@ @ENABLE_NTFS_3G_TRUE@ -I$(top_srcdir)/include/ntfs-3g @ENABLE_NTFS_3G_TRUE@lowntfs_3g_SOURCES = lowntfs-3g.c ntfs-3g_common.c @@ -99,7 +104,7 @@ @ENABLE_NTFS_3G_TRUE@@REALLYSTATIC_TRUE@ntfs_3g_probe_LDFLAGS = $(AM_LDFLAGS) -all-static @ENABLE_NTFS_3G_TRUE@@REALLYSTATIC_TRUE@ntfs_3g_usermap_LDFLAGS = $(AM_LDFLAGS) -all-static @ENABLE_NTFS_3G_TRUE@@REALLYSTATIC_TRUE@ntfs_3g_secaudit_LDFLAGS = $(AM_LDFLAGS) -all-static -@@ -921,9 +916,9 @@ uninstall-man: uninstall-man8 +@@ -921,17 +915,14 @@ @ENABLE_NTFS_3G_TRUE@@RUN_LDCONFIG_TRUE@ $(LDCONFIG) @ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@install-exec-local: install-rootbinPROGRAMS @@ -108,7 +113,14 @@ -@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(LN_S) -f "$(rootbindir)/lowntfs-3g" "$(DESTDIR)/sbin/mount.lowntfs-3g" +@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(MKDIR_P) "$(DESTDIR)/$(sbindir)" +@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(LN_S) -f "$(rootbindir)/ntfs-3g" "$(DESTDIR)/$(sbindir)/mount.ntfs-3g" -+@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(LN_S) -f "$(rootbindir)/lowntfs-3g" "$(DESTDIR)/$(sbindir)/mount.lowntfs-3g" @ENABLE_NTFS_3G_TRUE@install-data-local: install-man8 @ENABLE_NTFS_3G_TRUE@ $(LN_S) -f ntfs-3g.8 "$(DESTDIR)$(man8dir)/mount.ntfs-3g.8" +-@ENABLE_NTFS_3G_TRUE@ $(LN_S) -f ntfs-3g.8 "$(DESTDIR)$(man8dir)/mount.lowntfs-3g.8" + + @ENABLE_NTFS_3G_TRUE@uninstall-local: + @ENABLE_NTFS_3G_TRUE@ $(RM) -f "$(DESTDIR)$(man8dir)/mount.ntfs-3g.8" +-@ENABLE_MOUNT_HELPER_TRUE@@ENABLE_NTFS_3G_TRUE@ $(RM) -f "$(DESTDIR)/sbin/mount.ntfs-3g" "$(DESTDIR)/sbin/mount.lowntfs-3g" + + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded.
Index: distinfo =================================================================== RCS file: /cvsroot/pkgsrc/filesystems/libntfs/distinfo,v retrieving revision 1.1 diff -u -r1.1 distinfo --- distinfo 19 May 2014 12:22:06 -0000 1.1 +++ distinfo 19 Jun 2015 21:09:31 -0000 @@ -10,4 +10,9 @@ SHA1 (patch-libntfs-3g_device.c) = 3ad49d69b03cdd500246f77d9f6e30ca3d2e2ec6 SHA1 (patch-ntfsprogs_Makefile.in) = 9acd073006c54009cedeafc766c964e9b5f11468 SHA1 (patch-ntfsprogs_ntfsclone.c) = 3306b501e94ce71a709f394516829a727aa743ad -SHA1 (patch-src_Makefile.in) = 78d107a3ba0e9e0b39a4c5e4eaad2fd58bb9ade2 +SHA1 (patch-src_Makefile.in) = e133338c437a9dadb4495eaf3de18fc1bf776d14 +SHA1 (patch-configure.ac) = 332823e613f78663fbfeecac0b43f01228569a96 +SHA1 (patch-configure) = c0dcddef3f1a53d91d4e32881cde171bccd779b8 +SHA1 (patch-config.h.in) = a7ff598dea2312277aa2d9740fa08fbbbf81de29 +SHA1 (patch-src_ntfs-3g_common.h) = 28c977f45259762a98b51e7fcc9c5395ceeded6c +SHA1 (patch-src_Makefile.am) = da06c5ee354d1f5b60fdabb1f17b8917b5a2b11f