Files
dpm-core-ng/include/internal
Christopher M. Punches 0291e61fd8 Module records and aliases
Installation records what a module reports about itself. dpm_install_module
opens a module once, writes its version and description to a .meta file in
/var/lib/dpm/metadata/, and records the alternate names it declared in
modules.aliases beside it. dpm_uninstall_module removes both, leaving the
module file in place.

dpm_list_modules reads those records and opens no module. A module with no
record lists with a version of <uninstalled> and still loads when a caller
names it. An unreadable or absent metadata directory costs the listing its
detail and costs nothing else.

Aliases give a module alternate names, declared through the new
dpm_module_aliases contract symbol or added with dpm_add_module_alias. A
name is recorded once: one already serving as an alias, or belonging to an
installed module, is refused rather than repointed. dpm_require matches a
name against the installed modules, then the alias table, then the module
path.

The metadata directory is a fifth override field and the -M flag, and
[modules] metadata in core.conf.

The test suite is four binaries covering context, modules, records, and
aliases, each a ctest case of its own, alongside the CLI cases.
2026-08-24 03:51:39 -04:00
..
2026-08-24 03:51:39 -04:00
2026-08-24 03:51:39 -04:00
2026-08-24 03:51:39 -04:00
2026-08-24 03:51:39 -04:00
2026-08-24 03:51:39 -04:00

Internal Headers

libdpm-core.so's own headers, used by its sources and never installed.

They declare the types and functions the library's translation units share with each other: the definitions behind the opaque handles <dpm/core.h> exposes, and the helpers those sources call across file boundaries.

Nothing here is part of the public interface. The install rule ships include/dpm/ alone, so a consumer or a module compiles against <dpm/core.h> and never sees this directory.