To ensure the safty and security of the user space environment, unlike other Linux distributions, packages in MesaLock Linux are written in memory-safe language (e.g., Rust and Go). We select packages based on three metrics: quality, functionality and security. Please read the MesaLock Linux documentation to learn more.
There are four categories of all packages:
core: core packages to bootstrap the systemcommunity: packages from communitycore-testing: new core packages or new version for trying and testingcommunity-testing: new community packages or new version for trying and testing
Basically, core packages are essential packages to bootstrap the system and
have the basic function. community packages are other nice-to-have packages
written in Rust/Go. And core-testing and community-testing will aggressively
use latest version or newer version code for testing.
A package consists of a build.yml script and related files and patches. It is very
simple to include a new package in MesaLock Linux. The build.yml is a YAML
file and should contain two parts: metadata and building functions.
The build tool (mkpkg) will make a package in following steps:
- downloading source code and/or extract it into
$builddirdirectory build: building sourcescheck: testing and checking functionsinstall: zip the output as a package
There are several pre-defined variables which mkpkg will look for:
name,version,description,url,skip_checkandlicense: package related metadatabuild,check,install: script to build/check/install the package
Here are several pre-defined environment variables you can use in the script
name,version: package metadata informationbuilddir: directory for building packagepkgdir: directory to install compiled code
You can find more details in the mkpkg project:
https://github.com/mesalock-linux/mkpkg
Here is an example of build.yml script for ripgrep, a Rust grep tool.
package:
name: ripgrep
version: 0.8.0
description: ripgrep combines the usability of The Silver Searcher with the raw speed of grep
license: [MIT, Unlicense]
url: https://github.com/BurntSushi/ripgrep
skip_check: true
source:
- git+https://github.com/BurntSushi/$name.git
prepare:
- cd "$name".git && git checkout -B 0.8.0
build:
- cd "$name".git && cargo build --release
- cd "$name".git && cargo test
install:
- cd "$name".git && install -D -m744 target/release/rg -t "$pkgdir"/bin/- Mingshen Sun
<mssun@mesalock-linux.org>@mssun
The MesaLock Linux Packages project is provided under the BSD license.