Hello,
I am proposing a specification update for the ALPM/Pacman lock file.
The current binary-existential state (exists/not exists) is
insufficient for modern multi-process environments and leads to
significant state-blindness for administrators.
Specification:
# Feature-Request: Content-Based Lock-State Signaling (CBLSS)
Author: Carsten Udo Heine <cuheine(a)gmail.com>
Version: 20260404-1316
Abstract:
The current db.lck mechanism in ALPM/Pacman is purely binary.
This proposal introduces a 1-byte status register (Hex-Nibbles)
and vector-based logging (New (Old)) to ensure transparency.
Rationale:
1. Context Awareness: Allows admins to distinguish between critical
mutations (Writing) and non-invasive tasks (Pending/Info).
2. Deterministic Forensics: The New (Old) notation (e.g., 01 (30))
documents transitions. Missing transitions reveal crashes.
3. Architectural Discipline: Forces UI wrappers to justify their
state, exposing preemptive locking "overcast".
Technical Specification (The "Hex-Nipple" Model):
The file /var/lib/pacman/db.lck shall contain exactly 1 Byte.
High Nipple (Soft/Info) : Low Nipple (Hart/Action) : Definition
0 0 doneOK: System is free.
1 0 Pending: Background update check in progress.
2 0 Information: Updates found; no active mutation.
3 0 Waiting: GUI awaiting user input (Block risk!).
0 1 Writing: CRITICAL. Database mutation in progress.
0 3 Error: Process aborted; potential inconsistency.
Logging Protocol (db.lck.log):
Format: TIMESTAMP | PID | PROCESS | NEW (OLD)
Principle: Append-only.
This proposal maintains DRY principles and POSIX integrity without
adding new dependencies or daemons.
I am looking forward to technical feedback.
Regards,
Carsten