diff --git a/hosts/skydick/datapool.nix b/hosts/skydick/datapool.nix index d2f5768..c66abb4 100644 --- a/hosts/skydick/datapool.nix +++ b/hosts/skydick/datapool.nix @@ -221,18 +221,22 @@ { config, pkgs, ... }: { - # Build sambaFull with Spotlight/tracker + SMB Direct support. + # Build sambaFull with Spotlight/tracker support. # Fixes for tinysparql 3.x (tracker-sparql-3.0) compatibility: # (1) waf only checks tracker-sparql-{2.0..0.14} — add 3.0 # (2) tracker 2.x API (get_async/get_finish) removed in 3.x — replace # with bus_new_async/bus_new_finish connecting to localsearch miner # (3) disable tevent_glib_tracker test (uses same removed API, test-only) # (4) add icu for Unicode normalisation required by Spotlight - # SMB Direct: - # (5) link against rdma-core (libibverbs + librdmacm) and pass - # --with-smb-direct so smbd advertises capability 0x40 on protocol - # negotiate. Lets Sequoia 15.4+ Macs upgrade SMB3 sessions onto the - # RoCE fabric (same NIC/bond as NFS-RDMA, distinct fabric port 5445). + # + # SMB Direct (SMB3-over-RDMA) is NOT enabled: upstream Samba's userspace + # smbd does not implement an RDMA transport, even with --with-smb-direct + # passed (waf silently accepts the flag but the produced smbd contains + # no ibverbs code). The kernel server `ksmbd` does support SMB Direct, + # but switching would lose LDAP-backed posix users, Spotlight, fruit + # metadata and Time Machine — features that all live in userspace Samba. + # See: NFS-over-RDMA is on the same fabric and covers the bulk-throughput + # use case; SMB stays on TCP for now. nixpkgs.overlays = [ (final: prev: { sambaFull = prev.sambaFull.overrideAttrs (old: { @@ -240,10 +244,6 @@ final.tinysparql.dev final.glib.dev final.icu.dev - final.rdma-core - ]; - configureFlags = (old.configureFlags or []) ++ [ - "--with-smb-direct" ]; postPatch = (old.postPatch or "") + '' substituteInPlace source3/wscript \ @@ -482,18 +482,6 @@ "map to guest" = "never"; "server min protocol" = "SMB2_10"; - # SMB-Direct (SMB3 over RDMA, port 5445). Requires the sambaFull - # override above to be built --with-smb-direct AND a client that - # supports it (Win 10 Pro for Workstations, Win Server, macOS - # Sequoia 15.4+). For clients without SMB-Direct, smbd silently - # falls back to plain TCP on 445. - "smb direct" = "yes"; - # Max single RDMA read/write per call. 8 MiB matches our NFS - # rsize/wsize so SMB and NFS use comparable transfer sizes over - # the same fabric. - "smb direct max read" = "8388608"; - "smb direct max write" = "8388608"; - "load printers" = "no"; "vfs objects" = "catia fruit streams_xattr recycle"; "fruit:metadata" = "stream";