amduat-api/ops/asl-debian-packaging-1.md
2026-01-17 10:33:23 +01:00

105 lines
1.8 KiB
Markdown

# ASL/DEBIAN-PACKAGING/1 -- Debian Packaging Notes
Status: Draft
Owner: Architecture
Version: 0.1.0
SoT: No
Last Updated: 2026-01-17
Tags: [ops, debian, packaging, build]
**Document ID:** `ASL/DEBIAN-PACKAGING/1`
**Layer:** O2 -- Packaging guidance
**Depends on (normative):**
* `ASL/HOST/1`
**Informative references:**
* `ENC-ASL-HOST/1`
---
## 0. Conventions
The key words **MUST**, **MUST NOT**, **REQUIRED**, **SHOULD**, and **MAY** are to be interpreted as in RFC 2119.
ASL/DEBIAN-PACKAGING/1 provides packaging guidance for Debian-based distributions. It does not define runtime semantics.
---
## 1. Optional PTY Support (Normative)
PTY support MUST be controlled at build time with a compile-time flag.
### 1.1 Build Flag
```c
#ifdef ASL_ENABLE_PTY
#define _GNU_SOURCE
#include <pty.h>
#endif
```
If PTY is requested at runtime without being built in, tools MUST fail with a clear error.
### 1.2 Makefile Mapping
```make
CFLAGS += -Wall -Wextra -O2
LIBS +=
ifdef ENABLE_PTY
CFLAGS += -DASL_ENABLE_PTY
LIBS += -lutil
endif
```
---
## 2. Library vs Tool Split (Informative)
Guiding principle: libraries define facts; tools perform actions.
### 2.1 Libraries
* `libasl-core`
* `libasl-store`
* `libasl-index`
* `libasl-capture`
* `libpel-core`
Libraries SHOULD avoid CLI parsing and environment policies.
### 2.2 Tools
* `asl-put`
* `asl-get`
* `asl-capture`
* `pel-run`
* `asl-admin`
Tools SHOULD be thin wrappers around libraries.
---
## 3. Debian Filesystem Layout (Informative)
```
/usr/bin/
asl-put
asl-get
asl-capture
pel-run
/usr/lib/x86_64-linux-gnu/
libasl-*.so
```
---
## 4. Dependency Rules (Informative)
* `libutil` MUST be a dependency only when PTY support is enabled.
* No GNU extensions should be required for the PIPE-only build.