aerynOS Package Recipes. Build dashboard: https://dash.aerynos.dev
See the codeThis repository contains all the recipes required to build aerynOS from source.
| Resource | Description |
|---|---|
| Documentation | Learn about aerynOS concepts and packaging |
| Packaging Policy | aerynOS Package Addition Policy |
| Packaging Guide | Detailed packaging documentation |
| Zulip Chat | Community discussion (requires join) |
| Contributing Guidelines | Full contribution process and policies |
| GenAI Policy | We do not accept contributions authored using genAI/LLM chatbots or agents |
Recipes define how packages are built and packaged for aerynOS. Each recipe describes the build process, dependencies, and metadata needed to create installable packages using our tooling stack (primarily Boulder/moss).
aerynOS is currently in Alpha quality and serves as a tech preview focused on proving our tooling approach. Until our infrastructure matures, we must be selective about packages to avoid exploding manual rebuild requirements.
Where we are currently at:
What packages are we likely to accept:
Other areas of focus:
Until our infrastructure matures, if packages are not available in our repository, you may be asked to use Flatpaks and AppImages instead.
Before submitting, ensure you understand:
name: Add at v<version>, name: Update to v<version>, name: Fix <...>, [NFC] name: <description of no functional change commit>)GitHub doesn't natively support selecting from multiple PR templates, so we've set up a semi-manual workflow:
Click "New Pull Request" to begin the PR creation process
Use the Preview Box: In the PR description area, click the Preview tab to access our template selector
Choose the Right Template:
Fill Out the Template Completely: Provide all requesting information, which will vary depending on the template
Submit Your PR: Once complete, submit and wait for maintainer review.
Reviews may take some time depending on maintainer availability. Once your PR passes review, a maintainer will merge it. 🎉
Common just commands for local testing:
just bump - bump the release number in the nano recipejust build - Build the recipe locallyjust mv-local - Move the newly built .stone build artifacts to the local repositoryjust ls-local - List the build artifacts present in the local repositoryjust clean - Clean *.stone artefacts from the current directoryjust clean-local - Clean *.stone artefacts from the local repositoryRefer to the justfile in the repository root for the full command list.
jq to Parse manifest.*.jsonc FilesWe provide .jsonc (JSON with comments) manifest files, however, the popular jq tool doesn't currently support .jsonc files.
That said, you can use the C preprocessor to strip any comments before passing to jq as follows:
cpp -P -E manifest.x86_64.jsonc | jq .packages
just Default Variables in the .env FileCreate a .env file in the root of the recipes/ directory, next to the supplied justfile.
Example .env file:
# All installs need a default local repository set up for convenience
# If you're awkward and want to use a different path than the default,
# uncomment and change it below:
# LOCAL_REPO="${HOME}/.cache/local_repo/x86_64"
boulder ArgumentsIf you are not building on aerynOS using the os-supplied boulder package, or if you want to specify custom arguments
to the boulder invocation when using the just targets, you might benefit from adding some or all of the following options
to your .env file in recipes/ root next to the justfile:
# Uncomment this if you want to use a different boulder than the one in /usr/bin
# BOULDER="${HOME}/.local/bin/boulder"
# Uncomment this if you want to explicitly override the shipped boulder configuration
# BOULDER_ARGS="--data-dir=${HOME}/.local/share/boulder --config-dir=${HOME}/.config/boulder --moss-root=${HOME}/.cache/boulder"
The justfile is set up so you can also choose to specify environment variables on a command-line invocation of just:
Example:
BOULDER_ARGS="--data-dir=${HOME}/.local/share/boulder" just build
Note that while Zulip channels are publicly viewable, participation in certain channels requires the Trusted Contributor role. This is granted after demonstrating genuine interest in contributing to the project.
Unless otherwise specified, all packaging recipes are available under the terms of the MPL-2.0 licence.
Individual software releases are available under the terms specified upstream, collected in each stone.yaml recipe. Any patches against a software package is under the relevant license for each upstream.
(top 30 of 88)
Python
54.9%
Shell
35.9%
Just
3.4%
JavaScript
2.8%
Vim Script
1.8%
aerynOS Package Recipes. Build dashboard: https://dash.aerynos.dev
See the codeThis repository contains all the recipes required to build aerynOS from source.
| Resource | Description |
|---|---|
| Documentation | Learn about aerynOS concepts and packaging |
| Packaging Policy | aerynOS Package Addition Policy |
| Packaging Guide | Detailed packaging documentation |
| Zulip Chat | Community discussion (requires join) |
| Contributing Guidelines | Full contribution process and policies |
| GenAI Policy | We do not accept contributions authored using genAI/LLM chatbots or agents |
Recipes define how packages are built and packaged for aerynOS. Each recipe describes the build process, dependencies, and metadata needed to create installable packages using our tooling stack (primarily Boulder/moss).
aerynOS is currently in Alpha quality and serves as a tech preview focused on proving our tooling approach. Until our infrastructure matures, we must be selective about packages to avoid exploding manual rebuild requirements.
Where we are currently at:
What packages are we likely to accept:
Other areas of focus:
Until our infrastructure matures, if packages are not available in our repository, you may be asked to use Flatpaks and AppImages instead.
Before submitting, ensure you understand:
name: Add at v<version>, name: Update to v<version>, name: Fix <...>, [NFC] name: <description of no functional change commit>)GitHub doesn't natively support selecting from multiple PR templates, so we've set up a semi-manual workflow:
Click "New Pull Request" to begin the PR creation process
Use the Preview Box: In the PR description area, click the Preview tab to access our template selector
Choose the Right Template:
Fill Out the Template Completely: Provide all requesting information, which will vary depending on the template
Submit Your PR: Once complete, submit and wait for maintainer review.
Reviews may take some time depending on maintainer availability. Once your PR passes review, a maintainer will merge it. 🎉
Common just commands for local testing:
just bump - bump the release number in the nano recipejust build - Build the recipe locallyjust mv-local - Move the newly built .stone build artifacts to the local repositoryjust ls-local - List the build artifacts present in the local repositoryjust clean - Clean *.stone artefacts from the current directoryjust clean-local - Clean *.stone artefacts from the local repositoryRefer to the justfile in the repository root for the full command list.
jq to Parse manifest.*.jsonc FilesWe provide .jsonc (JSON with comments) manifest files, however, the popular jq tool doesn't currently support .jsonc files.
That said, you can use the C preprocessor to strip any comments before passing to jq as follows:
cpp -P -E manifest.x86_64.jsonc | jq .packages
just Default Variables in the .env FileCreate a .env file in the root of the recipes/ directory, next to the supplied justfile.
Example .env file:
# All installs need a default local repository set up for convenience
# If you're awkward and want to use a different path than the default,
# uncomment and change it below:
# LOCAL_REPO="${HOME}/.cache/local_repo/x86_64"
boulder ArgumentsIf you are not building on aerynOS using the os-supplied boulder package, or if you want to specify custom arguments
to the boulder invocation when using the just targets, you might benefit from adding some or all of the following options
to your .env file in recipes/ root next to the justfile:
# Uncomment this if you want to use a different boulder than the one in /usr/bin
# BOULDER="${HOME}/.local/bin/boulder"
# Uncomment this if you want to explicitly override the shipped boulder configuration
# BOULDER_ARGS="--data-dir=${HOME}/.local/share/boulder --config-dir=${HOME}/.config/boulder --moss-root=${HOME}/.cache/boulder"
The justfile is set up so you can also choose to specify environment variables on a command-line invocation of just:
Example:
BOULDER_ARGS="--data-dir=${HOME}/.local/share/boulder" just build
Note that while Zulip channels are publicly viewable, participation in certain channels requires the Trusted Contributor role. This is granted after demonstrating genuine interest in contributing to the project.
Unless otherwise specified, all packaging recipes are available under the terms of the MPL-2.0 licence.
Individual software releases are available under the terms specified upstream, collected in each stone.yaml recipe. Any patches against a software package is under the relevant license for each upstream.
(top 30 of 88)
Python
54.9%
Shell
35.9%
Just
3.4%
JavaScript
2.8%
Vim Script
1.8%