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
$builddir
directory 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_check
andlicense
: 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.