NetBSD-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[PATCH] fuse-ntfs-3g and libntfs
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
Home |
Main Index |
Thread Index |
Old Index