From 2c8b804cd61a480501069cdf4d4377f3c2cf30bb Mon Sep 17 00:00:00 2001 From: Namilskyy Date: Wed, 3 Dec 2025 21:00:31 +0300 Subject: Not much of the documentation has been implemented, as well as some minor changes --- doc/quickstart.md | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 doc/quickstart.md (limited to 'doc') diff --git a/doc/quickstart.md b/doc/quickstart.md new file mode 100644 index 0000000..a8ebcc4 --- /dev/null +++ b/doc/quickstart.md @@ -0,0 +1,116 @@ +# Mesk & Anthrill project generally + +Initially, **Anthrill is conceived as a distribution developed by enthusiasts for complete security in the system** (for example, a minimum number of proprietary software, an analog of HVM from Qubes, etc.) **and on the network, which is implemented through pre-installed and pre-configured networking utilities, as well as i2p.** (Like zapret deep packet inspection bypasses, firewalls, vpn/proxy tools like sing-box/XRay) + +**Mesk, on the other hand, is designed as a completely free manager and repositories that should guarantee the user complete freedom and security in such standard operations.** + +It is important to clarify that this desire for anonymity and security is not caused by paranoia, but by a situation that the world is approaching. + +I didn't "suck it out of my finger" or how else to aptly put it about the blatantly made-up news on the Internet that is spreading exponentially. Below, I will leave a list of sources. If you interested in this research you can check web3privacy.md + +# External logic +This paragraph should explain to you how the package is installed, deleted, updated, as well as an explanation for the main files and manifests that will be created during operation. + +As you may have already read, **the package itself is a `tar.gz` archive, we use `.mesk` for convenience**. + +Mesk supports two types of packages, Binary and provided as program source code. + +TOML manifests are used for assembly, there are three of them in total, they are variable and depend on your specific case. +``` +# Example file-tree of package.mesk +. +├── BUILD # Mesk manifests -> BUILD, INSTALL, SETTS +├── INSTALL +├── SETTS +├── LICENSE +├── Makefile +└── src + ├── some_code.c + └── some_code.rs +``` + +Of these, only INSTALL is required, it is required in order to specify where and how to install the package. + +- `BUILD` - build parameters if the package is provided as source code +- `SETTS` - It is used after installation, for example, if you need to set some environment variables, execute a script, etc. + +## Examles: +### INSTALL + +```toml +[package] +name = "my-package" +version = "1.0.0" +arch = "x86_64" +descr = "Just example INSTALL script" +license = "BSD-2-Clause" + +[install] +path = "/usr/bin/my-package" +dependencies = ["package", "i2pd", "llvm-19-devel", "etc..."] # Leave it empty if there are no dependencies +user = "root" +group = "root" +mode = "755" + +# Also [install] can be +# path = "/usr/bin/my-package" +# user = "root" +# group = "root" +# mode = "755" +# custom_script = "./install.sh" OR +# custom_script = """ +# echo "Installing my-package" +# tar xvf /var/cache/mesk/my-package/SOURCES.tar.gz -C /usr/bin/ +# """ +``` + +During installation, files are generated with information about which files belong to a particular package for further cleaning (`.config`, `/etc`, and other configs are ignored) +In other words, in the `[package]` section, it is important to specify the valid version of the package, the architecture (in lowercase) and the name. + +`descr` - package description, optional. Feel free to skip it. + +The license is not being processed, but must be specified due to the fact that there will be in the search + +In `[install]`, all fields are optional except for `custom_script`, it can be used if the package cannot be assembled automatically via mesk or you do not want to give it to automation. It is important to note that it cancels the previous `[install]` fields except for `dependencies`. + +- `path` - where should I install the final executable? (will be reworked later because many packages require additional directories like /usr/include etc..) +- `dependencies` - an array of names of other packages in the mesk repositories on which your +- `user` - access for users +- `group` - access for groups +- `mode` - file permissions, as in chmod + +### BUILD + +```toml +# This field required, but its will change nothing if script = "" specified. +build_system = "CMake" + +# Environment variables, can be empty or removed +env = """ + export SHELL=/usr/bin/zsh + """ +# Custom script like from INSTALL +script = """ + make -j6 -f build/Makefile all + """ + +``` + +- `build_system` - pointing to the build system to execute it automatically +Now supported build enum: + +```Rust +pub enum BuildSystems { + Make, + CMake, + Meson, + Cargo, +} +``` + +- `env` - export environment variables for assembly if required + +- `script` - bash build script if the automatic one can't handle it + +Also you can check [examples](https://codeberg.org/NamelessTeam/mesk/src/branch/main/examples) + -- cgit v1.2.3