pkgsrc-WIP-changes archive

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

glusterfs: update wip/glusterfs to 10.3



Module Name:	pkgsrc-wip
Committed By:	Alexander Schreiber <als%thangorodrim.ch@localhost>
Pushed By:	als
Date:		Sun Jan 29 22:06:09 2023 +0000
Changeset:	509f585558fa259bfde35768544633cfb70a92ca

Modified Files:
	glusterfs/DESCR
	glusterfs/MESSAGE.NetBSD
	glusterfs/Makefile
	glusterfs/PLIST
	glusterfs/distinfo
	glusterfs/files/glusterd.sh
Added Files:
	glusterfs/patches/patch-configure
	glusterfs/patches/patch-configure.ac
	glusterfs/patches/patch-libglusterfs-src-glusterfs-dict.h
Removed Files:
	glusterfs/patches/patch-rpc_rpc-lib_src_rpcsvc.c
	glusterfs/patches/patch-xlators_performance_write-behind_src_write-behind.c

Log Message:
glusterfs: update wip/glusterfs to 10.3

changelog from upstream:

Gluster 10.3

  This is a bugfix release. The release notes for 10.0, 10.1 and 10.2
  contain a listing of all the new improvements and bugs fixed in the
  GlusterFS 10 stable release.

  Important fixes in this release

  -  Fix qemu-img crash on a distributed volume
  -  Fix a possible deadlock scenario In Brick Process
  -  Allow opening snapshot directory(entrypoint) via
     glfs_open()/glfs_h_open() and snapshot directory(entrypoint)
     to support functionalities of Samba
  -  Implement seek fop in DHT and prevent EBADFD related failures

  Issues addressed in this release

  - [#1000] Fix qemu-img crash on a distributed volume
  - [#3774] Fix a possible deadlock scenario In Brick Process
  - [#3373] Implement seek fop in DHT and prevent EBADFD related failures
  - [#3666] Prevent snapd crashes on opening snapshot directory via gfapi
  - [#3765] Allow opening snapshot directory(entrypoint) via
            glfs_open()/glfs_h_open()
  - [#3307] Fix return from glfs_open() to honour O_DIRECTORY flag for Samba
  - [#3725] Fix mismatch in errorcode between fgetxattr() and
            glusterfs.get_real_filename
  - [#3778] Handle spurious failures of spare_file_rebalance.t test case

Gluster 10.2

  This is a bugfix and improvement release. The release notes for 10.0 and
  10.1 contain a listing of all the new features that were added and bugs
  fixed in the GlusterFS 10 stable release.

  Important fixes in this release

  - Optimize server functionality by enhancing server_process_event_upcall
    code path during the handling of upcall event
  - Fix all bricks not starting issue on node reboot when brick count
    is high(>750)
  - Fix stale posix locks that appear after client disconnection

  Bugs addressed

  - [#3182] Fix stale posix locks that appear after client disconnection
  - [#3187] Fix Locks xlator fd leaks
  - [#3234] Fix incorrect directory check inorder to successfully locate
            the SSL certificate
  - [#3262] Synchronize layout*(ref|unref) during layout*(get|set) in dht
  - [#3321] Optimize server functionality by enhancing
            server_process_event_upcall code path during the handling
            of upcall event
  - [#3334] Fix errors and timeouts when creating qcow2 file via libgfapi
  - [#3375] Fix all bricks not starting issue on node reboot when brick
            count is high(>750)
  - [#3417] Fix crash due to unaligned memory access
  - [#3470] Fix spurious crash when "peer probing" a non existing host name

Gluster 10.1

  This is a bugfix and improvement release. The release notes for 10.0
  contain a listing of all the new features that were added and bugs
  fixed in the GlusterFS 10 stable release.

  Important fixes in this release

  - Fix missing stripe count issue with upgrade from 9.x to 10.x
  - Fix IO failure when shrinking distributed dispersed volume with ongoing IO
  - Fix log spam introduced with glusterfs 10.0
  - Enable ltcmalloc_minimal instead of ltcmalloc

  Bugs addressed

  - [#2846] Avoid redundant logs in gluster
  - [#2903] Fix worker disconnect due to AttributeError in geo-replication
  - [#2910] Check for available ports in port_range in glusterd
  - [#2939] Remove the deprecated commands from gluster man page
  - [#2947] Fix IO failure when shrinking distributed dispersed volume
            with ongoing IO
  - [#3071] Fix log spam introduced with glusterfs 10.0
  - [#3000] Enable ltcmalloc_minimal instead of ltcmalloc
  - [#3086] Handle excessive log in case dict is NUL
  - [#3133] Fix missing stripe count issue with upgrade from 9.x to 10.x
  - [#2962] Fix volume create failures without disperse count and ip addresses

Gluster 10.0

  This is a major release that includes a range of features, code improvements
  and stability fixes as noted below.

  Highlights

  - Major performance improvement of ~20% w.r.t small files
    as well as large files testing in controlled lab environments [#2771]
    **NOTE**: The above improvement requires tcmalloc library to be enabled
    for building. We have tested and verified tcmalloc in X86_64 platforms
    and is enabled only for x86_64 builds in current release.
  - Randomized port selection for bricks, improves startup time [#786]
  - Performance improvement with use of readdir instead of readdirp in
    fix-layout [#2241]
  - Heal time improvement with bigger window size [#2067]

  Bugs addressed since release-9

  - [#504] AFR: remove memcpy() + ntoh32() pattern
  - [#705] gf_backtrace_save inefficiencies
  - [#782] Do not explicitly call strerror(errnum) when logging
  - [#786] glusterd-pmap binds to 10K ports on startup (using IPv4)
  - [#904] [bug:1649037] Translators allocate too much memory in their xlator\_
  - [#1000] [bug:1193929] GlusterFS can be improved
  - [#1002] [bug:1679998] GlusterFS can be improved
  - [#1052] [bug:1693692] Increase code coverage from regression tests
  - [#1060] [bug:789278] Issues reported by Coverity static analysis tool
  - [#1096] [bug:1622665] clang-scan report: glusterfs issues
  - [#1101] [bug:1813029] volume brick fails to come online because other proce
  - [#1251] performance: improve \_\_afr_fd_ctx_get() function
  - [#1339] Rebalance status is not shown correctly after node reboot
  - [#1358] features/shard: wrong "inode->ref" leading to ASSERT in inode_unref
  - [#1359] Cleanup --disable-mempool
  - [#1380] fd_unref() optimization   - do an atomic decrement outside the
            lock a
  - [#1384] mount glusterfs volume, files larger than 64Mb only show 64Mb
  - [#1406] shared storage volume fails to mount in ipv6 environment
  - [#1415] Removing problematic language in geo-replication
  - [#1423] shard_make_block_abspath() should be called with a string of of the
  - [#1536] Improve dict_reset() efficiency
  - [#1545] fuse_invalidate_entry()   - too many repetitive calls to uuid_utoa()
  - [#1583] Rework stats structure (xl->stats.total.metrics[fop_idx] and friend
  - [#1584] MAINTAINERS file needs to be revisited and updated
  - [#1596] 'this' NULL check relies on 'THIS' not being NULL
  - [#1600] Save and re-use MYUUID
  - [#1678] Improve gf_error_to_errno() and gf_errno_to_error() positive flow
  - [#1695] Rebalance has a redundant lookup operation
  - [#1702] Move GF_CLIENT_PID_GSYNCD check to start of the function.
  - [#1703] Remove trivial check for GF_XATTR_SHARD_FILE_SIZE before calling sh
  - [#1707] PL_LOCAL_GET_REQUESTS access the dictionary twice for the same info
  - [#1717] glusterd: sequence of rebalance and replace/reset-brick presents re
  - [#1723] DHT: further investigation for treating an ongoing mknod's
            linkto file
  - [#1749] brick-process: call 'notify()' and 'fini()' of brick xlators in a p
  - [#1755] Reduce calls to 'THIS' in fd_destroy() and others, where 'THIS' is
  - [#1761] CONTRIBUTING.md regression can only be run by maintainers
  - [#1764] Slow write on ZFS bricks after healing millions of files due to add
  - [#1772] build: add LTO as a configure option
  - [#1773] DHT/Rebalance   - Remove unused variable dht_migrate_file
  - [#1779] Add-brick command should check hostnames with bricks present in vol
  - [#1825] Latency in io-stats should be in nanoseconds resolution, not micros
  - [#1872] Question: How to check heal info without glusterd management layer
  - [#1885] \_\_posix_writev()   - reduce memory copies and unneeded zeroing
  - [#1888] GD_OP_VERSION needs to be updated for release-10
  - [#1898] schedule_georep.py resulting in failure when used with python3
  - [#1909] core: Avoid several dict OR key is NULL message in brick logs
  - [#1925] dht_pt_getxattr does not seem to handle virtual xattrs.
  - [#1935] logging to syslog instead of any glusterfs logs
  - [#1943] glusterd-volgen: Add functionality to accept any custom xlator
  - [#1952] posix-aio: implement GF_FOP_FSYNC
  - [#1959] Broken links in the 2 replicas split-brain-issue   - [Bug]Enhancemen
  - [#1960] Add missing LOCK_DESTROY() calls
  - [#1966] Can't print trace details due to memory allocation issues
  - [#1977] Inconsistent locking in presence of disconnects
  - [#1978] test case ./tests/bugs/core/bug-1432542-mpx-restart-crash.t is gett
  - [#1981] Reduce posix_fdstat() calls in IO paths
  - [#1991] mdcache: bug causes getxattr() to report ENODATA when fetching samb
  - [#1992] dht: var decommission_subvols_cnt becomes invalid when config is up
  - [#1996] Analyze if spinlocks have any benefit and remove them if not
  - [#2001] Error handling in /usr/sbin/gluster-eventsapi produces AttributeErr
  - [#2005] ./tests/bugs/replicate/bug-921231.t is continuously failing
  - [#2013] dict_t hash-calculation can be removed when hash_size=1
  - [#2024] Remove gfs_id variable or at least set to appropriate value
  - [#2025] list_del() should not set prev and next
  - [#2033] tests/bugs/nfs/bug-1053579.t fails on CentOS 8
  - [#2038] shard_unlink() fails due to no space to create marker file
  - [#2039] Do not allow POSIX IO backend switch when the volume is running
  - [#2042] mount ipv6 gluster volume with serveral backup-volfile-servers,use
  - [#2052] Revert the commit 50e953e2450b5183988c12e87bdfbc997e0ad8a8
  - [#2054] cleanup call_stub_t from unused variables
  - [#2063] Provide autoconf option to enable/disable storage.linux-io_uring du
  - [#2067] Change self-heal-window-size to 1MB by default
  - [#2075] Annotate synctasks with valgrind API if --enable-valgrind[=memcheck
  - [#2080] Glustereventsd default port
  - [#2083] GD_MSG_DICT_GET_FAILED should not include 'errno' but 'ret'
  - [#2086] Move tests/00-geo-rep/00-georep-verify-non-root-setup.t to tests/00
  - [#2096] iobuf_arena structure doesn't need passive and active iobufs, but l
  - [#2099] 'force' option does not work in the replicated volume snapshot crea
  - [#2101] Move 00-georep-verify-non-root-setup.t back to tests/00-geo-rep/
  - [#2107] mount crashes when setfattr -n distribute.fix.layout -v "yes" is ex
  - [#2116] enable quota for multiple volumes take more time
  - [#2117] Concurrent quota enable causes glusterd deadlock
  - [#2123] Implement an I/O framework
  - [#2129] CID 1445996 Null pointer dereferences (FORWARD_NULL) /xlators/mgmt/
  - [#2130] stack.h/c: remove unused variable and reorder struct
  - [#2133] Changelog History Crawl failed after resuming stopped geo-replicati
  - [#2134] Fix spurious failures caused by change in profile info duration to
  - [#2138] glfs_write() dumps a core file file when buffer size is 1GB
  - [#2154] "Operation not supported" doing a chmod on a symlink
  - [#2159] Remove unused component tests
  - [#2161] Crash caused by memory corruption
  - [#2169] Stack overflow when parallel-readdir is enabled
  - [#2180] CID 1446716: Memory   - illegal accesses (USE_AFTER_FREE)
            /xlators/mg
  - [#2187] [Input/output error] IO failure while performing shrink operation w
  - [#2190] Move a test case tests/basic/glusterd-restart-shd-mux.t to flaky
  - [#2192] 4+1 arbiter setup is broken
  - [#2198] There are blocked inodelks for a long time
  - [#2216] Fix coverity issues
  - [#2232] "Invalid argument" when reading a directory with gfapi
  - [#2234] Segmentation fault in directory quota daemon for replicated volume
  - [#2239] rebalance crashes in dht on master
  - [#2241] Using readdir instead of readdirp for fix-layout increases performa
  - [#2253] Disable lookup-optimize by default in the virt group
  - [#2258] Provide option to disable fsync in data migration
  - [#2260] failed to list quota info after setting limit-usage
  - [#2268] dht_layout_unref() only uses 'this' to check that 'this->private' i
  - [#2278] nfs-ganesha does not start due to shared storage not ready, but ret
  - [#2287] runner infrastructure fails to provide platfrom independent error c
  - [#2294] dict.c: remove some strlen() calls if using DICT_LIST_IMP
  - [#2308] Developer sessions for glusterfs
  - [#2313] Long setting names mess up the columns and break parsing
  - [#2317] Rebalance doesn't migrate some sparse files
  - [#2328] "gluster volume set <volname> group samba" needs to include write-b
  - [#2330] gf_msg can cause relock deadlock
  - [#2334] posix_handle_soft() is doing an unnecessary stat
  - [#2337] memory leak observed in lock fop
  - [#2348] Gluster's test suite on RHEL 8 runs slower than on RHEL 7
  - [#2351] glusterd: After upgrade on release 9.1 glusterd protocol is broken
  - [#2353] Permission issue after upgrading to Gluster v9.1
  - [#2360] extras: postscript fails on logrotation of snapd logs
  - [#2364] After the service is restarted, a large number of handles are not r
  - [#2370] glusterd: Issues with custom xlator changes
  - [#2378] Remove sys_fstatat() from posix_handle_unset_gfid() function   - not
  - [#2380] Remove sys_lstat() from posix_acl_xattr_set()   - not needed
  - [#2388] Geo-replication gets delayed when there are many renames on primary
  - [#2394] Spurious failure in tests/basic/fencing/afr-lock-heal-basic.t
  - [#2398] Bitrot and scrub process showed like unknown in the gluster volume
  - [#2404] Spurious failure of tests/bugs/ec/bug-1236065.t
  - [#2407] configure glitch with CC=clang
  - [#2410] dict_xxx_sizen variant compilation should fail on passing a variabl
  - [#2414] Prefer mallinfo2() to mallinfo() if available
  - [#2421] rsync should not try to sync internal xattrs.
  - [#2429] Use file timestamps with nanosecond precision
  - [#2431] Drop --disable-syslog configuration option
  - [#2440] Geo-replication not working on Ubuntu 21.04
  - [#2443] Core dumps on Gluster 9   - 3 replicas
  - [#2446] client_add_lock_for_recovery()   - new_client_lock() should be
            called
  - [#2467] failed to open /proc/0/status: No such file or directory
  - [#2470] sharding: [inode.c:1255:__inode_unlink] 0-inode: dentry not found
  - [#2480] Brick going offline on another host as well as the host which reboo
  - [#2502] xlator/features/locks/src/common.c has code duplication
  - [#2507] Use appropriate msgid in gf_msg()
  - [#2515] Unable to mount the gluster volume using fuse unless iptables is fl
  - [#2522] ganesha_ha (extras/ganesha/ocf): ganesha_grace RA fails in start()
  - [#2540] delay-gen doesn't work correctly for delays longer than 2 seconds
  - [#2551] Sometimes the lock notification feature doesn't work
  - [#2581] With strict-locks enabled clients which are holding posix locks sti
  - [#2590] trusted.io-stats-dump extended attribute usage description error
  - [#2611] Granular entry self-heal is taking more time than full entry self h
  - [#2617] High CPU utilization of thread glfs_fusenoti and huge delays in som
  - [#2620] Granular entry heal purging of index name trigger two lookups in th
  - [#2625] auth.allow value is corrupted after add-brick operation
  - [#2626] entry self-heal does xattrops unnecessarily in many cases
  - [#2649] glustershd failed in bind with error "Address already in use"
  - [#2652] Removal of deadcode: Pump
  - [#2659] tests/basic/afr/afr-anon-inode.t crashed
  - [#2664] Test suite produce uncompressed logs
  - [#2693] dht: dht_local_wipe is crashed while running rename operation
  - [#2771] Smallfile improvement in glusterfs
  - [#2782] Glustereventsd does not listen on IPv4 when IPv6 is not available
  - [#2789] An improper locking bug(e.g., deadlock) on the lock up_inode_ctx->c
  - [#2798] FUSE mount option for localtime-logging is not exposed
  - [#2816] Glusterfsd memory leak when subdir_mounting a volume
  - [#2835] dht: found anomalies in dht_layout after commit c4cbdbcb3d02fb56a62
  - [#2857] variable twice initialization.

Gluster 9.6

  This is a bugfix and improvement release. The release notes for 9.0, 9.1,
  9.2, 9.3, 9.4, 9.5 contain a listing of all the new features that were
  added and bugs fixed in the GlusterFS 9 stable release.

  Important fixes in this release

  - Optimize server functionality by enhancing server_process_event_upcall
    code path during the handling of upcall event
  - Fix all bricks not starting issue on node reboot when brick count is
    high(>750)

  Issues addressed in this release

  - [#2962] Fix volume create without disperse count failures with ip addresses
  - [#3177] Locks: Optimize the interrupt flow of POSIX locks
  - [#3187] Fix Locks xlator leaks fd's when a blocked posix lock is cancelled
  - [#3191] Fix double free issue in the cbk function
            dht_common_mark_mdsxattr_cbk
  - [#3321] Optimize server functionality by enhancing
            server_process_event_upcall code path during the handling
            of upcall event
  - [#3332] Fix garbage value reported by static analyser
  - [#3334] Fix errors and timeouts when creating qcow2 file via libgfapi
  - [#3375] Fix all bricks not starting issue on node reboot when brick
            count is high(>750)
  - [#3470] Fix spurious crash when "peer probing" a non existing host name

Gluster 9.5

  This is a bugfix and improvement release. The release notes for 9.0,
  9.1, 9.2, 9.3, 9.4 contain a listing of all the new features that
  were added and bugs fixed in the GlusterFS 9 stable release.

  Important fixes in this release

  - Fix rebalance of sparse files [#2317]
  - Fix anomalous brick offline scenario on non rebooted node by
    preventing bricks from connecting to a backup volfile [#2480]

  Issues addressed in this release

  - [#2317] Fix rebalance of sparse files
  - [#2414] Prefer mallinfo2() to mallinfo() if available
  - [#2467] Handle failure in fuse to get gids gracefully
  - [#2480] Prevent bricks from connecting to a backup volfile and fix
            brick offline scenario on non rebooted node
  - [#2846] Avoid redundant logs in glusterd at info level
  - [#2903] Fix worker disconnect due to AttributeError in geo-replication
  - [#2939] Remove the deprecated commands from gluster man page

Gluster 9.4

  This is a bugfix and improvement release. The release notes for 9.0,
  9.1, 9.2, 9.3 contain a listing of all the new features that were
  added and bugs fixed in the GlusterFS 9 stable release.

  Important fixes in this release

  - Fix changelog History Crawl resume failures after stop [#2133]
  - Fix Stack overflow when parallel-readdir is enabled [#2169]
  - Fix rebalance crashes in dht [#2239]

  Issues addressed in this release

  - [#2133] changelog History Crawl resume fails after stop
  - [#2169] Stack overflow when parallel-readdir is enabled
  - [#2239] rebalance crashes in dht on master
  - [#2625] auth.allow value is corrupted after add-brick operation
  - [#2649] glustershd failed in bind with error "Address already in use"
  - [#2659] tests/basic/afr/afr-anon-inode.t crashed
  - [#2754] It takes a long time to execute the “gluster volume set volumename
  - [#2798] FUSE mount option for localtime-logging is not exposed
  - [#2690]lusterd: reset mgmt_v3_lock_timeout after it be used
  - [#2691] georep-upgrade.t find failures
  - [#1101] volume brick fails to come online because other process is
            using port 49152

Gluster 9.3

  This is a bugfix and improvement release. The release notes for 9.0,
  9.1, 9.2 contain a listing of all the new features that were added
   and bugs fixed in the GlusterFS 9 stable release.

  Important fixes in this release

  - Core dumps on Gluster 9 - 3 replicas [#2443]
  - geo-rep: Improve handling of gfid mismatches [#2423]
  - auth.allow list is corrupted after add-brick (buffer overflow?) [#2524]

  Issues addressed in this release

  - [#705] gf_backtrace_save inefficiencies
  - [#1000] [bug:1193929] GlusterFS can be improved
  - [#1384] mount glusterfs volume, files larger than 64Mb only show 64Mb
  - [#2388] Geo-replication gets delayed when there are many renames on primary
  - [#2394] Spurious failure in tests/basic/fencing/afr-lock-heal-basic.t
  - [#2398] Bitrot and scrub process showed like unknown in the gluster volume
  - [#2421] rsync should not try to sync internal xattrs.
  - [#2440] Geo-replication not working on Ubuntu 21.04
  - [#2443] Core dumps on Gluster 9   - 3 replicas
  - [#2470] sharding: [inode.c:1255:__inode_unlink] 0-inode: dentry not found
  - [#2524] auth.allow list is corrupted after add-brick (buffer overflow?)

Gluster 9.2

  This is a bugfix and improvement release. The release notes for 9.0,
  9.1 contain a listing of all the new features that were added and bugs
  fixed in the GlusterFS 9 stable release.

  Important fixes in this release

  - After upgrade on release 9.1 glusterd protocol is broken [#2351]
  - Disable lookup-optimize by default in the virt group [#2253]

  Issues addressed in this release

  - [#1909] core: Avoid several dict OR key is NULL message in brick logs
  - [#2161] Crash caused by memory corruption
  - [#2232] "Invalid argument" when reading a directory with gfapi
  - [#2253] Disable lookup-optimize by default in the virt group
  - [#2313] Long setting names mess up the columns and break parsing
  - [#2337] memory leak observed in lock fop
  - [#2351] After upgrade on release 9.1 glusterd protocol is broken
  - [#2353] Permission issue after upgrading to Gluster v9.1

Gluster 9.1

  This is a bugfix and improvement release. The release notes for 9.0
  contain a listing of all the new features that were added
  and bugs fixed in the GlusterFS 9 stable release.

  Highlights of Release

  - Provide autoconf option to enable/disable storage.linux-io_uring
    during compilation [#2063]
  - Healing data in 1MB chunks instead of 128KB for improving healing
    performance [#2067]

  Issues addressed in this release

  - [#1406] shared storage volume fails to mount in ipv6 environment
  - [#1991] mdcache: bug causes getxattr() to report ENODATA when fetchin...
  - [#2063] Provide autoconf option to enable/disable storage.linux-io_ur...
  - [#2067] Change self-heal-window-size to 1MB by default
  - [#2107] mount crashes when setfattr -n distribute.fix.layout -v "yes"...
  - [#2154] "Operation not supported" doing a chmod on a symlink
  - [#2192] 4+1 arbiter setup is broken
  - [#2198] There are blocked inodelks for a long time
  - [#2234] Segmentation fault in directory quota daemon for replicated v...

Gluster 9.0

  This is a major release that includes a range of features, code
  improvements and stability fixes as noted below.

  Highlights

  - io_uring in Gluster (io_uring support in kernel required along with
    the presence of liburing library and headers)
  - support running with up to 5000 volumes (Testing done on: 5k volumes
    on 3 nodes, brick_mux was enabled with default configuration)

  Features
  - Added io_uring support for Gluster [#1398]
  - Added Support for 5K volumes [#1613]
  - Enabled granular-entry-heal by default [#1483]
  - Optimizations for rename dir heal [#1211]
  - Added support for monitoring the epoll/rpc layer [#1466]
  - Brick mux: Added support to spawn a thread per process basis instead
    of spawning a per brick [#1482]
  - Improve rebalance of sparse files [#1222]
  - LTO/GCC10 - Gluster is now compiled with LTO enabled by default [#1772]

  Bugs addressed since release-8

  - [#718] _store_global_opts(), _storeslaves() , _storeopts() should no...
  - [#280] Use internal error codes instead of UNIX errnos
  - [#1855] Makefile: failed to compile without git repository
  - [#1849] geo-rep: The newly setup geo-rep session goes faulty with syn...
  - [#1836] posix: Update ret value in posix_get_gfid2path if GF_MALLOC f...
  - [#1810] Implement option to generate core dump at will without killin...
  - [#1796] afr: call afr_is_lock_mode_mandatory only while xdata is valid
  - [#1794] posix: A brick process is getting crashed at the time of grap...
  - [#1782] Rebalance is reporting status twice upon stopping, resulting ...
  - [#1778] volume set: failed: ganesha.enable is already 'off'.
  - [#1775] core: lru_size showing -1 with zero inodes in the list in the...
  - [#1772] build: add LTO as a configure option
  - [#1743] Modify format to contain more information while raising glust...
  - [#1739] test case ./tests/basic/afr/entry-self-heal-anon-dir-off.t is...
  - [#1738] [cli] Improper error message on command timeout
  - [#1733] api: conscious language changes
  - [#1713] Conscious language changes in various xlators
  - [#1699] One brick offline with signal received: 11
  - [#1692] Test tests/basic/0symbol-check.t should exclude more contrib/...
  - [#1663] test case ./tests/bugs/core/bug-1650403.t is getting timed out
  - [#1661] test case ./tests/bugs/bug-1064147.t is continuously failing
  - [#1659] wrong comparison in glusterd_brick_start() function
  - [#1654] Rebalance/migration per directory/file
  - [#1653] io-cache xlators lock/unlock are always accompanied by gf_msg...
  - [#1627] Stopping rebalance results in a failure
  - [#1613] glusterd[brick_mux]: Optimize friend handshake code to avoid ...
  - [#1594] ./tests/00-geo-rep/00-georep-verify-non-root-setup.t fails on...
  - [#1587] geo-rep: Enable rsync verbose logging to help debug rsync errors
  - [#1584] MAINTAINERS file needs to be revisited and updated
  - [#1582] ./rfc.sh doesn't pick upstream correctly
  - [#1577] cli-rpc: Call to global quota rpc init even though operation ...
  - [#1569] Introduce a compile time --enable-brickmux option to run bric...
  - [#1565] Implement pass-through option for write-behind
  - [#1550] MAINTAINERS list of DHT needs to be updated
  - [#154] Optimized CHANGELOG
  - [#1546] Wrong permissions syned to remote brick when using halo repli...
  - [#1545] fuse_invalidate_entry()   - too many repetitive calls to uuid_u...
  - [#1544] file tree memory layout optimization
  - [#1543] trash: Create inode_table only while feature is enabled
  - [#1542] io-stats: Configure ios_sample_buf_size based on sample_inter...
  - [#1541] Geo-rep: some files(hardlinks) are missing in slave after mas...
  - [#1540] [RFE] Rebalance: suppurt migration to files with hardlinks (n...
  - [#1539] fuse mount crashes on graph-switch when reader-thread-count i...
  - [#1538] Need to configure optimum inode table hash_size for shd
  - [#1529] Fix regression in on demand migration feature
  - [#1526] Brick status is 'stopped' if socket file is absent but brick ...
  - [#1518] glusterfs: write operations fail when the size is equal or gr...
  - [#1516] Use of strchr glusterd_replace_slash_with_hyphen
  - [#1511] Crash due to memory allocation
  - [#1508] Add-brick with Increasing replica count fails with bad brick ...
  - [#1507] Time-to-completion mechansim in rebalance is broken
  - [#1506] tests/000-flaky/bugs_nfs_bug-1116503.t is crashed in in gf_me...
  - [#1499] why not use JumpConsistentHash to replace SuperFastHash to ch...
  - [#1497] Removing strlen and using the already existing len of data_t
  - [#1487] Quota accounting check script fails with UnicodeDecodeError
  - [#1483] Enable granular-entry-heal by default
  - [#1482] [Brick-mux] Attach several posix threads with glusterfs_ctx
  - [#1480] First letter in mount path of bricks are getting truncated fo...
  - [#1477] nfs server crashes in acl3svc_init
  - [#1476] Changes required at Snaphot as gluster-shared-storage mount p...
  - [#1475] gluster_shared_storage failed to automount on node reboot on ...
  - [#1472] Readdir-ahead leads to inconsistent ls results
  - [#1466] RPC handling latencies should be printed in statedump
  - [#1464] Avoid dict OR key (link-count) is NULL [Invalid argument] mes...
  - [#1459] gluster_shared_storage failed to automount on node reboot on ...
  - [#1453] Disperse shd heal activity should be observable
  - [#1442] Remove Glusterfs SELinux module from Distribution's selinux-p...
  - [#1440] glusterfs 7.7 fuse client memory leak
  - [#1438] syncdaemon/syncdutils.py: SyntaxWarning: "is" with a literal....
  - [#1434] Inform failures while fop failed in disperse volume due to so...
  - [#1428] Redundant check in dict_get_with_refn()
  - [#1427] Bricks failed to restart after a power failure
  - [#1425] optimization over shard lookup in case of prealloc
  - [#1422] Rebalance   - new volume option to turn on/off optimization in ...
  - [#1418] GlusterFS 8.0: Intermittent error:1408F10B:SSL routines:SSL3\_...
  - [#1416] Dependencies of performance.parallel-readdir should be automa...
  - [#1410] 01-georep-glusterd-tests.t times out on centos7 builders
  - [#1407] glusterd keep crashing when upgrading from 6.5 to 7.7
  - [#1406] shared storage volume fails to mount in ipv6 environment
  - [#1404] Client side split-brain resolution using favourite-child-poli...
  - [#1403] Tests failure on C8: ./tests/features/ssl-ciphers.t
  - [#1401] quota_fsck.py throws TypeError
  - [#1400] Annotate synctasks with tsan API if --enable-tsan is requested
  - [#1399] Add xlator identifiers in statedumps for mem-pools
  - [#1398] io_uring support in glusterfs main branch
  - [#1397] glusterd_check_brick_order() is needlessly fetching volname, ...
  - [#1396] [bug-1851989] smallfile performance drops after commit the pa...
  - [#1395] optimize dict_serialized_length_lk function
  - [#1391] allow add-brick from nodes which are not part of auth.allow list
  - [#1385] High CPU utilization by self-heal on disperse volumes when an...
  - [#1383] Remove contrib/sunrpc/xdr_sizeof.c
  - [#1381] Optional FUSE notitications
  - [#1379] Fix NULL pointer
  - [#1378] Use better terminology and wording in the code
  - [#1377] Glustereventsd to accept not only IPv4 but IPv6 packets too.
  - [#1376] Runtime & Build Fixes for FreeBSD
  - [#1375] cluster: mount.glusterfs is stuck when trying to mount unknow...
  - [#1374] fuse interrupt issues identified in code review
  - [#1371] [RHEL 8.1] [Input/output error] observed in remove-brick oper...
  - [#1366] geo-replication session fails to start with IPV6
  - [#1361] Screen .attribute directories on NetBSD
  - [#1359] Cleanup --disable-mempool
  - [#1357] options should display not only current values but also defau...
  - [#1356] cli: type mismatch global_quotad_rpc in cli-quotad-client.c
  - [#1355] Heal info desn't show split-brain info if halo is enabled
  - [#1354] High CPU utilization by self-heal on disperse volumes with no...
  - [#1353] errors seen with gluster v get all all
  - [#1352] api: libgfapi symbol versions break LTO in Fedora rawhide/f33
  - [#1351] issue with gf_fill_iatt_for_dirent()
  - [#1350] Simplify directory scanning
  - [#1348] Fuse mount crashes in shard translator when truncating a \*rea...
  - [#1347] NetBSD build fixes
  - [#1339] Rebalance status is not shown correctly after node reboot
  - [#1332] Unable to Upgrade to Gluster 7 from Earlier Version
  - [#1329] Move platform-dependent filesystem sync to a library function
  - [#1328] Linux kernel untar failed with errors immediate after add-brick
  - [#1327] Missing directory is not healed in dht
  - [#1324] Inconsistent custom xattr on backend directories after bringi...
  - [#1320] Unified support for building with sanitizers
  - [#1311] Data race when handling connection status
  - [#1310] tests/features/flock_interrupt.t leads to error logs
  - [#1306] add-brick command is failing
  - [#1303] Failures in rebalance due to [Input/output error]
  - [#1302] always print errno (and use English locale for strerror() out...
  - [#1291] Free volume info lock and mutex
  - [#1290] Test case brick-mux-validation-in-cluster.t is failing on RHEL-8
  - [#1289] glustereventsd log file isn't reopened after rotation
  - [#1285] Use-after-destroy mutex error
  - [#1283] Undefined behavior in \_\_builtin_ctz
  - [#1282] New file created with xattr "trusted.glusterfs.dht"
  - [#1281] Unlinking the file with open fd, returns ENOENT or stale file...
  - [#1279] Fix several signed integer overflows
  - [#1278] Fix memory leak in afr_priv_destroy()
  - [#1275] Make glusterfs compile on all recent and supported versions o...
  - [#1272] tests/bugs/glusterd/mgmt-handshake-and-volume-sync-post-glust...
  - [#1269] common-ha: ganesha-ha.sh bad test for {rhel,centos} for pcs o...
  - [#1263] Fix memory leak in glusterd_store_retrieve_bricks()
  - [#1260] Implement minimal proper synchronization for gf_attach
  - [#1259] Fix memory leak in gf_cli_gsync_status_output()
  - [#1258] dht: Add null check
  - [#1255] Improve snapshot clone error message
  - [#1254] Prioritize ENOSPC over other lesser priority errors
  - [#1253] On Ovirt setup glusterfs performs poorly
  - [#1250] geo-rep: Fix corner case in rename on mkdir during hybrid crawl
  - [#1249] Drop 'const' type qualifier on return type
  - [#1248] Fix thread naming and related convention
  - [#1245] Spurious failures in ./tests/basic/ec/ec-quorum-count.t
  - [#1243] Modify and return iatt (especially size and block-count) in s...
  - [#1242] Rebalance   - Improve Crawl time in rebalance
  - [#1240] tests/basic/afr/gfid-mismatch-resolution-with-fav-child-polic...
  - [#1236] glusterfs-geo-replication requires policycoreutils-python-uti...
  - [#1234] Fix ./tests/basic/fencing/afr-lock-heal-basic.t failure
  - [#1230] core dumped executing tests/line-coverage/errorgen-coverage.t
  - [#1228] seek functionalty is broken
  - [#1226] Gluster webhook update throws error
  - [#1225] fuse causes glusterd to dump core
  - [#1223] Failure of tests/basic/gfapi/gfapi-copy-file-range.t
  - [#1222] [RFE] Improve rebalance of sparse files
  - [#1221] features/bit-rot: invalid snprintf() buffer size
  - [#1220] cluster/ec: return correct error code and log the message in ...
  - [#1218] dht: Do opendir selectively in gf_defrag_process_dir
  - [#1217] Modify group "virt" to add rpc/network related changes
  - [#1214] Running tests/basic/afr/inodelk.t on my VM crashes in dht
  - [#1211] AFR: Rename dir heal shouldn't delete the directory at oldloc...
  - [#1209] tests: georep-upgrade.t test failure
  - [#1208] warning: initializer overrides prior initialization of this s...
  - [#1207] warning: passing an object that undergoes default argument pr...
  - [#1204] GD_OP_VERSION needs to be updated
  - [#1202] Issues reported by Coverity static analysis tool
  - [#1200] Handle setxattr and rm race for directory in rebalance
  - [#1197] Geo-replication tests are spuriously failing in CI
  - [#1196] glusterfsd is having a leak while only mgmt SSL is enabled
  - [#1193] Scheduling of snapshot for a volume is failing to create snap...
  - [#1190] spurious failure of tests/basic/quick-read-with-upcall.t
  - [#1187] Failures in rebalance due to [No space left on device] error ...
  - [#1182] geo-rep requires relevant selinux permission for rsync
  - [#1179] gnfs split brain when 1 server in 3x1 down (high load)
  - [#1172] core, cli, quota: cleanup malloc debugging and stats
  - [#1169] common-ha: cluster status shows "FAILOVER" even when all node...
  - [#1164] migrate remove-brick operation to mgmt v3 frameowrk
  - [#1154] failing test cases
  - [#1135] Fix @sysconfdir@ expansion in extras/systemd/glusterd.service...
  - [#1126] packaging: overhaul glusterfs.spec(.in) to align with SUSE an...
  - [#1116] [bug:1790736] gluster volume list returning wrong volume list...
  - [#1101] [bug:1813029] volume brick fails to come online because other...
  - [#1097] [bug:1635688] Keep only the valid (maintained/supported) comp...
  - [#1096] [bug:1622665] clang-scan report: glusterfs issues
  - [#1075] [bug:1299203] resolve-gids is not needed for Linux kernels v3...
  - [#1072] [bug:1251614] gf_defrag_fix_layout recursively fails, distrac...
  - [#1060] [bug:789278] Issues reported by Coverity static analysis tool
  - [#1052] [bug:1693692] Increase code coverage from regression tests
  - [#1050] [bug:1787325] TLS/SSL access of GlusterFS mounts is slower th...
  - [#1047] [bug:1774379] check for same hostnames(bricks from same host/...
  - [#1043] [bug:1793490] snapshot clone volume is not exported via NFS-G...
  - [#1009] [bug:1756900] tests are failing in RHEL8 regression
  - [#1002] [bug:1679998] GlusterFS can be improved
  - [#1000] [bug:1193929] GlusterFS can be improved
  - [#990] [bug:1578405] EIO errors when updating and deleting entries c...
  - [#952] [bug:1589705] quick-read: separate performance.cache-size tun...
  - [#876] [bug:1797099] After upgrade from gluster 7.0 to 7.2 posix-acl...
  - [#874] [bug:1793390] Pre-validation failure does not provide any hin...
  - [#837] Indicate timezone offset in formatted timestamps
  - [#829] gfapi: Using ssl and glfs_set_volfile together does not work
  - [#827] undefined symbol: xlator_api
  - [#824] Migrate bugzilla workflow to github issues workflow
  - [#816] RFE: Data/MetaData separator Translator
  - [#790] infinite loop in common-utils.c   - gf_rev_dns_lookup_cache() ?
  - [#763] thin-arbiter: Testing report

Gluster 8.6

  This is a bugfix release. The release notes for 8.0, 8.1, 8.2, 8.3,
  8.4 and 8.5 contain a listing of all the new features that were added
  and bugs fixed in the GlusterFS 8 stable release.

  Important fixes in this release

  - Improvement in handling of gfid mismatches of geo-rep: Geo-replication
    gets delayed when there are many renames on primary volume [#2388]
  - Resolve core dumps on Gluster 9 - 3 replicas: Initialize list head to
    prevent NULL de-reference [#2443]

  Issues addressed in this release

  - [#2388] Geo-replication gets delayed when there are many renames on
            primary volume
  - [#2689]lusterd: reset mgmt_v3_lock_timeout after it be used
  - [#1000] GlusterFS can be improved: fix getcwd usage warning
  - [#2394] Spurious failure in tests/basic/fencing/afr-lock-heal-basic.t
  - [#2691] georep-upgrade.t find failures
  - [#154](ptimized CHANGELOG: upgrade script for geo-rep
  - [#2443] Core dumps on Gluster 9   - 3 replicas: Initialize list head
            to prevent NULL de-reference
  - [#2404] Spurious failure of tests/bugs/ec/bug-1236065.t

Gluster 8.5

  This is a bugfix release. The release notes for 8.0), 8.1, 8.2, 8.3
  and 8.4 contain a listing of all the new features that were added
  and bugs fixed in the GlusterFS 8 stable release.

  Important fixes in this release

  - Slow write on ZFS bricks after healing millions of files due to
    adding arbiter brick [#1764]
  - 4+1 arbiter setup is broken [#2192]

  Issues addressed in this release

  - [#1214] Running tests/basic/afr/inodelk.t on my VM crashes in dht
  - [#1324] Inconsistent custom xattr on backend directories after bringing bac
  - [#1764] Slow write on ZFS bricks after healing millions of files due to add
  - [#2161] Crash caused by memory corruption
  - [#2192] 4+1 arbiter setup is broken
  - [#2198] There are blocked inodelks for a long time
  - [#2210] glusterfsd memory leak observed when constantly running volume heal
  - [#2234] Segmentation fault in directory quota daemon for replicated volume
  - [#2253] Disable lookup-optimize by default in the virt group
  - [#2313] Long setting names mess up the columns and break parsing

Gluster 8.4

  This is a bugfix release. The release notes for 8.0), 8.1, 8.2 and 8.3
  contain a listing of all the new features that were added
  and bugs fixed in the GlusterFS 8 stable release.

  Highlights of Release

  Healing data in 1MB chunks instead of 128KB for improving healing
  performance [#2067].

  Issues addressed in this release

  - [#2154] "Operation not supported" doing a chmod on a symlink
  - [#2107] mount crashes when setfattr -n distribute.fix.layout -v "yes"...
  - [#1991] mdcache: bug causes getxattr() to report ENODATA when fetchin...
  - [#1925] dht_pt_getxattr does not seem to handle virtual xattrs.
  - [#1539] fuse mount crashes on graph-switch when reader-thread-count i...
  - [#1529] Fix regression in on demand migration feature
  - [#1406] shared storage volume fails to mount in ipv6 environment

Gluster 8.3

  This is a bugfix release. The release notes for 8.0, 8.1 and 8.2
  contain a listing of all the new features that were added
  and bugs fixed in the GlusterFS 8 stable release.

  Highlights of Release

  This release contains majorly the bug fixes as described in the issues
  section.

  Issues addressed in this release

  - [#1836] posix: Update ret value in posix_get_gfid2path if GF_MALLOC fails
  - [#1796] afr: call afr_is_lock_mode_mandatory only while xdata is valid
  - [#1778] volume set: failed: ganesha.enable is already 'off'.
  - [#1738] [cli] Improper error message on command timeout
  - [#1699] One brick offline with signal received: 11
  - [#1663] test case ./tests/bugs/core/bug-1650403.t is getting timed out
  - [#1601] rfc.sh on release-8 needs to move to github flow
  - [#1499] why not use JumpConsistentHash to replace SuperFastHash to cho...
  - [#1438] syncdaemon/syncdutils.py: SyntaxWarning: "is" with a literal. ...
  - [#1221] features/bit-rot: invalid snprintf() buffer size
  - [#1060] [bug:789278] Issues reported by Coverity static analysis tool
  - [#1002] [bug:1679998] GlusterFS can be improved
  - [#1000] [bug:1193929] GlusterFS can be improved

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

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

diffstat:
 glusterfs/DESCR                                    |   4 -
 glusterfs/MESSAGE.NetBSD                           |  19 +-
 glusterfs/Makefile                                 | 103 +++++------
 glusterfs/PLIST                                    | 193 +++++++++++----------
 glusterfs/distinfo                                 |  13 +-
 glusterfs/files/glusterd.sh                        |  16 +-
 glusterfs/patches/patch-configure                  |  75 ++++++++
 glusterfs/patches/patch-configure.ac               |  35 ++++
 .../patch-libglusterfs-src-glusterfs-dict.h        |  43 +++++
 glusterfs/patches/patch-rpc_rpc-lib_src_rpcsvc.c   |  26 ---
 ...ors_performance_write-behind_src_write-behind.c |  28 ---
 11 files changed, 325 insertions(+), 230 deletions(-)

diffs:
diff --git a/glusterfs/DESCR b/glusterfs/DESCR
index b4ea92c912..34183e0b14 100644
--- a/glusterfs/DESCR
+++ b/glusterfs/DESCR
@@ -1,6 +1,3 @@
-
-GlusterFS Version 7.1
-
 GlusterFS is a flexible, powerful, POSIX-compliant cluster filesystem
 that can scale to several petabytes.
 
@@ -12,4 +9,3 @@ 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.
-
diff --git a/glusterfs/MESSAGE.NetBSD b/glusterfs/MESSAGE.NetBSD
index 064c57fc3d..c9c1252217 100644
--- a/glusterfs/MESSAGE.NetBSD
+++ b/glusterfs/MESSAGE.NetBSD
@@ -1,5 +1,5 @@
 ===========================================================================
-$NetBSD: MESSAGE.NetBSD,v 1.16 2014/11/20 16:12:48 wiz Exp $
+$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
@@ -10,23 +10,12 @@ This is required in /etc/sysctl.conf in order to avoid hangs on I/O operations
 In order to use mount -t glusterfs, please install this link
 	ln -s ${PREFIX}/sbin/mount_glusterfs /sbin/mount_glusterfs
 
-* Only for netbsd-5 branch (later NetBSD GENERIC kernels have it enabled):
-A kernel with the following option is required:
-	file-system     PUFFS
-	pseudo-device   putter
-	pseudo-device   pud
-
 *** 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 -o extattr <dev> <datadir>
-	mkdir -p <datadir>/.attribute/user
-	mkdir -p <datadir>/.attribute/system
-
-* For netbsd-6 branch and earlier (later NetBSD GENERIC kernels have it),
-the kernel must have the following option enabled:
-	options		UFS_EXTATTR
+mount with -o extattr
+	.attribute/system
+	.attribute/user
 
 ===========================================================================
diff --git a/glusterfs/Makefile b/glusterfs/Makefile
index 393da390e0..9a14a83e18 100644
--- a/glusterfs/Makefile
+++ b/glusterfs/Makefile
@@ -1,29 +1,42 @@
-DISTNAME=		glusterfs-7.1
-PKGREVISION=		1
-CATEGORIES=		filesystems
+# $NetBSD: Makefile,v 1.109 2022/06/30 11:18:23 nia Exp $
 
-DEPENDS+=		argp>=1.3:../../devel/argp
+DISTNAME=	glusterfs-10.3
+PKGREVISION=	9
+CATEGORIES=	filesystems
+MASTER_SITES=	http://bits.gluster.org/pub/gluster/glusterfs/src/
 
-MASTER_SITES=		http://bits.gluster.org/pub/gluster/glusterfs/src/
-EXTRACT_SUFX=		.tar.gz
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	https://www.gluster.org/
+COMMENT=	Cluster filesystem
+LICENSE=	gnu-gpl-v3
 
-MAINTAINER=		jhigh%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 
-EXTRACT_USING?=		bsdtar
-
-LDADD+=			" -L${BUILDLINK_DIR}/lib -largp"
+USE_TOOLS+=		flex bison pkg-config bash autoconf autoreconf automake
 
 CONFIGURE_ARGS+=	--disable-fusermount
+CONFIGURE_ARGS+=	--disable-fuse-notifications
 CONFIGURE_ARGS+=	--localstatedir=${VARBASE}
-
+CONFIGURE_ARGS+=	--without-tcmalloc
+
+# While glusterfs never really supported 32bit platforms, older versions
+# tended to work. By now, it will die with SIGILL (executing ud2) on 32bit
+# (tested in i386) due to not being able to atomically update a 64bit value.
+BROKEN_ON_PLATFORM+=    *-*-earm*
+BROKEN_ON_PLATFORM+=    *-*-hppa
+BROKEN_ON_PLATFORM+=    *-*-i386
+BROKEN_ON_PLATFORM+=    *-*-m68000
+BROKEN_ON_PLATFORM+=    *-*-m68k
+BROKEN_ON_PLATFORM+=    *-*-mipseb
+BROKEN_ON_PLATFORM+=    *-*-mipsel
+BROKEN_ON_PLATFORM+=    *-*-powerpc
+BROKEN_ON_PLATFORM+=    *-*-riscv32
+BROKEN_ON_PLATFORM+=    *-*-sparc
+BROKEN_ON_PLATFORM+=    *-*-vax
+
+# Make sure we do not attept to link with -lfl
+# Only libfl.a is available, and libtool wants libfl.so
 MAKE_FLAGS+=		LEXLIB=""
-PYTHON_VERSIONS_ACCEPTED=	27 # only 2.x supported as of 3.8.x
 
 REPLACE_PYTHON+=	contrib/ipaddr-py/ipaddr.py
 REPLACE_PYTHON+=	events/src/glustereventsd.py
@@ -65,41 +78,33 @@ 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/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
 
-SUBST_CLASSES+=		urcu	
-SUBST_STAGE.urcu=	post-configure
-SUBST_FILES.urcu+=	libglusterfs/src/glusterfs/async.h	
-SUBST_SED.urcu=		-e "s,<urcu/wfcqueue.h>,<contrib/userspace-rcu/wfcqueue.h>,g"
-SUBST_SED.urcu=		-e "s,<urcu/wfstack.h>,<contrib/userspace-rcu/wfstack.h>,g"
+# 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,/etc/mtab,/proc/mounts,g"
+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+=	extras/ocf/volume
-SUBST_FILES.etc+=	doc/glusterfsd.8
+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+=		vol
-SUBST_STAGE.vol=	post-build
-SUBST_FILES.vol+=	extras/Makefile
-SUBST_SED.vol=		-e "/vol_DATA/s/glusterd.vol/glusterd.vol.sample/g"
-
-EGDIR=			${PREFIX}/etc/glusterfs
-CONF_FILES+=		${EGDIR}/glusterd.vol ${EGDIR}/glusterd.vol.sample
+#EGDIR=			${PREFIX}/etc/glusterfs
+#CONF_FILES+=		${EGDIR}/glusterd.vol.sample ${EGDIR}/glusterd.vol
 OWN_DIRS+=		${VARBASE}/log/glusterfs
 BUILD_DEFS+=		VARBASE
 
@@ -110,39 +115,39 @@ 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
+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
 
-LIBS+=	-L${BUILDLINK_PREFIX}/lib -largp
-
 # Debug
-#CFLAGS+=		-g
-#INSTALL_UNSTRIPPED=	yes
-#CONFIGURE_ARGS+=	--enable-debug
+CFLAGS+=		-g
+INSTALL_UNSTRIPPED=	yes
+CONFIGURE_ARGS+=	--enable-debug
 #.include "../../devel/boehm-gc/buildlink3.mk"
 #CFLAGS+=		-DGC_DEBUG
 #CFLAGS+=		-include gc.h
-#LIBS+=			-largp
+#LIBS+=			-lgc
+
+TOOL_DEPENDS+=	automake>=1.13:../../devel/automake
 
 .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"
-.include "../../devel/libuuid/buildlink3.mk"
 
 .if (${OPSYS} == "NetBSD" || ${OPSYS} == "FreeBSD") && exists(/usr/include/execinfo.h)
 LIBS+=	-lexecinfo
diff --git a/glusterfs/PLIST b/glusterfs/PLIST
index cdecccf911..946c86588b 100644
--- a/glusterfs/PLIST
+++ b/glusterfs/PLIST
@@ -1,5 +1,15 @@
-@comment $NetBSD$
+@comment $NetBSD: PLIST,v 1.40 2020/07/07 01:01:27 manu 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
@@ -28,6 +38,7 @@ 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
@@ -38,13 +49,18 @@ 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
@@ -63,24 +79,17 @@ include/glusterfs/mem-types.h
 include/glusterfs/monitoring.h
 include/glusterfs/options.h
 include/glusterfs/parse-utils.h
-include/glusterfs/protocol-common.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/acl3-xdr.h
 include/glusterfs/rpc/changelog-xdr.h
 include/glusterfs/rpc/cli1-xdr.h
 include/glusterfs/rpc/glusterd1-xdr.h
-include/glusterfs/rpc/glusterfs-fops.h
 include/glusterfs/rpc/glusterfs3-xdr.h
 include/glusterfs/rpc/glusterfs3.h
 include/glusterfs/rpc/glusterfs4-xdr.h
-include/glusterfs/rpc/mount3udp.h
-include/glusterfs/rpc/msg-nfs3.h
-include/glusterfs/rpc/nlm4-xdr.h
-include/glusterfs/rpc/nsm-xdr.h
 include/glusterfs/rpc/portmap-xdr.h
 include/glusterfs/rpc/protocol-common.h
 include/glusterfs/rpc/rpc-clnt-ping.h
@@ -94,7 +103,6 @@ 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-nfs3.h
 include/glusterfs/rpc/xdr-rpc.h
 include/glusterfs/rpc/xdr-rpcclnt.h
 include/glusterfs/run.h
@@ -119,87 +127,86 @@ include/glusterfs/trie.h
 include/glusterfs/upcall-utils.h
 include/glusterfs/xlator.h
 include/glusterfs/y.tab.h
-lib/glusterfs/${PKGVERSION}/auth/addr.la
-lib/glusterfs/${PKGVERSION}/auth/login.la
-lib/glusterfs/${PKGVERSION}/rpc-transport/socket.la
-lib/glusterfs/${PKGVERSION}/xlator/cluster/afr.la
-lib/glusterfs/${PKGVERSION}/xlator/cluster/dht.la
-lib/glusterfs/${PKGVERSION}/xlator/cluster/disperse.so
-lib/glusterfs/${PKGVERSION}/xlator/cluster/distribute.so
-lib/glusterfs/${PKGVERSION}/xlator/cluster/ec.la
-lib/glusterfs/${PKGVERSION}/xlator/cluster/nufa.la
-lib/glusterfs/${PKGVERSION}/xlator/cluster/replicate.so
-lib/glusterfs/${PKGVERSION}/xlator/cluster/switch.la
-lib/glusterfs/${PKGVERSION}/xlator/debug/delay-gen.la
-lib/glusterfs/${PKGVERSION}/xlator/debug/error-gen.la
-lib/glusterfs/${PKGVERSION}/xlator/debug/io-stats.la
-lib/glusterfs/${PKGVERSION}/xlator/debug/sink.la
-lib/glusterfs/${PKGVERSION}/xlator/debug/trace.la
-lib/glusterfs/${PKGVERSION}/xlator/features/access-control.so
-lib/glusterfs/${PKGVERSION}/xlator/features/arbiter.la
-lib/glusterfs/${PKGVERSION}/xlator/features/barrier.la
-lib/glusterfs/${PKGVERSION}/xlator/features/bit-rot.la
-lib/glusterfs/${PKGVERSION}/xlator/features/bitrot-stub.la
-lib/glusterfs/${PKGVERSION}/xlator/features/cdc.la
-lib/glusterfs/${PKGVERSION}/xlator/features/changelog.la
-lib/glusterfs/${PKGVERSION}/xlator/features/gfid-access.la
-lib/glusterfs/${PKGVERSION}/xlator/features/index.la
-lib/glusterfs/${PKGVERSION}/xlator/features/leases.la
-lib/glusterfs/${PKGVERSION}/xlator/features/locks.la
-lib/glusterfs/${PKGVERSION}/xlator/features/marker.la
-lib/glusterfs/${PKGVERSION}/xlator/features/namespace.la
-lib/glusterfs/${PKGVERSION}/xlator/features/posix-locks.so
-lib/glusterfs/${PKGVERSION}/xlator/features/quiesce.la
-lib/glusterfs/${PKGVERSION}/xlator/features/quota.la
-lib/glusterfs/${PKGVERSION}/xlator/features/quotad.la
-lib/glusterfs/${PKGVERSION}/xlator/features/read-only.la
-lib/glusterfs/${PKGVERSION}/xlator/features/sdfs.la
-lib/glusterfs/${PKGVERSION}/xlator/features/selinux.la
-lib/glusterfs/${PKGVERSION}/xlator/features/shard.la
-lib/glusterfs/${PKGVERSION}/xlator/features/snapview-client.la
-lib/glusterfs/${PKGVERSION}/xlator/features/snapview-server.la
-lib/glusterfs/${PKGVERSION}/xlator/features/thin-arbiter.la
-lib/glusterfs/${PKGVERSION}/xlator/features/trash.la
-lib/glusterfs/${PKGVERSION}/xlator/features/upcall.la
-lib/glusterfs/${PKGVERSION}/xlator/features/utime.la
-lib/glusterfs/${PKGVERSION}/xlator/features/worm.la
-lib/glusterfs/${PKGVERSION}/xlator/meta.la
-lib/glusterfs/${PKGVERSION}/xlator/mgmt/glusterd.la
-lib/glusterfs/${PKGVERSION}/xlator/mount/api.la
-lib/glusterfs/${PKGVERSION}/xlator/mount/fuse.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/io-cache.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/io-threads.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/md-cache.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/nl-cache.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/open-behind.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/quick-read.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/read-ahead.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/readdir-ahead.la
-lib/glusterfs/${PKGVERSION}/xlator/performance/stat-prefetch.so
-lib/glusterfs/${PKGVERSION}/xlator/performance/write-behind.la
-lib/glusterfs/${PKGVERSION}/xlator/playground/template.la
-lib/glusterfs/${PKGVERSION}/xlator/protocol/client.la
-lib/glusterfs/${PKGVERSION}/xlator/protocol/server.la
-lib/glusterfs/${PKGVERSION}/xlator/storage/posix.la
-lib/glusterfs/${PKGVERSION}/xlator/system/posix-acl.la
+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
-${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
+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
@@ -223,6 +230,7 @@ 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
@@ -264,9 +272,6 @@ 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/changelogagent.py
-libexec/glusterfs/python/syncdaemon/changelogagent.pyc
-libexec/glusterfs/python/syncdaemon/changelogagent.pyo
 libexec/glusterfs/python/syncdaemon/conf.py
 libexec/glusterfs/python/syncdaemon/conf.pyc
 libexec/glusterfs/python/syncdaemon/conf.pyo
@@ -288,12 +293,12 @@ 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/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
@@ -312,6 +317,12 @@ 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
@@ -323,7 +334,6 @@ sbin/conf.py
 sbin/gcron.py
 sbin/gf_attach
 sbin/gfind_missing_files
-sbin/glfsheal
 sbin/gluster
 sbin/gluster-eventsapi
 sbin/gluster-georep-sshkey
@@ -343,14 +353,9 @@ 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/generate-gfid-file.sh
-share/glusterfs/scripts/get-gfid.sh
-share/glusterfs/scripts/gsync-sync-gfid
-share/glusterfs/scripts/gsync-upgrade.sh
 share/glusterfs/scripts/post-upgrade-script-for-quota.sh
 share/glusterfs/scripts/pre-upgrade-script-for-quota.sh
-share/glusterfs/scripts/schedule_georep.py
 share/glusterfs/scripts/setup-thin-arbiter.sh
-share/glusterfs/scripts/slave-upgrade.sh
 share/glusterfs/scripts/stop-all-gluster-processes.sh
diff --git a/glusterfs/distinfo b/glusterfs/distinfo
index b8b2910cfc..18bf24f9bd 100644
--- a/glusterfs/distinfo
+++ b/glusterfs/distinfo
@@ -1,7 +1,8 @@
-$NetBSD$
+$NetBSD: distinfo,v 1.73 2021/10/26 10:25:29 nia Exp $
 
-RMD160 (glusterfs-7.1.tar.gz) = 6f0fe7a84d173f472fb4e36598f0ac6c0a58b23a
-SHA512 (glusterfs-7.1.tar.gz) = d6f3e3732af4c4bac7b4da2a3829198d81d7158fb284556a146a597d25e7ce467f13dda4f4b04d2b4591c7f95f4867eadf0e307b3267595140292ead06c67b44
-Size (glusterfs-7.1.tar.gz) = 7629250 bytes
-SHA1 (patch-rpc_rpc-lib_src_rpcsvc.c) = 2452edce13f82a13056b4daa1102cdb9bf194530
-SHA1 (patch-xlators_performance_write-behind_src_write-behind.c) = 60ee00eaefef7d459ae759d91217512ba75fb316
+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) = ab60e8108975d04b19e5846abb4c56965bcded91
+SHA1 (patch-configure.ac) = fff9e2e1c7bf9959188dc0cb35bf9a09dc14b67b
+SHA1 (patch-libglusterfs-src-glusterfs-dict.h) = 1e2d7c61adc773060b19ec0656c7dbfdab19b270
diff --git a/glusterfs/files/glusterd.sh b/glusterfs/files/glusterd.sh
index dbba19de52..e3a612774e 100755
--- a/glusterfs/files/glusterd.sh
+++ b/glusterfs/files/glusterd.sh
@@ -6,14 +6,6 @@
 # PROVIDE: glusterd
 # REQUIRE: rpcbind
 
-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"
-
 $_rc_subr_loaded . /etc/rc.subr
 
 glusterd_precmd()
@@ -32,6 +24,14 @@ glusterd_precmd()
 	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 b/glusterfs/patches/patch-configure
new file mode 100644
index 0000000000..7c276c4de2
--- /dev/null
+++ b/glusterfs/patches/patch-configure
@@ -0,0 +1,75 @@
+$NetBSD$
+
+Defang bash 4.0 syntax in configure and check for sizeof(time_t).
+
+upstream bugs
+ - (bash) https://github.com/gluster/glusterfs/issues/3940
+ - (sizeof(time_t)) https://github.com/gluster/glusterfs/issues/3942
+
+--- configure.orig   2023-01-08 22:27:37.625063111 +0100
++++ configure    2023-01-08 22:26:52.017860403 +0100
+@@ -778,6 +778,7 @@
+ MATH_LIB
+ YFLAGS
+ YACC
++SIZEOF_TIME_T
+ SIZEOF_LONG_LONG
+ SIZEOF_LONG
+ SIZEOF_INT
+@@ -13640,6 +13641,43 @@
+ 
+ 
+ 
++# size of time_t
++# The cast to long int works around a bug in the HP C Compiler
++# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
++# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
++# This bug is HP SR number 8606223364.
++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
++$as_echo_n "checking size of time_t... " >&6; }
++if ${ac_cv_sizeof_time_t+:} false; then :
++  $as_echo_n "(cached) " >&6
++else
++  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t"        "$ac_includes_default"; then :
++
++else
++  if test "$ac_cv_type_time_t" = yes; then
++     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++as_fn_error 77 "cannot compute sizeof (time_t)
++See \`config.log' for more details" "$LINENO" 5; }
++   else
++     ac_cv_sizeof_time_t=0
++   fi
++fi
++
++fi
++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
++$as_echo "$ac_cv_sizeof_time_t" >&6; }
++
++
++
++cat >>confdefs.h <<_ACEOF
++#define SIZEOF_TIME_T $ac_cv_sizeof_time_t
++_ACEOF
++
++
++SIZEOF_TIME_T=$ac_cv_sizeof_time_t
++
++
+ # YACC needs a check
+ for ac_prog in 'bison -y' byacc
+ do
+@@ -20213,10 +20251,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-configure.ac b/glusterfs/patches/patch-configure.ac
new file mode 100644
index 0000000000..a7d7ae5b09
--- /dev/null
+++ b/glusterfs/patches/patch-configure.ac
@@ -0,0 +1,35 @@
+$NetBSD$
+
+Defang bash 4.0 syntax in configure and check for sizeof(time_t).
+
+upstream bugs
+ - (bash) https://github.com/gluster/glusterfs/issues/3940
+ - (sizeof(time_t)) https://github.com/gluster/glusterfs/issues/3942
+
+--- configure.ac.orig   2023-01-01 23:19:38.254216893 +0100
++++ configure.ac        2023-01-02 15:14:21.968041528 +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 +1901,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..a1ed96b951
--- /dev/null
+++ b/glusterfs/patches/patch-libglusterfs-src-glusterfs-dict.h
@@ -0,0 +1,43 @@
+$NetBSD$
+
+Do not take for granted that __WORDSIZE is defined to distinguish 
+between 32 and 64 bit platforms. Instead use ULONG_MAX from <limits.h>
+which is mandated by ISO C99.
+
+Still not a good solution, as __WORDSIZE is used as a proxy for sizeof(time_t),
+but some superficial tests indicate that sizeof(time_t) seems to track with
+machine word size on reasonably current platforms.
+
+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);
diff --git a/glusterfs/patches/patch-rpc_rpc-lib_src_rpcsvc.c b/glusterfs/patches/patch-rpc_rpc-lib_src_rpcsvc.c
deleted file mode 100644
index 53674480dd..0000000000
--- a/glusterfs/patches/patch-rpc_rpc-lib_src_rpcsvc.c
+++ /dev/null
@@ -1,26 +0,0 @@
-$NetBSD$
-
---- rpc/rpc-lib/src/rpcsvc.c.orig	2019-12-23 05:13:32.107572504 +0000
-+++ rpc/rpc-lib/src/rpcsvc.c
-@@ -2288,11 +2288,21 @@ rpcsvc_program_register(rpcsvc_t *svc, r
- 
-     INIT_LIST_HEAD(&newprog->program);
-     pthread_mutexattr_init(&thr_attr);
-+
-+#if defined(__NetBSD__)
-+    pthread_mutexattr_settype(&thr_attr, PTHREAD_MUTEX_NORMAL);
-+#else
-     pthread_mutexattr_settype(&thr_attr, PTHREAD_MUTEX_ADAPTIVE_NP);
-+#endif
- 
-     for (i = 0; i < EVENT_MAX_THREADS; i++) {
-         pthread_mutexattr_init(&attr[i]);
-+
-+#if defined(__NetBSD__)
-+        pthread_mutexattr_settype(&attr[i], PTHREAD_MUTEX_NORMAL);
-+#else
-         pthread_mutexattr_settype(&attr[i], PTHREAD_MUTEX_ADAPTIVE_NP);
-+#endif 
-         INIT_LIST_HEAD(&newprog->request_queue[i].request_queue);
-         pthread_mutex_init(&newprog->request_queue[i].queue_lock, &attr[i]);
-         pthread_cond_init(&newprog->request_queue[i].queue_cond, NULL);
diff --git a/glusterfs/patches/patch-xlators_performance_write-behind_src_write-behind.c b/glusterfs/patches/patch-xlators_performance_write-behind_src_write-behind.c
deleted file mode 100644
index d388373ac1..0000000000
--- a/glusterfs/patches/patch-xlators_performance_write-behind_src_write-behind.c
+++ /dev/null
@@ -1,28 +0,0 @@
-$NetBSD$
-
---- xlators/performance/write-behind/src/write-behind.c.orig	2020-01-09 18:05:13.730258054 +0000
-+++ xlators/performance/write-behind/src/write-behind.c
-@@ -2489,7 +2489,11 @@ wb_mark_readdirp_start(xlator_t *this, i
- 
-     wb_directory_inode = wb_inode_create(this, directory);
- 
-+#if defined(__NetBSD__)
-+    if (!wb_directory_inode || !wb_directory_inode->lock.spinlock.pts_spin)
-+#else
-     if (!wb_directory_inode || !wb_directory_inode->lock.spinlock)
-+#endif
-         return;
- 
-     LOCK(&wb_directory_inode->lock);
-@@ -2509,7 +2513,11 @@ wb_mark_readdirp_end(xlator_t *this, ino
- 
-     wb_directory_inode = wb_inode_ctx_get(this, directory);
- 
-+#if defined( __NetBSD__ )
-+    if (!wb_directory_inode || !wb_directory_inode->lock.spinlock.pts_spin)
-+#else
-     if (!wb_directory_inode || !wb_directory_inode->lock.spinlock)
-+#endif
-         return;
- 
-     LOCK(&wb_directory_inode->lock);


Home | Main Index | Thread Index | Old Index