Skip to content

maestro-os/blimp

Repository files navigation

logo

MIT license Version Continuous integration

About

Blimp is a simple package manager for Unix-like operating systems, more specifically for Maestro.

This repository contains the following components:

  • blimp: The package manager itself
  • blimp-builder: An utility to build packages
  • blimp-server: The package manager's server

The common crate is a library with utilities shared across components.

Build

Build the package manager using:

cargo build           # Debug mode
cargo build --release # Release mode

Building with network support required the network feature:

cargo build --features network           # Debug mode
cargo build --features network --release # Release mode

Usage

Blimp

Synchronize packages information with remotes:

blimp update

Install package(s):

blimp install <package>

Upgrade packages:

blimp upgrade

Remove package(s):

blimp remove <package>

Show the whole usage of the command:

blimp

Package builder

The general usage of the command is:

blimp-builder <package descriptor> <output repository>

The command builds the package according to the descriptor, then writes the result in the given output repository.

Note: the structure of package descriptors and output packages is not yet documented as they are subject to changes

Cross compilation

Cross compilation is required when building package for a system with a different target triplet than the current system.

To cross compile, you first need to build a toolchain.

The target triplet can be specified with the TARGET environment variable. Example:

export TARGET="i686-unknown-linux-musl"

If not specified, the target default to i686-unknown-linux-musl.

To cross compile for Maestro, Linux targets with musl should be used, since Maestro is Linux-compatible.

Then, run the following command to set environment variables for your current shell:

TOOLCHAIN=<path to the toolchain> source cross_compile_env.sh

Releases

No releases published

Packages