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.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`

Linux 6.16

As Linux 6.16 is still in development, patches for openafs have been developed, but have not yet been submitted to gerrit for review (final testing and commit cleanup is in progress)

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