Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
661 changes: 661 additions & 0 deletions COPYING

Large diffs are not rendered by default.

266 changes: 57 additions & 209 deletions Cargo.lock

Large diffs are not rendered by default.

1 change: 0 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ members = [
"builder",
"client",
"common",
"server",
]

[profile.release]
Expand Down
21 changes: 0 additions & 21 deletions LICENSE

This file was deleted.

31 changes: 10 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,28 +2,25 @@

<p align="center">
<picture>
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/llenotre/maestro-lnf/master/logo-light.svg">
<img src="https://raw.githubusercontent.com/llenotre/maestro-lnf/master/logo.svg" alt="logo" width="50%" />
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/maestro-os/maestro-lnf/master/logo-light.svg">
<img src="https://raw.githubusercontent.com/maestro-os/maestro-lnf/master/logo.svg" alt="logo" width="50%" />
</picture>
</p>

[![MIT license](https://img.shields.io/badge/license-MIT-blue.svg?style=for-the-badge&logo=book)](./LICENSE)
![Version](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fllenotre%2Fblimp%2Fmaster%2Fclient%2FCargo.toml&query=%24.package.version&style=for-the-badge&label=version)
![Continuous integration](https://img.shields.io/github/actions/workflow/status/llenotre/blimp/check.yml?style=for-the-badge&logo=github)
[![AGPL-3.0 license](https://img.shields.io/badge/license-AGPL--3.0-blue.svg?style=for-the-badge&logo=book)](./COPYING)
![Version](https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fmaestro-os%2Fblimp%2Fmaster%2Fclient%2FCargo.toml&query=%24.package.version&style=for-the-badge&label=version)
![Continuous integration](https://img.shields.io/github/actions/workflow/status/maestro-os/blimp/check.yml?style=for-the-badge&logo=github)

# About

Blimp is a simple package manager for Unix-like operating systems, more specifically for [Maestro](https://github.com/llenotre/maestro).
Blimp is a simple package manager for Unix-like operating systems, more specifically for [Maestro](https://github.com/maestro-os/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:
Expand All @@ -33,17 +30,13 @@ cargo build # Debug mode
cargo build --release # Release mode
```

Building with network support required the `network` feature:

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


Features:
- `network` (default): Enable network support. Disabling this feature is necessary when the SSL library is not available.

# Usage

Man pages are shipped with this repository, and are available in `man/`.

## Blimp

Synchronize packages information with remotes:
Expand Down Expand Up @@ -76,8 +69,6 @@ Show the whole usage of the command:
blimp
```



## Package builder

The general usage of the command is:
Expand All @@ -92,8 +83,6 @@ The `--package` flag can be used to write the resulting package into an archive

> **Note**: the structure of package descriptors and output packages are not yet documented as they are unstable



### Bootstrapping

When building packages for a new system on a different target triplet than the current system, **bootstrapping** is required.
Expand Down
22 changes: 3 additions & 19 deletions bootstrap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,9 @@

Bootstrapping is the process of creating an environment which allows the cross compilation of packages.

`./init.sh` builds a cross-compilation toolchain in `sysroot/`.


## Overview

The following build steps are required for bootstrapping:
The following packages are built:

| Package | Host triplet | Target triplet | Notes |
|---------------------------------------------|--------------|----------------|-------------------------------------------------|
Expand All @@ -21,18 +19,4 @@ The following build steps are required for bootstrapping:

> **Note**: one last compilation of gcc (stage 3) will be necessary for a final system, but it is treated as a casual package and not discussed here.

## Building

First, the `sysroot` directory and a basic file hierarchy must be created. Use `init.sh`:
```sh
./init.sh
```

Then, each package has to be built, in the order of the table above.

The command to use for building a package is:
```sh
PATH="$(pwd)/sysroot/tools:$PATH" HOST=<host-triplet> TARGET=<target-triplet> blimp-builder --from desc/<pkg>/ --to sysroot/
```

Once this is done, the second **gcc** can be used to cross compile packages (autoconf, make, etc...) on the target.
Once built, the second **gcc** can be used to cross compile packages on the target.
8 changes: 8 additions & 0 deletions bootstrap/desc/binutils1/metadata.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "bootstrap-binutils"
version = "2.44"
description = "Stage 1 binutils for bootstrapping"

[[source]]
location = "/"
url = "https://ftp.gnu.org/gnu/binutils/binutils-2.44.tar.gz"
17 changes: 0 additions & 17 deletions bootstrap/desc/binutils1/package.json

This file was deleted.

8 changes: 8 additions & 0 deletions bootstrap/desc/binutils2/metadata.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "bootstrap-binutils"
version = "2.44"
description = "Stage 2 binutils for bootstrapping"

[[source]]
location = "/"
url = "https://ftp.gnu.org/gnu/binutils/binutils-2.44.tar.gz"
17 changes: 0 additions & 17 deletions bootstrap/desc/binutils2/package.json

This file was deleted.

12 changes: 12 additions & 0 deletions bootstrap/desc/gcc1/metadata.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "bootstrap-gcc1"
version = "15.1.0"
description = "Stage 1 gcc for bootstrapping"

[[source]]
location = "/"
url = "https://ftp.gnu.org/gnu/gcc/gcc-15.1.0/gcc-15.1.0.tar.gz"

[[package.build_dep]]
name = "bootstrap-binutils"
version = "*"
22 changes: 0 additions & 22 deletions bootstrap/desc/gcc1/package.json

This file was deleted.

12 changes: 12 additions & 0 deletions bootstrap/desc/gcc2/metadata.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "bootstrap-gcc2"
version = "15.1.0"
description = "Stage 2 gcc for bootstrapping"

[[source]]
location = "/"
url = "https://ftp.gnu.org/gnu/gcc/gcc-15.1.0/gcc-15.1.0.tar.gz"

[[package.build_dep]]
name = "bootstrap-libstdc++"
version = "*"
22 changes: 0 additions & 22 deletions bootstrap/desc/gcc2/package.json

This file was deleted.

12 changes: 12 additions & 0 deletions bootstrap/desc/libstdc++/metadata.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "bootstrap-libstdc++"
version = "15.1.0"
description = "libstdc++ for bootstrapping"

[[source]]
location = "/"
url = "https://ftp.gnu.org/gnu/gcc/gcc-15.1.0/gcc-15.1.0.tar.gz"

[[package.build_dep]]
name = "bootstrap-musl"
version = "*"
22 changes: 0 additions & 22 deletions bootstrap/desc/libstdc++/package.json

This file was deleted.

8 changes: 8 additions & 0 deletions bootstrap/desc/linux-headers/metadata.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "bootstrap-linux-headers"
version = "6.15"
description = "Linux kernel headers for bootstrapping"

[[source]]
location = "/"
url = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.15.tar.xz"
17 changes: 0 additions & 17 deletions bootstrap/desc/linux-headers/package.json

This file was deleted.

2 changes: 1 addition & 1 deletion bootstrap/desc/musl/build-hook
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ cd *
./configure \
--build="$BUILD" \
--host="$HOST" \
--target="$TARGET" \
--target="$HOST" \
--prefix="/usr" \
--enable-optimize \
--enable-shared
Expand Down
12 changes: 12 additions & 0 deletions bootstrap/desc/musl/metadata.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[package]
name = "bootstrap-musl"
version = "1.2.5"
description = "musl for bootstrapping"

[[source]]
location = "/"
url = "https://musl.libc.org/releases/musl-1.2.5.tar.gz"

[[package.build_dep]]
name = "bootstrap-gcc1"
version = "*"
22 changes: 0 additions & 22 deletions bootstrap/desc/musl/package.json

This file was deleted.

8 changes: 8 additions & 0 deletions bootstrap/desc/zlib/metadata.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
[package]
name = "zlib"
version = "1.3.1"
description = "Bootstrapping zlib"

[[source]]
location = "/"
url = "https://zlib.net/zlib-1.3.1.tar.gz"
Loading