https://github.com/solus-project/usysconf
Universal system configuration interface
https://github.com/solus-project/usysconf
Last synced: 11 months ago
JSON representation
Universal system configuration interface
- Host: GitHub
- URL: https://github.com/solus-project/usysconf
- Owner: solus-project
- License: gpl-2.0
- Created: 2017-11-16T02:29:54.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2018-10-18T17:59:26.000Z (almost 8 years ago)
- Last Synced: 2025-04-24T03:34:49.346Z (about 1 year ago)
- Language: C
- Size: 304 KB
- Stars: 12
- Watchers: 5
- Forks: 4
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# usysconf
[](https://opensource.org/licenses/GPL-2.0)
Universal system configuration interface for operating systems (i.e. Solus)
`usysconf` provides a centralised configuration system to replace "package hooks" and post-installation triggers with a reentrant binary, suitable for use in recovery situations. It requires a certain development approach, by throwing away traditional postinstalls, and centralising/minimising the amount of system delta generated during these steps.
The binary replaces the legacy [COMAR system](https://solus-project.com/2017/11/12/this-week-in-solus-install-48/) in Solus with a single point for all configuration to take place. A simple state file tracks the `mtime` for interesting file paths, and when those are invalidated triggers are run in response. This allows `usysconf` to be the final execution step in any package/update operation, and incremently apply trigger steps to the system.
Lastly, a CLI interface is provided allowing users to forcibly run well known triggers by name (or all) to assist in recovery. This allows users to not worry about the inaccessible triggers of the past, and instead request usysconf run all triggers that need running. Optionally, all triggers can be run, bypassing update time checks:
```bash
$ sudo usysconf run -f
```
`usysconf` is a [Solus project](https://solus-project.com/)

## Supported triggers
| Trigger | Description | Notes |
|----------------|-----------------------------------------|-----------------------------------------------|
| ldconfig | Update dynamic library cache | |
| boot | Update boot configuration + kernels | Uses `clr-boot-manager` |
| qol-assist | Register QoL migration | Uses `qol-assist` |
| depmod | Run depmod for each kernel | |
| hwdb | Update hardware database | |
| drivers | Update graphical driver configuration | Uses `linux-driver-management` |
| sysusers | Update systemd sysusers | |
| tmpfiles | Update systemd tmpfiles | |
| systemd-reload | Reload systemd configuration | |
| systemd-reexec | Re-execute systemd | |
| vbox-restart | Restart VirtualBox services | Will be replaced with generic service handler |
| apparmor | Compile AppArmor profiles | Uses `aa-lsm-hook` |
| glib2 | Compile glib-schemas | |
| fonts | Rebuild font cache | |
| mime | Update mimetype database | |
| icon-caches | Update icon theme caches | |
| desktop-files | Update desktop database | |
| gconf | Update GConf schemas | |
| dconf | Update dconf database | |
| gtk2-immodules | Update GTK2 input module cache | |
| gtk3-immodules | Update GTK3 input module cache | |
| mandb | Updating manpages database | |
| ssl-certs | Update SSL certificate configuration | Only uses `c_rehash` right now |
| mono-certs | Populate Mono certificates | Uses `cert-sync` |
| openssh | Create OpenSSH host key | |
| udev-rules | Reload and apply new udev rules | Always last to facilitate userspace responses |
### Special note
The two cert handlers will eventually merge to use a full system trust store that serves normal applications and Mono.
## Authors
Copyright © 2017-2018 Solus Project
`usysconf` is available under the terms of the `GPL-2.0` license.