Thanks for your interest in contributing to Mere Linux!
- The
merebinary (download) - An initialized store (
sudo mere store init) - The official repo config and key:
sudo curl -so /mere/config.kdl https://pkgs.merelinux.org/config.kdl sudo curl -so /mere/keys/mere.pub https://pkgs.merelinux.org/mere.pub
Recipes live at recipes/<category>/<package-name>/recipe.kdl.
For the full format reference, see the Recipe Specification.
A minimal recipe looks like:
recipe {
name "mypackage"
version "1.0.0"
release 1
description "Short description"
url "https://upstream.example.com"
licenses "MIT"
archs "aarch64" "x86_64"
depends "busybox" "llvm" "musl-dev"
}
source "https://example.com/mypackage-${recipe.version}.tar.gz" {
blake3 "<hash>"
}
build {
script r#"
make
"#
}
install {
script r#"
make DESTDIR="$DESTDIR" install
"#
}
package "mypackage" {
files "usr/bin/" \
"usr/lib/"
}mere dev hash /path/to/downloaded-source.tar.gzThis prints the BLAKE3 hash to use in your recipe's source block.
mere dev validate recipes/<category>/<package-name>/recipe.kdlChecks the recipe syntax and structure without running a build.
mere dev build recipes/<category>/<package-name>/recipe.kdlThis downloads sources, verifies hashes, builds in an isolated namespace,
and produces .pkg.tar.zst archives in /mere/dev/outputs/.
Use -v for verbose output if something fails.
mere dev key generateThis generates a local Ed25519 key pair for signing dev packages.
The key is stored at ~/.mere/keys/mere.key by default.
mere dev import localThis signs and imports all built packages from /mere/dev/outputs/ into a
local development repository at /mere/dev/repo/local/. You can use any
name in place of local.
Create a profile and install your package into it:
mere profile create test
mere install -p test mypackageThen try it out in an isolated shell:
mere shell -p test
mypackage --versionThis drops you into a shell with only your profile's packages available.
Type exit to return to your host environment.
- Fork this repository
- Create a branch for your recipe
- Ensure
mere dev buildsucceeds for your recipe - Open a pull request with a brief description of the package
- Look at existing recipes in
recipes/for patterns - Build dependencies go in the
dependsfield and are installed into the build profile automatically - Use
${recipe.version}and${recipe.name}in source URLs for consistency - Split packages (e.g.
-dev) use multiplepackageblocks with differentfilespatterns - If your build needs
cmake,meson,ninja, etc., add them todepends