Thu Apr 18 04:02:27 2024 UTC (39d)
filesystems/fuse-s3fs: import fuse-s3fs-1.94 from wip

FUSE-based file system backed by Amazon S3.  Mount a bucket as a local
file system read/write.  Store files/folders natively and transparently.


(pho)
diff -r0 -r1.1 pkgsrc/filesystems/fuse-s3fs/DESCR
diff -r0 -r1.1 pkgsrc/filesystems/fuse-s3fs/Makefile
diff -r0 -r1.1 pkgsrc/filesystems/fuse-s3fs/PLIST
diff -r0 -r1.1 pkgsrc/filesystems/fuse-s3fs/distinfo
diff -r0 -r1.1 pkgsrc/filesystems/fuse-s3fs/patches/patch-configure.ac
diff -r0 -r1.1 pkgsrc/filesystems/fuse-s3fs/patches/patch-src_s3fs.cpp
diff -r0 -r1.1 pkgsrc/filesystems/fuse-s3fs/patches/patch-src_s3fs.h
diff -r0 -r1.1 pkgsrc/filesystems/fuse-s3fs/patches/patch-test_mknod__test.cc

File Added: pkgsrc/filesystems/fuse-s3fs/DESCR
FUSE-based file system backed by Amazon S3.  Mount a bucket as a local
file system read/write.  Store files/folders natively and transparently.

File Added: pkgsrc/filesystems/fuse-s3fs/Makefile
# $NetBSD: Makefile,v 1.1 2024/04/18 04:02:26 pho Exp $

DISTNAME=	fuse-s3fs-${PKGVERSION}
PKGVERSION=	1.94
CATEGORIES=	filesystems
MASTER_SITES=	${MASTER_SITE_GITHUB:=s3fs-fuse/}
GITHUB_PROJECT=	s3fs-fuse
GITHUB_TAG=	v${PKGVERSION}

MAINTAINER=	pkgsrc-users@NetBSD.org
HOMEPAGE=	https://github.com/s3fs-fuse/s3fs-fuse
COMMENT=	FUSE file-system and utilities for S3-compatible APIs
LICENSE=	gnu-gpl-v2

GNU_CONFIGURE=		yes
USE_LIBTOOL=		yes
USE_LANGUAGES=		c c++
USE_CXX_FEATURES=	c++11
USE_TOOLS+=		autoheader automake autoreconf gmake pkg-config

# configure.ac uses a non-standard option "-r" for date(1). "stat -f" is
# GNU-ism and "stat -t" is BSD-ism. There seems to be no portable way to do
# this! So always use gdate from coreutils.
USE_TOOLS+=		date
TOOLS_PATH.date=	${TOOLBASE}/bin/gdate
TOOL_DEPENDS+=		coreutils-[0-9]*:../../sysutils/coreutils

pre-configure:
	cd ${WRKSRC} && autoreconf -fiv

.include "../../textproc/libxml2/buildlink3.mk"
.include "../../www/curl/buildlink3.mk"
.include "../../mk/dlopen.buildlink3.mk"
BUILDLINK_TRANSFORM+=   opt:-ldl:${BUILDLINK_LDADD.dl:Q}
.include "../../mk/fuse.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

File Added: pkgsrc/filesystems/fuse-s3fs/PLIST
@comment $NetBSD: PLIST,v 1.1 2024/04/18 04:02:26 pho Exp $
bin/s3fs
man/man1/s3fs.1

File Added: pkgsrc/filesystems/fuse-s3fs/distinfo
$NetBSD: distinfo,v 1.1 2024/04/18 04:02:26 pho Exp $

BLAKE2s (fuse-s3fs-1.94.tar.gz) = ae5f3ffe65c07a16ceaeccb1658c51d332816f1da4d0eda3abb44ac4df6121ad
SHA512 (fuse-s3fs-1.94.tar.gz) = 1a29d4f0b73f844ea1d4ad6e0b36d601fb7ab5818af0a90564b77182564c04fbef308362a9a749038b17f28f07f79b6debb661610f69c039a405b931361abe9c
Size (fuse-s3fs-1.94.tar.gz) = 291170 bytes
SHA1 (patch-configure.ac) = d761cf011cccfc378458a65457d22ca656244e97
SHA1 (patch-src_s3fs.cpp) = 86a513c3e312761b2c4031196f5489f1c4e63209
SHA1 (patch-src_s3fs.h) = 93329f55fb01a77821c7d33bd3f799972ca75c19
SHA1 (patch-test_mknod__test.cc) = 5f03e8bd3a44c43f612cfb13a149c4322bd09035

File Added: pkgsrc/filesystems/fuse-s3fs/patches/patch-configure.ac
$NetBSD: patch-configure.ac,v 1.1 2024/04/18 04:02:26 pho Exp $

Hunk #0:
    See patch-src_s3fs.cpp.
    TODO: Upstream this

Hunk #1:
    Do not define _FORTIFY_SOURCE. pkgsrc automatically handle it.
    This is pkgsrc-specific and is not eligible for upstreaming.

--- configure.ac.orig	2024-02-25 04:08:43.000000000 +0000
+++ configure.ac
@@ -32,9 +32,11 @@ AC_PROG_CC
 AC_CHECK_HEADERS([sys/xattr.h])
 AC_CHECK_HEADERS([attr/xattr.h])
 AC_CHECK_HEADERS([sys/extattr.h])
+AC_CHECK_HEADERS([sys/wait.h])
+AC_CHECK_HEADERS([sys/sysmacros.h])
 AC_CHECK_FUNCS([fallocate])
 
-CXXFLAGS="-Wall -fno-exceptions -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=3 -std=c++11 $CXXFLAGS"
+CXXFLAGS="-Wall -fno-exceptions -D_FILE_OFFSET_BITS=64 -std=c++11 $CXXFLAGS"
 
 dnl ----------------------------------------------
 dnl For macOS

File Added: pkgsrc/filesystems/fuse-s3fs/patches/patch-src_s3fs.cpp
$NetBSD: patch-src_s3fs.cpp,v 1.1 2024/04/18 04:02:26 pho Exp $

Fix build on NetBSD: <sys/wait.h> is required for WIFEXITED()
TODO: Upstream this

--- src/s3fs.cpp.orig	2024-04-17 13:55:35.890317856 +0000
+++ src/s3fs.cpp
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config.h"
+
 #include <algorithm>
 #include <atomic>
 #include <cerrno>
@@ -28,6 +30,9 @@
 #include <unistd.h>
 #include <dirent.h>
 #include <sys/types.h>
+#if defined(HAVE_SYS_WAIT_H)
+#  include <sys/wait.h>
+#endif
 #include <getopt.h>
 
 #include "common.h"

File Added: pkgsrc/filesystems/fuse-s3fs/patches/patch-src_s3fs.h
$NetBSD: patch-src_s3fs.h,v 1.1 2024/04/18 04:02:26 pho Exp $

Fix build with refuse(3): This is wrong. src/s3fs.cpp mentions struct
fuse_operations::flag_utime_omit_ok, which was introduced in FUSE 2.9.

TODO: Upstream this

--- src/s3fs.h.orig	2024-04-17 14:02:52.187432597 +0000
+++ src/s3fs.h
@@ -21,7 +21,7 @@
 #ifndef S3FS_S3FS_H_
 #define S3FS_S3FS_H_
 
-#define FUSE_USE_VERSION      26
+#define FUSE_USE_VERSION      29
 
 #include <fuse.h>
 

File Added: pkgsrc/filesystems/fuse-s3fs/patches/patch-test_mknod__test.cc
$NetBSD: patch-test_mknod__test.cc,v 1.1 2024/04/18 04:02:26 pho Exp $

Fix build on NetBSD: <sys/sysmacros.h> doesn't exist on this OS.
TODO: Upstream this.

--- test/mknod_test.cc.orig	2024-04-17 14:07:06.018370712 +0000
+++ test/mknod_test.cc
@@ -18,6 +18,8 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
+#include "config.h"
+
 #include <cerrno>
 #include <cstdio>
 #include <cstdlib>
@@ -26,8 +28,8 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
-#ifndef __APPLE__
-#include <sys/sysmacros.h>
+#if defined(HAVE_SYS_SYSMACROS_H)
+#  include <sys/sysmacros.h>
 #endif
 
 //---------------------------------------------------------