Release Team Whiteboard
This page is maintained by the OpenAFS Release Team for OpenAFS release and development discussions. The OpenAFS Release Team meetings are held on IRC.
- Thursday at 12:00pm EDT, 9:00pm PDT
- Libera.Chat #openafs-releaseteam channel
See https://gerrit.openafs.org for proposed changes.
Platform notes
Linux 6.16
Linux 6.16 is in development.
For master, the following changes to support Linux 6.16 have been submitted for review:
* [16439](https://gerrit.openafs.org/16439) `Linux: Rename page->index to page->__folio_index`
* [16438](https://gerrit.openafs.org/16438) `Linux: Replace readahead_page w/__readahead_folio`
* [16437](https://gerrit.openafs.org/16437) `linux: convert aops->writepage to writepages`
* [16436](https://gerrit.openafs.org/16436) `linux: refactor afs_linux_writepage`
* [16435](https://gerrit.openafs.org/16435) `linux: change lookup_one_len to lookup_noperm`
As Linux 6.16 is still in development, there is a possibility that additional changes may be needed.
Linux 6.15
Patches for Linux 6.15 have been merged into master. The following gerrits are for 1.8.x and are in review:
* [16432](https://gerrit.openafs.org/16432) `LINUX: Remove test for DCACHE_NFSFS_RENAMED`
* [16431](https://gerrit.openafs.org/16431) `LINUX: Use folio_page() to convert folio to page`
* [16430](https://gerrit.openafs.org/16430) `Linux: Use __filemap_get_folio()`
* [16429](https://gerrit.openafs.org/16429) `Linux: Refactor afs_linux_write_end()/begin()`
* [16428](https://gerrit.openafs.org/16428) `Linux: Use folio_wait_locked()`
* [16427](https://gerrit.openafs.org/16427) `cf: check for dentry flag macros/enums`
* [16419](https://gerrit.openafs.org/16419) `linux: Make iops mkdir return a struct dentry *`
* [16418](https://gerrit.openafs.org/16418) `Linux: Add required MODULE_DESCRIPTION`
Open Stable commits for review (next stable release)
Notes and the list of commits needing review for the next stable release.
Next openafs-1_8_x
The use of a minor point releases (e.g. 1.8.12.x) has been adopted to handle changes to support kernel / compiler changes or to to handle a quick bug fix. Major point releases (1.8.{x}) will be used to handle other types of changes.
The following have been submitted to gerrit for the next 1.8.x release and need reviewed:
Note: There has been some discussion on a smaller list of commits for the next release. A proposed reordering of the current pending 1.8.x commits is being investigated.
The current top commit for the pending 1.8.x release is 16433. NOTE: be aware that the 16433 stack is currently not linear as a few commits were merged out of order into openafs-stable-1_8_x branch. A rebase of 16433 on top of the current openafs-stable-1_8_x can be done without conflict and this would re-create a linear stack.
Current open openafs-stable-1_8_x gerrits for review
* MacOS 26
* [16433](https://gerrit.openafs.org/16433) `macos: Add support for macOS 26 (Tahoe)`
* Linux 6.15 / Redhat10 / DKMS
* [16432](https://gerrit.openafs.org/16432) `LINUX: Remove test for DCACHE_NFSFS_RENAMED`
* [16431](https://gerrit.openafs.org/16431) `LINUX: Use folio_page() to convert folio to page`
* [16430](https://gerrit.openafs.org/16430) `Linux: Use __filemap_get_folio()`
* [16429](https://gerrit.openafs.org/16429) `Linux: Refactor afs_linux_write_end()/begin()`
* [16428](https://gerrit.openafs.org/16428) `Linux: Use folio_wait_locked()`
* [16427](https://gerrit.openafs.org/16427) `cf: check for dentry flag macros/enums`
* [16426](https://gerrit.openafs.org/16426) `Redhat: Disable using lto when building rpms`
* [16425](https://gerrit.openafs.org/16425) `afs: Don't build afs_fid() for UKERNEL`
* [16424](https://gerrit.openafs.org/16424) `afs: Add afs_osi_vget prototype`
* [16423](https://gerrit.openafs.org/16423) `Linux: dkms set dkms.conf CLEAN parameter to true`
* [16422](https://gerrit.openafs.org/16422) `Update kmodtool to accommodate two-digit EL major releases`
* [16421](https://gerrit.openafs.org/16421) `rxkad/test: Remove CFLAGS from Makefile`
* [16420](https://gerrit.openafs.org/16420) `Linux: Use `yes` for dkms's NO_WEAK_MODULES parm`
* [16419](https://gerrit.openafs.org/16419) `linux: Make iops mkdir return a struct dentry *`
* [16418](https://gerrit.openafs.org/16418) `Linux: Add required MODULE_DESCRIPTION`
* [16417](https://gerrit.openafs.org/16417) `redhat: add make to the build requirements`
* [16416](https://gerrit.openafs.org/16416) `redhat: fix rpmbuild warnings`
* [16388](https://gerrit.openafs.org/16388) `volser: Avoid uninitialized 'code' in CheckVolume`
* This commit can be merged right after 16199 as it fixes a build error in 16199
* FreeBSD
* [16178](https://gerrit.openafs.org/16178) `Remove osi_GetTime from param.i386_dfbsd_23.h`
* [16177](https://gerrit.openafs.org/16177) `FBSD: Ignore src/libafs/kconf-GENERIC`
* [16176](https://gerrit.openafs.org/16176) `FBSD: Build support for FreeBSD 14.0 and 14.1`
* [16175](https://gerrit.openafs.org/16175) `FBSD: Fix typo in .gitignore for FreeBSD built products directory`
* [16174](https://gerrit.openafs.org/16174) `FBSD: Handle missing vnode.v_tag`
* [16173](https://gerrit.openafs.org/16173) `FBSD: Cast afs_symlink target to char*`
* [16172](https://gerrit.openafs.org/16172) `FBSD: Avoid if_addr_rlock() when needed`
* [16171](https://gerrit.openafs.org/16171) `FBSD: Handle 1-arg NET_EPOCH_ENTER`
* [16170](https://gerrit.openafs.org/16170) `FBSD: Avoid requiring VI_FREE`
* [16169](https://gerrit.openafs.org/16169) `FBSD: Use UMA allocations instead of getpbuf()`
* [16168](https://gerrit.openafs.org/16168) `FBSD: Handle 1-argument VOP_UNLOCK`
* [16167](https://gerrit.openafs.org/16167) `FBSD: Use VN_IS_DOOMED when available`
* [16165](https://gerrit.openafs.org/16165) `FBSD: Use VFS_VOP_VECTOR_REGISTER`
* [16164](https://gerrit.openafs.org/16164) `FBSD: Handle 2-arg vget()`
* [16163](https://gerrit.openafs.org/16163) `FBSD: Set IN_HISTORICAL_NETS before netinet/in.h`
* [16161](https://gerrit.openafs.org/16161) `FBSD: Build support for FreeBSD 13`
* [16160](https://gerrit.openafs.org/16160) `FBSD: Avoid extra vcache puts in afs_root`
* [16159](https://gerrit.openafs.org/16159) `FBSD: Use vrefl() when available`
* [16158](https://gerrit.openafs.org/16158) `FBSD: Handle amd64 in host triplet`
* [16157](https://gerrit.openafs.org/16157) `FBSD: Check VOP_ISLOCKED for LK_EXCLUSIVE`
* Vol-update-locking (bug fixes)
* [16202](https://gerrit.openafs.org/16202) `volser: Lock entry properly in UV_RestoreVolume2`
* [16201](https://gerrit.openafs.org/16201) `volser: remove check for VL_ENTDELETED`
* [16200](https://gerrit.openafs.org/16200) `volser: Always fetch locked entry in CheckVolume`
* [16199](https://gerrit.openafs.org/16199) `volser: Split CheckVolume into RW/RO/BK functions`
* [16208](https://gerrit.openafs.org/16208) `volser: Blank all 'struct nvldbentry's before use`
* [16198](https://gerrit.openafs.org/16198) `volser: clean up and clarify storeEntry usage`
* [16197](https://gerrit.openafs.org/16197) `volser: Use GetLockedEntry in UV_ReleaseVolume`
* [16196](https://gerrit.openafs.org/16196) `volser: Introduce GetLockedEntry`
* [16194](https://gerrit.openafs.org/16194) `volser: document 'vos restore -readonly' restriction`
* [16193](https://gerrit.openafs.org/16193) `volser: improve error checking for 'vos restore'`
* [16192](https://gerrit.openafs.org/16192) `volser: fix 'cant' typos`
* [16285](https://gerrit.openafs.org/16285) `viced: Remove RXAFS_GetVolumeInfo implementation`
* [16268](https://gerrit.openafs.org/16268) `xdr: Blank non-preallocated OUT arguments`
* [16267](https://gerrit.openafs.org/16267) `xdr: Set 0 _len with NULL _val`
* [16266](https://gerrit.openafs.org/16266) `Always free XDR-allocated buffers`
* [16265](https://gerrit.openafs.org/16265) `afs: Properly free afs_nfsclient_getcreds xdr bufs`
* [16264](https://gerrit.openafs.org/16264) `afs: Use constants for vrequest.volumeError`
* [16263](https://gerrit.openafs.org/16263) `pts: Use pr_NameToId in pr_SNameToId`
* [16262](https://gerrit.openafs.org/16262) `afs: Always "goto out" in PGetVolumeStatus`
* [16261](https://gerrit.openafs.org/16261) `afs: Avoid creating unused conns`
* [16260](https://gerrit.openafs.org/16260) `macos: Set 'ret' in AFSBackgrounder's renewTicket`
* [16229](https://gerrit.openafs.org/16229) `rx: Check rxi_AddRpcStat currentFunc bounds`
* [16207](https://gerrit.openafs.org/16207) `viced: Give an actual 'prname' to hpr_NameToId`
* [16206](https://gerrit.openafs.org/16206) `viced: Protect vlConn in TryLocalVLServer`
* [16205](https://gerrit.openafs.org/16205) `viced: calloc stats in SRXAFS_GetStatistics64`
* Bug fix
* [16195](https://gerrit.openafs.org/16195) `vos: avoid double release of a volume lock`
* DARWIN/Macos
* [16190](https://gerrit.openafs.org/16190) `macos: Support building solely with Xcode headers`
* [16189](https://gerrit.openafs.org/16189) `macos: Add support for MacOS 15.X (Sequoia)`
* [16188](https://gerrit.openafs.org/16188) `macos: Autodetect kernel headers path for afs.kext`
* [16187](https://gerrit.openafs.org/16187) `macos: Stop passing -sdk to xcodebuild`
* [16186](https://gerrit.openafs.org/16186) `macos: Remove SDKROOT from AklogAuthPlugin project`
* [16185](https://gerrit.openafs.org/16185) `DARWIN: Allow use of CAST_USER_ADDR_T again`
* [16184](https://gerrit.openafs.org/16184) `DARWIN: Cast arguments to afs_syscall_pioctl()`
* [16183](https://gerrit.openafs.org/16183) `DARWIN: Correct function signature of afs_mount`
* [16182](https://gerrit.openafs.org/16182) `DARWIN: Specify 'int' return type for PFI`
* [16181](https://gerrit.openafs.org/16181) `DARWIN: Skip NULL func ptrs in osi_vnodeops.c`
* [16180](https://gerrit.openafs.org/16180) `DARWIN: Define return type for getinode()`
* [16179](https://gerrit.openafs.org/16179) `DARWIN: Set parent of volume root vnodes`
* [16251](https://gerrit.openafs.org/16251) `afs: Remove 'retry' arg from afs_FindVCache`
* [16250](https://gerrit.openafs.org/16250) `afs: Remove useless afs_GetVCache arguments`
* [16129](https://gerrit.openafs.org/16129) `export: Call execerror as /usr/sbin/execerror`
* [16128](https://gerrit.openafs.org/16128) `export: Modernize code`
* [16127](https://gerrit.openafs.org/16127) `rx: Include rx_lwp.h et al in fallback rx_atomic.h`
* [16126](https://gerrit.openafs.org/16126) `rx: Use sys/atomic_op.h on AIX 4.1+`
* [16125](https://gerrit.openafs.org/16125) `rx: Fix rx_atomic.h style nits`
* [16124](https://gerrit.openafs.org/16124) `rx: Use add_and_fetch for rx_atomic_add_and_read`
* [16123](https://gerrit.openafs.org/16123) `volser: Add simple shutdown signal handler`
* [16103](https://gerrit.openafs.org/16103) `afsd: Correctly detect invalid cache dirs`
* [16102](https://gerrit.openafs.org/16102) `fs: Avoid unnecessary lstat() for -literal`
* [16122](https://gerrit.openafs.org/16122) `rx: add missing CLEAR_CALL_QUEUE_LOCK to LWP rx_GetCall`
* [16096](https://gerrit.openafs.org/16096) `rx: clear call_queue_lock after removing call from queue`
* [16093](https://gerrit.openafs.org/16093) `tests: skip vos tests when a vlserver is already running`
* [16082](https://gerrit.openafs.org/16082) `doc: Update example output for 'fs getfid'`
* DARWIN/Macos
* [16078](https://gerrit.openafs.org/16078) `packaging: Check for nonzero $? for command failure`
* [16077](https://gerrit.openafs.org/16077) `DARWIN: Add --with-macos-* packaging options`
* [16076](https://gerrit.openafs.org/16076) `DARWIN: Use notarytool for notarization`
* [16075](https://gerrit.openafs.org/16075) `DARWIN: Ignore more build artifacts`
* [16074](https://gerrit.openafs.org/16074) `DARWIN: Convert prefpane write ops to privhelper`
* [16073](https://gerrit.openafs.org/16073) `DARWIN: Convert prefpane backup ops to privhelper`
The following have been merged into openafs-stable-1_8_x, but are not yet in a release:
* [16072](https://gerrit.openafs.org/16072) `macos: AFSBackgrounder: improve detection of afs mount status`
* [16071](https://gerrit.openafs.org/16071) `DARWIN: Convert prefpane start/stop to privhelper`
* [16070](https://gerrit.openafs.org/16070) `DARWIN: Convert prefpane startup ops to privhelper`
* [16069](https://gerrit.openafs.org/16069) `DARWIN: Add 'privhelper' tool for PrefPane`
* [16095](https://gerrit.openafs.org/16095) `Log binding ip address and port during startup`
* [16094](https://gerrit.openafs.org/16094) `Call rx_InitHost once during daemon startup`
* [16380](https://gerrit.openafs.org/16380) `ubik: Use typedef for ubik_call function parameter`
* [16395](https://gerrit.openafs.org/16395) `Inhibit -Wstrict-prototypes warnings via CFLAGS`
* [16379](https://gerrit.openafs.org/16379) `lwp: Replace the typedefed bool datatype with int`
* [16378](https://gerrit.openafs.org/16378) `afs: Set 0555 perms on /afs dynroot directory`
* [16081](https://gerrit.openafs.org/16081) `fs: Report errors more consistently from GetCell()`
* [16080](https://gerrit.openafs.org/16080) `fs: Still print fid for 'getfid' if GetCell fails`
* [16079](https://gerrit.openafs.org/16079) `fs: Get parent dir cell for 'fs getfid -literal'`
* [16107](https://gerrit.openafs.org/16107) `RedHat: Retry umount /afs on systemd shutdown`
* [16106](https://gerrit.openafs.org/16106) `RedHat: Make client unit start/stop more robust`
* [16105](https://gerrit.openafs.org/16105) `RedHat: Introduce client systemd helper script`
* [16104](https://gerrit.openafs.org/16104) `RedHat: Use KillMode=process for systemd client`
* [16383](https://gerrit.openafs.org/16383) `afs: Init structures via designated initializers`
* [16382](https://gerrit.openafs.org/16382) `Convert HAVE_STRUCT_LABEL_SUPPORT to AFS_STRUCT_INIT`
* [16277](https://gerrit.openafs.org/16277) `Linux-6.14: Handle dops.d_revalidate with parent`
* [16276](https://gerrit.openafs.org/16276) `LINUX: Refactor afs_linux_dentry_revalidate()`
* [16166](https://gerrit.openafs.org/16166) `FBSD: Fallback to $CC for assembler`
* [16131](https://gerrit.openafs.org/16131) `cf: Invoke AC_PROG_RANLIB with AC_REQUIRE`
* [16130](https://gerrit.openafs.org/16130) `autoconf: use AC_CHECK_TOOL for as and ld`
* [16101](https://gerrit.openafs.org/16101) `cf: Fix typo in test for enable-shared/with-swig`
* [16100](https://gerrit.openafs.org/16100) `cf: Disable swig if shared libraries are disabled`
* [16097](https://gerrit.openafs.org/16097) `cf: Run AFS_LT_INIT after setting CC`
* [16230](https://gerrit.openafs.org/16230) `fsint: Move RXAFS_StoreACL function declaration`
* [16228](https://gerrit.openafs.org/16228) `CVE-2018-7168 RXAFS_StoreACL deprecate 134 introduce 164`
* [16023](https://gerrit.openafs.org/16023) `viced: Set HashTable size at startup`
* [16068](https://gerrit.openafs.org/16068) `DARWIN: Use -Werror=objc-method-access for objc`
* [16067](https://gerrit.openafs.org/16067) `DARWIN: Use NSUInteger for indexGreaterThanIndex return value`
* [16066](https://gerrit.openafs.org/16066) `DARWIN: Set workIPArray to nil in commitModify`
* [16022](https://gerrit.openafs.org/16022) `viced: Ignore on-disk fsstate HashTable data`
* [16021](https://gerrit.openafs.org/16021) `viced: Log some basic fs_stateRestore stats`
* [16020](https://gerrit.openafs.org/16020) `viced: Log more state restore errors`
* [16019](https://gerrit.openafs.org/16019) `viced: Raise fsstate loop detection limits`
* [16018](https://gerrit.openafs.org/16018) `viced: Set FS_STATE_DUMP_MODE earlier`
* [16017](https://gerrit.openafs.org/16017) `viced: Use calloc for fsstate data`
* [16016](https://gerrit.openafs.org/16016) `viced: Fix minor log message mistakes`
* [16012](https://gerrit.openafs.org/16012) `rx: Add rxi_GetLocalAddr() prototype`
* [16011](https://gerrit.openafs.org/16011) `rx: Don't send packets to localhost if -rxbind set`
* [16065](https://gerrit.openafs.org/16065) `rx: Introduce 'rx_host' internal global`
* [16010](https://gerrit.openafs.org/16010) `Avoid rxi_tracename overflow`
* [16008](https://gerrit.openafs.org/16008) `LINUX: Block non-fatal signals when sleeping`
* [16007](https://gerrit.openafs.org/16007) `LINUX: Refactor afs_osi_Sleep`
* [15817](https://gerrit.openafs.org/15817) `volinfo: Refuse zero and non-numeric -volumeid`
* [15812](https://gerrit.openafs.org/15812) `AIX: Don't specify -qlanglvl=stdc99 for libuafs`
* [15811](https://gerrit.openafs.org/15811) `AIX: Declare syscall()`
* [15810](https://gerrit.openafs.org/15810) `AIX: Avoid COMPAT_43 for clang`
* [15809](https://gerrit.openafs.org/15809) `macos: Remove vestigial AFS_MOUNT_AFS references`
* [15808](https://gerrit.openafs.org/15808) `LINUX: Test for rcu_read_unlock with rcu_read_lock`
* [15807](https://gerrit.openafs.org/15807) `Remove almost all bcopy/bzero/bcmp calls`
* [15806](https://gerrit.openafs.org/15806) `make-release: create SHA256 checksums too`
* [15805](https://gerrit.openafs.org/15805) `make-release: Run git describe once`
* [15804](https://gerrit.openafs.org/15804) `make-release: Create output directory if needed`
* [15803](https://gerrit.openafs.org/15803) `make-release: Remove unused optional version argument`
* [15802](https://gerrit.openafs.org/15802) `make-release: Clean up whitespace and spelling`
* [15801](https://gerrit.openafs.org/15801) `rx: Print free and allocated counters as unsigned values`
* [15855](https://gerrit.openafs.org/15855) `rx: Remove includes for MIN/MAX in rx_packet.h`
* [15850](https://gerrit.openafs.org/15850) `rx: Use atomics for rx_securityClass refcounts`
* [15851](https://gerrit.openafs.org/15851) `rxkad: Consolidate refCount decrement`
* [16099](https://gerrit.openafs.org/16099) `Do not build shared-only libs for --disable-shared`
* [16117](https://gerrit.openafs.org/16117) `libtool: Serialize building libfoo.la and libfoo.a`
* [16092](https://gerrit.openafs.org/16092) `tests: Fix manpage tests for objdir builds`
* [16091](https://gerrit.openafs.org/16091) `tests: Fix most tests for objdir builds`
* [16098](https://gerrit.openafs.org/16098) `Pass -shared when linking some shared libraries`
* [16026](https://gerrit.openafs.org/16026) `doc: Add section 3 man pages to AdminRef`
* [16118](https://gerrit.openafs.org/16118) `doc: Add AdminRef .gitignore file`
* [16027](https://gerrit.openafs.org/16027) `doc: Fix doc/xml for objdir builds`
* [16025](https://gerrit.openafs.org/16025) `doc: Sort man page entries in AdminRef`
* [16115](https://gerrit.openafs.org/16115) `doc: Look in $srcdir for documentation sources`
Stable Wish List
Minor bug fixes in master
The following changes have been merged into master
* [16090](https://gerrit.openafs.org/16090) `cf: Fix autoconf warning for AC_PROG_RANLIB`
The following changes are wish list for a stable back-port. They have been merged into master and are pending back-ports to stable
* [topic:unlinked-vcaches](https://gerrit.openafs.org/#/q/project:openafs+branch:master+topic:unlinked-vcaches)
* [topic:connleaks](https://gerrit.openafs.org/#/q/topic:connleaks)
* [13376](https://gerrit.openafs.org/13376) `bozo: mark failed bnodes as stopped/shutdown`
Fix bos stop hang when simple bnode process fails.
Development
Next Stable Version - 1.10.x
Proposed gerrits for creating the next stable version:
* rxgk
* [Topic:rxgk-phase2](https://gerrit.openafs.org/#/q/status:open+project:openafs+branch:master+topic:rxgk-phase2)
* [Topic:chroot-sysname](https://gerrit.openafs.org/#/q/status:open+project:openafs+branch:master+topic:chroot-sysname) Support for containers
Development Wish List
rxgk
* [Topic:rxgk-phase2](https://gerrit.openafs.org/#/q/status:open+project:openafs+branch:master+topic:rxgk-phase2)
Topics for discussion
- Not requiring root access for running the openAFS servers
- Cleanup of AFS_component_version_number
Other development wish list
* [Topic:avoid-empty-release](https://gerrit.openafs.org/#/q/status:open+project:openafs+branch:master+topic:avoid-empty-release)
Improvements in the handling of vol dump/restore