pkgsrc-WIP-changes archive

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

Add clean slate glusterfs dir from pkgsrc filesystems/glusterfs.



Module Name:	pkgsrc-wip
Committed By:	Alexander Schreiber <als%thangorodrim.ch@localhost>
Pushed By:	als
Date:		Thu Mar 16 16:38:49 2023 +0000
Changeset:	1995bb001c1595bb6639a5300e65c3c51942dbc3

Added Files:
	glusterfs/DESCR
	glusterfs/MESSAGE.NetBSD
	glusterfs/Makefile
	glusterfs/PLIST
	glusterfs/distinfo
	glusterfs/files/glusterd.sh
	glusterfs/patches/patch-configure.ac
	glusterfs/patches/patch-libglusterfs-src-glusterfs-dict.h

Log Message:
Add clean slate glusterfs dir from pkgsrc filesystems/glusterfs.

Add a clean slate glusterfs dir from pkgsrc filesystems/glusterfs
as a starting point for the next patches.

Signed-off-by: Alexander Schreiber <als%thangorodrim.ch@localhost>

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=1995bb001c1595bb6639a5300e65c3c51942dbc3

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

diffstat:
 glusterfs/DESCR                                    |  11 +
 glusterfs/MESSAGE.NetBSD                           |  21 ++
 glusterfs/Makefile                                 | 148 +++++++++
 glusterfs/PLIST                                    | 361 +++++++++++++++++++++
 glusterfs/distinfo                                 |   7 +
 glusterfs/files/glusterd.sh                        |  37 +++
 glusterfs/patches/patch-configure.ac               |  34 ++
 .../patch-libglusterfs-src-glusterfs-dict.h        |  42 +++
 8 files changed, 661 insertions(+)

diffs:
diff --git a/glusterfs/DESCR b/glusterfs/DESCR
new file mode 100644
index 0000000000..1f237a7172
--- /dev/null
+++ b/glusterfs/DESCR
@@ -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.  It requires a 64-bit CPU.
+
+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/ for more info.
diff --git a/glusterfs/MESSAGE.NetBSD b/glusterfs/MESSAGE.NetBSD
new file mode 100644
index 0000000000..c9c1252217
--- /dev/null
+++ b/glusterfs/MESSAGE.NetBSD
@@ -0,0 +1,21 @@
+===========================================================================
+$NetBSD: MESSAGE.NetBSD,v 1.19 2020/08/28 14:55:18 gdt 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
+
+===========================================================================
diff --git a/glusterfs/Makefile b/glusterfs/Makefile
new file mode 100644
index 0000000000..f3aa8b7945
--- /dev/null
+++ b/glusterfs/Makefile
@@ -0,0 +1,148 @@
+# $NetBSD: Makefile,v 1.114 2023/03/16 03:28:24 gutteridge Exp $
+
+DISTNAME=	glusterfs-10.3
+PKGREVISION=	1
+CATEGORIES=	filesystems
+MASTER_SITES=	http://bits.gluster.org/pub/gluster/glusterfs/src/
+
+MAINTAINER=	als%thangorodrim.ch@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:run autoconf autoreconf automake
+
+CONFIGURE_ARGS+=	--disable-fusermount
+CONFIGURE_ARGS+=	--disable-fuse-notifications
+CONFIGURE_ARGS+=	--localstatedir=${VARBASE}
+CONFIGURE_ARGS+=	--without-tcmalloc
+# libtirpc not in pkgsrc (yet)
+CONFIGURE_ARGS+=	--without-libtirpc
+
+# Upstream glusterfs effectively dropped support for 32bit platforms
+# somewhere between 8.2 (works on e.g. NetBSD/i386) and 10.3 as various
+# internal bits went from 32 to 64 bits and atomic updates were done
+# on those - can't do that for 64bit values on a 32bit arch.
+# https://github.com/gluster/glusterfs/issues/702 proposed an explicit
+# drop of 32bit and eventually it just happened. See
+# https://github.com/gluster/glusterfs/issues/3911#issuecomment-1451711686
+# for a more detailed explanation.
+BROKEN_ON_PLATFORM=	${LP32PLATFORMS}
+
+# 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+=	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.in
+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/brickfind.py
+REPLACE_PYTHON+=	tools/glusterfind/src/changelog.py
+REPLACE_PYTHON+=	tools/glusterfind/src/main.py
+REPLACE_PYTHON+=	tools/glusterfind/src/nodeagent.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/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/secondary-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+=	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"
+
+SUBST_CLASSES+=		bash
+SUBST_STAGE.bash=	pre-configure
+SUBST_FILES.bash=	build-aux/pkg-version
+SUBST_SED.bash=		-e "s,/bin/bash,/usr/pkg/bin/bash,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-configure:
+	cd ${WRKSRC} && ./autogen.sh
+
+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"
diff --git a/glusterfs/PLIST b/glusterfs/PLIST
new file mode 100644
index 0000000000..d1003d4a6e
--- /dev/null
+++ b/glusterfs/PLIST
@@ -0,0 +1,361 @@
+@comment $NetBSD: PLIST,v 1.41 2023/03/12 17:57:44 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-io_uring.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/gf-io-common.h
+include/glusterfs/gf-io-legacy.h
+include/glusterfs/gf-io.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/monitor.py
+libexec/glusterfs/python/syncdaemon/monitor.pyc
+libexec/glusterfs/python/syncdaemon/monitor.pyo
+libexec/glusterfs/python/syncdaemon/primary.py
+libexec/glusterfs/python/syncdaemon/primary.pyc
+libexec/glusterfs/python/syncdaemon/primary.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/secondary-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
diff --git a/glusterfs/distinfo b/glusterfs/distinfo
new file mode 100644
index 0000000000..88ea1b2df7
--- /dev/null
+++ b/glusterfs/distinfo
@@ -0,0 +1,7 @@
+$NetBSD: distinfo,v 1.75 2023/03/16 03:28:24 gutteridge Exp $
+
+BLAKE2s (glusterfs-10.3.tar.gz) = c2f9b5670d1df7a787e445207caa421a949f1fb98cafb587441925efe8d9e25a
+SHA512 (glusterfs-10.3.tar.gz) = af7c8a15db48196a5f7022e4da87ae8d8d43a12c8968b242f40fb43ea562d1d214e75b3a67800f8594c97847e15c01367b6d464964252551d6f8d3e93fb0f832
+Size (glusterfs-10.3.tar.gz) = 8283537 bytes
+SHA1 (patch-configure.ac) = e4c2f65d6579aab9b62e28ba60b75ba542116811
+SHA1 (patch-libglusterfs-src-glusterfs-dict.h) = ebfdfe6ffbdda3532d15fe108d4214b1e9596304
diff --git a/glusterfs/files/glusterd.sh b/glusterfs/files/glusterd.sh
new file mode 100755
index 0000000000..e3a612774e
--- /dev/null
+++ b/glusterfs/files/glusterd.sh
@@ -0,0 +1,37 @@
+#!/bin/sh
+#
+# $NetBSD: glusterd.sh,v 1.12 2014/11/18 14:38:15 manu 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"
+
diff --git a/glusterfs/patches/patch-configure.ac b/glusterfs/patches/patch-configure.ac
new file mode 100644
index 0000000000..539babd23b
--- /dev/null
+++ b/glusterfs/patches/patch-configure.ac
@@ -0,0 +1,34 @@
+$NetBSD: patch-configure.ac,v 1.4 2023/03/12 17:57:44 js Exp $
+
+Check for sizeof(time_t).
+
+Defang bash 4.0 syntax in configure
+(https://github.com/gluster/glusterfs/issues/3940).
+
+--- configure.ac.orig   2022-09-20 12:24:29.568820624 +0200
++++ configure.ac        2023-03-06 22:45:21.897057433 +0100
+@@ -544,6 +544,11 @@
+ AC_SUBST(SIZEOF_LONG)
+ AC_SUBST(SIZEOF_LONG_LONG)
+ 
++# size of time_t
++AC_CHECK_SIZEOF(time_t)
++SIZEOF_TIME_T=$ac_cv_sizeof_time_t
++AC_SUBST(SIZEOF_TIME_T)
++
+ # YACC needs a check
+ AC_PROG_YACC
+ if test "x${YACC}" = "xbyacc" -o "x${YACC}" = "xyacc" -o "x${YACC}" = "x"; then
+@@ -1896,10 +1896,10 @@
+ echo "Building with LTO    : $LTO_BUILD"
+ echo
+ 
+-# dnl Note: ${X^^} capitalization assumes bash >= 4.x
+ if test "x$SANITIZER" != "xnone"; then
++        UC_SANITIZER=$(echo ${SANITIZER} | tr 'a-z' 'A-Z')
+         echo "Note: since glusterfs processes are daemon processes, use"
+-        echo "'export ${SANITIZER^^}_OPTIONS=log_path=/path/to/xxx.log' to collect"
++        echo "'export ${UC_SANITIZER}_OPTIONS=log_path=/path/to/xxx.log' to collect"
+         echo "sanitizer output. Further details and more options can be"
+         echo "found at https://github.com/google/sanitizers.";
+ fi
diff --git a/glusterfs/patches/patch-libglusterfs-src-glusterfs-dict.h b/glusterfs/patches/patch-libglusterfs-src-glusterfs-dict.h
new file mode 100644
index 0000000000..96c655071d
--- /dev/null
+++ b/glusterfs/patches/patch-libglusterfs-src-glusterfs-dict.h
@@ -0,0 +1,42 @@
+$NetBSD: patch-libglusterfs-src-glusterfs-dict.h,v 1.1 2023/03/12 17:57:44 js Exp $
+
+Do not use __WORDSIZE as proxy for sizeof(time_t), since:
+ - __WORDSIZE is glibc (and thus Linux) only
+ - machine word size is a bad proxy for sizeof(time_t), e.g.
+   NetBSD on 32bit arch (i386) also has sizeof(time_t) == 8
+
+Instead use configure to check sizeof(time_t) and use this.
+
+upstream bug https://github.com/gluster/glusterfs/issues/3942
+
+--- libglusterfs/src/glusterfs/dict.h.orig      2023-01-01 23:19:50.909999764 +0100
++++ libglusterfs/src/glusterfs/dict.h   2023-01-01 23:09:15.920888776 +0100
+@@ -15,6 +15,7 @@
+ #include <sys/uio.h>
+ #include <pthread.h>
+ 
++#include "config.h"
+ #include "glusterfs/common-utils.h"
+ 
+ typedef struct _data data_t;
+@@ -320,17 +321,17 @@
+ dict_set_uint64(dict_t *this, char *key, uint64_t val);
+ 
+ /* POSIX-compliant systems requires the 'time_t' to be a signed integer. */
+-#if __WORDSIZE == 64
++#if SIZEOF_TIME_T == 8
+ #define dict_get_time(dict, key, val) dict_get_int64((dict), (key), (val))
+ #define dict_set_time(dict, key, val) dict_set_int64((dict), (key), (val))
+-#elif __WORDSIZE == 32
++#elif SIZEOF_TIME_T == 4
+ #define dict_get_time(dict, key, val)                   \
+     dict_get_int32((dict), (key), ((int32_t *)(val)))
+ #define dict_set_time(dict, key, val)                   \
+     dict_set_int32((dict), (key), ((int32_t)(val)))
+ #else
+ #error "unknown word size"
+-#endif /* WORDSIZE check */
++#endif /* SIZEOF_TIME_T check */
+ 
+ GF_MUST_CHECK int
+ dict_check_flag(dict_t *this, char *key, int flag);


Home | Main Index | Thread Index | Old Index