105 lines
1.8 KiB
Markdown
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.
|