Two pacman hooks that patch Arch Linux package `mkinitcpio-dropbear` for use in ZFSBootMenu
# Setup
> Not explicitly listed here as a step but still relevant: These `pacman` hooks only make sense if you're using ZFSBootMenu images and have `mkinitcpio-dropbear` package installed.
Note that while you may choose arbitrary locations for symlinks the hook files reference `/usr/local/bin/pacman-mkinitcpio-dropbear-hook` and `.../pacman-mkinitcpio-dropbear-install`, respectively. Change that accordingly if you need to.
1. Optionally update shell scripts with the repo path you chose. It defaults to:
When either the hook or installation script of Arch Linux package `mkinitcpio-dropbear` changes these hooks apply patches to them.
The installation script `/usr/lib/initcpio/install/dropbear` gets two additional commands to create a `root` username and group in initrd; the hook script `/usr/lib/initcpio/hooks/dropbear` has its Dropbear settings changed to send SSH keepalive messages and to define a custom listening port.
Both actions happen as a `PostTransaction` in `pacman`.
# Assumptions
Per [headline](#mkinitcpio-dropbear-pacman-hook) these hooks is intended to work with [quico.space/quico-os-setup/arch-zbm](https://quico.space/quico-os-setup/arch-zbm). Before using them for any purpose other than an `arch-zbm` Arch Linux installation please closely review what they do and adapt to your use case as needed.
These hooks manipulate how SSH is done inside a ZFSBootMenu boot loader.
# Development
## Conventional commits
This project uses [Conventional Commits](https://www.conventionalcommits.org/) for its commit messages.
### Commit types
Commit _types_ besides `fix` and `feat` are:
-`build`: Project structure, directory layout, build instructions for roll-out
-`refactor`: Keeping functionality while streamlining or otherwise improving function flow
-`test`: Working on test coverage
-`docs`: Documentation for project or components
### Commit scopes
The following _scopes_ are known for this project. A Conventional Commits commit message may optionally use one of the following scopes or none:
-`patch`: Work related to patch files
-`hook`: Configuring the hook(s)
-`meta`: Affects the project's repo layout, readme content, file names etc.