Documentation: Add comprehensive Debian package structure and build information to ComposeFS docs

This commit is contained in:
robojerk 2025-07-15 11:22:13 -07:00
parent 6cd1be1ba1
commit 00e4e68d39

View file

@ -56,6 +56,100 @@ apt-layer uses [ComposeFS](https://ostreedev.github.io/ostree/composefs/) as its
---
## Package Structure
### Debian/Ubuntu Packages
ComposeFS is packaged in Debian/Ubuntu as three separate packages:
#### 1. `composefs` (Main Tools Package)
**Purpose:** Userspace tools for ComposeFS operations
**Contains:**
- `/usr/bin/mkcomposefs` - Create ComposeFS images
- `/usr/bin/composefs-info` - Inspect and manage images
- `/usr/bin/mount.composefs` - Mount helper for `mount -t composefs`
- `/usr/share/man/man1/` - Manual pages for all tools
- `/usr/share/doc/composefs/` - Documentation
#### 2. `libcomposefs1` (Runtime Library)
**Purpose:** Runtime shared library for ComposeFS
**Contains:**
- `/usr/lib/x86_64-linux-gnu/libcomposefs.so.1` - Runtime library
- `/usr/lib/x86_64-linux-gnu/libcomposefs.so.1.4.0` - Library version
- **Dependencies:** `glibc`, `libgcc`, `openssl-libs`
#### 3. `libcomposefs-dev` (Development Package)
**Purpose:** Development headers and pkg-config files
**Contains:**
- `/usr/include/libcomposefs/` - Header files
- `/usr/lib/x86_64-linux-gnu/libcomposefs.so` - Development symlink
- `/usr/lib/x86_64-linux-gnu/pkgconfig/composefs.pc` - pkg-config file
- **Dependencies:** `libcomposefs1 (= ${binary:Version})`
### Fedora/RHEL Packages
ComposeFS is packaged in Fedora/RHEL as three separate packages:
#### 1. `composefs` (Main Tools Package)
**Purpose:** Userspace tools for ComposeFS operations
**Contains:** Same tools as Debian package
#### 2. `composefs-libs` (Runtime Library)
**Purpose:** Runtime shared library for ComposeFS
**Contains:** Same library as Debian `libcomposefs1`
#### 3. `composefs-devel` (Development Package)
**Purpose:** Development headers and pkg-config files
**Contains:** Same development files as Debian `libcomposefs-dev`
### Installation Commands
**Debian/Ubuntu:**
```sh
sudo apt install -y composefs libcomposefs1
```
**Fedora/RHEL:**
```sh
sudo dnf install -y composefs composefs-libs
```
**For development (optional):**
```sh
# Debian/Ubuntu
sudo apt install -y libcomposefs-dev
# Fedora/RHEL
sudo dnf install -y composefs-devel
```
### Build Dependencies
The ComposeFS source package requires the following build dependencies:
**Debian Build Dependencies:**
- `debhelper-compat (= 13)`
- `fsverity` - File system verity support
- `fuse3` - FUSE filesystem support
- `go-md2man` - Markdown to man page converter
- `libcap2-bin` - Capability utilities
- `libfuse3-dev` - FUSE development headers
- `libssl-dev` - OpenSSL development headers
- `meson` - Build system
- `pkgconf` - Package configuration
**Build System:** ComposeFS uses the Meson build system for compilation and packaging.
### Source Package Information
- **Repository:** [salsa.debian.org/debian/composefs](https://salsa.debian.org/debian/composefs)
- **Maintainer:** Roland Hieber <rhi@pengutronix.de>
- **Uploaders:** Dylan Aïssi <daissi@debian.org>
- **Homepage:** [github.com/containers/composefs](https://github.com/containers/composefs)
- **License:** BSD 2-Clause "Simplified" License
---
## Commands
The `composefs` package provides the following tools:
@ -125,8 +219,10 @@ umount <mountpoint>
## Integration Notes
- **Package Structure:** apt-layer supports the official ComposeFS packages from both Debian (`composefs`, `libcomposefs1`) and Fedora (`composefs`, `composefs-libs`) repositories
- **Specific Tools:** While there isn't a single monolithic `composefs` CLI, specialized commands like `composefs-info` exist for introspection, and `mount.composefs` is the dedicated helper for mounting (callable directly or via `mount -t composefs`)
- **Dependencies:** apt-layer requires `mkcomposefs`, `composefs-info`, `mount.composefs` (which might be part of the `composefs` package), `mksquashfs`, and `unsquashfs` for ComposeFS support
- **Dependencies:** apt-layer requires `mkcomposefs`, `composefs-info`, `mount.composefs` (from the `composefs` package), `mksquashfs`, and `unsquashfs` for ComposeFS support
- **Distribution Detection:** apt-layer automatically detects the distribution and provides appropriate installation commands for ComposeFS packages
- **Fallback:** If `mkcomposefs` (and potentially `mount.composefs`) is not available, apt-layer can fall back to a shell script alternative (for development/testing only)
- **Compatibility:** This approach matches rpm-ostree and Fedora Silverblue's use of ComposeFS for system layering