pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/filesystems



Module Name:    pkgsrc
Committed By:   js
Date:           Sun Mar 12 11:56:00 UTC 2023

Modified Files:
        pkgsrc/filesystems: Makefile
Added Files:
        pkgsrc/filesystems/glusterfs8: DESCR MESSAGE.NetBSD Makefile PLIST
            distinfo
        pkgsrc/filesystems/glusterfs8/files: glusterd.sh
        pkgsrc/filesystems/glusterfs8/patches: patch-config.h.in
            patch-configure patch-configure.ac patch-rpc_rpc_lib_rpcsvc.c
            patch-tools_gfind__missing__files_gfind__missing__files.sh
            patch-xlators_mgmt_glusterd_src_glusterd-utils.c
            patch-xlators_mount_fuse_src_fuse-bridge.c
            patch-xlators_performance_write-behind_src_write-behind.c
            patch-xlators_storage_posix_src_posix-entry-ops.c

Log Message:
Add filesystems/glusterfs8 as the last 32 bit version


To generate a diff of this commit:
cvs rdiff -u -r1.56 -r1.57 pkgsrc/filesystems/Makefile
cvs rdiff -u -r0 -r1.1 pkgsrc/filesystems/glusterfs8/DESCR \
    pkgsrc/filesystems/glusterfs8/MESSAGE.NetBSD \
    pkgsrc/filesystems/glusterfs8/Makefile \
    pkgsrc/filesystems/glusterfs8/PLIST \
    pkgsrc/filesystems/glusterfs8/distinfo
cvs rdiff -u -r0 -r1.1 pkgsrc/filesystems/glusterfs8/files/glusterd.sh
cvs rdiff -u -r0 -r1.1 \
    pkgsrc/filesystems/glusterfs8/patches/patch-config.h.in \
    pkgsrc/filesystems/glusterfs8/patches/patch-configure \
    pkgsrc/filesystems/glusterfs8/patches/patch-configure.ac \
    pkgsrc/filesystems/glusterfs8/patches/patch-rpc_rpc_lib_rpcsvc.c \
    pkgsrc/filesystems/glusterfs8/patches/patch-tools_gfind__missing__files_gfind__missing__files.sh \
    pkgsrc/filesystems/glusterfs8/patches/patch-xlators_mgmt_glusterd_src_glusterd-utils.c \
    pkgsrc/filesystems/glusterfs8/patches/patch-xlators_mount_fuse_src_fuse-bridge.c \
    pkgsrc/filesystems/glusterfs8/patches/patch-xlators_performance_write-behind_src_write-behind.c \
    pkgsrc/filesystems/glusterfs8/patches/patch-xlators_storage_posix_src_posix-entry-ops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/filesystems/Makefile
diff -u pkgsrc/filesystems/Makefile:1.56 pkgsrc/filesystems/Makefile:1.57
--- pkgsrc/filesystems/Makefile:1.56    Tue Jan 31 19:59:31 2023
+++ pkgsrc/filesystems/Makefile Sun Mar 12 11:55:59 2023
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.56 2023/01/31 19:59:31 nikita Exp $
+# $NetBSD: Makefile,v 1.57 2023/03/12 11:55:59 js Exp $
 #
 
 COMMENT=       File systems, and file system related packages
@@ -35,6 +35,7 @@ SUBDIR+=      fuse-unionfs
 SUBDIR+=       fuse-wdfs
 SUBDIR+=       fuse-wikipediafs
 SUBDIR+=       glusterfs
+SUBDIR+=       glusterfs8
 SUBDIR+=       gnunet-fuse
 SUBDIR+=       kubo
 SUBDIR+=       libntfs

Added files:

Index: pkgsrc/filesystems/glusterfs8/DESCR
diff -u /dev/null pkgsrc/filesystems/glusterfs8/DESCR:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/DESCR Sun Mar 12 11:55:59 2023
@@ -0,0 +1,11 @@
+GlusterFS is a flexible, powerful, POSIX-compliant cluster filesystem
+that can scale to several petabytes.
+
+GlusterFS works over either TCP/IP or high-performance Infiniband
+RDMA interconnect.
+
+GlusterFS provides striping and on-the-fly synchronous replication
+of files. GlusterFS has a fully distributed design, with no single
+point of failure.
+
+Please visit http://www.gluster.org/glusterfs.php for more info.
Index: pkgsrc/filesystems/glusterfs8/MESSAGE.NetBSD
diff -u /dev/null pkgsrc/filesystems/glusterfs8/MESSAGE.NetBSD:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/MESSAGE.NetBSD        Sun Mar 12 11:55:59 2023
@@ -0,0 +1,21 @@
+===========================================================================
+$NetBSD: MESSAGE.NetBSD,v 1.1 2023/03/12 11:55:59 js Exp $
+
+*** GlusterFS clients ***
+This is required in /etc/sysctl.conf in order to avoid hangs on I/O operations
+       kern.sbmax=4194304
+       net.inet.tcp.sendbuf_max=1048576
+       net.inet.tcp.recvbuf_max=1048576
+
+In order to use mount -t glusterfs, please install this link
+       ln -s ${PREFIX}/sbin/mount_glusterfs /sbin/mount_glusterfs
+
+*** GlusterFS servers ***
+glusterfs servers will need extended attributes in exported filesystems.
+This is currently only supported in UFS1 (newfs -O1). You will need to
+create the directories below on exported filesystems' roots, and then
+mount with -o extattr
+       .attribute/system
+       .attribute/user
+
+===========================================================================
Index: pkgsrc/filesystems/glusterfs8/Makefile
diff -u /dev/null pkgsrc/filesystems/glusterfs8/Makefile:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/Makefile      Sun Mar 12 11:55:59 2023
@@ -0,0 +1,138 @@
+# $NetBSD: Makefile,v 1.1 2023/03/12 11:55:59 js Exp $
+
+DISTNAME=      glusterfs-8.2
+PKGREVISION=   8
+CATEGORIES=    filesystems
+MASTER_SITES=  http://bits.gluster.org/pub/gluster/glusterfs/src/
+
+MAINTAINER=    pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=      https://www.gluster.org/
+COMMENT=       Cluster filesystem
+LICENSE=       gnu-gpl-v3
+
+GNU_CONFIGURE=         yes
+USE_LIBTOOL=           yes
+USE_TOOLS+=            flex bison pkg-config bash
+
+CONFIGURE_ARGS+=       --disable-fusermount
+CONFIGURE_ARGS+=       --disable-fuse-notifications
+CONFIGURE_ARGS+=       --localstatedir=${VARBASE}
+
+# Make sure we do not attept to link with -lfl
+# Only libfl.a is available, and libtool wants libfl.so
+MAKE_FLAGS+=           LEXLIB=""
+
+REPLACE_PYTHON+=       contrib/ipaddr-py/ipaddr.py
+REPLACE_PYTHON+=       events/src/glustereventsd.py
+REPLACE_PYTHON+=       events/src/peer_eventsapi.py
+REPLACE_PYTHON+=       events/tools/eventsdash.py
+REPLACE_PYTHON+=       extras/ganesha/scripts/generate-epoch.py
+REPLACE_PYTHON+=       extras/geo-rep/schedule_georep.py.in
+REPLACE_PYTHON+=       extras/snap_scheduler/gcron.py
+REPLACE_PYTHON+=       extras/snap_scheduler/snap_scheduler.py
+REPLACE_PYTHON+=       geo-replication/src/peer_georep-sshkey.py.in
+REPLACE_PYTHON+=       geo-replication/src/peer_mountbroker.in
+REPLACE_PYTHON+=       geo-replication/src/peer_mountbroker.py
+REPLACE_PYTHON+=       geo-replication/src/peer_mountbroker.py.in
+REPLACE_PYTHON+=       geo-replication/syncdaemon/changelogagent.py
+REPLACE_PYTHON+=       geo-replication/syncdaemon/gsyncd.py
+REPLACE_PYTHON+=       geo-replication/syncdaemon/gsyncdstatus.py
+REPLACE_PYTHON+=       tools/gfind_missing_files/gfid_to_path.py
+REPLACE_PYTHON+=       tools/glusterfind/S57glusterfind-delete-post.py
+REPLACE_PYTHON+=       tools/glusterfind/glusterfind.in
+REPLACE_PYTHON+=       tools/glusterfind/src/__init__.py
+REPLACE_PYTHON+=       tools/glusterfind/src/brickfind.py
+REPLACE_PYTHON+=       tools/glusterfind/src/changelog.py
+REPLACE_PYTHON+=       tools/glusterfind/src/changelogdata.py
+REPLACE_PYTHON+=       tools/glusterfind/src/conf.py
+REPLACE_PYTHON+=       tools/glusterfind/src/libgfchangelog.py
+REPLACE_PYTHON+=       tools/glusterfind/src/main.py
+REPLACE_PYTHON+=       tools/glusterfind/src/nodeagent.py
+REPLACE_PYTHON+=       tools/glusterfind/src/utils.py
+
+REPLACE_BASH+=         extras/ganesha/ocf/ganesha_grace
+REPLACE_BASH+=         extras/ganesha/ocf/ganesha_mon
+REPLACE_BASH+=         extras/ganesha/ocf/ganesha_nfsd
+REPLACE_BASH+=         extras/ganesha/scripts/copy-export-ganesha.sh
+REPLACE_BASH+=         extras/ganesha/scripts/create-export-ganesha.sh
+REPLACE_BASH+=         extras/ganesha/scripts/dbus-send.sh
+REPLACE_BASH+=         extras/ganesha/scripts/ganesha-ha.sh
+REPLACE_BASH+=         extras/geo-rep/generate-gfid-file.sh
+REPLACE_BASH+=         extras/geo-rep/get-gfid.sh
+REPLACE_BASH+=         extras/geo-rep/gsync-upgrade.sh
+REPLACE_BASH+=         extras/geo-rep/slave-upgrade.sh
+REPLACE_BASH+=         extras/peer_add_secret_pub.in
+REPLACE_BASH+=         extras/post-upgrade-script-for-quota.sh
+REPLACE_BASH+=         extras/pre-upgrade-script-for-quota.sh
+REPLACE_BASH+=         extras/stop-all-gluster-processes.sh
+REPLACE_BASH+=         extras/thin-arbiter/setup-thin-arbiter.sh
+REPLACE_BASH+=         geo-replication/src/gverify.sh
+REPLACE_BASH+=         geo-replication/src/peer_gsec_create.in
+REPLACE_BASH+=         geo-replication/src/set_geo_rep_pem_keys.sh
+
+# Explicit substitution of bash
+CHECK_PORTABILITY_SKIP+=       extras/peer_add_secret_pub.in
+
+
+SUBST_CLASSES+=                mtab
+SUBST_STAGE.mtab=      post-build
+SUBST_FILES.mtab=      doc/mount.glusterfs.8
+SUBST_FILES.mtab=      libglusterfs/src/compat.h
+SUBST_FILES.mtab=      xlators/mount/fuse/utils/mount.glusterfs.in
+SUBST_SED.mtab=                -e "s,mtab,/proc/mounts,g"
+
+SUBST_CLASSES+=                etc
+SUBST_STAGE.etc=       pre-build
+SUBST_FILES.etc+=      libglusterfs/src/logging.c
+SUBST_FILES.etc+=      doc/glusterfsd.8
+SUBST_SED.etc=         -e "s,/etc/gluster,${PREFIX}/etc/gluster,g"
+
+#EGDIR=                        ${PREFIX}/etc/glusterfs
+#CONF_FILES+=          ${EGDIR}/glusterd.vol.sample ${EGDIR}/glusterd.vol
+OWN_DIRS+=             ${VARBASE}/log/glusterfs
+BUILD_DEFS+=           VARBASE
+
+RCD_SCRIPTS=           glusterd
+
+PLIST_SRC=             ${PLIST_SRC_DFLT}
+PLIST_SUBST+=          VARBASE=${VARBASE}
+PLIST_SUBST+=          PKG_SYSCONFDIR=${PKG_SYSCONFDIR}
+PLIST_SUBST+=          PYSITELIB=${PYSITELIB:Q}
+PLIST_SUBST+=          GLUSTERFS_VERSION=${DISTNAME:S/glusterfs-//}
+MESSAGE_SRC=           ${PKGDIR}/MESSAGE.${OPSYS}
+
+pre-build:
+       cd ${WRKSRC}/extras &&                                  \
+       ${ECHO} "glusterd.vol.sample: glusterd.vol" >> Makefile &&      \
+       ${ECHO} "       cp glusterd.vol glusterd.vol.sample" >> Makefile
+
+post-install:
+       ${INSTALL_SCRIPT} ${DESTDIR}/sbin/mount_glusterfs \
+           ${DESTDIR}/${PREFIX}/sbin/mount_glusterfs
+
+# Debug
+CFLAGS+=               -g 
+INSTALL_UNSTRIPPED=    yes
+CONFIGURE_ARGS+=       --enable-debug
+#.include "../../devel/boehm-gc/buildlink3.mk"
+#CFLAGS+=              -DGC_DEBUG
+#CFLAGS+=              -include gc.h
+#LIBS+=                        -lgc
+
+.include "../../mk/bsd.prefs.mk"
+
+.include "../../devel/libuuid/buildlink3.mk"
+.include "../../devel/argp/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+.include "../../textproc/libxml2/buildlink3.mk"
+.include "../../databases/sqlite3/buildlink3.mk"
+BUILDLINK_API_DEPENDS.userspace-rcu+=  userspace-rcu>=0.12.1
+.include "../../devel/userspace-rcu/buildlink3.mk"
+.include "../../lang/python/application.mk"
+.include "../../lang/python/extension.mk"
+
+.if (${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD") && exists(/usr/include/execinfo.h)
+LIBS+= -lexecinfo
+.endif
+
+.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/filesystems/glusterfs8/PLIST
diff -u /dev/null pkgsrc/filesystems/glusterfs8/PLIST:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/PLIST Sun Mar 12 11:55:59 2023
@@ -0,0 +1,357 @@
+@comment $NetBSD: PLIST,v 1.1 2023/03/12 11:55:59 js Exp $
+${PYSITELIB}/gluster/__init__.py
+${PYSITELIB}/gluster/__init__.pyc
+${PYSITELIB}/gluster/__init__.pyo
+${PYSITELIB}/gluster/cliutils/__init__.py
+${PYSITELIB}/gluster/cliutils/__init__.pyc
+${PYSITELIB}/gluster/cliutils/__init__.pyo
+${PYSITELIB}/gluster/cliutils/cliutils.py
+${PYSITELIB}/gluster/cliutils/cliutils.pyc
+${PYSITELIB}/gluster/cliutils/cliutils.pyo
+bin/glusterfind
+etc/ganesha/ganesha-ha.conf.sample
+etc/glusterfs/eventsconfig.json
+etc/glusterfs/gluster-rsyslog-5.8.conf
+etc/glusterfs/gluster-rsyslog-7.2.conf
+etc/glusterfs/glusterd.vol
+etc/glusterfs/glusterfs-georep-logrotate
+etc/glusterfs/glusterfs-logrotate
+etc/glusterfs/group-db-workload
+etc/glusterfs/group-distributed-virt
+etc/glusterfs/group-gluster-block
+etc/glusterfs/group-metadata-cache
+etc/glusterfs/group-nl-cache
+etc/glusterfs/group-samba
+etc/glusterfs/group-virt.example
+etc/glusterfs/gsyncd.conf
+etc/glusterfs/logger.conf.example
+etc/glusterfs/thin-arbiter.vol
+include/glusterfs/api/glfs-handles.h
+include/glusterfs/api/glfs.h
+include/glusterfs/async.h
+include/glusterfs/atomic.h
+include/glusterfs/byte-order.h
+include/glusterfs/call-stub.h
+include/glusterfs/checksum.h
+include/glusterfs/circ-buff.h
+include/glusterfs/client_t.h
+include/glusterfs/cluster-syncop.h
+include/glusterfs/common-utils.h
+include/glusterfs/compat-errno.h
+include/glusterfs/compat-uuid.h
+include/glusterfs/compat.h
+include/glusterfs/daemon.h
+include/glusterfs/default-args.h
+include/glusterfs/defaults.h
+include/glusterfs/dict.h
+include/glusterfs/event-history.h
+include/glusterfs/events.h
+include/glusterfs/fd-lk.h
+include/glusterfs/fd.h
+include/glusterfs/gd-common-utils.h
+include/glusterfs/gf-dirent.h
+include/glusterfs/gf-event.h
+include/glusterfs/gfchangelog/changelog.h
+include/glusterfs/gidcache.h
+include/glusterfs/glfs-message-id.h
+include/glusterfs/globals.h
+include/glusterfs/glusterfs-acl.h
+include/glusterfs/glusterfs-fops.h
+include/glusterfs/glusterfs.h
+include/glusterfs/graph-utils.h
+include/glusterfs/hashfn.h
+include/glusterfs/iatt.h
+include/glusterfs/inode.h
+include/glusterfs/iobuf.h
+include/glusterfs/latency.h
+include/glusterfs/libglusterfs-messages.h
+include/glusterfs/list.h
+include/glusterfs/lkowner.h
+include/glusterfs/locking.h
+include/glusterfs/logging.h
+include/glusterfs/lvm-defaults.h
+include/glusterfs/mem-pool.h
+include/glusterfs/mem-types.h
+include/glusterfs/monitoring.h
+include/glusterfs/options.h
+include/glusterfs/parse-utils.h
+include/glusterfs/quota-common-utils.h
+include/glusterfs/rbthash.h
+include/glusterfs/refcount.h
+include/glusterfs/revision.h
+include/glusterfs/rot-buffs.h
+include/glusterfs/rpc/changelog-xdr.h
+include/glusterfs/rpc/cli1-xdr.h
+include/glusterfs/rpc/glusterd1-xdr.h
+include/glusterfs/rpc/glusterfs3-xdr.h
+include/glusterfs/rpc/glusterfs3.h
+include/glusterfs/rpc/glusterfs4-xdr.h
+include/glusterfs/rpc/portmap-xdr.h
+include/glusterfs/rpc/protocol-common.h
+include/glusterfs/rpc/rpc-clnt-ping.h
+include/glusterfs/rpc/rpc-clnt.h
+include/glusterfs/rpc/rpc-common-xdr.h
+include/glusterfs/rpc/rpc-drc.h
+include/glusterfs/rpc/rpc-lib-messages.h
+include/glusterfs/rpc/rpc-pragmas.h
+include/glusterfs/rpc/rpc-transport.h
+include/glusterfs/rpc/rpcsvc-common.h
+include/glusterfs/rpc/rpcsvc.h
+include/glusterfs/rpc/xdr-common.h
+include/glusterfs/rpc/xdr-generic.h
+include/glusterfs/rpc/xdr-rpc.h
+include/glusterfs/rpc/xdr-rpcclnt.h
+include/glusterfs/run.h
+include/glusterfs/server/authenticate.h
+include/glusterfs/server/server-common.h
+include/glusterfs/server/server-helpers.h
+include/glusterfs/server/server-mem-types.h
+include/glusterfs/server/server-messages.h
+include/glusterfs/server/server.h
+include/glusterfs/stack.h
+include/glusterfs/statedump.h
+include/glusterfs/store.h
+include/glusterfs/strfd.h
+include/glusterfs/syncop-utils.h
+include/glusterfs/syncop.h
+include/glusterfs/syscall.h
+include/glusterfs/template-component-messages.h
+include/glusterfs/throttle-tbf.h
+include/glusterfs/timer.h
+include/glusterfs/timespec.h
+include/glusterfs/trie.h
+include/glusterfs/upcall-utils.h
+include/glusterfs/xlator.h
+include/glusterfs/y.tab.h
+lib/glusterfs/${GLUSTERFS_VERSION}/auth/addr.la
+lib/glusterfs/${GLUSTERFS_VERSION}/auth/login.la
+lib/glusterfs/${GLUSTERFS_VERSION}/rpc-transport/socket.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/cluster/afr.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/cluster/dht.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/cluster/disperse.so
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/cluster/distribute.so
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/cluster/ec.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/cluster/nufa.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/cluster/replicate.so
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/cluster/switch.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/debug/delay-gen.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/debug/error-gen.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/debug/io-stats.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/debug/sink.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/debug/trace.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/access-control.so
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/arbiter.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/barrier.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/bit-rot.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/bitrot-stub.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/cdc.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/changelog.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/gfid-access.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/index.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/leases.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/locks.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/marker.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/namespace.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/posix-locks.so
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/quiesce.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/quota.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/quotad.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/read-only.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/sdfs.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/selinux.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/shard.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/snapview-client.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/snapview-server.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/thin-arbiter.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/trash.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/upcall.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/utime.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/features/worm.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/meta.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/mgmt/glusterd.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/mount/api.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/mount/fuse.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/io-cache.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/io-threads.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/md-cache.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/nl-cache.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/open-behind.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/quick-read.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/read-ahead.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/readdir-ahead.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/stat-prefetch.so
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/performance/write-behind.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/playground/template.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/protocol/client.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/protocol/server.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/storage/posix.la
+lib/glusterfs/${GLUSTERFS_VERSION}/xlator/system/posix-acl.la
+lib/libgfapi.la
+lib/libgfchangelog.la
+lib/libgfrpc.la
+lib/libgfxdr.la
+lib/libglusterd.la
+lib/libglusterfs.la
+lib/ocf/resource.d/glusterfs/glusterd
+lib/ocf/resource.d/glusterfs/volume
+lib/ocf/resource.d/heartbeat/ganesha_grace
+lib/ocf/resource.d/heartbeat/ganesha_mon
+lib/ocf/resource.d/heartbeat/ganesha_nfsd
+lib/pkgconfig/glusterfs-api.pc
+lib/pkgconfig/libgfchangelog.pc
+libexec/ganesha/create-export-ganesha.sh
+libexec/ganesha/dbus-send.sh
+libexec/ganesha/ganesha-ha.sh
+libexec/ganesha/generate-epoch.py
+libexec/glusterfs/gfevents/__init__.py
+libexec/glusterfs/gfevents/__init__.pyc
+libexec/glusterfs/gfevents/__init__.pyo
+libexec/glusterfs/gfevents/eventsapiconf.py
+libexec/glusterfs/gfevents/eventsapiconf.pyc
+libexec/glusterfs/gfevents/eventsapiconf.pyo
+libexec/glusterfs/gfevents/eventtypes.py
+libexec/glusterfs/gfevents/eventtypes.pyc
+libexec/glusterfs/gfevents/eventtypes.pyo
+libexec/glusterfs/gfevents/gf_event.py
+libexec/glusterfs/gfevents/gf_event.pyc
+libexec/glusterfs/gfevents/gf_event.pyo
+libexec/glusterfs/gfevents/glustereventsd.py
+libexec/glusterfs/gfevents/handlers.py
+libexec/glusterfs/gfevents/handlers.pyc
+libexec/glusterfs/gfevents/handlers.pyo
+libexec/glusterfs/gfevents/utils.py
+libexec/glusterfs/gfevents/utils.pyc
+libexec/glusterfs/gfevents/utils.pyo
+libexec/glusterfs/gfind_missing_files/gcrawler
+libexec/glusterfs/gfind_missing_files/gfid_to_path.py
+libexec/glusterfs/gfind_missing_files/gfid_to_path.sh
+libexec/glusterfs/gfind_missing_files/gfind_missing_files.sh
+libexec/glusterfs/glfsheal
+libexec/glusterfs/glusterfind/S57glusterfind-delete-post.py
+libexec/glusterfs/glusterfind/__init__.py
+libexec/glusterfs/glusterfind/__init__.pyc
+libexec/glusterfs/glusterfind/__init__.pyo
+libexec/glusterfs/glusterfind/brickfind.py
+libexec/glusterfs/glusterfind/changelog.py
+libexec/glusterfs/glusterfind/changelogdata.py
+libexec/glusterfs/glusterfind/changelogdata.pyc
+libexec/glusterfs/glusterfind/changelogdata.pyo
+libexec/glusterfs/glusterfind/conf.py
+libexec/glusterfs/glusterfind/conf.pyc
+libexec/glusterfs/glusterfind/conf.pyo
+libexec/glusterfs/glusterfind/gfind_py2py3.py
+libexec/glusterfs/glusterfind/gfind_py2py3.pyc
+libexec/glusterfs/glusterfind/gfind_py2py3.pyo
+libexec/glusterfs/glusterfind/libgfchangelog.py
+libexec/glusterfs/glusterfind/libgfchangelog.pyc
+libexec/glusterfs/glusterfind/libgfchangelog.pyo
+libexec/glusterfs/glusterfind/main.py
+libexec/glusterfs/glusterfind/main.pyc
+libexec/glusterfs/glusterfind/main.pyo
+libexec/glusterfs/glusterfind/nodeagent.py
+libexec/glusterfs/glusterfind/tool.conf
+libexec/glusterfs/glusterfind/utils.py
+libexec/glusterfs/glusterfind/utils.pyc
+libexec/glusterfs/glusterfind/utils.pyo
+libexec/glusterfs/gsyncd
+libexec/glusterfs/gverify.sh
+libexec/glusterfs/peer_add_secret_pub
+libexec/glusterfs/peer_eventsapi.py
+libexec/glusterfs/peer_georep-sshkey.py
+libexec/glusterfs/peer_gsec_create
+libexec/glusterfs/peer_mountbroker
+libexec/glusterfs/peer_mountbroker.py
+libexec/glusterfs/python/syncdaemon/README.md
+libexec/glusterfs/python/syncdaemon/__init__.py
+libexec/glusterfs/python/syncdaemon/__init__.pyc
+libexec/glusterfs/python/syncdaemon/__init__.pyo
+libexec/glusterfs/python/syncdaemon/argsupgrade.py
+libexec/glusterfs/python/syncdaemon/argsupgrade.pyc
+libexec/glusterfs/python/syncdaemon/argsupgrade.pyo
+libexec/glusterfs/python/syncdaemon/conf.py
+libexec/glusterfs/python/syncdaemon/conf.pyc
+libexec/glusterfs/python/syncdaemon/conf.pyo
+libexec/glusterfs/python/syncdaemon/gsyncd.py
+libexec/glusterfs/python/syncdaemon/gsyncd.pyc
+libexec/glusterfs/python/syncdaemon/gsyncd.pyo
+libexec/glusterfs/python/syncdaemon/gsyncdconfig.py
+libexec/glusterfs/python/syncdaemon/gsyncdconfig.pyc
+libexec/glusterfs/python/syncdaemon/gsyncdconfig.pyo
+libexec/glusterfs/python/syncdaemon/gsyncdstatus.py
+libexec/glusterfs/python/syncdaemon/gsyncdstatus.pyc
+libexec/glusterfs/python/syncdaemon/gsyncdstatus.pyo
+libexec/glusterfs/python/syncdaemon/libcxattr.py
+libexec/glusterfs/python/syncdaemon/libcxattr.pyc
+libexec/glusterfs/python/syncdaemon/libcxattr.pyo
+libexec/glusterfs/python/syncdaemon/libgfchangelog.py
+libexec/glusterfs/python/syncdaemon/libgfchangelog.pyc
+libexec/glusterfs/python/syncdaemon/libgfchangelog.pyo
+libexec/glusterfs/python/syncdaemon/logutils.py
+libexec/glusterfs/python/syncdaemon/logutils.pyc
+libexec/glusterfs/python/syncdaemon/logutils.pyo
+libexec/glusterfs/python/syncdaemon/master.py
+libexec/glusterfs/python/syncdaemon/master.pyc
+libexec/glusterfs/python/syncdaemon/master.pyo
+libexec/glusterfs/python/syncdaemon/monitor.py
+libexec/glusterfs/python/syncdaemon/monitor.pyc
+libexec/glusterfs/python/syncdaemon/monitor.pyo
+libexec/glusterfs/python/syncdaemon/py2py3.py
+libexec/glusterfs/python/syncdaemon/py2py3.pyc
+libexec/glusterfs/python/syncdaemon/py2py3.pyo
+libexec/glusterfs/python/syncdaemon/rconf.py
+libexec/glusterfs/python/syncdaemon/rconf.pyc
+libexec/glusterfs/python/syncdaemon/rconf.pyo
+libexec/glusterfs/python/syncdaemon/repce.py
+libexec/glusterfs/python/syncdaemon/repce.pyc
+libexec/glusterfs/python/syncdaemon/repce.pyo
+libexec/glusterfs/python/syncdaemon/resource.py
+libexec/glusterfs/python/syncdaemon/resource.pyc
+libexec/glusterfs/python/syncdaemon/resource.pyo
+libexec/glusterfs/python/syncdaemon/subcmds.py
+libexec/glusterfs/python/syncdaemon/subcmds.pyc
+libexec/glusterfs/python/syncdaemon/subcmds.pyo
+libexec/glusterfs/python/syncdaemon/syncdutils.py
+libexec/glusterfs/python/syncdaemon/syncdutils.pyc
+libexec/glusterfs/python/syncdaemon/syncdutils.pyo
+libexec/glusterfs/scripts/generate-gfid-file.sh
+libexec/glusterfs/scripts/get-gfid.sh
+libexec/glusterfs/scripts/gsync-sync-gfid
+libexec/glusterfs/scripts/gsync-upgrade.sh
+libexec/glusterfs/scripts/schedule_georep.py
+libexec/glusterfs/scripts/slave-upgrade.sh
+libexec/glusterfs/set_geo_rep_pem_keys.sh
+man/man8/gluster-setgfid2path.8
+man/man8/gluster.8
+man/man8/glusterd.8
+man/man8/glusterfs.8
+man/man8/glusterfsd.8
+man/man8/mount.glusterfs.8
+sbin/conf.py
+sbin/gcron.py
+sbin/gf_attach
+sbin/gfind_missing_files
+sbin/gluster
+sbin/gluster-eventsapi
+sbin/gluster-georep-sshkey
+sbin/gluster-mountbroker
+sbin/gluster-setgfid2path
+sbin/glusterd
+sbin/glustereventsd
+sbin/glusterfs
+sbin/glusterfsd
+sbin/mount_glusterfs
+sbin/snap_scheduler.py
+sbin/umountd
+share/doc/glusterfs/benchmarking/README
+share/doc/glusterfs/benchmarking/glfs-bm.c
+share/doc/glusterfs/benchmarking/launch-script.sh
+share/doc/glusterfs/benchmarking/local-script.sh
+share/doc/glusterfs/benchmarking/rdd.c
+share/doc/glusterfs/glusterfs-mode.el
+share/doc/glusterfs/glusterfs.vim
+share/examples/rc.d/glusterd
+share/glusterfs/scripts/eventsdash.py
+share/glusterfs/scripts/post-upgrade-script-for-quota.sh
+share/glusterfs/scripts/pre-upgrade-script-for-quota.sh
+share/glusterfs/scripts/setup-thin-arbiter.sh
+share/glusterfs/scripts/stop-all-gluster-processes.sh
Index: pkgsrc/filesystems/glusterfs8/distinfo
diff -u /dev/null pkgsrc/filesystems/glusterfs8/distinfo:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/distinfo      Sun Mar 12 11:55:59 2023
@@ -0,0 +1,14 @@
+$NetBSD: distinfo,v 1.1 2023/03/12 11:55:59 js Exp $
+
+BLAKE2s (glusterfs-8.2.tar.gz) = 8e3161a768b5875b190f44cc3698de3ea9703c2550306c019dc6776c4ab12cd7
+SHA512 (glusterfs-8.2.tar.gz) = e11ffd544cdfd55e4309bcf10d9f6d3cb13b3c0beeaf578e024c9b40df19f5bc5dc6965bca1166e96e05e42041093c48772b160952c235f7456f0898594d01d2
+Size (glusterfs-8.2.tar.gz) = 7761620 bytes
+SHA1 (patch-config.h.in) = 1560806ebd786139b404544461dcda0ec1d60b37
+SHA1 (patch-configure) = 07d7a61d7c24ab8b0e4bb00ab6ae2452e41d903f
+SHA1 (patch-configure.ac) = fcb7da30005e9a08e7a0f4ac2f5e55511580aa18
+SHA1 (patch-rpc_rpc_lib_rpcsvc.c) = 287e5da091a2610ee010a44a5b51a90a402cff01
+SHA1 (patch-tools_gfind__missing__files_gfind__missing__files.sh) = 67d374d8dc3213bd3d159e7cb8479c14e8ba162d
+SHA1 (patch-xlators_mgmt_glusterd_src_glusterd-utils.c) = 3e8e6fa5e4baff94532f58a6509f7b5817ce02bf
+SHA1 (patch-xlators_mount_fuse_src_fuse-bridge.c) = 4706bc7264b7e4ec7f01cc143f3edce96213401e
+SHA1 (patch-xlators_performance_write-behind_src_write-behind.c) = cf3eea86ab4255a7714b25a35a98495eff0f772e
+SHA1 (patch-xlators_storage_posix_src_posix-entry-ops.c) = 2c1acf30097ca4ce7b6ec6e1212f989c86201553

Index: pkgsrc/filesystems/glusterfs8/files/glusterd.sh
diff -u /dev/null pkgsrc/filesystems/glusterfs8/files/glusterd.sh:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/files/glusterd.sh     Sun Mar 12 11:55:59 2023
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# $NetBSD: glusterd.sh,v 1.1 2023/03/12 11:55:59 js Exp $
+#
+
+# PROVIDE: glusterd
+# REQUIRE: rpcbind
+
+$_rc_subr_loaded . /etc/rc.subr
+
+glusterd_precmd()
+{
+       fatal=0
+
+       for d in /var/lib/glusterd /usr/pkg/etc/glusterd ; do
+               if test -d /var/lib/glusterd ; then
+                       echo "Please migrate $d to /var/db/glusterd" >&2
+                       fatal=1
+               fi
+       done
+
+       if [ $fatal -eq 1 ] ; then
+               exit 1;
+       fi
+}
+
+name="glusterd"
+rcvar=$name
+command="/usr/pkg/sbin/${name}"
+#start_precmd="glusterd_precmd"
+pidfile="/var/run/${name}.pid"
+command_args="-p ${pidfile}"
+required_files="/usr/pkg/etc/glusterfs/${name}.vol"
+
+load_rc_config $name
+run_rc_command "$1"
+

Index: pkgsrc/filesystems/glusterfs8/patches/patch-config.h.in
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-config.h.in:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-config.h.in     Sun Mar 12 11:55:59 2023
@@ -0,0 +1,19 @@
+$NetBSD: patch-config.h.in,v 1.1 2023/03/12 11:55:59 js Exp $
+
+Make FUSE notification optional at configure time
+From upstream https://review.gluster.org/24731
+
+--- config.h.in.orig   2020-07-22 02:24:03.169608070 +0200
++++ config.h.in        2020-07-22 02:24:28.887999809 +0200
+@@ -47,8 +47,11 @@
+ 
+ /* define if fdatasync exists */
+ #undef HAVE_FDATASYNC
+ 
++/* Use FUSE notifications */
++#undef HAVE_FUSE_NOTIFICATIONS
++
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+ 
+ /* have sys/ioctl.h */
Index: pkgsrc/filesystems/glusterfs8/patches/patch-configure
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-configure:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-configure       Sun Mar 12 11:55:59 2023
@@ -0,0 +1,67 @@
+$NetBSD: patch-configure,v 1.1 2023/03/12 11:55:59 js Exp $
+
+Make FUSE notification optional at configure time
+From upstream https://review.gluster.org/24731
+
+NetBSD build fixes
+From upstream https://review.gluster.org/24648
+
+--- configure.orig     2020-07-06 03:22:43.222722780 +0200
++++ configure  2020-07-22 02:28:26.017707376 +0200
+@@ -932,8 +932,9 @@
+ with_tmpfilesdir
+ with_ocf
+ with_server
+ enable_fuse_client
++enable_fuse_notifications
+ enable_fusermount
+ enable_epoll
+ enable_georeplication
+ enable_events
+@@ -1619,8 +1620,10 @@
+                           Disable internal tracking of privileged ports.
+   --enable-valgrind       Enable valgrind for resource leak debugging.
+   --disable-fuse-client   Do not build the fuse client. NOTE: you cannot mount
+                           glusterfs without the client
++  --disable-fuse-notifications
++                          Disable FUSE notifications
+   --disable-fusermount    Use system's fusermount
+   --disable-epoll         Use poll instead of epoll.
+   --disable-georeplication
+                           Do not install georeplication components
+@@ -14172,8 +14175,23 @@
+ if test "x$enable_fuse_client" != "xno"; then
+    FUSE_CLIENT_SUBDIR=fuse
+    BUILD_FUSE_CLIENT="yes"
+ fi
++  
++  
++                          
++# Check whether --enable-fuse-notifications was given.
++if test "${enable_fuse_notifications+set}" = set; then :
++  enableval=$enable_fuse_notifications;
++fi
++  
++                          
++if test "x$enable_fuse_notifications" != "xno"; then :    
++  
++  
++$as_echo "#define HAVE_FUSE_NOTIFICATIONS 1" >>confdefs.h
++  
++fi
+ 
+ 
+ # end FUSE section
+ 
+@@ -14973,8 +14991,11 @@
+     *freebsd*)
+     CFLAGS="${CFLAGS} -isystem /usr/local/include"
+     ARGP_LDADD=-largp
+     ;;
++    *netbsd*)
++    ARGP_LDADD=-largp
++    ;;
+ esac
+ ac_fn_c_check_header_mongrel "$LINENO" "argp.h" "ac_cv_header_argp_h" "$ac_includes_default"
+ if test "x$ac_cv_header_argp_h" = xyes; then :
+ 
Index: pkgsrc/filesystems/glusterfs8/patches/patch-configure.ac
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-configure.ac:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-configure.ac    Sun Mar 12 11:55:59 2023
@@ -0,0 +1,36 @@
+$NetBSD: patch-configure.ac,v 1.1 2023/03/12 11:55:59 js Exp $
+
+Make FUSE notification optional at configure time
+From upstream https://review.gluster.org/24731
+
+--- configure.ac.orig  2020-07-06 03:22:37.734704915 +0200
++++ configure.ac       2020-07-22 02:26:32.903778538 +0200
+@@ -683,8 +683,16 @@
+    BUILD_FUSE_CLIENT="yes"
+ fi
+ 
+ AC_SUBST(FUSE_CLIENT_SUBDIR)
++
++AC_ARG_ENABLE([fuse-notifications],
++  AS_HELP_STRING([--disable-fuse-notifications], [Disable FUSE notifications]))
++
++AS_IF([test "x$enable_fuse_notifications" != "xno"], [
++  AC_DEFINE([HAVE_FUSE_NOTIFICATIONS], [1], [Use FUSE notifications])
++])
++
+ # end FUSE section
+ 
+ 
+ AC_CHECK_LIB([ssl], TLS_method, [HAVE_OPENSSL_1_1="yes"], [HAVE_OPENSSL_1_1="no"])
+@@ -945,8 +953,11 @@
+     *freebsd*)
+     CFLAGS="${CFLAGS} -isystem /usr/local/include"
+     ARGP_LDADD=-largp
+     ;;
++    *netbsd*)
++    ARGP_LDADD=-largp
++    ;;
+ esac
+ dnl argp-standalone does not provide a pkg-config file
+ AC_CHECK_HEADER([argp.h], AC_DEFINE(HAVE_ARGP, 1, [have argp]))
+ if test "x$ac_cv_header_argp_h" != "xyes"; then
Index: pkgsrc/filesystems/glusterfs8/patches/patch-rpc_rpc_lib_rpcsvc.c
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-rpc_rpc_lib_rpcsvc.c:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-rpc_rpc_lib_rpcsvc.c    Sun Mar 12 11:55:59 2023
@@ -0,0 +1,23 @@
+$NetBSD: patch-rpc_rpc_lib_rpcsvc.c,v 1.1 2023/03/12 11:55:59 js Exp $
+
+NetBSD build fixes
+From upstream https://review.gluster.org/24648
+
+NetBSD build fixes
+From upstream https://review.gluster.org/24648
+
+--- ./rpc/rpc-lib/src/rpcsvc.c.orig    2020-06-28 02:37:34.988840145 +0200
++++ ./rpc/rpc-lib/src/rpcsvc.c 2020-06-28 02:38:41.302115459 +0200
+@@ -40,8 +40,12 @@
+ 
+ #include "xdr-rpcclnt.h"
+ #include <glusterfs/glusterfs-acl.h>
+ 
++#ifndef PTHREAD_MUTEX_ADAPTIVE_NP
++#define PTHREAD_MUTEX_ADAPTIVE_NP PTHREAD_MUTEX_DEFAULT
++#endif
++
+ static struct rpcsvc_program gluster_dump_prog;
+ 
+ #define rpcsvc_alloc_request(svc, request)                                     \
+     do {                                                                       \
Index: pkgsrc/filesystems/glusterfs8/patches/patch-tools_gfind__missing__files_gfind__missing__files.sh
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-tools_gfind__missing__files_gfind__missing__files.sh:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-tools_gfind__missing__files_gfind__missing__files.sh    Sun Mar 12 11:55:59 2023
@@ -0,0 +1,16 @@
+$NetBSD: patch-tools_gfind__missing__files_gfind__missing__files.sh,v 1.1 2023/03/12 11:55:59 js Exp $
+
+NetBSD build fixes
+From upstream https://review.gluster.org/24648
+
+--- tools/gfind_missing_files/gfind_missing_files.sh.orig      2018-04-12 17:46:46.697237625 +0000
++++ tools/gfind_missing_files/gfind_missing_files.sh
+@@ -61,7 +61,7 @@ mount_slave()
+ 
+ parse_cli()
+ {
+-    if [[ $# -ne 4 ]]; then
++    if [ "$#" -ne 4 ]; then
+         echo "Usage: gfind_missing_files <brick-path> <slave-host> <slave-vol> <OUTFILE>"
+         exit 1
+     else
Index: pkgsrc/filesystems/glusterfs8/patches/patch-xlators_mgmt_glusterd_src_glusterd-utils.c
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-xlators_mgmt_glusterd_src_glusterd-utils.c:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-xlators_mgmt_glusterd_src_glusterd-utils.c      Sun Mar 12 11:55:59 2023
@@ -0,0 +1,19 @@
+$NetBSD: patch-xlators_mgmt_glusterd_src_glusterd-utils.c,v 1.1 2023/03/12 11:55:59 js Exp $
+
+fix NULL pointer reference
+From upstream https://review.gluster.org/24726
+
+--- ./xlators/mgmt/glusterd/src/glusterd-utils.c.orig  2020-07-10 02:53:59.416898136 +0200
++++ ./xlators/mgmt/glusterd/src/glusterd-utils.c       2020-07-10 02:54:16.956178597 +0200
+@@ -6394,9 +6394,10 @@
+             }
+         }
+     }
+ out:
+-    sys_closedir(dirp);
++    if (dirp)
++      sys_closedir(dirp);
+     return brick_path;
+ }
+ 
+ int
Index: pkgsrc/filesystems/glusterfs8/patches/patch-xlators_mount_fuse_src_fuse-bridge.c
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-xlators_mount_fuse_src_fuse-bridge.c:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-xlators_mount_fuse_src_fuse-bridge.c    Sun Mar 12 11:55:59 2023
@@ -0,0 +1,62 @@
+$NetBSD: patch-xlators_mount_fuse_src_fuse-bridge.c,v 1.1 2023/03/12 11:55:59 js Exp $
+
+Make FUSE notification optional at configure time
+From upstream https://review.gluster.org/24731
+
+--- xlators/mount/fuse/src/fuse-bridge.c.orig
++++ xlators/mount/fuse/src/fuse-bridge.c
+@@ -8,6 +8,8 @@
+   cases as published by the Free Software Foundation.
+ */
+ 
++#include <config.h>
++
+ #include <sys/wait.h>
+ #include "fuse-bridge.h"
+ #include <glusterfs/glusterfs.h>
+@@ -405,7 +407,7 @@ send_fuse_data(xlator_t *this, fuse_in_header_t *finh, void *data, size_t size)
+ static int32_t
+ fuse_invalidate_entry(xlator_t *this, uint64_t fuse_ino)
+ {
+-#if FUSE_KERNEL_MINOR_VERSION >= 11
++#if (FUSE_KERNEL_MINOR_VERSION >= 11 && defined(HAVE_FUSE_NOTIFICATIONS))
+     struct fuse_out_header *fouh = NULL;
+     struct fuse_notify_inval_entry_out *fnieo = NULL;
+     fuse_private_t *priv = NULL;
+@@ -496,7 +498,7 @@ fuse_invalidate_entry(xlator_t *this, uint64_t fuse_ino)
+ static int32_t
+ fuse_invalidate_inode(xlator_t *this, uint64_t fuse_ino)
+ {
+-#if FUSE_KERNEL_MINOR_VERSION >= 11
++#if (FUSE_KERNEL_MINOR_VERSION >= 11 && defined(HAVE_FUSE_NOTIFICATIONS))
+     struct fuse_out_header *fouh = NULL;
+     struct fuse_notify_inval_inode_out *fniio = NULL;
+     fuse_private_t *priv = NULL;
+@@ -4918,7 +4920,7 @@ fuse_setlk(xlator_t *this, fuse_in_header_t *finh, void *msg,
+     return;
+ }
+ 
+-#if FUSE_KERNEL_MINOR_VERSION >= 11
++#if FUSE_KERNEL_MINOR_VERSION >= 11 && defined(HAVE_FUSE_NOTIFICATIONS)
+ static void *
+ notify_kernel_loop(void *data)
+ {
+@@ -5165,6 +5167,7 @@ fuse_init(xlator_t *this, fuse_in_header_t *finh, void *msg,
+     priv->timed_response_fuse_thread_started = _gf_true;
+ 
+     /* Used for 'reverse invalidation of inode' */
++#ifdef HAVE_FUSE_NOTIFICATIONS
+     if (fini->minor >= 12) {
+         ret = gf_thread_create(&messenger, NULL, notify_kernel_loop, this,
+                                "fusenoti");
+@@ -5176,7 +5179,9 @@ fuse_init(xlator_t *this, fuse_in_header_t *finh, void *msg,
+             goto out;
+         }
+         priv->reverse_fuse_thread_started = _gf_true;
+-    } else {
++    } else
++#endif
++    {
+         /*
+          * FUSE minor < 12 does not implement invalidate notifications.
+          * This mechanism is required for fopen-keep-cache to operate
Index: pkgsrc/filesystems/glusterfs8/patches/patch-xlators_performance_write-behind_src_write-behind.c
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-xlators_performance_write-behind_src_write-behind.c:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-xlators_performance_write-behind_src_write-behind.c     Sun Mar 12 11:55:59 2023
@@ -0,0 +1,29 @@
+$NetBSD: patch-xlators_performance_write-behind_src_write-behind.c,v 1.1 2023/03/12 11:55:59 js Exp $
+
+NetBSD build fixes
+from upstream https://review.gluster.org/24648
+
+--- xlators/performance/write-behind/src/write-behind.c.orig   2020-07-06 03:22:38.006705801 +0200
++++ xlators/performance/write-behind/src/write-behind.c        2020-07-27 17:55:06.263570589 +0200
+@@ -2488,9 +2488,9 @@
+     wb_inode_t *wb_directory_inode = NULL;
+ 
+     wb_directory_inode = wb_inode_create(this, directory);
+ 
+-    if (!wb_directory_inode || !wb_directory_inode->lock.spinlock)
++    if (!wb_directory_inode)
+         return;
+ 
+     LOCK(&wb_directory_inode->lock);
+     {
+@@ -2508,9 +2508,9 @@
+     int readdirps = 0;
+ 
+     wb_directory_inode = wb_inode_ctx_get(this, directory);
+ 
+-    if (!wb_directory_inode || !wb_directory_inode->lock.spinlock)
++    if (!wb_directory_inode)
+         return;
+ 
+     LOCK(&wb_directory_inode->lock);
+     {
Index: pkgsrc/filesystems/glusterfs8/patches/patch-xlators_storage_posix_src_posix-entry-ops.c
diff -u /dev/null pkgsrc/filesystems/glusterfs8/patches/patch-xlators_storage_posix_src_posix-entry-ops.c:1.1
--- /dev/null   Sun Mar 12 11:56:00 2023
+++ pkgsrc/filesystems/glusterfs8/patches/patch-xlators_storage_posix_src_posix-entry-ops.c     Sun Mar 12 11:55:59 2023
@@ -0,0 +1,75 @@
+$NetBSD: patch-xlators_storage_posix_src_posix-entry-ops.c,v 1.1 2023/03/12 11:55:59 js Exp $
+
+Properly screen the .attribute directory where NetBSD UFS1 stores 
+extended attributes.
+From upstream https://review.gluster.org/24702
+
+--- xlators/storage/posix/src/posix-entry-ops.c.orig   2020-07-08 09:00:29.350013944 +0200
++++ xlators/storage/posix/src/posix-entry-ops.c        2020-07-08 09:04:15.087789405 +0200
+@@ -197,8 +197,22 @@
+         op_ret = -1;
+         goto out;
+     }
+ 
++#ifdef __NetBSD__
++    /* Same for NetBSD's .attribute directory */
++    if (__is_root_gfid(loc->pargfid) && loc->name &&
++        (strcmp(loc->name, ".attribute") == 0)) {
++        gf_msg(this->name, GF_LOG_WARNING, EPERM, P_MSG_LOOKUP_NOT_PERMITTED,
++               "Lookup issued on .attribute,"
++               " which is not permitted");
++        op_errno = EPERM;
++        op_ret = -1;
++        goto out;
++    }
++#endif /* __NetBSD__ */  
++
++
+     op_ret = dict_get_int32_sizen(xdata, GF_GFIDLESS_LOOKUP, &gfidless);
+     op_ret = -1;
+     if (gf_uuid_is_null(loc->pargfid) || (loc->name == NULL)) {
+         /* nameless lookup */
+@@ -649,8 +663,21 @@
+         op_ret = -1;
+         goto out;
+     }
+ 
++#ifdef __NetBSD__
++    /* Same for NetBSD's .attribute directory */
++    if (__is_root_gfid(loc->pargfid) &&
++        (strcmp(loc->name, ".attribute") == 0)) {
++        gf_msg(this->name, GF_LOG_WARNING, EPERM, P_MSG_MKDIR_NOT_PERMITTED,
++               "mkdir issued on .attribute, which"
++               "is not permitted");
++        op_errno = EPERM;
++        op_ret = -1;
++        goto out;
++    }
++#endif
++
+     priv = this->private;
+     VALIDATE_OR_GOTO(priv, out);
+     GFID_NULL_CHECK_AND_GOTO(frame, this, loc, xdata, op_ret, op_errno,
+                              uuid_req, out);
+@@ -1415,8 +1442,21 @@
+         op_ret = -1;
+         goto out;
+     }
+ 
++#ifdef __NetBSD__
++    /* Same for NetBSD's .attribute directory */
++    if (__is_root_gfid(loc->pargfid) &&
++        (strcmp(loc->name, ".attribute") == 0)) {
++        gf_msg(this->name, GF_LOG_WARNING, EPERM, P_MSG_RMDIR_NOT_PERMITTED,
++               "rmdir issued on .attribute, which"
++               "is not permitted");
++        op_errno = EPERM;
++        op_ret = -1;
++        goto out;
++    }
++#endif
++
+     priv = this->private;
+ 
+     MAKE_ENTRY_HANDLE(real_path, par_path, this, loc, &stbuf);
+     if (!real_path || !par_path) {



Home | Main Index | Thread Index | Old Index