Skip to the content.

Architecture Decision Record (ADR)

ADR-0032: SMI FHS Ultra-light Architecture Decision Record (ADR)

1. Status:

Accepted

2. Context

setmy.info needs one simple Linux filesystem standard based on FHS. The standard must clearly say where program files go, where changing data goes, and where host-specific configuration goes. It should also say in simple words how the main software tree under /opt/setmy.info relates to /var/opt/setmy.info, /etc/opt/setmy.info, and native OS integration files in /etc.

3. Decision

Use /opt/setmy.info for the software tree, /var/opt/setmy.info for variable data, and /etc/opt/setmy.info for host-specific configuration of the /opt/setmy.info software tree. Put executable scripts and programs in /opt/setmy.info/bin, libraries in /opt/setmy.info/lib, and manual pages in /opt/setmy.info/man. Keep native OS integration files in their standard /etc locations, for example /etc/exports.

4. Rationale (Justification):

This follows the FHS layout in simple and consistent form. It gives one standard place for installed software, one standard place for mutable data, and one standard place for machine-local configuration. It also says in simple words where common software parts such as binaries, libraries, and manual pages belong inside the software tree. It keeps configuration for /opt/setmy.info in the FHS-defined /etc/opt/setmy.info area while still leaving system-wide OS files in normal /etc paths.

3. Consequences, Impacts & Follow-up Actions

Documentation and tooling should use ADR-0032 as the canonical Linux FHS decision for setmy.info. Put software under /opt/setmy.info, with scripts and programs in /opt/setmy.info/bin, libraries in /opt/setmy.info/lib, and manual pages in /opt/setmy.info/man; put changing data under /var/opt/setmy.info, configuration under /etc/opt/setmy.info/localhost/..., and OS integration files in native /etc locations. smi-* tooling should resolve locations from this FHS structure.

https://adr.github.io/