nwarchive: move private xattrs to org namespace
All checks were successful
Source release / source-package (push) Successful in 49s

Rename the unreleased mars_nwe private archive and file-info extended-attribute keys from the Linux user.mars_nwe.* spelling to the Netatalk-style org.mars-nwe.* namespace.

This keeps the mars_nwe metadata namespace aligned with the AFP/libatalk backend direction, where Netatalk owns org.netatalk.* keys and mars_nwe-owned metadata should live under org.mars-nwe.* instead of looking like ordinary user application attributes.

No legacy read fallback is added because the user.mars_nwe.* names have only existed in local test builds and have not shipped in a release. New writes therefore use only org.mars-nwe.archive and org.mars-nwe.fileinfo, avoiding migration complexity before AFP metadata persistence is introduced.

Document the namespace decision in TODO.md so future AFP xattr work can build on org.mars-nwe.afp.* or a compact org.mars-nwe.afp.metadata record rather than adding new user.mars_nwe.* keys.

Tests: cmake --build build-xattr-off --target nwserv; cmake --build build-xattr-off --target all reaches the existing missing gdbm.h dependency while nwconn has already been built in this tree.
This commit is contained in:
ChatGPT
2026-05-30 09:02:50 +00:00
committed by Mario Fetka
parent 3f3753e2b5
commit a586e52b25
2 changed files with 9 additions and 2 deletions

View File

@@ -252,6 +252,10 @@ Current status:
- Optional build-time detection/linking for Netatalk/libatalk exists as a first
local metadata backend hook. It is deliberately not an AFP protocol
implementation yet.
- Existing mars_nwe private xattr payloads use the `org.mars-nwe.*`
namespace (`org.mars-nwe.archive` and `org.mars-nwe.fileinfo`) rather than
the unreleased test-only `user.mars_nwe.*` names. There is no legacy read
fallback because the old names never shipped outside local test systems.
- NetWare AFP calls are NCP entry points for Mac namespace semantics on a
NetWare volume, not transport-level AFP proxy calls to `afpd`.
@@ -267,6 +271,9 @@ Follow-up:
data/resource fork and Finder Info semantics.
- Replace the temporary stat-derived AFP entry-id fallback with a persistent
CNID/directory-id mapping once the libatalk/CNID backend is integrated.
- Put future mars_nwe-owned AFP metadata under `org.mars-nwe.afp.*` (or a
compact `org.mars-nwe.afp.metadata` record) and keep Netatalk-owned metadata
under Netatalk's own `org.netatalk.*` keys.
- Extend the Linux AFP smoke tests once additional AFP subfunctions are
implemented, especially Finder Info updates, fork open/read/write paths,
resource-fork handling, and broader directory-scan edge cases.

View File

@@ -8,7 +8,7 @@
#include <sys/xattr.h>
#endif
#define MARS_NWE_ARCHIVE_XATTR "user.mars_nwe.archive"
#define MARS_NWE_ARCHIVE_XATTR "org.mars-nwe.archive"
#define MARS_NWE_ARCHIVE_VERSION 1
typedef struct {
@@ -148,7 +148,7 @@ int mars_nwe_set_archive_info(char *unixname,
}
#define MARS_NWE_FILEINFO_XATTR "user.mars_nwe.fileinfo"
#define MARS_NWE_FILEINFO_XATTR "org.mars-nwe.fileinfo"
#define MARS_NWE_FILEINFO_VERSION 1
typedef struct {