librefuse vs ntfs-3g

2018-02-23 Thread Vicente Chaves
Hi,

I've been trying to figure out why NTFS-3g doesn't build on the NetBSD-8 
and-current and found that the Librefuse library updated to track some changes 
in LIBFUSE3, 
http://mail-index.netbsd.org/source-changes/2016/11/20/msg079195.html.
But unfortunately these changes are incompatible with the previous version of 
the API.

I have a few questions:
1-The version of the Librefuse library should not be changed to reflect the 
update?
2-Should the previous version be maintained in any way to maintain 
compatibility with existing software?
3-Should I open a PR to document this? If yes, which category: Lib or pkg?


Building NTFS-3g show the following error:

gcc -DHAVE_CONFIG_H -I. -I..   -D_KERNTYPES -I/usr/pkg/include  
 -DFUSE_USE_VERSION=26   
-I../include/ntfs-3g -O2 -D_KERNTYPES -D_NETBSD_SOURCE -D_FORTIFY_SOURCE=2 
-I/usr/pkg/include -Wall -MT ntfs_3g-ntfs-3g.o -MD -MP -MF 
.deps/ntfs_3g-ntfs-3g.Tpo -c -o ntfs_3g-ntfs-3g.o `test -f 'ntfs-3g.c' || echo 
'./'`ntfs-3g.c
In file included from ../include/ntfs-3g/mft.h:30:0,
 from ../include/ntfs-3g/index.h:60,
 from ../include/ntfs-3g/volume.h:53,
 from ../include/ntfs-3g/inode.h:34,
 from ../include/ntfs-3g/attrib.h:33,
 from ntfs-3g.c:86:
ntfs-3g.c: In function 'usage':
ntfs-3g.c:3528:58: warning: implicit declaration of function 'fuse_version' 
[-Wimplicit-function-declaration]
  ntfs_log_info(usage_msg, EXEC_NAME, VERSION, FUSE_TYPE, fuse_version(),
  ^
../include/ntfs-3g/logging.h:95:123: note: in definition of macro 
'ntfs_log_info'
 #define ntfs_log_info(FORMAT, ARGS...) 
ntfs_log_redirect(__FUNCTION__,__FILE__,__LINE__,NTFS_LOG_LEVEL_INFO,NULL,FORMAT,##ARGS)

   ^
ntfs-3g.c: In function 'try_fuse_mount':
ntfs-3g.c:3657:18: warning: passing argument 1 of 'fuse_mount' from 
incompatible pointer type [-Wincompatible-pointer-types]
  fc = fuse_mount(opts.mnt_point, &margs);
  ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:156:5: note: expected 'struct fuse *' but argument is of 
type 'char *'
 int fuse_mount(struct fuse *, const char *);
 ^
ntfs-3g.c:3657:34: warning: passing argument 2 of 'fuse_mount' from 
incompatible pointer type [-Wincompatible-pointer-types]
  fc = fuse_mount(opts.mnt_point, &margs);
  ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:156:5: note: expected 'const char *' but argument is of 
type 'struct fuse_args *'
 int fuse_mount(struct fuse *, const char *);
 ^
ntfs-3g.c:3657:5: warning: assignment makes pointer from integer without a cast 
[-Wint-conversion]
  fc = fuse_mount(opts.mnt_point, &margs);
 ^
ntfs-3g.c: In function 'mount_fuse':
ntfs-3g.c:3705:16: warning: passing argument 1 of 'fuse_new' from incompatible 
pointer type [-Wincompatible-pointer-types]
  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
    ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: expected 'struct fuse_args *' but argument is 
of type 'struct fuse_chan *'
 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3705:25: warning: passing argument 2 of 'fuse_new' from incompatible 
pointer type [-Wincompatible-pointer-types]
  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
 ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: expected 'const struct fuse_operations *' but 
argument is of type 'struct fuse_args *'
 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3705:33: warning: passing argument 3 of 'fuse_new' makes integer from 
pointer without a cast [-Wint-conversion]
  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
 ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: expected 'size_t {aka long unsigned int}' but 
argument is of type 'struct fuse_operations *'
 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3705:47: warning: passing argument 4 of 'fuse_new' makes pointer from 
integer without a cast [-Wint-conversion]
  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
   ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: expected 'void *' but argument is of type 
'long unsigned int'
 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3705:7: error: too many arguments to function 'fuse_new'
  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
   ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: declared here
 struct fuse *fuse_new(struct

librefuse vs ntfs-3g

2018-02-22 Thread Vicente Chaves de Melo

Hello,

I've been trying to figure out why NTFS-3g doesn't build on the NetBSD-8 
and-current and found that the Librefuse library updated to track some 
changes in LIBFUSE3, 
http://mail-index.netbsd.org/source-changes/2016/11/20/msg079195.html.
But unfortunately these changes are incompatible with the previous 
version of the API.


I have a few questions:
1-The version of the Librefuse library should not be changed to reflect 
the update?
2-Should the previous version be maintained in any way to maintain 
compatibility with existing software?

3-Should I open a PR to document this? If yes, which category: Lib or pkg?


Building NTFS-3g show the following error:

gcc -DHAVE_CONFIG_H -I. -I..   -D_KERNTYPES -I/usr/pkg/include 
-DFUSE_USE_VERSION=26 -I../include/ntfs-3g -O2 -D_KERNTYPES 
-D_NETBSD_SOURCE -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -Wall -MT 
ntfs_3g-ntfs-3g.o -MD -MP -MF .deps/ntfs_3g-ntfs-3g.Tpo -c -o 
ntfs_3g-ntfs-3g.o `test -f 'ntfs-3g.c' || echo './'`ntfs-3g.c

In file included from ../include/ntfs-3g/mft.h:30:0,
 from ../include/ntfs-3g/index.h:60,
 from ../include/ntfs-3g/volume.h:53,
 from ../include/ntfs-3g/inode.h:34,
 from ../include/ntfs-3g/attrib.h:33,
 from ntfs-3g.c:86:
ntfs-3g.c: In function 'usage':
ntfs-3g.c:3528:58: warning: implicit declaration of function 
'fuse_version' [-Wimplicit-function-declaration]

  ntfs_log_info(usage_msg, EXEC_NAME, VERSION, FUSE_TYPE, fuse_version(),
^
../include/ntfs-3g/logging.h:95:123: note: in definition of macro 
'ntfs_log_info'
 #define ntfs_log_info(FORMAT, ARGS...) 
ntfs_log_redirect(__FUNCTION__,__FILE__,__LINE__,NTFS_LOG_LEVEL_INFO,NULL,FORMAT,##ARGS)

^
ntfs-3g.c: In function 'try_fuse_mount':
ntfs-3g.c:3657:18: warning: passing argument 1 of 'fuse_mount' from 
incompatible pointer type [-Wincompatible-pointer-types]

  fc = fuse_mount(opts.mnt_point, &margs);
  ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:156:5: note: expected 'struct fuse *' but argument 
is of type 'char *'

 int fuse_mount(struct fuse *, const char *);
 ^
ntfs-3g.c:3657:34: warning: passing argument 2 of 'fuse_mount' from 
incompatible pointer type [-Wincompatible-pointer-types]

  fc = fuse_mount(opts.mnt_point, &margs);
  ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:156:5: note: expected 'const char *' but argument is 
of type 'struct fuse_args *'

 int fuse_mount(struct fuse *, const char *);
 ^
ntfs-3g.c:3657:5: warning: assignment makes pointer from integer without 
a cast [-Wint-conversion]

  fc = fuse_mount(opts.mnt_point, &margs);
 ^
ntfs-3g.c: In function 'mount_fuse':
ntfs-3g.c:3705:16: warning: passing argument 1 of 'fuse_new' from 
incompatible pointer type [-Wincompatible-pointer-types]

  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
    ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: expected 'struct fuse_args *' but 
argument is of type 'struct fuse_chan *'

 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3705:25: warning: passing argument 2 of 'fuse_new' from 
incompatible pointer type [-Wincompatible-pointer-types]

  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
 ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: expected 'const struct fuse_operations 
*' but argument is of type 'struct fuse_args *'

 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3705:33: warning: passing argument 3 of 'fuse_new' makes 
integer from pointer without a cast [-Wint-conversion]

  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
 ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: expected 'size_t {aka long unsigned 
int}' but argument is of type 'struct fuse_operations *'

 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3705:47: warning: passing argument 4 of 'fuse_new' makes 
pointer from integer without a cast [-Wint-conversion]

  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
   ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: expected 'void *' but argument is of 
type 'long unsigned int'

 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3705:7: error: too many arguments to function 'fuse_new'
  fh = fuse_new(ctx->fc, &args , &ntfs_3g_ops, sizeof(ntfs_3g_ops), NULL);
   ^
In file included from ntfs-3g.c:30:0:
/usr/include/fuse.h:153:14: note: declared here
 struct fuse *fuse_new(struct fuse_args *,
  ^
ntfs-3g.c:3720:15: warning: passing argument 1 of 'fuse_unmount' from 
incompatible pointer type [-Wincompatible-pointer-types]

  fuse_unmount(opts.mnt_point, ctx->fc);
   ^
In f